This is an automated email from the ASF dual-hosted git repository.

gitgabrio pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-kie-benchmarks.git


The following commit(s) were added to refs/heads/main by this push:
     new 3a080ef9 [incubator-kie-issues#1301] Create DMN benchmarks 
specifically targeting the codegen execution. (#288)
3a080ef9 is described below

commit 3a080ef9616d4348219204f9e9ee301bafe9b177
Author: Gabriele Cardosi <[email protected]>
AuthorDate: Thu Jun 6 14:28:58 2024 +0200

    [incubator-kie-issues#1301] Create DMN benchmarks specifically targeting 
the codegen execution. (#288)
    
    * [incubator-kie-issues#1301] Create codegen-specific benchmark
    
    * [incubator-kie-issues#1301] Add new codegen benchmark. Refactoring for 
inheritance
    
    ---------
    
    Co-authored-by: Gabriele-Cardosi <[email protected]>
---
 .../dmn/codegen/AbstractCodegenBenchmark.java      |  99 +++
 .../dmn/codegen/ImportedModelCodegenBenchmark.java |  90 +++
 .../codegen/PrequalificationCodegenBenchmark.java  |  94 +++
 .../main/resources/dmn/Imported_Model_Unamed.dmn   |  86 +++
 ...orting_EmptyNamed_Model_With_Href_Namespace.dmn |  93 +++
 .../src/main/resources/dmn/Prequalification.dmn    | 856 +++++++++++++++++++++
 6 files changed, 1318 insertions(+)

diff --git 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/codegen/AbstractCodegenBenchmark.java
 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/codegen/AbstractCodegenBenchmark.java
new file mode 100644
index 00000000..02e2d39b
--- /dev/null
+++ 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/codegen/AbstractCodegenBenchmark.java
@@ -0,0 +1,99 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.drools.benchmarks.dmn.codegen;
+
+import org.kie.dmn.api.core.DMNCompiler;
+import org.kie.dmn.api.core.DMNCompilerConfiguration;
+import org.kie.dmn.api.core.DMNContext;
+import org.kie.dmn.api.core.DMNModel;
+import org.kie.dmn.api.core.DMNRuntime;
+import org.kie.dmn.core.compiler.DMNCompilerConfigurationImpl;
+import org.kie.dmn.core.compiler.DMNCompilerImpl;
+import org.kie.dmn.core.compiler.RuntimeTypeCheckOption;
+import org.kie.dmn.core.impl.DMNRuntimeImpl;
+import org.kie.dmn.core.internal.utils.DMNRuntimeBuilder;
+import org.kie.dmn.feel.parser.feel11.profiles.DoCompileFEELProfile;
+import org.kie.dmn.feel.util.Either;
+import org.openjdk.jmh.annotations.Benchmark;
+import org.openjdk.jmh.annotations.BenchmarkMode;
+import org.openjdk.jmh.annotations.Measurement;
+import org.openjdk.jmh.annotations.Mode;
+import org.openjdk.jmh.annotations.OutputTimeUnit;
+import org.openjdk.jmh.annotations.Scope;
+import org.openjdk.jmh.annotations.Setup;
+import org.openjdk.jmh.annotations.State;
+import org.openjdk.jmh.annotations.Warmup;
+
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+import java.util.function.BiConsumer;
+import java.util.function.Function;
+
+import static org.drools.benchmarks.dmn.util.DynamicTypeUtils.entry;
+import static org.drools.benchmarks.dmn.util.DynamicTypeUtils.prototype;
+
+public abstract class AbstractCodegenBenchmark {
+
+    private DMNRuntime dmnRuntime;
+    private DMNModel dmnModel;
+    private DMNContext dmnContext;
+
+    protected abstract String getResource();
+    protected abstract List<String> getAdditionalResources();
+    protected abstract String getNameSpace();
+    protected abstract String getModelName();
+    protected abstract Map<String, Object> getInputData();
+
+    protected void setupModelAndContext() {
+        Function<DMNCompilerConfiguration, DMNCompiler> dmnCompilerFn = 
dmnCompilerConfiguration -> {
+            ((DMNCompilerConfigurationImpl) 
dmnCompilerConfiguration).addFEELProfile(new DoCompileFEELProfile());
+            return new DMNCompilerImpl(dmnCompilerConfiguration);
+        };
+        DMNRuntimeBuilder.DMNRuntimeBuilderConfigured 
dmnRuntimeBuilderConfigured = DMNRuntimeBuilder.fromDefaults()
+                .buildConfigurationUsingCustomCompiler(dmnCompilerFn);
+        Either<Exception, DMNRuntime> exceptionDMNRuntimeEither;
+        if (getAdditionalResources() != null && 
!getAdditionalResources().isEmpty()) {
+            exceptionDMNRuntimeEither = dmnRuntimeBuilderConfigured
+                    .fromClasspathResources(getResource(), this.getClass(), 
getAdditionalResources().toArray(new String[0]));
+        } else {
+            exceptionDMNRuntimeEither = dmnRuntimeBuilderConfigured
+                    .fromClasspathResource(getResource(), this.getClass());
+        }
+        dmnRuntime = exceptionDMNRuntimeEither
+                .getOrElseThrow(e -> new RuntimeException("Error initializing 
DMNRuntime", e));
+        ((DMNRuntimeImpl) dmnRuntime).setOption(new 
RuntimeTypeCheckOption(true));
+        dmnModel = dmnRuntime.getModel(
+                getNameSpace(),
+                getModelName());
+        if (dmnModel == null) {
+            throw new RuntimeException("Model " + getNameSpace() + "." + 
getModelName() + " not found");
+        }
+        dmnContext = dmnRuntime.newContext();
+        getInputData().forEach((key, value) -> dmnContext.set(key, value));
+    }
+
+    protected Object evaluateModelBenchmark() {
+        return dmnRuntime.evaluateAll(dmnModel, dmnContext);
+    }
+
+
+
+}
diff --git 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/codegen/ImportedModelCodegenBenchmark.java
 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/codegen/ImportedModelCodegenBenchmark.java
new file mode 100644
index 00000000..27265fd9
--- /dev/null
+++ 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/codegen/ImportedModelCodegenBenchmark.java
@@ -0,0 +1,90 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.drools.benchmarks.dmn.codegen;
+
+import org.openjdk.jmh.annotations.Benchmark;
+import org.openjdk.jmh.annotations.BenchmarkMode;
+import org.openjdk.jmh.annotations.Measurement;
+import org.openjdk.jmh.annotations.Mode;
+import org.openjdk.jmh.annotations.OutputTimeUnit;
+import org.openjdk.jmh.annotations.Scope;
+import org.openjdk.jmh.annotations.Setup;
+import org.openjdk.jmh.annotations.State;
+import org.openjdk.jmh.annotations.Warmup;
+
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+import static org.drools.benchmarks.dmn.util.DynamicTypeUtils.entry;
+import static org.drools.benchmarks.dmn.util.DynamicTypeUtils.prototype;
+
+@BenchmarkMode(Mode.AverageTime)
+@State(Scope.Thread)
+@Warmup(iterations = 100, time = 200, timeUnit = TimeUnit.MILLISECONDS)
+@Measurement(iterations = 20, time = 200, timeUnit = TimeUnit.MILLISECONDS)
+@OutputTimeUnit(TimeUnit.MICROSECONDS)
+public class ImportedModelCodegenBenchmark extends AbstractCodegenBenchmark {
+
+    @Override
+    protected String getResource() {
+        return "dmn/Importing_EmptyNamed_Model_With_Href_Namespace.dmn";
+    }
+
+    @Override
+    protected List<String> getAdditionalResources() {
+        return List.of("dmn/Imported_Model_Unamed.dmn");
+    }
+
+    @Override
+    protected String getNameSpace() {
+        return 
"http://www.trisotech.com/dmn/definitions/_f79aa7a4-f9a3-410a-ac95-bea496edabgc";;
+    }
+
+    @Override
+    protected String getModelName() {
+        return "Importing empty-named Model";
+    }
+
+    @Override
+    protected Map<String, Object> getInputData() {
+        Map<String, Object> aPerson = prototype(entry("name", "John"), 
entry("age", 20));
+        Map<String, Object> anImportedPerson = prototype(entry("name", 
"Luke"), entry("age", 35));
+        return prototype(entry("A Person", aPerson), entry("An Imported 
Person", anImportedPerson));
+    }
+
+    @Setup()
+    public void setupModelAndContext() {
+        super.setupModelAndContext();
+    }
+
+    @Benchmark
+    public Object evaluateModelBenchmark() {
+        return super.evaluateModelBenchmark();
+    }
+
+    public static void main(String[] args) throws Exception {
+        ImportedModelCodegenBenchmark a = new ImportedModelCodegenBenchmark();
+        a.setupModelAndContext();
+        System.out.println(a.evaluateModelBenchmark());
+    }
+
+
+}
diff --git 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/codegen/PrequalificationCodegenBenchmark.java
 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/codegen/PrequalificationCodegenBenchmark.java
new file mode 100644
index 00000000..15600b89
--- /dev/null
+++ 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/codegen/PrequalificationCodegenBenchmark.java
@@ -0,0 +1,94 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.drools.benchmarks.dmn.codegen;
+
+import org.openjdk.jmh.annotations.Benchmark;
+import org.openjdk.jmh.annotations.BenchmarkMode;
+import org.openjdk.jmh.annotations.Measurement;
+import org.openjdk.jmh.annotations.Mode;
+import org.openjdk.jmh.annotations.OutputTimeUnit;
+import org.openjdk.jmh.annotations.Scope;
+import org.openjdk.jmh.annotations.Setup;
+import org.openjdk.jmh.annotations.State;
+import org.openjdk.jmh.annotations.Warmup;
+
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+import static org.drools.benchmarks.dmn.util.DynamicTypeUtils.entry;
+import static org.drools.benchmarks.dmn.util.DynamicTypeUtils.prototype;
+
+@BenchmarkMode(Mode.AverageTime)
+@State(Scope.Thread)
+@Warmup(iterations = 100, time = 200, timeUnit = TimeUnit.MILLISECONDS)
+@Measurement(iterations = 20, time = 200, timeUnit = TimeUnit.MILLISECONDS)
+@OutputTimeUnit(TimeUnit.MICROSECONDS)
+public class PrequalificationCodegenBenchmark extends AbstractCodegenBenchmark 
{
+
+    @Override
+    protected String getResource() {
+        return "dmn/Prequalification.dmn";
+    }
+
+    @Override
+    protected List<String> getAdditionalResources() {
+        return null;
+    }
+
+    @Override
+    protected String getNameSpace() {
+        return 
"http://www.trisotech.com/definitions/_f31e1f8e-d4ce-4a3a-ac3b-747efa6b3401";;
+    }
+
+    @Override
+    protected String getModelName() {
+        return "Prequalification";
+    }
+
+    @Override
+    protected Map<String, Object> getInputData() {
+        Map<String, Object> borrower = prototype(entry("Monthly Income", 100), 
entry("Monthly Other Debt", 20));
+        return prototype(entry("Credit Score", 350),
+                entry("Loan Amount", 15),
+                entry("Appraised Value", 10),
+                entry("Best Rate", 5),
+                entry("Borrower", borrower));
+    }
+
+    @Setup()
+    public void setupModelAndContext() {
+        super.setupModelAndContext();
+    }
+
+    @Benchmark
+    public Object evaluateModelBenchmark() {
+        return super.evaluateModelBenchmark();
+    }
+
+
+    public static void main(String[] args) throws Exception {
+        PrequalificationCodegenBenchmark a = new 
PrequalificationCodegenBenchmark();
+        a.setupModelAndContext();
+        System.out.println(a.evaluateModelBenchmark());
+    }
+
+
+}
diff --git 
a/drools-benchmarks-parent/drools-benchmarks/src/main/resources/dmn/Imported_Model_Unamed.dmn
 
b/drools-benchmarks-parent/drools-benchmarks/src/main/resources/dmn/Imported_Model_Unamed.dmn
new file mode 100644
index 00000000..d5508b66
--- /dev/null
+++ 
b/drools-benchmarks-parent/drools-benchmarks/src/main/resources/dmn/Imported_Model_Unamed.dmn
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  -->
+
+<dmn:definitions 
xmlns="http://www.trisotech.com/dmn/definitions/_f27bb64b-6fc7-4e1f-9848-11ba35e0df44";
+                 xmlns:dc="http://www.omg.org/spec/DMN/20180521/DC/";
+                 xmlns:di="http://www.omg.org/spec/DMN/20180521/DI/";
+                 xmlns:dmndi="https://www.omg.org/spec/DMN/20230324/DMNDI/";
+                 xmlns:feel="https://www.omg.org/spec/DMN/20230324/FEEL/";
+                 xmlns:dmn="https://www.omg.org/spec/DMN/20230324/MODEL/";
+                 xmlns:tc="http://www.omg.org/spec/DMN/20160719/testcase";
+                 xmlns:xsd="http://www.w3.org/2001/XMLSchema";
+                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+                 exporter="DMN Modeler"
+                 exporterVersion="6.0.3.201802231629"
+                 id="_f27bb64b-6fc7-4e1f-9848-11ba35e0df44"
+                 name="Imported Model"
+                 
namespace="http://www.trisotech.com/dmn/definitions/_f27bb64b-6fc7-4e1f-9848-11ba35e0df44";>
+  <dmn:extensionElements>
+  </dmn:extensionElements>
+  <dmn:itemDefinition id="_63824D3F-9173-446D-A940-6A7F0FA056BB" 
name="tPerson" isCollection="false">
+    <dmn:itemComponent id="_9bb0759c-b3c1-482f-87f5-c047dc65cef0" name="name">
+      <dmn:typeRef>string</dmn:typeRef>
+    </dmn:itemComponent>
+    <dmn:itemComponent id="_929acc15-101c-4e49-9b11-494fff411e50" name="age">
+      <dmn:typeRef>number</dmn:typeRef>
+    </dmn:itemComponent>
+  </dmn:itemDefinition>
+     <dmn:inputData id="_51190b90-924d-479b-872b-4c6f3486c2cb" name="A Person">
+        <dmn:variable id="_44a44de4-c0ab-408e-9ba9-983d8ec2f6b5"
+                           name="A Person"
+                           typeRef="tPerson"/>
+     </dmn:inputData>
+  <dmn:inputData id="_51190b90-924d-479b-872b-4c6f3486c2de" name="An Imported 
Person">
+    <dmn:variable id="_44a44de4-c0ab-408e-9ba9-983d8ec2f6c6"
+                       name="An Imported Person"
+                       typeRef="tPerson"/>
+  </dmn:inputData>
+  <dmn:decision id="_bf4a9628-15ae-4887-97f2-7099426cb61g" name="Remote 
Greeting">
+    <dmn:variable id="_ecc6e0bb-a0af-4e99-aac6-5b8bed09c549"
+                       name="Remote Greeting"
+                       typeRef="string"/>
+    <dmn:informationRequirement>
+      <dmn:requiredInput href="#_51190b90-924d-479b-872b-4c6f3486c2de"/>
+    </dmn:informationRequirement>
+    <dmn:knowledgeRequirement>
+      <dmn:requiredKnowledge href="#_32543811-b499-4608-b784-6c6f294b1c58"/>
+    </dmn:knowledgeRequirement>
+    <dmn:literalExpression 
xmlns:triso="http://www.trisotech.com/2015/triso/modeling";
+                                id="_d7e6836b-8491-487a-a653-5735daa85bf2"
+                                triso:unparsed="true">
+      <dmn:text>Say Hello( An Imported Person )</dmn:text>
+    </dmn:literalExpression>
+  </dmn:decision>
+
+  <dmn:businessKnowledgeModel id="_32543811-b499-4608-b784-6c6f294b1c58" 
name="Say Hello">
+    <dmn:variable id="_a8eb10e1-30e6-40d8-a564-a868f4e0af34"
+                       name="Say Hello"
+                       typeRef="string"/>
+    <dmn:encapsulatedLogic kind="FEEL" 
id="_acbb96c9-34a3-4628-8179-dfc5f583e695">
+      <dmn:formalParameter id="_4a626f74-2ecc-4759-b76a-04baec6b795d"
+                                name="Person"
+                                typeRef="tPerson"/>
+      <dmn:literalExpression id="_c173a894-3719-4d2f-a365-25850e217310">
+        <dmn:text>"Hello " + Person.name + "!"</dmn:text>
+      </dmn:literalExpression>
+    </dmn:encapsulatedLogic>
+  </dmn:businessKnowledgeModel>
+
+</dmn:definitions>
diff --git 
a/drools-benchmarks-parent/drools-benchmarks/src/main/resources/dmn/Importing_EmptyNamed_Model_With_Href_Namespace.dmn
 
b/drools-benchmarks-parent/drools-benchmarks/src/main/resources/dmn/Importing_EmptyNamed_Model_With_Href_Namespace.dmn
new file mode 100644
index 00000000..71587298
--- /dev/null
+++ 
b/drools-benchmarks-parent/drools-benchmarks/src/main/resources/dmn/Importing_EmptyNamed_Model_With_Href_Namespace.dmn
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  -->
+
+<dmn:definitions 
xmlns="http://www.trisotech.com/dmn/definitions/_f79aa7a4-f9a3-410a-ac95-bea496edabgc";
+                      xmlns:dc="http://www.omg.org/spec/DMN/20180521/DC/";
+                      xmlns:di="http://www.omg.org/spec/DMN/20180521/DI/";
+                      
xmlns:dmndi="https://www.omg.org/spec/DMN/20230324/DMNDI/";
+                      xmlns:feel="https://www.omg.org/spec/DMN/20230324/FEEL/";
+                      xmlns:dmn="https://www.omg.org/spec/DMN/20230324/MODEL/";
+                      xmlns:tc="http://www.omg.org/spec/DMN/20160719/testcase";
+                      xmlns:xsd="http://www.w3.org/2001/XMLSchema";
+                      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+                      exporter="DMN Modeler"
+                      exporterVersion="6.0.3.201802231629"
+                      id="_f79aa7a4-f9a3-410a-ac95-bea496edabgc"
+                      name="Importing empty-named Model"
+                      
namespace="http://www.trisotech.com/dmn/definitions/_f79aa7a4-f9a3-410a-ac95-bea496edabgc";>
+   <dmn:extensionElements>
+  </dmn:extensionElements>
+   <dmn:import xmlns:drools="http://www.drools.org/kie/dmn/1.1";
+                    xmlns:triso="http://www.trisotech.com/2015/triso/modeling";
+                    
importType="http://www.omg.org/spec/DMN1-2Alpha/20160929/MODEL";
+                    
namespace="http://www.trisotech.com/dmn/definitions/_f27bb64b-6fc7-4e1f-9848-11ba35e0df44";
+                    name=""
+                    drools:modelName="Imported Model"
+                    
triso:fileId="eyJmIjp7InNrdSI6IjEwMmM0MDQ3LTg5NjctNGI3ZS1hODgxLTBhY2ZkNWJjOTAwMiIsIm5hbWUiOiJJbXBvcnRlZCBNb2RlbCJ9fQ=="
+                    triso:fileName="Edson Tirelli/Imported Model"/>
+   <dmn:decision id="_bf4a9628-15ae-4887-97f2-7099426cb60f" name="Local 
Greeting">
+      <dmn:variable id="_ecc6e0bb-a0af-4e99-aac6-5b8bed09c538"
+                         name="Local Greeting"
+                         typeRef="string"/>
+      <dmn:informationRequirement>
+         <dmn:requiredInput 
href="http://www.trisotech.com/dmn/definitions/_f27bb64b-6fc7-4e1f-9848-11ba35e0df44#_51190b90-924d-479b-872b-4c6f3486c2cb"/>
+      </dmn:informationRequirement>
+     <dmn:knowledgeRequirement>
+       <dmn:requiredKnowledge href="#_42543811-b499-4608-b784-6c6f294b1c59"/>
+     </dmn:knowledgeRequirement>
+      <dmn:literalExpression 
xmlns:triso="http://www.trisotech.com/2015/triso/modeling";
+                                  id="_d7e6836b-8491-487a-a653-5735daa85be1"
+                                  triso:unparsed="true">
+         <dmn:text>Local Hello( A Person )</dmn:text>
+      </dmn:literalExpression>
+   </dmn:decision>
+
+  <dmn:decision id="_bf4a9628-15ae-4887-97f2-7099426cb60g" name="Imported 
Greeting">
+    <dmn:variable id="_ecc6e0bb-a0af-4e99-aac6-5b8bed09c539"
+                       name="Imported Greeting"
+                       typeRef="string"/>
+    <dmn:informationRequirement>
+      <dmn:requiredInput 
href="http://www.trisotech.com/dmn/definitions/_f27bb64b-6fc7-4e1f-9848-11ba35e0df44#_51190b90-924d-479b-872b-4c6f3486c2cb"/>
+    </dmn:informationRequirement>
+    <dmn:knowledgeRequirement>
+      <dmn:requiredKnowledge 
href="http://www.trisotech.com/dmn/definitions/_f27bb64b-6fc7-4e1f-9848-11ba35e0df44#_32543811-b499-4608-b784-6c6f294b1c58"/>
+    </dmn:knowledgeRequirement>
+    <dmn:literalExpression 
xmlns:triso="http://www.trisotech.com/2015/triso/modeling";
+                                id="_d7e6836b-8491-487a-a653-5735daa85be2"
+                                triso:unparsed="true">
+      <dmn:text>Say Hello( A Person )</dmn:text>
+    </dmn:literalExpression>
+  </dmn:decision>
+
+  <dmn:businessKnowledgeModel id="_42543811-b499-4608-b784-6c6f294b1c59" 
name="Local Hello">
+    <dmn:variable id="_a8eb10e1-30e6-40d8-a564-a868f4e0af45"
+                       name="Local Hello"
+                       typeRef="string"/>
+    <dmn:encapsulatedLogic kind="FEEL" 
id="_acbb96c9-34a3-4628-8179-dfc5f583e695">
+      <dmn:formalParameter id="_4a626f74-2ecc-4759-b76a-04baec6b795d"
+                                name="Person"
+                                typeRef="tPerson"/>
+      <dmn:literalExpression id="_c173a894-3719-4d2f-a365-25850e217310">
+        <dmn:text>"Local Hello " + Person.name + "!"</dmn:text>
+      </dmn:literalExpression>
+    </dmn:encapsulatedLogic>
+  </dmn:businessKnowledgeModel>
+
+</dmn:definitions>
diff --git 
a/drools-benchmarks-parent/drools-benchmarks/src/main/resources/dmn/Prequalification.dmn
 
b/drools-benchmarks-parent/drools-benchmarks/src/main/resources/dmn/Prequalification.dmn
new file mode 100644
index 00000000..d403e76d
--- /dev/null
+++ 
b/drools-benchmarks-parent/drools-benchmarks/src/main/resources/dmn/Prequalification.dmn
@@ -0,0 +1,856 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  -->
+
+<semantic:definitions 
xmlns:semantic="http://www.omg.org/spec/DMN/20180521/MODEL/"; 
xmlns:rss="http://purl.org/rss/2.0/"; 
xmlns:di="http://www.omg.org/spec/DMN/20180521/DI/"; 
xmlns:feel="http://www.omg.org/spec/DMN/20180521/FEEL/"; 
xmlns:trisofeed="http://trisotech.com/feed"; 
xmlns:trisodmn="http://www.trisotech.com/2016/triso/dmn"; 
xmlns:dmndi="http://www.omg.org/spec/DMN/20180521/DMNDI/"; 
xmlns:triso="http://www.trisotech.com/2015/triso/modeling"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-in [...]
+    <semantic:extensionElements/>
+    <semantic:itemDefinition name="tRiskCategory" label="tRiskCategory" 
isCollection="false">
+        <semantic:typeRef>string</semantic:typeRef>
+        <semantic:allowedValues triso:constraintsType="enumeration">
+            <semantic:extensionElements>
+                <triso:constraintDetails>
+                    <triso:display>"High", "Medium", "Low"</triso:display>
+                    <triso:choices>
+                        <triso:value>"High"</triso:value>
+                        <triso:display>"High"</triso:display>
+                    </triso:choices>
+                    <triso:choices>
+                        <triso:value>"Medium"</triso:value>
+                        <triso:display>"Medium"</triso:display>
+                    </triso:choices>
+                    <triso:choices>
+                        <triso:value>"Low"</triso:value>
+                        <triso:display>"Low"</triso:display>
+                    </triso:choices>
+                </triso:constraintDetails>
+            </semantic:extensionElements>
+            <semantic:text>"High","Medium","Low"</semantic:text>
+        </semantic:allowedValues>
+    </semantic:itemDefinition>
+    <semantic:itemDefinition name="tCreditScore" label="tCreditScore" 
isCollection="false">
+        <semantic:typeRef>number</semantic:typeRef>
+        <semantic:allowedValues triso:constraintsType="simple">
+            <semantic:extensionElements>
+                <triso:constraintDetails min="300" minIncluded="true" 
max="850" maxIncluded="true">
+                    <triso:display>[300..850]</triso:display>
+                </triso:constraintDetails>
+            </semantic:extensionElements>
+            <semantic:text>[300..850]</semantic:text>
+        </semantic:allowedValues>
+    </semantic:itemDefinition>
+    <semantic:itemDefinition name="tClientHistoryCategory" 
label="tClientHistoryCategory" isCollection="false">
+        <semantic:typeRef>string</semantic:typeRef>
+        <semantic:allowedValues triso:constraintsType="enumeration">
+            <semantic:extensionElements>
+                <triso:constraintDetails>
+                    <triso:display>"Excellent", "Good", "Problem", "Not a 
client"</triso:display>
+                    <triso:choices>
+                        <triso:value>"Excellent"</triso:value>
+                        <triso:display>"Excellent"</triso:display>
+                    </triso:choices>
+                    <triso:choices>
+                        <triso:value>"Good"</triso:value>
+                        <triso:display>"Good"</triso:display>
+                    </triso:choices>
+                    <triso:choices>
+                        <triso:value>"Problem"</triso:value>
+                        <triso:display>"Problem"</triso:display>
+                    </triso:choices>
+                    <triso:choices>
+                        <triso:value>"Not a client"</triso:value>
+                        <triso:display>"Not a client"</triso:display>
+                    </triso:choices>
+                </triso:constraintDetails>
+            </semantic:extensionElements>
+            <semantic:text>"Excellent","Good","Problem","Not a 
client"</semantic:text>
+        </semantic:allowedValues>
+    </semantic:itemDefinition>
+    <semantic:itemDefinition name="tLoan" label="tLoan" isCollection="false">
+        <semantic:itemComponent id="_7f83de25-a58e-4337-a8e1-4720ddf8e7fc" 
name="Amount" isCollection="false">
+            <semantic:typeRef>number</semantic:typeRef>
+        </semantic:itemComponent>
+        <semantic:itemComponent id="_9fcb72a9-204a-43e6-b096-5e4569682f31" 
name="Rate" isCollection="false">
+            <semantic:typeRef>number</semantic:typeRef>
+        </semantic:itemComponent>
+        <semantic:itemComponent id="_01aebf6c-a9c2-439b-81ec-6b603a43b0e2" 
name="Term" isCollection="false">
+            <semantic:typeRef>number</semantic:typeRef>
+        </semantic:itemComponent>
+    </semantic:itemDefinition>
+    <semantic:itemDefinition name="tLoanApproval" label="tLoanApproval" 
isCollection="false">
+        <semantic:typeRef>string</semantic:typeRef>
+        <semantic:allowedValues triso:constraintsType="enumeration">
+            <semantic:extensionElements>
+                <triso:constraintDetails>
+                    <triso:display>"Approved", "Declined"</triso:display>
+                    <triso:choices>
+                        <triso:value>"Approved"</triso:value>
+                        <triso:display>"Approved"</triso:display>
+                    </triso:choices>
+                    <triso:choices>
+                        <triso:value>"Declined"</triso:value>
+                        <triso:display>"Declined"</triso:display>
+                    </triso:choices>
+                </triso:constraintDetails>
+            </semantic:extensionElements>
+            <semantic:text>"Approved","Declined"</semantic:text>
+        </semantic:allowedValues>
+    </semantic:itemDefinition>
+    <semantic:itemDefinition name="tBorrower" label="tBorrower" 
isCollection="false">
+        <semantic:itemComponent id="_492b19ea-f5b8-45cc-a734-33224a232b7a" 
name="Monthly Income" isCollection="false">
+            <semantic:typeRef>number</semantic:typeRef>
+        </semantic:itemComponent>
+        <semantic:itemComponent id="_90114bc8-9c5d-44e0-8e70-76432eded526" 
name="Monthly Other Debt" isCollection="false">
+            <semantic:typeRef>number</semantic:typeRef>
+        </semantic:itemComponent>
+    </semantic:itemDefinition>
+    <semantic:itemDefinition name="tPrequalification" 
label="tPrequalification" isCollection="false">
+        <semantic:typeRef>string</semantic:typeRef>
+        <semantic:allowedValues triso:constraintsType="enumeration">
+            <semantic:extensionElements>
+                <triso:constraintDetails>
+                    <triso:display>"Approved", "Declined"</triso:display>
+                    <triso:choices>
+                        <triso:value>"Approved"</triso:value>
+                        <triso:display>"Approved"</triso:display>
+                    </triso:choices>
+                    <triso:choices>
+                        <triso:value>"Declined"</triso:value>
+                        <triso:display>"Declined"</triso:display>
+                    </triso:choices>
+                </triso:constraintDetails>
+            </semantic:extensionElements>
+            <semantic:text>"Approved","Declined"</semantic:text>
+        </semantic:allowedValues>
+    </semantic:itemDefinition>
+    <semantic:decisionService id="_f31e1f8e-d4ce-4a3a-ac3b-747efa6b3401_DS" 
name="Whole Model Decision Service" triso:dynamicDecisionService="true" 
triso:wholeModelService="true">
+        <semantic:variable name="Whole Model Decision Service" 
id="_f31e1f8e-d4ce-4a3a-ac3b-747efa6b3401_DS_VAR" typeRef="Any"/>
+        <semantic:outputDecision 
href="#_e35ff5d4-e434-47ed-a61a-732820701361"/>
+        <semantic:encapsulatedDecision 
href="#_9b7aab39-b371-43cf-b38d-3af96da6e33f"/>
+        <semantic:encapsulatedDecision 
href="#_3f61dc6f-7983-4924-8df6-adf52cc2568e"/>
+        <semantic:encapsulatedDecision 
href="#_c9383845-c41d-41a1-a5c5-ef6e3701dfe3"/>
+        <semantic:encapsulatedDecision 
href="#_28200295-9a9d-43df-bc83-a59177e833e0"/>
+        <semantic:inputData href="#_7d6600c6-b728-47fc-86ee-efab4b8cb4c8"/>
+        <semantic:inputData href="#_ae906c5d-867c-4730-9156-de8fda91e886"/>
+        <semantic:inputData href="#_03c86778-31e0-442b-a880-8bcc829f76b3"/>
+        <semantic:inputData href="#_f595f4ae-02de-48d1-8cf4-9eb5407abc20"/>
+        <semantic:inputData href="#_a9e6848a-f744-4b89-a1c5-2030567c6dcd"/>
+    </semantic:decisionService>
+    <semantic:decisionService id="_aebd3344-168d-4ed8-97de-5eee469cfb51_DS" 
name="Diagram Loan Prequalification" triso:dynamicDecisionService="true">
+        <semantic:variable name="Diagram Loan Prequalification" 
id="_aebd3344-168d-4ed8-97de-5eee469cfb51_DS_VAR" typeRef="Any"/>
+        <semantic:outputDecision 
href="#_e35ff5d4-e434-47ed-a61a-732820701361"/>
+        <semantic:encapsulatedDecision 
href="#_9b7aab39-b371-43cf-b38d-3af96da6e33f"/>
+        <semantic:encapsulatedDecision 
href="#_3f61dc6f-7983-4924-8df6-adf52cc2568e"/>
+        <semantic:encapsulatedDecision 
href="#_c9383845-c41d-41a1-a5c5-ef6e3701dfe3"/>
+        <semantic:encapsulatedDecision 
href="#_28200295-9a9d-43df-bc83-a59177e833e0"/>
+        <semantic:inputData href="#_7d6600c6-b728-47fc-86ee-efab4b8cb4c8"/>
+        <semantic:inputData href="#_ae906c5d-867c-4730-9156-de8fda91e886"/>
+        <semantic:inputData href="#_03c86778-31e0-442b-a880-8bcc829f76b3"/>
+        <semantic:inputData href="#_f595f4ae-02de-48d1-8cf4-9eb5407abc20"/>
+        <semantic:inputData href="#_a9e6848a-f744-4b89-a1c5-2030567c6dcd"/>
+    </semantic:decisionService>
+    <semantic:decision id="_e35ff5d4-e434-47ed-a61a-732820701361" 
name="Qualified?">
+        <semantic:variable name="Qualified?" 
id="_f650549a-a1fe-4540-a1f1-b99e258c8216" typeRef="boolean"/>
+        <semantic:informationRequirement 
id="_c128f1b6-773f-4bbe-b5df-e11dad7103c3">
+            <semantic:requiredDecision 
href="#_9b7aab39-b371-43cf-b38d-3af96da6e33f"/>
+        </semantic:informationRequirement>
+        <semantic:informationRequirement 
id="_f29eca2e-8a63-4cb3-a916-6ebd6898335a">
+            <semantic:requiredInput 
href="#_7d6600c6-b728-47fc-86ee-efab4b8cb4c8"/>
+        </semantic:informationRequirement>
+        <semantic:informationRequirement 
id="_054da4ef-e280-4f9d-a5fd-1418245a09cb">
+            <semantic:requiredDecision 
href="#_c9383845-c41d-41a1-a5c5-ef6e3701dfe3"/>
+        </semantic:informationRequirement>
+        <semantic:context id="_56c904da-ced8-4f7c-9829-3795b7772a51" 
triso:descriptionVisible="false" typeRef="boolean" 
triso:expressionId="_95d732f6-8103-4087-b840-a85a126a4860">
+            <semantic:contextEntry id="_dd711cf6-bdd4-4508-a9d8-adfba6555ba5">
+                <semantic:variable name="Qualification" 
id="_d60e5812-5ee3-423e-a204-24735690a610" typeRef="tPrequalification"/>
+                <semantic:decisionTable triso:descriptionVisible="false" 
id="_3648c528-dded-4a47-b6b2-1fea2d8e7d90" hitPolicy="PRIORITY" 
outputLabel="Qualification">
+                    <semantic:input id="_f8c89fb5-e188-4364-a6c4-d6498202e16c" 
label="LTV">
+                        <semantic:inputExpression typeRef="number">
+                            <semantic:text>LTV</semantic:text>
+                        </semantic:inputExpression>
+                    </semantic:input>
+                    <semantic:input id="_944c608f-aa77-4c70-9249-d21f018b3c82" 
label="DTI">
+                        <semantic:inputExpression typeRef="number">
+                            <semantic:text>DTI</semantic:text>
+                        </semantic:inputExpression>
+                    </semantic:input>
+                    <semantic:input id="_98a0aa51-a5a5-442f-bf43-1f84bbd0c1da" 
label="Credit Score">
+                        <semantic:inputExpression typeRef="tCreditScore">
+                            <semantic:text>Credit Score</semantic:text>
+                        </semantic:inputExpression>
+                        <semantic:inputValues triso:constraintsType="simple">
+                            <semantic:text>[300..850]</semantic:text>
+                        </semantic:inputValues>
+                    </semantic:input>
+                    <semantic:output 
id="_9e50edf8-5cd0-4550-8b8e-15e12dae0fbb">
+                        <semantic:outputValues 
triso:constraintsType="enumeration">
+                            
<semantic:text>"Approved","Declined"</semantic:text>
+                        </semantic:outputValues>
+                    </semantic:output>
+                    <semantic:annotation name="Description"/>
+                    <semantic:rule id="_ca951e33-92a3-4f32-beea-44daf50b3e79">
+                        <semantic:inputEntry 
id="_58727250-5af4-4293-b6e8-96a935174ec6">
+                            <semantic:text>&lt;=0.75</semantic:text>
+                        </semantic:inputEntry>
+                        <semantic:inputEntry 
id="_ac113466-0891-483b-a750-8d1cb1bf65b3">
+                            <semantic:text>&lt;=0.36</semantic:text>
+                        </semantic:inputEntry>
+                        <semantic:inputEntry 
id="_587d5779-794d-4bae-9205-2ce540a3031d">
+                            <semantic:text>&gt;=620</semantic:text>
+                        </semantic:inputEntry>
+                        <semantic:outputEntry 
id="_b4504ae2-de8f-43e9-8e4d-d16a17c38907">
+                            <semantic:text>"Approved"</semantic:text>
+                        </semantic:outputEntry>
+                        <semantic:annotationEntry>
+                            <semantic:text/>
+                        </semantic:annotationEntry>
+                    </semantic:rule>
+                    <semantic:rule id="_3f573cbb-6c1e-4657-a0ca-363e602bb517">
+                        <semantic:inputEntry 
id="_80c7c123-d844-4148-9464-d0896dab8cad">
+                            <semantic:text>&lt;=0.75</semantic:text>
+                        </semantic:inputEntry>
+                        <semantic:inputEntry 
id="_8f4fa077-12f7-4cf8-82dc-9ad112e3d145">
+                            <semantic:text>(0.36..0.45]</semantic:text>
+                        </semantic:inputEntry>
+                        <semantic:inputEntry 
id="_35673e88-b332-45ba-8f39-a6c0a772eca7">
+                            <semantic:text>&gt;=640</semantic:text>
+                        </semantic:inputEntry>
+                        <semantic:outputEntry 
id="_589909ba-44b1-4b9d-a8a6-c47cfffb008a">
+                            <semantic:text>"Approved"</semantic:text>
+                        </semantic:outputEntry>
+                        <semantic:annotationEntry>
+                            <semantic:text/>
+                        </semantic:annotationEntry>
+                    </semantic:rule>
+                    <semantic:rule id="_1686564d-04bc-4778-be80-382907eae554">
+                        <semantic:inputEntry 
id="_3985b512-774e-4200-85ba-7bcdf71f89d9">
+                            <semantic:text>(0.75..0.80]</semantic:text>
+                        </semantic:inputEntry>
+                        <semantic:inputEntry 
id="_53ad223b-36ab-4693-9d22-be3e0a0f68e3">
+                            <semantic:text>&lt;=0.36</semantic:text>
+                        </semantic:inputEntry>
+                        <semantic:inputEntry 
id="_9514b6d0-9fce-4236-8a88-aa05b7f6602f">
+                            <semantic:text>&gt;=680</semantic:text>
+                        </semantic:inputEntry>
+                        <semantic:outputEntry 
id="_bb06b595-82e8-492b-8360-2121df5ceaa9">
+                            <semantic:text>"Approved"</semantic:text>
+                        </semantic:outputEntry>
+                        <semantic:annotationEntry>
+                            <semantic:text/>
+                        </semantic:annotationEntry>
+                    </semantic:rule>
+                    <semantic:rule id="_f783405e-b9d0-4e96-8910-8776ad4bfd6b">
+                        <semantic:inputEntry 
id="_13803bc8-90f1-4147-b1af-954d5cba2eb5">
+                            <semantic:text>(0.75..0.80]</semantic:text>
+                        </semantic:inputEntry>
+                        <semantic:inputEntry 
id="_b4ec8149-d209-4ee9-b455-47de2b9cff29">
+                            <semantic:text>(0.36..0.45]</semantic:text>
+                        </semantic:inputEntry>
+                        <semantic:inputEntry 
id="_e596d6f4-23ed-4681-bf14-802cf5253d33">
+                            <semantic:text>&gt;=700</semantic:text>
+                        </semantic:inputEntry>
+                        <semantic:outputEntry 
id="_d2c077f8-d494-4b00-8dfa-e969fc5c8dac">
+                            <semantic:text>"Approved"</semantic:text>
+                        </semantic:outputEntry>
+                        <semantic:annotationEntry>
+                            <semantic:text/>
+                        </semantic:annotationEntry>
+                    </semantic:rule>
+                    <semantic:rule id="_0552edd0-c5c7-48b1-bb04-e8e6ca55d3ff">
+                        <semantic:inputEntry 
id="_5c138042-2a26-4045-9c3f-78f3561b1742">
+                            <semantic:text>-</semantic:text>
+                        </semantic:inputEntry>
+                        <semantic:inputEntry 
id="_dcb019b1-27f0-4626-821a-453fd3a6f7c5">
+                            <semantic:text>-</semantic:text>
+                        </semantic:inputEntry>
+                        <semantic:inputEntry 
id="_275e02f5-06d5-4224-9425-546a20eb30ef">
+                            <semantic:text>-</semantic:text>
+                        </semantic:inputEntry>
+                        <semantic:outputEntry 
id="_3313756f-8956-4e66-be38-e5d22d84038b">
+                            <semantic:text>"Declined"</semantic:text>
+                        </semantic:outputEntry>
+                        <semantic:annotationEntry>
+                            <semantic:text/>
+                        </semantic:annotationEntry>
+                    </semantic:rule>
+                </semantic:decisionTable>
+            </semantic:contextEntry>
+            <semantic:contextEntry id="_978c2f30-ae0f-43b0-9390-20cdf4be405e">
+                <semantic:literalExpression 
id="_cff652ba-ffb6-4fba-a5f0-93607ac83b67">
+                    <semantic:text>Qualification = "Approved"</semantic:text>
+                </semantic:literalExpression>
+            </semantic:contextEntry>
+        </semantic:context>
+    </semantic:decision>
+    <semantic:decision id="_9b7aab39-b371-43cf-b38d-3af96da6e33f" name="DTI">
+        <semantic:variable name="DTI" 
id="_2475c53d-fda2-44ca-a38c-e699cf6fa6e7" typeRef="number"/>
+        <semantic:informationRequirement 
id="_fb9d3cc3-9bc9-440a-9ecc-6599abf8f005">
+            <semantic:requiredDecision 
href="#_3f61dc6f-7983-4924-8df6-adf52cc2568e"/>
+        </semantic:informationRequirement>
+        <semantic:informationRequirement 
id="_7e78832f-ea1e-45d3-be38-f6f292a3023a">
+            <semantic:requiredInput 
href="#_a9e6848a-f744-4b89-a1c5-2030567c6dcd"/>
+        </semantic:informationRequirement>
+        <semantic:literalExpression id="_98fcda57-780e-423a-9072-ccda314ef917" 
triso:descriptionVisible="false" typeRef="number" 
triso:expressionId="_ffd5db5f-4351-45ab-a8e6-20c12d5da50b">
+            <semantic:text>(Loan Payment+Borrower.Monthly Other 
Debt)/Borrower.Monthly Income</semantic:text>
+        </semantic:literalExpression>
+    </semantic:decision>
+    <semantic:inputData id="_7d6600c6-b728-47fc-86ee-efab4b8cb4c8" 
name="Credit Score">
+        <semantic:variable name="Credit Score" 
id="_402a3331-c742-415e-9b3e-7b96e0098fe5" typeRef="tCreditScore"/>
+    </semantic:inputData>
+    <semantic:decision id="_3f61dc6f-7983-4924-8df6-adf52cc2568e" name="Loan 
Payment">
+        <semantic:variable name="Loan Payment" 
id="_cfca2a24-63dd-4248-a668-8cd3a7eef060" typeRef="number"/>
+        <semantic:informationRequirement 
id="_18eb3d24-dc8f-4f0d-b74b-22c2c3e09797">
+            <semantic:requiredInput 
href="#_ae906c5d-867c-4730-9156-de8fda91e886"/>
+        </semantic:informationRequirement>
+        <semantic:informationRequirement 
id="_e9502657-a284-4740-bc43-d032d7170590">
+            <semantic:requiredInput 
href="#_f595f4ae-02de-48d1-8cf4-9eb5407abc20"/>
+        </semantic:informationRequirement>
+        <semantic:informationRequirement 
id="_7ccd4ed4-616d-44d0-97cf-3041a583b7f5">
+            <semantic:requiredDecision 
href="#_28200295-9a9d-43df-bc83-a59177e833e0"/>
+        </semantic:informationRequirement>
+        <semantic:knowledgeRequirement 
id="_0e2a9aa6-ccd7-42a9-a27f-e0f9770aa75e">
+            <semantic:requiredKnowledge 
href="#_fa6624e7-e741-446a-8574-3ab03195c0f0"/>
+        </semantic:knowledgeRequirement>
+        <semantic:context id="_917055c6-d0a2-4716-8253-25cffead70b9" 
triso:descriptionVisible="false" typeRef="number" 
triso:expressionId="_6a8b6112-8860-44cc-ae8c-e4448edfef06">
+            <semantic:contextEntry id="_7d82b426-5204-4089-8691-aa0035dc3351">
+                <semantic:variable name="adjustedRate" 
id="_31eda72a-f01f-481c-82e5-071406fe261b" typeRef="number"/>
+                <semantic:literalExpression 
id="_298a1fde-36f4-4a1d-a95f-e908c11dc700" triso:descriptionVisible="false">
+                    <semantic:text>LLPA*.00125 + Best Rate</semantic:text>
+                </semantic:literalExpression>
+            </semantic:contextEntry>
+            <semantic:contextEntry id="_b3bc5c25-a35c-42dd-aa49-60fb272b58b5">
+                <semantic:variable name="amount" 
id="_70b2ecbd-a7fe-4790-bf17-3472e757a1d2" typeRef="number"/>
+                <semantic:invocation 
id="_d774a555-50b4-452b-bcf6-0c3f9deeb183" triso:descriptionVisible="false">
+                    <semantic:literalExpression 
id="literal__d774a555-50b4-452b-bcf6-0c3f9deeb183">
+                        <semantic:text>payment</semantic:text>
+                    </semantic:literalExpression>
+                    <semantic:binding>
+                        <semantic:parameter 
id="_db866118-1a61-4df8-8753-845aa30d8ca0" name="principal"/>
+                        <semantic:literalExpression 
id="_354cd98a-9e13-444e-bd62-21096de00123" triso:descriptionVisible="false">
+                            <semantic:text>Loan Amount</semantic:text>
+                        </semantic:literalExpression>
+                    </semantic:binding>
+                    <semantic:binding>
+                        <semantic:parameter 
id="_465f3827-7d15-4f9b-8de9-b098f4cc2103" name="rate"/>
+                        <semantic:literalExpression 
id="_b7468e7a-d4d7-49b0-85fa-2070c3d28291" triso:descriptionVisible="false">
+                            <semantic:text>adjustedRate</semantic:text>
+                        </semantic:literalExpression>
+                    </semantic:binding>
+                    <semantic:binding>
+                        <semantic:parameter 
id="_cd7a6a66-a49b-428e-8a99-8e4fef6d3950" name="term"/>
+                        <semantic:literalExpression 
id="_11527b96-d9bc-4933-b52f-bed1ab8cc4e0" triso:descriptionVisible="false">
+                            <semantic:text>360</semantic:text>
+                        </semantic:literalExpression>
+                    </semantic:binding>
+                </semantic:invocation>
+            </semantic:contextEntry>
+            <semantic:contextEntry id="_5398604e-1f4d-4a8a-a6ab-fc4a3e0c37ba">
+                <semantic:literalExpression 
id="_c41c0cb2-fc8f-4b89-8cf1-4d53788d286b">
+                    <semantic:text>decimal( amount, 2 )</semantic:text>
+                </semantic:literalExpression>
+            </semantic:contextEntry>
+        </semantic:context>
+    </semantic:decision>
+    <semantic:inputData id="_ae906c5d-867c-4730-9156-de8fda91e886" name="Loan 
Amount">
+        <semantic:variable name="Loan Amount" 
id="_b7a9e28f-cc86-43cf-9b8a-361ef107e4fa" typeRef="number"/>
+    </semantic:inputData>
+    <semantic:inputData id="_03c86778-31e0-442b-a880-8bcc829f76b3" 
name="Appraised Value">
+        <semantic:variable name="Appraised Value" 
id="_3ac2317a-cfed-4016-9c9c-73b3c7c77f00" typeRef="number"/>
+    </semantic:inputData>
+    <semantic:decision id="_c9383845-c41d-41a1-a5c5-ef6e3701dfe3" name="LTV">
+        <semantic:variable name="LTV" 
id="_df70b92c-ffab-472a-90fc-1f03d58820f8" typeRef="number"/>
+        <semantic:informationRequirement 
id="_6dd2571c-27a0-44ba-b7b9-d2f97282afaa">
+            <semantic:requiredInput 
href="#_03c86778-31e0-442b-a880-8bcc829f76b3"/>
+        </semantic:informationRequirement>
+        <semantic:informationRequirement 
id="_ae52e899-d256-4a8b-9e17-744209b6cb63">
+            <semantic:requiredInput 
href="#_ae906c5d-867c-4730-9156-de8fda91e886"/>
+        </semantic:informationRequirement>
+        <semantic:literalExpression id="_893f8650-b841-43b4-9336-f76b903537b7" 
triso:descriptionVisible="false" typeRef="number" 
triso:expressionId="_88604b6f-aae4-4e90-8ade-85f83ab14e4f">
+            <semantic:text>Loan Amount/Appraised Value</semantic:text>
+        </semantic:literalExpression>
+    </semantic:decision>
+    <semantic:inputData id="_f595f4ae-02de-48d1-8cf4-9eb5407abc20" name="Best 
Rate">
+        <semantic:variable name="Best Rate" 
id="_c00daa2c-571b-4a3e-b46c-a05de0fd179b" typeRef="number"/>
+    </semantic:inputData>
+    <semantic:inputData id="_a9e6848a-f744-4b89-a1c5-2030567c6dcd" 
name="Borrower">
+        <semantic:variable name="Borrower" 
id="_85f222ba-a9b8-4b5e-8524-36679966c6cd" typeRef="tBorrower"/>
+    </semantic:inputData>
+    <semantic:businessKnowledgeModel 
id="_fa6624e7-e741-446a-8574-3ab03195c0f0" name="payment">
+        <semantic:variable name="payment" 
id="_5bc9b281-d1b1-455f-a341-6760424144df" typeRef="number"/>
+        <semantic:encapsulatedLogic id="_268dfc1d-6d87-409e-bebc-7d2f23bdeeee" 
kind="FEEL" triso:descriptionVisible="false" typeRef="number" 
triso:expressionId="_f8136604-9e35-487c-9a23-247fe0039ce4">
+            <semantic:formalParameter name="principal" typeRef="number" 
id="_f304b43e-3105-42a9-bd6c-b91d93971084"/>
+            <semantic:formalParameter name="rate" typeRef="number" 
id="_96be3089-d7db-4505-ac6c-a5481a882aae"/>
+            <semantic:formalParameter name="term" typeRef="number" 
id="_8ae89bed-b697-4134-8dc5-17d109daff54"/>
+            <semantic:literalExpression 
id="_0a57b7f8-00dd-4ce8-a13b-a4e34d16e23c" typeRef="number">
+                
<semantic:text>principal*rate/12/(1-(1+rate/12)**-term)</semantic:text>
+            </semantic:literalExpression>
+        </semantic:encapsulatedLogic>
+    </semantic:businessKnowledgeModel>
+    <semantic:decision id="_28200295-9a9d-43df-bc83-a59177e833e0" name="LLPA">
+        <semantic:variable name="LLPA" 
id="_ed9c9678-f403-4338-8354-cef981e6ff26" typeRef="number"/>
+        <semantic:informationRequirement 
id="_7f2b1cbf-193b-4db8-b1c9-7dc7b385aa1f">
+            <semantic:requiredDecision 
href="#_c9383845-c41d-41a1-a5c5-ef6e3701dfe3"/>
+        </semantic:informationRequirement>
+        <semantic:informationRequirement 
id="_45902405-6770-420a-b9c7-149a92e8012f">
+            <semantic:requiredInput 
href="#_7d6600c6-b728-47fc-86ee-efab4b8cb4c8"/>
+        </semantic:informationRequirement>
+        <semantic:decisionTable triso:descriptionVisible="false" 
id="_ebd4055a-f98d-4ab9-b85e-6ada2a9aef7e" hitPolicy="ANY" outputLabel="LLPA" 
typeRef="number" triso:expressionId="_22946a76-4ba6-471b-b0e6-c3979e8bf97d">
+            <semantic:input id="_07877c47-d124-43e9-a6e5-214d84e88f21" 
label="LTV">
+                <semantic:inputExpression typeRef="number">
+                    <semantic:text>LTV</semantic:text>
+                </semantic:inputExpression>
+            </semantic:input>
+            <semantic:input id="_89991ff4-7031-42d1-8309-358531ca2684" 
label="Credit Score">
+                <semantic:inputExpression typeRef="tCreditScore">
+                    <semantic:text>Credit Score</semantic:text>
+                </semantic:inputExpression>
+                <semantic:inputValues triso:constraintsType="simple">
+                    <semantic:text>[300..850]</semantic:text>
+                </semantic:inputValues>
+            </semantic:input>
+            <semantic:output id="_f30c9245-c9c1-48ff-a6d3-8279374e2d3e"/>
+            <semantic:annotation name="Description"/>
+            <semantic:rule id="_8d33fa83-ffe2-4cf0-bd14-0e0be540781c">
+                <semantic:inputEntry 
id="_560e24a7-788d-4402-a670-dc00611691c1">
+                    <semantic:text>&lt;=0.60</semantic:text>
+                </semantic:inputEntry>
+                <semantic:inputEntry 
id="_590adfec-3dfa-4662-96ac-cf60bebe775f">
+                    <semantic:text>&gt;=660</semantic:text>
+                </semantic:inputEntry>
+                <semantic:outputEntry 
id="_549ab006-4a0f-4df9-be5d-246479b7fbb5">
+                    <semantic:text>0</semantic:text>
+                </semantic:outputEntry>
+                <semantic:annotationEntry>
+                    <semantic:text/>
+                </semantic:annotationEntry>
+            </semantic:rule>
+            <semantic:rule id="_aeaf9162-a707-470b-9c8d-9805c9564916">
+                <semantic:inputEntry 
id="_aaf2ed54-32db-4489-8845-561d9fa51fad">
+                    <semantic:text>&lt;=0.60</semantic:text>
+                </semantic:inputEntry>
+                <semantic:inputEntry 
id="_84691f07-083a-4d9c-86bf-54f3a514b1f7">
+                    <semantic:text>[620..660)</semantic:text>
+                </semantic:inputEntry>
+                <semantic:outputEntry 
id="_4e01cc86-368f-4a1f-b8a9-9a6ec32526a6">
+                    <semantic:text>0.5</semantic:text>
+                </semantic:outputEntry>
+                <semantic:annotationEntry>
+                    <semantic:text/>
+                </semantic:annotationEntry>
+            </semantic:rule>
+            <semantic:rule id="_15d94e5c-b90a-421a-8451-3343d4781034">
+                <semantic:inputEntry 
id="_5231b524-e93c-40e4-a0d2-41191a2f5c3d">
+                    <semantic:text>(0.60..0.70]</semantic:text>
+                </semantic:inputEntry>
+                <semantic:inputEntry 
id="_8e8579e3-6c70-47aa-98aa-434aa4361edb">
+                    <semantic:text>&gt;=720</semantic:text>
+                </semantic:inputEntry>
+                <semantic:outputEntry 
id="_b04408cd-e344-4cf6-a3c0-dd8f699a35f1">
+                    <semantic:text>0.25</semantic:text>
+                </semantic:outputEntry>
+                <semantic:annotationEntry>
+                    <semantic:text/>
+                </semantic:annotationEntry>
+            </semantic:rule>
+            <semantic:rule id="_02395691-28f1-486c-890f-91a34219ed86">
+                <semantic:inputEntry 
id="_2594f41c-5348-4432-addb-b194fea328dd">
+                    <semantic:text>(0.60..0.70]</semantic:text>
+                </semantic:inputEntry>
+                <semantic:inputEntry 
id="_c6831261-168c-4ebe-a791-169227754967">
+                    <semantic:text>[680..720)</semantic:text>
+                </semantic:inputEntry>
+                <semantic:outputEntry 
id="_c844038a-d63d-4c6e-858d-ba2031d882d4">
+                    <semantic:text>0.5</semantic:text>
+                </semantic:outputEntry>
+                <semantic:annotationEntry>
+                    <semantic:text/>
+                </semantic:annotationEntry>
+            </semantic:rule>
+            <semantic:rule id="_b7219454-2736-4255-af50-bec0c59f2d98">
+                <semantic:inputEntry 
id="_ea6592ba-937b-470e-a4f9-37e60bfd2f8a">
+                    <semantic:text>(0.60..0.70]</semantic:text>
+                </semantic:inputEntry>
+                <semantic:inputEntry 
id="_57dfe45d-969a-4c3e-9dbe-e595d9804784">
+                    <semantic:text>[660..680)</semantic:text>
+                </semantic:inputEntry>
+                <semantic:outputEntry 
id="_de151ff4-6ae4-4437-9b93-69378dfe84d3">
+                    <semantic:text>1.0</semantic:text>
+                </semantic:outputEntry>
+                <semantic:annotationEntry>
+                    <semantic:text/>
+                </semantic:annotationEntry>
+            </semantic:rule>
+            <semantic:rule id="_30d1fc00-39a8-438e-a089-c556c60a633f">
+                <semantic:inputEntry 
id="_67d29ca5-60e3-4621-95fc-a8bc8e2992ce">
+                    <semantic:text>(0.60..0.70]</semantic:text>
+                </semantic:inputEntry>
+                <semantic:inputEntry 
id="_a93cfa52-5fb8-4413-87e7-ae8b2490fd0a">
+                    <semantic:text>[640..660)</semantic:text>
+                </semantic:inputEntry>
+                <semantic:outputEntry 
id="_cf442192-dcd6-468d-bb52-89f204994613">
+                    <semantic:text>1.25</semantic:text>
+                </semantic:outputEntry>
+                <semantic:annotationEntry>
+                    <semantic:text/>
+                </semantic:annotationEntry>
+            </semantic:rule>
+            <semantic:rule id="_1ef3464a-54fe-4a17-aba3-d257460ee60f">
+                <semantic:inputEntry 
id="_df5d1342-4452-46b9-ab85-d2c352eb573a">
+                    <semantic:text>(0.60..0.70]</semantic:text>
+                </semantic:inputEntry>
+                <semantic:inputEntry 
id="_44314c44-f4e2-429b-910d-1d70fa30042a">
+                    <semantic:text>[620..640)</semantic:text>
+                </semantic:inputEntry>
+                <semantic:outputEntry 
id="_984ce4f2-00a7-4e27-87fd-6c11eed20ca7">
+                    <semantic:text>1.5</semantic:text>
+                </semantic:outputEntry>
+                <semantic:annotationEntry>
+                    <semantic:text/>
+                </semantic:annotationEntry>
+            </semantic:rule>
+            <semantic:rule id="_565e4364-b8ed-42d1-9b84-7b71e238180b">
+                <semantic:inputEntry 
id="_ed35f38e-87f6-42f8-90f9-b2645d2d9247">
+                    <semantic:text>(0.70..0.75]</semantic:text>
+                </semantic:inputEntry>
+                <semantic:inputEntry 
id="_58461f1c-086e-454d-ae50-edd4af2b22e7">
+                    <semantic:text>&gt;=740</semantic:text>
+                </semantic:inputEntry>
+                <semantic:outputEntry 
id="_13913b76-2041-4c39-8d89-31faed2fa33e">
+                    <semantic:text>0.25</semantic:text>
+                </semantic:outputEntry>
+                <semantic:annotationEntry>
+                    <semantic:text/>
+                </semantic:annotationEntry>
+            </semantic:rule>
+            <semantic:rule id="_05cbd274-4829-4347-bf99-c42ce3ad07c8">
+                <semantic:inputEntry 
id="_b4aec379-38a1-4bb4-9dcb-4364b4eb588b">
+                    <semantic:text>(0.70..0.75]</semantic:text>
+                </semantic:inputEntry>
+                <semantic:inputEntry 
id="_99cd4af3-ff48-468e-a4f2-1482a457ed14">
+                    <semantic:text>[720..740)</semantic:text>
+                </semantic:inputEntry>
+                <semantic:outputEntry 
id="_27e35743-831f-498a-a2e9-0b72c8fd1703">
+                    <semantic:text>0.5</semantic:text>
+                </semantic:outputEntry>
+                <semantic:annotationEntry>
+                    <semantic:text/>
+                </semantic:annotationEntry>
+            </semantic:rule>
+            <semantic:rule id="_e684c90e-3a0c-4f1f-a7bc-7665ca0f3b20">
+                <semantic:inputEntry 
id="_725f1d97-87d6-4b7c-9b1d-16ca69a85494">
+                    <semantic:text>(0.70..0.75]</semantic:text>
+                </semantic:inputEntry>
+                <semantic:inputEntry 
id="_32f41eb2-c3ea-449f-b035-cd60e9063636">
+                    <semantic:text>[700..720)</semantic:text>
+                </semantic:inputEntry>
+                <semantic:outputEntry 
id="_8e4d2a90-2f0e-4ab3-a02f-e5ff483b9549">
+                    <semantic:text>1.0</semantic:text>
+                </semantic:outputEntry>
+                <semantic:annotationEntry>
+                    <semantic:text/>
+                </semantic:annotationEntry>
+            </semantic:rule>
+            <semantic:rule id="_6a693e35-1eee-4348-84f0-859421d20096">
+                <semantic:inputEntry 
id="_a67a0a8e-ba5b-4677-a9a9-893a46950530">
+                    <semantic:text>(0.70..0.75]</semantic:text>
+                </semantic:inputEntry>
+                <semantic:inputEntry 
id="_d49f59f8-6a27-47d4-ab71-752c7b0a9296">
+                    <semantic:text>[680..700)</semantic:text>
+                </semantic:inputEntry>
+                <semantic:outputEntry 
id="_0d144cc9-a0d8-43a9-840b-c446f759557c">
+                    <semantic:text>1.25</semantic:text>
+                </semantic:outputEntry>
+                <semantic:annotationEntry>
+                    <semantic:text/>
+                </semantic:annotationEntry>
+            </semantic:rule>
+            <semantic:rule id="_819de2c9-a66a-423a-8b27-3e20096cdc7a">
+                <semantic:inputEntry 
id="_909df2b4-a709-410a-96e5-8de595bfbcd8">
+                    <semantic:text>(0.70..0.75]</semantic:text>
+                </semantic:inputEntry>
+                <semantic:inputEntry 
id="_c9b0c19c-e2e1-4427-883c-7722b8b0bcc5">
+                    <semantic:text>[660..680)</semantic:text>
+                </semantic:inputEntry>
+                <semantic:outputEntry 
id="_2f43662c-3cff-4946-8d66-3aaa990b22ba">
+                    <semantic:text>2.25</semantic:text>
+                </semantic:outputEntry>
+                <semantic:annotationEntry>
+                    <semantic:text/>
+                </semantic:annotationEntry>
+            </semantic:rule>
+            <semantic:rule id="_5593d0a0-e67c-4ffc-a285-6cb0ed4ca8c2">
+                <semantic:inputEntry 
id="_ee53f55a-b949-417b-bace-1b760b33b78a">
+                    <semantic:text>(0.70..0.75]</semantic:text>
+                </semantic:inputEntry>
+                <semantic:inputEntry 
id="_a2e89195-2612-4a66-a589-a449bbeaf0b6">
+                    <semantic:text>[640..660)</semantic:text>
+                </semantic:inputEntry>
+                <semantic:outputEntry 
id="_88534438-4596-47dc-ad40-b2addaefb965">
+                    <semantic:text>2.75</semantic:text>
+                </semantic:outputEntry>
+                <semantic:annotationEntry>
+                    <semantic:text/>
+                </semantic:annotationEntry>
+            </semantic:rule>
+            <semantic:rule id="_8f2fd13c-216d-4258-80f3-5cafb39485c4">
+                <semantic:inputEntry 
id="_99ad0e43-50f4-474f-abec-49e455b6236f">
+                    <semantic:text>(0.70..0.75]</semantic:text>
+                </semantic:inputEntry>
+                <semantic:inputEntry 
id="_4a5b0d1a-915a-4f44-b55a-e5a348570b19">
+                    <semantic:text>[620..640)</semantic:text>
+                </semantic:inputEntry>
+                <semantic:outputEntry 
id="_d08d9eba-6f3b-4a00-9d54-a11041984652">
+                    <semantic:text>3.0</semantic:text>
+                </semantic:outputEntry>
+                <semantic:annotationEntry>
+                    <semantic:text/>
+                </semantic:annotationEntry>
+            </semantic:rule>
+            <semantic:rule id="_319f16e3-7bec-4792-bc45-ad1d02e143c2">
+                <semantic:inputEntry 
id="_ef889a48-a2d3-48e7-b34e-fe0456efccb1">
+                    <semantic:text>(0.75..0.80]</semantic:text>
+                </semantic:inputEntry>
+                <semantic:inputEntry 
id="_56300d76-65e1-46de-8423-2daf5f893d10">
+                    <semantic:text>&gt;=740</semantic:text>
+                </semantic:inputEntry>
+                <semantic:outputEntry 
id="_77521cd0-14ac-48dd-8872-ab3780b2020d">
+                    <semantic:text>0.5</semantic:text>
+                </semantic:outputEntry>
+                <semantic:annotationEntry>
+                    <semantic:text/>
+                </semantic:annotationEntry>
+            </semantic:rule>
+            <semantic:rule id="_de762722-4fdf-4da1-81af-54b50fda2ff5">
+                <semantic:inputEntry 
id="_95eb1d7f-c438-49a0-ade1-7b16486d83f0">
+                    <semantic:text>(0.75..0.80]</semantic:text>
+                </semantic:inputEntry>
+                <semantic:inputEntry 
id="_6e37aaf3-4258-413d-ae6d-61cd7de18b12">
+                    <semantic:text>[720..740)</semantic:text>
+                </semantic:inputEntry>
+                <semantic:outputEntry 
id="_841b93a9-9659-4fc9-b5c4-d51e87883bbd">
+                    <semantic:text>0.75</semantic:text>
+                </semantic:outputEntry>
+                <semantic:annotationEntry>
+                    <semantic:text/>
+                </semantic:annotationEntry>
+            </semantic:rule>
+            <semantic:rule id="_d101cd00-4c19-4e6b-bf79-73d5ca54a807">
+                <semantic:inputEntry 
id="_59556af6-f58a-46bd-b477-3cd2b86dd6ea">
+                    <semantic:text>(0.75..0.80]</semantic:text>
+                </semantic:inputEntry>
+                <semantic:inputEntry 
id="_dda049fa-df2a-40cd-bbf2-db06e1ec2814">
+                    <semantic:text>[700..720)</semantic:text>
+                </semantic:inputEntry>
+                <semantic:outputEntry 
id="_e0f42be7-b8dc-44b3-9b75-5257eb9d276c">
+                    <semantic:text>1.25</semantic:text>
+                </semantic:outputEntry>
+                <semantic:annotationEntry>
+                    <semantic:text/>
+                </semantic:annotationEntry>
+            </semantic:rule>
+            <semantic:rule id="_2dbc711d-49f7-4ef4-82c7-c5e6331c9256">
+                <semantic:inputEntry 
id="_18513898-8d3b-41a2-b25b-c49ca6985e18">
+                    <semantic:text>(0.75..0.80]</semantic:text>
+                </semantic:inputEntry>
+                <semantic:inputEntry 
id="_7f7bfabd-e320-439d-b6d8-29ca023ebf08">
+                    <semantic:text>[680..700)</semantic:text>
+                </semantic:inputEntry>
+                <semantic:outputEntry 
id="_f2adf415-8530-463e-b005-8101cc88990b">
+                    <semantic:text>1.75</semantic:text>
+                </semantic:outputEntry>
+                <semantic:annotationEntry>
+                    <semantic:text/>
+                </semantic:annotationEntry>
+            </semantic:rule>
+            <semantic:rule id="_1b22d43a-28a2-4d11-b383-778141ef5bac">
+                <semantic:inputEntry 
id="_29facb3b-8441-485f-967c-eb0076299ac9">
+                    <semantic:text>(0.75..0.80]</semantic:text>
+                </semantic:inputEntry>
+                <semantic:inputEntry 
id="_204326f7-68ee-429f-ae28-aa8674627b84">
+                    <semantic:text>[660..680)</semantic:text>
+                </semantic:inputEntry>
+                <semantic:outputEntry 
id="_7dfa7c6d-f7c9-4ffa-ab2c-57648c7ca132">
+                    <semantic:text>2.75</semantic:text>
+                </semantic:outputEntry>
+                <semantic:annotationEntry>
+                    <semantic:text/>
+                </semantic:annotationEntry>
+            </semantic:rule>
+            <semantic:rule id="_7f490c1a-cb40-4d39-b6fd-d39f6b6a57df">
+                <semantic:inputEntry 
id="_bcec8f90-e808-4d49-b521-a95483f98acb">
+                    <semantic:text>(0.75..0.80]</semantic:text>
+                </semantic:inputEntry>
+                <semantic:inputEntry 
id="_badbd3a2-e229-480a-8911-1764f976dffa">
+                    <semantic:text>[620..660)</semantic:text>
+                </semantic:inputEntry>
+                <semantic:outputEntry 
id="_994a4306-6951-4b7e-97f8-4163b9535cd7">
+                    <semantic:text>3.0</semantic:text>
+                </semantic:outputEntry>
+                <semantic:annotationEntry>
+                    <semantic:text/>
+                </semantic:annotationEntry>
+            </semantic:rule>
+            <semantic:rule id="_3bfc0980-8919-4650-badf-85b905ef9f15">
+                <semantic:inputEntry 
id="_a8608e44-1f30-4b55-acf2-1ad8609e32aa">
+                    <semantic:text>-</semantic:text>
+                </semantic:inputEntry>
+                <semantic:inputEntry 
id="_80b5ca54-7071-4533-b35d-43c9fa4fab36">
+                    <semantic:text>&lt;620</semantic:text>
+                </semantic:inputEntry>
+                <semantic:outputEntry 
id="_40bc17fe-e751-424b-9c8c-c64415d68a1a">
+                    <semantic:text>4</semantic:text>
+                </semantic:outputEntry>
+                <semantic:annotationEntry>
+                    <semantic:text/>
+                </semantic:annotationEntry>
+            </semantic:rule>
+            <semantic:rule id="_8ae37019-70a3-43e4-88d5-14ee8f40da4a">
+                <semantic:inputEntry 
id="_568ea12f-cfcb-459d-b89c-bd416a99cd5f">
+                    <semantic:text>&gt;0.80</semantic:text>
+                </semantic:inputEntry>
+                <semantic:inputEntry 
id="_da619df5-2943-407b-bb9a-1c5601fe74fc">
+                    <semantic:text>-</semantic:text>
+                </semantic:inputEntry>
+                <semantic:outputEntry 
id="_30b15b6d-2171-4141-8854-5537ca94d0a0">
+                    <semantic:text>4</semantic:text>
+                </semantic:outputEntry>
+                <semantic:annotationEntry>
+                    <semantic:text/>
+                </semantic:annotationEntry>
+            </semantic:rule>
+        </semantic:decisionTable>
+    </semantic:decision>
+    <dmndi:DMNDI>
+        <dmndi:DMNDiagram id="_aebd3344-168d-4ed8-97de-5eee469cfb51" 
triso:modelElementRef="_32143019-3116-462e-80a8-befd25129d25" name="Loan 
Prequalification">
+            <di:extension/>
+            <dmndi:Size height="835.0000038146973" width="874.1161708831787"/>
+            <dmndi:DMNShape id="_1fd1ff30-b6d5-44ef-9780-333d463a06f2" 
dmnElementRef="_e35ff5d4-e434-47ed-a61a-732820701361">
+                <dc:Bounds x="395.2411708831787" y="150" width="153" 
height="60"/>
+                <dmndi:DMNLabel 
sharedStyle="LS_f31e1f8e-d4ce-4a3a-ac3b-747efa6b3401_0"/>
+            </dmndi:DMNShape>
+            <dmndi:DMNShape id="_0c61fe4c-1248-426b-a560-c5a1fb478cbc" 
dmnElementRef="_9b7aab39-b371-43cf-b38d-3af96da6e33f">
+                <dc:Bounds x="468.4823417663574" y="243" width="153" 
height="60"/>
+                <dmndi:DMNLabel 
sharedStyle="LS_f31e1f8e-d4ce-4a3a-ac3b-747efa6b3401_0"/>
+            </dmndi:DMNShape>
+            <dmndi:DMNShape id="_03429e23-bdae-4dd0-8a9c-b4fc3d6dfe1b" 
dmnElementRef="_7d6600c6-b728-47fc-86ee-efab4b8cb4c8">
+                <dc:Bounds x="50" y="524.9999961853027" 
width="135.48234176635742" height="60.00000762939453"/>
+                <dmndi:DMNLabel 
sharedStyle="LS_f31e1f8e-d4ce-4a3a-ac3b-747efa6b3401_0"/>
+            </dmndi:DMNShape>
+            <dmndi:DMNShape id="_4a776297-3bf5-4af4-a6c5-3578a747321b" 
dmnElementRef="_3f61dc6f-7983-4924-8df6-adf52cc2568e">
+                <dc:Bounds x="468.4823417663574" y="341" width="153" 
height="60"/>
+                <dmndi:DMNLabel 
sharedStyle="LS_f31e1f8e-d4ce-4a3a-ac3b-747efa6b3401_0"/>
+            </dmndi:DMNShape>
+            <dmndi:DMNShape id="_241d8704-f196-4b28-bb8c-3e4afbb1dd6d" 
dmnElementRef="_ae906c5d-867c-4730-9156-de8fda91e886">
+                <dc:Bounds x="383.2411708831787" y="524.9999961853027" 
width="135.48234176635742" height="60.00000762939453"/>
+                <dmndi:DMNLabel 
sharedStyle="LS_f31e1f8e-d4ce-4a3a-ac3b-747efa6b3401_0"/>
+            </dmndi:DMNShape>
+            <dmndi:DMNShape id="_c767d292-1039-4998-9e49-d54edf5fce01" 
dmnElementRef="_03c86778-31e0-442b-a880-8bcc829f76b3">
+                <dc:Bounds x="212.9911708831787" y="524.9999961853027" 
width="135.48234176635742" height="60.00000762939453"/>
+                <dmndi:DMNLabel 
sharedStyle="LS_f31e1f8e-d4ce-4a3a-ac3b-747efa6b3401_0"/>
+            </dmndi:DMNShape>
+            <dmndi:DMNShape id="_eff1868b-c456-4bc8-baef-5af18a8cf9a2" 
dmnElementRef="_c9383845-c41d-41a1-a5c5-ef6e3701dfe3">
+                <dc:Bounds x="212.9911708831787" y="440" width="153" 
height="60"/>
+                <dmndi:DMNLabel 
sharedStyle="LS_f31e1f8e-d4ce-4a3a-ac3b-747efa6b3401_0"/>
+            </dmndi:DMNShape>
+            <dmndi:DMNShape id="_136e88a1-fe94-46cd-9b65-29b7b9dc0a32" 
dmnElementRef="_f595f4ae-02de-48d1-8cf4-9eb5407abc20">
+                <dc:Bounds x="534.375" y="524.9999961853027" 
width="135.48234176635742" height="60.00000762939453"/>
+                <dmndi:DMNLabel 
sharedStyle="LS_f31e1f8e-d4ce-4a3a-ac3b-747efa6b3401_0"/>
+            </dmndi:DMNShape>
+            <dmndi:DMNShape id="_278a808e-de33-4618-bf54-c941d304ada0" 
dmnElementRef="_a9e6848a-f744-4b89-a1c5-2030567c6dcd">
+                <dc:Bounds x="680.375" y="242.99999618530273" 
width="135.48234176635742" height="60.00000762939453"/>
+                <dmndi:DMNLabel 
sharedStyle="LS_f31e1f8e-d4ce-4a3a-ac3b-747efa6b3401_0"/>
+            </dmndi:DMNShape>
+            <dmndi:DMNShape id="_b1c6d039-9a5e-4326-93db-e787bd05b6af" 
dmnElementRef="_fa6624e7-e741-446a-8574-3ab03195c0f0">
+                <dc:Bounds x="672.1161708831787" y="341.5" width="152" 
height="59"/>
+                <dmndi:DMNLabel 
sharedStyle="LS_f31e1f8e-d4ce-4a3a-ac3b-747efa6b3401_0"/>
+            </dmndi:DMNShape>
+            <dmndi:DMNShape id="_00b82d81-385a-42df-bbf1-4f6ddd0b173f" 
dmnElementRef="_28200295-9a9d-43df-bc83-a59177e833e0">
+                <dc:Bounds x="212.9911708831787" y="341" width="153" 
height="60"/>
+                <dmndi:DMNLabel 
sharedStyle="LS_f31e1f8e-d4ce-4a3a-ac3b-747efa6b3401_0"/>
+            </dmndi:DMNShape>
+            <dmndi:DMNEdge id="_98b0c804-0c84-4895-8b85-07be37fe7f45" 
dmnElementRef="_c128f1b6-773f-4bbe-b5df-e11dad7103c3">
+                <di:waypoint x="544.9823417663574" y="243"/>
+                <di:waypoint x="481.7411708831787" y="210"/>
+                <dmndi:DMNLabel 
sharedStyle="LS_f31e1f8e-d4ce-4a3a-ac3b-747efa6b3401_0"/>
+            </dmndi:DMNEdge>
+            <dmndi:DMNEdge id="_88f21797-eb43-46fd-9186-04f3c3db1cdf" 
dmnElementRef="_fb9d3cc3-9bc9-440a-9ecc-6599abf8f005">
+                <di:waypoint x="544.9823417663574" y="341"/>
+                <di:waypoint x="544.9823417663574" y="303"/>
+                <dmndi:DMNLabel 
sharedStyle="LS_f31e1f8e-d4ce-4a3a-ac3b-747efa6b3401_0"/>
+            </dmndi:DMNEdge>
+            <dmndi:DMNEdge id="_22508675-3fce-42c8-9f1b-0e98ad342e50" 
dmnElementRef="_18eb3d24-dc8f-4f0d-b74b-22c2c3e09797">
+                <di:waypoint x="450.9823417663574" y="524.9999961853027"/>
+                <di:waypoint x="534.9823417663574" y="401"/>
+                <dmndi:DMNLabel 
sharedStyle="LS_f31e1f8e-d4ce-4a3a-ac3b-747efa6b3401_0"/>
+            </dmndi:DMNEdge>
+            <dmndi:DMNEdge id="_237c0aba-3865-4dd7-b3ef-23a407f9953c" 
dmnElementRef="_f29eca2e-8a63-4cb3-a916-6ebd6898335a">
+                <di:waypoint x="117.74117088317871" y="524.9999961853027"/>
+                <di:waypoint x="117.74117088317871" y="304.49999809265137"/>
+                <di:waypoint x="421.7411708831787" y="210"/>
+                <dmndi:DMNLabel 
sharedStyle="LS_f31e1f8e-d4ce-4a3a-ac3b-747efa6b3401_0"/>
+            </dmndi:DMNEdge>
+            <dmndi:DMNEdge id="_12ad9b7f-fe83-4a82-a8f4-eb8a23dc8ddd" 
dmnElementRef="_6dd2571c-27a0-44ba-b7b9-d2f97282afaa">
+                <di:waypoint x="280.7323417663574" y="524.9999961853027"/>
+                <di:waypoint x="289.4911708831787" y="500"/>
+                <dmndi:DMNLabel 
sharedStyle="LS_f31e1f8e-d4ce-4a3a-ac3b-747efa6b3401_0"/>
+            </dmndi:DMNEdge>
+            <dmndi:DMNEdge id="_b2428756-36ec-44a9-a14f-6333c7568478" 
dmnElementRef="_ae52e899-d256-4a8b-9e17-744209b6cb63">
+                <di:waypoint x="420.9791431427002" y="524.9999961853027"/>
+                <di:waypoint x="329.4911708831787" y="500"/>
+                <dmndi:DMNLabel 
sharedStyle="LS_f31e1f8e-d4ce-4a3a-ac3b-747efa6b3401_0"/>
+            </dmndi:DMNEdge>
+            <dmndi:DMNEdge id="_e266913b-0437-43af-83ed-f8a3e90bfc44" 
dmnElementRef="_054da4ef-e280-4f9d-a5fd-1418245a09cb">
+                <di:waypoint x="299.4911708831787" y="440"/>
+                <di:waypoint x="441.7411708831787" y="393"/>
+                <di:waypoint x="441.7411708831787" y="210"/>
+                <dmndi:DMNLabel 
sharedStyle="LS_f31e1f8e-d4ce-4a3a-ac3b-747efa6b3401_0"/>
+            </dmndi:DMNEdge>
+            <dmndi:DMNEdge id="_b67a96b0-f4a0-4c41-be99-5a94935bce97" 
dmnElementRef="_e9502657-a284-4740-bc43-d032d7170590">
+                <di:waypoint x="602.1161708831787" y="524.9999961853027"/>
+                <di:waypoint x="554.9823417663574" y="401"/>
+                <dmndi:DMNLabel 
sharedStyle="LS_f31e1f8e-d4ce-4a3a-ac3b-747efa6b3401_0"/>
+            </dmndi:DMNEdge>
+            <dmndi:DMNEdge id="_3be18d10-9699-4478-9e95-2409a48fda88" 
dmnElementRef="_7e78832f-ea1e-45d3-be38-f6f292a3023a">
+                <di:waypoint x="680.375" y="273"/>
+                <di:waypoint x="621.4823417663574" y="273"/>
+                <dmndi:DMNLabel 
sharedStyle="LS_f31e1f8e-d4ce-4a3a-ac3b-747efa6b3401_0"/>
+            </dmndi:DMNEdge>
+            <dmndi:DMNEdge id="_4fe9ef21-a363-4c60-aca5-526f4ea9e371" 
dmnElementRef="_0e2a9aa6-ccd7-42a9-a27f-e0f9770aa75e">
+                <di:waypoint x="672.1161708831787" y="371"/>
+                <di:waypoint x="621.4823417663574" y="371"/>
+                <dmndi:DMNLabel 
sharedStyle="LS_f31e1f8e-d4ce-4a3a-ac3b-747efa6b3401_0"/>
+            </dmndi:DMNEdge>
+            <dmndi:DMNEdge id="_818052e0-0306-49ee-b556-d58ef3b9b8e5" 
dmnElementRef="_7f2b1cbf-193b-4db8-b1c9-7dc7b385aa1f">
+                <di:waypoint x="289.4911708831787" y="440"/>
+                <di:waypoint x="289.4911708831787" y="401"/>
+                <dmndi:DMNLabel 
sharedStyle="LS_f31e1f8e-d4ce-4a3a-ac3b-747efa6b3401_0"/>
+            </dmndi:DMNEdge>
+            <dmndi:DMNEdge id="_909091cd-e4bc-4686-915a-bdbb005b01bb" 
dmnElementRef="_7ccd4ed4-616d-44d0-97cf-3041a583b7f5">
+                <di:waypoint x="365.9911708831787" y="371"/>
+                <di:waypoint x="468.4823417663574" y="371"/>
+                <dmndi:DMNLabel 
sharedStyle="LS_f31e1f8e-d4ce-4a3a-ac3b-747efa6b3401_0"/>
+            </dmndi:DMNEdge>
+            <dmndi:DMNEdge id="_78b4d3a3-6302-4a26-afff-693e98acb102" 
dmnElementRef="_45902405-6770-420a-b9c7-149a92e8012f">
+                <di:waypoint x="117.74117088317871" y="524.9999961853027"/>
+                <di:waypoint x="229.4911708831787" y="401"/>
+                <dmndi:DMNLabel 
sharedStyle="LS_f31e1f8e-d4ce-4a3a-ac3b-747efa6b3401_0"/>
+            </dmndi:DMNEdge>
+        </dmndi:DMNDiagram>
+        <dmndi:DMNStyle id="LS_f31e1f8e-d4ce-4a3a-ac3b-747efa6b3401_0" 
fontFamily="arial,helvetica,sans-serif" fontSize="11" fontBold="false" 
fontItalic="false" fontUnderline="false" fontStrikeThrough="false"/>
+    </dmndi:DMNDI>
+</semantic:definitions>
\ No newline at end of file


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to