Implement more fine-grained Config reset: drop all levels >= given.

This commit is contained in:
Fedor Isakov 2019-10-19 10:22:17 +02:00
parent 44d9d9e6b2
commit fc4ff2875c
3 changed files with 328 additions and 215 deletions

View File

@ -516,20 +516,38 @@
</node>
<node concept="1KhYhu" id="7iCybvTuq8W" role="1KhZu4">
<node concept="3clFbS" id="7iCybvTuq8X" role="2VODD2">
<node concept="3clFbF" id="7iCybvTuqAG" role="3cqZAp">
<node concept="2YIFZM" id="7iCybvTuums" role="3clFbG">
<ref role="37wK5l" to="31yc:7iCybvTu7Tn" resolve="reset" />
<ref role="1Pybhc" to="31yc:7iCybvToiT5" resolve="Config" />
<node concept="3clFbF" id="xqbf82kUv5" role="3cqZAp">
<node concept="2OqwBi" id="xqbf82kUBT" role="3clFbG">
<node concept="2YIFZM" id="xqbf82kUz3" role="2Oq$k0">
<ref role="37wK5l" to="31yc:7iCybvTs3lI" resolve="getInstance" />
<ref role="1Pybhc" to="31yc:7iCybvToiT5" resolve="Config" />
</node>
<node concept="liA8E" id="xqbf82kUJC" role="2OqNvi">
<ref role="37wK5l" to="31yc:xqbf82kuzw" resolve="reset" />
<node concept="Rm8GO" id="2vm2iDVlIfV" role="37wK5m">
<ref role="Rm8GQ" to="31yc:7iCybvToDv4" resolve="DEFAULT" />
<ref role="1Px2BO" to="31yc:7iCybvToD3Z" resolve="Config.Level" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="1KhZuU" id="7iCybvTuuHp" role="1KhZu3">
<node concept="3clFbS" id="7iCybvTuuHq" role="2VODD2">
<node concept="3clFbF" id="7iCybvTuuIj" role="3cqZAp">
<node concept="2YIFZM" id="5gVsyvFqqzT" role="3clFbG">
<ref role="37wK5l" to="31yc:7iCybvTu7Tn" resolve="reset" />
<ref role="1Pybhc" to="31yc:7iCybvToiT5" resolve="Config" />
<node concept="3clFbF" id="xqbf82kUXr" role="3cqZAp">
<node concept="2OqwBi" id="xqbf82kUXs" role="3clFbG">
<node concept="2YIFZM" id="xqbf82kUXt" role="2Oq$k0">
<ref role="37wK5l" to="31yc:7iCybvTs3lI" resolve="getInstance" />
<ref role="1Pybhc" to="31yc:7iCybvToiT5" resolve="Config" />
</node>
<node concept="liA8E" id="xqbf82kUXu" role="2OqNvi">
<ref role="37wK5l" to="31yc:xqbf82kuzw" resolve="reset" />
<node concept="Rm8GO" id="xqbf82kUXv" role="37wK5m">
<ref role="Rm8GQ" to="31yc:7iCybvToDv4" resolve="DEFAULT" />
<ref role="1Px2BO" to="31yc:7iCybvToD3Z" resolve="Config.Level" />
</node>
</node>
</node>
</node>
</node>

View File

