﻿<?xml version="1.0" encoding="utf-8"?>
<package xmlns:dm0="http://schemas.microsoft.com/VisualStudio/2008/DslTools/Core" xmlns:dm1="http://schemas.microsoft.com/dsltools/Kernel" xmlns:dm2="http://schemas.microsoft.com/dsltools/Component" xmlns:dm3="http://schemas.microsoft.com/dsltools/UseCase" xmlns:dm4="http://schemas.microsoft.com/dsltools/Activity" xmlns:dm5="http://schemas.microsoft.com/dsltools/Interaction" xmlns:dm6="http://schemas.microsoft.com/dsltools/UmlModelLibrary" xmlns:dm7="http://schemas.microsoft.com/dsltools/UmlDiagrams" xmlns:dm8="http://schemas.microsoft.com/dsltools/LogicalClassDesigner"
  dslVersion="1.0.0.0"
  Id="30622e7a-96f1-41b7-83af-6de6f2c37861"
  name="Pass.Container" xmlns="http://schemas.microsoft.com/dsltools/ModelStore">
  <suppliersInternal>
    <dependency
      Id="03391160-31da-444a-9b1b-2ac8fdec0ae8">
      <packageMoniker
        Id="884e21c8-6329-4b60-906e-e07c8e62093c"
        LastKnownName="FileStorage"
        LastKnownLocation="FileStoragePackage.uml" />
    </dependency>
  </suppliersInternal>
  <packagedElements>
    <packageHasNamedElement>
      <class
        Id="802c7aa6-2faa-4adb-9ed6-31a13319da32"
        name="PassFieldValue"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <targetEnds>
          <association
            Id="0f60adc9-5d73-4823-a3f8-7d31bef6ce4d"
            isDerived="false"
            sourceEndRoleName="PassFieldValue"
            targetEndRoleName="PassField"
            isLeaf="false"
            isAbstract="false">
            <classMoniker
              Id="c6be7d12-6827-42f2-833f-8c25f0459f18"
              LastKnownName="PassField"
              LastKnownLocation="PassContainerPackage.uml" />
            <relationshipOwnedElementsInternal>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="0972778f-f3db-4660-b468-2de858346ff8"
                  name="PassFieldValue"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="false"
                  isNavigableOwned="false" />
              </associationHasOwnedEnds>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="0442d132-86f6-4cd5-81c3-3b8067c29f60"
                  name="PassField"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="false" />
              </associationHasOwnedEnds>
            </relationshipOwnedElementsInternal>
          </association>
        </targetEnds>
        <ownedAttributesInternal>
          <property
            Id="a1d868d8-8107-448d-8d6d-a518fccb9b28"
            name="Value"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false" />
        </ownedAttributesInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="c6be7d12-6827-42f2-833f-8c25f0459f18"
        name="PassField"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <ownedAttributesInternal>
          <property
            Id="998c5a8d-9d79-420c-8230-1a9b865787e8"
            name="Name"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false" />
        </ownedAttributesInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="ce141a54-1528-47d5-a12b-b125cc938c43"
        name="PassContainerService"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <suppliersInternal>
          <interfaceRealization
            Id="3beebce1-3f58-4f3d-b7aa-df2dbdb10c9b">
            <interfaceMoniker
              Id="939f0582-e1f9-4664-a425-86de153d00ec"
              LastKnownName="IPassContainerService"
              LastKnownLocation="PassContainerPackage.uml" />
          </interfaceRealization>
          <dependency
            Id="44e75c06-e6d8-4391-b409-d0849481d4da">
            <interfaceMoniker
              Id="21e2b5ae-70ef-44dc-a468-e8f0191add23"
              LastKnownName="IPassContainerRepository"
              LastKnownLocation="PassContainerPackage.uml" />
          </dependency>
          <dependency
            Id="871dcbc7-c8eb-498c-9ed4-549830142bc2">
            <interfaceMoniker
              Id="bf94aa0f-b7a0-4be6-818a-a6d2150d0be3"
              LastKnownName="IFileStorageService"
              LastKnownLocation="FileStoragePackage.uml" />
          </dependency>
        </suppliersInternal>
        <ownedOperationsInternal>
          <operation
            Id="63728b5a-1ceb-411a-8ab1-33035e553cfe"
            name="UpdatePassFields"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="3a697574-ec05-4726-9157-56dca0f56b8e"
                  name="PassIds"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="7c6e47d4-b695-41fa-928b-d22b5d3428cf"
                  name="PassFieldValues)("
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="cda43e3b-c216-42de-ba27-599638a78916"
            name="CreatePassTemplate"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="bcbe9151-4df9-490e-a4d7-3dd8c882a65e"
                  name="PassTemplateId"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="066eeb86-ff7e-49b2-bc03-97c4b46dd5d0"
            name="UpdatePassView"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="66e97061-1fdf-4647-99ff-326cf1ee4888"
                  name="PassTemplateId"
                  direction="In" />
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="8301561d-dce5-4b13-9aa4-a548758fc0a2"
                  name="TemplatePackageId"
                  direction="In" />
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="8c876e59-36fa-4b1d-add1-90637354f2fe"
            name="CreateClientPass"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="86c388cb-8ef5-445b-91ac-70d0cf39cb25"
                  name="PassId"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="9f7b3dbc-54e9-4d66-9ab5-6ed702e73bb1"
                  name="PassFields"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="a3996a03-84d2-42e8-8f6e-bcd851e91d25"
            name="GetPassPackage"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="d6956f53-6b3b-4011-9475-bd82c6d8634d"
                  name="ClientPassId"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="873d86cc-b809-4107-81f6-2546c68cdb68"
                  name="DeviceType"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
        </ownedOperationsInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <Interface
        Id="939f0582-e1f9-4664-a425-86de153d00ec"
        name="IPassContainerService"
        isAbstract="false"
        isLeaf="false">
        <appliedStereotypesInternal>
          <stereotypeInstance
            Id="74ecce6e-3c9f-457f-82a6-de8372e2d1e0"
            name="TextTemplateBindings"
            profile="TextTemplateBindings">
            <propertyInstances>
              <stereotypeInstanceHasPropertyInstances
                Id="a06eac30-64be-4bfc-80b0-c1232882afc6">
                <propertyInstance
                  Id="d6a97fb3-bbff-4717-9005-9fbbaf9355bf"
                  name="Alias" />
              </stereotypeInstanceHasPropertyInstances>
              <stereotypeInstanceHasPropertyInstances
                Id="1b034541-42f5-4ef6-b9bd-73aec0768cef">
                <propertyInstance
                  Id="84ebca12-f785-4922-86da-1ca0f777853c"
                  name="TemplateFilePath" />
              </stereotypeInstanceHasPropertyInstances>
              <stereotypeInstanceHasPropertyInstances
                Id="553bdf91-0577-4f2b-a8ba-71f882033a67">
                <propertyInstance
                  Id="73a24680-55cf-4efa-a037-c5b905ed10dd"
                  name="ProjectPath" />
              </stereotypeInstanceHasPropertyInstances>
              <stereotypeInstanceHasPropertyInstances
                Id="5ca404ed-0ac4-4018-9e49-f44db37ac431">
                <propertyInstance
                  Id="dc99b1b0-e540-49e6-a04f-5a9ef3fdf730"
                  name="TargetDirectory" />
              </stereotypeInstanceHasPropertyInstances>
              <stereotypeInstanceHasPropertyInstances
                Id="eef78e39-36f7-4237-98e9-187efae03ba1">
                <propertyInstance
                  Id="df42a8b3-2084-4d38-a3b3-c127d1d96cd6"
                  name="TargetName" />
              </stereotypeInstanceHasPropertyInstances>
              <stereotypeInstanceHasPropertyInstances
                Id="2ec3ae99-76f2-4d39-a57d-202a7ed08529">
                <propertyInstance
                  Id="e5c83a5b-2b7f-4e42-b56f-f36e5c3f8850"
                  name="Overwrite" />
              </stereotypeInstanceHasPropertyInstances>
              <stereotypeInstanceHasPropertyInstances
                Id="2d0ea5a1-8337-4513-81b2-7f4b0819d785">
                <propertyInstance
                  Id="8b387923-5525-42a9-bbf7-f441f80187c5"
                  name="Parameters" />
              </stereotypeInstanceHasPropertyInstances>
            </propertyInstances>
          </stereotypeInstance>
        </appliedStereotypesInternal>
        <ownedOperations>
          <operation
            Id="0ccc2f6d-8efc-4765-8754-741dc517077a"
            name="UpdatePassFields"
            isLeaf="false"
            isStatic="false"
            isAbstract="true"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="362b623c-f099-4741-b316-caa2d17243b6"
                  name="PassIds"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="d725ba7e-e9c3-4099-8023-c22c54b7a119"
                  name="PassFieldValues)("
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="f9bff3e0-83c7-4bbf-92a1-178d5a146c65"
            name="CreatePassTemplate"
            isLeaf="false"
            isStatic="false"
            isAbstract="true"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="a5284427-ef97-4984-8e8a-911e0328a793"
                  name="TemplatePackage"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="90354308-22fd-4f29-9efe-73daa72a6168"
            name="UpdatePassView"
            isLeaf="false"
            isStatic="false"
            isAbstract="true"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="1f2aca2f-fd62-4a3f-8f75-a65c35762f26"
                  name="PassTemplateId"
                  direction="In" />
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="416f4169-0358-4425-8c1c-5e8d6e97d825"
                  name="TemplatePackageId"
                  direction="In" />
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="16508bc6-78ac-4624-aea5-6d0a8dc24522"
            name="CreateClientPass"
            isLeaf="false"
            isStatic="false"
            isAbstract="true"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="aa966911-b9ab-4c62-bf54-39252d06c1de"
                  name="PassTemplateId"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="e8037f1c-1b7f-42eb-a668-69bb992d85f7"
                  name="PassFieldValues"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="577ff9a2-eec1-4dc6-a813-17d354928282"
            name="GetClientPassPackage"
            isLeaf="false"
            isStatic="false"
            isAbstract="true"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="ee037601-23a7-47f3-bc05-08a6c9647f8a"
                  name="PassId"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="8fbfd5e0-120d-4d35-b09c-33d1bdbbebb8"
                  name="DeviceType"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="62a909d8-5da1-4576-bcca-398d882f6710"
            name="GetPassPackage"
            isLeaf="false"
            isStatic="false"
            isAbstract="true"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="adaced3c-84a5-4af1-bdb6-135f2eeae4dc"
                  name="PassTemplateId"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="3f0b4ff9-ed2a-484a-992c-38f926554730"
                  name="DeviceType"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
        </ownedOperations>
      </Interface>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <Interface
        Id="21e2b5ae-70ef-44dc-a468-e8f0191add23"
        name="IPassContainerRepository"
        isAbstract="false"
        isLeaf="false" />
    </packageHasNamedElement>
    <packageHasNamedElement>
      <Interface
        Id="0011cd7d-47e4-4709-8c0b-9fc6f641ccdd"
        name="IAppleDevicePassService"
        isAbstract="false"
        isLeaf="false">
        <appliedStereotypesInternal>
          <stereotypeInstance
            Id="ea0e201a-9d23-46f5-a9d9-5cc911afae03"
            name="TextTemplateBindings"
            profile="TextTemplateBindings">
            <propertyInstances>
              <stereotypeInstanceHasPropertyInstances
                Id="4ed98891-526b-4ca2-9232-01cefc4ddc1c">
                <propertyInstance
                  Id="393356d8-209d-46a1-b595-5a68fcda47e4"
                  name="Alias" />
              </stereotypeInstanceHasPropertyInstances>
              <stereotypeInstanceHasPropertyInstances
                Id="1669752f-4995-4576-b00f-ffb166856c01">
                <propertyInstance
                  Id="4159c0c0-5ffe-414c-9a46-976c6176e9e5"
                  name="TemplateFilePath" />
              </stereotypeInstanceHasPropertyInstances>
              <stereotypeInstanceHasPropertyInstances
                Id="031088b2-7035-47c5-ad7a-8b0072a75423">
                <propertyInstance
                  Id="4d66ef71-c1df-42a7-a7e0-6e06b3278cc9"
                  name="ProjectPath" />
              </stereotypeInstanceHasPropertyInstances>
              <stereotypeInstanceHasPropertyInstances
                Id="806a91e2-45e8-4d28-baff-8cf3a221584e">
                <propertyInstance
                  Id="b0137ec6-7f27-4204-90ca-6766f8d4790b"
                  name="TargetDirectory" />
              </stereotypeInstanceHasPropertyInstances>
              <stereotypeInstanceHasPropertyInstances
                Id="ecea026f-1ea7-419d-9bf5-2d209bc0d6b0">
                <propertyInstance
                  Id="fc085745-5e77-4e29-a2aa-de098d81ef7b"
                  name="TargetName" />
              </stereotypeInstanceHasPropertyInstances>
              <stereotypeInstanceHasPropertyInstances
                Id="c3e1838d-46b1-4485-b0e2-2ea7179d8d58">
                <propertyInstance
                  Id="ae3fda40-5346-46f7-9f24-682f86cacdf0"
                  name="Overwrite" />
              </stereotypeInstanceHasPropertyInstances>
              <stereotypeInstanceHasPropertyInstances
                Id="434be8dd-cb82-44ba-b389-0b4774bbb375">
                <propertyInstance
                  Id="4ab1353b-f554-4708-a832-8069b4139bfe"
                  name="Parameters" />
              </stereotypeInstanceHasPropertyInstances>
            </propertyInstances>
          </stereotypeInstance>
        </appliedStereotypesInternal>
        <ownedOperations>
          <operation
            Id="cb1577a1-e719-46ac-90f8-f0d4ba0a84e1"
            name="RegisterPass"
            isLeaf="false"
            isStatic="false"
            isAbstract="true"
            concurrency="Sequential"
            isQuery="false" />
          <operation
            Id="476991ab-ca3a-4fd3-9315-a332ed6c57e8"
            name="UnregisterPass"
            isLeaf="false"
            isStatic="false"
            isAbstract="true"
            concurrency="Sequential"
            isQuery="false" />
          <operation
            Id="224d7ac5-6281-42f9-abba-4463b0318f46"
            name="GetPass"
            isLeaf="false"
            isStatic="false"
            isAbstract="true"
            concurrency="Sequential"
            isQuery="false" />
          <operation
            Id="3df474c9-8f44-4589-9e6f-2348950461bd"
            name="GetChangedPassIds"
            isLeaf="false"
            isStatic="false"
            isAbstract="true"
            concurrency="Sequential"
            isQuery="false" />
        </ownedOperations>
      </Interface>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="2871f6c0-aa1f-417a-bcc1-b966ca97f2cb"
        name="PassTemplate"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <targetEnds>
          <association
            Id="00f65239-d9fc-4647-b85a-21c28aea66c7"
            isDerived="false"
            sourceEndRoleName="Pass"
            targetEndRoleName="PassField"
            isLeaf="false"
            isAbstract="false">
            <classMoniker
              Id="c6be7d12-6827-42f2-833f-8c25f0459f18"
              LastKnownName="PassField"
              LastKnownLocation="PassContainerPackage.uml" />
            <relationshipOwnedElementsInternal>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="0914aa39-2d24-4cdf-aad3-70e01ed2d174"
                  name="Pass"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="Composite"
                  isComposite="false"
                  isNavigableOwned="false" />
              </associationHasOwnedEnds>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="dbbaefa9-260b-4eba-be2f-66a92e3089f2"
                  name="PassField"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="true">
                  <lowerValueInternal>
                    <literalString
                      Id="05727cf2-5348-4080-80f8-46c639b059d3"
                      name="Lower"
                      value="*" />
                  </lowerValueInternal>
                  <upperValueInternal>
                    <literalString
                      Id="e12a48a3-7b3f-4754-a957-a7a9ec502a2a"
                      name="Upper"
                      value="*" />
                  </upperValueInternal>
                </memberEnd>
              </associationHasOwnedEnds>
            </relationshipOwnedElementsInternal>
          </association>
          <association
            Id="7b8a4bc6-2a5b-416e-9b2d-bf0d6bcc4cfd"
            isDerived="false"
            sourceEndRoleName="Pass"
            targetEndRoleName="ClientPass"
            isLeaf="false"
            isAbstract="false">
            <classMoniker
              Id="f150d342-3120-4ead-8f72-7922f2c616db"
              LastKnownName="Pass"
              LastKnownLocation="PassContainerPackage.uml" />
            <relationshipOwnedElementsInternal>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="ab0bf6ec-08a3-4eff-8667-6666578ac33c"
                  name="Pass"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="Composite"
                  isComposite="false"
                  isNavigableOwned="false" />
              </associationHasOwnedEnds>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="08660441-dec8-4967-9ae7-76c5fa113283"
                  name="ClientPass"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="true">
                  <lowerValueInternal>
                    <literalString
                      Id="78bdcedf-5cda-4c6a-8e50-f36026317e16"
                      name="Lower"
                      value="*" />
                  </lowerValueInternal>
                  <upperValueInternal>
                    <literalString
                      Id="9b7d9139-0aa4-42f4-8661-0da7f929d1d6"
                      name="Upper"
                      value="*" />
                  </upperValueInternal>
                </memberEnd>
              </associationHasOwnedEnds>
            </relationshipOwnedElementsInternal>
          </association>
          <association
            Id="4480157d-0945-41ca-96cd-5913db744260"
            isDerived="false"
            sourceEndRoleName="Pass"
            targetEndRoleName="NativePassBase"
            isLeaf="false"
            isAbstract="false">
            <classMoniker
              Id="a321f487-36aa-4ae0-84e6-e5cc4375fdd1"
              LastKnownName="NativePassBase"
              LastKnownLocation="PassContainerPackage.uml" />
            <relationshipOwnedElementsInternal>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="40ce2cc1-7f59-4514-ba47-8344eee63348"
                  name="Pass"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="Composite"
                  isComposite="false"
                  isNavigableOwned="false" />
              </associationHasOwnedEnds>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="2eadc61c-02aa-4734-a8bc-a7e8ed689620"
                  name="NativePassBase"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="true">
                  <lowerValueInternal>
                    <literalString
                      Id="86b2d98a-b235-4e38-ad25-35be5c4a6e93"
                      name="Lower"
                      value="*" />
                  </lowerValueInternal>
                  <upperValueInternal>
                    <literalString
                      Id="72f7b25c-0aef-4954-b6f2-fe83cd3f5171"
                      name="Upper"
                      value="*" />
                  </upperValueInternal>
                </memberEnd>
              </associationHasOwnedEnds>
            </relationshipOwnedElementsInternal>
          </association>
        </targetEnds>
        <ownedAttributesInternal>
          <property
            Id="aafab837-a692-4a14-a2f0-63edfe5bb4ab"
            name="Name"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false" />
          <property
            Id="c9de2960-2b48-4e35-b8ca-b65c6b0c0f29"
            name="TemplatePackageId"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false" />
        </ownedAttributesInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="f150d342-3120-4ead-8f72-7922f2c616db"
        name="Pass"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <targetEnds>
          <association
            Id="b994be99-ed7f-470d-a063-64519f85a71f"
            isDerived="false"
            sourceEndRoleName="ClientPass"
            targetEndRoleName="PassFieldValue"
            isLeaf="false"
            isAbstract="false">
            <classMoniker
              Id="802c7aa6-2faa-4adb-9ed6-31a13319da32"
              LastKnownName="PassFieldValue"
              LastKnownLocation="PassContainerPackage.uml" />
            <relationshipOwnedElementsInternal>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="6f0b0ec3-1354-4ea5-a386-ddbb2dd730cb"
                  name="ClientPass"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="Composite"
                  isComposite="false"
                  isNavigableOwned="false" />
              </associationHasOwnedEnds>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="a6194cee-87c7-46da-8cd8-4ab5b4adf217"
                  name="PassFieldValue"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="true">
                  <lowerValueInternal>
                    <literalString
                      Id="4f8934b4-ad2f-485e-a9b5-c45b4eee7bb7"
                      name="Lower"
                      value="*" />
                  </lowerValueInternal>
                  <upperValueInternal>
                    <literalString
                      Id="19893d7e-efe3-4d43-9908-12c248690a82"
                      name="Upper"
                      value="*" />
                  </upperValueInternal>
                </memberEnd>
              </associationHasOwnedEnds>
            </relationshipOwnedElementsInternal>
          </association>
        </targetEnds>
        <ownedAttributesInternal>
          <property
            Id="db534073-a33b-4e85-9b36-2db1e623c1bd"
            name="SerialNumber"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false" />
          <property
            Id="f24187c7-d4e4-4473-8de9-4e6379a16764"
            name="AuthToken"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false" />
          <property
            Id="3f4c3a61-5b0c-4d30-b9fa-70cd203ae3c9"
            name="UpdateDate"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false" />
          <property
            Id="7d8fa58e-fc3a-4f43-bf7e-2b8a848d1b39"
            name="ExpirationDate"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false" />
          <property
            Id="c03194d0-0aaa-4996-9e8f-7ea3c3323630"
            name="Status"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false" />
        </ownedAttributesInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="94448a0b-b237-43cb-a04f-a02230b2b6ba"
        name="ClientDeviceRegistration"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <targetEnds>
          <association
            Id="c33b3673-5c30-4736-bcad-294ba9d84308"
            isDerived="false"
            sourceEndRoleName="ClientDeviceRegistration"
            targetEndRoleName="ClientPass"
            isLeaf="false"
            isAbstract="false">
            <classMoniker
              Id="f150d342-3120-4ead-8f72-7922f2c616db"
              LastKnownName="Pass"
              LastKnownLocation="PassContainerPackage.uml" />
            <relationshipOwnedElementsInternal>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="f2cd1876-6b83-41ad-b4be-8c65290d7372"
                  name="ClientDeviceRegistration"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="false"
                  isNavigableOwned="false">
                  <lowerValueInternal>
                    <literalString
                      Id="8c1975a4-8170-4e2f-940a-aaaf5fe78ee9"
                      name="Lower"
                      value="*" />
                  </lowerValueInternal>
                  <upperValueInternal>
                    <literalString
                      Id="42da0c6d-bab3-4ce3-8877-4720e0d23682"
                      name="Upper"
                      value="*" />
                  </upperValueInternal>
                </memberEnd>
              </associationHasOwnedEnds>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="91cba98c-e5e2-4e70-a97f-1467784b08df"
                  name="ClientPass"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="false">
                  <lowerValueInternal>
                    <literalString
                      Id="ff13c2e8-dde2-4271-a439-744511524dce"
                      name="Lower"
                      value="1" />
                  </lowerValueInternal>
                  <upperValueInternal>
                    <literalString
                      Id="65830a8f-6e95-4b2c-baa5-1900f5aa973f"
                      name="Upper"
                      value="1" />
                  </upperValueInternal>
                </memberEnd>
              </associationHasOwnedEnds>
            </relationshipOwnedElementsInternal>
          </association>
          <association
            Id="49001d0a-24e6-46a7-8138-544ab5382a18"
            isDerived="false"
            sourceEndRoleName="ClientDeviceRegistration"
            targetEndRoleName="ClientDeviceBase"
            isLeaf="false"
            isAbstract="false">
            <classMoniker
              Id="af83e8fe-54d1-4d1c-8740-2f3fda8e7cfd"
              LastKnownName="ClientDeviceBase"
              LastKnownLocation="PassContainerPackage.uml" />
            <relationshipOwnedElementsInternal>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="ed1d3b15-85d2-4b39-a27b-304099dfa411"
                  name="ClientDeviceRegistration"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="false"
                  isNavigableOwned="false">
                  <lowerValueInternal>
                    <literalString
                      Id="6b9fced4-43b2-4887-bbf6-dd6f0623eb5b"
                      name="Lower"
                      value="*" />
                  </lowerValueInternal>
                  <upperValueInternal>
                    <literalString
                      Id="075ea5a7-9409-4997-8589-9f9cc5d19cbd"
                      name="Upper"
                      value="*" />
                  </upperValueInternal>
                </memberEnd>
              </associationHasOwnedEnds>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="27f36f73-5251-44d1-8529-db2e5dc25de1"
                  name="ClientDeviceBase"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="false" />
              </associationHasOwnedEnds>
            </relationshipOwnedElementsInternal>
          </association>
        </targetEnds>
        <ownedAttributesInternal>
          <property
            Id="31a1e01c-e77e-4b8c-9a0d-143e2a397950"
            name="Status"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false" />
        </ownedAttributesInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="af83e8fe-54d1-4d1c-8740-2f3fda8e7cfd"
        name="ClientDeviceBase"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <ownedAttributesInternal>
          <property
            Id="febdf95a-c949-4a47-a519-9c33aca713f3"
            name="DeviceId"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false" />
          <property
            Id="5bc46652-07ac-4ef2-bdaf-5ae6d5a1380c"
            name="DeviceType"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false" />
        </ownedAttributesInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="a675e13d-9743-4c46-b827-28b7d6bb582d"
        name="ClientDeviceApple"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <generalsInternal>
          <generalization
            Id="22c23ebf-0ba2-48d1-9a2a-76f660637136"
            isSubstitutable="false">
            <classMoniker
              Id="af83e8fe-54d1-4d1c-8740-2f3fda8e7cfd"
              LastKnownName="ClientDeviceBase"
              LastKnownLocation="PassContainerPackage.uml" />
          </generalization>
        </generalsInternal>
        <ownedAttributesInternal>
          <property
            Id="05cc2574-50ac-43ce-bf9d-ebbbfb11203a"
            name="PushToken"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false" />
        </ownedAttributesInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="a43116b0-4ace-415d-b843-f44a04c81df0"
        name="AppleDevicePassService"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <suppliersInternal>
          <interfaceRealization
            Id="2b1728e0-68d8-4434-b40e-92d70d4463a1">
            <interfaceMoniker
              Id="0011cd7d-47e4-4709-8c0b-9fc6f641ccdd"
              LastKnownName="IAppleDevicePassService"
              LastKnownLocation="PassContainerPackage.uml" />
          </interfaceRealization>
          <dependency
            Id="9237b2f5-85d4-482c-a5cf-9cc703c30464">
            <interfaceMoniker
              Id="21e2b5ae-70ef-44dc-a468-e8f0191add23"
              LastKnownName="IPassContainerRepository"
              LastKnownLocation="PassContainerPackage.uml" />
          </dependency>
          <dependency
            Id="af4899f0-8811-4349-813a-61cc6ee8243b">
            <interfaceMoniker
              Id="bf94aa0f-b7a0-4be6-818a-a6d2150d0be3"
              LastKnownName="IFileStorageService"
              LastKnownLocation="FileStoragePackage.uml" />
          </dependency>
        </suppliersInternal>
        <ownedOperationsInternal>
          <operation
            Id="b963bd9c-e234-4124-a3f9-d395410e268f"
            name="RegisterPass"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false" />
          <operation
            Id="ac8300c9-b5d7-4db2-95f3-993dd1db715b"
            name="UnregisterPass"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false" />
          <operation
            Id="a0d6f2a1-d5cb-4889-8b69-7772d44c411d"
            name="GetPass"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false" />
          <operation
            Id="d1ca8144-6f2e-4599-80ed-e74be6141d37"
            name="GetChangedPassIds"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false" />
        </ownedOperationsInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="a321f487-36aa-4ae0-84e6-e5cc4375fdd1"
        name="NativePassBase"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <ownedAttributesInternal>
          <property
            Id="54745f44-4554-4261-af7a-75e8065be07e"
            name="PackageId"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false" />
        </ownedAttributesInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="917819fd-3473-4ee6-93da-976b501e43ef"
        name="NativePassApple"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <generalsInternal>
          <generalization
            Id="f465e86b-d09f-4c13-af00-f2995fe1c823"
            isSubstitutable="false">
            <classMoniker
              Id="a321f487-36aa-4ae0-84e6-e5cc4375fdd1"
              LastKnownName="NativePassBase"
              LastKnownLocation="PassContainerPackage.uml" />
          </generalization>
        </generalsInternal>
        <ownedAttributesInternal>
          <property
            Id="9e32ea64-2c1a-45c4-bae9-86855a5a601a"
            name="PassTypeId"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false" />
        </ownedAttributesInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="25d5b617-0fc9-4d2e-9bf6-f0b19d6a7fdd"
        name="ClientPassApple"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <generalsInternal>
          <generalization
            Id="1b44bbd2-ab25-4a1c-b5e6-9538e170d60a"
            isSubstitutable="false">
            <classMoniker
              Id="f150d342-3120-4ead-8f72-7922f2c616db"
              LastKnownName="Pass"
              LastKnownLocation="PassContainerPackage.uml" />
          </generalization>
        </generalsInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="8c95dbbc-c870-4d45-925f-3b9ce49764d9"
        name="ApplePassController"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <suppliersInternal>
          <dependency
            Id="76e58a0d-1c72-4b85-9549-e32b56403158">
            <interfaceMoniker
              Id="0011cd7d-47e4-4709-8c0b-9fc6f641ccdd"
              LastKnownName="IAppleDevicePassService"
              LastKnownLocation="PassContainerPackage.uml" />
          </dependency>
        </suppliersInternal>
        <ownedOperationsInternal>
          <operation
            Id="fd145c80-95c2-4474-97ca-2697b172d978"
            name="Registration"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false" />
          <operation
            Id="26f4f2e6-33f8-4a3f-a9bd-59244feaecf3"
            name="Unregistration"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false" />
          <operation
            Id="38538c25-7f05-4c42-87e1-94e7b7cfa5fc"
            name="GetChangedPasses"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false" />
          <operation
            Id="df888b5e-49e5-45d0-8962-43707a9bf0a0"
            name="GetPass"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false" />
        </ownedOperationsInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="fa091969-8ae4-418b-b492-22d9935f6114"
        name="PassContainerController"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <suppliersInternal>
          <dependency
            Id="a0d45b7d-438e-44d4-b2bb-3e5572d91703">
            <interfaceMoniker
              Id="939f0582-e1f9-4664-a425-86de153d00ec"
              LastKnownName="IPassContainerService"
              LastKnownLocation="PassContainerPackage.uml" />
          </dependency>
        </suppliersInternal>
        <ownedOperationsInternal>
          <operation
            Id="b4fcfe9f-04c9-43e1-a2b1-ba6863c39845"
            name="DownloadClientPass"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="df602a08-69ee-4d48-9971-53c241c1ea6c"
                  name="PassToken"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="b284cebf-eb1b-4372-92df-79ef55d58422"
                  name="DeviceType"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="6a3e3f78-1c33-4a83-81c7-a4d10849cc97"
            name="DownloadPass"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="6661a6f8-44fc-42a1-8e70-b79c060faf88"
                  name="PassToken"
                  direction="In" />
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="177e7d59-9160-4241-9355-9646b774a374"
                  name="DeviceType"
                  direction="In" />
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
        </ownedOperationsInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="95ca5776-d5e0-4335-934e-7b223c2bd67b"
        name="PassLinkGenerator"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <suppliersInternal>
          <dependency
            Id="ad3e4327-8c46-46d2-9358-60642956d4df">
            <interfaceMoniker
              Id="939f0582-e1f9-4664-a425-86de153d00ec"
              LastKnownName="IPassContainerService"
              LastKnownLocation="PassContainerPackage.uml" />
          </dependency>
        </suppliersInternal>
        <ownedOperationsInternal>
          <operation
            Id="da06435b-7597-4827-a7bb-2936e1cc2ce0"
            name="GetPassTemplateLink"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="b3bd0f7a-db21-4324-afd8-44b1f00018ba"
                  name="PassTemplateId"
                  direction="In" />
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
          <operation
            Id="bda714e9-5b5e-4dc7-939f-8caccf3d1443"
            name="GetClientPassLink"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="71c33943-eb72-4852-9960-995bbaf662ca"
                  name="ClientPassId"
                  direction="In" />
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
        </ownedOperationsInternal>
      </class>
    </packageHasNamedElement>
  </packagedElements>
</package>