Frédéric G. MARAND 2 anni fa
parent
commit
974a1c75a9

+ 21 - 0
.idea/dataSources.local.xml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="dataSourceStorageLocal" created-in="GO-231.8109.46">
+    <data-source name="Demo" uuid="3ee63b33-36a4-4ea1-9f10-e087e9b0ded9">
+      <database-info product="SQLite" version="3.40.1" jdbc-version="4.2" driver-name="SQLite JDBC" driver-version="3.40.1.0" dbms="SQLITE" exact-version="3.40.1" exact-driver-version="3.40">
+        <identifier-quote-string>&quot;</identifier-quote-string>
+      </database-info>
+      <case-sensitivity plain-identifiers="mixed" quoted-identifiers="mixed" />
+      <secret-storage>master_key</secret-storage>
+      <auth-provider>no-auth</auth-provider>
+      <schema-mapping>
+        <introspection-scope>
+          <node kind="schema">
+            <name qname="@" />
+            <name qname="main" />
+          </node>
+        </introspection-scope>
+      </schema-mapping>
+    </data-source>
+  </component>
+</project>

+ 12 - 0
.idea/dataSources.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="DataSourceManagerImpl" format="xml" multifile-model="true">
+    <data-source source="LOCAL" name="Demo" uuid="3ee63b33-36a4-4ea1-9f10-e087e9b0ded9">
+      <driver-ref>sqlite.xerial</driver-ref>
+      <synchronize>true</synchronize>
+      <jdbc-driver>org.sqlite.JDBC</jdbc-driver>
+      <jdbc-url>jdbc:sqlite:demo.Db</jdbc-url>
+      <working-dir>$ProjectFileDir$</working-dir>
+    </data-source>
+  </component>
+</project>

+ 1469 - 0
.idea/dataSources/3ee63b33-36a4-4ea1-9f10-e087e9b0ded9.xml

