<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:zeebe="http://camunda.org/schema/zeebe/1.0" xmlns:nano="https://nanobpm.io/schema/shapes/1.0" id="Definitions_nano_workforce_merge" targetNamespace="http://nanobpm.io/nano-workforce">
  <bpmn:message id="Message_depsCleared" name="deps-cleared">
    <bpmn:extensionElements>
      <zeebe:subscription correlationKey="=prKey" />
    </bpmn:extensionElements>
  </bpmn:message>
  <bpmn:message id="Message_mergeReady" name="merge-ready">
    <bpmn:extensionElements>
      <zeebe:subscription correlationKey="=prKey" />
      <zeebe:properties>
        <zeebe:property name="io.nanobpm.dataEnvelope.in" value="MergeReady" />
      </zeebe:properties>
    </bpmn:extensionElements>
  </bpmn:message>
  <bpmn:message id="Message_mergeLanded" name="merge-landed">
    <bpmn:extensionElements>
      <zeebe:subscription correlationKey="=prKey" />
    </bpmn:extensionElements>
  </bpmn:message>
  <bpmn:message id="Message_mergeEvicted" name="merge-evicted">
    <bpmn:extensionElements>
      <zeebe:subscription correlationKey="=prKey" />
    </bpmn:extensionElements>
  </bpmn:message>
  <bpmn:process id="merge-loop" name="PR Merge" isExecutable="true">
    <bpmn:extensionElements>
      <nano:shapes>
        <nano:shape id="MergeArmIn" name="Arm merge poller — input">
          <nano:extend name="prKey" type="string" />
        </nano:shape>
        <nano:shape id="MergeAttemptIn" name="Attempt merge — input">
          <nano:extend name="prKey" type="string" />
          <nano:extend name="repo" type="string" />
          <nano:extend name="prNumber" type="integer" />
          <nano:extend name="round" type="integer" optional="true" />
          <nano:extend name="abandonUrl" type="string" optional="true" />
        </nano:shape>
        <nano:shape id="MergeAttemptOut" name="Attempt merge — result">
          <nano:extend name="mergeStatus" type="string" />
          <nano:extend name="status" type="string" optional="true" />
          <nano:extend name="question" type="string" optional="true" />
        </nano:shape>
        <nano:shape id="MarkMergedIn" name="Mark merged — input">
          <nano:extend name="prKey" type="string" />
        </nano:shape>
        <nano:shape id="MergeStallProbeIn" name="Merge stall probe — input">
          <nano:extend name="prKey" type="string" />
          <nano:extend name="repo" type="string" />
          <nano:extend name="prNumber" type="integer" />
        </nano:shape>
        <nano:shape id="MergeStallProbeOut" name="Merge stall probe — result">
          <nano:extend name="mergeState" type="string" />
          <nano:extend name="failingChecks" type="integer" optional="true" />
          <nano:extend name="failingChecksList" type="string" optional="true" />
        </nano:shape>
        <nano:shape id="MergeReady" name="merge-ready message payload">
          <nano:extend name="mergeState" type="string" />
          <nano:extend name="failingChecks" type="integer" optional="true" />
          <nano:extend name="failingChecksList" type="string" optional="true" />
        </nano:shape>
        <nano:shape id="FixCiIn" name="CI fix — input">
          <nano:extend name="prKey" type="string" />
          <nano:extend name="repo" type="string" />
          <nano:extend name="prNumber" type="integer" />
          <nano:extend name="prUrl" type="string" />
          <nano:extend name="ciFixRound" type="integer" />
        </nano:shape>
        <nano:shape id="FixCiOut" name="CI fix — result">
          <nano:extend name="status" type="string" />
          <nano:extend name="summary" type="string" optional="true" />
          <nano:extend name="question" type="string" optional="true" />
          <nano:extend name="dependsOn" type="string" optional="true" />
          <nano:extend name="pushed" type="boolean" optional="true" />
        </nano:shape>
        <nano:shape id="RebaseIn" name="Rebase — input">
          <nano:extend name="prKey" type="string" />
          <nano:extend name="repo" type="string" />
          <nano:extend name="prNumber" type="integer" />
          <nano:extend name="prUrl" type="string" />
          <nano:extend name="rebaseRound" type="integer" />
        </nano:shape>
        <nano:shape id="RebaseOut" name="Rebase — result">
          <nano:extend name="status" type="string" />
          <nano:extend name="summary" type="string" optional="true" />
          <nano:extend name="question" type="string" optional="true" />
          <nano:extend name="dependsOn" type="string" optional="true" />
        </nano:shape>
        <nano:shape id="RecordDepIn" name="Record discovered dependency — input">
          <nano:extend name="prKey" type="string" />
          <nano:extend name="dependsOn" type="string" optional="true" />
        </nano:shape>
      </nano:shapes>
    </bpmn:extensionElements>
    <bpmn:startEvent id="MergeStart" name="PR converged">
      <bpmn:outgoing>f_m_start</bpmn:outgoing>
    </bpmn:startEvent>
    <bpmn:intermediateCatchEvent id="wait-deps" name="Wait: dependencies merged">
      <bpmn:incoming>f_m_start</bpmn:incoming>
      <bpmn:incoming>f_dep_rewait</bpmn:incoming>
      <bpmn:outgoing>f_m_deps</bpmn:outgoing>
      <bpmn:messageEventDefinition id="med_depsCleared" messageRef="Message_depsCleared" />
    </bpmn:intermediateCatchEvent>
    <bpmn:serviceTask id="arm-merge" name="Arm merge poller">
      <bpmn:extensionElements>
        <zeebe:taskDefinition type="pr.arm-merge" />
        <zeebe:properties>
          <zeebe:property name="io.nanobpm.dataEnvelope.in" value="MergeArmIn" />
        </zeebe:properties>
        <zeebe:ioMapping>
          <zeebe:output source="=null" target="status" />
          <zeebe:output source="=null" target="ciBlockedReconciled" />
        </zeebe:ioMapping>
      </bpmn:extensionElements>
      <bpmn:incoming>f_m_deps</bpmn:incoming>
      <bpmn:incoming>f_m_answer</bpmn:incoming>
      <bpmn:incoming>f_ci_rearm</bpmn:incoming>
      <bpmn:incoming>f_reb_rearm</bpmn:incoming>
      <bpmn:incoming>f_m_evicted</bpmn:incoming>
      <bpmn:incoming>f_m_escReenter</bpmn:incoming>
      <bpmn:incoming>f_mr_go</bpmn:incoming>
      <bpmn:outgoing>f_m_arm</bpmn:outgoing>
    </bpmn:serviceTask>
    <bpmn:exclusiveGateway id="gw-merge-entry" name="enter merge wait">
      <bpmn:incoming>f_m_arm</bpmn:incoming>
      <bpmn:incoming>f_ci_recheck</bpmn:incoming>
      <bpmn:outgoing>f_me_wait</bpmn:outgoing>
    </bpmn:exclusiveGateway>
    <bpmn:eventBasedGateway id="gw-merge-wait" name="mergeable or timeout?">
      <bpmn:incoming>f_me_wait</bpmn:incoming>
      <bpmn:outgoing>f_mw_ready</bpmn:outgoing>
      <bpmn:outgoing>f_mw_timeout</bpmn:outgoing>
    </bpmn:eventBasedGateway>
    <bpmn:intermediateCatchEvent id="wait-mergeable" name="Wait: mergeable">
      <bpmn:incoming>f_mw_ready</bpmn:incoming>
      <bpmn:outgoing>f_m_ready</bpmn:outgoing>
      <bpmn:messageEventDefinition id="med_mergeReady" messageRef="Message_mergeReady" />
    </bpmn:intermediateCatchEvent>
    <bpmn:intermediateCatchEvent id="wait-mergeable-timeout" name="Wait: mergeable timeout">
      <bpmn:incoming>f_mw_timeout</bpmn:incoming>
      <bpmn:outgoing>f_mw_stall</bpmn:outgoing>
      <bpmn:timerEventDefinition id="ted_mergeableTimeout">
        <bpmn:timeDuration xsi:type="bpmn:tFormalExpression">=mergeableWaitTimeout</bpmn:timeDuration>
      </bpmn:timerEventDefinition>
    </bpmn:intermediateCatchEvent>
    <bpmn:serviceTask id="merge-stall-probe" name="Probe mergeability (poller stalled)">
      <bpmn:extensionElements>
        <zeebe:taskDefinition type="pr.merge-stall-probe" />
        <zeebe:properties>
          <zeebe:property name="io.nanobpm.dataEnvelope.in" value="MergeStallProbeIn" />
          <zeebe:property name="io.nanobpm.dataEnvelope.out" value="MergeStallProbeOut" />
        </zeebe:properties>
        <zeebe:ioMapping>
          <zeebe:output source="=mergeStallRounds + 1" target="mergeStallRounds" />
        </zeebe:ioMapping>
      </bpmn:extensionElements>
      <bpmn:incoming>f_mw_stall</bpmn:incoming>
      <bpmn:incoming>f_mrp_probe</bpmn:incoming>
      <bpmn:outgoing>f_msp_gate</bpmn:outgoing>
    </bpmn:serviceTask>
    <bpmn:intermediateCatchEvent id="wait-mergeable-repoll" name="Re-poll: mergeability settling">
      <bpmn:incoming>f_m_mWaiting</bpmn:incoming>
      <bpmn:outgoing>f_mrp_probe</bpmn:outgoing>
      <bpmn:timerEventDefinition id="ted_mergeableRepoll">
        <bpmn:timeDuration xsi:type="bpmn:tFormalExpression">=mergeableRepollInterval</bpmn:timeDuration>
      </bpmn:timerEventDefinition>
    </bpmn:intermediateCatchEvent>
    <bpmn:exclusiveGateway id="gw-merge-stall" name="stall rounds within budget?" default="f_msp_giveup">
      <bpmn:incoming>f_msp_gate</bpmn:incoming>
      <bpmn:outgoing>f_msp_rederive</bpmn:outgoing>
      <bpmn:outgoing>f_msp_giveup</bpmn:outgoing>
    </bpmn:exclusiveGateway>
    <bpmn:exclusiveGateway id="gw-mergeable" name="mergeable?" default="f_m_mBlocked">
      <bpmn:incoming>f_m_ready</bpmn:incoming>
      <bpmn:incoming>f_msp_rederive</bpmn:incoming>
      <bpmn:outgoing>f_m_mReady</bpmn:outgoing>
      <bpmn:outgoing>f_m_mCiFix</bpmn:outgoing>
      <bpmn:outgoing>f_m_mRebase</bpmn:outgoing>
      <bpmn:outgoing>f_m_mWaiting</bpmn:outgoing>
      <bpmn:outgoing>f_m_mDraft</bpmn:outgoing>
      <bpmn:outgoing>f_m_mBlocked</bpmn:outgoing>
    </bpmn:exclusiveGateway>
    <bpmn:serviceTask id="attempt-merge" name="Merge PR">
      <bpmn:extensionElements>
        <zeebe:taskDefinition type="pr.merge" />
        <zeebe:properties>
          <zeebe:property name="io.nanobpm.dataEnvelope.in" value="MergeAttemptIn" />
          <zeebe:property name="io.nanobpm.dataEnvelope.out" value="MergeAttemptOut" />
        </zeebe:properties>
        <zeebe:ioMapping>
          <zeebe:output source="=if mergeStatus = &#34;retry&#34; then mergeRetryRound + 1 else mergeRetryRound" target="mergeRetryRound" />
        </zeebe:ioMapping>
      </bpmn:extensionElements>
      <bpmn:incoming>f_m_mReady</bpmn:incoming>
      <bpmn:outgoing>f_m_attempt</bpmn:outgoing>
    </bpmn:serviceTask>
    <bpmn:exclusiveGateway id="gw-merge" name="merge result?" default="f_m_gBlocked">
      <bpmn:incoming>f_m_attempt</bpmn:incoming>
      <bpmn:outgoing>f_m_gMerged</bpmn:outgoing>
      <bpmn:outgoing>f_m_gQueued</bpmn:outgoing>
      <bpmn:outgoing>f_m_gRetry</bpmn:outgoing>
      <bpmn:outgoing>f_m_gAbandoned</bpmn:outgoing>
      <bpmn:outgoing>f_m_gBlocked</bpmn:outgoing>
    </bpmn:exclusiveGateway>
    <bpmn:exclusiveGateway id="gw-merge-retry" name="retry within budget?" default="f_mr_giveup">
      <bpmn:incoming>f_m_gRetry</bpmn:incoming>
      <bpmn:outgoing>f_mr_go</bpmn:outgoing>
      <bpmn:outgoing>f_mr_giveup</bpmn:outgoing>
    </bpmn:exclusiveGateway>
    <bpmn:eventBasedGateway id="eg-landed" name="landed or evicted?">
      <bpmn:incoming>f_m_gQueued</bpmn:incoming>
      <bpmn:outgoing>f_eg_landed</bpmn:outgoing>
      <bpmn:outgoing>f_eg_evicted</bpmn:outgoing>
      <bpmn:outgoing>f_eg_landedTimeout</bpmn:outgoing>
    </bpmn:eventBasedGateway>
    <bpmn:intermediateCatchEvent id="wait-landed" name="Wait: merge queue landed">
      <bpmn:incoming>f_eg_landed</bpmn:incoming>
      <bpmn:outgoing>f_m_landed</bpmn:outgoing>
      <bpmn:messageEventDefinition id="med_mergeLanded" messageRef="Message_mergeLanded" />
    </bpmn:intermediateCatchEvent>
    <bpmn:intermediateCatchEvent id="wait-evicted" name="Wait: evicted from queue">
      <bpmn:incoming>f_eg_evicted</bpmn:incoming>
      <bpmn:outgoing>f_m_evicted</bpmn:outgoing>
      <bpmn:messageEventDefinition id="med_mergeEvicted" messageRef="Message_mergeEvicted" />
    </bpmn:intermediateCatchEvent>
    <bpmn:intermediateCatchEvent id="wait-landed-timeout" name="Wait: merge-queue landing timeout">
      <bpmn:incoming>f_eg_landedTimeout</bpmn:incoming>
      <bpmn:outgoing>f_m_landedStalled</bpmn:outgoing>
      <bpmn:timerEventDefinition id="ted_landedTimeout">
        <bpmn:timeDuration xsi:type="bpmn:tFormalExpression">=landedWaitTimeout</bpmn:timeDuration>
      </bpmn:timerEventDefinition>
    </bpmn:intermediateCatchEvent>
    <bpmn:serviceTask id="mark-merged" name="Mark merged">
      <bpmn:extensionElements>
        <zeebe:taskDefinition type="pr.mark-merged" />
        <zeebe:properties>
          <zeebe:property name="io.nanobpm.dataEnvelope.in" value="MarkMergedIn" />
        </zeebe:properties>
      </bpmn:extensionElements>
      <bpmn:incoming>f_m_gMerged</bpmn:incoming>
      <bpmn:incoming>f_m_landed</bpmn:incoming>
      <bpmn:outgoing>f_m_done</bpmn:outgoing>
    </bpmn:serviceTask>
    <bpmn:endEvent id="MergeEnd" name="Merged">
      <bpmn:incoming>f_m_done</bpmn:incoming>
    </bpmn:endEvent>
    <bpmn:endEvent id="MergeAbandoned" name="Abandoned (PR closed)">
      <bpmn:incoming>f_m_gAbandoned</bpmn:incoming>
      <bpmn:terminateEventDefinition id="ted_merge_abandoned" />
    </bpmn:endEvent>
    <bpmn:serviceTask id="merge-esc-conflict" name="Escalate: not mergeable">
      <bpmn:extensionElements>
        <zeebe:taskDefinition type="pr.persist-escalation" />
        <zeebe:properties>
          <zeebe:property name="io.nanobpm.dataEnvelope.in" value="EscalationIn" />
          <zeebe:property name="io.nanobpm.dataEnvelope.out" value="EscalationOut" />
        </zeebe:properties>
        <zeebe:ioMapping>
          <zeebe:input source="=&#34;blocked&#34;" target="status" />
          <zeebe:input source="=if mergeState = &#34;draft&#34; then &#34;This PR is in draft and can&#39;t be merged. Mark it ready (gh pr ready), then reply to retry.&#34; else if mergeState = &#34;waiting&#34; then &#34;GitHub never settled this PR&#39;s mergeability (still computing after repeated re-polls, or the state could not be read). Check the PR on GitHub — resolve any conflict or failing required check if present — then reply to retry.&#34; else &#34;This PR is not mergeable (state: &#34; + mergeState + &#34;). Resolve the conflict or failing required check on the branch, then reply to retry.&#34;" target="question" />
        </zeebe:ioMapping>
      </bpmn:extensionElements>
      <bpmn:incoming>f_m_mDraft</bpmn:incoming>
      <bpmn:incoming>f_ci_giveup</bpmn:incoming>
      <bpmn:incoming>f_reb_giveup</bpmn:incoming>
      <bpmn:incoming>f_reb_escConflict</bpmn:incoming>
      <bpmn:incoming>f_msp_giveup</bpmn:incoming>
      <bpmn:outgoing>f_m_escC</bpmn:outgoing>
    </bpmn:serviceTask>
    <bpmn:serviceTask id="merge-esc-attempt" name="Escalate: merge blocked">
      <bpmn:extensionElements>
        <zeebe:taskDefinition type="pr.persist-escalation" />
        <zeebe:properties>
          <zeebe:property name="io.nanobpm.dataEnvelope.in" value="EscalationIn" />
          <zeebe:property name="io.nanobpm.dataEnvelope.out" value="EscalationOut" />
        </zeebe:properties>
        <zeebe:ioMapping>
          <zeebe:input source="=status" target="agentVerdict" />
          <zeebe:input source="=&#34;This PR cannot be merged and needs a human decision. &#34; + (if mergeState = &#34;conflict&#34; then &#34;The automated rebase agent could not resolve the merge conflicts on this branch. Resolve them manually (or reply with guidance), then reply to retry.&#34; else if mergeStatus = &#34;retry&#34; then &#34;The merge kept losing a race with concurrent updates to the base branch and exhausted its automatic retry budget (&#34; + string(mergeRetryMax) + &#34; retries). This is a repeated transient race, not a conflict, failing check, or permissions block. Reply to retry, or investigate why the base branch keeps moving.&#34; else if mergeState = &#34;ready&#34; then &#34;The merge attempt did not land (merge result: &#34; + mergeStatus + &#34;). Investigate why GitHub refused the merge, then reply to retry.&#34; else if status = &#34;blocked&#34; then &#34;The automated CI-fix agent could not make the required checks green. Fix the failing checks on the branch (or reply with guidance), then reply to retry.&#34; else &#34;The automated CI-fix agent exceeded its time budget (SLA) before the required checks went green. Check its progress or intervene, then reply to retry.&#34;)" target="question" />
          <zeebe:input source="=&#34;blocked&#34;" target="status" />
        </zeebe:ioMapping>
      </bpmn:extensionElements>
      <bpmn:incoming>f_m_gBlocked</bpmn:incoming>
      <bpmn:incoming>f_ci_escAttempt</bpmn:incoming>
      <bpmn:incoming>f_reb_escAttempt</bpmn:incoming>
      <bpmn:incoming>f_mr_giveup</bpmn:incoming>
      <bpmn:outgoing>f_m_escA</bpmn:outgoing>
    </bpmn:serviceTask>
    <bpmn:exclusiveGateway id="gw-merge-escalated" name="escalation opened?" default="f_m_escReenter">
      <bpmn:incoming>f_m_escA</bpmn:incoming>
      <bpmn:incoming>f_m_escLanded</bpmn:incoming>
      <bpmn:outgoing>f_m_escWait</bpmn:outgoing>
      <bpmn:outgoing>f_m_escReenter</bpmn:outgoing>
    </bpmn:exclusiveGateway>
    <bpmn:serviceTask id="merge-esc-landed" name="Escalate: merge queue never landed">
      <bpmn:extensionElements>
        <zeebe:taskDefinition type="pr.persist-escalation" />
        <zeebe:properties>
          <zeebe:property name="io.nanobpm.dataEnvelope.in" value="EscalationIn" />
          <zeebe:property name="io.nanobpm.dataEnvelope.out" value="EscalationOut" />
        </zeebe:properties>
        <zeebe:ioMapping>
          <zeebe:input source="=&#34;blocked&#34;" target="status" />
          <zeebe:input source="=&#34;This PR was reported as added to the merge queue but did not land within the merge-queue landing timeout (&#34; + landedWaitTimeout + &#34;). The repository may not have actually enqueued it — e.g. a Mergify repo where a plain merge does not queue and an explicit `@Mergifyio queue` is required, or a native merge queue that dropped it silently. Add the PR to the merge queue (or merge it) manually, then reply to retry.&#34;" target="question" />
        </zeebe:ioMapping>
      </bpmn:extensionElements>
      <bpmn:incoming>f_m_landedStalled</bpmn:incoming>
      <bpmn:outgoing>f_m_escLanded</bpmn:outgoing>
    </bpmn:serviceTask>
    <bpmn:userTask id="wait-merge-answer" name="Answer escalation">
      <bpmn:extensionElements>
        <zeebe:formDefinition formId="pr-escalation" />
        <zeebe:userTask />
        <zeebe:ioMapping>
          <zeebe:input source="=question" target="question" />
          <zeebe:input source="=prKey" target="prKey" />
        </zeebe:ioMapping>
      </bpmn:extensionElements>
      <bpmn:incoming>f_m_escC</bpmn:incoming>
      <bpmn:incoming>f_m_escWait</bpmn:incoming>
      <bpmn:outgoing>f_m_answerRecord</bpmn:outgoing>
    </bpmn:userTask>
    <bpmn:serviceTask id="record-merge-answer" name="Record answer">
      <bpmn:extensionElements>
        <zeebe:taskDefinition type="pr.answer-escalation" />
        <zeebe:properties>
          <zeebe:property name="io.nanobpm.dataEnvelope.in" value="PrAnswerEscalationIn" />
        </zeebe:properties>
        <zeebe:ioMapping>
          <zeebe:input source="=prKey" target="prKey" />
          <zeebe:input source="=answer" target="answer" />
          <zeebe:input source="=&#34;merge&#34;" target="answerContext" />
        </zeebe:ioMapping>
      </bpmn:extensionElements>
      <bpmn:incoming>f_m_answerRecord</bpmn:incoming>
      <bpmn:outgoing>f_m_answer</bpmn:outgoing>
    </bpmn:serviceTask>
    <bpmn:exclusiveGateway id="gw-ci-fix" name="auto-fix CI?" default="f_ci_giveup">
      <bpmn:incoming>f_m_mCiFix</bpmn:incoming>
      <bpmn:outgoing>f_ci_go</bpmn:outgoing>
      <bpmn:outgoing>f_ci_giveup</bpmn:outgoing>
    </bpmn:exclusiveGateway>
    <bpmn:subProcess id="SP_cifix" name="CI fix">
      <bpmn:incoming>f_ci_go</bpmn:incoming>
      <bpmn:outgoing>f_ci_spdone</bpmn:outgoing>
      <bpmn:startEvent id="ci_start">
        <bpmn:outgoing>f_ci_s0</bpmn:outgoing>
      </bpmn:startEvent>
      <bpmn:sequenceFlow id="f_ci_s0" sourceRef="ci_start" targetRef="fix-ci" />
      <bpmn:serviceTask id="fix-ci" name="Fix CI (agent)">
        <bpmn:extensionElements>
          <zeebe:taskDefinition type="senior:fix-ci" />
          <zeebe:agentDefinition agentType="external" />
          <zeebe:linkedResources>
            <zeebe:linkedResource resourceId="prompts/fix-ci.md" bindingType="latest" resourceType="GenericScript" linkName="prompt" />
          </zeebe:linkedResources>
          <zeebe:properties>
            <zeebe:property name="io.nanobpm.dataEnvelope.in" value="FixCiIn" />
            <zeebe:property name="io.nanobpm.dataEnvelope.out" value="FixCiOut" />
          </zeebe:properties>
          <zeebe:ioMapping>
            <zeebe:input source="=(if (failingChecksList = null or failingChecksList = &#34;&#34;) then &#34;&#34; else &#34;&#10;&#10;Failing checks to make green:&#10;&#34; + failingChecksList) + (if (abandonBrief = null) then &#34;&#34; else abandonBrief)" target="appendPrompt" />
            <zeebe:output source="=ciFixRound + 1" target="ciFixRound" />
          </zeebe:ioMapping>
        </bpmn:extensionElements>
        <bpmn:incoming>f_ci_s0</bpmn:incoming>
        <bpmn:outgoing>f_ci_done</bpmn:outgoing>
      </bpmn:serviceTask>
      <bpmn:boundaryEvent id="be_fixci_sla" name="SLA elapsed" attachedToRef="fix-ci">
        <bpmn:outgoing>f_ci_sla</bpmn:outgoing>
        <bpmn:timerEventDefinition id="ted_fixci_sla">
          <bpmn:timeDuration xsi:type="bpmn:tFormalExpression">=agentSlaTimeout</bpmn:timeDuration>
        </bpmn:timerEventDefinition>
      </bpmn:boundaryEvent>
      <bpmn:sequenceFlow id="f_ci_done" sourceRef="fix-ci" targetRef="gw-ci-result" />
      <bpmn:exclusiveGateway id="gw-ci-result" name="fixed?" default="f_ci_reconcile">
        <bpmn:incoming>f_ci_done</bpmn:incoming>
        <bpmn:outgoing>f_ci_fixed</bpmn:outgoing>
        <bpmn:outgoing>f_ci_wait</bpmn:outgoing>
        <bpmn:outgoing>f_ci_reattempt</bpmn:outgoing>
        <bpmn:outgoing>f_ci_blocked</bpmn:outgoing>
        <bpmn:outgoing>f_ci_reconcile</bpmn:outgoing>
      </bpmn:exclusiveGateway>
      <bpmn:sequenceFlow id="f_ci_fixed" name="fixed" sourceRef="gw-ci-result" targetRef="end_ci_fixed">
        <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=status = "fixed"</bpmn:conditionExpression>
      </bpmn:sequenceFlow>
      <bpmn:sequenceFlow id="f_ci_reattempt" name="stale/transient checks — re-attempt" sourceRef="gw-ci-result" targetRef="end_ci_reattempt">
        <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=status = "reattempt"</bpmn:conditionExpression>
      </bpmn:sequenceFlow>
      <bpmn:sequenceFlow id="f_ci_wait" name="waits on another PR" sourceRef="gw-ci-result" targetRef="end_ci_waiting">
        <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=status = "waiting-on-pr"</bpmn:conditionExpression>
      </bpmn:sequenceFlow>
      <bpmn:sequenceFlow id="f_ci_blocked" name="could not fix" sourceRef="gw-ci-result" targetRef="gw-ci-blocked">
        <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=status = "blocked"</bpmn:conditionExpression>
      </bpmn:sequenceFlow>
      <bpmn:sequenceFlow id="f_ci_reconcile" name="no verdict — reconcile from ground truth" sourceRef="gw-ci-result" targetRef="end_ci_reconcile" />
      <bpmn:exclusiveGateway id="gw-ci-blocked" name="reconcile then escalate?" default="f_cib_esc">
        <bpmn:incoming>f_ci_blocked</bpmn:incoming>
        <bpmn:outgoing>f_cib_recon</bpmn:outgoing>
        <bpmn:outgoing>f_cib_esc</bpmn:outgoing>
      </bpmn:exclusiveGateway>
      <bpmn:sequenceFlow id="f_cib_recon" name="pushed nothing — reconcile once" sourceRef="gw-ci-blocked" targetRef="ci-reconcile">
        <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=pushed != true and ciBlockedReconciled != true</bpmn:conditionExpression>
      </bpmn:sequenceFlow>
      <bpmn:sequenceFlow id="f_cib_esc" name="still blocked — escalate" sourceRef="gw-ci-blocked" targetRef="end_ci_esc" />
      <bpmn:serviceTask id="ci-reconcile" name="Reconcile blocked from ground truth">
        <bpmn:extensionElements>
          <zeebe:taskDefinition type="pr.arm-merge" />
          <zeebe:properties>
            <zeebe:property name="io.nanobpm.dataEnvelope.in" value="MergeArmIn" />
          </zeebe:properties>
          <zeebe:ioMapping>
            <zeebe:output source="=null" target="status" />
            <zeebe:output source="=true" target="ciBlockedReconciled" />
          </zeebe:ioMapping>
        </bpmn:extensionElements>
        <bpmn:incoming>f_cib_recon</bpmn:incoming>
        <bpmn:outgoing>f_cib_armed</bpmn:outgoing>
      </bpmn:serviceTask>
      <bpmn:sequenceFlow id="f_cib_armed" sourceRef="ci-reconcile" targetRef="end_ci_recheck" />
      <bpmn:sequenceFlow id="f_ci_sla" name="agent SLA elapsed" sourceRef="be_fixci_sla" targetRef="end_ci_sla" />
      <bpmn:endEvent id="end_ci_fixed" name="fixed — re-arm">
        <bpmn:extensionElements>
          <zeebe:ioMapping>
            <zeebe:output source="=&#34;fixed&#34;" target="ciOutcome" />
          </zeebe:ioMapping>
        </bpmn:extensionElements>
        <bpmn:incoming>f_ci_fixed</bpmn:incoming>
      </bpmn:endEvent>
      <bpmn:endEvent id="end_ci_reattempt" name="re-attempt">
        <bpmn:extensionElements>
          <zeebe:ioMapping>
            <zeebe:output source="=&#34;reattempt&#34;" target="ciOutcome" />
          </zeebe:ioMapping>
        </bpmn:extensionElements>
        <bpmn:incoming>f_ci_reattempt</bpmn:incoming>
      </bpmn:endEvent>
      <bpmn:endEvent id="end_ci_reconcile" name="reconcile from ground truth">
        <bpmn:extensionElements>
          <zeebe:ioMapping>
            <zeebe:output source="=&#34;reconcile&#34;" target="ciOutcome" />
          </zeebe:ioMapping>
        </bpmn:extensionElements>
        <bpmn:incoming>f_ci_reconcile</bpmn:incoming>
      </bpmn:endEvent>
      <bpmn:endEvent id="end_ci_recheck" name="reconciled — re-check mergeable">
        <bpmn:extensionElements>
          <zeebe:ioMapping>
            <zeebe:output source="=&#34;recheck&#34;" target="ciOutcome" />
          </zeebe:ioMapping>
        </bpmn:extensionElements>
        <bpmn:incoming>f_cib_armed</bpmn:incoming>
      </bpmn:endEvent>
      <bpmn:endEvent id="end_ci_waiting" name="waits on another PR">
        <bpmn:extensionElements>
          <zeebe:ioMapping>
            <zeebe:output source="=&#34;waiting&#34;" target="ciOutcome" />
          </zeebe:ioMapping>
        </bpmn:extensionElements>
        <bpmn:incoming>f_ci_wait</bpmn:incoming>
      </bpmn:endEvent>
      <bpmn:endEvent id="end_ci_esc" name="escalate">
        <bpmn:extensionElements>
          <zeebe:ioMapping>
            <zeebe:output source="=&#34;escalate&#34;" target="ciOutcome" />
          </zeebe:ioMapping>
        </bpmn:extensionElements>
        <bpmn:incoming>f_cib_esc</bpmn:incoming>
      </bpmn:endEvent>
      <bpmn:endEvent id="end_ci_sla" name="SLA — escalate">
        <bpmn:extensionElements>
          <zeebe:ioMapping>
            <zeebe:output source="=&#34;escalate&#34;" target="ciOutcome" />
          </zeebe:ioMapping>
        </bpmn:extensionElements>
        <bpmn:incoming>f_ci_sla</bpmn:incoming>
      </bpmn:endEvent>
    </bpmn:subProcess>
    <bpmn:exclusiveGateway id="gw-ci-outcome" name="CI fix outcome?" default="f_ci_rearm">
      <bpmn:incoming>f_ci_spdone</bpmn:incoming>
      <bpmn:outgoing>f_ci_recheck</bpmn:outgoing>
      <bpmn:outgoing>f_ci_waitDep</bpmn:outgoing>
      <bpmn:outgoing>f_ci_escAttempt</bpmn:outgoing>
      <bpmn:outgoing>f_ci_rearm</bpmn:outgoing>
    </bpmn:exclusiveGateway>
    <bpmn:sequenceFlow id="f_ci_recheck" name="reconciled — re-check" sourceRef="gw-ci-outcome" targetRef="gw-merge-entry">
      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=ciOutcome = "recheck"</bpmn:conditionExpression>
    </bpmn:sequenceFlow>
    <bpmn:sequenceFlow id="f_ci_waitDep" name="waits on another PR" sourceRef="gw-ci-outcome" targetRef="record-merge-dep">
      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=ciOutcome = "waiting"</bpmn:conditionExpression>
    </bpmn:sequenceFlow>
    <bpmn:sequenceFlow id="f_ci_escAttempt" name="escalate" sourceRef="gw-ci-outcome" targetRef="merge-esc-attempt">
      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=ciOutcome = "escalate"</bpmn:conditionExpression>
    </bpmn:sequenceFlow>
    <bpmn:sequenceFlow id="f_ci_rearm" name="fixed / re-attempt / reconcile — re-arm" sourceRef="gw-ci-outcome" targetRef="arm-merge" />
    <bpmn:exclusiveGateway id="gw-rebase" name="auto-rebase?" default="f_reb_giveup">
      <bpmn:incoming>f_m_mRebase</bpmn:incoming>
      <bpmn:incoming>f_m_mBlocked</bpmn:incoming>
      <bpmn:outgoing>f_reb_go</bpmn:outgoing>
      <bpmn:outgoing>f_reb_giveup</bpmn:outgoing>
    </bpmn:exclusiveGateway>
    <bpmn:subProcess id="SP_rebase" name="Rebase">
      <bpmn:incoming>f_reb_go</bpmn:incoming>
      <bpmn:outgoing>f_reb_spdone</bpmn:outgoing>
      <bpmn:startEvent id="reb_start">
        <bpmn:outgoing>f_reb_s0</bpmn:outgoing>
      </bpmn:startEvent>
      <bpmn:sequenceFlow id="f_reb_s0" sourceRef="reb_start" targetRef="rebase" />
      <bpmn:serviceTask id="rebase" name="Rebase (agent)">
        <bpmn:extensionElements>
          <zeebe:taskDefinition type="senior:rebase" />
          <zeebe:agentDefinition agentType="external" />
          <zeebe:linkedResources>
            <zeebe:linkedResource resourceId="prompts/rebase.md" bindingType="latest" resourceType="GenericScript" linkName="prompt" />
          </zeebe:linkedResources>
          <zeebe:properties>
            <zeebe:property name="io.nanobpm.dataEnvelope.in" value="RebaseIn" />
            <zeebe:property name="io.nanobpm.dataEnvelope.out" value="RebaseOut" />
          </zeebe:properties>
          <zeebe:ioMapping>
            <zeebe:input source="=(if (abandonBrief = null) then &#34;&#34; else abandonBrief)" target="appendPrompt" />
            <zeebe:output source="=rebaseRound + 1" target="rebaseRound" />
          </zeebe:ioMapping>
        </bpmn:extensionElements>
        <bpmn:incoming>f_reb_s0</bpmn:incoming>
        <bpmn:outgoing>f_reb_done</bpmn:outgoing>
      </bpmn:serviceTask>
      <bpmn:boundaryEvent id="be_rebase_sla" name="SLA elapsed" attachedToRef="rebase">
        <bpmn:outgoing>f_reb_sla</bpmn:outgoing>
        <bpmn:timerEventDefinition id="ted_rebase_sla">
          <bpmn:timeDuration xsi:type="bpmn:tFormalExpression">=agentSlaTimeout</bpmn:timeDuration>
        </bpmn:timerEventDefinition>
      </bpmn:boundaryEvent>
      <bpmn:sequenceFlow id="f_reb_done" sourceRef="rebase" targetRef="gw-rebase-result" />
      <bpmn:exclusiveGateway id="gw-rebase-result" name="rebased?" default="f_reb_reconcile">
        <bpmn:incoming>f_reb_done</bpmn:incoming>
        <bpmn:outgoing>f_reb_rebased</bpmn:outgoing>
        <bpmn:outgoing>f_reb_wait</bpmn:outgoing>
        <bpmn:outgoing>f_reb_blocked</bpmn:outgoing>
        <bpmn:outgoing>f_reb_reconcile</bpmn:outgoing>
      </bpmn:exclusiveGateway>
      <bpmn:sequenceFlow id="f_reb_rebased" name="rebased" sourceRef="gw-rebase-result" targetRef="end_reb_rebased">
        <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=status = "rebased"</bpmn:conditionExpression>
      </bpmn:sequenceFlow>
      <bpmn:sequenceFlow id="f_reb_wait" name="waits on another PR" sourceRef="gw-rebase-result" targetRef="end_reb_waiting">
        <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=status = "waiting-on-pr"</bpmn:conditionExpression>
      </bpmn:sequenceFlow>
      <bpmn:sequenceFlow id="f_reb_blocked" name="could not resolve" sourceRef="gw-rebase-result" targetRef="end_reb_blocked">
        <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=status = "blocked"</bpmn:conditionExpression>
      </bpmn:sequenceFlow>
      <bpmn:sequenceFlow id="f_reb_reconcile" name="no verdict — reconcile from ground truth" sourceRef="gw-rebase-result" targetRef="end_reb_reconcile" />
      <bpmn:sequenceFlow id="f_reb_sla" name="agent SLA elapsed" sourceRef="be_rebase_sla" targetRef="end_reb_sla" />
      <bpmn:endEvent id="end_reb_rebased" name="rebased — re-arm">
        <bpmn:extensionElements>
          <zeebe:ioMapping>
            <zeebe:output source="=&#34;rebased&#34;" target="rebaseOutcome" />
          </zeebe:ioMapping>
        </bpmn:extensionElements>
        <bpmn:incoming>f_reb_rebased</bpmn:incoming>
      </bpmn:endEvent>
      <bpmn:endEvent id="end_reb_reconcile" name="reconcile from ground truth">
        <bpmn:extensionElements>
          <zeebe:ioMapping>
            <zeebe:output source="=&#34;reconcile&#34;" target="rebaseOutcome" />
          </zeebe:ioMapping>
        </bpmn:extensionElements>
        <bpmn:incoming>f_reb_reconcile</bpmn:incoming>
      </bpmn:endEvent>
      <bpmn:endEvent id="end_reb_waiting" name="waits on another PR">
        <bpmn:extensionElements>
          <zeebe:ioMapping>
            <zeebe:output source="=&#34;waiting&#34;" target="rebaseOutcome" />
          </zeebe:ioMapping>
        </bpmn:extensionElements>
        <bpmn:incoming>f_reb_wait</bpmn:incoming>
      </bpmn:endEvent>
      <bpmn:endEvent id="end_reb_blocked" name="could not resolve — escalate">
        <bpmn:extensionElements>
          <zeebe:ioMapping>
            <zeebe:output source="=&#34;escalate-attempt&#34;" target="rebaseOutcome" />
          </zeebe:ioMapping>
        </bpmn:extensionElements>
        <bpmn:incoming>f_reb_blocked</bpmn:incoming>
      </bpmn:endEvent>
      <bpmn:endEvent id="end_reb_sla" name="SLA — escalate">
        <bpmn:extensionElements>
          <zeebe:ioMapping>
            <zeebe:output source="=&#34;escalate-conflict&#34;" target="rebaseOutcome" />
          </zeebe:ioMapping>
        </bpmn:extensionElements>
        <bpmn:incoming>f_reb_sla</bpmn:incoming>
      </bpmn:endEvent>
    </bpmn:subProcess>
    <bpmn:exclusiveGateway id="gw-rebase-outcome" name="Rebase outcome?" default="f_reb_rearm">
      <bpmn:incoming>f_reb_spdone</bpmn:incoming>
      <bpmn:outgoing>f_reb_waitDep</bpmn:outgoing>
      <bpmn:outgoing>f_reb_escAttempt</bpmn:outgoing>
      <bpmn:outgoing>f_reb_escConflict</bpmn:outgoing>
      <bpmn:outgoing>f_reb_rearm</bpmn:outgoing>
    </bpmn:exclusiveGateway>
    <bpmn:sequenceFlow id="f_reb_waitDep" name="waits on another PR" sourceRef="gw-rebase-outcome" targetRef="record-merge-dep">
      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=rebaseOutcome = "waiting"</bpmn:conditionExpression>
    </bpmn:sequenceFlow>
    <bpmn:sequenceFlow id="f_reb_escAttempt" name="could not resolve — escalate" sourceRef="gw-rebase-outcome" targetRef="merge-esc-attempt">
      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=rebaseOutcome = "escalate-attempt"</bpmn:conditionExpression>
    </bpmn:sequenceFlow>
    <bpmn:sequenceFlow id="f_reb_escConflict" name="SLA — escalate" sourceRef="gw-rebase-outcome" targetRef="merge-esc-conflict">
      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=rebaseOutcome = "escalate-conflict"</bpmn:conditionExpression>
    </bpmn:sequenceFlow>
    <bpmn:sequenceFlow id="f_reb_rearm" name="rebased / reconcile — re-arm" sourceRef="gw-rebase-outcome" targetRef="arm-merge" />
    <bpmn:serviceTask id="record-merge-dep" name="Wait on another PR">
      <bpmn:extensionElements>
        <zeebe:taskDefinition type="pr.record-dependency" />
        <zeebe:properties>
          <zeebe:property name="io.nanobpm.dataEnvelope.in" value="RecordDepIn" />
        </zeebe:properties>
      </bpmn:extensionElements>
      <bpmn:incoming>f_ci_waitDep</bpmn:incoming>
      <bpmn:incoming>f_reb_waitDep</bpmn:incoming>
      <bpmn:outgoing>f_dep_rewait</bpmn:outgoing>
    </bpmn:serviceTask>
    <bpmn:sequenceFlow id="f_m_start" sourceRef="MergeStart" targetRef="wait-deps" />
    <bpmn:sequenceFlow id="f_m_deps" sourceRef="wait-deps" targetRef="arm-merge" />
    <bpmn:sequenceFlow id="f_m_arm" sourceRef="arm-merge" targetRef="gw-merge-entry" />
    <bpmn:sequenceFlow id="f_me_wait" sourceRef="gw-merge-entry" targetRef="gw-merge-wait" />
    <bpmn:sequenceFlow id="f_mw_ready" sourceRef="gw-merge-wait" targetRef="wait-mergeable" />
    <bpmn:sequenceFlow id="f_mw_timeout" sourceRef="gw-merge-wait" targetRef="wait-mergeable-timeout" />
    <bpmn:sequenceFlow id="f_mw_stall" sourceRef="wait-mergeable-timeout" targetRef="merge-stall-probe" />
    <bpmn:sequenceFlow id="f_msp_gate" sourceRef="merge-stall-probe" targetRef="gw-merge-stall" />
    <bpmn:sequenceFlow id="f_msp_rederive" name="re-derived — route to arm" sourceRef="gw-merge-stall" targetRef="gw-mergeable">
      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=mergeStallRounds &lt;= mergeStallMax</bpmn:conditionExpression>
    </bpmn:sequenceFlow>
    <bpmn:sequenceFlow id="f_msp_giveup" name="stall budget exhausted" sourceRef="gw-merge-stall" targetRef="merge-esc-conflict" />
    <bpmn:sequenceFlow id="f_m_ready" sourceRef="wait-mergeable" targetRef="gw-mergeable" />
    <bpmn:sequenceFlow id="f_m_mReady" name="ready" sourceRef="gw-mergeable" targetRef="attempt-merge">
      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=mergeState = "ready"</bpmn:conditionExpression>
    </bpmn:sequenceFlow>
    <bpmn:sequenceFlow id="f_m_mCiFix" name="blocked (failing checks)" sourceRef="gw-mergeable" targetRef="gw-ci-fix">
      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=mergeState = "blocked"</bpmn:conditionExpression>
    </bpmn:sequenceFlow>
    <bpmn:sequenceFlow id="f_m_mRebase" name="conflict" sourceRef="gw-mergeable" targetRef="gw-rebase">
      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=mergeState = "conflict"</bpmn:conditionExpression>
    </bpmn:sequenceFlow>
    <bpmn:sequenceFlow id="f_m_mWaiting" name="waiting (GitHub still computing) — re-poll" sourceRef="gw-mergeable" targetRef="wait-mergeable-repoll">
      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=mergeState = "waiting"</bpmn:conditionExpression>
    </bpmn:sequenceFlow>
    <bpmn:sequenceFlow id="f_m_mDraft" name="draft — mark ready (human)" sourceRef="gw-mergeable" targetRef="merge-esc-conflict">
      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=mergeState = "draft"</bpmn:conditionExpression>
    </bpmn:sequenceFlow>
    <bpmn:sequenceFlow id="f_mrp_probe" sourceRef="wait-mergeable-repoll" targetRef="merge-stall-probe" />
    <bpmn:sequenceFlow id="f_m_mBlocked" name="unclassified — auto-rebase" sourceRef="gw-mergeable" targetRef="gw-rebase" />
    <bpmn:sequenceFlow id="f_ci_go" name="within budget" sourceRef="gw-ci-fix" targetRef="SP_cifix">
      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=ciFixRound &lt; ciFixMax and failingChecks &gt; 0</bpmn:conditionExpression>
    </bpmn:sequenceFlow>
    <bpmn:sequenceFlow id="f_ci_giveup" name="budget exhausted" sourceRef="gw-ci-fix" targetRef="merge-esc-conflict" />
    <bpmn:sequenceFlow id="f_ci_spdone" sourceRef="SP_cifix" targetRef="gw-ci-outcome" />
    <bpmn:sequenceFlow id="f_reb_go" name="within budget" sourceRef="gw-rebase" targetRef="SP_rebase">
      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=rebaseRound &lt; rebaseMax</bpmn:conditionExpression>
    </bpmn:sequenceFlow>
    <bpmn:sequenceFlow id="f_reb_giveup" name="budget exhausted" sourceRef="gw-rebase" targetRef="merge-esc-conflict" />
    <bpmn:sequenceFlow id="f_reb_spdone" sourceRef="SP_rebase" targetRef="gw-rebase-outcome" />
    <bpmn:sequenceFlow id="f_dep_rewait" sourceRef="record-merge-dep" targetRef="wait-deps" />
    <bpmn:sequenceFlow id="f_m_attempt" sourceRef="attempt-merge" targetRef="gw-merge" />
    <bpmn:sequenceFlow id="f_m_gMerged" name="merged" sourceRef="gw-merge" targetRef="mark-merged">
      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=mergeStatus = "merged"</bpmn:conditionExpression>
    </bpmn:sequenceFlow>
    <bpmn:sequenceFlow id="f_m_gQueued" name="queued" sourceRef="gw-merge" targetRef="eg-landed">
      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=mergeStatus = "queued"</bpmn:conditionExpression>
    </bpmn:sequenceFlow>
    <bpmn:sequenceFlow id="f_m_gRetry" name="retry (base moved)" sourceRef="gw-merge" targetRef="gw-merge-retry">
      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=mergeStatus = "retry"</bpmn:conditionExpression>
    </bpmn:sequenceFlow>
    <bpmn:sequenceFlow id="f_mr_go" name="within budget" sourceRef="gw-merge-retry" targetRef="arm-merge">
      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=mergeRetryRound &lt;= mergeRetryMax</bpmn:conditionExpression>
    </bpmn:sequenceFlow>
    <bpmn:sequenceFlow id="f_mr_giveup" name="budget exhausted" sourceRef="gw-merge-retry" targetRef="merge-esc-attempt" />
    <bpmn:sequenceFlow id="f_eg_landed" sourceRef="eg-landed" targetRef="wait-landed" />
    <bpmn:sequenceFlow id="f_eg_evicted" sourceRef="eg-landed" targetRef="wait-evicted" />
    <bpmn:sequenceFlow id="f_eg_landedTimeout" sourceRef="eg-landed" targetRef="wait-landed-timeout" />
    <bpmn:sequenceFlow id="f_m_landedStalled" sourceRef="wait-landed-timeout" targetRef="merge-esc-landed" />
    <bpmn:sequenceFlow id="f_m_escLanded" sourceRef="merge-esc-landed" targetRef="gw-merge-escalated" />
    <bpmn:sequenceFlow id="f_m_evicted" sourceRef="wait-evicted" targetRef="arm-merge" />
    <bpmn:sequenceFlow id="f_m_gBlocked" name="blocked" sourceRef="gw-merge" targetRef="merge-esc-attempt" />
    <bpmn:sequenceFlow id="f_m_gAbandoned" name="abandoned (PR closed)" sourceRef="gw-merge" targetRef="MergeAbandoned">
      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=mergeStatus = "abandoned"</bpmn:conditionExpression>
    </bpmn:sequenceFlow>
    <bpmn:sequenceFlow id="f_m_landed" sourceRef="wait-landed" targetRef="mark-merged" />
    <bpmn:sequenceFlow id="f_m_done" sourceRef="mark-merged" targetRef="MergeEnd" />
    <bpmn:sequenceFlow id="f_m_escC" sourceRef="merge-esc-conflict" targetRef="wait-merge-answer" />
    <bpmn:sequenceFlow id="f_m_escA" sourceRef="merge-esc-attempt" targetRef="gw-merge-escalated" />
    <bpmn:sequenceFlow id="f_m_escWait" sourceRef="gw-merge-escalated" targetRef="wait-merge-answer">
      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">=escalated = true</bpmn:conditionExpression>
    </bpmn:sequenceFlow>
    <bpmn:sequenceFlow id="f_m_escReenter" name="no escalation opened" sourceRef="gw-merge-escalated" targetRef="arm-merge" />
    <bpmn:sequenceFlow id="f_m_answerRecord" sourceRef="wait-merge-answer" targetRef="record-merge-answer" />
    <bpmn:sequenceFlow id="f_m_answer" sourceRef="record-merge-answer" targetRef="arm-merge" />
  </bpmn:process>
  <bpmndi:BPMNDiagram id="BPMNDiagram_merge-loop">
    <bpmndi:BPMNPlane id="BPMNPlane_merge-loop" bpmnElement="merge-loop">
      <bpmndi:BPMNShape id="BPMNShape_MergeStart" bpmnElement="MergeStart">
        <dc:Bounds x="80" y="262" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="54" y="303" width="89" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_wait-deps" bpmnElement="wait-deps">
        <dc:Bounds x="216" y="262" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="190" y="215" width="88" height="42" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_arm-merge" bpmnElement="arm-merge">
        <dc:Bounds x="352" y="240" width="100" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_gw-merge-entry" bpmnElement="gw-merge-entry" isMarkerVisible="true">
        <dc:Bounds x="552" y="255" width="50" height="50" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="537" y="222" width="81" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_gw-merge-wait" bpmnElement="gw-merge-wait" isMarkerVisible="true">
        <dc:Bounds x="702" y="255" width="50" height="50" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="683" y="222" width="88" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_wait-mergeable" bpmnElement="wait-mergeable">
        <dc:Bounds x="852" y="262" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="835" y="229" width="70" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_wait-mergeable-timeout" bpmnElement="wait-mergeable-timeout">
        <dc:Bounds x="852" y="582" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="893" y="579" width="70" height="42" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_merge-stall-probe" bpmnElement="merge-stall-probe">
        <dc:Bounds x="1338" y="1520" width="100" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_wait-mergeable-repoll" bpmnElement="wait-mergeable-repoll">
        <dc:Bounds x="1170" y="1542" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1146" y="1495" width="84" height="42" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_gw-merge-stall" bpmnElement="gw-merge-stall" isMarkerVisible="true">
        <dc:Bounds x="1538" y="1535" width="50" height="50" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1521" y="1650" width="85" height="42" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_gw-mergeable" bpmnElement="gw-mergeable" isMarkerVisible="true">
        <dc:Bounds x="988" y="255" width="50" height="50" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="975" y="236" width="77" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_attempt-merge" bpmnElement="attempt-merge">
        <dc:Bounds x="1138" y="240" width="100" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_gw-merge" bpmnElement="gw-merge" isMarkerVisible="true">
        <dc:Bounds x="1363" y="255" width="50" height="50" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1362" y="350" width="53" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_gw-merge-retry" bpmnElement="gw-merge-retry" isMarkerVisible="true">
        <dc:Bounds x="1538" y="735" width="50" height="50" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1519" y="702" width="88" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_eg-landed" bpmnElement="eg-landed" isMarkerVisible="true">
        <dc:Bounds x="1538" y="415" width="50" height="50" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1531" y="490" width="64" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_wait-landed" bpmnElement="wait-landed">
        <dc:Bounds x="1720" y="422" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1736" y="483" width="85" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_wait-evicted" bpmnElement="wait-evicted">
        <dc:Bounds x="1720" y="582" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1761" y="579" width="88" height="42" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_wait-landed-timeout" bpmnElement="wait-landed-timeout">
        <dc:Bounds x="1720" y="102" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1596" y="143" width="84" height="56" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_mark-merged" bpmnElement="mark-merged">
        <dc:Bounds x="1888" y="240" width="100" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_MergeEnd" bpmnElement="MergeEnd">
        <dc:Bounds x="2095" y="262" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="2088" y="303" width="50" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_MergeAbandoned" bpmnElement="MergeAbandoned">
        <dc:Bounds x="1545" y="902" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1522" y="943" width="82" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_merge-esc-conflict" bpmnElement="merge-esc-conflict">
        <dc:Bounds x="1688" y="1040" width="100" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_merge-esc-attempt" bpmnElement="merge-esc-attempt">
        <dc:Bounds x="1688" y="720" width="100" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_gw-merge-escalated" bpmnElement="gw-merge-escalated" isMarkerVisible="true">
        <dc:Bounds x="2088" y="95" width="50" height="50" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="2056" y="170" width="74" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_merge-esc-landed" bpmnElement="merge-esc-landed">
        <dc:Bounds x="1888" y="80" width="100" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_wait-merge-answer" bpmnElement="wait-merge-answer">
        <dc:Bounds x="2238" y="80" width="100" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_record-merge-answer" bpmnElement="record-merge-answer">
        <dc:Bounds x="2438" y="80" width="100" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_gw-ci-fix" bpmnElement="gw-ci-fix" isMarkerVisible="true">
        <dc:Bounds x="1163" y="1055" width="50" height="50" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1204" y="1110" width="89" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_SP_cifix" bpmnElement="SP_cifix">
        <dc:Bounds x="1338" y="1200" width="100" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_gw-ci-outcome" bpmnElement="gw-ci-outcome" isMarkerVisible="true">
        <dc:Bounds x="1538" y="1215" width="50" height="50" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1532" y="1310" width="63" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_gw-rebase" bpmnElement="gw-rebase" isMarkerVisible="true">
        <dc:Bounds x="1163" y="415" width="50" height="50" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1144" y="370" width="88" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_SP_rebase" bpmnElement="SP_rebase">
        <dc:Bounds x="1338" y="1360" width="100" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_gw-rebase-outcome" bpmnElement="gw-rebase-outcome" isMarkerVisible="true">
        <dc:Bounds x="1538" y="1375" width="50" height="50" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1532" y="1470" width="63" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_record-merge-dep" bpmnElement="record-merge-dep">
        <dc:Bounds x="1688" y="1200" width="100" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge id="BPMNEdge_f_m_start" bpmnElement="f_m_start">
        <di:waypoint x="116" y="280" />
        <di:waypoint x="216" y="280" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_m_deps" bpmnElement="f_m_deps">
        <di:waypoint x="252" y="280" />
        <di:waypoint x="352" y="280" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_m_arm" bpmnElement="f_m_arm">
        <di:waypoint x="452" y="280" />
        <di:waypoint x="552" y="280" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_me_wait" bpmnElement="f_me_wait">
        <di:waypoint x="602" y="280" />
        <di:waypoint x="702" y="280" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_mw_ready" bpmnElement="f_mw_ready">
        <di:waypoint x="752" y="280" />
        <di:waypoint x="852" y="280" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_m_ready" bpmnElement="f_m_ready">
        <di:waypoint x="888" y="280" />
        <di:waypoint x="988" y="280" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_m_mReady" bpmnElement="f_m_mReady">
        <di:waypoint x="1038" y="280" />
        <di:waypoint x="1138" y="280" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1069" y="258" width="39" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_m_attempt" bpmnElement="f_m_attempt">
        <di:waypoint x="1238" y="280" />
        <di:waypoint x="1363" y="280" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_m_gMerged" bpmnElement="f_m_gMerged">
        <di:waypoint x="1413" y="280" />
        <di:waypoint x="1888" y="280" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1721" y="258" width="49" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_m_done" bpmnElement="f_m_done">
        <di:waypoint x="1988" y="280" />
        <di:waypoint x="2095" y="280" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_ci_rearm" bpmnElement="f_ci_rearm">
        <di:waypoint x="1563" y="1265" />
        <di:waypoint x="1563" y="1300" />
        <di:waypoint x="402" y="1300" />
        <di:waypoint x="402" y="320" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="446" y="1239" width="88" height="56" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_reb_rearm" bpmnElement="f_reb_rearm">
        <di:waypoint x="1563" y="1425" />
        <di:waypoint x="1563" y="1460" />
        <di:waypoint x="402" y="1460" />
        <di:waypoint x="402" y="320" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="924" y="1413" width="78" height="42" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_msp_giveup" bpmnElement="f_msp_giveup">
        <di:waypoint x="1588" y="1560" />
        <di:waypoint x="1608" y="1560" />
        <di:waypoint x="1608" y="1535" />
        <di:waypoint x="1601" y="1535" />
        <di:waypoint x="1601" y="1140" />
        <di:waypoint x="1708" y="1140" />
        <di:waypoint x="1708" y="1120" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1606" y="1441" width="85" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_ci_giveup" bpmnElement="f_ci_giveup">
        <di:waypoint x="1213" y="1080" />
        <di:waypoint x="1688" y="1080" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1424" y="1085" width="67" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_reb_giveup" bpmnElement="f_reb_giveup">
        <di:waypoint x="1213" y="440" />
        <di:waypoint x="1233" y="440" />
        <di:waypoint x="1233" y="465" />
        <di:waypoint x="1463" y="465" />
        <di:waypoint x="1463" y="1060" />
        <di:waypoint x="1688" y="1060" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1391" y="749" width="67" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_mr_giveup" bpmnElement="f_mr_giveup">
        <di:waypoint x="1588" y="760" />
        <di:waypoint x="1688" y="760" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1605" y="765" width="67" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_eg_landed" bpmnElement="f_eg_landed">
        <di:waypoint x="1588" y="440" />
        <di:waypoint x="1720" y="440" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_m_landed" bpmnElement="f_m_landed">
        <di:waypoint x="1756" y="440" />
        <di:waypoint x="1938" y="440" />
        <di:waypoint x="1938" y="320" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_m_escC" bpmnElement="f_m_escC">
        <di:waypoint x="1788" y="1080" />
        <di:waypoint x="2288" y="1080" />
        <di:waypoint x="2288" y="160" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_m_escA" bpmnElement="f_m_escA">
        <di:waypoint x="1788" y="760" />
        <di:waypoint x="2151" y="760" />
        <di:waypoint x="2151" y="145" />
        <di:waypoint x="2158" y="145" />
        <di:waypoint x="2158" y="120" />
        <di:waypoint x="2138" y="120" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_m_escReenter" bpmnElement="f_m_escReenter">
        <di:waypoint x="2113" y="95" />
        <di:waypoint x="2113" y="60" />
        <di:waypoint x="402" y="60" />
        <di:waypoint x="402" y="240" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1221" y="13" width="74" height="42" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_m_answerRecord" bpmnElement="f_m_answerRecord">
        <di:waypoint x="2338" y="120" />
        <di:waypoint x="2438" y="120" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_m_answer" bpmnElement="f_m_answer">
        <di:waypoint x="2488" y="160" />
        <di:waypoint x="2488" y="340" />
        <di:waypoint x="402" y="340" />
        <di:waypoint x="402" y="320" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_ci_escAttempt" bpmnElement="f_ci_escAttempt">
        <di:waypoint x="1563" y="1215" />
        <di:waypoint x="1563" y="1195" />
        <di:waypoint x="1150" y="1195" />
        <di:waypoint x="1150" y="402" />
        <di:waypoint x="1518" y="402" />
        <di:waypoint x="1518" y="478" />
        <di:waypoint x="1668" y="478" />
        <di:waypoint x="1668" y="740" />
        <di:waypoint x="1688" y="740" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1327" y="1173" width="60" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_reb_waitDep" bpmnElement="f_reb_waitDep">
        <di:waypoint x="1588" y="1400" />
        <di:waypoint x="1738" y="1400" />
        <di:waypoint x="1738" y="1280" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1636" y="1367" width="75" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_reb_escAttempt" bpmnElement="f_reb_escAttempt">
        <di:waypoint x="1563" y="1375" />
        <di:waypoint x="1563" y="1355" />
        <di:waypoint x="1150" y="1355" />
        <di:waypoint x="1150" y="402" />
        <di:waypoint x="1518" y="402" />
        <di:waypoint x="1518" y="478" />
        <di:waypoint x="1668" y="478" />
        <di:waypoint x="1668" y="740" />
        <di:waypoint x="1688" y="740" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1081" y="1234" width="64" height="42" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_reb_escConflict" bpmnElement="f_reb_escConflict">
        <di:waypoint x="1588" y="1400" />
        <di:waypoint x="1608" y="1400" />
        <di:waypoint x="1608" y="1375" />
        <di:waypoint x="1601" y="1375" />
        <di:waypoint x="1601" y="1080" />
        <di:waypoint x="1688" y="1080" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1606" y="1264" width="60" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_mw_timeout" bpmnElement="f_mw_timeout">
        <di:waypoint x="752" y="280" />
        <di:waypoint x="832" y="280" />
        <di:waypoint x="832" y="600" />
        <di:waypoint x="852" y="600" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_m_mCiFix" bpmnElement="f_m_mCiFix">
        <di:waypoint x="1013" y="305" />
        <di:waypoint x="1013" y="1080" />
        <di:waypoint x="1163" y="1080" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1058" y="1033" width="60" height="42" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_m_mRebase" bpmnElement="f_m_mRebase">
        <di:waypoint x="1013" y="305" />
        <di:waypoint x="1013" y="440" />
        <di:waypoint x="1163" y="440" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="948" y="366" width="60" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_m_mWaiting" bpmnElement="f_m_mWaiting">
        <di:waypoint x="1013" y="305" />
        <di:waypoint x="1013" y="1560" />
        <di:waypoint x="1170" y="1560" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1048" y="1485" width="88" height="70" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_m_mDraft" bpmnElement="f_m_mDraft">
        <di:waypoint x="1013" y="305" />
        <di:waypoint x="1013" y="478" />
        <di:waypoint x="1226" y="478" />
        <di:waypoint x="1226" y="1080" />
        <di:waypoint x="1688" y="1080" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1057" y="483" width="85" height="42" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_m_mBlocked" bpmnElement="f_m_mBlocked">
        <di:waypoint x="1013" y="305" />
        <di:waypoint x="1013" y="440" />
        <di:waypoint x="1163" y="440" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1018" y="352" width="88" height="42" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_ci_go" bpmnElement="f_ci_go">
        <di:waypoint x="1188" y="1105" />
        <di:waypoint x="1188" y="1240" />
        <di:waypoint x="1338" y="1240" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1193" y="1159" width="49" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_reb_go" bpmnElement="f_reb_go">
        <di:waypoint x="1213" y="440" />
        <di:waypoint x="1233" y="440" />
        <di:waypoint x="1233" y="465" />
        <di:waypoint x="2158" y="465" />
        <di:waypoint x="2158" y="75" />
        <di:waypoint x="2558" y="75" />
        <di:waypoint x="2558" y="1125" />
        <di:waypoint x="1318" y="1125" />
        <di:waypoint x="1318" y="1380" />
        <di:waypoint x="1338" y="1380" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="2334" y="42" width="49" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_m_gQueued" bpmnElement="f_m_gQueued">
        <di:waypoint x="1413" y="280" />
        <di:waypoint x="1563" y="280" />
        <di:waypoint x="1563" y="415" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1568" y="354" width="46" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_m_gRetry" bpmnElement="f_m_gRetry">
        <di:waypoint x="1388" y="255" />
        <di:waypoint x="1388" y="235" />
        <di:waypoint x="2218" y="235" />
        <di:waypoint x="2218" y="805" />
        <di:waypoint x="1538" y="805" />
        <di:waypoint x="1563" y="805" />
        <di:waypoint x="1563" y="785" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1852" y="772" width="78" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_eg_evicted" bpmnElement="f_eg_evicted">
        <di:waypoint x="1563" y="415" />
        <di:waypoint x="1563" y="402" />
        <di:waypoint x="1720" y="402" />
        <di:waypoint x="1720" y="562" />
        <di:waypoint x="1738" y="562" />
        <di:waypoint x="1738" y="582" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_eg_landedTimeout" bpmnElement="f_eg_landedTimeout">
        <di:waypoint x="1588" y="440" />
        <di:waypoint x="1700" y="440" />
        <di:waypoint x="1700" y="120" />
        <di:waypoint x="1720" y="120" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_m_gBlocked" bpmnElement="f_m_gBlocked">
        <di:waypoint x="1388" y="255" />
        <di:waypoint x="1388" y="82" />
        <di:waypoint x="1776" y="82" />
        <di:waypoint x="1776" y="165" />
        <di:waypoint x="2218" y="165" />
        <di:waypoint x="2218" y="638" />
        <di:waypoint x="1668" y="638" />
        <di:waypoint x="1668" y="740" />
        <di:waypoint x="1688" y="740" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1952" y="616" width="53" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_m_gAbandoned" bpmnElement="f_m_gAbandoned">
        <di:waypoint x="1388" y="255" />
        <di:waypoint x="1388" y="82" />
        <di:waypoint x="1776" y="82" />
        <di:waypoint x="1776" y="165" />
        <di:waypoint x="2218" y="165" />
        <di:waypoint x="2218" y="920" />
        <di:waypoint x="1581" y="920" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="2131" y="849" width="82" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_ci_waitDep" bpmnElement="f_ci_waitDep">
        <di:waypoint x="1588" y="1240" />
        <di:waypoint x="1688" y="1240" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1621" y="1167" width="75" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_mw_stall" bpmnElement="f_mw_stall">
        <di:waypoint x="870" y="618" />
        <di:waypoint x="870" y="638" />
        <di:waypoint x="888" y="638" />
        <di:waypoint x="888" y="1598" />
        <di:waypoint x="1338" y="1598" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_msp_gate" bpmnElement="f_msp_gate">
        <di:waypoint x="1438" y="1560" />
        <di:waypoint x="1538" y="1560" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_mrp_probe" bpmnElement="f_mrp_probe">
        <di:waypoint x="1206" y="1560" />
        <di:waypoint x="1338" y="1560" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_ci_spdone" bpmnElement="f_ci_spdone">
        <di:waypoint x="1438" y="1240" />
        <di:waypoint x="1538" y="1240" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_reb_spdone" bpmnElement="f_reb_spdone">
        <di:waypoint x="1438" y="1400" />
        <di:waypoint x="1538" y="1400" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_m_landedStalled" bpmnElement="f_m_landedStalled">
        <di:waypoint x="1756" y="120" />
        <di:waypoint x="1888" y="120" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_m_escLanded" bpmnElement="f_m_escLanded">
        <di:waypoint x="1988" y="120" />
        <di:waypoint x="2088" y="120" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_m_escWait" bpmnElement="f_m_escWait">
        <di:waypoint x="2138" y="120" />
        <di:waypoint x="2238" y="120" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_ci_recheck" bpmnElement="f_ci_recheck">
        <di:waypoint x="1563" y="1265" />
        <di:waypoint x="1563" y="1300" />
        <di:waypoint x="577" y="1300" />
        <di:waypoint x="577" y="305" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="582" y="769" width="85" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_msp_rederive" bpmnElement="f_msp_rederive">
        <di:waypoint x="1563" y="1585" />
        <di:waypoint x="1563" y="1620" />
        <di:waypoint x="1013" y="1620" />
        <di:waypoint x="1013" y="305" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1446" y="1587" width="85" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_dep_rewait" bpmnElement="f_dep_rewait">
        <di:waypoint x="1738" y="1280" />
        <di:waypoint x="1738" y="1640" />
        <di:waypoint x="234" y="1640" />
        <di:waypoint x="234" y="298" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_mr_go" bpmnElement="f_mr_go">
        <di:waypoint x="1563" y="785" />
        <di:waypoint x="1563" y="805" />
        <di:waypoint x="402" y="805" />
        <di:waypoint x="402" y="320" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="946" y="772" width="49" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_m_evicted" bpmnElement="f_m_evicted">
        <di:waypoint x="1738" y="618" />
        <di:waypoint x="1738" y="638" />
        <di:waypoint x="402" y="638" />
        <di:waypoint x="402" y="320" />
      </bpmndi:BPMNEdge>
    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>
  <bpmndi:BPMNDiagram id="BPMNDiagram_SP_cifix">
    <bpmndi:BPMNPlane id="BPMNPlane_SP_cifix" bpmnElement="SP_cifix">
      <bpmndi:BPMNShape id="BPMNShape_ci_start" bpmnElement="ci_start">
        <dc:Bounds x="80" y="102" width="36" height="36" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_fix-ci" bpmnElement="fix-ci">
        <dc:Bounds x="216" y="80" width="100" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_gw-ci-result" bpmnElement="gw-ci-result" isMarkerVisible="true">
        <dc:Bounds x="552" y="95" width="50" height="50" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="554" y="76" width="46" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_gw-ci-blocked" bpmnElement="gw-ci-blocked" isMarkerVisible="true">
        <dc:Bounds x="702" y="735" width="50" height="50" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="694" y="688" width="67" height="42" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_ci-reconcile" bpmnElement="ci-reconcile">
        <dc:Bounds x="852" y="880" width="100" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_end_ci_fixed" bpmnElement="end_ci_fixed">
        <dc:Bounds x="709" y="262" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="702" y="303" width="50" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_end_ci_reattempt" bpmnElement="end_ci_reattempt">
        <dc:Bounds x="709" y="422" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="689" y="463" width="77" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_end_ci_reconcile" bpmnElement="end_ci_reconcile">
        <dc:Bounds x="709" y="102" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="687" y="143" width="81" height="42" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_end_ci_recheck" bpmnElement="end_ci_recheck">
        <dc:Bounds x="1052" y="902" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1028" y="943" width="85" height="42" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_end_ci_waiting" bpmnElement="end_ci_waiting">
        <dc:Bounds x="709" y="582" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="690" y="623" width="75" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_end_ci_esc" bpmnElement="end_ci_esc">
        <dc:Bounds x="884" y="742" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="872" y="783" width="60" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_end_ci_sla" bpmnElement="end_ci_sla">
        <dc:Bounds x="416" y="262" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="404" y="303" width="60" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_be_fixci_sla" bpmnElement="be_fixci_sla">
        <dc:Bounds x="248" y="142" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="164" y="183" width="84" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge id="BPMNEdge_f_ci_s0" bpmnElement="f_ci_s0">
        <di:waypoint x="116" y="120" />
        <di:waypoint x="216" y="120" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_ci_done" bpmnElement="f_ci_done">
        <di:waypoint x="316" y="120" />
        <di:waypoint x="552" y="120" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_ci_reconcile" bpmnElement="f_ci_reconcile">
        <di:waypoint x="602" y="120" />
        <di:waypoint x="709" y="120" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="615" y="59" width="82" height="56" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_cib_esc" bpmnElement="f_cib_esc">
        <di:waypoint x="752" y="760" />
        <di:waypoint x="884" y="760" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="786" y="713" width="64" height="42" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_ci_fixed" bpmnElement="f_ci_fixed">
        <di:waypoint x="577" y="145" />
        <di:waypoint x="577" y="280" />
        <di:waypoint x="709" y="280" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="624" y="258" width="39" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_ci_reattempt" bpmnElement="f_ci_reattempt">
        <di:waypoint x="577" y="145" />
        <di:waypoint x="577" y="440" />
        <di:waypoint x="709" y="440" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="599" y="393" width="88" height="42" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_ci_wait" bpmnElement="f_ci_wait">
        <di:waypoint x="577" y="145" />
        <di:waypoint x="577" y="600" />
        <di:waypoint x="709" y="600" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="606" y="567" width="75" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_ci_blocked" bpmnElement="f_ci_blocked">
        <di:waypoint x="577" y="145" />
        <di:waypoint x="577" y="760" />
        <di:waypoint x="702" y="760" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="582" y="673" width="89" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_cib_recon" bpmnElement="f_cib_recon">
        <di:waypoint x="727" y="785" />
        <di:waypoint x="727" y="920" />
        <di:waypoint x="852" y="920" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="732" y="825" width="67" height="56" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_cib_armed" bpmnElement="f_cib_armed">
        <di:waypoint x="952" y="920" />
        <di:waypoint x="1052" y="920" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_ci_sla" bpmnElement="f_ci_sla">
        <di:waypoint x="266" y="178" />
        <di:waypoint x="266" y="280" />
        <di:waypoint x="416" y="280" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="271" y="215" width="70" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>
  <bpmndi:BPMNDiagram id="BPMNDiagram_SP_rebase">
    <bpmndi:BPMNPlane id="BPMNPlane_SP_rebase" bpmnElement="SP_rebase">
      <bpmndi:BPMNShape id="BPMNShape_reb_start" bpmnElement="reb_start">
        <dc:Bounds x="80" y="102" width="36" height="36" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_rebase" bpmnElement="rebase">
        <dc:Bounds x="216" y="80" width="100" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_gw-rebase-result" bpmnElement="gw-rebase-result" isMarkerVisible="true">
        <dc:Bounds x="552" y="95" width="50" height="50" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="547" y="76" width="60" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_end_reb_rebased" bpmnElement="end_reb_rebased">
        <dc:Bounds x="702" y="262" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="688" y="303" width="64" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_end_reb_reconcile" bpmnElement="end_reb_reconcile">
        <dc:Bounds x="702" y="102" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="680" y="55" width="81" height="42" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_end_reb_waiting" bpmnElement="end_reb_waiting">
        <dc:Bounds x="702" y="422" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="683" y="463" width="75" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_end_reb_blocked" bpmnElement="end_reb_blocked">
        <dc:Bounds x="702" y="582" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="688" y="623" width="64" height="42" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_end_reb_sla" bpmnElement="end_reb_sla">
        <dc:Bounds x="416" y="262" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="404" y="303" width="60" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_be_rebase_sla" bpmnElement="be_rebase_sla">
        <dc:Bounds x="248" y="142" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="164" y="183" width="84" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge id="BPMNEdge_f_reb_s0" bpmnElement="f_reb_s0">
        <di:waypoint x="116" y="120" />
        <di:waypoint x="216" y="120" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_reb_done" bpmnElement="f_reb_done">
        <di:waypoint x="316" y="120" />
        <di:waypoint x="552" y="120" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_reb_reconcile" bpmnElement="f_reb_reconcile">
        <di:waypoint x="602" y="120" />
        <di:waypoint x="702" y="120" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="611" y="125" width="82" height="56" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_reb_rebased" bpmnElement="f_reb_rebased">
        <di:waypoint x="577" y="145" />
        <di:waypoint x="577" y="280" />
        <di:waypoint x="702" y="280" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="613" y="258" width="53" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_reb_wait" bpmnElement="f_reb_wait">
        <di:waypoint x="577" y="145" />
        <di:waypoint x="577" y="440" />
        <di:waypoint x="702" y="440" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="602" y="407" width="75" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_reb_blocked" bpmnElement="f_reb_blocked">
        <di:waypoint x="577" y="145" />
        <di:waypoint x="577" y="600" />
        <di:waypoint x="702" y="600" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="582" y="506" width="64" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_f_reb_sla" bpmnElement="f_reb_sla">
        <di:waypoint x="266" y="178" />
        <di:waypoint x="266" y="280" />
        <di:waypoint x="416" y="280" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="271" y="215" width="70" height="28" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>
</bpmn:definitions>
