Introduce occurrence store as cache for their reuse in Queries strategy

It's important that program that uses occurrences from cache
shouldn't include rules that could produce their duplicates.
So implementation of occurence cache includes 2 parts:
on reactor level & in ProrgramFactory.

When RuleBuilders are produced, cache is queried whether
there're already  occurrences associated with the rule template
in question. If so -- then those RuleBuilders are not included
into the program (as well as all RuleBuilders required by it).
This commit is contained in:
Grigorii Kirgizov 2020-12-02 19:32:03 +03:00
parent 4a342437f0
commit 3eccaf81a1
8 changed files with 2689 additions and 181 deletions

View File

@ -812,6 +812,29 @@
</node>
</node>
</node>
<node concept="3clFbF" id="1imVejVBgja" role="3cqZAp">
<node concept="37vLTI" id="1imVejVBi1a" role="3clFbG">
<node concept="2OqwBi" id="1imVejVBiTV" role="37vLTx">
<node concept="37vLTw" id="1imVejVBiO2" role="2Oq$k0">
<ref role="3cqZAo" node="7WKNeR9xpPP" resolve="config" />
</node>
<node concept="liA8E" id="1imVejVBj59" role="2OqNvi">
<ref role="37wK5l" to="w7la:~EvaluationSession$Config.withStore(java.util.Collection)" resolve="withStore" />
<node concept="2OqwBi" id="1imVejVBjmO" role="37wK5m">
<node concept="37vLTw" id="1imVejVBja6" role="2Oq$k0">
<ref role="3cqZAo" node="7lt0LtQtD2v" resolve="programProducer" />
</node>
<node concept="liA8E" id="1imVejVBjxN" role="2OqNvi">
<ref role="37wK5l" node="1imVejVAvuv" resolve="initialStore" />
</node>
</node>
</node>
</node>
<node concept="37vLTw" id="1imVejVBgj8" role="37vLTJ">
<ref role="3cqZAo" node="7WKNeR9xpPP" resolve="config" />
</node>
</node>
</node>
<node concept="3clFbH" id="3GlpCDSBYQN" role="3cqZAp" />
<node concept="3clFbF" id="1Ry9kf2v6ed" role="3cqZAp">
<node concept="2YIFZM" id="5wYq9r5EDbG" role="3clFbG">
@ -3831,6 +3854,11 @@
<ref role="3cqZAo" node="7DvO2M9peEl" resolve="ruleProcessingSession" />
</node>
<node concept="10Nm6u" id="7i3KM7g75Hb" role="37wK5m" />
<node concept="2ShNRf" id="1imVejVAmxY" role="37wK5m">
<node concept="HV5vD" id="1imVejVAn7b" role="2ShVmc">
<ref role="HV5vE" to="i348:1imVejVtN6P" resolve="PrincipalStore" />
</node>
</node>
</node>
</node>
<node concept="37vLTG" id="6OXbTDxtJVO" role="3clF46">
@ -3930,6 +3958,25 @@
</node>
</node>
</node>
<node concept="3clFbF" id="1imVejVAjJ4" role="3cqZAp">
<node concept="37vLTI" id="1imVejVAmlR" role="3clFbG">
<node concept="37vLTw" id="1imVejVAmo6" role="37vLTx">
<ref role="3cqZAo" node="1imVejVAiZ7" resolve="store" />
</node>
<node concept="2OqwBi" id="1imVejVAjTp" role="37vLTJ">
<node concept="Xjq3P" id="1imVejVAjJ2" role="2Oq$k0" />
<node concept="2OwXpG" id="1imVejVAm9w" role="2OqNvi">
<ref role="2Oxat5" node="1imVejVAllg" resolve="occurrenceCache" />
</node>
</node>
</node>
</node>
</node>
<node concept="37vLTG" id="1imVejVAiZ7" role="3clF46">
<property role="TrG5h" value="store" />
<node concept="3uibUv" id="1imVejVAjq5" role="1tU5fm">
<ref role="3uigEE" to="i348:1imVejVtN6P" resolve="PrincipalStore" />
</node>
</node>
</node>
<node concept="2tJIrI" id="3GlpCDSxTK6" role="jymVt" />
@ -4214,6 +4261,23 @@
</node>
</node>
</node>
<node concept="2tJIrI" id="1imVejVAtjd" role="jymVt" />
<node concept="3clFb_" id="1imVejVAvuv" role="jymVt">
<property role="TrG5h" value="initialStore" />
<node concept="3clFbS" id="1imVejVAvuy" role="3clF47">
<node concept="3clFbF" id="1imVejVB9zs" role="3cqZAp">
<node concept="37vLTw" id="1imVejVB9zr" role="3clFbG">
<ref role="3cqZAo" node="1imVejVAyjK" resolve="initialStore" />
</node>
</node>
</node>
<node concept="3Tm1VV" id="1imVejVAuBY" role="1B3o_S" />
<node concept="3vKaQO" id="1imVejVB8D1" role="3clF45">
<node concept="3uibUv" id="1imVejVB9qx" role="3O5elw">
<ref role="3uigEE" to="w7la:~ConstraintOccurrence" resolve="ConstraintOccurrence" />
</node>
</node>
</node>
<node concept="2tJIrI" id="39eNUjlYSQk" role="jymVt" />
<node concept="3clFb_" id="7kTeLbPnDc0" role="jymVt">
<property role="TrG5h" value="doProduce" />
@ -4239,6 +4303,91 @@
</node>
<node concept="3Tm6S6" id="7kTeLbPnEee" role="1B3o_S" />
<node concept="3clFbS" id="7kTeLbPnDc4" role="3clF47">
<node concept="3SKdUt" id="1imVejV_hf1" role="3cqZAp">
<node concept="1PaTwC" id="1imVejV_hf2" role="1aUNEU">
<node concept="3oM_SD" id="1imVejV_kEA" role="1PaTwD">
<property role="3oM_SC" value="Skip" />
</node>
<node concept="3oM_SD" id="1imVejV_kEL" role="1PaTwD">
<property role="3oM_SC" value="rules" />
</node>
<node concept="3oM_SD" id="1imVejV_kEO" role="1PaTwD">
<property role="3oM_SC" value="and" />
</node>
<node concept="3oM_SD" id="1imVejV_kGM" role="1PaTwD">
<property role="3oM_SC" value="recursively" />
</node>
<node concept="3oM_SD" id="1imVejV_kJ6" role="1PaTwD">
<property role="3oM_SC" value="rules" />
</node>
<node concept="3oM_SD" id="1imVejV_kH0" role="1PaTwD">
<property role="3oM_SC" value="for" />
</node>
<node concept="3oM_SD" id="1imVejV_kHS" role="1PaTwD">
<property role="3oM_SC" value="nodes" />
</node>
<node concept="3oM_SD" id="1imVejV_kIh" role="1PaTwD">
<property role="3oM_SC" value="required" />
</node>
<node concept="3oM_SD" id="1imVejV_kIp" role="1PaTwD">
<property role="3oM_SC" value="in" />
</node>
<node concept="3oM_SD" id="1imVejV_kIF" role="1PaTwD">
<property role="3oM_SC" value="them" />
</node>
</node>
</node>
<node concept="3SKdUt" id="1imVejV_hB6" role="3cqZAp">
<node concept="1PaTwC" id="1imVejV_hB7" role="1aUNEU">
<node concept="3oM_SD" id="1imVejV_hB8" role="1PaTwD">
<property role="3oM_SC" value="where" />
</node>
<node concept="3oM_SD" id="1imVejV_hKQ" role="1PaTwD">
<property role="3oM_SC" value="the" />
</node>
<node concept="3oM_SD" id="1imVejV_kJz" role="1PaTwD">
<property role="3oM_SC" value="rules" />
</node>
<node concept="3oM_SD" id="1imVejV_hKT" role="1PaTwD">
<property role="3oM_SC" value="eval" />
</node>
<node concept="3oM_SD" id="1imVejV_hL6" role="1PaTwD">
<property role="3oM_SC" value="result" />
</node>
<node concept="3oM_SD" id="1imVejV_kK2" role="1PaTwD">
<property role="3oM_SC" value="(i.e." />
</node>
<node concept="3oM_SD" id="1imVejV_kKn" role="1PaTwD">
<property role="3oM_SC" value="occurrences)" />
</node>
<node concept="3oM_SD" id="1imVejV_hN2" role="1PaTwD">
<property role="3oM_SC" value="is" />
</node>
<node concept="3oM_SD" id="1imVejV_hNj" role="1PaTwD">
<property role="3oM_SC" value="already" />
</node>
<node concept="3oM_SD" id="1imVejV_kL2" role="1PaTwD">
<property role="3oM_SC" value="known" />
</node>
</node>
</node>
<node concept="3cpWs8" id="1imVejV_lwF" role="3cqZAp">
<node concept="3cpWsn" id="1imVejV_lwG" role="3cpWs9">
<property role="TrG5h" value="cachedResultsFilter" />
<node concept="3uibUv" id="1imVejV_lwH" role="1tU5fm">
<ref role="3uigEE" to="i348:1imVejVxYQd" resolve="TemplateApplicationFilter" />
</node>
<node concept="2OqwBi" id="1imVejVAsJW" role="33vP2m">
<node concept="37vLTw" id="1imVejVAsqq" role="2Oq$k0">
<ref role="3cqZAo" node="1imVejVAllg" resolve="occurrenceCache" />
</node>
<node concept="liA8E" id="1imVejVAt8M" role="2OqNvi">
<ref role="37wK5l" to="i348:1imVejV_97e" resolve="toFilter" />
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="1imVejV_lH8" role="3cqZAp" />
<node concept="3SKdUt" id="cmlg9OD01S" role="3cqZAp">
<node concept="1PaTwC" id="cmlg9OD01T" role="1aUNEU">
<node concept="3oM_SD" id="cmlg9OD01V" role="1PaTwD">
@ -4350,6 +4499,9 @@
<node concept="37vLTw" id="6nFpYluWEsS" role="37wK5m">
<ref role="3cqZAo" node="6nFpYluW$vz" resolve="originIndex" />
</node>
<node concept="37vLTw" id="1imVejV_md6" role="37wK5m">
<ref role="3cqZAo" node="1imVejV_lwG" resolve="cachedResultsFilter" />
</node>
<node concept="37vLTw" id="6nFpYlukSZ2" role="37wK5m">
<ref role="3cqZAo" node="6nFpYlu8ju5" resolve="updatesRecorder" />
</node>
@ -4502,6 +4654,32 @@
</node>
</node>
</node>
<node concept="3clFbF" id="1imVejVAz4t" role="3cqZAp">
<node concept="37vLTI" id="1imVejVB2DR" role="3clFbG">
<node concept="2OqwBi" id="1imVejVB2QO" role="37vLTx">
<node concept="37vLTw" id="1imVejVB2Hs" role="2Oq$k0">
<ref role="3cqZAo" node="1imVejVAllg" resolve="occurrenceCache" />
</node>
<node concept="liA8E" id="1imVejVB32M" role="2OqNvi">
<ref role="37wK5l" to="i348:1imVejVABtA" resolve="getAll" />
<node concept="2OqwBi" id="1imVejVB3AY" role="37wK5m">
<node concept="37vLTw" id="1imVejVB3f4" role="2Oq$k0">
<ref role="3cqZAo" node="1imVejV_lwG" resolve="cachedResultsFilter" />
</node>
<node concept="liA8E" id="1imVejVB3P5" role="2OqNvi">
<ref role="37wK5l" to="i348:1imVejVyfmY" resolve="getSkippedApplications" />
</node>
</node>
</node>
</node>
<node concept="2OqwBi" id="1imVejVAzcK" role="37vLTJ">
<node concept="Xjq3P" id="1imVejVAz4r" role="2Oq$k0" />
<node concept="2OwXpG" id="1imVejVAzjA" role="2OqNvi">
<ref role="2Oxat5" node="1imVejVAyjK" resolve="initialStore" />
</node>
</node>
</node>
</node>
</node>
<node concept="2OqwBi" id="cmlg9OCaMk" role="3clFbw">
<node concept="37vLTw" id="cmlg9OCaBS" role="2Oq$k0">
@ -4800,6 +4978,27 @@
<ref role="3uigEE" to="ksgm:70Wv0dJhQb2" resolve="OriginIndex" />
</node>
</node>
<node concept="2tJIrI" id="1imVejVAwd$" role="jymVt" />
<node concept="312cEg" id="1imVejVAllg" role="jymVt">
<property role="TrG5h" value="occurrenceCache" />
<node concept="3Tm6S6" id="1imVejVAkDa" role="1B3o_S" />
<node concept="3uibUv" id="1imVejVAljZ" role="1tU5fm">
<ref role="3uigEE" to="i348:1imVejVtN6P" resolve="PrincipalStore" />
</node>
</node>
<node concept="312cEg" id="1imVejVAyjK" role="jymVt">
<property role="TrG5h" value="initialStore" />
<node concept="3Tm6S6" id="1imVejVAxyv" role="1B3o_S" />
<node concept="3vKaQO" id="1imVejVB40g" role="1tU5fm">
<node concept="3uibUv" id="1imVejVB4C7" role="3O5elw">
<ref role="3uigEE" to="w7la:~ConstraintOccurrence" resolve="ConstraintOccurrence" />
</node>
</node>
<node concept="2YIFZM" id="1imVejVB8x2" role="33vP2m">
<ref role="37wK5l" to="33ny:~Collections.emptyList()" resolve="emptyList" />
<ref role="1Pybhc" to="33ny:~Collections" resolve="Collections" />
</node>
</node>
<node concept="2tJIrI" id="6OXbTD$xs00" role="jymVt" />
</node>
<node concept="312cEu" id="3pMFS1zdqns">

View File

@ -955,6 +955,12 @@
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
<node concept="37vLTG" id="5F2qBBEoUdy" role="3clF46">
<property role="TrG5h" value="templateFilter" />
<node concept="3uibUv" id="5F2qBBEp7wZ" role="1tU5fm">
<ref role="3uigEE" to="i348:1imVejVxYQd" resolve="TemplateApplicationFilter" />
</node>
</node>
<node concept="37vLTG" id="2hQbw6HCsn9" role="3clF46">
<property role="TrG5h" value="staticRules" />
<node concept="10P_77" id="2hQbw6HCBcP" role="1tU5fm" />
@ -976,31 +982,34 @@
</node>
<node concept="3Tm1VV" id="7DvO2M9Uagx" role="1B3o_S" />
<node concept="3clFbS" id="7DvO2M9Uagy" role="3clF47">
<node concept="3cpWs6" id="2hQbw6HCJfu" role="3cqZAp">
<node concept="2OqwBi" id="2hQbw6HCJfv" role="3cqZAk">
<node concept="1rXfSq" id="2hQbw6HCJfw" role="2Oq$k0">
<node concept="3clFbF" id="7DvO2M9UagD" role="3cqZAp">
<node concept="2OqwBi" id="7DvO2M9UagE" role="3clFbG">
<node concept="1rXfSq" id="7DvO2M9UagF" role="2Oq$k0">
<ref role="37wK5l" node="1XKnVP4HJx" resolve="planBuilder" />
<node concept="2OqwBi" id="2hQbw6HCJfx" role="37wK5m">
<node concept="37vLTw" id="2hQbw6HCJfy" role="2Oq$k0">
<node concept="2OqwBi" id="7DvO2M9UagG" role="37wK5m">
<node concept="37vLTw" id="7DvO2M9UagH" role="2Oq$k0">
<ref role="3cqZAo" node="7DvO2M9Uagr" resolve="ruleTemplate" />
</node>
<node concept="liA8E" id="2hQbw6HCJfz" role="2OqNvi">
<node concept="liA8E" id="7DvO2M9UagI" role="2OqNvi">
<ref role="37wK5l" to="i348:4MqhgXUndvp" resolve="table" />
</node>
</node>
</node>
<node concept="liA8E" id="2hQbw6HCJf$" role="2OqNvi">
<node concept="liA8E" id="7DvO2M9UagJ" role="2OqNvi">
<ref role="37wK5l" node="5NUR$OCWAA" resolve="updateRules" />
<node concept="37vLTw" id="2hQbw6HCJf_" role="37wK5m">
<node concept="37vLTw" id="7DvO2M9UagK" role="37wK5m">
<ref role="3cqZAo" node="7DvO2M9Uagr" resolve="ruleTemplate" />
</node>
<node concept="37vLTw" id="2hQbw6HCJfA" role="37wK5m">
<node concept="37vLTw" id="3OUB6BCcNeG" role="37wK5m">
<ref role="3cqZAo" node="3OUB6BCcGW4" resolve="node" />
</node>
<node concept="37vLTw" id="2hQbw6HHN2j" role="37wK5m">
<node concept="37vLTw" id="5F2qBBEpjxU" role="37wK5m">
<ref role="3cqZAo" node="5F2qBBEoUdy" resolve="templateFilter" />
</node>
<node concept="37vLTw" id="2D0V9mfxCNb" role="37wK5m">
<ref role="3cqZAo" node="2hQbw6HCsn9" resolve="staticRules" />
</node>
<node concept="37vLTw" id="2hQbw6HCJfB" role="37wK5m">
<node concept="37vLTw" id="5NUR$ODdHB" role="37wK5m">
<ref role="3cqZAo" node="7DvO2M9Uagt" resolve="ruleBuilders" />
</node>
</node>
@ -1510,8 +1519,8 @@
<property role="TrG5h" value="updateAuxRules" />
<node concept="37vLTG" id="7DvO2M9Uahq" role="3clF46">
<property role="TrG5h" value="key" />
<node concept="3uibUv" id="1XKnVP5pu1" role="1tU5fm">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
<node concept="3uibUv" id="5F2qBBEuFVp" role="1tU5fm">
<ref role="3uigEE" to="i348:1ffsG7bW_V4" resolve="RuleTemplate" />
</node>
</node>
<node concept="37vLTG" id="1XKnVP6hBI" role="3clF46">
@ -1525,18 +1534,6 @@
<node concept="3cqZAl" id="1XKnVPl3dw" role="3clF45" />
<node concept="3Tm1VV" id="1XKnVP5jlU" role="1B3o_S" />
<node concept="3clFbS" id="7DvO2M9Uahu" role="3clF47">
<node concept="3clFbF" id="1XKnVPkPTm" role="3cqZAp">
<node concept="2ShNRf" id="1XKnVPkPTi" role="3clFbG">
<node concept="2HTt$P" id="1XKnVPkQVE" role="2ShVmc">
<node concept="3uibUv" id="1XKnVPkQWf" role="2HTBi0">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
<node concept="37vLTw" id="1XKnVPkSJW" role="2HTEbv">
<ref role="3cqZAo" node="7DvO2M9Uahq" resolve="key" />
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="7DvO2M9Uahv" role="3cqZAp">
<node concept="3cpWsn" id="7DvO2M9Uahw" role="3cpWs9">
<property role="TrG5h" value="builder" />
@ -1614,6 +1611,10 @@
<ref role="3cqZAo" node="7DvO2M9Uahq" resolve="key" />
</node>
<node concept="10Nm6u" id="1XKnVPl1dn" role="37wK5m" />
<node concept="10M0yZ" id="5F2qBBEpxNy" role="37wK5m">
<ref role="3cqZAo" to="i348:5F2qBBEpoqL" resolve="EMPTY" />
<ref role="1PxDUh" to="i348:1imVejVxYQd" resolve="TemplateApplicationFilter" />
</node>
<node concept="3clFbT" id="2hQbw6HJPW5" role="37wK5m" />
<node concept="1bVj0M" id="47oVduOCnI8" role="37wK5m">
<node concept="3clFbS" id="47oVduOCnIa" role="1bW5cS">
@ -3217,8 +3218,8 @@
<property role="TrG5h" value="updateRules" />
<node concept="37vLTG" id="5NUR$OCWAB" role="3clF46">
<property role="TrG5h" value="template" />
<node concept="3uibUv" id="5NUR$OCWAC" role="1tU5fm">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
<node concept="3uibUv" id="5F2qBBEqhDJ" role="1tU5fm">
<ref role="3uigEE" to="i348:1ffsG7bW_V4" resolve="RuleTemplate" />
</node>
</node>
<node concept="37vLTG" id="5NUR$OCWAD" role="3clF46">
@ -3227,6 +3228,12 @@
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
<node concept="37vLTG" id="5F2qBBEpyFR" role="3clF46">
<property role="TrG5h" value="templateFilter" />
<node concept="3uibUv" id="5F2qBBEpELJ" role="1tU5fm">
<ref role="3uigEE" to="i348:1imVejVxYQd" resolve="TemplateApplicationFilter" />
</node>
</node>
<node concept="37vLTG" id="2hQbw6HI6yJ" role="3clF46">
<property role="TrG5h" value="staticRules" />
<node concept="10P_77" id="2hQbw6HIggI" role="1tU5fm" />
@ -3309,14 +3316,60 @@
</node>
</node>
</node>
<node concept="3clFbH" id="5F2qBBEtoSV" role="3cqZAp" />
<node concept="3clFbJ" id="5F2qBBEpR8Z" role="3cqZAp">
<node concept="3clFbS" id="5F2qBBEpR91" role="3clFbx">
<node concept="3cpWs8" id="5F2qBBEzATB" role="3cqZAp">
<node concept="3cpWsn" id="5F2qBBEzATC" role="3cpWs9">
<property role="TrG5h" value="noRuleIds" />
<node concept="3vKaQO" id="5F2qBBEzATD" role="1tU5fm">
<node concept="3uibUv" id="5F2qBBEzATE" role="3O5elw">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
<node concept="2YIFZM" id="5F2qBBEzATF" role="33vP2m">
<ref role="37wK5l" to="33ny:~Collections.emptyList()" resolve="emptyList" />
<ref role="1Pybhc" to="33ny:~Collections" resolve="Collections" />
</node>
</node>
</node>
<node concept="3cpWs6" id="5F2qBBErJ$d" role="3cqZAp">
<node concept="1Ls8ON" id="5F2qBBErJ$e" role="3cqZAk">
<node concept="37vLTw" id="5F2qBBEzU5h" role="1Lso8e">
<ref role="3cqZAo" node="5F2qBBEzATC" resolve="noRuleIds" />
</node>
<node concept="37vLTw" id="5F2qBBErJ$g" role="1Lso8e">
<ref role="3cqZAo" node="47oVduOFP_0" resolve="cachedReq" />
</node>
</node>
</node>
</node>
<node concept="2OqwBi" id="5F2qBBEqSh0" role="3clFbw">
<node concept="37vLTw" id="5F2qBBEpZ7l" role="2Oq$k0">
<ref role="3cqZAo" node="5F2qBBEpyFR" resolve="templateFilter" />
</node>
<node concept="liA8E" id="5F2qBBEqSUq" role="2OqNvi">
<ref role="37wK5l" to="i348:1imVejVxZp5" resolve="skipApplication" />
<node concept="1Ls8ON" id="5F2qBBEqT8Y" role="37wK5m">
<node concept="2OqwBi" id="5F2qBBEqTt0" role="1Lso8e">
<node concept="37vLTw" id="5F2qBBEqTiT" role="2Oq$k0">
<ref role="3cqZAo" node="5NUR$OCWAB" resolve="template" />
</node>
<node concept="liA8E" id="5F2qBBEqU4p" role="2OqNvi">
<ref role="37wK5l" to="i348:4vBwiiUVL7_" resolve="name" />
</node>
</node>
<node concept="37vLTw" id="5F2qBBEqUdf" role="1Lso8e">
<ref role="3cqZAo" node="5NUR$OCWAD" resolve="node" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="5F2qBBEpHlD" role="3cqZAp" />
<node concept="3cpWs8" id="4baZKvb6gnB" role="3cqZAp">
<node concept="3cpWsn" id="4baZKvb6gnC" role="3cpWs9">
<property role="TrG5h" value="validated" />
<node concept="3vKaQO" id="47oVduOGVtg" role="1tU5fm">
<node concept="3uibUv" id="47oVduOGVti" role="3O5elw">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
<node concept="2OqwBi" id="4baZKvb6gnD" role="33vP2m">
<node concept="2OqwBi" id="4baZKvb6gnE" role="2Oq$k0">
<node concept="37vLTw" id="4baZKvb6gnF" role="2Oq$k0">
@ -3345,6 +3398,11 @@
</node>
<node concept="ANE8D" id="4baZKvb6gnP" role="2OqNvi" />
</node>
<node concept="3vKaQO" id="47oVduOGVtg" role="1tU5fm">
<node concept="3uibUv" id="47oVduOGVti" role="3O5elw">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
</node>
</node>
<node concept="3clFbJ" id="2hQbw6HIEVt" role="3cqZAp">
@ -3585,14 +3643,59 @@
</node>
</node>
<node concept="3clFbH" id="47oVduOJe2a" role="3cqZAp" />
<node concept="3clFbJ" id="5F2qBBEsAKg" role="3cqZAp">
<node concept="3clFbS" id="5F2qBBEsAKh" role="3clFbx">
<node concept="3cpWs8" id="5F2qBBEyo4Q" role="3cqZAp">
<node concept="3cpWsn" id="5F2qBBEyo4T" role="3cpWs9">
<property role="TrG5h" value="noRuleIds" />
<node concept="3vKaQO" id="5F2qBBEyo4U" role="1tU5fm">
<node concept="3uibUv" id="5F2qBBEziOI" role="3O5elw">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
<node concept="2YIFZM" id="5F2qBBEyo4W" role="33vP2m">
<ref role="37wK5l" to="33ny:~Collections.emptyList()" resolve="emptyList" />
<ref role="1Pybhc" to="33ny:~Collections" resolve="Collections" />
</node>
</node>
</node>
<node concept="3cpWs6" id="5F2qBBEsAKi" role="3cqZAp">
<node concept="1Ls8ON" id="5F2qBBEsAKj" role="3cqZAk">
<node concept="37vLTw" id="5F2qBBEywvs" role="1Lso8e">
<ref role="3cqZAo" node="5F2qBBEyo4T" resolve="noRuleIds" />
</node>
<node concept="37vLTw" id="5F2qBBEsK0S" role="1Lso8e">
<ref role="3cqZAo" node="47oVduOIlWD" resolve="reqs" />
</node>
</node>
</node>
</node>
<node concept="2OqwBi" id="5F2qBBEsAKm" role="3clFbw">
<node concept="37vLTw" id="5F2qBBEsAKn" role="2Oq$k0">
<ref role="3cqZAo" node="5F2qBBEpyFR" resolve="templateFilter" />
</node>
<node concept="liA8E" id="5F2qBBEsAKo" role="2OqNvi">
<ref role="37wK5l" to="i348:1imVejVxZp5" resolve="skipApplication" />
<node concept="1Ls8ON" id="5F2qBBEsAKp" role="37wK5m">
<node concept="2OqwBi" id="5F2qBBEsAKq" role="1Lso8e">
<node concept="37vLTw" id="5F2qBBEsAKr" role="2Oq$k0">
<ref role="3cqZAo" node="5NUR$OCWAB" resolve="template" />
</node>
<node concept="liA8E" id="5F2qBBEsAKs" role="2OqNvi">
<ref role="37wK5l" to="i348:4vBwiiUVL7_" resolve="name" />
</node>
</node>
<node concept="37vLTw" id="5F2qBBEsAKt" role="1Lso8e">
<ref role="3cqZAo" node="5NUR$OCWAD" resolve="node" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="5F2qBBEKu_g" role="3cqZAp" />
<node concept="3cpWs8" id="4baZKvb26tb" role="3cqZAp">
<node concept="3cpWsn" id="4baZKvb26tc" role="3cpWs9">
<property role="TrG5h" value="ids" />
<node concept="3vKaQO" id="47oVduOQ8$X" role="1tU5fm">
<node concept="3uibUv" id="47oVduOQ8$Z" role="3O5elw">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
<node concept="2OqwBi" id="4baZKvb26td" role="33vP2m">
<node concept="2OqwBi" id="4baZKvb26te" role="2Oq$k0">
<node concept="37vLTw" id="4baZKvb26tf" role="2Oq$k0">
@ -3621,6 +3724,11 @@
</node>
<node concept="ANE8D" id="4baZKvb26tp" role="2OqNvi" />
</node>
<node concept="3vKaQO" id="47oVduOQ8$X" role="1tU5fm">
<node concept="3uibUv" id="47oVduOQ8$Z" role="3O5elw">
<ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
</node>
</node>
</node>
</node>
<node concept="3clFbJ" id="2hQbw6HJwrx" role="3cqZAp">
@ -3881,11 +3989,6 @@
<node concept="3cpWs8" id="6tXRJZa$p99" role="3cqZAp">
<node concept="3cpWsn" id="6tXRJZa$p9a" role="3cpWs9">
<property role="TrG5h" value="rules" />
<node concept="3vKaQO" id="47oVduOI8VZ" role="1tU5fm">
<node concept="3uibUv" id="47oVduOI8W1" role="3O5elw">
<ref role="3uigEE" to="i348:7nPD14OaO1O" resolve="RuleEx" />
</node>
</node>
<node concept="3EllGN" id="6tXRJZa$p9b" role="33vP2m">
<node concept="37vLTw" id="6tXRJZa$p9c" role="3ElVtu">
<ref role="3cqZAo" node="4J__M654a6" resolve="node" />
@ -3899,6 +4002,11 @@
</node>
</node>
</node>
<node concept="3vKaQO" id="47oVduOI8VZ" role="1tU5fm">
<node concept="3uibUv" id="47oVduOI8W1" role="3O5elw">
<ref role="3uigEE" to="i348:7nPD14OaO1O" resolve="RuleEx" />
</node>
</node>
</node>
</node>
<node concept="3clFbJ" id="6tXRJZaAzZe" role="3cqZAp">
@ -6469,6 +6577,19 @@
</node>
</node>
</node>
<node concept="3clFbF" id="7wgfyCWYipi" role="3cqZAp">
<node concept="37vLTI" id="7wgfyCWYjWS" role="3clFbG">
<node concept="37vLTw" id="7wgfyCWYmcx" role="37vLTx">
<ref role="3cqZAo" node="7wgfyCWXU8J" resolve="knownOccurrences" />
</node>
<node concept="2OqwBi" id="7wgfyCWYiBT" role="37vLTJ">
<node concept="Xjq3P" id="7wgfyCWYipg" role="2Oq$k0" />
<node concept="2OwXpG" id="7wgfyCWYiNE" role="2OqNvi">
<ref role="2Oxat5" node="7wgfyCWYacZ" resolve="rulesFilter" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="6nFpYlujV$2" role="3cqZAp">
<node concept="37vLTI" id="6nFpYlujV$4" role="3clFbG">
<node concept="2OqwBi" id="6nFpYluk4M4" role="37vLTJ">
@ -6507,6 +6628,12 @@
<ref role="3uigEE" node="70Wv0dJhQb2" resolve="OriginIndex" />
</node>
</node>
<node concept="37vLTG" id="7wgfyCWXU8J" role="3clF46">
<property role="TrG5h" value="knownOccurrences" />
<node concept="3uibUv" id="1imVejVykdC" role="1tU5fm">
<ref role="3uigEE" to="i348:1imVejVxYQd" resolve="TemplateApplicationFilter" />
</node>
</node>
<node concept="37vLTG" id="6nFpYlujKf7" role="3clF46">
<property role="TrG5h" value="updatesRecorder" />
<node concept="3uibUv" id="6nFpYlujNlq" role="1tU5fm">
@ -6636,6 +6763,25 @@
</node>
</node>
</node>
<node concept="3cpWs8" id="5F2qBBEuDVN" role="3cqZAp">
<node concept="3cpWsn" id="5F2qBBEuDVO" role="3cpWs9">
<property role="TrG5h" value="dummyMainTemplate" />
<node concept="3uibUv" id="5F2qBBEuDVP" role="1tU5fm">
<ref role="3uigEE" to="i348:1ffsG7bW_V4" resolve="RuleTemplate" />
</node>
<node concept="2ShNRf" id="5F2qBBEuEZW" role="33vP2m">
<node concept="1pGfFk" id="5F2qBBEuFvp" role="2ShVmc">
<ref role="37wK5l" to="i348:5F2qBBEufuQ" resolve="ConstRuleTemplate" />
<node concept="Xl_RD" id="5F2qBBEuFAr" role="37wK5m">
<property role="Xl_RC" value="main" />
</node>
<node concept="37vLTw" id="5F2qBBEuFPJ" role="37wK5m">
<ref role="3cqZAo" node="6i42QSskaRC" resolve="mainRulesBuilder" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="1XKnVPbj6S" role="3cqZAp" />
<node concept="3clFbF" id="1XKnVPlss5" role="3cqZAp">
<node concept="2OqwBi" id="1XKnVPlss7" role="3clFbG">
@ -6644,8 +6790,8 @@
</node>
<node concept="liA8E" id="1XKnVPlss9" role="2OqNvi">
<ref role="37wK5l" node="7DvO2M9Uahp" resolve="updateAuxRules" />
<node concept="Xl_RD" id="1XKnVPlssa" role="37wK5m">
<property role="Xl_RC" value="main" />
<node concept="37vLTw" id="5F2qBBEvaJ5" role="37wK5m">
<ref role="3cqZAo" node="5F2qBBEuDVO" resolve="dummyMainTemplate" />
</node>
<node concept="2ShNRf" id="1XKnVPlvCB" role="37wK5m">
<node concept="Tc6Ow" id="47oVduORjgv" role="2ShVmc">
@ -8353,7 +8499,10 @@
<node concept="37vLTw" id="47oVduO_Y8r" role="37wK5m">
<ref role="3cqZAo" node="tIwzd1I3Xp" resolve="node" />
</node>
<node concept="37vLTw" id="2hQbw6HDNEu" role="37wK5m">
<node concept="37vLTw" id="5F2qBBEoP1J" role="37wK5m">
<ref role="3cqZAo" node="7wgfyCWYacZ" resolve="rulesFilter" />
</node>
<node concept="37vLTw" id="2D0V9mfxon2" role="37wK5m">
<ref role="3cqZAo" node="5HxDM7D4Qx4" resolve="isPreamble" />
</node>
<node concept="1bVj0M" id="47oVduOzZMM" role="37wK5m">
@ -8436,6 +8585,7 @@
</node>
</node>
</node>
<node concept="3clFbH" id="5F2qBBEu0og" role="3cqZAp" />
<node concept="3clFbF" id="47oVduOAgbp" role="3cqZAp">
<node concept="2OqwBi" id="47oVduOAgbq" role="3clFbG">
<node concept="37vLTw" id="47oVduOAgbr" role="2Oq$k0">
@ -8615,24 +8765,32 @@
</node>
</node>
</node>
<node concept="1Wc70l" id="2hQbw6Hz_o$" role="3clFbw">
<node concept="3fqX7Q" id="2hQbw6HzAuh" role="3uHU7w">
<node concept="37vLTw" id="2hQbw6HzABM" role="3fr31v">
<ref role="3cqZAo" node="5HxDM7D4Qx4" resolve="isPreamble" />
<node concept="1Wc70l" id="2D0V9mfxqbP" role="3clFbw">
<node concept="1Wc70l" id="5F2qBBEnch0" role="3uHU7B">
<node concept="1Wc70l" id="47oVduO_Y9A" role="3uHU7B">
<node concept="3y3z36" id="47oVduO_Y9E" role="3uHU7B">
<node concept="37vLTw" id="47oVduO_Y9F" role="3uHU7B">
<ref role="3cqZAo" node="6nFpYlujVzU" resolve="updatesRecorder" />
</node>
<node concept="10Nm6u" id="47oVduO_Y9G" role="3uHU7w" />
</node>
<node concept="3y3z36" id="47oVduO_Y9B" role="3uHU7w">
<node concept="37vLTw" id="47oVduO_Y9D" role="3uHU7B">
<ref role="3cqZAo" node="tIwzd1I3Xp" resolve="node" />
</node>
<node concept="10Nm6u" id="47oVduO_Y9C" role="3uHU7w" />
</node>
</node>
<node concept="2OqwBi" id="5F2qBBEne7q" role="3uHU7w">
<node concept="37vLTw" id="5F2qBBEndw_" role="2Oq$k0">
<ref role="3cqZAo" node="47oVduOUruh" resolve="ruleIds" />
</node>
<node concept="3GX2aA" id="5F2qBBEneFa" role="2OqNvi" />
</node>
</node>
<node concept="1Wc70l" id="47oVduO_Y9A" role="3uHU7B">
<node concept="3y3z36" id="47oVduO_Y9E" role="3uHU7B">
<node concept="37vLTw" id="47oVduO_Y9F" role="3uHU7B">
<ref role="3cqZAo" node="6nFpYlujVzU" resolve="updatesRecorder" />
</node>
<node concept="10Nm6u" id="47oVduO_Y9G" role="3uHU7w" />
</node>
<node concept="3y3z36" id="47oVduO_Y9B" role="3uHU7w">
<node concept="37vLTw" id="47oVduO_Y9D" role="3uHU7B">
<ref role="3cqZAo" node="tIwzd1I3Xp" resolve="node" />
</node>
<node concept="10Nm6u" id="47oVduO_Y9C" role="3uHU7w" />
<node concept="3fqX7Q" id="2D0V9mfxqjS" role="3uHU7w">
<node concept="37vLTw" id="2D0V9mfxqpe" role="3fr31v">
<ref role="3cqZAo" node="5HxDM7D4Qx4" resolve="isPreamble" />
</node>
</node>
</node>
@ -11566,6 +11724,13 @@
<ref role="3uigEE" node="70Wv0dJhQb2" resolve="OriginIndex" />
</node>
</node>
<node concept="312cEg" id="7wgfyCWYacZ" role="jymVt">
<property role="TrG5h" value="rulesFilter" />
<node concept="3Tm6S6" id="7wgfyCWY2SW" role="1B3o_S" />
<node concept="3uibUv" id="1imVejVykq$" role="1tU5fm">
<ref role="3uigEE" to="i348:1imVejVxYQd" resolve="TemplateApplicationFilter" />
</node>
</node>
<node concept="312cEg" id="6nFpYlujVzU" role="jymVt">
<property role="TrG5h" value="updatesRecorder" />
<node concept="3Tm6S6" id="6nFpYlujVzV" role="1B3o_S" />