@@ -0,0 +1,1469 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<dataSource name="Demo">
+  <database-model serializer="dbm" dbms="SQLITE" family-id="SQLITE" format-version="4.48">
+    <root id="1">
+      <ServerVersion>3.40.1</ServerVersion>
+    </root>
+    <collation id="2" parent="1" name="RTRIM"/>
+    <collation id="3" parent="1" name="NOCASE"/>
+    <collation id="4" parent="1" name="BINARY"/>
+    <package id="5" parent="1" name="json_tree"/>
+    <package id="6" parent="1" name="json_each"/>
+    <package id="7" parent="1" name="fts4aux"/>
+    <package id="8" parent="1" name="fts3"/>
+    <package id="9" parent="1" name="fts4"/>
+    <package id="10" parent="1" name="fts3tokenize"/>
+    <package id="11" parent="1" name="fts5vocab"/>
+    <package id="12" parent="1" name="rtree_i32"/>
+    <package id="13" parent="1" name="fts5"/>
+    <package id="14" parent="1" name="rtree"/>
+    <package id="15" parent="1" name="dbstat"/>
+    <routine id="16" parent="1" name="julianday">
+      <Deterministic>1</Deterministic>
+      <Variadic>1</Variadic>
+    </routine>
+    <routine id="17" parent="1" name="json_array">
+      <Deterministic>1</Deterministic>
+      <Variadic>1</Variadic>
+    </routine>
+    <routine id="18" parent="1" name="json_remove">
+      <Deterministic>1</Deterministic>
+      <Variadic>1</Variadic>
+    </routine>
+    <routine id="19" parent="1" name="json_object">
+      <Deterministic>1</Deterministic>
+      <Variadic>1</Variadic>
+    </routine>
+    <routine id="20" parent="1" name="json_insert">
+      <Deterministic>1</Deterministic>
+      <Variadic>1</Variadic>
+    </routine>
+    <routine id="21" parent="1" name="printf">
+      <Deterministic>1</Deterministic>
+      <Variadic>1</Variadic>
+    </routine>
+    <routine id="22" parent="1" name="json_replace">
+      <Deterministic>1</Deterministic>
+      <Variadic>1</Variadic>
+    </routine>
+    <routine id="23" parent="1" name="json_extract">
+      <Deterministic>1</Deterministic>
+      <Variadic>1</Variadic>
+    </routine>
+    <routine id="24" parent="1" name="time">
+      <Deterministic>1</Deterministic>
+      <Variadic>1</Variadic>
+    </routine>
+    <routine id="25" parent="1" name="strftime">
+      <Deterministic>1</Deterministic>
+      <Variadic>1</Variadic>
+    </routine>
+    <routine id="26" parent="1" name="char">
+      <Deterministic>1</Deterministic>
+      <Variadic>1</Variadic>
+    </routine>
+    <routine id="27" parent="1" name="unixepoch">
+      <Deterministic>1</Deterministic>
+      <Variadic>1</Variadic>
+    </routine>
+    <routine id="28" parent="1" name="date">
+      <Deterministic>1</Deterministic>
+      <Variadic>1</Variadic>
+    </routine>
+    <routine id="29" parent="1" name="coalesce">
+      <Deterministic>1</Deterministic>
+      <Variadic>1</Variadic>
+    </routine>
+    <routine id="30" parent="1" name="format">
+      <Deterministic>1</Deterministic>
+      <Variadic>1</Variadic>
+    </routine>
+    <routine id="31" parent="1" name="datetime">
+      <Deterministic>1</Deterministic>
+      <Variadic>1</Variadic>
+    </routine>
+    <routine id="32" parent="1" name="lag">
+      <FunctionType>window</FunctionType>
+    </routine>
+    <routine id="33" parent="1" name="max">
+      <Deterministic>1</Deterministic>
+      <Variadic>1</Variadic>
+    </routine>
+    <routine id="34" parent="1" name="min">
+      <Deterministic>1</Deterministic>
+      <Variadic>1</Variadic>
+    </routine>
+    <routine id="35" parent="1" name="lead">
+      <FunctionType>window</FunctionType>
+    </routine>
+    <routine id="36" parent="1" name="json_set">
+      <Deterministic>1</Deterministic>
+      <Variadic>1</Variadic>
+    </routine>
+    <routine id="37" parent="1" name="regexp">
+      <Variadic>1</Variadic>
+    </routine>
+    <routine id="38" parent="1" name="snippet">
+      <Variadic>1</Variadic>
+    </routine>
+    <routine id="39" parent="1" name="matchinfo"/>
+    <routine id="40" parent="1" name="rtreecheck">
+      <Variadic>1</Variadic>
+    </routine>
+    <routine id="41" parent="1" name="highlight">
+      <Variadic>1</Variadic>
+    </routine>
+    <routine id="42" parent="1" name="bm25">
+      <Variadic>1</Variadic>
+    </routine>
+    <routine id="43" parent="1" name="charindex"/>
+    <routine id="44" parent="1" name="fts3_tokenizer"/>
+    <routine id="45" parent="1" name="pow">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="46" parent="1" name="group_concat">
+      <FunctionType>window</FunctionType>
+    </routine>
+    <routine id="47" parent="1" name="json_type">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="48" parent="1" name="ntile">
+      <FunctionType>window</FunctionType>
+    </routine>
+    <routine id="49" parent="1" name="nullif">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="50" parent="1" name="sqlite_compileoption_get"/>
+    <routine id="51" parent="1" name="json_valid">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="52" parent="1" name="json_quote">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="53" parent="1" name="json_patch">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="54" parent="1" name="-&gt;">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="55" parent="1" name="current_timestamp"/>
+    <routine id="56" parent="1" name="power">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="57" parent="1" name="sqlite_compileoption_used"/>
+    <routine id="58" parent="1" name="-&gt;&gt;">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="59" parent="1" name="sin">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="60" parent="1" name="sum">
+      <FunctionType>window</FunctionType>
+    </routine>
+    <routine id="61" parent="1" name="quote">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="62" parent="1" name="likelihood">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="63" parent="1" name="last_value">
+      <FunctionType>window</FunctionType>
+    </routine>
+    <routine id="64" parent="1" name="rank">
+      <FunctionType>window</FunctionType>
+    </routine>
+    <routine id="65" parent="1" name="sign">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="66" parent="1" name="sqrt">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="67" parent="1" name="sinh">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="68" parent="1" name="tan">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="69" parent="1" name="round">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="70" parent="1" name="rtrim">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="71" parent="1" name="nth_value">
+      <FunctionType>window</FunctionType>
+    </routine>
+    <routine id="72" parent="1" name="tanh">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="73" parent="1" name="random"/>
+    <routine id="74" parent="1" name="trim">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="75" parent="1" name="radians">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="76" parent="1" name="trunc">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="77" parent="1" name="total">
+      <FunctionType>window</FunctionType>
+    </routine>
+    <routine id="78" parent="1" name="substr">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="79" parent="1" name="replace">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="80" parent="1" name="upper">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="81" parent="1" name="subtype">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="82" parent="1" name="typeof">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="83" parent="1" name="load_extension"/>
+    <routine id="84" parent="1" name="json_group_array">
+      <Deterministic>1</Deterministic>
+      <FunctionType>window</FunctionType>
+    </routine>
+    <routine id="85" parent="1" name="avg">
+      <FunctionType>window</FunctionType>
+    </routine>
+    <routine id="86" parent="1" name="abs">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="87" parent="1" name="json_group_object">
+      <Deterministic>1</Deterministic>
+      <FunctionType>window</FunctionType>
+    </routine>
+    <routine id="88" parent="1" name="json_array_length">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="89" parent="1" name="atan">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="90" parent="1" name="asin">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="91" parent="1" name="acos">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="92" parent="1" name="substring">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="93" parent="1" name="randomblob"/>
+    <routine id="94" parent="1" name="unicode">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="95" parent="1" name="percent_rank">
+      <FunctionType>window</FunctionType>
+    </routine>
+    <routine id="96" parent="1" name="row_number">
+      <FunctionType>window</FunctionType>
+    </routine>
+    <routine id="97" parent="1" name="atanh">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="98" parent="1" name="asinh">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="99" parent="1" name="acosh">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="100" parent="1" name="cos">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="101" parent="1" name="atan2">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="102" parent="1" name="last_insert_rowid"/>
+    <routine id="103" parent="1" name="sqlite_log">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="104" parent="1" name="unlikely">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="105" parent="1" name="cosh">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="106" parent="1" name="ceil">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="107" parent="1" name="exp">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="108" parent="1" name="count">
+      <FunctionType>window</FunctionType>
+    </routine>
+    <routine id="109" parent="1" name="ceiling">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="110" parent="1" name="total_changes"/>
+    <routine id="111" parent="1" name="changes"/>
+    <routine id="112" parent="1" name="sqlite_version"/>
+    <routine id="113" parent="1" name="degrees">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="114" parent="1" name="floor">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="115" parent="1" name="glob">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="116" parent="1" name="zeroblob">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="117" parent="1" name="hex">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="118" parent="1" name="iif">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="119" parent="1" name="sqlite_source_id"/>
+    <routine id="120" parent="1" name="cume_dist">
+      <FunctionType>window</FunctionType>
+    </routine>
+    <routine id="121" parent="1" name="ln">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="122" parent="1" name="instr">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="123" parent="1" name="json">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="124" parent="1" name="dense_rank">
+      <FunctionType>window</FunctionType>
+    </routine>
+    <routine id="125" parent="1" name="log">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="126" parent="1" name="ifnull">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="127" parent="1" name="current_date"/>
+    <routine id="128" parent="1" name="current_time"/>
+    <routine id="129" parent="1" name="lag">
+      <FunctionType>window</FunctionType>
+    </routine>
+    <routine id="130" parent="1" name="mod">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="131" parent="1" name="log2">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="132" parent="1" name="like">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="133" parent="1" name="max">
+      <FunctionType>window</FunctionType>
+    </routine>
+    <routine id="134" parent="1" name="min">
+      <FunctionType>window</FunctionType>
+    </routine>
+    <routine id="135" parent="1" name="lead">
+      <FunctionType>window</FunctionType>
+    </routine>
+    <routine id="136" parent="1" name="log10">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="137" parent="1" name="lower">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="138" parent="1" name="ltrim">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="139" parent="1" name="first_value">
+      <FunctionType>window</FunctionType>
+    </routine>
+    <routine id="140" parent="1" name="pi">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="141" parent="1" name="length">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="142" parent="1" name="likely">
+      <Deterministic>1</Deterministic>
+    </routine>
+    <routine id="143" parent="1" name="upper_quartile">
+      <FunctionType>aggregate</FunctionType>
+    </routine>
+    <routine id="144" parent="1" name="median">
+      <FunctionType>aggregate</FunctionType>
+    </routine>
+    <routine id="145" parent="1" name="stdev">
+      <FunctionType>aggregate</FunctionType>
+    </routine>
+    <routine id="146" parent="1" name="rightstr"/>
+    <routine id="147" parent="1" name="leftstr"/>
+    <routine id="148" parent="1" name="mode">
+      <FunctionType>aggregate</FunctionType>
+    </routine>
+    <routine id="149" parent="1" name="replicate"/>
+    <routine id="150" parent="1" name="padl"/>
+    <routine id="151" parent="1" name="square"/>
+    <routine id="152" parent="1" name="strfilter"/>
+    <routine id="153" parent="1" name="difference"/>
+    <routine id="154" parent="1" name="lower_quartile">
+      <FunctionType>aggregate</FunctionType>
+    </routine>
+    <routine id="155" parent="1" name="padr"/>
+    <routine id="156" parent="1" name="rtreedepth"/>
+    <routine id="157" parent="1" name="atn2"/>
+    <routine id="158" parent="1" name="match"/>
+    <routine id="159" parent="1" name="coth"/>
+    <routine id="160" parent="1" name="fts5_source_id"/>
+    <routine id="161" parent="1" name="offsets"/>
+    <routine id="162" parent="1" name="matchinfo"/>
+    <routine id="163" parent="1" name="variance">
+      <FunctionType>aggregate</FunctionType>
+    </routine>
+    <routine id="164" parent="1" name="optimize"/>
+    <routine id="165" parent="1" name="padc"/>
+    <routine id="166" parent="1" name="proper"/>
+    <routine id="167" parent="1" name="reverse"/>
+    <routine id="168" parent="1" name="rtreenode"/>
+    <routine id="169" parent="1" name="charindex"/>
+    <routine id="170" parent="1" name="cot"/>
+    <routine id="171" parent="1" name="fts3_tokenizer"/>
+    <routine id="172" parent="1" name="fts5"/>
+    <schema id="173" parent="1" name="main">
+      <Current>1</Current>
+    </schema>
+    <argument id="174" parent="16">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="175" parent="17">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="176" parent="18">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="177" parent="19">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="178" parent="20">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="179" parent="21">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="180" parent="22">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="181" parent="23">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="182" parent="24">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="183" parent="25">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="184" parent="26">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="185" parent="27">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="186" parent="28">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="187" parent="29">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="188" parent="30">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="189" parent="31">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="190" parent="32">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="191" parent="32">
+      <Position>1</Position>
+    </argument>
+    <argument id="192" parent="32">
+      <Position>2</Position>
+    </argument>
+    <argument id="193" parent="32">
+      <Position>3</Position>
+    </argument>
+    <argument id="194" parent="33">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="195" parent="34">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="196" parent="35">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="197" parent="35">
+      <Position>1</Position>
+    </argument>
+    <argument id="198" parent="35">
+      <Position>2</Position>
+    </argument>
+    <argument id="199" parent="35">
+      <Position>3</Position>
+    </argument>
+    <argument id="200" parent="36">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="201" parent="37">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="202" parent="38">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="203" parent="39">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="204" parent="39">
+      <Position>1</Position>
+    </argument>
+    <argument id="205" parent="39">
+      <Position>2</Position>
+    </argument>
+    <argument id="206" parent="40">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="207" parent="41">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="208" parent="42">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="209" parent="43">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="210" parent="43">
+      <Position>1</Position>
+    </argument>
+    <argument id="211" parent="43">
+      <Position>2</Position>
+    </argument>
+    <argument id="212" parent="43">
+      <Position>3</Position>
+    </argument>
+    <argument id="213" parent="44">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="214" parent="44">
+      <Position>1</Position>
+    </argument>
+    <argument id="215" parent="44">
+      <Position>2</Position>
+    </argument>
+    <argument id="216" parent="45">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="217" parent="45">
+      <Position>1</Position>
+    </argument>
+    <argument id="218" parent="45">
+      <Position>2</Position>
+    </argument>
+    <argument id="219" parent="46">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="220" parent="46">
+      <Position>1</Position>
+    </argument>
+    <argument id="221" parent="46">
+      <Position>2</Position>
+    </argument>
+    <argument id="222" parent="47">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="223" parent="47">
+      <Position>1</Position>
+    </argument>
+    <argument id="224" parent="47">
+      <Position>2</Position>
+    </argument>
+    <argument id="225" parent="48">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="226" parent="48">
+      <Position>1</Position>
+    </argument>
+    <argument id="227" parent="49">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="228" parent="49">
+      <Position>1</Position>
+    </argument>
+    <argument id="229" parent="49">
+      <Position>2</Position>
+    </argument>
+    <argument id="230" parent="50">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="231" parent="50">
+      <Position>1</Position>
+    </argument>
+    <argument id="232" parent="51">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="233" parent="51">
+      <Position>1</Position>
+    </argument>
+    <argument id="234" parent="52">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="235" parent="52">
+      <Position>1</Position>
+    </argument>
+    <argument id="236" parent="53">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="237" parent="53">
+      <Position>1</Position>
+    </argument>
+    <argument id="238" parent="53">
+      <Position>2</Position>
+    </argument>
+    <argument id="239" parent="54">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="240" parent="54">
+      <Position>1</Position>
+    </argument>
+    <argument id="241" parent="54">
+      <Position>2</Position>
+    </argument>
+    <argument id="242" parent="55">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="243" parent="56">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="244" parent="56">
+      <Position>1</Position>
+    </argument>
+    <argument id="245" parent="56">
+      <Position>2</Position>
+    </argument>
+    <argument id="246" parent="57">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="247" parent="57">
+      <Position>1</Position>
+    </argument>
+    <argument id="248" parent="58">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="249" parent="58">
+      <Position>1</Position>
+    </argument>
+    <argument id="250" parent="58">
+      <Position>2</Position>
+    </argument>
+    <argument id="251" parent="59">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="252" parent="59">
+      <Position>1</Position>
+    </argument>
+    <argument id="253" parent="60">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="254" parent="60">
+      <Position>1</Position>
+    </argument>
+    <argument id="255" parent="61">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="256" parent="61">
+      <Position>1</Position>
+    </argument>
+    <argument id="257" parent="62">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="258" parent="62">
+      <Position>1</Position>
+    </argument>
+    <argument id="259" parent="62">
+      <Position>2</Position>
+    </argument>
+    <argument id="260" parent="63">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="261" parent="63">
+      <Position>1</Position>
+    </argument>
+    <argument id="262" parent="64">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="263" parent="65">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="264" parent="65">
+      <Position>1</Position>
+    </argument>
+    <argument id="265" parent="66">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="266" parent="66">
+      <Position>1</Position>
+    </argument>
+    <argument id="267" parent="67">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="268" parent="67">
+      <Position>1</Position>
+    </argument>
+    <argument id="269" parent="68">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="270" parent="68">
+      <Position>1</Position>
+    </argument>
+    <argument id="271" parent="69">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="272" parent="69">
+      <Position>1</Position>
+    </argument>
+    <argument id="273" parent="69">
+      <Position>2</Position>
+    </argument>
+    <argument id="274" parent="70">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="275" parent="70">
+      <Position>1</Position>
+    </argument>
+    <argument id="276" parent="70">
+      <Position>2</Position>
+    </argument>
+    <argument id="277" parent="71">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="278" parent="71">
+      <Position>1</Position>
+    </argument>
+    <argument id="279" parent="71">
+      <Position>2</Position>
+    </argument>
+    <argument id="280" parent="72">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="281" parent="72">
+      <Position>1</Position>
+    </argument>
+    <argument id="282" parent="73">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="283" parent="74">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="284" parent="74">
+      <Position>1</Position>
+    </argument>
+    <argument id="285" parent="74">
+      <Position>2</Position>
+    </argument>
+    <argument id="286" parent="75">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="287" parent="75">
+      <Position>1</Position>
+    </argument>
+    <argument id="288" parent="76">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="289" parent="76">
+      <Position>1</Position>
+    </argument>
+    <argument id="290" parent="77">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="291" parent="77">
+      <Position>1</Position>
+    </argument>
+    <argument id="292" parent="78">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="293" parent="78">
+      <Position>1</Position>
+    </argument>
+    <argument id="294" parent="78">
+      <Position>2</Position>
+    </argument>
+    <argument id="295" parent="78">
+      <Position>3</Position>
+    </argument>
+    <argument id="296" parent="79">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="297" parent="79">
+      <Position>1</Position>
+    </argument>
+    <argument id="298" parent="79">
+      <Position>2</Position>
+    </argument>
+    <argument id="299" parent="79">
+      <Position>3</Position>
+    </argument>
+    <argument id="300" parent="80">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="301" parent="80">
+      <Position>1</Position>
+    </argument>
+    <argument id="302" parent="81">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="303" parent="81">
+      <Position>1</Position>
+    </argument>
+    <argument id="304" parent="82">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="305" parent="82">
+      <Position>1</Position>
+    </argument>
+    <argument id="306" parent="83">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="307" parent="83">
+      <Position>1</Position>
+    </argument>
+    <argument id="308" parent="83">
+      <Position>2</Position>
+    </argument>
+    <argument id="309" parent="84">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="310" parent="84">
+      <Position>1</Position>
+    </argument>
+    <argument id="311" parent="85">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="312" parent="85">
+      <Position>1</Position>
+    </argument>
+    <argument id="313" parent="86">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="314" parent="86">
+      <Position>1</Position>
+    </argument>
+    <argument id="315" parent="87">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="316" parent="87">
+      <Position>1</Position>
+    </argument>
+    <argument id="317" parent="87">
+      <Position>2</Position>
+    </argument>
+    <argument id="318" parent="88">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="319" parent="88">
+      <Position>1</Position>
+    </argument>
+    <argument id="320" parent="88">
+      <Position>2</Position>
+    </argument>
+    <argument id="321" parent="89">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="322" parent="89">
+      <Position>1</Position>
+    </argument>
+    <argument id="323" parent="90">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="324" parent="90">
+      <Position>1</Position>
+    </argument>
+    <argument id="325" parent="91">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="326" parent="91">
+      <Position>1</Position>
+    </argument>
+    <argument id="327" parent="92">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="328" parent="92">
+      <Position>1</Position>
+    </argument>
+    <argument id="329" parent="92">
+      <Position>2</Position>
+    </argument>
+    <argument id="330" parent="92">
+      <Position>3</Position>
+    </argument>
+    <argument id="331" parent="93">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="332" parent="93">
+      <Position>1</Position>
+    </argument>
+    <argument id="333" parent="94">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="334" parent="94">
+      <Position>1</Position>
+    </argument>
+    <argument id="335" parent="95">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="336" parent="96">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="337" parent="97">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="338" parent="97">
+      <Position>1</Position>
+    </argument>
+    <argument id="339" parent="98">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="340" parent="98">
+      <Position>1</Position>
+    </argument>
+    <argument id="341" parent="99">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="342" parent="99">
+      <Position>1</Position>
+    </argument>
+    <argument id="343" parent="100">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="344" parent="100">
+      <Position>1</Position>
+    </argument>
+    <argument id="345" parent="101">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="346" parent="101">
+      <Position>1</Position>
+    </argument>
+    <argument id="347" parent="101">
+      <Position>2</Position>
+    </argument>
+    <argument id="348" parent="102">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="349" parent="103">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="350" parent="103">
+      <Position>1</Position>
+    </argument>
+    <argument id="351" parent="103">
+      <Position>2</Position>
+    </argument>
+    <argument id="352" parent="104">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="353" parent="104">
+      <Position>1</Position>
+    </argument>
+    <argument id="354" parent="105">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="355" parent="105">
+      <Position>1</Position>
+    </argument>
+    <argument id="356" parent="106">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="357" parent="106">
+      <Position>1</Position>
+    </argument>
+    <argument id="358" parent="107">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="359" parent="107">
+      <Position>1</Position>
+    </argument>
+    <argument id="360" parent="108">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="361" parent="108">
+      <Position>1</Position>
+    </argument>
+    <argument id="362" parent="109">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="363" parent="109">
+      <Position>1</Position>
+    </argument>
+    <argument id="364" parent="110">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="365" parent="111">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="366" parent="112">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="367" parent="113">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="368" parent="113">
+      <Position>1</Position>
+    </argument>
+    <argument id="369" parent="114">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="370" parent="114">
+      <Position>1</Position>
+    </argument>
+    <argument id="371" parent="115">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="372" parent="115">
+      <Position>1</Position>
+    </argument>
+    <argument id="373" parent="115">
+      <Position>2</Position>
+    </argument>
+    <argument id="374" parent="116">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="375" parent="116">
+      <Position>1</Position>
+    </argument>
+    <argument id="376" parent="117">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="377" parent="117">
+      <Position>1</Position>
+    </argument>
+    <argument id="378" parent="118">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="379" parent="118">
+      <Position>1</Position>
+    </argument>
+    <argument id="380" parent="118">
+      <Position>2</Position>
+    </argument>
+    <argument id="381" parent="118">
+      <Position>3</Position>
+    </argument>
+    <argument id="382" parent="119">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="383" parent="120">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="384" parent="121">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="385" parent="121">
+      <Position>1</Position>
+    </argument>
+    <argument id="386" parent="122">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="387" parent="122">
+      <Position>1</Position>
+    </argument>
+    <argument id="388" parent="122">
+      <Position>2</Position>
+    </argument>
+    <argument id="389" parent="123">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="390" parent="123">
+      <Position>1</Position>
+    </argument>
+    <argument id="391" parent="124">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="392" parent="125">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="393" parent="125">
+      <Position>1</Position>
+    </argument>
+    <argument id="394" parent="125">
+      <Position>2</Position>
+    </argument>
+    <argument id="395" parent="126">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="396" parent="126">
+      <Position>1</Position>
+    </argument>
+    <argument id="397" parent="126">
+      <Position>2</Position>
+    </argument>
+    <argument id="398" parent="127">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="399" parent="128">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="400" parent="129">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="401" parent="129">
+      <Position>1</Position>
+    </argument>
+    <argument id="402" parent="129">
+      <Position>2</Position>
+    </argument>
+    <argument id="403" parent="130">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="404" parent="130">
+      <Position>1</Position>
+    </argument>
+    <argument id="405" parent="130">
+      <Position>2</Position>
+    </argument>
+    <argument id="406" parent="131">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="407" parent="131">
+      <Position>1</Position>
+    </argument>
+    <argument id="408" parent="132">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="409" parent="132">
+      <Position>1</Position>
+    </argument>
+    <argument id="410" parent="132">
+      <Position>2</Position>
+    </argument>
+    <argument id="411" parent="132">
+      <Position>3</Position>
+    </argument>
+    <argument id="412" parent="133">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="413" parent="133">
+      <Position>1</Position>
+    </argument>
+    <argument id="414" parent="134">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="415" parent="134">
+      <Position>1</Position>
+    </argument>
+    <argument id="416" parent="135">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="417" parent="135">
+      <Position>1</Position>
+    </argument>
+    <argument id="418" parent="135">
+      <Position>2</Position>
+    </argument>
+    <argument id="419" parent="136">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="420" parent="136">
+      <Position>1</Position>
+    </argument>
+    <argument id="421" parent="137">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="422" parent="137">
+      <Position>1</Position>
+    </argument>
+    <argument id="423" parent="138">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="424" parent="138">
+      <Position>1</Position>
+    </argument>
+    <argument id="425" parent="138">
+      <Position>2</Position>
+    </argument>
+    <argument id="426" parent="139">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="427" parent="139">
+      <Position>1</Position>
+    </argument>
+    <argument id="428" parent="140">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="429" parent="141">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="430" parent="141">
+      <Position>1</Position>
+    </argument>
+    <argument id="431" parent="142">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="432" parent="142">
+      <Position>1</Position>
+    </argument>
+    <argument id="433" parent="143">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="434" parent="143">
+      <Position>1</Position>
+    </argument>
+    <argument id="435" parent="144">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="436" parent="144">
+      <Position>1</Position>
+    </argument>
+    <argument id="437" parent="145">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="438" parent="145">
+      <Position>1</Position>
+    </argument>
+    <argument id="439" parent="146">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="440" parent="146">
+      <Position>1</Position>
+    </argument>
+    <argument id="441" parent="146">
+      <Position>2</Position>
+    </argument>
+    <argument id="442" parent="147">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="443" parent="147">
+      <Position>1</Position>
+    </argument>
+    <argument id="444" parent="147">
+      <Position>2</Position>
+    </argument>
+    <argument id="445" parent="148">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="446" parent="148">
+      <Position>1</Position>
+    </argument>
+    <argument id="447" parent="149">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="448" parent="149">
+      <Position>1</Position>
+    </argument>
+    <argument id="449" parent="149">
+      <Position>2</Position>
+    </argument>
+    <argument id="450" parent="150">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="451" parent="150">
+      <Position>1</Position>
+    </argument>
+    <argument id="452" parent="150">
+      <Position>2</Position>
+    </argument>
+    <argument id="453" parent="151">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="454" parent="151">
+      <Position>1</Position>
+    </argument>
+    <argument id="455" parent="152">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="456" parent="152">
+      <Position>1</Position>
+    </argument>
+    <argument id="457" parent="152">
+      <Position>2</Position>
+    </argument>
+    <argument id="458" parent="153">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="459" parent="153">
+      <Position>1</Position>
+    </argument>
+    <argument id="460" parent="153">
+      <Position>2</Position>
+    </argument>
+    <argument id="461" parent="154">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="462" parent="154">
+      <Position>1</Position>
+    </argument>
+    <argument id="463" parent="155">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="464" parent="155">
+      <Position>1</Position>
+    </argument>
+    <argument id="465" parent="155">
+      <Position>2</Position>
+    </argument>
+    <argument id="466" parent="156">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="467" parent="156">
+      <Position>1</Position>
+    </argument>
+    <argument id="468" parent="157">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="469" parent="157">
+      <Position>1</Position>
+    </argument>
+    <argument id="470" parent="157">
+      <Position>2</Position>
+    </argument>
+    <argument id="471" parent="158">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="472" parent="158">
+      <Position>1</Position>
+    </argument>
+    <argument id="473" parent="158">
+      <Position>2</Position>
+    </argument>
+    <argument id="474" parent="159">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="475" parent="159">
+      <Position>1</Position>
+    </argument>
+    <argument id="476" parent="160">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="477" parent="161">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="478" parent="161">
+      <Position>1</Position>
+    </argument>
+    <argument id="479" parent="162">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="480" parent="162">
+      <Position>1</Position>
+    </argument>
+    <argument id="481" parent="163">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="482" parent="163">
+      <Position>1</Position>
+    </argument>
+    <argument id="483" parent="164">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="484" parent="164">
+      <Position>1</Position>
+    </argument>
+    <argument id="485" parent="165">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="486" parent="165">
+      <Position>1</Position>
+    </argument>
+    <argument id="487" parent="165">
+      <Position>2</Position>
+    </argument>
+    <argument id="488" parent="166">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="489" parent="166">
+      <Position>1</Position>
+    </argument>
+    <argument id="490" parent="167">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="491" parent="167">
+      <Position>1</Position>
+    </argument>
+    <argument id="492" parent="168">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="493" parent="168">
+      <Position>1</Position>
+    </argument>
+    <argument id="494" parent="168">
+      <Position>2</Position>
+    </argument>
+    <argument id="495" parent="169">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="496" parent="169">
+      <Position>1</Position>
+    </argument>
+    <argument id="497" parent="169">
+      <Position>2</Position>
+    </argument>
+    <argument id="498" parent="170">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="499" parent="170">
+      <Position>1</Position>
+    </argument>
+    <argument id="500" parent="171">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="501" parent="171">
+      <Position>1</Position>
+    </argument>
+    <argument id="502" parent="172">
+      <ArgumentDirection>R</ArgumentDirection>
+    </argument>
+    <argument id="503" parent="172">
+      <Position>1</Position>
+    </argument>
+    <table id="504" parent="173" name="foo"/>
+    <table id="505" parent="173" name="sqlite_master">
+      <System>1</System>
+    </table>
+    <column id="506" parent="504" name="id">
+      <DasType>serial|0s</DasType>
+      <Position>1</Position>
+    </column>
+    <column id="507" parent="504" name="description">
+      <DasType>varchar(255)|0s</DasType>
+      <Position>2</Position>
+    </column>
+    <index id="508" parent="504" name="sqlite_autoindex_foo_1">
+      <ColNames>id</ColNames>
+      <NameSurrogate>1</NameSurrogate>
+      <Unique>1</Unique>
+    </index>
+    <key id="509" parent="504">
+      <ColNames>id</ColNames>
+      <Primary>1</Primary>
+      <UnderlyingIndexName>sqlite_autoindex_foo_1</UnderlyingIndexName>
+    </key>
+    <column id="510" parent="505" name="type">
+      <DasType>TEXT|0s</DasType>
+      <Position>1</Position>
+    </column>
+    <column id="511" parent="505" name="name">
+      <DasType>TEXT|0s</DasType>
+      <Position>2</Position>
+    </column>
+    <column id="512" parent="505" name="tbl_name">
+      <DasType>TEXT|0s</DasType>
+      <Position>3</Position>
+    </column>
+    <column id="513" parent="505" name="rootpage">
+      <DasType>INT|0s</DasType>
+      <Position>4</Position>
+    </column>
+    <column id="514" parent="505" name="sql">
+      <DasType>TEXT|0s</DasType>
+      <Position>5</Position>
+    </column>
+  </database-model>
+</dataSource>