@ -47,9 +47,12 @@
<import index="et5u" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.messages(MPS.Core/)" />
<import index="w7la" ref="bbf5c548-7111-4a53-a117-cdefc664cf34/java:jetbrains.mps.logic.reactor.evaluation(jetbrains.mps.logic.reactor/)" />
<import index="82uw" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util.function(JDK/)" />
<import index="31yc" ref="r:0c18ff61-1cb9-4ff0-a899-c949ad03f97c(jetbrains.mps.coderules.plugin)" />
</imports>
<registry>
<language id="8585453e-6bfb-4d80-98de-b16074f1d86c" name="jetbrains.mps.lang.test">
<concept id="2325284917965760583" name="jetbrains.mps.lang.test.structure.BeforeTestsMethod" flags="ig" index="0EjCn" />
<concept id="2325284917965760584" name="jetbrains.mps.lang.test.structure.AfterTestsMethod" flags="ig" index="0EjCo" />
<concept id="1211979288880" name="jetbrains.mps.lang.test.structure.AssertMatch" flags="nn" index="JA50E">
<child id="1211979305365" name="before" index="JA92f" />
<child id="1211979322383" name="after" index="JAdkl" />
@ -60,6 +63,8 @@
<concept id="1225467090849" name="jetbrains.mps.lang.test.structure.ProjectExpression" flags="nn" index="1jxXqW" />
<concept id="1216913645126" name="jetbrains.mps.lang.test.structure.NodesTestCase" flags="lg" index="1lH9Xt">
<property id="6339244025081158986" name="needsNoWriteAction" index="3OwPAg" />
<child id="2325284917965993569" name="beforeTests" index="0EEgL" />
<child id="2325284917965993580" name="afterTests" index="0EEgW" />
<child id="1217501822150" name="nodesToCheck" index="1SKRRt" />
<child id="1217501895093" name="testMethods" index="1SL9yI" />
</concept>
@ -97,6 +102,10 @@
<child id="1197027771414" name="operand" index="2Oq$k0" />
<child id="1197027833540" name="operation" index="2OqNvi" />
</concept>
<concept id="1083260308424" name="jetbrains.mps.baseLanguage.structure.EnumConstantReference" flags="nn" index="Rm8GO">
<reference id="1083260308426" name="enumConstantDeclaration" index="Rm8GQ" />
<reference id="1144432896254" name="enumClass" index="1Px2BO" />
</concept>
<concept id="1145552977093" name="jetbrains.mps.baseLanguage.structure.GenericNewExpression" flags="nn" index="2ShNRf">
<child id="1145553007750" name="creator" index="2ShVmc" />
</concept>
@ -122,6 +131,7 @@
<concept id="1070533707846" name="jetbrains.mps.baseLanguage.structure.StaticFieldReference" flags="nn" index="10M0yZ">
<reference id="1144433057691" name="classifier" index="1PxDUh" />
</concept>
<concept id="1070534058343" name="jetbrains.mps.baseLanguage.structure.NullLiteral" flags="nn" index="10Nm6u" />
<concept id="1070534644030" name="jetbrains.mps.baseLanguage.structure.BooleanType" flags="in" index="10P_77" />
<concept id="1070534934090" name="jetbrains.mps.baseLanguage.structure.CastExpression" flags="nn" index="10QFUN">
<child id="1070534934091" name="type" index="10QFUM" />
@ -163,9 +173,19 @@
<child id="1068580123156" name="expression" index="3clFbG" />
</concept>
<concept id="1068580123157" name="jetbrains.mps.baseLanguage.structure.Statement" flags="nn" index="3clFbH" />
<concept id="1068580123159" name="jetbrains.mps.baseLanguage.structure.IfStatement" flags="nn" index="3clFbJ">
<child id="1068580123160" name="condition" index="3clFbw" />
<child id="1068580123161" name="ifTrue" index="3clFbx" />
</concept>
<concept id="1068580123136" name="jetbrains.mps.baseLanguage.structure.StatementList" flags="sn" stub="5293379017992965193" index="3clFbS">
<child id="1068581517665" name="statement" index="3cqZAp" />
</concept>
<concept id="1068580123137" name="jetbrains.mps.baseLanguage.structure.BooleanConstant" flags="nn" index="3clFbT">
<property id="1068580123138" name="value" index="3clFbU" />
</concept>
<concept id="1068581242878" name="jetbrains.mps.baseLanguage.structure.ReturnStatement" flags="nn" index="3cpWs6">
<child id="1068581517676" name="expression" index="3cqZAk" />
</concept>
<concept id="1068581242864" name="jetbrains.mps.baseLanguage.structure.LocalVariableDeclarationStatement" flags="nn" index="3cpWs8">
<child id="1068581242865" name="localVariableDeclaration" index="3cpWs9" />
</concept>
@ -2486,6 +2506,101 @@
<node concept="3clFbH" id="3KwBCAABqt9" role="3cqZAp" />
</node>
</node>
<node concept="0EjCn" id="1a$$29AvWXd" role="0EEgL">
<node concept="3clFbS" id="1a$$29AvWXe" role="2VODD2">
<node concept="3clFbF" id="1a$$29AvYGM" role="3cqZAp">
<node concept="2OqwBi" id="1a$$29AvYN5" role="3clFbG">
<node concept="2YIFZM" id="1a$$29AvYHv" role="2Oq$k0">
<ref role="37wK5l" to="31yc:7iCybvTs3lI" resolve="getInstance" />
<ref role="1Pybhc" to="31yc:7iCybvToiT5" resolve="Config" />
</node>
<node concept="liA8E" id="1a$$29AvYUx" role="2OqNvi">
<ref role="37wK5l" to="31yc:7iCybvTszk9" resolve="registerProvider" />
<node concept="Rm8GO" id="1a$$29AvYXx" role="37wK5m">
<ref role="Rm8GQ" to="31yc:5Ul706LbJYK" resolve="TEST" />
<ref role="1Px2BO" to="31yc:7iCybvToD3Z" resolve="Config.Level" />
</node>
<node concept="10M0yZ" id="1a$$29Aw4RM" role="37wK5m">
<ref role="3cqZAo" to="qox2:7iCybvTzJGv" resolve="PREFIX" />
<ref role="1PxDUh" to="qox2:7iCybvTy_Mb" resolve="TypecheckingOptions" />
</node>
<node concept="1bVj0M" id="1a$$29Aw4Um" role="37wK5m">
<node concept="3clFbS" id="1a$$29Aw4Uo" role="1bW5cS">
<node concept="3clFbH" id="1a$$29Aw6ca" role="3cqZAp" />
<node concept="3clFbJ" id="1a$$29Aw6e0" role="3cqZAp">
<node concept="3clFbS" id="1a$$29Aw6e2" role="3clFbx">
<node concept="3cpWs6" id="1a$$29Aw783" role="3cqZAp">
<node concept="3clFbT" id="1a$$29Aw7aP" role="3cqZAk">
<property role="3clFbU" value="true" />
</node>
</node>
</node>
<node concept="2OqwBi" id="1a$$29Aw6Dj" role="3clFbw">
<node concept="10M0yZ" id="1a$$29Aw6h$" role="2Oq$k0">
<ref role="3cqZAo" to="qox2:7iCybvTyUUs" resolve="OPTION_TYPECHECKING_ENABLED" />
<ref role="1PxDUh" to="qox2:7iCybvTy_Mb" resolve="TypecheckingOptions" />
</node>
<node concept="liA8E" id="1a$$29Aw72L" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~String.equals(java.lang.Object)" resolve="equals" />
<node concept="37vLTw" id="1a$$29Aw74U" role="37wK5m">
<ref role="3cqZAo" node="1a$$29Aw62z" resolve="key" />
</node>
</node>
</node>
</node>
<node concept="3clFbJ" id="1a$$29Aw7dF" role="3cqZAp">
<node concept="3clFbS" id="1a$$29Aw7dG" role="3clFbx">
<node concept="3cpWs6" id="1a$$29Aw7dH" role="3cqZAp">
<node concept="3clFbT" id="1a$$29Aw7jO" role="3cqZAk" />
</node>
</node>
<node concept="2OqwBi" id="1a$$29Aw7dJ" role="3clFbw">
<node concept="10M0yZ" id="1a$$29Aw7h0" role="2Oq$k0">
<ref role="3cqZAo" to="qox2:7iCybvTyVsX" resolve="OPTION_TYPECHECKING_INCREMENTAL" />
<ref role="1PxDUh" to="qox2:7iCybvTy_Mb" resolve="TypecheckingOptions" />
</node>
<node concept="liA8E" id="1a$$29Aw7dL" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~String.equals(java.lang.Object)" resolve="equals" />
<node concept="37vLTw" id="1a$$29Aw7dM" role="37wK5m">
<ref role="3cqZAo" node="1a$$29Aw62z" resolve="key" />
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="1a$$29Aw6cf" role="3cqZAp" />
<node concept="3clFbF" id="1a$$29Aw7pz" role="3cqZAp">
<node concept="10Nm6u" id="1a$$29Aw7px" role="3clFbG" />
</node>
</node>
<node concept="37vLTG" id="1a$$29Aw62z" role="1bW2Oz">
<property role="TrG5h" value="key" />
<node concept="17QB3L" id="1a$$29Aw691" role="1tU5fm" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="0EjCo" id="1a$$29AvWXs" role="0EEgW">
<node concept="3clFbS" id="1a$$29AvWXt" role="2VODD2">
<node concept="3clFbF" id="xqbf82l6BV" role="3cqZAp">
<node concept="2OqwBi" id="xqbf82l6Qn" role="3clFbG">
<node concept="2YIFZM" id="xqbf82l6K9" role="2Oq$k0">
<ref role="37wK5l" to="31yc:7iCybvTs3lI" resolve="getInstance" />
<ref role="1Pybhc" to="31yc:7iCybvToiT5" resolve="Config" />
</node>
<node concept="liA8E" id="xqbf82l6Yd" role="2OqNvi">
<ref role="37wK5l" to="31yc:xqbf82kuzw" resolve="reset" />
<node concept="Rm8GO" id="1a$$29Aw7Pu" role="37wK5m">
<ref role="Rm8GQ" to="31yc:5Ul706LbJYK" resolve="TEST" />
<ref role="1Px2BO" to="31yc:7iCybvToD3Z" resolve="Config.Level" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3s_ewN" id="2dF51l14WTI">
<property role="3s_ewP" value="SubstituteUtil" />

