Viewing File: /usr/local/cpanel/base/3rdparty/roundcube/vendor/mstilkerich/carddavclient/doc/Classes.svg

<?xml version="1.0" encoding="UTF-8"?>
<!-- Do not edit this file with editors other than diagrams.net -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1653px" height="1152px" viewBox="-0.5 -0.5 1653 1152" content="&lt;mxfile host=&quot;Electron&quot; modified=&quot;2023-05-26T08:31:40.045Z&quot; agent=&quot;Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.2.8 Chrome/112.0.5615.165 Electron/24.2.0 Safari/537.36&quot; etag=&quot;JM2M7K0e4V0A45HPBuQb&quot; version=&quot;21.2.8&quot; type=&quot;device&quot;&gt;&#10;  &lt;diagram id=&quot;C5RBs43oDa-KdzZeNtuy&quot; name=&quot;Page-1&quot;&gt;&#10;    &lt;mxGraphModel dx=&quot;1449&quot; dy=&quot;450&quot; grid=&quot;1&quot; gridSize=&quot;10&quot; guides=&quot;1&quot; tooltips=&quot;1&quot; connect=&quot;1&quot; arrows=&quot;1&quot; fold=&quot;1&quot; page=&quot;1&quot; pageScale=&quot;1&quot; pageWidth=&quot;827&quot; pageHeight=&quot;1169&quot; math=&quot;0&quot; shadow=&quot;0&quot;&gt;&#10;      &lt;root&gt;&#10;        &lt;mxCell id=&quot;WIyWlLk6GJQsqaUBKTNV-0&quot; /&gt;&#10;        &lt;mxCell id=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-0&quot; /&gt;&#10;        &lt;mxCell id=&quot;zkfFHV4jXpPFQw0GAbJ--16&quot; value=&quot;&quot; style=&quot;endArrow=block;endSize=10;endFill=0;shadow=0;strokeWidth=1;rounded=0;edgeStyle=elbowEdgeStyle;elbow=horizontal;&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; source=&quot;u7erIZxzKKhx946gxsI2-0&quot; target=&quot;v_oZCs1MGEyOnMnWpm-Y-0&quot; edge=&quot;1&quot;&gt;&#10;          &lt;mxGeometry width=&quot;160&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10;            &lt;mxPoint x=&quot;351&quot; y=&quot;373&quot; as=&quot;sourcePoint&quot; /&gt;&#10;            &lt;mxPoint x=&quot;451&quot; y=&quot;271&quot; as=&quot;targetPoint&quot; /&gt;&#10;            &lt;Array as=&quot;points&quot;&gt;&#10;              &lt;mxPoint x=&quot;830&quot; y=&quot;620&quot; /&gt;&#10;              &lt;mxPoint x=&quot;820&quot; y=&quot;640&quot; /&gt;&#10;              &lt;mxPoint x=&quot;810&quot; y=&quot;614&quot; /&gt;&#10;            &lt;/Array&gt;&#10;          &lt;/mxGeometry&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-4&quot; value=&quot;Use&quot; style=&quot;endArrow=open;endSize=12;dashed=1;html=1;&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; source=&quot;zkfFHV4jXpPFQw0GAbJ--0&quot; target=&quot;u7erIZxzKKhx946gxsI2-0&quot; edge=&quot;1&quot;&gt;&#10;          &lt;mxGeometry width=&quot;160&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10;            &lt;mxPoint x=&quot;273.03999999999996&quot; y=&quot;268&quot; as=&quot;sourcePoint&quot; /&gt;&#10;            &lt;mxPoint x=&quot;210&quot; y=&quot;370&quot; as=&quot;targetPoint&quot; /&gt;&#10;          &lt;/mxGeometry&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-10&quot; value=&quot;Creates&quot; style=&quot;endArrow=open;endSize=12;dashed=1;html=1;entryX=0.032;entryY=-0.015;entryDx=0;entryDy=0;entryPerimeter=0;&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; source=&quot;zkfFHV4jXpPFQw0GAbJ--17&quot; target=&quot;u7erIZxzKKhx946gxsI2-0&quot; edge=&quot;1&quot;&gt;&#10;          &lt;mxGeometry width=&quot;160&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10;            &lt;mxPoint x=&quot;361.0445920953489&quot; y=&quot;268&quot; as=&quot;sourcePoint&quot; /&gt;&#10;            &lt;mxPoint x=&quot;526&quot; y=&quot;490.98&quot; as=&quot;targetPoint&quot; /&gt;&#10;          &lt;/mxGeometry&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-11&quot; value=&quot;Use&quot; style=&quot;endArrow=open;endSize=12;dashed=1;html=1;&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; source=&quot;zkfFHV4jXpPFQw0GAbJ--17&quot; target=&quot;zkfFHV4jXpPFQw0GAbJ--6&quot; edge=&quot;1&quot;&gt;&#10;          &lt;mxGeometry width=&quot;160&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10;            &lt;mxPoint x=&quot;558.8013698630139&quot; y=&quot;268&quot; as=&quot;sourcePoint&quot; /&gt;&#10;            &lt;mxPoint x=&quot;551.1986301369861&quot; y=&quot;490&quot; as=&quot;targetPoint&quot; /&gt;&#10;          &lt;/mxGeometry&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-27&quot; value=&quot;Use&quot; style=&quot;endArrow=open;endSize=12;dashed=1;html=1;&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; source=&quot;zkfFHV4jXpPFQw0GAbJ--0&quot; target=&quot;u7erIZxzKKhx946gxsI2-36&quot; edge=&quot;1&quot;&gt;&#10;          &lt;mxGeometry width=&quot;160&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10;            &lt;mxPoint x=&quot;660&quot; y=&quot;220&quot; as=&quot;sourcePoint&quot; /&gt;&#10;            &lt;mxPoint x=&quot;710.0000000000002&quot; y=&quot;206.57894736842127&quot; as=&quot;targetPoint&quot; /&gt;&#10;          &lt;/mxGeometry&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-28&quot; value=&quot;Use&quot; style=&quot;endArrow=open;endSize=12;dashed=1;html=1;&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; source=&quot;zkfFHV4jXpPFQw0GAbJ--0&quot; target=&quot;u7erIZxzKKhx946gxsI2-20&quot; edge=&quot;1&quot;&gt;&#10;          &lt;mxGeometry width=&quot;160&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10;            &lt;mxPoint x=&quot;630&quot; y=&quot;221.8909090909092&quot; as=&quot;sourcePoint&quot; /&gt;&#10;            &lt;mxPoint x=&quot;720&quot; y=&quot;205.20000000000005&quot; as=&quot;targetPoint&quot; /&gt;&#10;          &lt;/mxGeometry&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-71&quot; value=&quot;&quot; style=&quot;endArrow=none;html=1;rounded=0;&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; source=&quot;zkfFHV4jXpPFQw0GAbJ--6&quot; target=&quot;zkfFHV4jXpPFQw0GAbJ--13&quot; edge=&quot;1&quot;&gt;&#10;          &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10;            &lt;mxPoint x=&quot;390&quot; y=&quot;840&quot; as=&quot;sourcePoint&quot; /&gt;&#10;            &lt;mxPoint x=&quot;550&quot; y=&quot;840&quot; as=&quot;targetPoint&quot; /&gt;&#10;          &lt;/mxGeometry&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-72&quot; value=&quot;1&quot; style=&quot;resizable=0;html=1;align=left;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-71&quot; connectable=&quot;0&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry x=&quot;-1&quot; relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-73&quot; value=&quot;*&quot; style=&quot;resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-71&quot; connectable=&quot;0&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry x=&quot;1&quot; relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-80&quot; value=&quot;Use&quot; style=&quot;endArrow=open;endSize=12;dashed=1;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=-0.002;entryY=0.433;entryDx=0;entryDy=0;entryPerimeter=0;&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; source=&quot;u7erIZxzKKhx946gxsI2-15&quot; target=&quot;u7erIZxzKKhx946gxsI2-75&quot; edge=&quot;1&quot;&gt;&#10;          &lt;mxGeometry width=&quot;160&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10;            &lt;mxPoint x=&quot;265&quot; y=&quot;980.4905882352941&quot; as=&quot;sourcePoint&quot; /&gt;&#10;            &lt;mxPoint x=&quot;425&quot; y=&quot;949.9964705882353&quot; as=&quot;targetPoint&quot; /&gt;&#10;          &lt;/mxGeometry&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-84&quot; value=&quot;&quot; style=&quot;endArrow=block;dashed=1;endFill=0;endSize=12;html=1;&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; source=&quot;u7erIZxzKKhx946gxsI2-81&quot; target=&quot;u7erIZxzKKhx946gxsI2-75&quot; edge=&quot;1&quot;&gt;&#10;          &lt;mxGeometry width=&quot;160&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10;            &lt;mxPoint x=&quot;310&quot; y=&quot;1038&quot; as=&quot;sourcePoint&quot; /&gt;&#10;            &lt;mxPoint x=&quot;470&quot; y=&quot;1038&quot; as=&quot;targetPoint&quot; /&gt;&#10;          &lt;/mxGeometry&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-85&quot; value=&quot;Creates&quot; style=&quot;endArrow=open;endSize=12;dashed=1;html=1;entryX=0.309;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; source=&quot;zkfFHV4jXpPFQw0GAbJ--6&quot; target=&quot;u7erIZxzKKhx946gxsI2-14&quot; edge=&quot;1&quot;&gt;&#10;          &lt;mxGeometry width=&quot;160&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10;            &lt;mxPoint x=&quot;20.001439123578564&quot; y=&quot;876&quot; as=&quot;sourcePoint&quot; /&gt;&#10;            &lt;mxPoint x=&quot;398.66&quot; y=&quot;1081.98&quot; as=&quot;targetPoint&quot; /&gt;&#10;          &lt;/mxGeometry&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-75&quot; value=&quot;HttpClientAdapter&quot; style=&quot;swimlane;fontStyle=2;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=40;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=#ffe6cc;strokeColor=#d79b00;movableLabel=0;resizeHeight=1;&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry x=&quot;560&quot; y=&quot;884&quot; width=&quot;290&quot; height=&quot;118&quot; as=&quot;geometry&quot;&gt;&#10;            &lt;mxRectangle x=&quot;220&quot; y=&quot;120&quot; width=&quot;160&quot; height=&quot;26&quot; as=&quot;alternateBounds&quot; /&gt;&#10;          &lt;/mxGeometry&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-76&quot; value=&quot;~ sendRequest(method, uri, options): Psr7Response&quot; style=&quot;text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-75&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;40&quot; width=&quot;290&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;rVAlodFFeOMfBNMGurua-0&quot; value=&quot;# checkSameDomainAsBase(uri): bool&quot; style=&quot;text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-75&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;66&quot; width=&quot;290&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;rVAlodFFeOMfBNMGurua-1&quot; value=&quot;# getDomainFromSubdomain(subdomain): string&quot; style=&quot;text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontStyle=4&quot; parent=&quot;u7erIZxzKKhx946gxsI2-75&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;92&quot; width=&quot;290&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-14&quot; value=&quot;CardDavClient&quot; style=&quot;swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=#ffe6cc;strokeColor=#d79b00;&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry x=&quot;60&quot; y=&quot;852&quot; width=&quot;400&quot; height=&quot;346&quot; as=&quot;geometry&quot;&gt;&#10;            &lt;mxRectangle x=&quot;340&quot; y=&quot;380&quot; width=&quot;170&quot; height=&quot;26&quot; as=&quot;alternateBounds&quot; /&gt;&#10;          &lt;/mxGeometry&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-16&quot; value=&quot;&quot; style=&quot;line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-14&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;26&quot; width=&quot;400&quot; height=&quot;8&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-15&quot; value=&quot;~ syncCollection(abookUri, syncToken): Multistatus&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-14&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;34&quot; width=&quot;400&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-86&quot; value=&quot;~ getResource(uri): Psr7Response&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-14&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;60&quot; width=&quot;400&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-87&quot; value=&quot;~ getAddressObject(uri): array&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-14&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;86&quot; width=&quot;400&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-88&quot; value=&quot;~ deleteResource(uri): void&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-14&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;112&quot; width=&quot;400&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-89&quot; value=&quot;~ updateResource(body, uri, etag): ?string&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-14&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;138&quot; width=&quot;400&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-90&quot; value=&quot;~ createResource(body, suggestedUri, post): array&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-14&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;164&quot; width=&quot;400&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-91&quot; value=&quot;~ multiGet(abookUri, requestedUris, requestedVCardProps): Multistatus&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-14&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;190&quot; width=&quot;400&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;y4LscSbAUotfE9np0VlY-0&quot; value=&quot;~ query(abookUri, filter, requestedVCardProps, limit): Multistatus&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-14&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;216&quot; width=&quot;400&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-92&quot; value=&quot;~ findProperties(uri, props, depth): array&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-14&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;242&quot; width=&quot;400&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-93&quot; value=&quot;~ absoluteUrl(relurl): string&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-14&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;268&quot; width=&quot;400&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-94&quot; value=&quot;~ concatUrl(baseurl, relurl): string&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontStyle=4&quot; parent=&quot;u7erIZxzKKhx946gxsI2-14&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;294&quot; width=&quot;400&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-95&quot; value=&quot;~ compareUrlPaths(url1, url2): bool&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontStyle=4&quot; parent=&quot;u7erIZxzKKhx946gxsI2-14&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;320&quot; width=&quot;400&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-96&quot; value=&quot;&quot; style=&quot;endArrow=none;html=1;strokeWidth=5;dashed=1;strokeColor=#7D7D7D;&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; edge=&quot;1&quot;&gt;&#10;          &lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10;            &lt;mxPoint x=&quot;-320&quot; y=&quot;440&quot; as=&quot;sourcePoint&quot; /&gt;&#10;            &lt;mxPoint x=&quot;1300&quot; y=&quot;440&quot; as=&quot;targetPoint&quot; /&gt;&#10;          &lt;/mxGeometry&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-97&quot; value=&quot;&quot; style=&quot;endArrow=none;html=1;strokeWidth=5;dashed=1;strokeColor=#7D7D7D;&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; edge=&quot;1&quot;&gt;&#10;          &lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10;            &lt;mxPoint x=&quot;-320&quot; y=&quot;820&quot; as=&quot;sourcePoint&quot; /&gt;&#10;            &lt;mxPoint x=&quot;1300&quot; y=&quot;820&quot; as=&quot;targetPoint&quot; /&gt;&#10;          &lt;/mxGeometry&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-99&quot; value=&quot;&amp;lt;h1&amp;gt;Services&amp;lt;/h1&amp;gt;&amp;lt;p&amp;gt;This layer contains classes that implement high-level public services against CardDAV servers.&amp;lt;/p&amp;gt;&quot; style=&quot;text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry x=&quot;1140&quot; y=&quot;175&quot; width=&quot;190&quot; height=&quot;120&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-100&quot; value=&quot;&amp;lt;h1&amp;gt;Public Entities&amp;lt;/h1&amp;gt;&amp;lt;p&amp;gt;This layer contains entities part of the public interface.&amp;lt;/p&amp;gt;&quot; style=&quot;text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry x=&quot;1140&quot; y=&quot;525&quot; width=&quot;190&quot; height=&quot;85&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-101&quot; value=&quot;Public classes / interfaces are colored blue,&amp;lt;br&amp;gt;internal classes / interfaces are colored orange.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Only methods marked as public (+) are public interface. Methods marked as package (~) are public in the code, but meant for library-internal use only.&quot; style=&quot;shape=note;whiteSpace=wrap;html=1;size=14;verticalAlign=top;align=left;spacingTop=-6;&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry x=&quot;20&quot; y=&quot;50&quot; width=&quot;280&quot; height=&quot;110&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-102&quot; value=&quot;&amp;lt;h1&amp;gt;Private Comms&amp;lt;/h1&amp;gt;&amp;lt;p&amp;gt;This layer contains internal classes that implement the low-level communication with the CardDAV server.&amp;lt;/p&amp;gt;&quot; style=&quot;text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry x=&quot;1140&quot; y=&quot;850&quot; width=&quot;190&quot; height=&quot;120&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-107&quot; value=&quot;XmlElements&quot; style=&quot;shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry x=&quot;-225&quot; y=&quot;877.5&quot; width=&quot;100&quot; height=&quot;65&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-110&quot; value=&quot;Exception&quot; style=&quot;shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry x=&quot;-220&quot; y=&quot;630&quot; width=&quot;100&quot; height=&quot;65&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-104&quot; value=&quot;Config&quot; style=&quot;swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=#dae8fc;strokeColor=#6c8ebf;&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry x=&quot;-275&quot; y=&quot;490&quot; width=&quot;210&quot; height=&quot;70&quot; as=&quot;geometry&quot;&gt;&#10;            &lt;mxRectangle x=&quot;550&quot; y=&quot;140&quot; width=&quot;160&quot; height=&quot;26&quot; as=&quot;alternateBounds&quot; /&gt;&#10;          &lt;/mxGeometry&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-105&quot; value=&quot;&quot; style=&quot;line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-104&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;26&quot; width=&quot;210&quot; height=&quot;8&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-106&quot; value=&quot;+ init(logger, httplogger)&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontStyle=4&quot; parent=&quot;u7erIZxzKKhx946gxsI2-104&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;34&quot; width=&quot;210&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-111&quot; value=&quot;&quot; style=&quot;endArrow=none;html=1;strokeWidth=5;dashed=1;strokeColor=#7D7D7D;&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; edge=&quot;1&quot;&gt;&#10;          &lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10;            &lt;mxPoint x=&quot;-40&quot; y=&quot;100&quot; as=&quot;sourcePoint&quot; /&gt;&#10;            &lt;mxPoint x=&quot;-40&quot; y=&quot;1183.3333333333333&quot; as=&quot;targetPoint&quot; /&gt;&#10;          &lt;/mxGeometry&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-112&quot; value=&quot;&amp;lt;h1&amp;gt;Infrastructure&amp;lt;/h1&amp;gt;&amp;lt;p&amp;gt;Cross-cutting infrastructure and support classes.&amp;lt;/p&amp;gt;&quot; style=&quot;text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry x=&quot;-280&quot; y=&quot;192.5&quot; width=&quot;190&quot; height=&quot;85&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-81&quot; value=&quot;HttpClientAdapterGuzzle&quot; style=&quot;swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=#ffe6cc;strokeColor=#d79b00;&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry x=&quot;625&quot; y=&quot;1060&quot; width=&quot;160&quot; height=&quot;34&quot; as=&quot;geometry&quot;&gt;&#10;            &lt;mxRectangle x=&quot;340&quot; y=&quot;380&quot; width=&quot;170&quot; height=&quot;26&quot; as=&quot;alternateBounds&quot; /&gt;&#10;          &lt;/mxGeometry&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-83&quot; value=&quot;&quot; style=&quot;line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-81&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;26&quot; width=&quot;160&quot; height=&quot;8&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;zkfFHV4jXpPFQw0GAbJ--6&quot; value=&quot;Account&quot; style=&quot;swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=#dae8fc;strokeColor=#6c8ebf;&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry x=&quot;-20&quot; y=&quot;480&quot; width=&quot;320&quot; height=&quot;242&quot; as=&quot;geometry&quot;&gt;&#10;            &lt;mxRectangle x=&quot;130&quot; y=&quot;380&quot; width=&quot;160&quot; height=&quot;26&quot; as=&quot;alternateBounds&quot; /&gt;&#10;          &lt;/mxGeometry&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;zkfFHV4jXpPFQw0GAbJ--7&quot; value=&quot;- httpOptions: array{username, password, verify, ...}&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;zkfFHV4jXpPFQw0GAbJ--6&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;26&quot; width=&quot;320&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-48&quot; value=&quot;- discoveryUri: string&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;&quot; parent=&quot;zkfFHV4jXpPFQw0GAbJ--6&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;52&quot; width=&quot;320&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-49&quot; value=&quot;- baseUrl: string&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;&quot; parent=&quot;zkfFHV4jXpPFQw0GAbJ--6&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;78&quot; width=&quot;320&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;zkfFHV4jXpPFQw0GAbJ--9&quot; value=&quot;&quot; style=&quot;line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;&quot; parent=&quot;zkfFHV4jXpPFQw0GAbJ--6&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;104&quot; width=&quot;320&quot; height=&quot;8&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;zkfFHV4jXpPFQw0GAbJ--11&quot; value=&quot;+ getDiscoveryUri(): string&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;zkfFHV4jXpPFQw0GAbJ--6&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;112&quot; width=&quot;320&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-6&quot; value=&quot;+ getUrl(): string&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;zkfFHV4jXpPFQw0GAbJ--6&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;138&quot; width=&quot;320&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;zkfFHV4jXpPFQw0GAbJ--10&quot; value=&quot;~ getClient(baseUrl): CardDavClient&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontStyle=0&quot; parent=&quot;zkfFHV4jXpPFQw0GAbJ--6&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;164&quot; width=&quot;320&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-50&quot; value=&quot;~ findCurrentUserPrincipal(contextPathUri): ?string&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;zkfFHV4jXpPFQw0GAbJ--6&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;190&quot; width=&quot;320&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-51&quot; value=&quot;~ findAddressbookHomes(principalUri): null | string[]&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;zkfFHV4jXpPFQw0GAbJ--6&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;216&quot; width=&quot;320&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;v_oZCs1MGEyOnMnWpm-Y-11&quot; value=&quot;&quot; style=&quot;endArrow=block;endSize=10;endFill=0;shadow=0;strokeWidth=1;rounded=0;edgeStyle=elbowEdgeStyle;elbow=horizontal;&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; source=&quot;v_oZCs1MGEyOnMnWpm-Y-0&quot; target=&quot;zkfFHV4jXpPFQw0GAbJ--13&quot; edge=&quot;1&quot;&gt;&#10;          &lt;mxGeometry width=&quot;160&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10;            &lt;mxPoint x=&quot;860&quot; y=&quot;624&quot; as=&quot;sourcePoint&quot; /&gt;&#10;            &lt;mxPoint x=&quot;820&quot; y=&quot;624&quot; as=&quot;targetPoint&quot; /&gt;&#10;            &lt;Array as=&quot;points&quot;&gt;&#10;              &lt;mxPoint x=&quot;590&quot; y=&quot;620&quot; /&gt;&#10;              &lt;mxPoint x=&quot;580&quot; y=&quot;600&quot; /&gt;&#10;              &lt;mxPoint x=&quot;600&quot; y=&quot;624&quot; /&gt;&#10;            &lt;/Array&gt;&#10;          &lt;/mxGeometry&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;zkfFHV4jXpPFQw0GAbJ--0&quot; value=&quot;Sync&quot; style=&quot;swimlane;fontStyle=2;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=#dae8fc;strokeColor=#6c8ebf;&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry x=&quot;860&quot; y=&quot;227&quot; width=&quot;270&quot; height=&quot;68&quot; as=&quot;geometry&quot;&gt;&#10;            &lt;mxRectangle x=&quot;220&quot; y=&quot;120&quot; width=&quot;160&quot; height=&quot;26&quot; as=&quot;alternateBounds&quot; /&gt;&#10;          &lt;/mxGeometry&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;zkfFHV4jXpPFQw0GAbJ--4&quot; value=&quot;&quot; style=&quot;line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;&quot; parent=&quot;zkfFHV4jXpPFQw0GAbJ--0&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;26&quot; width=&quot;270&quot; height=&quot;8&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;zkfFHV4jXpPFQw0GAbJ--5&quot; value=&quot;+ synchronize(abook, ..., prevSyncToken): string&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;zkfFHV4jXpPFQw0GAbJ--0&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;34&quot; width=&quot;270&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-36&quot; value=&quot;«interface»&amp;#xa;SyncHandler&quot; style=&quot;swimlane;fontStyle=2;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=40;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=#dae8fc;strokeColor=#6c8ebf;movableLabel=0;resizeHeight=1;&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry x=&quot;520&quot; y=&quot;50&quot; width=&quot;260&quot; height=&quot;150&quot; as=&quot;geometry&quot;&gt;&#10;            &lt;mxRectangle x=&quot;220&quot; y=&quot;120&quot; width=&quot;160&quot; height=&quot;26&quot; as=&quot;alternateBounds&quot; /&gt;&#10;          &lt;/mxGeometry&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-42&quot; value=&quot;+ addressObjectChanged(uri, etag, card): void&quot; style=&quot;text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-36&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;40&quot; width=&quot;260&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-43&quot; value=&quot;+ addressObjectDeleted(uri): void&quot; style=&quot;text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-36&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;66&quot; width=&quot;260&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-45&quot; value=&quot;+ getExistingVCardETags(): string[]&quot; style=&quot;text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-36&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;92&quot; width=&quot;260&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-46&quot; value=&quot;+ finalizeSync(): void&quot; style=&quot;text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-36&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;118&quot; width=&quot;260&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-20&quot; value=&quot;SyncResult&quot; style=&quot;swimlane;fontStyle=2;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=#ffe6cc;strokeColor=#d79b00;&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry x=&quot;520&quot; y=&quot;210&quot; width=&quot;260&quot; height=&quot;164&quot; as=&quot;geometry&quot;&gt;&#10;            &lt;mxRectangle x=&quot;220&quot; y=&quot;120&quot; width=&quot;160&quot; height=&quot;26&quot; as=&quot;alternateBounds&quot; /&gt;&#10;          &lt;/mxGeometry&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-22&quot; value=&quot;~ syncToken: string&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-20&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;26&quot; width=&quot;260&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-29&quot; value=&quot;~ syncAgain: bool&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-20&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;52&quot; width=&quot;260&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-30&quot; value=&quot;~ deletedObjects: string&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-20&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;78&quot; width=&quot;260&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-31&quot; value=&quot;~ changedObjects: array&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-20&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;104&quot; width=&quot;260&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-21&quot; value=&quot;&quot; style=&quot;line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-20&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;130&quot; width=&quot;260&quot; height=&quot;8&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-32&quot; value=&quot;~ createVCards(): bool&quot; style=&quot;text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-20&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;138&quot; width=&quot;260&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;zkfFHV4jXpPFQw0GAbJ--17&quot; value=&quot;Discovery&quot; style=&quot;swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=#dae8fc;strokeColor=#6c8ebf;&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry x=&quot;170&quot; y=&quot;310&quot; width=&quot;210&quot; height=&quot;70&quot; as=&quot;geometry&quot;&gt;&#10;            &lt;mxRectangle x=&quot;550&quot; y=&quot;140&quot; width=&quot;160&quot; height=&quot;26&quot; as=&quot;alternateBounds&quot; /&gt;&#10;          &lt;/mxGeometry&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;zkfFHV4jXpPFQw0GAbJ--23&quot; value=&quot;&quot; style=&quot;line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;&quot; parent=&quot;zkfFHV4jXpPFQw0GAbJ--17&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;26&quot; width=&quot;210&quot; height=&quot;8&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;zkfFHV4jXpPFQw0GAbJ--24&quot; value=&quot;+ discoverAddressbooks(account)&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;zkfFHV4jXpPFQw0GAbJ--17&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;34&quot; width=&quot;210&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;zkfFHV4jXpPFQw0GAbJ--13&quot; value=&quot;WebDavResource&quot; style=&quot;swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=#dae8fc;strokeColor=#6c8ebf;&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry x=&quot;340&quot; y=&quot;480&quot; width=&quot;300&quot; height=&quot;294&quot; as=&quot;geometry&quot;&gt;&#10;            &lt;mxRectangle x=&quot;340&quot; y=&quot;380&quot; width=&quot;170&quot; height=&quot;26&quot; as=&quot;alternateBounds&quot; /&gt;&#10;          &lt;/mxGeometry&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;zkfFHV4jXpPFQw0GAbJ--15&quot; value=&quot;&quot; style=&quot;line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;&quot; parent=&quot;zkfFHV4jXpPFQw0GAbJ--13&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;26&quot; width=&quot;300&quot; height=&quot;8&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;v_oZCs1MGEyOnMnWpm-Y-15&quot; value=&quot;+ createInstance(uri, account, restype): WebDavResource&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontStyle=4&quot; parent=&quot;zkfFHV4jXpPFQw0GAbJ--13&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;34&quot; width=&quot;300&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;zkfFHV4jXpPFQw0GAbJ--14&quot; value=&quot;+ refreshProperties(): void&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;zkfFHV4jXpPFQw0GAbJ--13&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;60&quot; width=&quot;300&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-55&quot; value=&quot;+ getAccount(): Account&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;zkfFHV4jXpPFQw0GAbJ--13&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;86&quot; width=&quot;300&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-57&quot; value=&quot;+ getUri(): string&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;zkfFHV4jXpPFQw0GAbJ--13&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;112&quot; width=&quot;300&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;v_oZCs1MGEyOnMnWpm-Y-13&quot; value=&quot;+ getUriPath(): string&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;zkfFHV4jXpPFQw0GAbJ--13&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;138&quot; width=&quot;300&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;v_oZCs1MGEyOnMnWpm-Y-14&quot; value=&quot;+ getBasename(): string&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;zkfFHV4jXpPFQw0GAbJ--13&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;164&quot; width=&quot;300&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-58&quot; value=&quot;+ getSyncToken(): ?string&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;zkfFHV4jXpPFQw0GAbJ--13&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;190&quot; width=&quot;300&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-60&quot; value=&quot;+ downloadResource(uri): array&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;zkfFHV4jXpPFQw0GAbJ--13&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;216&quot; width=&quot;300&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-56&quot; value=&quot;~ getClient(): CardDavClient&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;zkfFHV4jXpPFQw0GAbJ--13&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;242&quot; width=&quot;300&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-61&quot; value=&quot;# getProperties(): array&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;zkfFHV4jXpPFQw0GAbJ--13&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;268&quot; width=&quot;300&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-0&quot; value=&quot;AddressbookCollection&quot; style=&quot;swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=#dae8fc;strokeColor=#6c8ebf;&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry x=&quot;910&quot; y=&quot;480&quot; width=&quot;270&quot; height=&quot;294&quot; as=&quot;geometry&quot;&gt;&#10;            &lt;mxRectangle x=&quot;340&quot; y=&quot;380&quot; width=&quot;170&quot; height=&quot;26&quot; as=&quot;alternateBounds&quot; /&gt;&#10;          &lt;/mxGeometry&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-2&quot; value=&quot;&quot; style=&quot;line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-0&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;26&quot; width=&quot;270&quot; height=&quot;8&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-53&quot; value=&quot;+ getName(): string&quot; style=&quot;text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-0&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;34&quot; width=&quot;270&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-54&quot; value=&quot;+ getDetails(): string&quot; style=&quot;text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-0&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;60&quot; width=&quot;270&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-63&quot; value=&quot;+ supportsMultiGet(): bool&quot; style=&quot;text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-0&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;86&quot; width=&quot;270&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-64&quot; value=&quot;+ getCTag(): ?string&quot; style=&quot;text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-0&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;112&quot; width=&quot;270&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-65&quot; value=&quot;+ getCard(uri): array&quot; style=&quot;text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-0&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;138&quot; width=&quot;270&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-66&quot; value=&quot;+ deleteCard(uri): void&quot; style=&quot;text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-0&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;164&quot; width=&quot;270&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-67&quot; value=&quot;+ createCard(vcard): array&quot; style=&quot;text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-0&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;190&quot; width=&quot;270&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-68&quot; value=&quot;+ updateCard(uri, vcard, etag): ?string&quot; style=&quot;text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-0&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;216&quot; width=&quot;270&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;e7asPVy4w3gbiPkJjLG5-0&quot; value=&quot;+ query(conditions, props, matchAll, limit): array&quot; style=&quot;text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-0&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;242&quot; width=&quot;270&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;u7erIZxzKKhx946gxsI2-69&quot; value=&quot;# validateCard(vcard): void&quot; style=&quot;text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;u7erIZxzKKhx946gxsI2-0&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;268&quot; width=&quot;270&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;v_oZCs1MGEyOnMnWpm-Y-0&quot; value=&quot;WebDavCollection&quot; style=&quot;swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=#dae8fc;strokeColor=#6c8ebf;&quot; parent=&quot;WIyWlLk6GJQsqaUBKTNV-1&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry x=&quot;670&quot; y=&quot;544&quot; width=&quot;210&quot; height=&quot;140&quot; as=&quot;geometry&quot;&gt;&#10;            &lt;mxRectangle x=&quot;340&quot; y=&quot;380&quot; width=&quot;170&quot; height=&quot;26&quot; as=&quot;alternateBounds&quot; /&gt;&#10;          &lt;/mxGeometry&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;v_oZCs1MGEyOnMnWpm-Y-1&quot; value=&quot;&quot; style=&quot;line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;&quot; parent=&quot;v_oZCs1MGEyOnMnWpm-Y-0&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;26&quot; width=&quot;210&quot; height=&quot;8&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;v_oZCs1MGEyOnMnWpm-Y-2&quot; value=&quot;+ getChildren(): WebDavResource[]&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;v_oZCs1MGEyOnMnWpm-Y-0&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;34&quot; width=&quot;210&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;v_oZCs1MGEyOnMnWpm-Y-5&quot; value=&quot;+ getSyncToken(): ?string&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;v_oZCs1MGEyOnMnWpm-Y-0&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;60&quot; width=&quot;210&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;v_oZCs1MGEyOnMnWpm-Y-6&quot; value=&quot;+ supportsSyncCollection(): bool&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;v_oZCs1MGEyOnMnWpm-Y-0&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;86&quot; width=&quot;210&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;        &lt;mxCell id=&quot;v_oZCs1MGEyOnMnWpm-Y-10&quot; value=&quot;# supportsReport(reportElem): bool&quot; style=&quot;text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;&quot; parent=&quot;v_oZCs1MGEyOnMnWpm-Y-0&quot; vertex=&quot;1&quot;&gt;&#10;          &lt;mxGeometry y=&quot;112&quot; width=&quot;210&quot; height=&quot;26&quot; as=&quot;geometry&quot; /&gt;&#10;        &lt;/mxCell&gt;&#10;      &lt;/root&gt;&#10;    &lt;/mxGraphModel&gt;&#10;  &lt;/diagram&gt;&#10;&lt;/mxfile&gt;&#10;"><defs><clipPath id="mx-clip-886-879-282-26-0"><rect x="886" y="879" width="282" height="26"/></clipPath><clipPath id="mx-clip-886-905-282-26-0"><rect x="886" y="905" width="282" height="26"/></clipPath><clipPath id="mx-clip-886-931-282-26-0"><rect x="886" y="931" width="282" height="26"/></clipPath><clipPath id="mx-clip-386-841-392-26-0"><rect x="386" y="841" width="392" height="26"/></clipPath><clipPath id="mx-clip-386-867-392-26-0"><rect x="386" y="867" width="392" height="26"/></clipPath><clipPath id="mx-clip-386-893-392-26-0"><rect x="386" y="893" width="392" height="26"/></clipPath><clipPath id="mx-clip-386-919-392-26-0"><rect x="386" y="919" width="392" height="26"/></clipPath><clipPath id="mx-clip-386-945-392-26-0"><rect x="386" y="945" width="392" height="26"/></clipPath><clipPath id="mx-clip-386-971-392-26-0"><rect x="386" y="971" width="392" height="26"/></clipPath><clipPath id="mx-clip-386-997-392-26-0"><rect x="386" y="997" width="392" height="26"/></clipPath><clipPath id="mx-clip-386-1023-392-26-0"><rect x="386" y="1023" width="392" height="26"/></clipPath><clipPath id="mx-clip-386-1049-392-26-0"><rect x="386" y="1049" width="392" height="26"/></clipPath><clipPath id="mx-clip-386-1075-392-26-0"><rect x="386" y="1075" width="392" height="26"/></clipPath><clipPath id="mx-clip-386-1101-392-26-0"><rect x="386" y="1101" width="392" height="26"/></clipPath><clipPath id="mx-clip-386-1127-392-26-0"><rect x="386" y="1127" width="392" height="26"/></clipPath><clipPath id="mx-clip-51-479-202-26-0"><rect x="51" y="479" width="202" height="26"/></clipPath><clipPath id="mx-clip-306-461-312-26-0"><rect x="306" y="461" width="312" height="26"/></clipPath><clipPath id="mx-clip-306-487-312-26-0"><rect x="306" y="487" width="312" height="26"/></clipPath><clipPath id="mx-clip-306-513-312-26-0"><rect x="306" y="513" width="312" height="26"/></clipPath><clipPath id="mx-clip-306-547-312-26-0"><rect x="306" y="547" width="312" height="26"/></clipPath><clipPath id="mx-clip-306-573-312-26-0"><rect x="306" y="573" width="312" height="26"/></clipPath><clipPath id="mx-clip-306-599-312-26-0"><rect x="306" y="599" width="312" height="26"/></clipPath><clipPath id="mx-clip-306-625-312-26-0"><rect x="306" y="625" width="312" height="26"/></clipPath><clipPath id="mx-clip-306-651-312-26-0"><rect x="306" y="651" width="312" height="26"/></clipPath><clipPath id="mx-clip-1186-216-262-26-0"><rect x="1186" y="216" width="262" height="26"/></clipPath><clipPath id="mx-clip-846-45-252-26-0"><rect x="846" y="45" width="252" height="26"/></clipPath><clipPath id="mx-clip-846-71-252-26-0"><rect x="846" y="71" width="252" height="26"/></clipPath><clipPath id="mx-clip-846-97-252-26-0"><rect x="846" y="97" width="252" height="26"/></clipPath><clipPath id="mx-clip-846-123-252-26-0"><rect x="846" y="123" width="252" height="26"/></clipPath><clipPath id="mx-clip-846-191-252-26-0"><rect x="846" y="191" width="252" height="26"/></clipPath><clipPath id="mx-clip-846-217-252-26-0"><rect x="846" y="217" width="252" height="26"/></clipPath><clipPath id="mx-clip-846-243-252-26-0"><rect x="846" y="243" width="252" height="26"/></clipPath><clipPath id="mx-clip-846-269-252-26-0"><rect x="846" y="269" width="252" height="26"/></clipPath><clipPath id="mx-clip-846-303-252-26-0"><rect x="846" y="303" width="252" height="26"/></clipPath><clipPath id="mx-clip-496-299-202-26-0"><rect x="496" y="299" width="202" height="26"/></clipPath><clipPath id="mx-clip-666-469-292-26-0"><rect x="666" y="469" width="292" height="26"/></clipPath><clipPath id="mx-clip-666-495-292-26-0"><rect x="666" y="495" width="292" height="26"/></clipPath><clipPath id="mx-clip-666-521-292-26-0"><rect x="666" y="521" width="292" height="26"/></clipPath><clipPath id="mx-clip-666-547-292-26-0"><rect x="666" y="547" width="292" height="26"/></clipPath><clipPath id="mx-clip-666-573-292-26-0"><rect x="666" y="573" width="292" height="26"/></clipPath><clipPath id="mx-clip-666-599-292-26-0"><rect x="666" y="599" width="292" height="26"/></clipPath><clipPath id="mx-clip-666-625-292-26-0"><rect x="666" y="625" width="292" height="26"/></clipPath><clipPath id="mx-clip-666-651-292-26-0"><rect x="666" y="651" width="292" height="26"/></clipPath><clipPath id="mx-clip-666-677-292-26-0"><rect x="666" y="677" width="292" height="26"/></clipPath><clipPath id="mx-clip-666-703-292-26-0"><rect x="666" y="703" width="292" height="26"/></clipPath><clipPath id="mx-clip-1236-469-262-26-0"><rect x="1236" y="469" width="262" height="26"/></clipPath><clipPath id="mx-clip-1236-495-262-26-0"><rect x="1236" y="495" width="262" height="26"/></clipPath><clipPath id="mx-clip-1236-521-262-26-0"><rect x="1236" y="521" width="262" height="26"/></clipPath><clipPath id="mx-clip-1236-547-262-26-0"><rect x="1236" y="547" width="262" height="26"/></clipPath><clipPath id="mx-clip-1236-573-262-26-0"><rect x="1236" y="573" width="262" height="26"/></clipPath><clipPath id="mx-clip-1236-599-262-26-0"><rect x="1236" y="599" width="262" height="26"/></clipPath><clipPath id="mx-clip-1236-625-262-26-0"><rect x="1236" y="625" width="262" height="26"/></clipPath><clipPath id="mx-clip-1236-651-262-26-0"><rect x="1236" y="651" width="262" height="26"/></clipPath><clipPath id="mx-clip-1236-677-262-26-0"><rect x="1236" y="677" width="262" height="26"/></clipPath><clipPath id="mx-clip-1236-703-262-26-0"><rect x="1236" y="703" width="262" height="26"/></clipPath><clipPath id="mx-clip-996-533-202-26-0"><rect x="996" y="533" width="202" height="26"/></clipPath><clipPath id="mx-clip-996-559-202-26-0"><rect x="996" y="559" width="202" height="26"/></clipPath><clipPath id="mx-clip-996-585-202-26-0"><rect x="996" y="585" width="202" height="26"/></clipPath><clipPath id="mx-clip-996-611-202-26-0"><rect x="996" y="611" width="202" height="26"/></clipPath></defs><g><path d="M 1232 577 L 1214.12 577" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1203.12 577 L 1214.12 571.5 L 1214.12 582.5 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 1321.64 245 L 1346.62 427.78" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1338.57 416.89 L 1346.77 428.89 L 1351.45 415.13" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 337px; margin-left: 1334px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">Use</div></div></div></foreignObject><text x="1334" y="341" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">Use</text></switch></g><path d="M 702 316.3 L 1238.45 425.15" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1225.51 429.15 L 1239.54 425.37 L 1228.1 416.41" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 371px; margin-left: 971px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">Creates</div></div></div></foreignObject><text x="971" y="374" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">Creates</text></switch></g><path d="M 578.54 330 L 526.85 428.02" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 526.64 414.48 L 526.33 429.01 L 538.14 420.54" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 380px; margin-left: 552px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">Use</div></div></div></foreignObject><text x="552" y="383" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">Use</text></switch></g><path d="M 1230.75 177 L 1104.08 127.07" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1117.52 125.38 L 1103.04 126.66 L 1112.75 137.47" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 152px; margin-left: 1166px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">Use</div></div></div></foreignObject><text x="1166" y="155" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">Use</text></switch></g><path d="M 1182 223.13 L 1104.23 230.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1115.48 222.58 L 1103.11 230.22 L 1116.64 235.53" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 227px; margin-left: 1142px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">Use</div></div></div></foreignObject><text x="1142" y="230" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">Use</text></switch></g><path d="M 622 562.89 L 662 565.86" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 560px; margin-left: 624px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 10px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">1</div></div></div></foreignObject><text x="624" y="560" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="10px">1</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 563px; margin-left: 660px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 10px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">*</div></div></div></foreignObject><text x="660" y="563" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="10px" text-anchor="end">*</text></switch></g><path d="M 782 849 L 879.32 884.33" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 865.93 886.39 L 880.37 884.71 L 870.37 874.17" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 867px; margin-left: 832px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">Use</div></div></div></foreignObject><text x="832" y="870" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">Use</text></switch></g><path d="M 1027 1010 L 1027 966.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1027 953.12 L 1033.5 966.12 L 1020.5 966.12 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 483.02 672 L 505.22 799.8" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 496.78 789.2 L 505.41 800.9 L 509.59 786.98" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 737px; margin-left: 494px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">Creates</div></div></div></foreignObject><text x="494" y="740" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">Creates</text></switch></g><path d="M 882 874 L 882 834 L 1172 834 L 1172 874" fill="#ffe6cc" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/><path d="M 882 874 L 882 952 L 1172 952 L 1172 874" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="none"/><path d="M 882 874 L 1172 874" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-style="italic" pointer-events="none" text-anchor="middle" font-size="12px"><text x="1026.5" y="851.5">HttpClientAdapter</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-886-879-282-26-0)" font-size="12px"><text x="887.5" y="891.5">~ sendRequest(method, uri, options): Psr7Response</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-886-905-282-26-0)" font-size="12px"><text x="887.5" y="917.5"># checkSameDomainAsBase(uri): bool</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-886-931-282-26-0)" font-size="12px"><text x="887.5" y="943.5"># getDomainFromSubdomain(subdomain): string</text></g><path d="M 382 828 L 382 802 L 782 802 L 782 828" fill="#ffe6cc" stroke="#d79b00" stroke-miterlimit="10" pointer-events="none"/><path d="M 382 828 L 382 1148 L 782 1148 L 782 828" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="none"/><path d="M 382 828 L 782 828" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="12px"><text x="581.5" y="819.5">CardDavClient</text></g><path d="M 382 832 L 782 832" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-386-841-392-26-0)" font-size="12px"><text x="387.5" y="853.5">~ syncCollection(abookUri, syncToken): Multistatus</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-386-867-392-26-0)" font-size="12px"><text x="387.5" y="879.5">~ getResource(uri): Psr7Response</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-386-893-392-26-0)" font-size="12px"><text x="387.5" y="905.5">~ getAddressObject(uri): array</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-386-919-392-26-0)" font-size="12px"><text x="387.5" y="931.5">~ deleteResource(uri): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-386-945-392-26-0)" font-size="12px"><text x="387.5" y="957.5">~ updateResource(body, uri, etag): ?string</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-386-971-392-26-0)" font-size="12px"><text x="387.5" y="983.5">~ createResource(body, suggestedUri, post): array</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-386-997-392-26-0)" font-size="12px"><text x="387.5" y="1009.5">~ multiGet(abookUri, requestedUris, requestedVCardProps): Multistatus</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-386-1023-392-26-0)" font-size="12px"><text x="387.5" y="1035.5">~ query(abookUri, filter, requestedVCardProps, limit): Multistatus</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-386-1049-392-26-0)" font-size="12px"><text x="387.5" y="1061.5">~ findProperties(uri, props, depth): array</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-386-1075-392-26-0)" font-size="12px"><text x="387.5" y="1087.5">~ absoluteUrl(relurl): string</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-386-1101-392-26-0)" font-size="12px"><text x="387.5" y="1113.5">~ concatUrl(baseurl, relurl): string</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-386-1127-392-26-0)" font-size="12px"><text x="387.5" y="1139.5">~ compareUrlPaths(url1, url2): bool</text></g><path d="M 2 390 L 1622 390" fill="none" stroke="#7d7d7d" stroke-width="5" stroke-miterlimit="10" stroke-dasharray="15 15" pointer-events="none"/><path d="M 2 770 L 1622 770" fill="none" stroke="#7d7d7d" stroke-width="5" stroke-miterlimit="10" stroke-dasharray="15 15" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 182px; height: 1px; padding-top: 115px; margin-left: 1467px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 130px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><h1>Services</h1><p>This layer contains classes that implement high-level public services against CardDAV servers.</p></div></div></div></foreignObject><text x="1467" y="127" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Services...</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 182px; height: 1px; padding-top: 465px; margin-left: 1467px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 95px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><h1>Public Entities</h1><p>This layer contains entities part of the public interface.</p></div></div></div></foreignObject><text x="1467" y="477" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Public Entities...</text></switch></g><path d="M 342 0 L 608 0 L 622 14 L 622 110 L 342 110 L 342 0 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 608 0 L 608 14 L 622 14" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 278px; height: 1px; padding-top: 1px; margin-left: 344px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">Public classes / interfaces are colored blue,<br />internal classes / interfaces are colored orange.<br /><br />Only methods marked as public (+) are public interface. Methods marked as package (~) are public in the code, but meant for library-internal use only.</div></div></div></foreignObject><text x="344" y="13" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Public classes / interfaces are colored blue,...</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 182px; height: 1px; padding-top: 790px; margin-left: 1467px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 130px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><h1>Private Comms</h1><p>This layer contains internal classes that implement the low-level communication with the CardDAV server.</p></div></div></div></foreignObject><text x="1467" y="802" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Private Comms...</text></switch></g><path d="M 97 841.5 L 97 827.5 L 137 827.5 L 137 841.5 M 97 841.5 L 197 841.5 L 197 892.5 L 97 892.5 Z" fill="#ffe6cc" stroke="#d79b00" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 865px; margin-left: 147px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; font-weight: bold; white-space: nowrap;">XmlElements</div></div></div></foreignObject><text x="147" y="869" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">XmlElements</text></switch></g><path d="M 102 594 L 102 580 L 142 580 L 142 594 M 102 594 L 202 594 L 202 645 L 102 645 Z" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 618px; margin-left: 152px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; font-weight: bold; white-space: nowrap;">Exception</div></div></div></foreignObject><text x="152" y="621" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">Exception</text></switch></g><path d="M 47 466 L 47 440 L 257 440 L 257 466" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 47 466 L 47 510 L 257 510 L 257 466" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 47 466 L 257 466" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="12px"><text x="151.5" y="457.5">Config</text></g><path d="M 47 470 L 257 470" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-51-479-202-26-0)" font-size="12px"><text x="52.5" y="491.5">+ init(logger, httplogger)</text></g><path d="M 282 50 L 282 1133.33" fill="none" stroke="#7d7d7d" stroke-width="5" stroke-miterlimit="10" stroke-dasharray="15 15" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 182px; height: 1px; padding-top: 133px; margin-left: 47px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 95px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><h1>Infrastructure</h1><p>Cross-cutting infrastructure and support classes.</p></div></div></div></foreignObject><text x="47" y="145" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Infrastructure...</text></switch></g><path d="M 947 1036 L 947 1010 L 1107 1010 L 1107 1036" fill="#ffe6cc" stroke="#d79b00" stroke-miterlimit="10" pointer-events="none"/><path d="M 947 1036 L 947 1044 L 1107 1044 L 1107 1036" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="none"/><path d="M 947 1036 L 1107 1036" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="12px"><text x="1026.5" y="1027.5">HttpClientAdapterGuzzle</text></g><path d="M 947 1040 L 1107 1040" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 302 456 L 302 430 L 622 430 L 622 456" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 302 456 L 302 672 L 622 672 L 622 456" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 302 456 L 622 456" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="12px"><text x="461.5" y="447.5">Account</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-306-461-312-26-0)" font-size="12px"><text x="307.5" y="473.5">- httpOptions: array{username, password, verify, ...}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-306-487-312-26-0)" font-size="12px"><text x="307.5" y="499.5">- discoveryUri: string</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-306-513-312-26-0)" font-size="12px"><text x="307.5" y="525.5">- baseUrl: string</text></g><path d="M 302 538 L 622 538" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-306-547-312-26-0)" font-size="12px"><text x="307.5" y="559.5">+ getDiscoveryUri(): string</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-306-573-312-26-0)" font-size="12px"><text x="307.5" y="585.5">+ getUrl(): string</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-306-599-312-26-0)" font-size="12px"><text x="307.5" y="611.5">~ getClient(baseUrl): CardDavClient</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-306-625-312-26-0)" font-size="12px"><text x="307.5" y="637.5">~ findCurrentUserPrincipal(contextPathUri): ?string</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-306-651-312-26-0)" font-size="12px"><text x="307.5" y="663.5">~ findAddressbookHomes(principalUri): null | string[]</text></g><path d="M 992 564 L 974.12 564" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 963.12 564 L 974.12 558.5 L 974.12 569.5 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1182 203 L 1182 177 L 1452 177 L 1452 203" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 1182 203 L 1182 245 L 1452 245 L 1452 203" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 1182 203 L 1452 203" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-style="italic" pointer-events="none" text-anchor="middle" font-size="12px"><text x="1316.5" y="194.5">Sync</text></g><path d="M 1182 207 L 1452 207" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1186-216-262-26-0)" font-size="12px"><text x="1187.5" y="228.5">+ synchronize(abook, ..., prevSyncToken): string</text></g><path d="M 842 40 L 842 0 L 1102 0 L 1102 40" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 842 40 L 842 150 L 1102 150 L 1102 40" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 842 40 L 1102 40" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-style="italic" pointer-events="none" text-anchor="middle" font-size="12px"><text x="971.5" y="17.5">«interface»</text><text x="971.5" y="31.5">SyncHandler</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-846-45-252-26-0)" font-size="12px"><text x="847.5" y="57.5">+ addressObjectChanged(uri, etag, card): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-846-71-252-26-0)" font-size="12px"><text x="847.5" y="83.5">+ addressObjectDeleted(uri): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-846-97-252-26-0)" font-size="12px"><text x="847.5" y="109.5">+ getExistingVCardETags(): string[]</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-846-123-252-26-0)" font-size="12px"><text x="847.5" y="135.5">+ finalizeSync(): void</text></g><path d="M 842 186 L 842 160 L 1102 160 L 1102 186" fill="#ffe6cc" stroke="#d79b00" stroke-miterlimit="10" pointer-events="none"/><path d="M 842 186 L 842 324 L 1102 324 L 1102 186" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="none"/><path d="M 842 186 L 1102 186" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-style="italic" pointer-events="none" text-anchor="middle" font-size="12px"><text x="971.5" y="177.5">SyncResult</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-846-191-252-26-0)" font-size="12px"><text x="847.5" y="203.5">~ syncToken: string</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-846-217-252-26-0)" font-size="12px"><text x="847.5" y="229.5">~ syncAgain: bool</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-846-243-252-26-0)" font-size="12px"><text x="847.5" y="255.5">~ deletedObjects: string</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-846-269-252-26-0)" font-size="12px"><text x="847.5" y="281.5">~ changedObjects: array</text></g><path d="M 842 294 L 1102 294" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-846-303-252-26-0)" font-size="12px"><text x="847.5" y="315.5">~ createVCards(): bool</text></g><path d="M 492 286 L 492 260 L 702 260 L 702 286" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 492 286 L 492 330 L 702 330 L 702 286" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 492 286 L 702 286" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="12px"><text x="596.5" y="277.5">Discovery</text></g><path d="M 492 290 L 702 290" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-496-299-202-26-0)" font-size="12px"><text x="497.5" y="311.5">+ discoverAddressbooks(account)</text></g><path d="M 662 456 L 662 430 L 962 430 L 962 456" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 662 456 L 662 724 L 962 724 L 962 456" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 662 456 L 962 456" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="12px"><text x="811.5" y="447.5">WebDavResource</text></g><path d="M 662 460 L 962 460" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-666-469-292-26-0)" font-size="12px"><text x="667.5" y="481.5">+ createInstance(uri, account, restype): WebDavResource</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-666-495-292-26-0)" font-size="12px"><text x="667.5" y="507.5">+ refreshProperties(): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-666-521-292-26-0)" font-size="12px"><text x="667.5" y="533.5">+ getAccount(): Account</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-666-547-292-26-0)" font-size="12px"><text x="667.5" y="559.5">+ getUri(): string</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-666-573-292-26-0)" font-size="12px"><text x="667.5" y="585.5">+ getUriPath(): string</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-666-599-292-26-0)" font-size="12px"><text x="667.5" y="611.5">+ getBasename(): string</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-666-625-292-26-0)" font-size="12px"><text x="667.5" y="637.5">+ getSyncToken(): ?string</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-666-651-292-26-0)" font-size="12px"><text x="667.5" y="663.5">+ downloadResource(uri): array</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-666-677-292-26-0)" font-size="12px"><text x="667.5" y="689.5">~ getClient(): CardDavClient</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-666-703-292-26-0)" font-size="12px"><text x="667.5" y="715.5"># getProperties(): array</text></g><path d="M 1232 456 L 1232 430 L 1502 430 L 1502 456" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 1232 456 L 1232 724 L 1502 724 L 1502 456" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 1232 456 L 1502 456" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="12px"><text x="1366.5" y="447.5">AddressbookCollection</text></g><path d="M 1232 460 L 1502 460" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1236-469-262-26-0)" font-size="12px"><text x="1237.5" y="481.5">+ getName(): string</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1236-495-262-26-0)" font-size="12px"><text x="1237.5" y="507.5">+ getDetails(): string</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1236-521-262-26-0)" font-size="12px"><text x="1237.5" y="533.5">+ supportsMultiGet(): bool</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1236-547-262-26-0)" font-size="12px"><text x="1237.5" y="559.5">+ getCTag(): ?string</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1236-573-262-26-0)" font-size="12px"><text x="1237.5" y="585.5">+ getCard(uri): array</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1236-599-262-26-0)" font-size="12px"><text x="1237.5" y="611.5">+ deleteCard(uri): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1236-625-262-26-0)" font-size="12px"><text x="1237.5" y="637.5">+ createCard(vcard): array</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1236-651-262-26-0)" font-size="12px"><text x="1237.5" y="663.5">+ updateCard(uri, vcard, etag): ?string</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1236-677-262-26-0)" font-size="12px"><text x="1237.5" y="689.5">+ query(conditions, props, matchAll, limit): array</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1236-703-262-26-0)" font-size="12px"><text x="1237.5" y="715.5"># validateCard(vcard): void</text></g><path d="M 992 520 L 992 494 L 1202 494 L 1202 520" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 992 520 L 992 634 L 1202 634 L 1202 520" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 992 520 L 1202 520" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="12px"><text x="1096.5" y="511.5">WebDavCollection</text></g><path d="M 992 524 L 1202 524" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-996-533-202-26-0)" font-size="12px"><text x="997.5" y="545.5">+ getChildren(): WebDavResource[]</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-996-559-202-26-0)" font-size="12px"><text x="997.5" y="571.5">+ getSyncToken(): ?string</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-996-585-202-26-0)" font-size="12px"><text x="997.5" y="597.5">+ supportsSyncCollection(): bool</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-996-611-202-26-0)" font-size="12px"><text x="997.5" y="623.5"># supportsReport(reportElem): bool</text></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
Back to Directory File Manager