+ 9 - 0
.idea/sqlite_concurrent_demo.iml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="WEB_MODULE" version="4">
+  <component name="Go" enabled="true" />
+  <component name="NewModuleRootManager">
+    <content url="file://$MODULE_DIR$" />
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>

+ 6 - 0
.idea/vcs.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="" vcs="Git" />
+  </component>
+</project>

+ 76 - 0
.idea/workspace.xml

@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="AutoImportSettings">
+    <option name="autoReloadType" value="ALL" />
+  </component>
+  <component name="ChangeListManager">
+    <list default="true" id="539df32a-79aa-4468-8c23-71eb129e7b9a" name="Changes" comment="">
+      <change afterPath="$PROJECT_DIR$/sqlite_concurrent_demo.go" afterDir="false" />
+    </list>
+    <option name="SHOW_DIALOG" value="false" />
+    <option name="HIGHLIGHT_CONFLICTS" value="true" />
+    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
+    <option name="LAST_RESOLUTION" value="IGNORE" />
+  </component>
+  <component name="FileTemplateManagerImpl">
+    <option name="RECENT_TEMPLATES">
+      <list>
+        <option value="Go Application" />
+      </list>
+    </option>
+  </component>
+  <component name="GOROOT" url="file:///opt/homebrew/Cellar/go/1.20.2/libexec" />
+  <component name="Git.Settings">
+    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
+  </component>
+  <component name="GoLibraries">
+    <option name="indexEntireGoPath" value="true" />
+  </component>
+  <component name="MarkdownSettingsMigration">
+    <option name="stateVersion" value="1" />
+  </component>
+  <component name="ProjectId" id="2N8oPKG8xl9GvirQcrIgj4nKach" />
+  <component name="ProjectViewState">
+    <option name="hideEmptyMiddlePackages" value="true" />
+    <option name="showLibraryContents" value="true" />
+    <option name="sortByType" value="true" />
+  </component>
+  <component name="PropertiesComponent">{
+  &quot;keyToString&quot;: {
+    &quot;DefaultGoTemplateProperty&quot;: &quot;Go Application&quot;,
+    &quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
+    &quot;RunOnceActivity.go.formatter.settings.were.checked&quot;: &quot;true&quot;,
+    &quot;RunOnceActivity.go.migrated.go.modules.settings&quot;: &quot;true&quot;,
+    &quot;RunOnceActivity.go.modules.go.list.on.any.changes.was.set&quot;: &quot;true&quot;,
+    &quot;go.import.settings.migrated&quot;: &quot;true&quot;,
+    &quot;go.sdk.automatically.set&quot;: &quot;true&quot;,
+    &quot;last_opened_file_path&quot;: &quot;/Users/frederic.marand.ext&quot;,
+    &quot;settings.editor.selected.configurable&quot;: &quot;go.vgo&quot;
+  },
+  &quot;keyToStringList&quot;: {
+    &quot;DatabaseDriversLRU&quot;: [
+      &quot;sqlite&quot;
+    ]
+  }
+}</component>
+  <component name="RunManager">
+    <configuration name="go build code.osinet.fr/fgm/sqlite_concurrent_demo" type="GoApplicationRunConfiguration" factoryName="Go Application" temporary="true" nameIsGenerated="true">
+      <module name="sqlite_concurrent_demo" />
+      <working_directory value="$PROJECT_DIR$" />
+      <kind value="PACKAGE" />
+      <package value="code.osinet.fr/fgm/sqlite_concurrent_demo" />
+      <directory value="$PROJECT_DIR$" />
+      <filePath value="$PROJECT_DIR$/sqlite_concurrent_demo.go" />
+      <method v="2" />
+    </configuration>
+    <recent_temporary>
+      <list>
+        <item itemvalue="Go Build.go build code.osinet.fr/fgm/sqlite_concurrent_demo" />
+      </list>
+    </recent_temporary>
+  </component>
+  <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
+  <component name="VgoProject">
+    <settings-migrated>true</settings-migrated>
+  </component>
+</project>