View File

@ -3524,6 +3524,11 @@
<node concept="37vLTw" id="6OXbTD_ouEx" role="37wK5m">
<ref role="3cqZAo" node="6OXbTD_oqui" resolve="queryTemplate" />
</node>
<node concept="2ShNRf" id="1imVejVAmxY" role="37wK5m">
<node concept="HV5vD" id="1imVejVAn7b" role="2ShVmc">
<ref role="HV5vE" to="i348:1imVejVtN6P" resolve="PrincipalStore" />
</node>
</node>
</node>
</node>
</node>

View File

@ -993,6 +993,27 @@
</node>
</node>
</node>
<node concept="3clFbJ" id="53SlZu3VvPF" role="3cqZAp">
<node concept="3clFbS" id="53SlZu3VvPG" role="3clFbx">
<node concept="3cpWs6" id="53SlZu3VvPH" role="3cqZAp">
<node concept="3clFbT" id="53SlZu3VvPI" role="3cqZAk">
<property role="3clFbU" value="true" />
</node>
</node>
</node>
<node concept="2OqwBi" id="53SlZu3VvPJ" role="3clFbw">
<node concept="10M0yZ" id="53SlZu3Vw3q" 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="53SlZu3VvPL" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~String.equals(java.lang.Object)" resolve="equals" />
<node concept="37vLTw" id="53SlZu3VvPM" role="37wK5m">
<ref role="3cqZAo" node="1a$$29Aw62z" resolve="key" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="1a$$29Aw7pz" role="3cqZAp">
<node concept="10Nm6u" id="1a$$29Aw7px" role="3clFbG" />
</node>
@ -5994,6 +6015,33 @@
<node concept="3Tmbuc" id="61G6TdCrlVr" role="1B3o_S" />
</node>
<node concept="2tJIrI" id="5HxDM7Dg432" role="jymVt" />
<node concept="Wx3nA" id="7wgfyCWWZq3" role="jymVt">
<property role="TrG5h" value="PRINCIPAL_STORE" />
<node concept="3Tmbuc" id="7wgfyCWWZq4" role="1B3o_S" />
<node concept="3uibUv" id="7wgfyCWWZq5" role="1tU5fm">
<ref role="3uigEE" node="7i3KM7g1Lm1" resolve="CachedData.DataFlavour" />
<node concept="3uibUv" id="1imVejVu5TG" role="11_B2D">
<ref role="3uigEE" to="i348:1imVejVtN6P" resolve="PrincipalStore" />
</node>
</node>
<node concept="2ShNRf" id="7wgfyCWWZq7" role="33vP2m">
<node concept="1pGfFk" id="7wgfyCWWZq8" role="2ShVmc">
<ref role="37wK5l" node="7i3KM7g1T3X" resolve="CachedData.DataFlavour" />
<node concept="3uibUv" id="1imVejVu8V9" role="1pMfVU">
<ref role="3uigEE" to="i348:1imVejVtN6P" resolve="PrincipalStore" />
</node>
<node concept="2OqwBi" id="7wgfyCWWZqa" role="37wK5m">
<node concept="3VsKOn" id="7wgfyCWWZqb" role="2Oq$k0">
<ref role="3VsUkX" to="i348:1imVejVtN6P" resolve="PrincipalStore" />
</node>
<node concept="liA8E" id="7wgfyCWWZqc" role="2OqNvi">
<ref role="37wK5l" to="wyt6:~Class.getName()" resolve="getName" />
</node>
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="6KCGZaSwrLh" role="jymVt" />
<node concept="Wx3nA" id="7i3KM7gAW2Y" role="jymVt">
<property role="TrG5h" value="ORIGINS" />
<node concept="3uibUv" id="7i3KM7gAW30" role="1tU5fm">
@ -16433,10 +16481,45 @@
</node>
</node>
<node concept="3clFbH" id="1XKnVOCXGA" role="3cqZAp" />
<node concept="3cpWs8" id="1imVejVC0fy" role="3cqZAp">
<node concept="3cpWsn" id="1imVejVC0fz" role="3cpWs9">
<property role="TrG5h" value="cachedOccurrences" />
<node concept="3uibUv" id="1imVejVC0f$" role="1tU5fm">
<ref role="3uigEE" to="i348:1imVejVtN6P" resolve="PrincipalStore" />
</node>
<node concept="2OqwBi" id="1imVejVC18r" role="33vP2m">
<node concept="1rXfSq" id="1imVejVC0sN" role="2Oq$k0">
<ref role="37wK5l" node="3OUB6BBwqkM" resolve="getAspectCachedData" />
<node concept="37vLTw" id="1imVejVC0KO" role="37wK5m">
<ref role="3cqZAo" node="6XnUDeizCc7" resolve="aspectClique" />
</node>
</node>
<node concept="liA8E" id="1imVejVC1yV" role="2OqNvi">
<ref role="37wK5l" node="7z54$fPgk2E" resolve="getOrSet" />
<node concept="10M0yZ" id="1imVejVC2Pr" role="37wK5m">
<ref role="3cqZAo" node="7wgfyCWWZq3" resolve="PRINCIPAL_STORE" />
<ref role="1PxDUh" node="7kaxm0sEy3e" resolve="TypecheckingService" />
</node>
<node concept="1bVj0M" id="1imVejVC3v$" role="37wK5m">
<node concept="3clFbS" id="1imVejVC3vA" role="1bW5cS">
<node concept="3clFbF" id="1imVejVC3Gb" role="3cqZAp">
<node concept="2ShNRf" id="1imVejVC3G9" role="3clFbG">
<node concept="HV5vD" id="1imVejVC4E9" role="2ShVmc">
<ref role="HV5vE" to="i348:1imVejVtN6P" resolve="PrincipalStore" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="1imVejVBZUN" role="3cqZAp" />
<node concept="3clFbF" id="6XnUDeizCcG" role="3cqZAp">
<node concept="2ShNRf" id="6XnUDeizCcH" role="3clFbG">
<node concept="1pGfFk" id="6XnUDeizCcI" role="2ShVmc">
<ref role="37wK5l" to="1yqb:5EDW3XEoy55" resolve="ApplyTemplatesStep" />
<ref role="37wK5l" to="1yqb:1imVejVB$_h" resolve="ApplyTemplatesStep" />
<node concept="37vLTw" id="6XnUDeizCcJ" role="37wK5m">
<ref role="3cqZAo" node="6XnUDeizCcn" resolve="ruleProcessingSession" />
</node>
@ -16468,6 +16551,9 @@
<node concept="37vLTw" id="6XnUDeizCcV" role="37wK5m">
<ref role="3cqZAo" node="6XnUDeizCcf" resolve="query" />
</node>
<node concept="37vLTw" id="1imVejVC4Ok" role="37wK5m">
<ref role="3cqZAo" node="1imVejVC0fz" resolve="cachedOccurrences" />
</node>
</node>
</node>
</node>
@ -16718,6 +16804,47 @@
<node concept="3clFbS" id="628mNaMEudR" role="1bW5cS">
<node concept="3clFbJ" id="628mNaMEudS" role="3cqZAp">
<node concept="3clFbS" id="628mNaMEudT" role="3clFbx">
<node concept="3clFbF" id="1imVejVCmXj" role="3cqZAp">
<node concept="2OqwBi" id="1imVejVCrGQ" role="3clFbG">
<node concept="2OqwBi" id="1imVejVCnQz" role="2Oq$k0">
<node concept="1rXfSq" id="1imVejVCmXh" role="2Oq$k0">
<ref role="37wK5l" node="3OUB6BBwqkM" resolve="getAspectCachedData" />
<node concept="37vLTw" id="1imVejVCnnE" role="37wK5m">
<ref role="3cqZAo" node="628mNaMEudD" resolve="aspectClique" />
</node>
</node>
<node concept="liA8E" id="1imVejVComi" role="2OqNvi">
<ref role="37wK5l" node="7z54$fPgk2E" resolve="getOrSet" />
<node concept="10M0yZ" id="1imVejVCppo" role="37wK5m">
<ref role="3cqZAo" node="7wgfyCWWZq3" resolve="PRINCIPAL_STORE" />
<ref role="1PxDUh" node="7kaxm0sEy3e" resolve="TypecheckingService" />
</node>
<node concept="1bVj0M" id="1imVejVCqf8" role="37wK5m">
<node concept="3clFbS" id="1imVejVCqfa" role="1bW5cS">
<node concept="3clFbF" id="1imVejVCqxu" role="3cqZAp">
<node concept="2ShNRf" id="1imVejVCqxs" role="3clFbG">
<node concept="HV5vD" id="1imVejVCrsP" role="2ShVmc">
<ref role="HV5vE" to="i348:1imVejVtN6P" resolve="PrincipalStore" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="liA8E" id="1imVejVCsQQ" role="2OqNvi">
<ref role="37wK5l" to="i348:1imVejVCuLX" resolve="putAll" />
<node concept="2OqwBi" id="1imVejVCtot" role="37wK5m">
<node concept="37vLTw" id="1imVejVCt6o" role="2Oq$k0">
<ref role="3cqZAo" node="628mNaMEuec" resolve="sessionToken" />
</node>
<node concept="liA8E" id="1imVejVCtKB" role="2OqNvi">
<ref role="37wK5l" to="w7la:~SessionToken.getPrincipalStore()" resolve="getPrincipalStore" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="6XnUDeiATpQ" role="3cqZAp">
<node concept="2OqwBi" id="6XnUDeiATpR" role="3clFbG">
<node concept="1rXfSq" id="6XnUDeiATpS" role="2Oq$k0">
@ -16738,7 +16865,6 @@
</node>
</node>
</node>
<node concept="3clFbH" id="565UPcqsEBJ" role="3cqZAp" />
</node>
<node concept="3y3z36" id="628mNaMEue1" role="3clFbw">
<node concept="10Nm6u" id="628mNaMEue2" role="3uHU7w" />