View File

@ -65,9 +65,13 @@
<child id="1068498886297" name="rValue" index="37vLTx" />
<child id="1068498886295" name="lValue" index="37vLTJ" />
</concept>
<concept id="1153417849900" name="jetbrains.mps.baseLanguage.structure.GreaterThanOrEqualsExpression" flags="nn" index="2d3UOw" />
<concept id="4836112446988635817" name="jetbrains.mps.baseLanguage.structure.UndefinedType" flags="in" index="2jxLKc" />
<concept id="1202948039474" name="jetbrains.mps.baseLanguage.structure.InstanceMethodCallOperation" flags="nn" index="liA8E" />
<concept id="1465982738277781862" name="jetbrains.mps.baseLanguage.structure.PlaceholderMember" flags="ng" index="2tJIrI" />
<concept id="1224573963862" name="jetbrains.mps.baseLanguage.structure.EnumValuesExpression" flags="nn" index="uiWXb">
<reference id="1224573974191" name="enumClass" index="uiZuM" />
</concept>
<concept id="1239709250944" name="jetbrains.mps.baseLanguage.structure.PrefixIncrementExpression" flags="nn" index="2$rviw" />
<concept id="1076505808687" name="jetbrains.mps.baseLanguage.structure.WhileStatement" flags="nn" index="2$JKZl">
<child id="1076505808688" name="condition" index="2$JKZa" />
@ -7048,45 +7052,6 @@
</node>
</node>
<node concept="2tJIrI" id="2hrTH42PbM5" role="jymVt" />
<node concept="2YIFZL" id="7iCybvTu7Tn" role="jymVt">
<property role="TrG5h" value="reset" />
<node concept="3clFbS" id="7iCybvTu6L3" role="3clF47">
<node concept="3clFbF" id="7iCybvTuaMc" role="3cqZAp">
<node concept="37vLTI" id="7iCybvTuaMd" role="3clFbG">
<node concept="2ShNRf" id="7iCybvTuaMe" role="37vLTx">
<node concept="1pGfFk" id="7iCybvTuaMf" role="2ShVmc">
<ref role="37wK5l" node="7iCybvTs5N5" resolve="Config" />
<node concept="2ShNRf" id="7iCybvTuaMg" role="37wK5m">
<node concept="1pGfFk" id="7iCybvTuaMh" role="2ShVmc">
<ref role="37wK5l" node="7iCybvTsdu8" resolve="Config.EffectiveOptions" />
</node>
</node>
</node>
</node>
<node concept="37vLTw" id="7iCybvTuaMm" role="37vLTJ">
<ref role="3cqZAo" node="7iCybvTsa$U" resolve="INSTANCE" />
</node>
</node>
</node>
<node concept="3cpWs6" id="7iCybvTubik" role="3cqZAp">
<node concept="37vLTw" id="7iCybvTubuX" role="3cqZAk">
<ref role="3cqZAo" node="7iCybvTsa$U" resolve="INSTANCE" />
</node>
</node>
</node>
<node concept="3uibUv" id="7iCybvTuaru" role="3clF45">
<ref role="3uigEE" node="7iCybvToiT5" resolve="Config" />
</node>
<node concept="3Tm1VV" id="7iCybvTuEmz" role="1B3o_S" />
<node concept="P$JXv" id="2hrTH42Peja" role="lGtFl">
<node concept="TZ5HA" id="2hrTH42Pejb" role="TZ5H$">
<node concept="1dT_AC" id="2hrTH42Pejc" role="1dT_Ay">
<property role="1dT_AB" value="Used from tests." />
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="7iCybvTucuM" role="jymVt" />
<node concept="2YIFZL" id="7iCybvTs3lI" role="jymVt">
<property role="TrG5h" value="getInstance" />
<node concept="3uibUv" id="7iCybvTs47V" role="3clF45">
@ -7253,6 +7218,40 @@
</node>
</node>
<node concept="2tJIrI" id="7iCybvTq5Ry" role="jymVt" />
<node concept="3clFb_" id="xqbf82kuzw" role="jymVt">
<property role="TrG5h" value="reset" />
<node concept="3clFbS" id="7iCybvTu6L3" role="3clF47">
<node concept="3clFbF" id="2vm2iDVlvcT" role="3cqZAp">
<node concept="2OqwBi" id="2vm2iDVlvSw" role="3clFbG">
<node concept="liA8E" id="2vm2iDVlwcq" role="2OqNvi">
<ref role="37wK5l" node="2vm2iDVkv38" resolve="reset" />
<node concept="37vLTw" id="2vm2iDVlwsx" role="37wK5m">
<ref role="3cqZAo" node="2vm2iDVlurW" resolve="lvl" />
</node>
</node>
<node concept="37vLTw" id="xqbf82kyzx" role="2Oq$k0">
<ref role="3cqZAo" node="7iCybvTsVZN" resolve="effectiveOptions" />
</node>
</node>
</node>
</node>
<node concept="37vLTG" id="2vm2iDVlurW" role="3clF46">
<property role="TrG5h" value="lvl" />
<node concept="3uibUv" id="2vm2iDVluE7" role="1tU5fm">
<ref role="3uigEE" node="7iCybvToD3Z" resolve="Config.Level" />
</node>
</node>
<node concept="3cqZAl" id="2vm2iDVltSe" role="3clF45" />
<node concept="P$JXv" id="2hrTH42Peja" role="lGtFl">
<node concept="TZ5HA" id="2hrTH42Pejb" role="TZ5H$">
<node concept="1dT_AC" id="2hrTH42Pejc" role="1dT_Ay">
<property role="1dT_AB" value="Used from tests." />
</node>
</node>
</node>
<node concept="3Tm1VV" id="7iCybvTuEmz" role="1B3o_S" />
</node>
<node concept="2tJIrI" id="7iCybvTucuM" role="jymVt" />
<node concept="3clFb_" id="7iCybvTp53X" role="jymVt">
<property role="TrG5h" value="allPrefixes" />
<node concept="37vLTG" id="7iCybvTp6Ep" role="3clF46">
@ -7773,173 +7772,12 @@
<node concept="3cqZAl" id="7iCybvTsdub" role="3clF45" />
<node concept="3Tm1VV" id="7iCybvTsduc" role="1B3o_S" />
<node concept="3clFbS" id="7iCybvTsdud" role="3clF47">
<node concept="3cpWs8" id="7iCybvTso8z" role="3cqZAp">
<node concept="3cpWsn" id="7iCybvTso8$" role="3cpWs9">
<property role="TrG5h" value="def" />
<node concept="3uibUv" id="7iCybvTsnXF" role="1tU5fm">
<ref role="3uigEE" node="7iCybvTokTb" resolve="Config.DefaultOptions" />
</node>
<node concept="2ShNRf" id="7iCybvTso8_" role="33vP2m">
<node concept="HV5vD" id="7iCybvTso8A" role="2ShVmc">
<ref role="HV5vE" node="7iCybvTokTb" resolve="Config.DefaultOptions" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="7iCybvTskRM" role="3cqZAp">
<node concept="37vLTI" id="7iCybvTwedp" role="3clFbG">
<node concept="37vLTw" id="7iCybvTwemV" role="37vLTx">
<ref role="3cqZAo" node="7iCybvTso8$" resolve="def" />
</node>
<node concept="3EllGN" id="7iCybvTwaox" role="37vLTJ">
<node concept="37vLTw" id="7iCybvTskRK" role="3ElQJh">
<ref role="3cqZAo" node="7iCybvTsduC" resolve="allOptions" />
</node>
<node concept="Rm8GO" id="7iCybvTwbDR" role="3ElVtu">
<ref role="Rm8GQ" node="7iCybvToDv4" resolve="DEFAULT" />
<ref role="1Px2BO" node="7iCybvToD3Z" resolve="Config.Level" />
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="7iCybvTsqlW" role="3cqZAp">
<node concept="3cpWsn" id="7iCybvTsqlX" role="3cpWs9">
<property role="TrG5h" value="sys" />
<node concept="3uibUv" id="7iCybvTsqh5" role="1tU5fm">
<ref role="3uigEE" node="7iCybvTooKL" resolve="Config.ForwardingOptions" />
</node>
<node concept="2ShNRf" id="7iCybvTsqlY" role="33vP2m">
<node concept="1pGfFk" id="7iCybvTsqlZ" role="2ShVmc">
<ref role="37wK5l" node="7iCybvTop3$" resolve="Config.ForwardingOptions" />
<node concept="37vLTw" id="7iCybvTsqm0" role="37wK5m">
<ref role="3cqZAo" node="7iCybvTso8$" resolve="def" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="7iCybvTweVc" role="3cqZAp">
<node concept="37vLTI" id="7iCybvTweVd" role="3clFbG">
<node concept="37vLTw" id="7iCybvTwgMQ" role="37vLTx">
<ref role="3cqZAo" node="7iCybvTsqlX" resolve="sys" />
</node>
<node concept="3EllGN" id="7iCybvTweVf" role="37vLTJ">
<node concept="37vLTw" id="7iCybvTweVg" role="3ElQJh">
<ref role="3cqZAo" node="7iCybvTsduC" resolve="allOptions" />
</node>
<node concept="Rm8GO" id="7iCybvTwgco" role="3ElVtu">
<ref role="Rm8GQ" node="7iCybvToFr9" resolve="SYSTEM" />
<ref role="1Px2BO" node="7iCybvToD3Z" resolve="Config.Level" />
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="7iCybvTssFO" role="3cqZAp">
<node concept="3cpWsn" id="7iCybvTssFP" role="3cpWs9">
<property role="TrG5h" value="user" />
<node concept="3uibUv" id="7iCybvTssAc" role="1tU5fm">
<ref role="3uigEE" node="7iCybvTooKL" resolve="Config.ForwardingOptions" />
</node>
<node concept="2ShNRf" id="7iCybvTssFQ" role="33vP2m">
<node concept="1pGfFk" id="7iCybvTssFR" role="2ShVmc">
<ref role="37wK5l" node="7iCybvTop3$" resolve="Config.ForwardingOptions" />
<node concept="37vLTw" id="7iCybvTssFS" role="37wK5m">
<ref role="3cqZAo" node="7iCybvTsqlX" resolve="sys" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="7iCybvTwhLq" role="3cqZAp">
<node concept="37vLTI" id="7iCybvTwhLr" role="3clFbG">
<node concept="37vLTw" id="7iCybvTwiTO" role="37vLTx">
<ref role="3cqZAo" node="7iCybvTssFP" resolve="user" />
</node>
<node concept="3EllGN" id="7iCybvTwhLt" role="37vLTJ">
<node concept="37vLTw" id="7iCybvTwhLu" role="3ElQJh">
<ref role="3cqZAo" node="7iCybvTsduC" resolve="allOptions" />
</node>
<node concept="Rm8GO" id="7iCybvTwimL" role="3ElVtu">
<ref role="Rm8GQ" node="7iCybvToHsq" resolve="USER" />
<ref role="1Px2BO" node="7iCybvToD3Z" resolve="Config.Level" />
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="7iCybvTsvo7" role="3cqZAp">
<node concept="3cpWsn" id="7iCybvTsvo8" role="3cpWs9">
<property role="TrG5h" value="ui" />
<node concept="3uibUv" id="7iCybvTsviJ" role="1tU5fm">
<ref role="3uigEE" node="7iCybvTooKL" resolve="Config.ForwardingOptions" />
</node>
<node concept="2ShNRf" id="7iCybvTsvo9" role="33vP2m">
<node concept="1pGfFk" id="7iCybvTsvoa" role="2ShVmc">
<ref role="37wK5l" node="7iCybvTop3$" resolve="Config.ForwardingOptions" />
<node concept="37vLTw" id="7iCybvTsvob" role="37wK5m">
<ref role="3cqZAo" node="7iCybvTssFP" resolve="user" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="7iCybvTwjLW" role="3cqZAp">
<node concept="37vLTI" id="7iCybvTwjLX" role="3clFbG">
<node concept="37vLTw" id="7iCybvTwlhG" role="37vLTx">
<ref role="3cqZAo" node="7iCybvTsvo8" resolve="ui" />
</node>
<node concept="3EllGN" id="7iCybvTwjLZ" role="37vLTJ">
<node concept="37vLTw" id="7iCybvTwjM0" role="3ElQJh">
<ref role="3cqZAo" node="7iCybvTsduC" resolve="allOptions" />
</node>
<node concept="Rm8GO" id="7iCybvTwkM4" role="3ElVtu">
<ref role="Rm8GQ" node="7iCybvToIZc" resolve="UI" />
<ref role="1Px2BO" node="7iCybvToD3Z" resolve="Config.Level" />
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="5Ul706LbRo9" role="3cqZAp">
<node concept="3cpWsn" id="5Ul706LbRoa" role="3cpWs9">
<property role="TrG5h" value="test" />
<node concept="3uibUv" id="5Ul706LbRob" role="1tU5fm">
<ref role="3uigEE" node="7iCybvTooKL" resolve="Config.ForwardingOptions" />
</node>
<node concept="2ShNRf" id="5Ul706LbRoc" role="33vP2m">
<node concept="1pGfFk" id="5Ul706LbRod" role="2ShVmc">
<ref role="37wK5l" node="7iCybvTop3$" resolve="Config.ForwardingOptions" />
<node concept="37vLTw" id="5Ul706LbSHz" role="37wK5m">
<ref role="3cqZAo" node="7iCybvTsvo8" resolve="ui" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="5Ul706LbRo3" role="3cqZAp">
<node concept="37vLTI" id="5Ul706LbRo4" role="3clFbG">
<node concept="37vLTw" id="5Ul706LbSyC" role="37vLTx">
<ref role="3cqZAo" node="5Ul706LbRoa" resolve="test" />
</node>
<node concept="3EllGN" id="5Ul706LbRo6" role="37vLTJ">
<node concept="37vLTw" id="5Ul706LbRo7" role="3ElQJh">
<ref role="3cqZAo" node="7iCybvTsduC" resolve="allOptions" />
</node>
<node concept="Rm8GO" id="5Ul706LbS8l" role="3ElVtu">
<ref role="Rm8GQ" node="5Ul706LbJYK" resolve="TEST" />
<ref role="1Px2BO" node="7iCybvToD3Z" resolve="Config.Level" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="7iCybvTswVa" role="3cqZAp">
<node concept="37vLTI" id="7iCybvTswVb" role="3clFbG">
<node concept="2OqwBi" id="7iCybvTswVc" role="37vLTJ">
<node concept="Xjq3P" id="7iCybvTswVd" role="2Oq$k0" />
<node concept="2OwXpG" id="7iCybvTswVe" role="2OqNvi">
<ref role="2Oxat5" node="7iCybvTswV3" resolve="options" />
</node>
</node>
<node concept="37vLTw" id="5Ul706LbSVb" role="37vLTx">
<ref role="3cqZAo" node="5Ul706LbRoa" resolve="test" />
<node concept="3clFbF" id="2vm2iDVl2SP" role="3cqZAp">
<node concept="1rXfSq" id="2vm2iDVl2SN" role="3clFbG">
<ref role="37wK5l" node="2vm2iDVkv38" resolve="reset" />
<node concept="Rm8GO" id="2vm2iDVl3Lt" role="37wK5m">
<ref role="Rm8GQ" node="7iCybvToDv4" resolve="DEFAULT" />
<ref role="1Px2BO" node="7iCybvToD3Z" resolve="Config.Level" />
</node>
</node>
</node>
@ -7950,6 +7788,148 @@
<ref role="3uigEE" node="7iCybvTsAb9" resolve="Config.AbstractOptions" />
</node>
<node concept="2tJIrI" id="7iCybvTtpQ0" role="jymVt" />
<node concept="3clFb_" id="2vm2iDVkv38" role="jymVt">
<property role="TrG5h" value="reset" />
<property role="DiZV1" value="true" />
<node concept="3cqZAl" id="2vm2iDVkv3a" role="3clF45" />
<node concept="3Tmbuc" id="2vm2iDVl4Av" role="1B3o_S" />
<node concept="3clFbS" id="2vm2iDVkv3c" role="3clF47">
<node concept="3cpWs8" id="2vm2iDVkEJ3" role="3cqZAp">
<node concept="3cpWsn" id="2vm2iDVkEJ4" role="3cpWs9">
<property role="TrG5h" value="last" />
<node concept="3uibUv" id="2vm2iDVkGZs" role="1tU5fm">
<ref role="3uigEE" node="7iCybvTsAb9" resolve="Config.AbstractOptions" />
</node>
<node concept="10Nm6u" id="2vm2iDVkF5u" role="33vP2m" />
</node>
</node>
<node concept="1DcWWT" id="2vm2iDVkA1p" role="3cqZAp">
<node concept="3clFbS" id="2vm2iDVkA1r" role="2LFqv$">
<node concept="3clFbJ" id="2vm2iDVkChY" role="3cqZAp">
<node concept="3clFbS" id="2vm2iDVkCi0" role="3clFbx">
<node concept="3clFbJ" id="2vm2iDVkHPB" role="3cqZAp">
<node concept="3clFbS" id="2vm2iDVkHPD" role="3clFbx">
<node concept="3clFbF" id="2vm2iDVkU0T" role="3cqZAp">
<node concept="37vLTI" id="2vm2iDVkVbL" role="3clFbG">
<node concept="3EllGN" id="2vm2iDVkUGA" role="37vLTJ">
<node concept="37vLTw" id="2vm2iDVkV30" role="3ElVtu">
<ref role="3cqZAo" node="2vm2iDVkA1s" resolve="lvl" />
</node>
<node concept="37vLTw" id="2vm2iDVkU0R" role="3ElQJh">
<ref role="3cqZAo" node="7iCybvTsduC" resolve="allOptions" />
</node>
</node>
<node concept="2ShNRf" id="2vm2iDVkVzL" role="37vLTx">
<node concept="HV5vD" id="2vm2iDVkVzM" role="2ShVmc">
<ref role="HV5vE" node="7iCybvTokTb" resolve="Config.DefaultOptions" />
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="2vm2iDVkWr3" role="3cqZAp" />
</node>
<node concept="3clFbC" id="2vm2iDVkJQt" role="3clFbw">
<node concept="37vLTw" id="2vm2iDVkKg3" role="3uHU7w">
<ref role="3cqZAo" node="2vm2iDVkA1s" resolve="lvl" />
</node>
<node concept="Rm8GO" id="2vm2iDVkIds" role="3uHU7B">
<ref role="Rm8GQ" node="7iCybvToDv4" resolve="DEFAULT" />
<ref role="1Px2BO" node="7iCybvToD3Z" resolve="Config.Level" />
</node>
</node>
<node concept="9aQIb" id="2vm2iDVkWbk" role="9aQIa">
<node concept="3clFbS" id="2vm2iDVkWbl" role="9aQI4">
<node concept="3clFbF" id="2vm2iDVkWyX" role="3cqZAp">
<node concept="37vLTI" id="2vm2iDVkXyC" role="3clFbG">
<node concept="3EllGN" id="2vm2iDVkYBq" role="37vLTJ">
<node concept="37vLTw" id="2vm2iDVkZ17" role="3ElVtu">
<ref role="3cqZAo" node="2vm2iDVkA1s" resolve="lvl" />
</node>
<node concept="37vLTw" id="2vm2iDVkXQW" role="3ElQJh">
<ref role="3cqZAo" node="7iCybvTsduC" resolve="allOptions" />
</node>
</node>
<node concept="2ShNRf" id="2vm2iDVkWyV" role="37vLTx">
<node concept="1pGfFk" id="2vm2iDVkX1A" role="2ShVmc">
<ref role="37wK5l" node="7iCybvTop3$" resolve="Config.ForwardingOptions" />
<node concept="37vLTw" id="2vm2iDVkX9v" role="37wK5m">
<ref role="3cqZAo" node="2vm2iDVkEJ4" resolve="last" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="2d3UOw" id="2vm2iDVl0JD" role="3clFbw">
<node concept="2OqwBi" id="2vm2iDVkZvi" role="3uHU7B">
<node concept="37vLTw" id="2vm2iDVkIDG" role="2Oq$k0">
<ref role="3cqZAo" node="2vm2iDVkA1s" resolve="lvl" />
</node>
<node concept="liA8E" id="2vm2iDVl02Z" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~Enum.ordinal()" resolve="ordinal" />
</node>
</node>
<node concept="2OqwBi" id="2vm2iDVl1AN" role="3uHU7w">
<node concept="37vLTw" id="2vm2iDVkJDe" role="2Oq$k0">
<ref role="3cqZAo" node="2vm2iDVkznM" resolve="startFrom" />
</node>
<node concept="liA8E" id="2vm2iDVl2di" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~Enum.ordinal()" resolve="ordinal" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="2vm2iDVkFgr" role="3cqZAp">
<node concept="37vLTI" id="2vm2iDVkFx$" role="3clFbG">
<node concept="3EllGN" id="2vm2iDVkGsb" role="37vLTx">
<node concept="37vLTw" id="2vm2iDVkGON" role="3ElVtu">
<ref role="3cqZAo" node="2vm2iDVkA1s" resolve="lvl" />
</node>
<node concept="37vLTw" id="2vm2iDVkFHj" role="3ElQJh">
<ref role="3cqZAo" node="7iCybvTsduC" resolve="allOptions" />
</node>
</node>
<node concept="37vLTw" id="2vm2iDVkFgp" role="37vLTJ">
<ref role="3cqZAo" node="2vm2iDVkEJ4" resolve="last" />
</node>
</node>
</node>
</node>
<node concept="3cpWsn" id="2vm2iDVkA1s" role="1Duv9x">
<property role="TrG5h" value="lvl" />
<node concept="3uibUv" id="2vm2iDVkA7_" role="1tU5fm">
<ref role="3uigEE" node="7iCybvToD3Z" resolve="Config.Level" />
</node>
</node>
<node concept="uiWXb" id="2vm2iDVkByK" role="1DdaDG">
<ref role="uiZuM" node="7iCybvToD3Z" resolve="Config.Level" />
</node>
</node>
<node concept="3clFbF" id="2vm2iDVlc0v" role="3cqZAp">
<node concept="37vLTI" id="2vm2iDVldcz" role="3clFbG">
<node concept="37vLTw" id="2vm2iDVldi0" role="37vLTx">
<ref role="3cqZAo" node="2vm2iDVkEJ4" resolve="last" />
</node>
<node concept="2OqwBi" id="2vm2iDVlcpc" role="37vLTJ">
<node concept="Xjq3P" id="2vm2iDVlc0t" role="2Oq$k0" />
<node concept="2OwXpG" id="2vm2iDVlcNi" role="2OqNvi">
<ref role="2Oxat5" node="7iCybvTswV3" resolve="options" />
</node>
</node>
</node>
</node>
</node>
<node concept="37vLTG" id="2vm2iDVkznM" role="3clF46">
<property role="TrG5h" value="startFrom" />
<node concept="3uibUv" id="2vm2iDVkznL" role="1tU5fm">
<ref role="3uigEE" node="7iCybvToD3Z" resolve="Config.Level" />
</node>
</node>
</node>
<node concept="2tJIrI" id="2vm2iDVkoTm" role="jymVt" />
<node concept="3clFb_" id="7iCybvTtBza" role="jymVt">
<property role="TrG5h" value="registerProvider" />
<node concept="37vLTG" id="7iCybvTtCQ4" role="3clF46">
@ -7969,7 +7949,7 @@
</node>
</node>
<node concept="3cqZAl" id="7iCybvTtBzc" role="3clF45" />
<node concept="3Tm1VV" id="7iCybvTtBzd" role="1B3o_S" />
<node concept="3Tmbuc" id="2vm2iDVl5XU" role="1B3o_S" />
<node concept="3clFbS" id="7iCybvTtBze" role="3clF47">
<node concept="3clFbF" id="7iCybvTtEEX" role="3cqZAp">
<node concept="2OqwBi" id="7iCybvTtGL5" role="3clFbG">