BIN
demo.db


+ 5 - 0
go.mod

@@ -0,0 +1,5 @@
+module code.osinet.fr/fgm/sqlite_concurrent_demo
+
+go 1.20
+
+require github.com/mattn/go-sqlite3 v1.14.16

+ 2 - 0
go.sum

@@ -0,0 +1,2 @@
+github.com/mattn/go-sqlite3 v1.14.16 h1:yOQRA0RpS5PFz/oikGwBEqvAWhWg5ufRz4ETLjwpU1Y=
+github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=

+ 88 - 0
sqlite_concurrent_demo.go

@@ -0,0 +1,88 @@
+package main
+
+import (
+	"database/sql"
+	"log"
+	"os"
+	"strconv"
+	"sync"
+	"time"
+
+	_ "github.com/mattn/go-sqlite3"
+)
+
+const (
+	File = "demo.db"
+	// DSN points to a local DB file without cache enabled.
+	DSN = "file:" + File
+)
+
+func setup() {
+	_ = os.Remove(File)
+	db, err := sql.Open("sqlite3", DSN)
+	if err != nil {
+		log.Fatalf("open: %v", err)
+	}
+
+	defer func() {
+		_ = db.Close()
+		log.Println("finishing setup")
+	}()
+	if _, err = db.Exec(`
+CREATE TABLE foo (
+    id SERIAL PRIMARY KEY,
+    description VARCHAR(255)
+);
+`); err != nil {
+		log.Fatalf("creating schema: %v", err)
+	}
+}
+
+func ping(wg *sync.WaitGroup, id int, start, linger time.Duration) {
+	logger := log.New(os.Stderr, "("+strconv.Itoa(id)+") ", log.LstdFlags)
+	defer func() {
+		wg.Done()
+	}()
+	time.Sleep(start)
+	db, err := sql.Open("sqlite3", DSN)
+	if err != nil {
+		logger.Fatalf("open: %v", err)
+	}
+	logger.Println("open: OK")
+	res, err := db.Exec(`
+INSERT INTO foo(id, description)
+VALUES (?, ?)
+	`, id, strconv.Itoa(id))
+	if err != nil {
+		logger.Fatalf("insert: %v", err)
+	} else {
+		ra, _ := res.RowsAffected()
+		last, _ := res.LastInsertId()
+		logger.Printf("inserted count %d / last %d", ra, last)
+	}
+	row := db.QueryRow(`
+SELECT COUNT(id)
+FROM foo
+	`)
+	count := 0
+	if err = row.Scan(&count); err != nil {
+		logger.Fatalf("scanning: %v", err)
+	}
+	logger.Printf("select %d rows: OK", count)
+	time.Sleep(linger)
+
+	if err := db.Close(); err != nil {
+		logger.Fatalf("close: %v", err)
+	}
+	logger.Println("close: OK")
+}
+
+func main() {
+	setup()
+	wg := sync.WaitGroup{}
+	wg.Add(2)
+	go ping(&wg, 1, 0, 2*time.Second)
+	go ping(&wg, 2, time.Second, 0)
+	wg.Wait()
+	log.Println("all done")
+}