View File

@ -275,6 +275,7 @@
<concept id="1116615150612" name="jetbrains.mps.baseLanguage.structure.ClassifierClassExpression" flags="nn" index="3VsKOn">
<reference id="1116615189566" name="classifier" index="3VsUkX" />
</concept>
<concept id="1178893518978" name="jetbrains.mps.baseLanguage.structure.ThisConstructorInvocation" flags="nn" index="1VxSAg" />
<concept id="1080120340718" name="jetbrains.mps.baseLanguage.structure.AndExpression" flags="nn" index="1Wc70l" />
<concept id="1170345865475" name="jetbrains.mps.baseLanguage.structure.AnonymousClass" flags="ig" index="1Y3b0j">
<reference id="1170346070688" name="classifier" index="1Y3XeK" />
@ -638,6 +639,21 @@
</node>
</node>
</node>
<node concept="3clFbF" id="1imVejVBR9L" role="3cqZAp">
<node concept="37vLTI" id="1imVejVBSHE" role="3clFbG">
<node concept="2ShNRf" id="1imVejVBTc0" role="37vLTx">
<node concept="HV5vD" id="1imVejVBTWK" role="2ShVmc">
<ref role="HV5vE" to="i348:1imVejVtN6P" resolve="PrincipalStore" />
</node>
</node>
<node concept="2OqwBi" id="1imVejVBRDl" role="37vLTJ">
<node concept="Xjq3P" id="1imVejVBR9J" role="2Oq$k0" />
<node concept="2OwXpG" id="1imVejVBS21" role="2OqNvi">
<ref role="2Oxat5" node="1imVejVA7w_" resolve="store" />
</node>
</node>
</node>
</node>
</node>
<node concept="37vLTG" id="6nFpYlumWDt" role="3clF46">
<property role="TrG5h" value="session" />
@ -667,111 +683,32 @@
<node concept="3cqZAl" id="5EDW3XEoy56" role="3clF45" />
<node concept="3Tm1VV" id="5EDW3XEoy57" role="1B3o_S" />
<node concept="3clFbS" id="5EDW3XEoy58" role="3clF47">
<node concept="3clFbJ" id="5EDW3XEoy59" role="3cqZAp">
<node concept="3clFbS" id="5EDW3XEoy5a" role="3clFbx">
<node concept="YS8fn" id="5EDW3XEoy5b" role="3cqZAp">
<node concept="2ShNRf" id="5EDW3XEoy5c" role="YScLw">
<node concept="1pGfFk" id="5EDW3XEoy5d" role="2ShVmc">
<ref role="37wK5l" to="wyt6:~NullPointerException.&lt;init&gt;()" resolve="NullPointerException" />
</node>
</node>
</node>
<node concept="1VxSAg" id="1imVejVBUsL" role="3cqZAp">
<ref role="37wK5l" node="1imVejVB$_h" resolve="ApplyTemplatesStep" />
<node concept="37vLTw" id="1imVejVBV2H" role="37wK5m">
<ref role="3cqZAo" node="5EDW3XEoy5P" resolve="session" />
</node>
<node concept="3clFbC" id="5EDW3XEoy5e" role="3clFbw">
<node concept="10Nm6u" id="5EDW3XEoy5f" role="3uHU7w" />
<node concept="37vLTw" id="5EDW3XEoy5g" role="3uHU7B">
<ref role="3cqZAo" node="5EDW3XEoy5X" resolve="query" />
</node>
<node concept="37vLTw" id="1imVejVBVoV" role="37wK5m">
<ref role="3cqZAo" node="61G6TdBActe" resolve="macroProcessing" />
</node>
</node>
<node concept="3clFbF" id="5EDW3XEoy5h" role="3cqZAp">
<node concept="37vLTI" id="5EDW3XEoy5i" role="3clFbG">
<node concept="2OqwBi" id="5EDW3XEoy5j" role="37vLTJ">
<node concept="Xjq3P" id="5EDW3XEoy5k" role="2Oq$k0" />
<node concept="2OwXpG" id="5EDW3XEoy5l" role="2OqNvi">
<ref role="2Oxat5" node="6nFpYluo50r" resolve="processingSession" />
</node>
</node>
<node concept="37vLTw" id="5EDW3XEoy5m" role="37vLTx">
<ref role="3cqZAo" node="5EDW3XEoy5P" resolve="session" />
</node>
<node concept="37vLTw" id="1imVejVBW2T" role="37wK5m">
<ref role="3cqZAo" node="5EDW3XEoy5R" resolve="inputNodes" />
</node>
</node>
<node concept="3clFbF" id="61G6TdBAenw" role="3cqZAp">
<node concept="37vLTI" id="61G6TdBAeny" role="3clFbG">
<node concept="2OqwBi" id="61G6TdBAhZo" role="37vLTJ">
<node concept="Xjq3P" id="61G6TdBAihP" role="2Oq$k0" />
<node concept="2OwXpG" id="61G6TdBAhZr" role="2OqNvi">
<ref role="2Oxat5" node="61G6TdBAens" resolve="macroProcessing" />
</node>
</node>
<node concept="37vLTw" id="61G6TdBAenA" role="37vLTx">
<ref role="3cqZAo" node="61G6TdBActe" resolve="macroProcessing" />
</node>
<node concept="37vLTw" id="1imVejVBWy$" role="37wK5m">
<ref role="3cqZAo" node="61G6TdE2izs" resolve="recursive" />
</node>
</node>
<node concept="3clFbF" id="5EDW3XEoy5n" role="3cqZAp">
<node concept="37vLTI" id="5EDW3XEoy5o" role="3clFbG">
<node concept="2OqwBi" id="5EDW3XEoy5p" role="37vLTJ">
<node concept="Xjq3P" id="5EDW3XEoy5q" role="2Oq$k0" />
<node concept="2OwXpG" id="5EDW3XEoy5r" role="2OqNvi">
<ref role="2Oxat5" node="7kTeLbPt5$3" resolve="nodes" />
</node>
</node>
<node concept="37vLTw" id="5EDW3XEoy5s" role="37vLTx">
<ref role="3cqZAo" node="5EDW3XEoy5R" resolve="inputNodes" />
</node>
<node concept="37vLTw" id="1imVejVBZ$2" role="37wK5m">
<ref role="3cqZAo" node="5EDW3XEoy5T" resolve="repository" />
</node>
</node>
<node concept="3clFbF" id="61G6TdE2my5" role="3cqZAp">
<node concept="37vLTI" id="61G6TdE2my7" role="3clFbG">
<node concept="2OqwBi" id="61G6TdE2pC2" role="37vLTJ">
<node concept="Xjq3P" id="61G6TdE2pH9" role="2Oq$k0" />
<node concept="2OwXpG" id="61G6TdE2pC5" role="2OqNvi">
<ref role="2Oxat5" node="61G6TdE2my1" resolve="recursive" />
</node>
</node>
<node concept="37vLTw" id="61G6TdE2myb" role="37vLTx">
<ref role="3cqZAo" node="61G6TdE2izs" resolve="recursive" />
</node>
<node concept="37vLTw" id="1imVejVBWIi" role="37wK5m">
<ref role="3cqZAo" node="5EDW3XEoy5V" resolve="planHandler" />
</node>
</node>
<node concept="3clFbF" id="5EDW3XEoy5t" role="3cqZAp">
<node concept="37vLTI" id="5EDW3XEoy5u" role="3clFbG">
<node concept="2OqwBi" id="5EDW3XEoy5v" role="37vLTJ">
<node concept="Xjq3P" id="5EDW3XEoy5w" role="2Oq$k0" />
<node concept="2OwXpG" id="5EDW3XEoy5x" role="2OqNvi">
<ref role="2Oxat5" node="6kREIVkLEGt" resolve="repository" />
</node>
</node>
<node concept="37vLTw" id="5EDW3XEoy5y" role="37vLTx">
<ref role="3cqZAo" node="5EDW3XEoy5T" resolve="repository" />
</node>
<node concept="37vLTw" id="1imVejVBWUS" role="37wK5m">
<ref role="3cqZAo" node="5EDW3XEoy5X" resolve="query" />
</node>
</node>
<node concept="3clFbF" id="5EDW3XEoy5z" role="3cqZAp">
<node concept="37vLTI" id="5EDW3XEoy5$" role="3clFbG">
<node concept="2OqwBi" id="5EDW3XEoy5_" role="37vLTJ">
<node concept="Xjq3P" id="5EDW3XEoy5A" role="2Oq$k0" />
<node concept="2OwXpG" id="5EDW3XEoy5B" role="2OqNvi">
<ref role="2Oxat5" node="6nFpYluqFen" resolve="planHandler" />
</node>
</node>
<node concept="37vLTw" id="5EDW3XEoy5C" role="37vLTx">
<ref role="3cqZAo" node="5EDW3XEoy5V" resolve="planHandler" />
</node>
</node>
</node>
<node concept="3clFbF" id="5EDW3XEoCwo" role="3cqZAp">
<node concept="37vLTI" id="5EDW3XEoDwq" role="3clFbG">
<node concept="37vLTw" id="5EDW3XEoDEv" role="37vLTx">
<ref role="3cqZAo" node="5EDW3XEoy5X" resolve="query" />
</node>
<node concept="2OqwBi" id="5EDW3XEoCZj" role="37vLTJ">
<node concept="Xjq3P" id="5EDW3XEoCwm" role="2Oq$k0" />
<node concept="2OwXpG" id="5EDW3XEoDiT" role="2OqNvi">
<ref role="2Oxat5" node="5EDW3XEoAmV" resolve="query" />
</node>
<node concept="2ShNRf" id="1imVejVBY6s" role="37wK5m">
<node concept="HV5vD" id="1imVejVBYRA" role="2ShVmc">
<ref role="HV5vE" to="i348:1imVejVtN6P" resolve="PrincipalStore" />
</node>
</node>
</node>
@ -815,6 +752,178 @@
</node>
</node>
</node>
<node concept="2tJIrI" id="1imVejVBD2G" role="jymVt" />
<node concept="3clFbW" id="1imVejVB$_h" role="jymVt">
<node concept="3cqZAl" id="1imVejVB$_i" role="3clF45" />
<node concept="3Tm1VV" id="1imVejVB$_j" role="1B3o_S" />
<node concept="3clFbS" id="1imVejVB$_k" role="3clF47">
<node concept="3clFbJ" id="1imVejVB$_l" role="3cqZAp">
<node concept="3clFbS" id="1imVejVB$_m" role="3clFbx">
<node concept="YS8fn" id="1imVejVB$_n" role="3cqZAp">
<node concept="2ShNRf" id="1imVejVB$_o" role="YScLw">
<node concept="1pGfFk" id="1imVejVB$_p" role="2ShVmc">
<ref role="37wK5l" to="wyt6:~NullPointerException.&lt;init&gt;()" resolve="NullPointerException" />
</node>
</node>
</node>
</node>
<node concept="3clFbC" id="1imVejVB$_q" role="3clFbw">
<node concept="10Nm6u" id="1imVejVB$_r" role="3uHU7w" />
<node concept="37vLTw" id="1imVejVB$_s" role="3uHU7B">
<ref role="3cqZAo" node="1imVejVB$Aj" resolve="query" />
</node>
</node>
</node>
<node concept="3clFbF" id="1imVejVB$_t" role="3cqZAp">
<node concept="37vLTI" id="1imVejVB$_u" role="3clFbG">
<node concept="2OqwBi" id="1imVejVB$_v" role="37vLTJ">
<node concept="Xjq3P" id="1imVejVB$_w" role="2Oq$k0" />
<node concept="2OwXpG" id="1imVejVB$_x" role="2OqNvi">
<ref role="2Oxat5" node="6nFpYluo50r" resolve="processingSession" />
</node>
</node>
<node concept="37vLTw" id="1imVejVB$_y" role="37vLTx">
<ref role="3cqZAo" node="1imVejVB$A7" resolve="session" />
</node>
</node>
</node>
<node concept="3clFbF" id="1imVejVB$_z" role="3cqZAp">
<node concept="37vLTI" id="1imVejVB$_$" role="3clFbG">
<node concept="2OqwBi" id="1imVejVB$__" role="37vLTJ">
<node concept="Xjq3P" id="1imVejVB$_A" role="2Oq$k0" />
<node concept="2OwXpG" id="1imVejVB$_B" role="2OqNvi">
<ref role="2Oxat5" node="61G6TdBAens" resolve="macroProcessing" />
</node>
</node>
<node concept="37vLTw" id="1imVejVB$_C" role="37vLTx">
<ref role="3cqZAo" node="1imVejVB$A9" resolve="macroProcessing" />
</node>
</node>
</node>
<node concept="3clFbF" id="1imVejVB$_D" role="3cqZAp">
<node concept="37vLTI" id="1imVejVB$_E" role="3clFbG">
<node concept="2OqwBi" id="1imVejVB$_F" role="37vLTJ">
<node concept="Xjq3P" id="1imVejVB$_G" role="2Oq$k0" />
<node concept="2OwXpG" id="1imVejVB$_H" role="2OqNvi">
<ref role="2Oxat5" node="7kTeLbPt5$3" resolve="nodes" />
</node>
</node>
<node concept="37vLTw" id="1imVejVB$_I" role="37vLTx">
<ref role="3cqZAo" node="1imVejVB$Ab" resolve="inputNodes" />
</node>
</node>
</node>
<node concept="3clFbF" id="1imVejVB$_J" role="3cqZAp">
<node concept="37vLTI" id="1imVejVB$_K" role="3clFbG">
<node concept="2OqwBi" id="1imVejVB$_L" role="37vLTJ">
<node concept="Xjq3P" id="1imVejVB$_M" role="2Oq$k0" />
<node concept="2OwXpG" id="1imVejVB$_N" role="2OqNvi">
<ref role="2Oxat5" node="61G6TdE2my1" resolve="recursive" />
</node>
</node>
<node concept="37vLTw" id="1imVejVB$_O" role="37vLTx">
<ref role="3cqZAo" node="1imVejVB$Ad" resolve="recursive" />
</node>
</node>
</node>
<node concept="3clFbF" id="1imVejVB$_P" role="3cqZAp">
<node concept="37vLTI" id="1imVejVB$_Q" role="3clFbG">
<node concept="2OqwBi" id="1imVejVB$_R" role="37vLTJ">
<node concept="Xjq3P" id="1imVejVB$_S" role="2Oq$k0" />
<node concept="2OwXpG" id="1imVejVB$_T" role="2OqNvi">
<ref role="2Oxat5" node="6kREIVkLEGt" resolve="repository" />
</node>
</node>
<node concept="37vLTw" id="1imVejVB$_U" role="37vLTx">
<ref role="3cqZAo" node="1imVejVB$Af" resolve="repository" />
</node>
</node>
</node>
<node concept="3clFbF" id="1imVejVB$_V" role="3cqZAp">
<node concept="37vLTI" id="1imVejVB$_W" role="3clFbG">
<node concept="2OqwBi" id="1imVejVB$_X" role="37vLTJ">
<node concept="Xjq3P" id="1imVejVB$_Y" role="2Oq$k0" />
<node concept="2OwXpG" id="1imVejVB$_Z" role="2OqNvi">
<ref role="2Oxat5" node="6nFpYluqFen" resolve="planHandler" />
</node>
</node>
<node concept="37vLTw" id="1imVejVB$A0" role="37vLTx">
<ref role="3cqZAo" node="1imVejVB$Ah" resolve="planHandler" />
</node>
</node>
</node>
<node concept="3clFbF" id="1imVejVB$A1" role="3cqZAp">
<node concept="37vLTI" id="1imVejVB$A2" role="3clFbG">
<node concept="37vLTw" id="1imVejVB$A3" role="37vLTx">
<ref role="3cqZAo" node="1imVejVB$Aj" resolve="query" />
</node>
<node concept="2OqwBi" id="1imVejVB$A4" role="37vLTJ">
<node concept="Xjq3P" id="1imVejVB$A5" role="2Oq$k0" />
<node concept="2OwXpG" id="1imVejVB$A6" role="2OqNvi">
<ref role="2Oxat5" node="5EDW3XEoAmV" resolve="query" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="1imVejVBILN" role="3cqZAp">
<node concept="37vLTI" id="1imVejVBK0l" role="3clFbG">
<node concept="37vLTw" id="1imVejVBKO6" role="37vLTx">
<ref role="3cqZAo" node="1imVejVBGUx" resolve="cachedOcccurrences" />
</node>
<node concept="2OqwBi" id="1imVejVBJia" role="37vLTJ">
<node concept="Xjq3P" id="1imVejVBILL" role="2Oq$k0" />
<node concept="2OwXpG" id="1imVejVBJ_h" role="2OqNvi">
<ref role="2Oxat5" node="1imVejVA7w_" resolve="store" />
</node>
</node>
</node>
</node>
</node>
<node concept="37vLTG" id="1imVejVB$A7" role="3clF46">
<property role="TrG5h" value="session" />
<node concept="3uibUv" id="1imVejVB$A8" role="1tU5fm">
<ref role="3uigEE" to="hano:CGeqIk8WWU" resolve="RuleProcessingSession" />
</node>
</node>
<node concept="37vLTG" id="1imVejVB$A9" role="3clF46">
<property role="TrG5h" value="macroProcessing" />
<node concept="3uibUv" id="1imVejVB$Aa" role="1tU5fm">
<ref role="3uigEE" to="ksgm:7DvO2M9IiKB" resolve="MacroProcessing" />
</node>
</node>
<node concept="37vLTG" id="1imVejVB$Ab" role="3clF46">
<property role="TrG5h" value="inputNodes" />
<node concept="2I9FWS" id="1imVejVB$Ac" role="1tU5fm" />
</node>
<node concept="37vLTG" id="1imVejVB$Ad" role="3clF46">
<property role="TrG5h" value="recursive" />
<node concept="10P_77" id="1imVejVB$Ae" role="1tU5fm" />
</node>
<node concept="37vLTG" id="1imVejVB$Af" role="3clF46">
<property role="TrG5h" value="repository" />
<node concept="3uibUv" id="1imVejVB$Ag" role="1tU5fm">
<ref role="3uigEE" to="lui2:~SRepository" resolve="SRepository" />
</node>
</node>
<node concept="37vLTG" id="1imVejVB$Ah" role="3clF46">
<property role="TrG5h" value="planHandler" />
<node concept="3uibUv" id="1imVejVB$Ai" role="1tU5fm">
<ref role="3uigEE" to="ksgm:7DvO2M9Uago" resolve="RulesPlanHandler" />
</node>
</node>
<node concept="37vLTG" id="1imVejVB$Aj" role="3clF46">
<property role="TrG5h" value="query" />
<node concept="3uibUv" id="1imVejVB$Ak" role="1tU5fm">
<ref role="3uigEE" to="i348:5EDW3XDYeWv" resolve="Query" />
</node>
</node>
<node concept="37vLTG" id="1imVejVBGUx" role="3clF46">
<property role="TrG5h" value="cachedOcccurrences" />
<node concept="3uibUv" id="1imVejVBI01" role="1tU5fm">
<ref role="3uigEE" to="i348:1imVejVtN6P" resolve="PrincipalStore" />
</node>
</node>
</node>
<node concept="2tJIrI" id="5EDW3XEoy54" role="jymVt" />
<node concept="2tJIrI" id="51ek2rQF7Zl" role="jymVt" />
<node concept="3clFb_" id="51ek2rQF9Dx" role="jymVt">
@ -1033,6 +1142,9 @@
<node concept="1rXfSq" id="6nFpYluVY5_" role="37wK5m">
<ref role="37wK5l" node="6nFpYluVUvm" resolve="queryTemplate" />
</node>
<node concept="37vLTw" id="1imVejVAcWg" role="37wK5m">
<ref role="3cqZAo" node="1imVejVA7w_" resolve="store" />
</node>
</node>
</node>
<node concept="37vLTw" id="3bpBM3Qd934" role="37vLTJ">
@ -1404,6 +1516,13 @@
</node>
</node>
<node concept="2tJIrI" id="6nFpYlurIXk" role="jymVt" />
<node concept="312cEg" id="1imVejVA7w_" role="jymVt">
<property role="TrG5h" value="store" />
<node concept="3Tm6S6" id="1imVejVA6kW" role="1B3o_S" />
<node concept="3uibUv" id="1imVejVA7ic" role="1tU5fm">
<ref role="3uigEE" to="i348:1imVejVtN6P" resolve="PrincipalStore" />
</node>
</node>
<node concept="312cEg" id="12QmIoyMACM" role="jymVt">
<property role="TrG5h" value="ruleTemplateIndex" />
<node concept="3Tm6S6" id="6nFpYlurCQq" role="1B3o_S" />

View File

@ -27,6 +27,7 @@
<language slang="l:f2801650-65d5-424e-bb1b-463a8781b786:jetbrains.mps.baseLanguage.javadoc" version="2" />
<language slang="l:760a0a8c-eabb-4521-8bfd-65db761a9ba3:jetbrains.mps.baseLanguage.logging" version="0" />
<language slang="l:daafa647-f1f7-4b0b-b096-69cd7c8408c0:jetbrains.mps.baseLanguage.regexp" version="0" />
<language slang="l:a247e09e-2435-45ba-b8d2-07e93feba96a:jetbrains.mps.baseLanguage.tuples" version="0" />
<language slang="l:ceab5195-25ea-4f22-9b92-103b95ca8c0c:jetbrains.mps.lang.core" version="2" />
<language slang="l:446c26eb-2b7b-4bf0-9b35-f83fa582753e:jetbrains.mps.lang.modelapi" version="0" />
<language slang="l:7866978e-a0f0-4cc7-81bc-4d213d9375e1:jetbrains.mps.lang.smodel" version="17" />

View File

@ -34,7 +34,7 @@
<import index="guwi" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.io(JDK/)" />
<import index="kqnc" ref="r:92b96158-68e6-4f53-a32b-36e2b456fe01(jetbrains.mps.baseLanguageExt.types)" />
<import index="psoy" ref="r:78313117-90ee-47a5-a91e-b5213df7f611(jetbrains.mps.coderules.runtime.result)" />
<import index="33ny" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util(JDK/)" implicit="true" />
<import index="33ny" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util(JDK/)" />
<import index="tpee" ref="r:00000000-0000-4000-0000-011c895902ca(jetbrains.mps.baseLanguage.structure)" implicit="true" />
<import index="tpek" ref="r:00000000-0000-4000-0000-011c895902c0(jetbrains.mps.baseLanguage.behavior)" implicit="true" />
<import index="tp2q" ref="r:00000000-0000-4000-0000-011c8959032e(jetbrains.mps.baseLanguage.collections.structure)" implicit="true" />
@ -116,6 +116,9 @@
<concept id="1070534058343" name="jetbrains.mps.baseLanguage.structure.NullLiteral" flags="nn" index="10Nm6u" />
<concept id="1070534370425" name="jetbrains.mps.baseLanguage.structure.IntegerType" flags="in" index="10Oyi0" />
<concept id="1070534644030" name="jetbrains.mps.baseLanguage.structure.BooleanType" flags="in" index="10P_77" />
<concept id="1070534760951" name="jetbrains.mps.baseLanguage.structure.ArrayType" flags="in" index="10Q1$e">
<child id="1070534760952" name="componentType" index="10Q1$1" />
</concept>
<concept id="1070534934090" name="jetbrains.mps.baseLanguage.structure.CastExpression" flags="nn" index="10QFUN">
<child id="1070534934091" name="type" index="10QFUM" />
<child id="1070534934092" name="expression" index="10QFUP" />
@ -138,6 +141,7 @@
<concept id="1109283449304" name="jetbrains.mps.baseLanguage.structure.TypeVariableReference" flags="in" index="16syzq">
<reference id="1109283546497" name="typeVariableDeclaration" index="16sUi3" />
</concept>
<concept id="1092119917967" name="jetbrains.mps.baseLanguage.structure.MulExpression" flags="nn" index="17qRlL" />
<concept id="1068498886296" name="jetbrains.mps.baseLanguage.structure.VariableReference" flags="nn" index="37vLTw">
<reference id="1068581517664" name="variableDeclaration" index="3cqZAo" />
</concept>
@ -180,6 +184,7 @@
<concept id="1068581242864" name="jetbrains.mps.baseLanguage.structure.LocalVariableDeclarationStatement" flags="nn" index="3cpWs8">
<child id="1068581242865" name="localVariableDeclaration" index="3cpWs9" />
</concept>
<concept id="1068581242869" name="jetbrains.mps.baseLanguage.structure.MinusExpression" flags="nn" index="3cpWsd" />
<concept id="1068581242863" name="jetbrains.mps.baseLanguage.structure.LocalVariableDeclaration" flags="nr" index="3cpWsn" />
<concept id="1068581517677" name="jetbrains.mps.baseLanguage.structure.VoidType" flags="in" index="3cqZAl" />
<concept id="1206060495898" name="jetbrains.mps.baseLanguage.structure.ElsifClause" flags="ng" index="3eNFk2">
@ -406,6 +411,7 @@
<concept id="1165595910856" name="jetbrains.mps.baseLanguage.collections.structure.GetLastOperation" flags="nn" index="1yVyf7" />
<concept id="1202120902084" name="jetbrains.mps.baseLanguage.collections.structure.WhereOperation" flags="nn" index="3zZkjj" />
<concept id="1202128969694" name="jetbrains.mps.baseLanguage.collections.structure.SelectOperation" flags="nn" index="3$u5V9" />
<concept id="1184963466173" name="jetbrains.mps.baseLanguage.collections.structure.ToArrayOperation" flags="nn" index="3_kTaI" />
<concept id="1172254888721" name="jetbrains.mps.baseLanguage.collections.structure.ContainsOperation" flags="nn" index="3JPx81" />
<concept id="5686963296372573083" name="jetbrains.mps.baseLanguage.collections.structure.AbstractContainerType" flags="in" index="3O5elB">
<child id="5686963296372573084" name="elementType" index="3O5elw" />
@ -963,9 +969,6 @@
<node concept="3cpWs8" id="3FGJ5nvmNZr" role="3cqZAp">
<node concept="3cpWsn" id="3FGJ5nvmNZs" role="3cpWs9">
<property role="TrG5h" value="program" />
<node concept="3uibUv" id="4J__M6NkyJ" role="1tU5fm">
<ref role="3uigEE" to="av0y:~Program" resolve="Program" />
</node>
<node concept="2OqwBi" id="3FGJ5nvmOk8" role="33vP2m">
<node concept="37vLTw" id="3FGJ5nvmOfE" role="2Oq$k0">
<ref role="3cqZAo" node="3FGJ5nvmG16" resolve="launcher" />
@ -974,6 +977,9 @@
<ref role="37wK5l" to="hfva:55idZnEz6lV" resolve="getProgram" />
</node>
</node>
<node concept="3uibUv" id="4J__M6NkyJ" role="1tU5fm">
<ref role="3uigEE" to="av0y:~Program" resolve="Program" />
</node>
</node>
</node>
<node concept="3cpWs8" id="3FGJ5nvmSHK" role="3cqZAp">
@ -8569,6 +8575,312 @@
</node>
<node concept="1lH9Xt" id="6VRLMeOtuwX">
<property role="TrG5h" value="Preamble" />
<node concept="1LZb2c" id="1GGmKhcfoT9" role="1SL9yI">
<property role="TrG5h" value="typeOf_basic" />
<node concept="3cqZAl" id="1GGmKhcfoTa" role="3clF45" />
<node concept="3clFbS" id="1GGmKhcfoTe" role="3clF47">
<node concept="3clFbF" id="1GGmKhcfq7a" role="3cqZAp">
<node concept="2OqwBi" id="1GGmKhcfDsY" role="3clFbG">
<node concept="2OqwBi" id="1GGmKhcfZht" role="2Oq$k0">
<node concept="2OqwBi" id="1GGmKhcf$7_" role="2Oq$k0">
<node concept="2OqwBi" id="1GGmKhcfvbt" role="2Oq$k0">
<node concept="2YIFZM" id="1GGmKhcfs55" role="2Oq$k0">
<ref role="37wK5l" to="hfva:1GGmKhce2RM" resolve="forTypeOf" />
<ref role="1Pybhc" to="hfva:WJTIIojUvH" resolve="IncrementalTestBuilder" />
<node concept="3xONca" id="1GGmKhcfuXB" role="37wK5m">
<ref role="3xOPvv" node="3j46jeGRREC" resolve="var_x" />
</node>
</node>
<node concept="liA8E" id="1GGmKhcfx7L" role="2OqNvi">
<ref role="37wK5l" to="hfva:3j46jeGTe6g" resolve="ensureResult" />
<node concept="2YIFZM" id="1GGmKhcfz0j" role="37wK5m">
<ref role="37wK5l" to="psoy:7Oc59RSEjeq" resolve="OK" />
<ref role="1Pybhc" to="psoy:7Oc59RSEjdb" resolve="Result" />
</node>
</node>
</node>
<node concept="liA8E" id="1GGmKhcf_qG" role="2OqNvi">
<ref role="37wK5l" to="hfva:WJTIIomj2Y" resolve="ensureType" />
<node concept="3xONca" id="1GGmKhcfAua" role="37wK5m">
<ref role="3xOPvv" node="3j46jeGRREC" resolve="var_x" />
</node>
<node concept="2c44tf" id="1GGmKhcfAJT" role="37wK5m">
<node concept="10Oyi0" id="1GGmKhcfASA" role="2c44tc" />
</node>
</node>
</node>
<node concept="liA8E" id="1GGmKhcg0KN" role="2OqNvi">
<ref role="37wK5l" to="hfva:WJTIIooHck" resolve="ensureNoFailures" />
</node>
</node>
<node concept="liA8E" id="1GGmKhcfEPW" role="2OqNvi">
<ref role="37wK5l" to="hfva:6jc_YgcXszo" resolve="subtest" />
<node concept="1bVj0M" id="1GGmKhcfFTX" role="37wK5m">
<node concept="37vLTG" id="1GGmKhcfHeW" role="1bW2Oz">
<property role="TrG5h" value="tester" />
<node concept="3uibUv" id="1GGmKhcfI__" role="1tU5fm">
<ref role="3uigEE" to="hfva:WJTIIojUvH" resolve="IncrementalTestBuilder" />
</node>
</node>
<node concept="3clFbS" id="1GGmKhcfFTY" role="1bW5cS">
<node concept="3clFbH" id="1GGmKhcfH6b" role="3cqZAp" />
<node concept="3clFbF" id="1GGmKhcfJFF" role="3cqZAp">
<node concept="2OqwBi" id="1GGmKhcg4zl" role="3clFbG">
<node concept="2OqwBi" id="1GGmKhcfWwG" role="2Oq$k0">
<node concept="2OqwBi" id="1GGmKhcfT0C" role="2Oq$k0">
<node concept="2OqwBi" id="1GGmKhcfO13" role="2Oq$k0">
<node concept="2OqwBi" id="1GGmKhcfL_i" role="2Oq$k0">
<node concept="2OqwBi" id="1GGmKhcm9mY" role="2Oq$k0">
<node concept="2OqwBi" id="1GGmKhcfJPU" role="2Oq$k0">
<node concept="37vLTw" id="1GGmKhcfJFD" role="2Oq$k0">
<ref role="3cqZAo" node="1GGmKhcfHeW" resolve="tester" />
</node>
<node concept="liA8E" id="1GGmKhcfKcr" role="2OqNvi">
<ref role="37wK5l" to="hfva:1GGmKhcetY0" resolve="withTypeOf" />
<node concept="3xONca" id="1GGmKhcfLi5" role="37wK5m">
<ref role="3xOPvv" node="1GGmKhcftVF" resolve="var_y" />
</node>
</node>
</node>
<node concept="liA8E" id="1GGmKhcmb1V" role="2OqNvi">
<ref role="37wK5l" to="hfva:1GGmKhcmlgD" resolve="ensureInCache" />
<node concept="Xl_RD" id="1GGmKhcqg9f" role="37wK5m">
<property role="Xl_RC" value="typeOf" />
</node>
<node concept="3xONca" id="1GGmKhcqg9g" role="37wK5m">
<ref role="3xOPvv" node="3j46jeGRREC" resolve="var_x" />
</node>
</node>
</node>
<node concept="liA8E" id="1GGmKhcfMNl" role="2OqNvi">
<ref role="37wK5l" to="hfva:WJTIIom1yI" resolve="relaunch" />
</node>
</node>
<node concept="liA8E" id="1GGmKhcfPpE" role="2OqNvi">
<ref role="37wK5l" to="hfva:3j46jeGTe6g" resolve="ensureResult" />
<node concept="2YIFZM" id="1GGmKhcfRKH" role="37wK5m">
<ref role="37wK5l" to="psoy:7Oc59RSEjeq" resolve="OK" />
<ref role="1Pybhc" to="psoy:7Oc59RSEjdb" resolve="Result" />
</node>
</node>
</node>
<node concept="liA8E" id="1GGmKhcfUu2" role="2OqNvi">
<ref role="37wK5l" to="hfva:WJTIIomj2Y" resolve="ensureType" />
<node concept="3xONca" id="1GGmKhcfVCv" role="37wK5m">
<ref role="3xOPvv" node="1GGmKhcftVF" resolve="var_y" />
</node>
<node concept="2c44tf" id="1GGmKhcfWcl" role="37wK5m">
<node concept="10Oyi0" id="1GGmKhcfWcm" role="2c44tc" />
</node>
</node>
</node>
<node concept="liA8E" id="1GGmKhcfY5f" role="2OqNvi">
<ref role="37wK5l" to="hfva:WJTIIooHck" resolve="ensureNoFailures" />
</node>
</node>
<node concept="liA8E" id="1GGmKhcg6aC" role="2OqNvi">
<ref role="37wK5l" to="hfva:WJTIIokFTj" resolve="ensureStable" />
</node>
</node>
</node>
<node concept="3clFbF" id="1GGmKhco6tf" role="3cqZAp">
<node concept="2OqwBi" id="1GGmKhco6tg" role="3clFbG">
<node concept="2OqwBi" id="1GGmKhco6th" role="2Oq$k0">
<node concept="2OqwBi" id="1GGmKhco6ti" role="2Oq$k0">
<node concept="2OqwBi" id="1GGmKhco6tj" role="2Oq$k0">
<node concept="2OqwBi" id="1GGmKhco6tk" role="2Oq$k0">
<node concept="2OqwBi" id="1GGmKhco6tl" role="2Oq$k0">
<node concept="2OqwBi" id="1GGmKhco6tm" role="2Oq$k0">
<node concept="37vLTw" id="1GGmKhco6tn" role="2Oq$k0">
<ref role="3cqZAo" node="1GGmKhcfHeW" resolve="tester" />
</node>
<node concept="liA8E" id="1GGmKhco6to" role="2OqNvi">
<ref role="37wK5l" to="hfva:1GGmKhcetY0" resolve="withTypeOf" />
<node concept="3xONca" id="1GGmKhco8DF" role="37wK5m">
<ref role="3xOPvv" node="1GGmKhco6sL" resolve="var_z" />
</node>
</node>
</node>
<node concept="liA8E" id="1GGmKhco6tq" role="2OqNvi">
<ref role="37wK5l" to="hfva:1GGmKhcmlgD" resolve="ensureInCache" />
<node concept="Xl_RD" id="1GGmKhco6tr" role="37wK5m">
<property role="Xl_RC" value="typeOf" />
</node>
<node concept="3xONca" id="1GGmKhco6ts" role="37wK5m">
<ref role="3xOPvv" node="3j46jeGRREC" resolve="var_x" />
</node>
<node concept="3xONca" id="1GGmKhcqeKZ" role="37wK5m">
<ref role="3xOPvv" node="1GGmKhcftVF" resolve="var_y" />
</node>
</node>
</node>
<node concept="liA8E" id="1GGmKhco6tt" role="2OqNvi">
<ref role="37wK5l" to="hfva:WJTIIom1yI" resolve="relaunch" />
</node>
</node>
<node concept="liA8E" id="1GGmKhco6tu" role="2OqNvi">
<ref role="37wK5l" to="hfva:3j46jeGTe6g" resolve="ensureResult" />
<node concept="2YIFZM" id="1GGmKhco6tv" role="37wK5m">
<ref role="1Pybhc" to="psoy:7Oc59RSEjdb" resolve="Result" />
<ref role="37wK5l" to="psoy:7Oc59RSEjeq" resolve="OK" />
</node>
</node>
</node>
<node concept="liA8E" id="1GGmKhco6tw" role="2OqNvi">
<ref role="37wK5l" to="hfva:WJTIIomj2Y" resolve="ensureType" />
<node concept="3xONca" id="1GGmKhcqiDY" role="37wK5m">
<ref role="3xOPvv" node="1GGmKhco6sL" resolve="var_z" />
</node>
<node concept="2c44tf" id="1GGmKhco6ty" role="37wK5m">
<node concept="10Oyi0" id="1GGmKhco6tz" role="2c44tc" />
</node>
</node>
</node>
<node concept="liA8E" id="1GGmKhco6t$" role="2OqNvi">
<ref role="37wK5l" to="hfva:WJTIIooHck" resolve="ensureNoFailures" />
</node>
</node>
<node concept="liA8E" id="1GGmKhco6t_" role="2OqNvi">
<ref role="37wK5l" to="hfva:WJTIIokFTj" resolve="ensureStable" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="1LZb2c" id="1GGmKhcsjZB" role="1SL9yI">
<property role="TrG5h" value="preamble_classifiers" />
<node concept="3cqZAl" id="1GGmKhcsjZC" role="3clF45" />
<node concept="3clFbS" id="1GGmKhcsjZG" role="3clF47">
<node concept="3cpWs8" id="1GGmKhcs_3c" role="3cqZAp">
<node concept="3cpWsn" id="1GGmKhcs_3f" role="3cpWs9">
<property role="TrG5h" value="preambleTypes" />
<node concept="A3Dl8" id="1GGmKhcs_39" role="1tU5fm">
<node concept="3Tqbb2" id="1GGmKhcs_jn" role="A3Ik2">
<ref role="ehGHo" to="tpee:g7uibYu" resolve="ClassifierType" />
</node>
</node>
<node concept="2ShNRf" id="1GGmKhcsSGg" role="33vP2m">
<node concept="Tc6Ow" id="1GGmKhcsTh3" role="2ShVmc">
<node concept="3Tqbb2" id="1GGmKhcsU_z" role="HW$YZ">
<ref role="ehGHo" to="tpee:g7uibYu" resolve="ClassifierType" />
</node>
<node concept="2c44tf" id="1GGmKhcuphc" role="HW$Y0">
<node concept="3uibUv" id="1GGmKhcupwc" role="2c44tc">
<ref role="3uigEE" to="wyt6:~Boolean" resolve="Boolean" />
</node>
</node>
<node concept="2c44tf" id="1GGmKhcsVH$" role="HW$Y0">
<node concept="3uibUv" id="1GGmKhcsXLG" role="2c44tc">
<ref role="3uigEE" to="wyt6:~Integer" resolve="Integer" />
</node>
</node>
<node concept="2c44tf" id="1GGmKhcsWGs" role="HW$Y0">
<node concept="3uibUv" id="1GGmKhct2fN" role="2c44tc">
<ref role="3uigEE" to="33ny:~Set" resolve="Set" />
</node>
</node>
<node concept="2c44tf" id="1GGmKhcsWS5" role="HW$Y0">
<node concept="3uibUv" id="1GGmKhct2FE" role="2c44tc">
<ref role="3uigEE" to="guwi:~Serializable" resolve="Serializable" />
</node>
</node>
<node concept="2c44tf" id="1GGmKhcsXna" role="HW$Y0">
<node concept="3uibUv" id="1GGmKhct4aZ" role="2c44tc">
<ref role="3uigEE" to="wyt6:~Comparable" resolve="Comparable" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="1GGmKhcs$HJ" role="3cqZAp">
<node concept="3cpWsn" id="1GGmKhcs$HM" role="3cpWs9">
<property role="TrG5h" value="preambleClss" />
<node concept="10Q1$e" id="1GGmKhcs$MF" role="1tU5fm">
<node concept="3Tqbb2" id="1GGmKhcs$Mt" role="10Q1$1">
<ref role="ehGHo" to="tpee:g7pOWCK" resolve="Classifier" />
</node>
</node>
<node concept="2OqwBi" id="1GGmKhcsAIt" role="33vP2m">
<node concept="2OqwBi" id="1GGmKhcs_$6" role="2Oq$k0">
<node concept="37vLTw" id="1GGmKhcs_ma" role="2Oq$k0">
<ref role="3cqZAo" node="1GGmKhcs_3f" resolve="preambleTypes" />
</node>
<node concept="3$u5V9" id="1GGmKhcs_No" role="2OqNvi">
<node concept="1bVj0M" id="1GGmKhcs_Nq" role="23t8la">
<node concept="3clFbS" id="1GGmKhcs_Nr" role="1bW5cS">
<node concept="3clFbF" id="1GGmKhcs_RZ" role="3cqZAp">
<node concept="2OqwBi" id="1GGmKhcsA6h" role="3clFbG">
<node concept="37vLTw" id="1GGmKhcs_RY" role="2Oq$k0">
<ref role="3cqZAo" node="1GGmKhcs_Ns" resolve="it" />
</node>
<node concept="3TrEf2" id="1GGmKhcsArY" role="2OqNvi">
<ref role="3Tt5mk" to="tpee:g7uigIF" resolve="classifier" />
</node>
</node>
</node>
</node>
<node concept="Rh6nW" id="1GGmKhcs_Ns" role="1bW2Oz">
<property role="TrG5h" value="it" />
<node concept="2jxLKc" id="1GGmKhcs_Nt" role="1tU5fm" />
</node>
</node>
</node>
</node>
<node concept="3_kTaI" id="1GGmKhcsB5I" role="2OqNvi" />
</node>
</node>
</node>
<node concept="3clFbH" id="1GGmKhcsBrE" role="3cqZAp" />
<node concept="3clFbF" id="1GGmKhcslZ8" role="3cqZAp">
<node concept="2OqwBi" id="1GGmKhcso5p" role="3clFbG">
<node concept="2OqwBi" id="1GGmKhcsBAw" role="2Oq$k0">
<node concept="2OqwBi" id="1GGmKhcsFSz" role="2Oq$k0">
<node concept="2YIFZM" id="1GGmKhcvZEs" role="2Oq$k0">
<ref role="37wK5l" to="hfva:3j46jeGWADg" resolve="forCoerce" />
<ref role="1Pybhc" to="hfva:WJTIIojUvH" resolve="IncrementalTestBuilder" />
<node concept="2OqwBi" id="1GGmKhcvZEt" role="37wK5m">
<node concept="3xONca" id="1GGmKhcvZEu" role="2Oq$k0">
<ref role="3xOPvv" node="3j46jeGSdCm" resolve="var_b1" />
</node>
<node concept="3TrEf2" id="1GGmKhcvZEv" role="2OqNvi">
<ref role="3Tt5mk" to="tpee:4VkOLwjf83e" resolve="type" />
</node>
</node>
<node concept="35c_gC" id="1GGmKhcw4Ua" role="37wK5m">
<ref role="35c_gD" to="tpee:g7uibYu" resolve="ClassifierType" />
</node>
</node>
<node concept="liA8E" id="1GGmKhcsI0v" role="2OqNvi">
<ref role="37wK5l" to="hfva:3j46jeGTe6g" resolve="ensureResult" />
<node concept="2YIFZM" id="1GGmKhcsKfD" role="37wK5m">
<ref role="37wK5l" to="psoy:7Oc59RSEjeq" resolve="OK" />
<ref role="1Pybhc" to="psoy:7Oc59RSEjdb" resolve="Result" />
</node>
</node>
</node>
<node concept="liA8E" id="1GGmKhcsMpj" role="2OqNvi">
<ref role="37wK5l" to="hfva:WJTIIooHck" resolve="ensureNoFailures" />
</node>
</node>
<node concept="liA8E" id="1GGmKhcsqfX" role="2OqNvi">
<ref role="37wK5l" to="hfva:1GGmKhcmlgD" resolve="ensureInCache" />
<node concept="Xl_RD" id="1GGmKhcstkL" role="37wK5m">
<property role="Xl_RC" value="genDecl" />
</node>
<node concept="37vLTw" id="1GGmKhcsB85" role="37wK5m">
<ref role="3cqZAo" node="1GGmKhcs$HM" resolve="preambleClss" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="1LZb2c" id="6VRLMeOtuze" role="1SL9yI">
<property role="TrG5h" value="converts_basic" />
<node concept="3cqZAl" id="6VRLMeOtuzf" role="3clF45" />
@ -8747,6 +9059,20 @@
<property role="TrG5h" value="converts_ensureRequiredInPreamble" />
<node concept="3cqZAl" id="3j46jeGYr37" role="3clF45" />
<node concept="3clFbS" id="3j46jeGYr38" role="3clF47">
<node concept="3cpWs8" id="1GGmKhcs7QP" role="3cqZAp">
<node concept="3cpWsn" id="1GGmKhcs7QS" role="3cpWs9">
<property role="TrG5h" value="numberCls" />
<node concept="3Tqbb2" id="1GGmKhcs7QN" role="1tU5fm">
<ref role="ehGHo" to="tpee:g7uibYu" resolve="ClassifierType" />
</node>
<node concept="2c44tf" id="1GGmKhcs8kQ" role="33vP2m">
<node concept="3uibUv" id="1GGmKhcs8kR" role="2c44tc">
<ref role="3uigEE" to="wyt6:~Number" resolve="Number" />
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="1GGmKhcscWx" role="3cqZAp" />
<node concept="3clFbF" id="3j46jeGYr39" role="3cqZAp">
<node concept="2OqwBi" id="3j46jeH0hv7" role="3clFbG">
<node concept="2OqwBi" id="3j46jeGYMHX" role="2Oq$k0">
@ -8799,10 +9125,11 @@
<node concept="2c44tf" id="3j46jeGZg70" role="37wK5m">
<node concept="10Oyi0" id="3j46jeGZgfW" role="2c44tc" />
</node>
<node concept="2c44tf" id="3j46jeGZgB$" role="37wK5m">
<node concept="3uibUv" id="3j46jeGZhb4" role="2c44tc">
<ref role="3uigEE" to="wyt6:~Number" resolve="Number" />
<node concept="2OqwBi" id="1GGmKhcsgyZ" role="37wK5m">
<node concept="37vLTw" id="1GGmKhcse8v" role="2Oq$k0">
<ref role="3cqZAo" node="1GGmKhcs7QS" resolve="numberCls" />
</node>
<node concept="1$rogu" id="1GGmKhcshuc" role="2OqNvi" />
</node>
</node>
</node>
@ -8831,10 +9158,11 @@
<node concept="2c44tf" id="3j46jeGZkgS" role="37wK5m">
<node concept="17QB3L" id="3j46jeH0yeI" role="2c44tc" />
</node>
<node concept="2c44tf" id="3j46jeGZkgU" role="37wK5m">
<node concept="3uibUv" id="3j46jeGZkgV" role="2c44tc">
<ref role="3uigEE" to="wyt6:~Number" resolve="Number" />
<node concept="2OqwBi" id="1GGmKhcsfnq" role="37wK5m">
<node concept="37vLTw" id="1GGmKhcseE_" role="2Oq$k0">
<ref role="3cqZAo" node="1GGmKhcs7QS" resolve="numberCls" />
</node>
<node concept="1$rogu" id="1GGmKhcsfR1" role="2OqNvi" />
</node>
</node>
</node>
@ -9411,6 +9739,9 @@
<node concept="3xLA65" id="3j46jeGRREC" role="lGtFl">
<property role="TrG5h" value="var_x" />
</node>
<node concept="3cmrfG" id="1GGmKhcfult" role="33vP2m">
<property role="3cmrfH" value="11" />
</node>
</node>
</node>
<node concept="3clFbH" id="3j46jeGQvpF" role="3cqZAp" />
@ -9434,6 +9765,58 @@
</node>
</node>
</node>
<node concept="3clFbH" id="1GGmKhcft45" role="3cqZAp" />
<node concept="3cpWs8" id="1GGmKhcft5D" role="3cqZAp">
<node concept="3cpWsn" id="1GGmKhcft5G" role="3cpWs9">
<property role="TrG5h" value="y" />
<node concept="10Oyi0" id="1GGmKhcft5B" role="1tU5fm" />
<node concept="17qRlL" id="1GGmKhcftNP" role="33vP2m">
<node concept="3cmrfG" id="1GGmKhcftOH" role="3uHU7w">
<property role="3cmrfH" value="2" />
</node>
<node concept="37vLTw" id="1GGmKhcft7a" role="3uHU7B">
<ref role="3cqZAo" node="3j46jeGQsT5" resolve="x" />
</node>
</node>
<node concept="3xLA65" id="1GGmKhcftVF" role="lGtFl">
<property role="TrG5h" value="var_y" />
</node>
</node>
</node>
<node concept="3cpWs8" id="1GGmKhco3Hs" role="3cqZAp">
<node concept="3cpWsn" id="1GGmKhco3Hv" role="3cpWs9">
<property role="TrG5h" value="z" />
<node concept="10Oyi0" id="1GGmKhco3Hq" role="1tU5fm" />
<node concept="3cpWsd" id="1GGmKhco5Ap" role="33vP2m">
<node concept="17qRlL" id="1GGmKhco6rj" role="3uHU7w">
<node concept="37vLTw" id="1GGmKhco6rN" role="3uHU7w">
<ref role="3cqZAo" node="1GGmKhcft5G" resolve="y" />
</node>
<node concept="3cmrfG" id="1GGmKhco5QZ" role="3uHU7B">
<property role="3cmrfH" value="532" />
</node>
</node>
<node concept="17qRlL" id="1GGmKhco5rQ" role="3uHU7B">
<node concept="1eOMI4" id="1GGmKhco5r7" role="3uHU7B">
<node concept="3cpWs3" id="1GGmKhco4tD" role="1eOMHV">
<node concept="37vLTw" id="1GGmKhco4ud" role="3uHU7w">
<ref role="3cqZAo" node="3j46jeGQsT5" resolve="x" />
</node>
<node concept="37vLTw" id="1GGmKhco3Jj" role="3uHU7B">
<ref role="3cqZAo" node="1GGmKhcft5G" resolve="y" />
</node>
</node>
</node>
<node concept="37vLTw" id="1GGmKhco5sw" role="3uHU7w">
<ref role="3cqZAo" node="3j46jeGQsT5" resolve="x" />
</node>
</node>
</node>
<node concept="3xLA65" id="1GGmKhco6sL" role="lGtFl">
<property role="TrG5h" value="var_z" />
</node>
</node>
</node>
</node>
<node concept="3Tm1VV" id="6VRLMeOtu$D" role="1B3o_S" />
<node concept="3cqZAl" id="3j46jeGQdKX" role="3clF45" />