diff --git a/docker-compose.yml b/docker-compose.yml index 959af24..3048492 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -41,8 +41,8 @@ services: WORKFLOW_SERVICE_USER: "admin" WORKFLOW_SERVICE_PASSWORD: "adminadmin" - LLM_SERVICE_ENDPOINT_USER: "admin" - LLM_SERVICE_ENDPOINT_PASSWORD: "imixs4.null" + # LLM Integration + LLM_CONFIG_FILE: /opt/jboss/imixs-llm.xml # KSeF - Polen Test KSEF_API_NIP: "9552521552" @@ -57,6 +57,7 @@ services: - "8787:8787" volumes: - ./docker/deployments:/opt/jboss/wildfly/standalone/deployments/ + - ./docker/keys/imixs-llm.xml:/opt/jboss/imixs-llm.xml - ./docker/transfer:/opt/jboss/wildfly/transfer/ ############################################### diff --git a/pom.xml b/pom.xml index 0469fb4..e493807 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ 9.9.1-4 2.0.24 - 1.1.1 + 1.1.9-SNAPSHOT src/main/webapp @@ -407,6 +407,17 @@ ${apache.pdfbox.version} + + + org.imixs.workflow + imixs-ai-workflow + ${org.imixs.ai.version} + + + org.imixs.workflow + imixs-ai-bpmn + ${org.imixs.ai.version} + diff --git a/workflow/posteingang-de-2.0.1_debug.bpmn b/workflow/posteingang-de-3.0.0.bpmn similarity index 90% rename from workflow/posteingang-de-2.0.1_debug.bpmn rename to workflow/posteingang-de-3.0.0.bpmn index ba15d21..84b1ed0 100644 --- a/workflow/posteingang-de-2.0.1_debug.bpmn +++ b/workflow/posteingang-de-3.0.0.bpmn @@ -33,7 +33,7 @@ - + true @@ -60,7 +60,6 @@ task_uB6BGQ textAnnotation_CtU05A task_PsBytg - dataObject_CRa7xA event_Zxhr0w dataObject_vVKXIg event_yQLmNA @@ -84,6 +83,8 @@ event_VEvZRQ event_Xk1mPA event_a1P5WQ + dataObject_UIvZkA + dataObject_BbVs7w @@ -183,7 +184,6 @@ Betrag: _amount (Brutto € _amount_brutto $workflowgroup - $workflowstatus]]> - SequenceFlow_9 sequenceFlow_4gpPgw sequenceFlow_CbkmwA @@ -240,11 +240,18 @@ Betrag: _amount (Brutto € _amount_brutto -X-Tika-OCRLanguage=eng+deu -X-Tika-PDFocrStrategy=OCR_ONLY -(PDF|pdf)$ -10 -Empfang]]> +Empfang + + + (pdf|PDF|eml|msg)$ + (pdf|PDF)$ + 10 + + + + true + +]]> @@ -260,7 +267,6 @@ Betrag: _amount (Brutto € _amount_brutto - SequenceFlow_9 SequenceFlow_2 @@ -272,9 +278,6 @@ Betrag: _amount (Brutto € _amount_brutto sequenceFlow_VlPVJg - - - @@ -323,9 +326,6 @@ Betrag: _amount (Brutto € _amount_brutto - - - @@ -356,7 +356,6 @@ Betrag: _amount (Brutto € _amount_brutto - sequenceFlow_fN22Gg sequenceFlow_bh4DIw sequenceFlow_ofQKHg @@ -372,9 +371,6 @@ Assign invoice to process 'Front Desk']]> - - - @@ -407,27 +403,9 @@ Company: document.company
]]> sequenceFlow_JpNUKg - sequenceFlow_8SpIiA sequenceFlow_I8o4DA sequenceFlow_KKWo0w - - - - - - - - - - - - -]]> - - - - @@ -511,9 +489,9 @@ Company: document.company
]]> - https://llama.cpp.imixs.com/ + api.llama.cpp.imixs.com XML - false + true cdtr.name,invoice.number,invoice.date,invoice.total,payment.date,cdtr.iban,cdtr.bic,total @@ -533,7 +511,6 @@ Company: document.company
]]>
DataOutput_2 - sequenceFlow_aC0skQ sequenceFlow_YMtfiw sequenceFlow_PWXjog
@@ -563,56 +540,25 @@ Company: document.company
]]> sequenceFlow_JpNUKg sequenceFlow_lmU9IA - sequenceFlow_aC0skQ sequenceFlow_A62nqQ sequenceFlow_DdWK6A - - - - - - - + - {"n_predict": 4096, "temperature": 0 } - {"n_predict": 4096, "temperature": 0 } + invoice.summary + -[INST]Transfer the invoice data into an XML object with the following structure: +Note: The Reference Number in the format [2 letters][3 letters][4-digit booking period YYMM][3-digit sequence number] ==> "invoice.positions" - - ... - ... - 2024-12-31 - 2024-12-31 - 1234.00 - ... - ... - ... - - -Transfer the individual invoice data to the XML tags, taking into account the following suggestions for mapping: - - - Company name ==> "cdtr.name" (the name of the company that issued the invoice document, not the recipient) - - Invoice number ==> "invoice.number" - - Invoice Date ==> "invoice.date" - - Total ==> "invoice.total" (in EUR or if not available in USD or PLN) - - IBAN ==> "cdtr.iban" - - BIC or SWIFT ==> "cdtr.bic" - - Payment date / Due date ==> "invoice.duedate" - - The Reference Number in the format [2 letters][3 letters][4-digit booking period YYMM][3-digit sequence number] ==> "invoice.positions" - -Note: Output only the XML object! Don't add explanations or comments. Use only the XML structure specified in this example and do not create any other XML tags. If you don't have data for some fields, leave the corresponding XML tags blank. Format date values (invoice.date, invoice.duedate) into the ISO 8601 format (YYYY-MM-DD). Format numbers and amounts (type="double") according to ISO 4217. <> -[/INST] +]]]]> + invoice.summary -]]]]> - ]]> @@ -702,9 +648,6 @@ Note: Output only the XML object! Don't add explanations or comments. Use only t sequenceFlow_gpPDLg sequenceFlow_eccehA - - - @@ -771,7 +714,7 @@ Note: Output only the XML object! Don't add explanations or comments. Use only t false - https://llama.cpp.imixs.com/ + api.llama.cpp.imixs.com XML Empfang @@ -789,19 +732,16 @@ Note: Output only the XML object! Don't add explanations or comments. Use only t DataOutput_2 - sequenceFlow_fN22Gg sequenceFlow_naZnAA sequenceFlow_PgyOMw - + - {"n_predict": 512, "temperature": 0 } - ^.+\.([pP][dD][fF])$ + {"n_predict": 512, "temperature": 0 } + [INST] Assign the invoice to one of the following categories: +Assign the invoice to one of the following categories: - Cargo-Invoice - in case the invoice is about cargo and logistic services - Credit - in case of a credit note @@ -821,20 +761,14 @@ Output the infromation as one XML object that has the following structure: Note: Do not generate any other information instead of the XML object. Do not generate more than one XML Object. -[/INST] -]]]]> - + +]]]]> + (?i)^.+\.(eml|msg|pdf)$ ]]> - - - - - - @@ -900,7 +834,7 @@ Note: Do not generate any other information instead of the XML object. Do not ge - https://llama.cpp.imixs.com/ + api.llama.cpp.imixs.com invoice.summary false @@ -917,25 +851,14 @@ Note: Do not generate any other information instead of the XML object. Do not ge DataOutput_2 - sequenceFlow_8SpIiA sequenceFlow_A62nqQ sequenceFlow_Di4BQA - - - - - - - + - {"n_predict": 2048, "temperature": 0} - ^.+\.([pP][dD][fF])$ - -[INST] + {"n_predict": 2048, "temperature": 0} + + (?i)^.+\.(eml|msg|pdf)$ ]]> @@ -1091,9 +1014,6 @@ numbers that may appear on the invoice. sequenceFlow_DdWK6A - - - @@ -1104,20 +1024,11 @@ numbers that may appear on the invoice. sequenceFlow_Di4BQA - - - - - - sequenceFlow_PWXjog - - - sequenceFlow_naZnAA @@ -1205,9 +1116,6 @@ numbers that may appear on the invoice. - - - @@ -1218,14 +1126,7 @@ numbers that may appear on the invoice. sequenceFlow_bh4DIw sequenceFlow_d0zSHA - - - - - - - - + @@ -1258,9 +1159,6 @@ Possible ImageTypes are: sequenceFlow_eccehA sequenceFlow_p0asUQ - - - @@ -1294,11 +1192,124 @@ Possible ImageTypes are: + + + + + + + + + + + + + + + + + + + + + + + +]]> + association_w5HwVg + + + + + {"n_predict": 4096, "temperature": 0 } + + ... + ... + 2024-12-31 + 2024-12-31 + 1234.00 + ... + ... + ... + + +Transfer the individual invoice data to the XML tags, taking into account the following suggestions for mapping: + + - Company name ==> "cdtr.name" (the name of the company that issued the invoice document, not the recipient) + - Invoice number ==> "invoice.number" + - Invoice Date ==> "invoice.date" + - Total ==> "invoice.total" (in EUR or if not available in USD or PLN) + - IBAN ==> "cdtr.iban" + - BIC or SWIFT ==> "cdtr.bic" + - Payment date / Due date ==> "invoice.duedate" + - The Reference Number in the format [2 letters][3 letters][4-digit booking period YYMM][3-digit sequence number] ==> "invoice.positions" + + +Note: Output only the XML object! Don't add explanations or comments. Use only the XML structure specified in this example and do not create any other XML tags. If you don't have data for some fields, leave the corresponding XML tags blank. Format date values (type="date") into the ISO 8601 format (YYYY-MM-DD). Format numbers and amounts (type="double") according to ISO 4217. + + +<> + +]]]]> + invoice.summary + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + true @@ -1332,9 +1343,9 @@ Possible ImageTypes are: - + - + @@ -1347,29 +1358,34 @@ Possible ImageTypes are: - + - + - - - - - + + + + + + + + + + + + - - - - + + @@ -1393,8 +1409,8 @@ Possible ImageTypes are: - - + + @@ -1404,17 +1420,6 @@ Possible ImageTypes are: - - - - - - - - - - - @@ -1434,31 +1439,27 @@ Possible ImageTypes are: - + - + - - - - - + - + - - + + @@ -1473,9 +1474,9 @@ Possible ImageTypes are: - + - + @@ -1487,29 +1488,21 @@ Possible ImageTypes are: - - - - - - + + - + - + - + - - - - - + @@ -1521,8 +1514,8 @@ Possible ImageTypes are: - - + + @@ -1536,46 +1529,35 @@ Possible ImageTypes are: - - - - - - + - + - + - + - - - - + + - - - - + + - + - + - - - - + + @@ -1604,25 +1586,26 @@ Possible ImageTypes are: - + - + - + - - - - + + + + - - - - + + + + + @@ -1676,6 +1659,17 @@ Possible ImageTypes are: + + + + + + + + + + + diff --git a/workflow/rechnungseingang-de-1.3.0.bpmn b/workflow/rechnungseingang-de-1.3.0.bpmn new file mode 100644 index 0000000..db809e8 --- /dev/null +++ b/workflow/rechnungseingang-de-1.3.0.bpmn @@ -0,0 +1,8856 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + + + + + + + + + + + + + + + + + + Task_2 + StartEvent_1 + IntermediateCatchEvent_6 + IntermediateCatchEvent_27 + EventBasedGateway_1 + Task_10 + EndEvent_5 + IntermediateCatchEvent_40 + IntermediateThrowEvent_4 + IntermediateCatchEvent_49 + IntermediateCatchEvent_19 + IntermediateThrowEvent_3 + IntermediateCatchEvent_31 + IntermediateCatchEvent_13 + Task_14 + EventBasedGateway_3 + IntermediateCatchEvent_30 + Task_13 + EndEvent_4 + IntermediateCatchEvent_56 + IntermediateThrowEvent_9 + IntermediateCatchEvent_60 + IntermediateCatchEvent_3 + ExclusiveGateway_9 + IntermediateCatchEvent_5000-20 + + DataObject_5 + DataObject_2 + TextAnnotation_4 + textAnnotation_emMc1g + + + + Task_1 + IntermediateCatchEvent_9 + IntermediateCatchEvent_10 + IntermediateCatchEvent_11 + IntermediateThrowEvent_5 + IntermediateCatchEvent_1 + IntermediateCatchEvent_45 + IntermediateCatchEvent_61 + IntermediateCatchEvent_64 + DataObject_7 + event_GwjqFw + + + + Task_5005 + IntermediateCatchEvent_5005-20 + IntermediateCatchEvent_5005-30 + IntermediateCatchEvent_2 + IntermediateCatchEvent_36 + IntermediateCatchEvent_42 + IntermediateCatchEvent_55 + EventBasedGateway_2 + ExclusiveGateway_6 + ExclusiveGateway_4 + TextAnnotation_1 + TextAnnotation_3 + Task_4 + Task_12 + IntermediateCatchEvent_5005-10 + IntermediateCatchEvent_12 + EndEvent_1 + IntermediateCatchEvent_21 + IntermediateThrowEvent_2 + IntermediateCatchEvent_25 + IntermediateCatchEvent_26 + IntermediateCatchEvent_28 + IntermediateCatchEvent_32 + IntermediateThrowEvent_8 + ExclusiveGateway_7 + ExclusiveGateway_10 + event_bBR4QQ + event_NvdVrw + DataObject_1 + + + + IntermediateCatchEvent_44 + IntermediateCatchEvent_53 + IntermediateCatchEvent_54 + IntermediateThrowEvent_7 + IntermediateCatchEvent_50 + DataObject_6 + Task_17 + Task_18 + IntermediateCatchEvent_43 + IntermediateCatchEvent_47 + IntermediateCatchEvent_51 + IntermediateThrowEvent_6 + IntermediateCatchEvent_52 + ExclusiveGateway_3 + EventBasedGateway_5 + EventBasedGateway_6 + ExclusiveGateway_8 + task_sCjcjw + event_XFiUTg + event_9LrfcA + event_K9EFtg + + + EndEvent_3 + Task_5000 + IntermediateCatchEvent_5000-10 + IntermediateCatchEvent_33 + IntermediateCatchEvent_38 + IntermediateCatchEvent_15 + EndEvent_6 + EventBasedGateway_4 + Task_16 + IntermediateCatchEvent_37 + IntermediateCatchEvent_24 + Task_8 + IntermediateCatchEvent_16 + Task_9 + IntermediateCatchEvent_7 + ExclusiveGateway_2 + IntermediateCatchEvent_29 + IntermediateCatchEvent_39 + IntermediateCatchEvent_20 + Task_3 + IntermediateCatchEvent_17 + ExclusiveGateway_5 + IntermediateCatchEvent_35 + IntermediateThrowEvent_1 + IntermediateCatchEvent_58 + IntermediateCatchEvent_22 + Task_5 + Task_15 + IntermediateCatchEvent_48 + Task_11 + IntermediateCatchEvent_4 + IntermediateCatchEvent_14 + IntermediateCatchEvent_57 + Task_7 + IntermediateCatchEvent_18 + EndEvent_2 + IntermediateCatchEvent_5 + Task_6 + IntermediateCatchEvent_46 + Task_19 + IntermediateCatchEvent_63 + IntermediateCatchEvent_34 + IntermediateCatchEvent_59 + IntermediateCatchEvent_41 + IntermediateCatchEvent_65 + IntermediateCatchEvent_66 + + event_TyXP5Q + DataObject_3 + IntermediateCatchEvent_62 + TextAnnotation_5 + TextAnnotation_2 + event_e0gqXQ + gateway_ApXfeg + event_WNNsfQ + + + + + + + + + txtlastcomment +numsequencenumber_sub]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_31 + SequenceFlow_1 + SequenceFlow_123 + SequenceFlow_32 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_31 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home + + stop + false + + + start + false +]]> + + + + + + + + + space.name]]> + + + false + + + + + + + SequenceFlow_46 + SequenceFlow_122 + + + + sequenceFlow_zymk0A + + + + + + + + txtlastcomment]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus +Zollkurse +]]> + SequenceFlow_38 + SequenceFlow_83 + SequenceFlow_106 + SequenceFlow_104 + SequenceFlow_121 + SequenceFlow_134 + SequenceFlow_37 + SequenceFlow_10 + sequenceFlow_wq0Y0w + + + + + + + + + + + + + + _subject]]> + + + + + + + + + _amount (Brutto € _amount_brutto) +_description]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +space.name + +cargosoft-export-1.0 +1000 +100 +(?!txtworkflowhistory)(^[a-zA-Z]|^_) + + + stop + false +]]> + + + + + + + + + + + + false + + + 0 && (parseFloat(a)!=parseFloat(b)) ) { + result.isValid=false; + result.errorMessage="Der Rechnungsbetrag " + a+ " stimmt nicht mit dem Positionsbetrag " + b + " überein."; + }]]> + + + + SequenceFlow_8 + SequenceFlow_111 + SequenceFlow_51 + + + DataOutput_1 + + + DataOutput_1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +false]]> + + + + + + + + + + + + false + + + + SequenceFlow_38 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +space.name + +false]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_10 + SequenceFlow_97 + SequenceFlow_110 + + + SequenceFlow_37 + SequenceFlow_8 + SequenceFlow_54 + SequenceFlow_96 + + + + + + + + + + + + + + + txtlastcomment]]> + + + + + + + + + cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_95 + SequenceFlow_49 + SequenceFlow_20 + SequenceFlow_21 + SequenceFlow_125 + + + + + + + + + + + + + + + + + + + + + + + + +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +suggest +false + + start + false +]]> + + + + + + + + + + + + false + + + + + SequenceFlow_22 + SequenceFlow_77 + + + + + + + + txtlastcomment +numsequencenumber_sub]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_56 + SequenceFlow_15 + SequenceFlow_24 + SequenceFlow_55 + SequenceFlow_50 + SequenceFlow_81 + SequenceFlow_88 + sequenceFlow_dbshCw + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_29 + SequenceFlow_2 + + + SequenceFlow_32 + SequenceFlow_29 + SequenceFlow_30 + + + + + + + + + + + + _subject]]> + + + + + + + + + _amount (Brutto € _amount_brutto) +_description]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_30 + SequenceFlow_72 + SequenceFlow_67 + + + + + + + + + + + + + + + + + txtlastcomment +numsequencenumber_sub]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_44 + SequenceFlow_90 + SequenceFlow_47 + sequenceFlow_ucyuIw + sequenceFlow_SvEjiw + sequenceFlow_bBGlVA + + + SequenceFlow_47 + + + + + + + + + + + + + + + + + + _subject]]> + + + + + + + + + _amount (Brutto € _amount_brutto) +_description]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_55 + SequenceFlow_12 + + + + + + SequenceFlow_18 + SequenceFlow_1 + SequenceFlow_68 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + false + + + + + + SequenceFlow_6 + SequenceFlow_18 + + + + SequenceFlow_51 + SequenceFlow_6 + + + + + + + SequenceFlow_126 + + + + + + + + + + + SequenceFlow_12 + SequenceFlow_53 + SequenceFlow_19 + SequenceFlow_25 + + + + + + sepa-export-manual-3.0 +1000 +payment.type +70 +20]]> + + + + + + + + + SequenceFlow_19 + SequenceFlow_23 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Rechnungscontrolling +]]> + + + + + + + + + + + + false + + + + sequenceFlow_zymk0A + SequenceFlow_21 + + + + + + + + + + txtlastcomment]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_26 + SequenceFlow_11 + SequenceFlow_118 + SequenceFlow_132 + SequenceFlow_28 + SequenceFlow_36 + SequenceFlow_127 + sequenceFlow_Dy0E0A + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_26 + + + + + + + + + + + + + + _subject]]> + + + + + + + + + _amount (Brutto € _amount_brutto) +_description]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +space.name + + stop + false + + + start + false +]]> + + + + + + + + + $owner]]> + + + false + + + + + + + SequenceFlow_28 + SequenceFlow_105 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +space.name +false + + stop + false +]]> + + + + + + + + + + + + true + + + + + + + + + + + SequenceFlow_36 + SequenceFlow_35 + + + SequenceFlow_35 + + + + + + + + + + + SequenceFlow_39 + + + + + + + + + + txtlastcomment]]> + + + + + + + + + numsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_39 + SequenceFlow_59 + SequenceFlow_40 + + + SequenceFlow_40 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home]]> + + + + + + + + + space.name]]> + + + false + + + + SequenceFlow_11 + + + + + + + + + + + txtlastcomment +numsequencenumber_sub]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_23 + SequenceFlow_41 + SequenceFlow_14 + sequenceFlow_swRy5A + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + false + + + SequenceFlow_14 + SequenceFlow_42 + + + + + + + + + + + + + + + + txtlastcomment +numsequencenumber_sub]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_42 + SequenceFlow_3 + SequenceFlow_43 + + + + + + + + + + + _subject]]> + + + + + + + + + _amount (Brutto € _amount_brutto) +_description]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false]]> + + + + + + + + + + + + false + + + + SequenceFlow_43 + SequenceFlow_5 + SequenceFlow_44 + + + + + + + + + + + + + + + + + _subject]]> + + + + + + + + + _amount (Brutto € _amount_brutto) +_description]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home]]> + + + + + + + + + + + + false + + + + + + + + + + + + + + + SequenceFlow_50 + SequenceFlow_53 + + + + + + + + + + + + + + + + cdtr.name invoice.number]]> + + + + + + + + + cdtr.name +Rechnungsnummer: invoice.number +Betrag: invoice.total invoice.currency + + +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false]]> + + + + + + + + + + + + false + + + + + + + + + + SequenceFlow_54 + SequenceFlow_7 + + + + + + + SequenceFlow_63 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]]> + + + + + + + + + txtlastcomment +numsequencenumber_sub]]> + + + + + + + + + numsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_17 + SequenceFlow_60 + SequenceFlow_9 + + + SequenceFlow_9 + + + + + + + SequenceFlow_17 + + + + + + + + SequenceFlow_20 + SequenceFlow_65 + SequenceFlow_71 + SequenceFlow_22 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false +Wollen Sie den Vorgang wirklich löschen? + + stop + false + +cancel]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_49 + SequenceFlow_76 + SequenceFlow_48 + + + SequenceFlow_48 + + + + + + + + + + + + + txtlastcomment +numsequencenumber_sub]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_2 + SequenceFlow_78 + SequenceFlow_89 + SequenceFlow_72 + SequenceFlow_86 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false]]> + + + + + + + + + + + + false + + + + SequenceFlow_60 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false]]> + + + + + + + + + + + + false + + + + SequenceFlow_59 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + suggest +false + + gutschriftabgleich-de-1.0 + 5001 + 980 + ]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_65 + SequenceFlow_69 + + + + + + + + + + + + + + + + + + + txtlastcomment]]> + + + + + + + + + cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_69 + SequenceFlow_70 + + + + + + SequenceFlow_70 + + + + + + + + + + + + txtlastcomment +numsequencenumber_sub]]> + + + + + + + + + numsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_4 + SequenceFlow_34 + SequenceFlow_119 + SequenceFlow_5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]]> + + + + + + + + + txtlastcomment]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_7 + SequenceFlow_62 + SequenceFlow_61 + SequenceFlow_73 + + + + + + + + + + + cdtr.name invoice.number]]> + + + + + + + + + cdtr.name +Rechnungsnummer: invoice.number +Betrag: invoice.total invoice.currency + + +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false +Wollen Sie den Vorgang wirklich archivieren? +cancel]]> + + + + + + + + + + + + false + + + + + + + + SequenceFlow_61 + SequenceFlow_63 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_62 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_56 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + suggest +false + + rechnungseingang-sachrechnung-de-1.0 + 5001 + 980 + +]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_71 + SequenceFlow_64 + + + + + + + + + txtlastcomment]]> + + + + + + + + + cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_64 + SequenceFlow_66 + + + SequenceFlow_66 + + + + + + + + + + + + + + + + + + txtlastcomment]]> + + + + + + + + + _imgcdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_74 + SequenceFlow_77 + SequenceFlow_126 + SequenceFlow_46 + SequenceFlow_85 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + + SequenceFlow_74 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +space.name +false]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_73 + SequenceFlow_75 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_78 + + + + + + + + + + + txtlastcomment]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_79 + SequenceFlow_124 + SequenceFlow_131 + SequenceFlow_57 + + + + + + + + + + + _subject]]> + + + + + + + + + _amount (Brutto € _amount_brutto) +_description]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home]]> + + + + + + + + + + + + false + + + + SequenceFlow_57 + SequenceFlow_58 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_79 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false +Wollen Sie den Vorgang wirklich löschen?]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_81 + SequenceFlow_80 + + + SequenceFlow_80 + + + + + + + + + + + SequenceFlow_82 + + + + + + + + + txtlastcomment +numsequencenumber_sub]]> + + + + + + + + + numsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_84 + SequenceFlow_87 + SequenceFlow_82 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false]]> + + + + + + + + + + + + false + + + + SequenceFlow_84 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_86 + SequenceFlow_87 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_88 + SequenceFlow_89 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false +]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_83 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false +Wollen Sie den Vorgang wirklich archivieren? + + stop + false + +cancel]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_16 + SequenceFlow_13 + + + SequenceFlow_13 + + + + + + + + + + + SequenceFlow_85 + SequenceFlow_76 + SequenceFlow_16 + SequenceFlow_116 + + + + + + + SequenceFlow_90 + + + + + + + + + + + + + + + + _subject]]> + + + + + + + + + _amount (Brutto € _amount_brutto) +_description]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false +space.name]]> + + + + + + + + + $owner]]> + + + false + + + + + + + SequenceFlow_96 + SequenceFlow_120 + + + + + + + + txtlastcomment]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_91 + SequenceFlow_92 + SequenceFlow_94 + SequenceFlow_117 + SequenceFlow_100 + SequenceFlow_101 + SequenceFlow_93 + + + + + + + + + + + txtlastcomment]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_102 + SequenceFlow_114 + SequenceFlow_109 + SequenceFlow_112 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_94 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false +]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_92 + + + + + + + + + + + + SequenceFlow_101 + SequenceFlow_98 + SequenceFlow_111 + + + + + + + + + cdtr.name invoice.number]]> + + + + + + + + + cdtr.name +Rechnungsnummer: invoice.number +Betrag: invoice.total invoice.currency + + +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false]]> + + + + + + + + + + + + false + + + + + + + + + + SequenceFlow_98 + SequenceFlow_102 + + + + + + + + + + + + + + + + + + cdtr.name invoice.number]]> + + + + + + + + + cdtr.name +Rechnungsnummer: invoice.number +Betrag: invoice.total invoice.currency + + +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false +Wollen Sie den Vorgang wirklich archivieren? +cancel]]> + + + + + + + + + + + + false + + + + + + + + SequenceFlow_109 + SequenceFlow_108 + + + + SequenceFlow_108 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +space.name +false]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_112 + SequenceFlow_113 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_114 + + + + + + + + + + + + + + + + + + + + space.name)]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + false + + + + + + + + + + + + + + + + + + + + + + + + Message-Eskalation +]]> + + + + + + + + + SequenceFlow_99 + SequenceFlow_103 + + + + + + + + SequenceFlow_93 + SequenceFlow_97 + SequenceFlow_99 + + + + + + + + + + + + + SequenceFlow_105 + SequenceFlow_106 + SequenceFlow_107 + + + + + + + + + + + + + + SequenceFlow_103 + + + + + SequenceFlow_110 + + + + + + + + SequenceFlow_113 + SequenceFlow_107 + SequenceFlow_117 + + + + + + + SequenceFlow_118 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_34 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_41 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + false + + posteingang-de-2.0 + 120 + 1 +]]> + + + + + + + + + + + + false + + + SequenceFlow_95 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + false +]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + false +]]> + + + + + + + + + false + + + + + + + SequenceFlow_104 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + false + + stop + false +]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_116 + SequenceFlow_115 + + + SequenceFlow_115 + + + + + + + + + + + + + + + + + + + SequenceFlow_119 + + + DataOutput_2 + + + DataOutput_2 + + + + + + + + + SequenceFlow_120 + SequenceFlow_91 + SequenceFlow_121 + + + + + + + + + + + + + + SequenceFlow_67 + SequenceFlow_4 + SequenceFlow_15 + + + + + + + + + + + + + + + + + + SequenceFlow_123 + + + DataOutput_3 + + + DataOutput_3 + + + + + + + + + + + + + + + + + SequenceFlow_124 + + + DataOutput_4 + + + DataOutput_4 + + + + + + + + + SequenceFlow_125 + + + + + + + + + + + + + + + + _subject]]> + + + + + + + + + _amount (Brutto € _amount_brutto) +_description]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +$editor +space.name + + stop + false + + + start + false +]]> + + + + + + + + + $owner]]> + + + true + + + + + + + + + + + SequenceFlow_127 + SequenceFlow_128 + + + + + + + + + + + + + + txtlastcomment]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_68 + SequenceFlow_129 + SequenceFlow_133 + SequenceFlow_130 + + + + + + + + + + + _subject]]> + + + + + + + + + _amount (Brutto € _amount_brutto) +_description]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_130 + SequenceFlow_131 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_129 + + + + + + + + + + + + SequenceFlow_122 + SequenceFlow_132 + SequenceFlow_135 + + + + + + + + + + SequenceFlow_75 + SequenceFlow_128 + SequenceFlow_136 + SequenceFlow_134 + + + + + + + + + sb.team]]> + + + + + + SequenceFlow_135 + SequenceFlow_136 + + + + + + + + + + + + + + + + + + + + + + SequenceFlow_24 + + + DataOutput_5 + + + DataOutput_5 + + + + + + + + + + + + + + + + + SequenceFlow_133 + + + DataOutput_6 + + + DataOutput_6 + + + + + + + + + + + + Es handelt sich um einen SEPA Lauf. Die Rechnung muss explizit freigegeben werden. + Ändern von IBAN und Fälligkeit ist hier möglich + + + + + + + + + + + + + + + + + Liegt eine Logistik Leistung vor, wird ein Fachbereich ausgewählt + + + + + + + Buchhaltung setzt Flag, wenn Mahnung eingetroffen ist + + + + + + + + + + + + + + + + + + + Auslandszahlungen werden gleich ausgeführt + + + + + + + + + payment.type ]]> + + + + + + + + + + + + sequenceFlow_swRy5A + sequenceFlow_dbshCw + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + + + + sequenceFlow_ucyuIw + + + + + + + + + + + + + + space.name)]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + false + + + + + + + + + + + + + + + + + + + + + + + + Message-Eskalation +]]> + + + + + + + + + + + sequenceFlow_wq0Y0w + sequenceFlow_iH4SSA + + + + + + + + sequenceFlow_iH4SSA + + + + + + + + + + + + + + space.name)]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + false + + + + + + + + + + + + + + + + + + + + + + + + Message-Eskalation +]]> + + + + + + + + + + + sequenceFlow_Dy0E0A + + + + + + + SequenceFlow_25 + sequenceFlow_SvEjiw + SequenceFlow_58 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cdtr.name invoice.number]]> + + + + + + + + + cdtr.name +Rechnungsnummer: invoice.number +Betrag: invoice.total invoice.currency + + +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false]]> + + + + + + + + + + + + false + + + + + + + + + + + + + + + + + + + sequenceFlow_bBGlVA + sequenceFlow_mbqiAg + + + + + + + + + + + + txtlastcomment]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_114 + sequenceFlow_mbqiAg + sequenceFlow_eNnuzA + SequenceFlow_112 + sequenceFlow_PhWb2w + + + + + + + + + + + cdtr.name invoice.number]]> + + + + + + + + + cdtr.name +Rechnungsnummer: invoice.number +Betrag: invoice.total invoice.currency + + +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false +Wollen Sie den Vorgang wirklich archivieren? +cancel]]> + + + + + + + + + + + + false + + + + + + + + sequenceFlow_PhWb2w + sequenceFlow_UHzpHQ + + + + + + sequenceFlow_UHzpHQ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + sequenceFlow_eNnuzA + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + space.name +Kreditor: cdtr.name +Rechnungsnummer: invoice.number +Betrag: invoice.total invoice.currency + +application.urlindex.jsf?workitem=$uniqueid + +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +