From 2bc72c094062ee1a0d87cd12c98cbc4f4f22e7f1 Mon Sep 17 00:00:00 2001 From: Ralph Soika Date: Tue, 8 Jul 2025 21:39:37 +0200 Subject: [PATCH] new workflow - async zoho export --- .../rechnungseingang-dwc-1.0.6.bpmn | 2 + workflow/dwc/rechnungseingang-dwc-1.0.7.bpmn | 5221 +++++++++++++++++ 2 files changed, 5223 insertions(+) rename workflow/dwc/{ => deprecated}/rechnungseingang-dwc-1.0.6.bpmn (99%) create mode 100644 workflow/dwc/rechnungseingang-dwc-1.0.7.bpmn diff --git a/workflow/dwc/rechnungseingang-dwc-1.0.6.bpmn b/workflow/dwc/deprecated/rechnungseingang-dwc-1.0.6.bpmn similarity index 99% rename from workflow/dwc/rechnungseingang-dwc-1.0.6.bpmn rename to workflow/dwc/deprecated/rechnungseingang-dwc-1.0.6.bpmn index 0b70172..e09db6f 100644 --- a/workflow/dwc/rechnungseingang-dwc-1.0.6.bpmn +++ b/workflow/dwc/deprecated/rechnungseingang-dwc-1.0.6.bpmn @@ -5233,6 +5233,8 @@ See details: application.urlindex.jsf?workitem= + + diff --git a/workflow/dwc/rechnungseingang-dwc-1.0.7.bpmn b/workflow/dwc/rechnungseingang-dwc-1.0.7.bpmn new file mode 100644 index 0000000..83e830a --- /dev/null +++ b/workflow/dwc/rechnungseingang-dwc-1.0.7.bpmn @@ -0,0 +1,5221 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + + + + + + + + + + + + + + + + + + StartEvent_1 + IntermediateCatchEvent_6 + IntermediateCatchEvent_40 + IntermediateThrowEvent_4 + IntermediateCatchEvent_19 + IntermediateThrowEvent_3 + IntermediateCatchEvent_31 + Task_14 + EventBasedGateway_3 + Task_13 + EndEvent_4 + IntermediateCatchEvent_3 + IntermediateCatchEvent_5000-20 + + DataObject_5 + TextAnnotation_4 + event_ceK05A + + + EndEvent_1 + Task_4 + IntermediateCatchEvent_25 + Task_5005 + IntermediateCatchEvent_5005-10 + IntermediateCatchEvent_55 + IntermediateCatchEvent_36 + IntermediateCatchEvent_32 + IntermediateCatchEvent_21 + EventBasedGateway_2 + IntermediateCatchEvent_26 + Task_12 + IntermediateCatchEvent_28 + ExclusiveGateway_10 + + ExclusiveGateway_3 + DataObject_1 + TextAnnotation_1 + event_pAR6FQ + event_FPc1AA + Task_8 + EndEvent_3 + IntermediateCatchEvent_7 + IntermediateCatchEvent_24 + event_yosOIA + task_IJbghg + gateway_X0pLJQ + event_k30R3A + event_SkBMdQ + event_LxInVg + task_Nbs7mQ + event_YJVeoQ + + + Task_5000 + IntermediateCatchEvent_5000-10 + IntermediateCatchEvent_33 + IntermediateCatchEvent_38 + IntermediateCatchEvent_15 + EndEvent_6 + EventBasedGateway_4 + Task_16 + IntermediateCatchEvent_37 + IntermediateCatchEvent_16 + Task_9 + ExclusiveGateway_2 + IntermediateCatchEvent_29 + IntermediateCatchEvent_39 + IntermediateCatchEvent_20 + Task_3 + IntermediateCatchEvent_17 + IntermediateCatchEvent_35 + IntermediateThrowEvent_1 + IntermediateCatchEvent_58 + Task_5 + IntermediateCatchEvent_48 + IntermediateCatchEvent_8 + IntermediateCatchEvent_4 + IntermediateCatchEvent_14 + EndEvent_2 + Task_6 + IntermediateCatchEvent_23 + Task_19 + IntermediateCatchEvent_63 + IntermediateCatchEvent_41 + IntermediateCatchEvent_65 + IntermediateCatchEvent_66 + + TextAnnotation_5 + DataObject_3 + TextAnnotation_2 + IntermediateCatchEvent_62 + gateway_Al0gGg + event_yPggjQ + + + + + + + + + txtlastcomment +numsequencenumber_sub]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + + + + + + + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_31 + SequenceFlow_1 + SequenceFlow_123 + SequenceFlow_32 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_31 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home + + stop + false + + + start + false + +]]> + + + + + + + + + space.name]]> + + + false + + + + + + + SequenceFlow_46 + sequenceFlow_acNhxg + + + + sequenceFlow_Ny3V1A + + + + + + + + txtlastcomment]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + + + + + + + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus +Zollkurse +]]> + SequenceFlow_38 + SequenceFlow_83 + SequenceFlow_104 + SequenceFlow_134 + SequenceFlow_37 + sequenceFlow_ZFDfeA + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +false]]> + + + + + + + + + + + + false + + + + SequenceFlow_38 + + + + + + SequenceFlow_37 + SequenceFlow_8 + SequenceFlow_54 + + + + + + + + + + + + txtlastcomment +numsequencenumber_sub]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + + + + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_56 + SequenceFlow_24 + SequenceFlow_55 + SequenceFlow_50 + SequenceFlow_81 + SequenceFlow_88 + sequenceFlow_W0RBHg + sequenceFlow_IZAXAQ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + Association_10 + sequenceFlow_IZAXAQ + + + + + + + + + + + + + + + + + txtlastcomment +numsequencenumber_sub]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_52 + SequenceFlow_90 + SequenceFlow_47 + sequenceFlow_9rYDHA + sequenceFlow_aQ9k0Q + + + SequenceFlow_47 + + + + + + + + + + + + + + + _subject]]> + + + + + + + + + _amount (Brutto € _amount_brutto) +_description]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_55 + SequenceFlow_12 + + + + + + SequenceFlow_1 + SequenceFlow_68 + + sequenceFlow_LPXJdg + + + + + + SequenceFlow_126 + + + + + + + + SequenceFlow_12 + SequenceFlow_53 + SequenceFlow_19 + SequenceFlow_25 + + + + + + sepa-export-manual-dwc-3.0 +1000 +payment.type +70 +20]]> + + + + + + + + + SequenceFlow_19 + SequenceFlow_23 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Invoice Controlling]]> + + + + + + + + + + + + false + + + + + + sequenceFlow_Ny3V1A + sequenceFlow_UD0ZBA + + + + + + + + txtlastcomment]]> + + + + + + + + + numsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + + + + + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_59 + SequenceFlow_40 + sequenceFlow_k9vKFQ + + + SequenceFlow_40 + + + + + + + + + + + + txtlastcomment +numsequencenumber_sub]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + + + + + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_23 + SequenceFlow_41 + SequenceFlow_14 + sequenceFlow_y2ISGw + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + false + + + SequenceFlow_14 + SequenceFlow_42 + + + + + + + + + + + + + + + + + + + payment.type ]]> + + + + sequenceFlow_y2ISGw + sequenceFlow_W0RBHg + + + + + + + + + + + + _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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]]> + + + + + + + + + txtlastcomment +numsequencenumber_sub]]> + + + + + + + + + numsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + + + + + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_17 + SequenceFlow_60 + SequenceFlow_9 + + + SequenceFlow_9 + + + + + + + SequenceFlow_17 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false +Are you sure you want to delete the task? + + stop + false + +cancel]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_76 + SequenceFlow_48 + + + SequenceFlow_48 + + + + + + + + + + + + + txtlastcomment +numsequencenumber_sub]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + + + + + + + + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_2 + SequenceFlow_78 + SequenceFlow_89 + SequenceFlow_72 + SequenceFlow_86 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false]]> + + + + + + + + + + + + false + + + + SequenceFlow_52 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false]]> + + + + + + + + + + + + false + + + + SequenceFlow_60 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false]]> + + + + + + + + + + + + false + + + + SequenceFlow_59 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]]> + + + + + + + + + txtlastcomment]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + + + + + + + + + + + + + + + + + + + + + + $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_k9vKFQ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_62 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_56 + + + + + + + + + + + txtlastcomment]]> + + + + + + + + + cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + + + + + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_66 + sequenceFlow_Mz0rbQ + + + SequenceFlow_66 + + + + + + + + + + + + txtlastcomment]]> + + + + + + + + + _imgcdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + + + + + + + + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_74 + SequenceFlow_126 + SequenceFlow_46 + SequenceFlow_85 + sequenceFlow_UD0ZBA + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Invoice Controlling +false +suggest]]> + + + + + + + + + + + + false + + + + + SequenceFlow_74 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +space.name +false]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_73 + SequenceFlow_75 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_78 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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]]> + + + + + + + + + + + + + + + + + + + + + + + $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 +Are you sure you want to archive the task? + + stop + false + +cancel]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_16 + SequenceFlow_13 + + + SequenceFlow_13 + + + + + + + + + + + SequenceFlow_85 + SequenceFlow_76 + SequenceFlow_16 + + sequenceFlow_GKmxwQ + + + + + + SequenceFlow_90 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_41 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /> + + + + + +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + false +]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_104 + + + + + + + + + + + + + + + + + + + + SequenceFlow_123 + + + DataOutput_3 + + + DataOutput_3 + + + + + + + + + + + txtlastcomment]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + + + + + + + + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_68 + SequenceFlow_129 + SequenceFlow_133 + sequenceFlow_MxzvVQ + + + + + + + + + + + _subject]]> + + + + + + + + + _amount (Brutto € _amount_brutto) +_description]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home]]> + + + + + + + + + + + + false + + + + + + + sequenceFlow_MxzvVQ + sequenceFlow_QzY8PA + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_129 + + + + + + SequenceFlow_75 + SequenceFlow_134 + + sequenceFlow_acNhxg + + + + + + + + + + + + + + + + + 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 + + + + + + + + + + + + + + + + + + + + + + sequenceFlow_l7lJjQ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +false]]> + + + + + + + + + + + + false + + + + sequenceFlow_ZFDfeA + sequenceFlow_l7lJjQ + + + + + + + + + + + + + + + + + + + SequenceFlow_25 + sequenceFlow_9rYDHA + SequenceFlow_42 + sequenceFlow_QzY8PA + + + + + + + + + + + + + + + + + + + + + + sequenceFlow_LuiXSA + sequenceFlow_9h7Diw + sequenceFlow_06yfVA + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + suggest +false + + rechnungseingang-sachrechnung-dwc-1.0 + 5001 + 980 + ]]> + + + + + + + + + + + + false + + + + + + + + sequenceFlow_Mz0rbQ + sequenceFlow_GKmxwQ + + + + + + + + + + + + + + + + + + + + + + + txtlastcomment]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + + + + + + + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus +]]> + SequenceFlow_83 + SequenceFlow_134 + sequenceFlow_ZFDfeA + sequenceFlow_Te40Zg + sequenceFlow_vDXFjw + + + + sequenceFlow_LPXJdg + sequenceFlow_LuiXSA + sequenceFlow_uiPbQA + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + sequenceFlow_Te40Zg + sequenceFlow_TaR2iw + + + + + + + + + + + + + + + + + + + + + + + adapter.error_code + +adapter.error_message + + +See details: application.urlindex.jsf?workitem=$uniqueid]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + adapter.error_code: adapter.error_message]]> + + + false + + + + + + + + + + + + + adapter.error_code - $workflowgroup : invoice.number]]> + + + + + + + sequenceFlow_uiPbQA + sequenceFlow_vDXFjw + + + + + + + + + + + + + + + + + sequenceFlow_TaR2iw + sequenceFlow_aQ9k0Q + + + + + + + + + + + + + + + + + _subject]]> + + + + + + + + + _amount (Brutto € _amount_brutto) +_description]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +space.name +cargosoft-export-1.0 +1000 +100 +(?!txtworkflowhistory)(^[a-zA-Z]|^_) + + stop + false + +]]> + + + + + + + + + + + + false + + + 0 && (a!=b) ) { + result.isValid=false; + result.errorMessage="Der Rechnungsbetrag " + a+ " stimmt nicht mit dem Positionsbetrag " + b + " überein."; +}]]> + + + + + + DataOutput_1 + + + DataOutput_1 + + sequenceFlow_6uAgJA + SequenceFlow_8 + + sequenceFlow_0wNOtg + + + + + + + + txtlastcomment]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + + + + + + + + + + + + + + + + + + + + + + + + SequenceFlow_134 + sequenceFlow_6kFh8Q + sequenceFlow_9h7Diw + sequenceFlow_0wNOtg + sequenceFlow_TaR2iw + + + + + + + + sequenceFlow_06yfVA + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +