diff --git a/UML Overview.mdj b/UML Overview.mdj index b28f4eb..71056ff 100644 --- a/UML Overview.mdj +++ b/UML Overview.mdj @@ -48,8 +48,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 2016, - "top": 2080, + "left": 1248, + "top": 1712, "height": 13 }, { @@ -59,8 +59,8 @@ "$ref": "AAAAAAGAkl3075yKOPM=" }, "font": "Arial;13;1", - "left": 1133, - "top": 1719, + "left": 749, + "top": 1535, "width": 95.38623046875, "height": 13, "text": "Display_Panel" @@ -73,8 +73,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 2016, - "top": 2080, + "left": 1248, + "top": 1712, "width": 191.43896484375, "height": 13, "text": "(from BrighterTrades Class View)" @@ -87,15 +87,15 @@ }, "visible": false, "font": "Arial;13;0", - "left": 2016, - "top": 2080, + "left": 1248, + "top": 1712, "height": 13, "horizontalAlignment": 1 } ], "font": "Arial;13;0", - "left": 1128, - "top": 1712, + "left": 744, + "top": 1528, "width": 105.38623046875, "height": 25, "stereotypeLabel": { @@ -121,8 +121,8 @@ "$ref": "AAAAAAGAkl307pyHK9I=" }, "font": "Arial;13;0", - "left": 1128, - "top": 1737, + "left": 744, + "top": 1553, "width": 105.38623046875, "height": 10 }, @@ -136,8 +136,8 @@ "$ref": "AAAAAAGAkl307pyHK9I=" }, "font": "Arial;13;0", - "left": 1128, - "top": 1747, + "left": 744, + "top": 1563, "width": 105.38623046875, "height": 10 }, @@ -152,8 +152,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1008, - "top": 1040, + "left": 624, + "top": 856, "width": 10, "height": 10 }, @@ -168,16 +168,16 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1008, - "top": 1040, + "left": 624, + "top": 856, "width": 10, "height": 10 } ], "font": "Arial;13;0", "containerChangeable": true, - "left": 1128, - "top": 1712, + "left": 744, + "top": 1528, "width": 105.38623046875, "height": 45, "nameCompartment": { @@ -224,8 +224,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1141.5146484375, - "top": 1712, + "left": 949.5146484375, + "top": 1456, "height": 13 }, { @@ -235,8 +235,8 @@ "$ref": "AAAAAAGAlKBwAZy/nuo=" }, "font": "Arial;13;1", - "left": 837, - "top": 1199, + "left": 741, + "top": 1071, "width": 88.51171875, "height": 13, "text": "Charts" @@ -249,8 +249,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1141.5146484375, - "top": 1712, + "left": 949.5146484375, + "top": 1456, "width": 191.43896484375, "height": 13, "text": "(from BrighterTrades Class View)" @@ -263,15 +263,15 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1141.5146484375, - "top": 1712, + "left": 949.5146484375, + "top": 1456, "height": 13, "horizontalAlignment": 1 } ], "font": "Arial;13;0", - "left": 832, - "top": 1192, + "left": 736, + "top": 1064, "width": 98.51171875, "height": 25, "stereotypeLabel": { @@ -307,8 +307,8 @@ "$ref": "AAAAAAGAlYY0lN+3EU4=" }, "font": "Arial;13;0", - "left": 837, - "top": 1222, + "left": 741, + "top": 1094, "width": 88.51171875, "height": 13, "text": "-charts: 1..3", @@ -316,8 +316,8 @@ } ], "font": "Arial;13;0", - "left": 832, - "top": 1217, + "left": 736, + "top": 1089, "width": 98.51171875, "height": 23 }, @@ -341,8 +341,8 @@ "$ref": "AAAAAAGAlad4atb8lI0=" }, "font": "Arial;13;0", - "left": 837, - "top": 1245, + "left": 741, + "top": 1117, "width": 88.51171875, "height": 13, "text": "+bind_charts()", @@ -358,8 +358,8 @@ "$ref": "AAAAAAGAlagyPeRQGOU=" }, "font": "Arial;13;0", - "left": 837, - "top": 1260, + "left": 741, + "top": 1132, "width": 88.51171875, "height": 13, "text": "+create_chart()", @@ -367,8 +367,8 @@ } ], "font": "Arial;13;0", - "left": 832, - "top": 1240, + "left": 736, + "top": 1112, "width": 98.51171875, "height": 38 }, @@ -383,8 +383,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 570.75732421875, - "top": 856, + "left": 474.75732421875, + "top": 728, "width": 10, "height": 10 }, @@ -399,16 +399,16 @@ }, "visible": false, "font": "Arial;13;0", - "left": 570.75732421875, - "top": 856, + "left": 474.75732421875, + "top": 728, "width": 10, "height": 10 } ], "font": "Arial;13;0", "containerChangeable": true, - "left": 832, - "top": 1192, + "left": 736, + "top": 1064, "width": 98.51171875, "height": 86, "nameCompartment": { @@ -455,8 +455,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 318.16015625, - "top": 1792, + "left": 286.16015625, + "top": 752, "height": 13 }, { @@ -466,8 +466,8 @@ "$ref": "AAAAAAGAlKJCvaOz1zM=" }, "font": "Arial;13;1", - "left": 557, - "top": 1239, + "left": 541, + "top": 719, "width": 127.1689453125, "height": 13, "text": "Chart" @@ -480,8 +480,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 318.16015625, - "top": 1792, + "left": 286.16015625, + "top": 752, "width": 191.43896484375, "height": 13, "text": "(from BrighterTrades Class View)" @@ -494,15 +494,15 @@ }, "visible": false, "font": "Arial;13;0", - "left": 318.16015625, - "top": 1792, + "left": 286.16015625, + "top": 752, "height": 13, "horizontalAlignment": 1 } ], "font": "Arial;13;0", - "left": 552, - "top": 1232, + "left": 536, + "top": 712, "width": 137.1689453125, "height": 25, "stereotypeLabel": { @@ -538,8 +538,8 @@ "$ref": "AAAAAAGAlYoy8CzCHeM=" }, "font": "Arial;13;0", - "left": 557, - "top": 1262, + "left": 541, + "top": 742, "width": 127.1689453125, "height": 13, "text": "-lines: line_series[0..*]", @@ -547,8 +547,8 @@ } ], "font": "Arial;13;0", - "left": 552, - "top": 1257, + "left": 536, + "top": 737, "width": 137.1689453125, "height": 23 }, @@ -562,8 +562,8 @@ "$ref": "AAAAAAGAlKJCvaOwqG4=" }, "font": "Arial;13;0", - "left": 552, - "top": 1280, + "left": 536, + "top": 760, "width": 137.1689453125, "height": 10 }, @@ -578,8 +578,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 159.080078125, - "top": 896, + "left": 143.080078125, + "top": 376, "width": 10, "height": 10 }, @@ -594,16 +594,16 @@ }, "visible": false, "font": "Arial;13;0", - "left": 159.080078125, - "top": 896, + "left": 143.080078125, + "top": 376, "width": 10, "height": 10 } ], "font": "Arial;13;0", "containerChangeable": true, - "left": 552, - "top": 1232, + "left": 536, + "top": 712, "width": 137.1689453125, "height": 73, "nameCompartment": { @@ -650,8 +650,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 2272, - "top": 1636, + "left": 2224, + "top": 1604, "height": 13 }, { @@ -661,8 +661,8 @@ "$ref": "AAAAAAGAlLRrLqxkRxs=" }, "font": "Arial;13;1", - "left": 1261, - "top": 1311, + "left": 1237, + "top": 1295, "width": 78.47265625, "height": 13, "text": "Header" @@ -675,8 +675,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 2272, - "top": 1636, + "left": 2224, + "top": 1604, "width": 191.43896484375, "height": 13, "text": "(from BrighterTrades Class View)" @@ -689,15 +689,15 @@ }, "visible": false, "font": "Arial;13;0", - "left": 2272, - "top": 1636, + "left": 2224, + "top": 1604, "height": 13, "horizontalAlignment": 1 } ], "font": "Arial;13;0", - "left": 1256, - "top": 1304, + "left": 1232, + "top": 1288, "width": 88.47265625, "height": 25, "stereotypeLabel": { @@ -733,8 +733,8 @@ "$ref": "AAAAAAGAlL0d+NEoRwU=" }, "font": "Arial;13;0", - "left": 1261, - "top": 1334, + "left": 1237, + "top": 1318, "width": 78.47265625, "height": 13, "text": "+title: string", @@ -742,8 +742,8 @@ } ], "font": "Arial;13;0", - "left": 1256, - "top": 1329, + "left": 1232, + "top": 1313, "width": 88.47265625, "height": 23 }, @@ -757,8 +757,8 @@ "$ref": "AAAAAAGAlLRrLaxh9W8=" }, "font": "Arial;13;0", - "left": 1256, - "top": 1352, + "left": 1232, + "top": 1336, "width": 88.47265625, "height": 10 }, @@ -773,8 +773,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1136, - "top": 818, + "left": 1112, + "top": 802, "width": 10, "height": 10 }, @@ -789,16 +789,16 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1136, - "top": 818, + "left": 1112, + "top": 802, "width": 10, "height": 10 } ], "font": "Arial;13;0", "containerChangeable": true, - "left": 1256, - "top": 1304, + "left": 1232, + "top": 1288, "width": 88.47265625, "height": 58, "nameCompartment": { @@ -1209,8 +1209,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1252, - "top": 1534, + "left": 1043, + "top": 1439, "height": 13, "alpha": 1.5707963267948966, "distance": 15, @@ -1230,8 +1230,8 @@ }, "visible": null, "font": "Arial;13;0", - "left": 1266, - "top": 1538, + "left": 1050, + "top": 1452, "height": 13, "alpha": 1.5707963267948966, "distance": 30, @@ -1251,8 +1251,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1223, - "top": 1525, + "left": 1030, + "top": 1412, "height": 13, "alpha": -1.5707963267948966, "distance": 15, @@ -1270,7 +1270,7 @@ "$ref": "AAAAAAGAlLRrLqxjK7Y=" }, "lineStyle": 1, - "points": "1290:1362;1187:1711", + "points": "1231:1337;843:1527", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGAlMBt0tj15vk=" @@ -1303,8 +1303,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1048, - "top": 1480, + "left": 804, + "top": 1331, "height": 13, "alpha": 1.5707963267948966, "distance": 15, @@ -1324,8 +1324,8 @@ }, "visible": null, "font": "Arial;13;0", - "left": 1061, - "top": 1472, + "left": 819, + "top": 1331, "height": 13, "alpha": 1.5707963267948966, "distance": 30, @@ -1345,8 +1345,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1023, - "top": 1495, + "left": 775, + "top": 1332, "height": 13, "alpha": -1.5707963267948966, "distance": 15, @@ -1364,7 +1364,7 @@ "$ref": "AAAAAAGAlKBwAZy+AvI=" }, "lineStyle": 1, - "points": "906:1278;1166:1711", + "points": "785:1150;795:1527", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGAlMDKUtwxyNM=" @@ -1404,8 +1404,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1152, - "top": 892, + "left": 1424, + "top": 108, "height": 13 }, { @@ -1415,8 +1415,8 @@ "$ref": "AAAAAAGAlMe6bOgA1Vs=" }, "font": "Arial;13;1", - "left": 669, - "top": 1111, + "left": 805, + "top": 719, "width": 126.4453125, "height": 13, "text": "Price_Chart" @@ -1429,8 +1429,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1152, - "top": 892, + "left": 1424, + "top": 108, "width": 191.43896484375, "height": 13, "text": "(from BrighterTrades Class View)" @@ -1443,15 +1443,15 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1152, - "top": 892, + "left": 1424, + "top": 108, "height": 13, "horizontalAlignment": 1 } ], "font": "Arial;13;0", - "left": 664, - "top": 1104, + "left": 800, + "top": 712, "width": 136.4453125, "height": 25, "stereotypeLabel": { @@ -1487,8 +1487,8 @@ "$ref": "AAAAAAGAlYu4Ij/IzVw=" }, "font": "Arial;13;0", - "left": 669, - "top": 1134, + "left": 805, + "top": 742, "width": 126.4453125, "height": 13, "text": "-candles: price_series", @@ -1504,8 +1504,8 @@ "$ref": "AAAAAAGAlY+kkW5Wfxg=" }, "font": "Arial;13;0", - "left": 669, - "top": 1149, + "left": 805, + "top": 757, "width": 126.4453125, "height": 13, "text": "-volume: histogram", @@ -1513,8 +1513,8 @@ } ], "font": "Arial;13;0", - "left": 664, - "top": 1129, + "left": 800, + "top": 737, "width": 136.4453125, "height": 38 }, @@ -1528,8 +1528,8 @@ "$ref": "AAAAAAGAlMe6a+f9UYg=" }, "font": "Arial;13;0", - "left": 664, - "top": 1167, + "left": 800, + "top": 775, "width": 136.4453125, "height": 10 }, @@ -1544,8 +1544,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 576, - "top": 446, + "left": 712, + "top": 54, "width": 10, "height": 10 }, @@ -1560,16 +1560,16 @@ }, "visible": false, "font": "Arial;13;0", - "left": 576, - "top": 446, + "left": 712, + "top": 54, "width": 10, "height": 10 } ], "font": "Arial;13;0", "containerChangeable": true, - "left": 664, - "top": 1104, + "left": 800, + "top": 712, "width": 136.4453125, "height": 73, "nameCompartment": { @@ -1609,8 +1609,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 686, - "top": 1207, + "left": 735, + "top": 757, "height": 13, "alpha": 1.5707963267948966, "distance": 15, @@ -1630,8 +1630,8 @@ }, "visible": null, "font": "Arial;13;0", - "left": 697, - "top": 1217, + "left": 735, + "top": 772, "height": 13, "alpha": 1.5707963267948966, "distance": 30, @@ -1651,8 +1651,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 663, - "top": 1188, + "left": 736, + "top": 727, "height": 13, "alpha": -1.5707963267948966, "distance": 15, @@ -1670,7 +1670,7 @@ "$ref": "AAAAAAGAlMe6bOf/4IA=" }, "lineStyle": 1, - "points": "699:1177;652:1231", + "points": "799:748;673:748", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGAlMe6u+hHqc0=" @@ -1682,276 +1682,6 @@ "$ref": "AAAAAAGAlMe6u+hJPI4=" } }, - { - "_type": "UMLClassView", - "_id": "AAAAAAGAlMgRM+mvaWs=", - "_parent": { - "$ref": "AAAAAAFF+qBtyKM79qY=" - }, - "model": { - "$ref": "AAAAAAGAlMgRM+mty4M=" - }, - "subViews": [ - { - "_type": "UMLNameCompartmentView", - "_id": "AAAAAAGAlMgRM+mweN0=", - "_parent": { - "$ref": "AAAAAAGAlMgRM+mvaWs=" - }, - "model": { - "$ref": "AAAAAAGAlMgRM+mty4M=" - }, - "subViews": [ - { - "_type": "LabelView", - "_id": "AAAAAAGAlMgRM+mxAdI=", - "_parent": { - "$ref": "AAAAAAGAlMgRM+mweN0=" - }, - "visible": false, - "font": "Arial;13;0", - "left": 1136, - "top": 1532, - "height": 13 - }, - { - "_type": "LabelView", - "_id": "AAAAAAGAlMgRM+myc+8=", - "_parent": { - "$ref": "AAAAAAGAlMgRM+mweN0=" - }, - "font": "Arial;13;1", - "left": 661, - "top": 1431, - "width": 65.72998046875, - "height": 13, - "text": "Sub_Chart" - }, - { - "_type": "LabelView", - "_id": "AAAAAAGAlMgRM+mzgGE=", - "_parent": { - "$ref": "AAAAAAGAlMgRM+mweN0=" - }, - "visible": false, - "font": "Arial;13;0", - "left": 1136, - "top": 1532, - "width": 191.43896484375, - "height": 13, - "text": "(from BrighterTrades Class View)" - }, - { - "_type": "LabelView", - "_id": "AAAAAAGAlMgRM+m0QR0=", - "_parent": { - "$ref": "AAAAAAGAlMgRM+mweN0=" - }, - "visible": false, - "font": "Arial;13;0", - "left": 1136, - "top": 1532, - "height": 13, - "horizontalAlignment": 1 - } - ], - "font": "Arial;13;0", - "left": 656, - "top": 1424, - "width": 75.72998046875, - "height": 25, - "stereotypeLabel": { - "$ref": "AAAAAAGAlMgRM+mxAdI=" - }, - "nameLabel": { - "$ref": "AAAAAAGAlMgRM+myc+8=" - }, - "namespaceLabel": { - "$ref": "AAAAAAGAlMgRM+mzgGE=" - }, - "propertyLabel": { - "$ref": "AAAAAAGAlMgRM+m0QR0=" - } - }, - { - "_type": "UMLAttributeCompartmentView", - "_id": "AAAAAAGAlMgRM+m1odQ=", - "_parent": { - "$ref": "AAAAAAGAlMgRM+mvaWs=" - }, - "model": { - "$ref": "AAAAAAGAlMgRM+mty4M=" - }, - "font": "Arial;13;0", - "left": 656, - "top": 1449, - "width": 75.72998046875, - "height": 10 - }, - { - "_type": "UMLOperationCompartmentView", - "_id": "AAAAAAGAlMgRM+m2qT4=", - "_parent": { - "$ref": "AAAAAAGAlMgRM+mvaWs=" - }, - "model": { - "$ref": "AAAAAAGAlMgRM+mty4M=" - }, - "font": "Arial;13;0", - "left": 656, - "top": 1459, - "width": 75.72998046875, - "height": 10 - }, - { - "_type": "UMLReceptionCompartmentView", - "_id": "AAAAAAGAlMgRM+m30Gg=", - "_parent": { - "$ref": "AAAAAAGAlMgRM+mvaWs=" - }, - "model": { - "$ref": "AAAAAAGAlMgRM+mty4M=" - }, - "visible": false, - "font": "Arial;13;0", - "left": 568, - "top": 766, - "width": 10, - "height": 10 - }, - { - "_type": "UMLTemplateParameterCompartmentView", - "_id": "AAAAAAGAlMgRNOm4hOI=", - "_parent": { - "$ref": "AAAAAAGAlMgRM+mvaWs=" - }, - "model": { - "$ref": "AAAAAAGAlMgRM+mty4M=" - }, - "visible": false, - "font": "Arial;13;0", - "left": 568, - "top": 766, - "width": 10, - "height": 10 - } - ], - "font": "Arial;13;0", - "containerChangeable": true, - "left": 656, - "top": 1424, - "width": 75.72998046875, - "height": 45, - "nameCompartment": { - "$ref": "AAAAAAGAlMgRM+mweN0=" - }, - "attributeCompartment": { - "$ref": "AAAAAAGAlMgRM+m1odQ=" - }, - "operationCompartment": { - "$ref": "AAAAAAGAlMgRM+m2qT4=" - }, - "receptionCompartment": { - "$ref": "AAAAAAGAlMgRM+m30Gg=" - }, - "templateParameterCompartment": { - "$ref": "AAAAAAGAlMgRNOm4hOI=" - } - }, - { - "_type": "UMLGeneralizationView", - "_id": "AAAAAAGAlMgRf+n28IE=", - "_parent": { - "$ref": "AAAAAAFF+qBtyKM79qY=" - }, - "model": { - "$ref": "AAAAAAGAlMgRf+n02Wc=" - }, - "subViews": [ - { - "_type": "EdgeLabelView", - "_id": "AAAAAAGAlMgRf+n3bpw=", - "_parent": { - "$ref": "AAAAAAGAlMgRf+n28IE=" - }, - "model": { - "$ref": "AAAAAAGAlMgRf+n02Wc=" - }, - "visible": false, - "font": "Arial;13;0", - "left": 645, - "top": 1363, - "height": 13, - "alpha": 1.5707963267948966, - "distance": 15, - "hostEdge": { - "$ref": "AAAAAAGAlMgRf+n28IE=" - }, - "edgePosition": 1 - }, - { - "_type": "EdgeLabelView", - "_id": "AAAAAAGAlMgRf+n4/ZI=", - "_parent": { - "$ref": "AAAAAAGAlMgRf+n28IE=" - }, - "model": { - "$ref": "AAAAAAGAlMgRf+n02Wc=" - }, - "visible": null, - "font": "Arial;13;0", - "left": 631, - "top": 1369, - "height": 13, - "alpha": 1.5707963267948966, - "distance": 30, - "hostEdge": { - "$ref": "AAAAAAGAlMgRf+n28IE=" - }, - "edgePosition": 1 - }, - { - "_type": "EdgeLabelView", - "_id": "AAAAAAGAlMgRf+n516w=", - "_parent": { - "$ref": "AAAAAAGAlMgRf+n28IE=" - }, - "model": { - "$ref": "AAAAAAGAlMgRf+n02Wc=" - }, - "visible": false, - "font": "Arial;13;0", - "left": 672, - "top": 1352, - "height": 13, - "alpha": -1.5707963267948966, - "distance": 15, - "hostEdge": { - "$ref": "AAAAAAGAlMgRf+n28IE=" - }, - "edgePosition": 1 - } - ], - "font": "Arial;13;0", - "head": { - "$ref": "AAAAAAGAlKJCvaOyt2Y=" - }, - "tail": { - "$ref": "AAAAAAGAlMgRM+mvaWs=" - }, - "lineStyle": 1, - "points": "684:1423;635:1305", - "showVisibility": true, - "nameLabel": { - "$ref": "AAAAAAGAlMgRf+n3bpw=" - }, - "stereotypeLabel": { - "$ref": "AAAAAAGAlMgRf+n4/ZI=" - }, - "propertyLabel": { - "$ref": "AAAAAAGAlMgRf+n516w=" - } - }, { "_type": "UMLClassView", "_id": "AAAAAAGAlOF3iKq5ed8=", @@ -1980,8 +1710,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1168, - "top": 1036, + "left": 544, + "top": 556, "height": 13 }, { @@ -1991,8 +1721,8 @@ "$ref": "AAAAAAGAlOF3iKq6aGk=" }, "font": "Arial;13;1", - "left": 845, - "top": 1319, + "left": 533, + "top": 1079, "width": 80.57080078125, "height": 13, "text": "RSI_Chart" @@ -2005,8 +1735,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1168, - "top": 1036, + "left": 544, + "top": 556, "width": 191.43896484375, "height": 13, "text": "(from BrighterTrades Class View)" @@ -2019,15 +1749,15 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1168, - "top": 1036, + "left": 544, + "top": 556, "height": 13, "horizontalAlignment": 1 } ], "font": "Arial;13;0", - "left": 840, - "top": 1312, + "left": 528, + "top": 1072, "width": 90.57080078125, "height": 25, "stereotypeLabel": { @@ -2053,8 +1783,8 @@ "$ref": "AAAAAAGAlOF3iKq3uas=" }, "font": "Arial;13;0", - "left": 840, - "top": 1337, + "left": 528, + "top": 1097, "width": 90.57080078125, "height": 10 }, @@ -2078,8 +1808,8 @@ "$ref": "AAAAAAGAlaHW+yzOEf4=" }, "font": "Arial;13;0", - "left": 845, - "top": 1352, + "left": 533, + "top": 1112, "width": 80.57080078125, "height": 13, "text": "+RSI_lines()", @@ -2087,8 +1817,8 @@ } ], "font": "Arial;13;0", - "left": 840, - "top": 1347, + "left": 528, + "top": 1107, "width": 90.57080078125, "height": 23 }, @@ -2103,8 +1833,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 584, - "top": 518, + "left": 272, + "top": 278, "width": 10, "height": 10 }, @@ -2119,16 +1849,16 @@ }, "visible": false, "font": "Arial;13;0", - "left": 584, - "top": 518, + "left": 272, + "top": 278, "width": 10, "height": 10 } ], "font": "Arial;13;0", "containerChangeable": true, - "left": 840, - "top": 1312, + "left": 528, + "top": 1072, "width": 90.57080078125, "height": 58, "nameCompartment": { @@ -2147,100 +1877,6 @@ "$ref": "AAAAAAGAlOF3iKrC6Qs=" } }, - { - "_type": "UMLGeneralizationView", - "_id": "AAAAAAGAlOF33asezQI=", - "_parent": { - "$ref": "AAAAAAFF+qBtyKM79qY=" - }, - "model": { - "$ref": "AAAAAAGAlOF33ascf20=" - }, - "subViews": [ - { - "_type": "EdgeLabelView", - "_id": "AAAAAAGAlOF33asf8Bw=", - "_parent": { - "$ref": "AAAAAAGAlOF33asezQI=" - }, - "model": { - "$ref": "AAAAAAGAlOF33ascf20=" - }, - "visible": false, - "font": "Arial;13;0", - "left": 792, - "top": 1402, - "height": 13, - "alpha": 1.5707963267948966, - "distance": 15, - "hostEdge": { - "$ref": "AAAAAAGAlOF33asezQI=" - }, - "edgePosition": 1 - }, - { - "_type": "EdgeLabelView", - "_id": "AAAAAAGAlOF33asg4sw=", - "_parent": { - "$ref": "AAAAAAGAlOF33asezQI=" - }, - "model": { - "$ref": "AAAAAAGAlOF33ascf20=" - }, - "visible": null, - "font": "Arial;13;0", - "left": 799, - "top": 1415, - "height": 13, - "alpha": 1.5707963267948966, - "distance": 30, - "hostEdge": { - "$ref": "AAAAAAGAlOF33asezQI=" - }, - "edgePosition": 1 - }, - { - "_type": "EdgeLabelView", - "_id": "AAAAAAGAlOF33ashP+4=", - "_parent": { - "$ref": "AAAAAAGAlOF33asezQI=" - }, - "model": { - "$ref": "AAAAAAGAlOF33ascf20=" - }, - "visible": false, - "font": "Arial;13;0", - "left": 777, - "top": 1375, - "height": 13, - "alpha": -1.5707963267948966, - "distance": 15, - "hostEdge": { - "$ref": "AAAAAAGAlOF33asezQI=" - }, - "edgePosition": 1 - } - ], - "font": "Arial;13;0", - "head": { - "$ref": "AAAAAAGAlMgRM+mvaWs=" - }, - "tail": { - "$ref": "AAAAAAGAlOF3iKq5ed8=" - }, - "lineStyle": 1, - "points": "839:1365;732:1425", - "showVisibility": true, - "nameLabel": { - "$ref": "AAAAAAGAlOF33asf8Bw=" - }, - "stereotypeLabel": { - "$ref": "AAAAAAGAlOF33asg4sw=" - }, - "propertyLabel": { - "$ref": "AAAAAAGAlOF33ashP+4=" - } - }, { "_type": "UMLClassView", "_id": "AAAAAAGAlOG1qKyk1j0=", @@ -2269,8 +1905,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 896, - "top": 956, + "left": 720, + "top": 300, "height": 13 }, { @@ -2280,8 +1916,8 @@ "$ref": "AAAAAAGAlOG1qKylWAA=" }, "font": "Arial;13;1", - "left": 709, - "top": 1279, + "left": 621, + "top": 951, "width": 88.86083984375, "height": 13, "text": "MACD_Chart" @@ -2294,8 +1930,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 896, - "top": 956, + "left": 720, + "top": 300, "width": 191.43896484375, "height": 13, "text": "(from BrighterTrades Class View)" @@ -2308,15 +1944,15 @@ }, "visible": false, "font": "Arial;13;0", - "left": 896, - "top": 956, + "left": 720, + "top": 300, "height": 13, "horizontalAlignment": 1 } ], "font": "Arial;13;0", - "left": 704, - "top": 1272, + "left": 616, + "top": 944, "width": 98.86083984375, "height": 25, "stereotypeLabel": { @@ -2352,8 +1988,8 @@ "$ref": "AAAAAAGAlZA+L3VTvPw=" }, "font": "Arial;13;0", - "left": 709, - "top": 1302, + "left": 621, + "top": 974, "width": 88.86083984375, "height": 13, "text": "-hist: histogram", @@ -2361,8 +1997,8 @@ } ], "font": "Arial;13;0", - "left": 704, - "top": 1297, + "left": 616, + "top": 969, "width": 98.86083984375, "height": 23 }, @@ -2376,8 +2012,8 @@ "$ref": "AAAAAAGAlOG1qKyiRQY=" }, "font": "Arial;13;0", - "left": 704, - "top": 1320, + "left": 616, + "top": 992, "width": 98.86083984375, "height": 10 }, @@ -2392,8 +2028,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 448, - "top": 478, + "left": 360, + "top": 150, "width": 10, "height": 10 }, @@ -2408,16 +2044,16 @@ }, "visible": false, "font": "Arial;13;0", - "left": 448, - "top": 478, + "left": 360, + "top": 150, "width": 10, "height": 10 } ], "font": "Arial;13;0", "containerChangeable": true, - "left": 704, - "top": 1272, + "left": 616, + "top": 944, "width": 98.86083984375, "height": 58, "nameCompartment": { @@ -2436,100 +2072,6 @@ "$ref": "AAAAAAGAlOG1qKytrsM=" } }, - { - "_type": "UMLGeneralizationView", - "_id": "AAAAAAGAlOG2CK0JgG8=", - "_parent": { - "$ref": "AAAAAAFF+qBtyKM79qY=" - }, - "model": { - "$ref": "AAAAAAGAlOG2B60HNBw=" - }, - "subViews": [ - { - "_type": "EdgeLabelView", - "_id": "AAAAAAGAlOG2CK0K3Gs=", - "_parent": { - "$ref": "AAAAAAGAlOG2CK0JgG8=" - }, - "model": { - "$ref": "AAAAAAGAlOG2B60HNBw=" - }, - "visible": false, - "font": "Arial;13;0", - "left": 734, - "top": 1375, - "height": 13, - "alpha": 1.5707963267948966, - "distance": 15, - "hostEdge": { - "$ref": "AAAAAAGAlOG2CK0JgG8=" - }, - "edgePosition": 1 - }, - { - "_type": "EdgeLabelView", - "_id": "AAAAAAGAlOG2CK0Lauw=", - "_parent": { - "$ref": "AAAAAAGAlOG2CK0JgG8=" - }, - "model": { - "$ref": "AAAAAAGAlOG2B60HNBw=" - }, - "visible": null, - "font": "Arial;13;0", - "left": 748, - "top": 1381, - "height": 13, - "alpha": 1.5707963267948966, - "distance": 30, - "hostEdge": { - "$ref": "AAAAAAGAlOG2CK0JgG8=" - }, - "edgePosition": 1 - }, - { - "_type": "EdgeLabelView", - "_id": "AAAAAAGAlOG2CK0MsxI=", - "_parent": { - "$ref": "AAAAAAGAlOG2CK0JgG8=" - }, - "model": { - "$ref": "AAAAAAGAlOG2B60HNBw=" - }, - "visible": false, - "font": "Arial;13;0", - "left": 707, - "top": 1364, - "height": 13, - "alpha": -1.5707963267948966, - "distance": 15, - "hostEdge": { - "$ref": "AAAAAAGAlOG2CK0JgG8=" - }, - "edgePosition": 1 - } - ], - "font": "Arial;13;0", - "head": { - "$ref": "AAAAAAGAlMgRM+mvaWs=" - }, - "tail": { - "$ref": "AAAAAAGAlOG1qKyk1j0=" - }, - "lineStyle": 1, - "points": "740:1330;702:1423", - "showVisibility": true, - "nameLabel": { - "$ref": "AAAAAAGAlOG2CK0K3Gs=" - }, - "stereotypeLabel": { - "$ref": "AAAAAAGAlOG2CK0Lauw=" - }, - "propertyLabel": { - "$ref": "AAAAAAGAlOG2CK0MsxI=" - } - }, { "_type": "UMLAssociationView", "_id": "AAAAAAGAlOJxWLVK1Fs=", @@ -2551,8 +2093,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 824, - "top": 1273, + "left": 706, + "top": 1036, "height": 13, "alpha": 1.5707963267948966, "distance": 15, @@ -2572,8 +2114,8 @@ }, "visible": null, "font": "Arial;13;0", - "left": 831, - "top": 1286, + "left": 695, + "top": 1046, "height": 13, "alpha": 1.5707963267948966, "distance": 30, @@ -2593,8 +2135,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 809, - "top": 1246, + "left": 729, + "top": 1015, "height": 13, "alpha": -1.5707963267948966, "distance": 15, @@ -2614,8 +2156,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 815, - "top": 1278, + "left": 716, + "top": 1047, "height": 13, "alpha": 0.5235987755982988, "distance": 30, @@ -2635,8 +2177,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 819, - "top": 1291, + "left": 705, + "top": 1054, "height": 13, "alpha": 0.7853981633974483, "distance": 40, @@ -2655,8 +2197,8 @@ "$ref": "AAAAAAGAlOJxWLVH07M=" }, "font": "Arial;13;0", - "left": 803, - "top": 1252, + "left": 737, + "top": 1032, "width": 7.22998046875, "height": 13, "alpha": -0.5235987755982988, @@ -2678,8 +2220,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 832, - "top": 1268, + "left": 696, + "top": 1025, "height": 13, "alpha": -0.5235987755982988, "distance": 30, @@ -2698,8 +2240,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 841, - "top": 1279, + "left": 688, + "top": 1035, "height": 13, "alpha": -0.7853981633974483, "distance": 40, @@ -2717,8 +2259,8 @@ "$ref": "AAAAAAGAlOJxWLVILrM=" }, "font": "Arial;13;0", - "left": 813, - "top": 1246, + "left": 711, + "top": 1003, "width": 7.22998046875, "height": 13, "alpha": 0.5235987755982988, @@ -2740,7 +2282,7 @@ "visible": false, "font": "Arial;13;0", "left": 336, - "top": 480, + "top": 200, "width": 10, "height": 10 }, @@ -2756,7 +2298,7 @@ "visible": false, "font": "Arial;13;0", "left": 336, - "top": 480, + "top": 200, "width": 10, "height": 10 } @@ -2769,7 +2311,7 @@ "$ref": "AAAAAAGAlKBwAZy+AvI=" }, "lineStyle": 1, - "points": "831:1259;803:1274", + "points": "745:1063;691:1002", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGAlOJxWLVLiQc=" @@ -2827,8 +2369,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 896, - "top": 1287, + "left": 676, + "top": 1111, "height": 13, "alpha": 1.5707963267948966, "distance": 15, @@ -2848,8 +2390,8 @@ }, "visible": null, "font": "Arial;13;0", - "left": 911, - "top": 1286, + "left": 675, + "top": 1126, "height": 13, "alpha": 1.5707963267948966, "distance": 30, @@ -2869,8 +2411,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 867, - "top": 1288, + "left": 677, + "top": 1082, "height": 13, "alpha": -1.5707963267948966, "distance": 15, @@ -2890,8 +2432,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 897, - "top": 1297, + "left": 708, + "top": 1113, "height": 13, "alpha": 0.5235987755982988, "distance": 30, @@ -2911,8 +2453,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 911, - "top": 1299, + "left": 705, + "top": 1126, "height": 13, "alpha": 0.7853981633974483, "distance": 40, @@ -2931,8 +2473,8 @@ "$ref": "AAAAAAGAlOP4tbtzuOo=" }, "font": "Arial;13;0", - "left": 867, - "top": 1294, + "left": 710, + "top": 1085, "width": 7.22998046875, "height": 13, "alpha": -0.5235987755982988, @@ -2954,8 +2496,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 897, - "top": 1278, + "left": 644, + "top": 1110, "height": 13, "alpha": -0.5235987755982988, "distance": 30, @@ -2974,8 +2516,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 910, - "top": 1275, + "left": 646, + "top": 1124, "height": 13, "alpha": -0.7853981633974483, "distance": 40, @@ -2993,8 +2535,8 @@ "$ref": "AAAAAAGAlOP4tbt0Vwg=" }, "font": "Arial;13;0", - "left": 866, - "top": 1283, + "left": 638, + "top": 1083, "width": 7.22998046875, "height": 13, "alpha": 0.5235987755982988, @@ -3016,7 +2558,7 @@ "visible": false, "font": "Arial;13;0", "left": 336, - "top": 480, + "top": 200, "width": 10, "height": 10 }, @@ -3032,7 +2574,7 @@ "visible": false, "font": "Arial;13;0", "left": 336, - "top": 480, + "top": 200, "width": 10, "height": 10 } @@ -3045,7 +2587,7 @@ "$ref": "AAAAAAGAlKBwAZy+AvI=" }, "lineStyle": 1, - "points": "882:1278;883:1311", + "points": "735:1105;619:1101", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGAlOP4tbt35X0=" @@ -3110,8 +2652,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 2164.58203125, - "top": 1760, + "left": 2308.58203125, + "top": 2048, "height": 13 }, { @@ -3121,8 +2663,8 @@ "$ref": "AAAAAAGAlOVtD89Q2SE=" }, "font": "Arial;13;1", - "left": 1861, - "top": 1415, + "left": 1933, + "top": 1559, "width": 54.18994140625, "height": 13, "text": "Interface" @@ -3135,8 +2677,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 2164.58203125, - "top": 1760, + "left": 2308.58203125, + "top": 2048, "width": 191.43896484375, "height": 13, "text": "(from BrighterTrades Class View)" @@ -3149,15 +2691,15 @@ }, "visible": false, "font": "Arial;13;0", - "left": 2164.58203125, - "top": 1760, + "left": 2308.58203125, + "top": 2048, "height": 13, "horizontalAlignment": 1 } ], "font": "Arial;13;0", - "left": 1856, - "top": 1408, + "left": 1928, + "top": 1552, "width": 64.18994140625, "height": 25, "stereotypeLabel": { @@ -3183,8 +2725,8 @@ "$ref": "AAAAAAGAlOVtD89NZPg=" }, "font": "Arial;13;0", - "left": 1856, - "top": 1433, + "left": 1928, + "top": 1577, "width": 64.18994140625, "height": 10 }, @@ -3198,8 +2740,8 @@ "$ref": "AAAAAAGAlOVtD89NZPg=" }, "font": "Arial;13;0", - "left": 1856, - "top": 1443, + "left": 1928, + "top": 1587, "width": 64.18994140625, "height": 10 }, @@ -3214,8 +2756,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1082.291015625, - "top": 880, + "left": 1154.291015625, + "top": 1024, "width": 10, "height": 10 }, @@ -3230,16 +2772,16 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1082.291015625, - "top": 880, + "left": 1154.291015625, + "top": 1024, "width": 10, "height": 10 } ], "font": "Arial;13;0", "containerChangeable": true, - "left": 1856, - "top": 1408, + "left": 1928, + "top": 1552, "width": 64.18994140625, "height": 45, "nameCompartment": { @@ -3279,8 +2821,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 801, - "top": 1196, + "left": 811, + "top": 914, "height": 13, "alpha": 1.5707963267948966, "distance": 15, @@ -3300,8 +2842,8 @@ }, "visible": null, "font": "Arial;13;0", - "left": 793, - "top": 1209, + "left": 796, + "top": 911, "height": 13, "alpha": 1.5707963267948966, "distance": 30, @@ -3321,8 +2863,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 818, - "top": 1171, + "left": 840, + "top": 921, "height": 13, "alpha": -1.5707963267948966, "distance": 15, @@ -3342,8 +2884,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 801, - "top": 1195, + "left": 785, + "top": 1028, "height": 13, "alpha": 0.5235987755982988, "distance": 30, @@ -3363,8 +2905,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 791, - "top": 1205, + "left": 772, + "top": 1023, "height": 13, "alpha": 0.7853981633974483, "distance": 40, @@ -3383,8 +2925,8 @@ "$ref": "AAAAAAGAlQqkENzcXKQ=" }, "font": "Arial;13;0", - "left": 816, - "top": 1174, + "left": 808, + "top": 1038, "width": 7.22998046875, "height": 13, "alpha": -0.5235987755982988, @@ -3406,8 +2948,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 803, - "top": 1197, + "left": 837, + "top": 800, "height": 13, "alpha": -0.5235987755982988, "distance": 30, @@ -3426,8 +2968,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 798, - "top": 1210, + "left": 824, + "top": 800, "height": 13, "alpha": -0.7853981633974483, "distance": 40, @@ -3445,8 +2987,8 @@ "$ref": "AAAAAAGAlQqkENzdqVw=" }, "font": "Arial;13;0", - "left": 811, - "top": 1172, + "left": 862, + "top": 802, "width": 7.22998046875, "height": 13, "alpha": 0.5235987755982988, @@ -3468,7 +3010,7 @@ "visible": false, "font": "Arial;13;0", "left": 336, - "top": 480, + "top": 200, "width": 10, "height": 10 }, @@ -3484,7 +3026,7 @@ "visible": false, "font": "Arial;13;0", "left": 336, - "top": 480, + "top": 200, "width": 10, "height": 10 } @@ -3497,7 +3039,7 @@ "$ref": "AAAAAAGAlKBwAZy+AvI=" }, "lineStyle": 1, - "points": "831:1203;790:1177", + "points": "794:1063;858:785", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGAlQqkENzg3ZU=" @@ -3555,8 +3097,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1549, - "top": 1584, + "left": 1387, + "top": 1570, "height": 13, "alpha": 1.5707963267948966, "distance": 15, @@ -3576,8 +3118,8 @@ }, "visible": null, "font": "Arial;13;0", - "left": 1555, - "top": 1598, + "left": 1387, + "top": 1585, "height": 13, "alpha": 1.5707963267948966, "distance": 30, @@ -3597,8 +3139,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1538, - "top": 1557, + "left": 1388, + "top": 1541, "height": 13, "alpha": -1.5707963267948966, "distance": 15, @@ -3616,7 +3158,7 @@ "$ref": "AAAAAAGAlOVtD89PdYQ=" }, "lineStyle": 1, - "points": "1855:1444;1233:1711", + "points": "1927:1573;849:1551", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGAlQzlP/cwS1Y=" @@ -3649,8 +3191,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1803, - "top": 1319, + "left": 1840, + "top": 1392, "height": 13, "alpha": 1.5707963267948966, "distance": 15, @@ -3670,8 +3212,8 @@ }, "visible": null, "font": "Arial;13;0", - "left": 1814, - "top": 1308, + "left": 1852, + "top": 1383, "height": 13, "alpha": 1.5707963267948966, "distance": 30, @@ -3691,8 +3233,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1782, - "top": 1340, + "left": 1817, + "top": 1411, "height": 13, "alpha": -1.5707963267948966, "distance": 15, @@ -3710,7 +3252,7 @@ "$ref": "AAAAAAGAlLtBdcDltiY=" }, "lineStyle": 1, - "points": "1723:1266;1864:1407", + "points": "1717:1266;1941:1551", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGAlQ0ahvqh2lU=" @@ -3919,8 +3461,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1287, - "top": 1571, + "left": 1099, + "top": 1483, "height": 13, "alpha": 1.5707963267948966, "distance": 15, @@ -3940,8 +3482,8 @@ }, "visible": null, "font": "Arial;13;0", - "left": 1300, - "top": 1578, + "left": 1103, + "top": 1498, "height": 13, "alpha": 1.5707963267948966, "distance": 30, @@ -3961,8 +3503,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1260, - "top": 1556, + "left": 1092, + "top": 1454, "height": 13, "alpha": -1.5707963267948966, "distance": 15, @@ -3980,7 +3522,7 @@ "$ref": "AAAAAAGAlRBEJjLv+uI=" }, "lineStyle": 1, - "points": "1356:1429;1193:1711", + "points": "1343:1413;849:1537", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGAlRB+cjfj3CE=" @@ -4189,8 +3731,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1321, - "top": 1619, + "left": 1121, + "top": 1529, "height": 13, "alpha": 1.5707963267948966, "distance": 15, @@ -4210,8 +3752,8 @@ }, "visible": null, "font": "Arial;13;0", - "left": 1331, - "top": 1630, + "left": 1122, + "top": 1544, "height": 13, "alpha": 1.5707963267948966, "distance": 30, @@ -4231,8 +3773,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1300, - "top": 1596, + "left": 1118, + "top": 1500, "height": 13, "alpha": -1.5707963267948966, "distance": 15, @@ -4250,7 +3792,7 @@ "$ref": "AAAAAAGAlRGzZE5UCxw=" }, "lineStyle": 1, - "points": "1417:1517;1205:1711", + "points": "1391:1498;849:1545", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGAlRH94FB3tFk=" @@ -4290,7 +3832,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1056, + "left": 1120, "top": 1376, "height": 13 }, @@ -4301,7 +3843,7 @@ "$ref": "AAAAAAGAlRJADlhsZDY=" }, "font": "Arial;13;1", - "left": 1509, + "left": 1541, "top": 1383, "width": 125.353515625, "height": 13, @@ -4315,7 +3857,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1056, + "left": 1120, "top": 1376, "width": 191.43896484375, "height": 13, @@ -4329,14 +3871,14 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1056, + "left": 1120, "top": 1376, "height": 13, "horizontalAlignment": 1 } ], "font": "Arial;13;0", - "left": 1504, + "left": 1536, "top": 1376, "width": 135.353515625, "height": 25, @@ -4363,7 +3905,7 @@ "$ref": "AAAAAAGAlRJADlhpY4s=" }, "font": "Arial;13;0", - "left": 1504, + "left": 1536, "top": 1401, "width": 135.353515625, "height": 10 @@ -4388,7 +3930,7 @@ "$ref": "AAAAAAGAlaz/P2ckb8w=" }, "font": "Arial;13;0", - "left": 1509, + "left": 1541, "top": 1416, "width": 125.353515625, "height": 13, @@ -4405,7 +3947,7 @@ "$ref": "AAAAAAGAla2Nt3wQUmo=" }, "font": "Arial;13;0", - "left": 1509, + "left": 1541, "top": 1431, "width": 125.353515625, "height": 13, @@ -4422,7 +3964,7 @@ "$ref": "AAAAAAGAla3S1IueRjU=" }, "font": "Arial;13;0", - "left": 1509, + "left": 1541, "top": 1446, "width": 125.353515625, "height": 13, @@ -4439,7 +3981,7 @@ "$ref": "AAAAAAGAlcBTsKIft6E=" }, "font": "Arial;13;0", - "left": 1509, + "left": 1541, "top": 1461, "width": 125.353515625, "height": 13, @@ -4456,7 +3998,7 @@ "$ref": "AAAAAAGAlcCHsa7OUgE=" }, "font": "Arial;13;0", - "left": 1509, + "left": 1541, "top": 1476, "width": 125.353515625, "height": 13, @@ -4473,7 +4015,7 @@ "$ref": "AAAAAAGAlcC9Qb26gpQ=" }, "font": "Arial;13;0", - "left": 1509, + "left": 1541, "top": 1491, "width": 125.353515625, "height": 13, @@ -4490,7 +4032,7 @@ "$ref": "AAAAAAGAlcKMw/g1OQc=" }, "font": "Arial;13;0", - "left": 1509, + "left": 1541, "top": 1506, "width": 125.353515625, "height": 13, @@ -4499,7 +4041,7 @@ } ], "font": "Arial;13;0", - "left": 1504, + "left": 1536, "top": 1411, "width": 135.353515625, "height": 113 @@ -4515,7 +4057,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 528, + "left": 560, "top": 688, "width": 10, "height": 10 @@ -4531,7 +4073,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 528, + "left": 560, "top": 688, "width": 10, "height": 10 @@ -4539,7 +4081,7 @@ ], "font": "Arial;13;0", "containerChangeable": true, - "left": 1504, + "left": 1536, "top": 1376, "width": 135.353515625, "height": 148, @@ -4580,8 +4122,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1746, - "top": 1417, + "left": 1803, + "top": 1497, "height": 13, "alpha": 1.5707963267948966, "distance": 15, @@ -4601,8 +4143,8 @@ }, "visible": null, "font": "Arial;13;0", - "left": 1745, - "top": 1402, + "left": 1808, + "top": 1483, "height": 13, "alpha": 1.5707963267948966, "distance": 30, @@ -4622,8 +4164,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1747, - "top": 1446, + "left": 1794, + "top": 1526, "height": 13, "alpha": -1.5707963267948966, "distance": 15, @@ -4641,7 +4183,7 @@ "$ref": "AAAAAAGAlRJADlhrEO0=" }, "lineStyle": 1, - "points": "1639:1445;1855:1432", + "points": "1671:1473;1927:1563", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGAlRKGiVtCAiI=" @@ -4850,8 +4392,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1758, - "top": 1347, + "left": 1794, + "top": 1420, "height": 13, "alpha": 1.5707963267948966, "distance": 15, @@ -4871,8 +4413,8 @@ }, "visible": null, "font": "Arial;13;0", - "left": 1764, - "top": 1333, + "left": 1803, + "top": 1408, "height": 13, "alpha": 1.5707963267948966, "distance": 30, @@ -4892,8 +4434,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1745, - "top": 1374, + "left": 1775, + "top": 1443, "height": 13, "alpha": -1.5707963267948966, "distance": 15, @@ -4911,7 +4453,7 @@ "$ref": "AAAAAAGAlRLKTmK43xc=" }, "lineStyle": 1, - "points": "1649:1320;1855:1415", + "points": "1640:1325;1930:1551", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGAlRM+J2Z6fJM=" @@ -4951,8 +4493,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": -240, - "top": 992, + "left": -224, + "top": 912, "height": 13 }, { @@ -4962,8 +4504,8 @@ "$ref": "AAAAAAGAlTkfofupAKs=" }, "font": "Arial;13;1", - "left": 1157, - "top": 1263, + "left": 1165, + "top": 1223, "width": 57.8017578125, "height": 13, "text": "Statistics" @@ -4976,8 +4518,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": -240, - "top": 992, + "left": -224, + "top": 912, "width": 191.43896484375, "height": 13, "text": "(from BrighterTrades Class View)" @@ -4990,15 +4532,15 @@ }, "visible": false, "font": "Arial;13;0", - "left": -240, - "top": 992, + "left": -224, + "top": 912, "height": 13, "horizontalAlignment": 1 } ], "font": "Arial;13;0", - "left": 1152, - "top": 1256, + "left": 1160, + "top": 1216, "width": 67.8017578125, "height": 25, "stereotypeLabel": { @@ -5024,8 +4566,8 @@ "$ref": "AAAAAAGAlTkfoPumEEo=" }, "font": "Arial;13;0", - "left": 1152, - "top": 1281, + "left": 1160, + "top": 1241, "width": 67.8017578125, "height": 10 }, @@ -5039,8 +4581,8 @@ "$ref": "AAAAAAGAlTkfoPumEEo=" }, "font": "Arial;13;0", - "left": 1152, - "top": 1291, + "left": 1160, + "top": 1251, "width": 67.8017578125, "height": 10 }, @@ -5055,8 +4597,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": -120, - "top": 496, + "left": -112, + "top": 456, "width": 10, "height": 10 }, @@ -5071,16 +4613,16 @@ }, "visible": false, "font": "Arial;13;0", - "left": -120, - "top": 496, + "left": -112, + "top": 456, "width": 10, "height": 10 } ], "font": "Arial;13;0", "containerChangeable": true, - "left": 1152, - "top": 1256, + "left": 1160, + "top": 1216, "width": 67.8017578125, "height": 45, "nameCompartment": { @@ -5805,8 +5347,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1834, - "top": 1277, + "left": 1870, + "top": 1349, "height": 13, "alpha": 1.5707963267948966, "distance": 15, @@ -5826,8 +5368,8 @@ }, "visible": null, "font": "Arial;13;0", - "left": 1848, - "top": 1271, + "left": 1884, + "top": 1342, "height": 13, "alpha": 1.5707963267948966, "distance": 30, @@ -5847,8 +5389,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1807, - "top": 1290, + "left": 1843, + "top": 1362, "height": 13, "alpha": -1.5707963267948966, "distance": 15, @@ -5866,7 +5408,7 @@ "$ref": "AAAAAAGAlTlTRf12RvY=" }, "lineStyle": 1, - "points": "1766:1173;1876:1407", + "points": "1766:1173;1948:1551", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGAlTyXiLPjW8k=" @@ -5899,8 +5441,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1878, - "top": 1253, + "left": 1914, + "top": 1324, "height": 13, "alpha": 1.5707963267948966, "distance": 15, @@ -5920,8 +5462,8 @@ }, "visible": null, "font": "Arial;13;0", - "left": 1893, - "top": 1251, + "left": 1929, + "top": 1320, "height": 13, "alpha": 1.5707963267948966, "distance": 30, @@ -5941,8 +5483,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1849, - "top": 1258, + "left": 1885, + "top": 1331, "height": 13, "alpha": -1.5707963267948966, "distance": 15, @@ -5960,7 +5502,7 @@ "$ref": "AAAAAAGAlTqLXhUS1aw=" }, "lineStyle": 1, - "points": "1844:1117;1884:1407", + "points": "1847:1117;1953:1551", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGAlTzYE8X/4e8=" @@ -5993,8 +5535,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1975, - "top": 1267, + "left": 2021, + "top": 1335, "height": 13, "alpha": 1.5707963267948966, "distance": 15, @@ -6014,8 +5556,8 @@ }, "visible": null, "font": "Arial;13;0", - "left": 1989, - "top": 1273, + "left": 2036, + "top": 1338, "height": 13, "alpha": 1.5707963267948966, "distance": 30, @@ -6035,8 +5577,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1948, - "top": 1254, + "left": 1992, + "top": 1330, "height": 13, "alpha": -1.5707963267948966, "distance": 15, @@ -6054,7 +5596,7 @@ "$ref": "AAAAAAGAlTsU1xtzkxQ=" }, "lineStyle": 1, - "points": "2027:1128;1898:1407", + "points": "2050:1128;1964:1551", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGAlTz1lM6YDsc=" @@ -6094,8 +5636,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 336, - "top": 1312, + "left": 1616, + "top": 912, "width": 64.32080078125, "height": 13, "text": "«interface»" @@ -6107,8 +5649,8 @@ "$ref": "AAAAAAGAlUGOe9ALbuc=" }, "font": "Arial;13;1", - "left": 917, - "top": 902, + "left": 1557, + "top": 702, "width": 107.681640625, "height": 13, "text": "Exchange_server" @@ -6121,8 +5663,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 336, - "top": 1312, + "left": 1616, + "top": 912, "width": 191.43896484375, "height": 13, "text": "(from BrighterTrades Class View)" @@ -6135,15 +5677,15 @@ }, "visible": false, "font": "Arial;13;0", - "left": 336, - "top": 1312, + "left": 1616, + "top": 912, "height": 13, "horizontalAlignment": 1 } ], "font": "Arial;13;0", - "left": 912, - "top": 895, + "left": 1552, + "top": 695, "width": 117.681640625, "height": 25, "stereotypeLabel": { @@ -6170,8 +5712,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 168, - "top": 656, + "left": 808, + "top": 456, "width": 10, "height": 10 }, @@ -6186,8 +5728,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 168, - "top": 656, + "left": 808, + "top": 456, "width": 10, "height": 10 }, @@ -6202,8 +5744,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 168, - "top": 656, + "left": 808, + "top": 456, "width": 10, "height": 10 }, @@ -6218,16 +5760,16 @@ }, "visible": false, "font": "Arial;13;0", - "left": 168, - "top": 656, + "left": 808, + "top": 456, "width": 10, "height": 10 } ], "font": "Arial;13;0", "containerChangeable": true, - "left": 912, - "top": 872, + "left": 1552, + "top": 672, "width": 117.681640625, "height": 49, "stereotypeDisplay": "icon", @@ -6277,8 +5819,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": -240, - "top": 1552, + "left": 480, + "top": 960, "width": 64.32080078125, "height": 13, "text": "«interface»" @@ -6290,8 +5832,8 @@ "$ref": "AAAAAAGAlUI9x9Wgs0E=" }, "font": "Arial;13;1", - "left": 917, - "top": 1006, + "left": 1277, + "top": 710, "width": 81.66259765625, "height": 13, "text": "Local_Server" @@ -6304,8 +5846,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": -240, - "top": 1552, + "left": 480, + "top": 960, "width": 191.43896484375, "height": 13, "text": "(from BrighterTrades Class View)" @@ -6318,15 +5860,15 @@ }, "visible": false, "font": "Arial;13;0", - "left": -240, - "top": 1552, + "left": 480, + "top": 960, "height": 13, "horizontalAlignment": 1 } ], "font": "Arial;13;0", - "left": 912, - "top": 999, + "left": 1272, + "top": 703, "width": 91.66259765625, "height": 25, "stereotypeLabel": { @@ -6353,8 +5895,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": -120, - "top": 776, + "left": 240, + "top": 480, "width": 10, "height": 10 }, @@ -6369,8 +5911,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": -120, - "top": 776, + "left": 240, + "top": 480, "width": 10, "height": 10 }, @@ -6385,8 +5927,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": -120, - "top": 776, + "left": 240, + "top": 480, "width": 10, "height": 10 }, @@ -6401,16 +5943,16 @@ }, "visible": false, "font": "Arial;13;0", - "left": -120, - "top": 776, + "left": 240, + "top": 480, "width": 10, "height": 10 } ], "font": "Arial;13;0", "containerChangeable": true, - "left": 912, - "top": 976, + "left": 1272, + "top": 680, "width": 91.66259765625, "height": 49, "stereotypeDisplay": "icon", @@ -6460,8 +6002,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 544, - "top": 1328, + "left": 1024, + "top": 1008, "height": 13 }, { @@ -6471,8 +6013,8 @@ "$ref": "AAAAAAGAlUKJqtyvPEs=" }, "font": "Arial;13;1", - "left": 1125, - "top": 967, + "left": 1365, + "top": 807, "width": 200.53515625, "height": 13, "text": "Cumunication" @@ -6485,8 +6027,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 544, - "top": 1328, + "left": 1024, + "top": 1008, "width": 191.43896484375, "height": 13, "text": "(from BrighterTrades Class View)" @@ -6499,15 +6041,15 @@ }, "visible": false, "font": "Arial;13;0", - "left": 544, - "top": 1328, + "left": 1024, + "top": 1008, "height": 13, "horizontalAlignment": 1 } ], "font": "Arial;13;0", - "left": 1120, - "top": 960, + "left": 1360, + "top": 800, "width": 210.53515625, "height": 25, "stereotypeLabel": { @@ -6533,8 +6075,8 @@ "$ref": "AAAAAAGAlUKJqdysOJc=" }, "font": "Arial;13;0", - "left": 1120, - "top": 985, + "left": 1360, + "top": 825, "width": 210.53515625, "height": 10 }, @@ -6558,8 +6100,8 @@ "$ref": "AAAAAAGAlcMItTBB6JM=" }, "font": "Arial;13;0", - "left": 1125, - "top": 1000, + "left": 1365, + "top": 840, "width": 200.53515625, "height": 13, "text": "+indicator_update_msg_received()", @@ -6567,8 +6109,8 @@ } ], "font": "Arial;13;0", - "left": 1120, - "top": 995, + "left": 1360, + "top": 835, "width": 210.53515625, "height": 23 }, @@ -6583,8 +6125,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 272, - "top": 664, + "left": 512, + "top": 504, "width": 10, "height": 10 }, @@ -6599,16 +6141,16 @@ }, "visible": false, "font": "Arial;13;0", - "left": 272, - "top": 664, + "left": 512, + "top": 504, "width": 10, "height": 10 } ], "font": "Arial;13;0", "containerChangeable": true, - "left": 1120, - "top": 960, + "left": 1360, + "top": 800, "width": 210.53515625, "height": 58, "nameCompartment": { @@ -6627,377 +6169,6 @@ "$ref": "AAAAAAGAlUKJqty3iYM=" } }, - { - "_type": "UMLInterfaceView", - "_id": "AAAAAAGAlUQhahEIKkE=", - "_parent": { - "$ref": "AAAAAAFF+qBtyKM79qY=" - }, - "model": { - "$ref": "AAAAAAGAlUQhahEG3nQ=" - }, - "subViews": [ - { - "_type": "UMLNameCompartmentView", - "_id": "AAAAAAGAlUQhahEJjos=", - "_parent": { - "$ref": "AAAAAAGAlUQhahEIKkE=" - }, - "model": { - "$ref": "AAAAAAGAlUQhahEG3nQ=" - }, - "subViews": [ - { - "_type": "LabelView", - "_id": "AAAAAAGAlUQhahEKrRI=", - "_parent": { - "$ref": "AAAAAAGAlUQhahEJjos=" - }, - "visible": false, - "font": "Arial;13;0", - "left": 544, - "top": 1408, - "width": 64.32080078125, - "height": 13, - "text": "«interface»" - }, - { - "_type": "LabelView", - "_id": "AAAAAAGAlUQhahEL9Ws=", - "_parent": { - "$ref": "AAAAAAGAlUQhahEJjos=" - }, - "font": "Arial;13;1", - "left": 725, - "top": 942, - "width": 119.20263671875, - "height": 13, - "text": "Server_Connection" - }, - { - "_type": "LabelView", - "_id": "AAAAAAGAlUQhahEMCsQ=", - "_parent": { - "$ref": "AAAAAAGAlUQhahEJjos=" - }, - "visible": false, - "font": "Arial;13;0", - "left": 544, - "top": 1408, - "width": 191.43896484375, - "height": 13, - "text": "(from BrighterTrades Class View)" - }, - { - "_type": "LabelView", - "_id": "AAAAAAGAlUQhahENMPo=", - "_parent": { - "$ref": "AAAAAAGAlUQhahEJjos=" - }, - "visible": false, - "font": "Arial;13;0", - "left": 544, - "top": 1408, - "height": 13, - "horizontalAlignment": 1 - } - ], - "font": "Arial;13;0", - "left": 720, - "top": 935, - "width": 129.20263671875, - "height": 25, - "stereotypeLabel": { - "$ref": "AAAAAAGAlUQhahEKrRI=" - }, - "nameLabel": { - "$ref": "AAAAAAGAlUQhahEL9Ws=" - }, - "namespaceLabel": { - "$ref": "AAAAAAGAlUQhahEMCsQ=" - }, - "propertyLabel": { - "$ref": "AAAAAAGAlUQhahENMPo=" - } - }, - { - "_type": "UMLAttributeCompartmentView", - "_id": "AAAAAAGAlUQhahEOIKo=", - "_parent": { - "$ref": "AAAAAAGAlUQhahEIKkE=" - }, - "model": { - "$ref": "AAAAAAGAlUQhahEG3nQ=" - }, - "visible": false, - "font": "Arial;13;0", - "left": 272, - "top": 704, - "width": 10, - "height": 10 - }, - { - "_type": "UMLOperationCompartmentView", - "_id": "AAAAAAGAlUQhahEPIz4=", - "_parent": { - "$ref": "AAAAAAGAlUQhahEIKkE=" - }, - "model": { - "$ref": "AAAAAAGAlUQhahEG3nQ=" - }, - "visible": false, - "font": "Arial;13;0", - "left": 272, - "top": 704, - "width": 10, - "height": 10 - }, - { - "_type": "UMLReceptionCompartmentView", - "_id": "AAAAAAGAlUQhaxEQFHQ=", - "_parent": { - "$ref": "AAAAAAGAlUQhahEIKkE=" - }, - "model": { - "$ref": "AAAAAAGAlUQhahEG3nQ=" - }, - "visible": false, - "font": "Arial;13;0", - "left": 272, - "top": 704, - "width": 10, - "height": 10 - }, - { - "_type": "UMLTemplateParameterCompartmentView", - "_id": "AAAAAAGAlUQhaxERC6g=", - "_parent": { - "$ref": "AAAAAAGAlUQhahEIKkE=" - }, - "model": { - "$ref": "AAAAAAGAlUQhahEG3nQ=" - }, - "visible": false, - "font": "Arial;13;0", - "left": 272, - "top": 704, - "width": 10, - "height": 10 - } - ], - "font": "Arial;13;0", - "containerChangeable": true, - "left": 720, - "top": 912, - "width": 129.20263671875, - "height": 49, - "stereotypeDisplay": "icon", - "nameCompartment": { - "$ref": "AAAAAAGAlUQhahEJjos=" - }, - "suppressAttributes": true, - "suppressOperations": true, - "attributeCompartment": { - "$ref": "AAAAAAGAlUQhahEOIKo=" - }, - "operationCompartment": { - "$ref": "AAAAAAGAlUQhahEPIz4=" - }, - "receptionCompartment": { - "$ref": "AAAAAAGAlUQhaxEQFHQ=" - }, - "templateParameterCompartment": { - "$ref": "AAAAAAGAlUQhaxERC6g=" - } - }, - { - "_type": "UMLGeneralizationView", - "_id": "AAAAAAGAlUZGOEXrRmE=", - "_parent": { - "$ref": "AAAAAAFF+qBtyKM79qY=" - }, - "model": { - "$ref": "AAAAAAGAlUZGOEXplAE=" - }, - "subViews": [ - { - "_type": "EdgeLabelView", - "_id": "AAAAAAGAlUZGOEXsxBk=", - "_parent": { - "$ref": "AAAAAAGAlUZGOEXrRmE=" - }, - "model": { - "$ref": "AAAAAAGAlUZGOEXplAE=" - }, - "visible": false, - "font": "Arial;13;0", - "left": 874, - "top": 979, - "height": 13, - "alpha": 1.5707963267948966, - "distance": 15, - "hostEdge": { - "$ref": "AAAAAAGAlUZGOEXrRmE=" - }, - "edgePosition": 1 - }, - { - "_type": "EdgeLabelView", - "_id": "AAAAAAGAlUZGOEXt3Hc=", - "_parent": { - "$ref": "AAAAAAGAlUZGOEXrRmE=" - }, - "model": { - "$ref": "AAAAAAGAlUZGOEXplAE=" - }, - "visible": null, - "font": "Arial;13;0", - "left": 869, - "top": 993, - "height": 13, - "alpha": 1.5707963267948966, - "distance": 30, - "hostEdge": { - "$ref": "AAAAAAGAlUZGOEXrRmE=" - }, - "edgePosition": 1 - }, - { - "_type": "EdgeLabelView", - "_id": "AAAAAAGAlUZGOEXueoo=", - "_parent": { - "$ref": "AAAAAAGAlUZGOEXrRmE=" - }, - "model": { - "$ref": "AAAAAAGAlUZGOEXplAE=" - }, - "visible": false, - "font": "Arial;13;0", - "left": 885, - "top": 950, - "height": 13, - "alpha": -1.5707963267948966, - "distance": 15, - "hostEdge": { - "$ref": "AAAAAAGAlUZGOEXrRmE=" - }, - "edgePosition": 1 - } - ], - "font": "Arial;13;0", - "head": { - "$ref": "AAAAAAGAlUQhahEIKkE=" - }, - "tail": { - "$ref": "AAAAAAGAlUI9x9WfNp0=" - }, - "lineStyle": 1, - "points": "911:983;849:960", - "showVisibility": true, - "nameLabel": { - "$ref": "AAAAAAGAlUZGOEXsxBk=" - }, - "stereotypeLabel": { - "$ref": "AAAAAAGAlUZGOEXt3Hc=" - }, - "propertyLabel": { - "$ref": "AAAAAAGAlUZGOEXueoo=" - } - }, - { - "_type": "UMLGeneralizationView", - "_id": "AAAAAAGAlUZtyk0KTDw=", - "_parent": { - "$ref": "AAAAAAFF+qBtyKM79qY=" - }, - "model": { - "$ref": "AAAAAAGAlUZtyk0I7mg=" - }, - "subViews": [ - { - "_type": "EdgeLabelView", - "_id": "AAAAAAGAlUZtyk0LvFQ=", - "_parent": { - "$ref": "AAAAAAGAlUZtyk0KTDw=" - }, - "model": { - "$ref": "AAAAAAGAlUZtyk0I7mg=" - }, - "visible": false, - "font": "Arial;13;0", - "left": 883, - "top": 923, - "height": 13, - "alpha": 1.5707963267948966, - "distance": 15, - "hostEdge": { - "$ref": "AAAAAAGAlUZtyk0KTDw=" - }, - "edgePosition": 1 - }, - { - "_type": "EdgeLabelView", - "_id": "AAAAAAGAlUZtyk0Ma+4=", - "_parent": { - "$ref": "AAAAAAGAlUZtyk0KTDw=" - }, - "model": { - "$ref": "AAAAAAGAlUZtyk0I7mg=" - }, - "visible": null, - "font": "Arial;13;0", - "left": 886, - "top": 938, - "height": 13, - "alpha": 1.5707963267948966, - "distance": 30, - "hostEdge": { - "$ref": "AAAAAAGAlUZtyk0KTDw=" - }, - "edgePosition": 1 - }, - { - "_type": "EdgeLabelView", - "_id": "AAAAAAGAlUZtyk0NrCc=", - "_parent": { - "$ref": "AAAAAAGAlUZtyk0KTDw=" - }, - "model": { - "$ref": "AAAAAAGAlUZtyk0I7mg=" - }, - "visible": false, - "font": "Arial;13;0", - "left": 876, - "top": 894, - "height": 13, - "alpha": -1.5707963267948966, - "distance": 15, - "hostEdge": { - "$ref": "AAAAAAGAlUZtyk0KTDw=" - }, - "edgePosition": 1 - } - ], - "font": "Arial;13;0", - "head": { - "$ref": "AAAAAAGAlUQhahEIKkE=" - }, - "tail": { - "$ref": "AAAAAAGAlUGOetAKJ9M=" - }, - "lineStyle": 1, - "points": "911:909;849:922", - "showVisibility": true, - "nameLabel": { - "$ref": "AAAAAAGAlUZtyk0LvFQ=" - }, - "stereotypeLabel": { - "$ref": "AAAAAAGAlUZtyk0Ma+4=" - }, - "propertyLabel": { - "$ref": "AAAAAAGAlUZtyk0NrCc=" - } - }, { "_type": "UMLAssociationView", "_id": "AAAAAAGAlUcXkVxhhWI=", @@ -7019,8 +6190,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1060, - "top": 974, + "left": 1397, + "top": 746, "height": 13, "alpha": 1.5707963267948966, "distance": 15, @@ -7040,8 +6211,8 @@ }, "visible": null, "font": "Arial;13;0", - "left": 1059, - "top": 959, + "left": 1407, + "top": 734, "height": 13, "alpha": 1.5707963267948966, "distance": 30, @@ -7061,8 +6232,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1061, - "top": 1003, + "left": 1378, + "top": 769, "height": 13, "alpha": -1.5707963267948966, "distance": 15, @@ -7082,8 +6253,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1029, - "top": 975, + "left": 1376, + "top": 728, "height": 13, "alpha": 0.5235987755982988, "distance": 30, @@ -7103,8 +6274,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1031, - "top": 962, + "left": 1386, + "top": 719, "height": 13, "alpha": 0.7853981633974483, "distance": 40, @@ -7124,8 +6295,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1026, - "top": 1003, + "left": 1355, + "top": 746, "height": 13, "alpha": -0.5235987755982988, "distance": 25, @@ -7145,8 +6316,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1092, - "top": 973, + "left": 1419, + "top": 764, "height": 13, "alpha": -0.5235987755982988, "distance": 30, @@ -7165,8 +6336,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1089, - "top": 959, + "left": 1426, + "top": 753, "height": 13, "alpha": -0.7853981633974483, "distance": 40, @@ -7185,8 +6356,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1097, - "top": 1000, + "left": 1405, + "top": 788, "height": 13, "alpha": 0.5235987755982988, "distance": 25, @@ -7235,7 +6406,7 @@ "$ref": "AAAAAAGAlUI9x9WfNp0=" }, "lineStyle": 1, - "points": "1004:998;1119:993", + "points": "1347:729;1430:799", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGAlUcXkVxixqg=" @@ -7293,8 +6464,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1092, - "top": 917, + "left": 1549, + "top": 765, "height": 13, "alpha": 1.5707963267948966, "distance": 15, @@ -7314,8 +6485,8 @@ }, "visible": null, "font": "Arial;13;0", - "left": 1097, - "top": 903, + "left": 1559, + "top": 776, "height": 13, "alpha": 1.5707963267948966, "distance": 30, @@ -7335,8 +6506,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1081, - "top": 946, + "left": 1528, + "top": 742, "height": 13, "alpha": -1.5707963267948966, "distance": 15, @@ -7356,8 +6527,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1059, - "top": 906, + "left": 1572, + "top": 743, "height": 13, "alpha": 0.5235987755982988, "distance": 30, @@ -7377,8 +6548,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1066, - "top": 894, + "left": 1580, + "top": 754, "height": 13, "alpha": 0.7853981633974483, "distance": 40, @@ -7398,8 +6569,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1046, - "top": 931, + "left": 1557, + "top": 720, "height": 13, "alpha": -0.5235987755982988, "distance": 25, @@ -7419,8 +6590,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1124, - "top": 930, + "left": 1525, + "top": 786, "height": 13, "alpha": -0.5235987755982988, "distance": 30, @@ -7439,8 +6610,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1126, - "top": 916, + "left": 1535, + "top": 794, "height": 13, "alpha": -0.7853981633974483, "distance": 40, @@ -7459,8 +6630,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1119, - "top": 957, + "left": 1503, + "top": 769, "height": 13, "alpha": 0.5235987755982988, "distance": 25, @@ -7509,7 +6680,7 @@ "$ref": "AAAAAAGAlUGOetAKJ9M=" }, "lineStyle": 1, - "points": "1030:918;1144:959", + "points": "1582:721;1496:799", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGAlUcybGKQj70=" @@ -7546,282 +6717,6 @@ "$ref": "AAAAAAGAlUcybWKaQFU=" } }, - { - "_type": "UMLAssociationView", - "_id": "AAAAAAGAlUdTbGyzRRE=", - "_parent": { - "$ref": "AAAAAAFF+qBtyKM79qY=" - }, - "model": { - "$ref": "AAAAAAGAlUdTbGyvqOM=" - }, - "subViews": [ - { - "_type": "EdgeLabelView", - "_id": "AAAAAAGAlUdTbGy0CE4=", - "_parent": { - "$ref": "AAAAAAGAlUdTbGyzRRE=" - }, - "model": { - "$ref": "AAAAAAGAlUdTbGyvqOM=" - }, - "visible": false, - "font": "Arial;13;0", - "left": 1364, - "top": 1004, - "height": 13, - "alpha": 1.5707963267948966, - "distance": 15, - "hostEdge": { - "$ref": "AAAAAAGAlUdTbGyzRRE=" - }, - "edgePosition": 1 - }, - { - "_type": "EdgeLabelView", - "_id": "AAAAAAGAlUdTbGy1kKQ=", - "_parent": { - "$ref": "AAAAAAGAlUdTbGyzRRE=" - }, - "model": { - "$ref": "AAAAAAGAlUdTbGyvqOM=" - }, - "visible": null, - "font": "Arial;13;0", - "left": 1368, - "top": 990, - "height": 13, - "alpha": 1.5707963267948966, - "distance": 30, - "hostEdge": { - "$ref": "AAAAAAGAlUdTbGyzRRE=" - }, - "edgePosition": 1 - }, - { - "_type": "EdgeLabelView", - "_id": "AAAAAAGAlUdTbGy2ftM=", - "_parent": { - "$ref": "AAAAAAGAlUdTbGyzRRE=" - }, - "model": { - "$ref": "AAAAAAGAlUdTbGyvqOM=" - }, - "visible": false, - "font": "Arial;13;0", - "left": 1357, - "top": 1033, - "height": 13, - "alpha": -1.5707963267948966, - "distance": 15, - "hostEdge": { - "$ref": "AAAAAAGAlUdTbGyzRRE=" - }, - "edgePosition": 1 - }, - { - "_type": "EdgeLabelView", - "_id": "AAAAAAGAlUdTbGy3f7w=", - "_parent": { - "$ref": "AAAAAAGAlUdTbGyzRRE=" - }, - "model": { - "$ref": "AAAAAAGAlUdTbGywRtk=" - }, - "visible": false, - "font": "Arial;13;0", - "left": 1359, - "top": 1003, - "height": 13, - "alpha": 0.5235987755982988, - "distance": 30, - "hostEdge": { - "$ref": "AAAAAAGAlUdTbGyzRRE=" - }, - "edgePosition": 2 - }, - { - "_type": "EdgeLabelView", - "_id": "AAAAAAGAlUdTbGy4Tlg=", - "_parent": { - "$ref": "AAAAAAGAlUdTbGyzRRE=" - }, - "model": { - "$ref": "AAAAAAGAlUdTbGywRtk=" - }, - "visible": false, - "font": "Arial;13;0", - "left": 1365, - "top": 990, - "height": 13, - "alpha": 0.7853981633974483, - "distance": 40, - "hostEdge": { - "$ref": "AAAAAAGAlUdTbGyzRRE=" - }, - "edgePosition": 2 - }, - { - "_type": "EdgeLabelView", - "_id": "AAAAAAGAlUdTbGy5YoA=", - "_parent": { - "$ref": "AAAAAAGAlUdTbGyzRRE=" - }, - "model": { - "$ref": "AAAAAAGAlUdTbGywRtk=" - }, - "font": "Arial;13;0", - "left": 1345, - "top": 1028, - "width": 7.22998046875, - "height": 13, - "alpha": -0.5235987755982988, - "distance": 25, - "hostEdge": { - "$ref": "AAAAAAGAlUdTbGyzRRE=" - }, - "edgePosition": 2, - "text": "1" - }, - { - "_type": "EdgeLabelView", - "_id": "AAAAAAGAlUdTbGy6N7M=", - "_parent": { - "$ref": "AAAAAAGAlUdTbGyzRRE=" - }, - "model": { - "$ref": "AAAAAAGAlUdTbGyxjgQ=" - }, - "visible": false, - "font": "Arial;13;0", - "left": 1369, - "top": 1005, - "height": 13, - "alpha": -0.5235987755982988, - "distance": 30, - "hostEdge": { - "$ref": "AAAAAAGAlUdTbGyzRRE=" - } - }, - { - "_type": "EdgeLabelView", - "_id": "AAAAAAGAlUdTbGy7EI4=", - "_parent": { - "$ref": "AAAAAAGAlUdTbGyzRRE=" - }, - "model": { - "$ref": "AAAAAAGAlUdTbGyxjgQ=" - }, - "visible": false, - "font": "Arial;13;0", - "left": 1370, - "top": 992, - "height": 13, - "alpha": -0.7853981633974483, - "distance": 40, - "hostEdge": { - "$ref": "AAAAAAGAlUdTbGyzRRE=" - } - }, - { - "_type": "EdgeLabelView", - "_id": "AAAAAAGAlUdTbGy8REY=", - "_parent": { - "$ref": "AAAAAAGAlUdTbGyzRRE=" - }, - "model": { - "$ref": "AAAAAAGAlUdTbGyxjgQ=" - }, - "font": "Arial;13;0", - "left": 1363, - "top": 1033, - "width": 7.22998046875, - "height": 13, - "alpha": 0.5235987755982988, - "distance": 25, - "hostEdge": { - "$ref": "AAAAAAGAlUdTbGyzRRE=" - }, - "text": "1" - }, - { - "_type": "UMLQualifierCompartmentView", - "_id": "AAAAAAGAlUdTbGy9yMw=", - "_parent": { - "$ref": "AAAAAAGAlUdTbGyzRRE=" - }, - "model": { - "$ref": "AAAAAAGAlUdTbGywRtk=" - }, - "visible": false, - "font": "Arial;13;0", - "left": 512, - "top": 656, - "width": 10, - "height": 10 - }, - { - "_type": "UMLQualifierCompartmentView", - "_id": "AAAAAAGAlUdTbGy+sRQ=", - "_parent": { - "$ref": "AAAAAAGAlUdTbGyzRRE=" - }, - "model": { - "$ref": "AAAAAAGAlUdTbGyxjgQ=" - }, - "visible": false, - "font": "Arial;13;0", - "left": 512, - "top": 656, - "width": 10, - "height": 10 - } - ], - "font": "Arial;13;0", - "head": { - "$ref": "AAAAAAGAlLTUj7L3TDU=" - }, - "tail": { - "$ref": "AAAAAAGAlUKJqdyuF7g=" - }, - "lineStyle": 1, - "points": "1331:1017;1391:1033", - "showVisibility": true, - "nameLabel": { - "$ref": "AAAAAAGAlUdTbGy0CE4=" - }, - "stereotypeLabel": { - "$ref": "AAAAAAGAlUdTbGy1kKQ=" - }, - "propertyLabel": { - "$ref": "AAAAAAGAlUdTbGy2ftM=" - }, - "showEndOrder": "hide", - "tailRoleNameLabel": { - "$ref": "AAAAAAGAlUdTbGy3f7w=" - }, - "tailPropertyLabel": { - "$ref": "AAAAAAGAlUdTbGy4Tlg=" - }, - "tailMultiplicityLabel": { - "$ref": "AAAAAAGAlUdTbGy5YoA=" - }, - "headRoleNameLabel": { - "$ref": "AAAAAAGAlUdTbGy6N7M=" - }, - "headPropertyLabel": { - "$ref": "AAAAAAGAlUdTbGy7EI4=" - }, - "headMultiplicityLabel": { - "$ref": "AAAAAAGAlUdTbGy8REY=" - }, - "tailQualifiersCompartment": { - "$ref": "AAAAAAGAlUdTbGy9yMw=" - }, - "headQualifiersCompartment": { - "$ref": "AAAAAAGAlUdTbGy+sRQ=" - } - }, { "_type": "UMLGeneralizationView", "_id": "AAAAAAGAlU5WrJfGiJI=", @@ -7843,8 +6738,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1196, - "top": 1500, + "left": 1003, + "top": 1399, "height": 13, "alpha": 1.5707963267948966, "distance": 15, @@ -7864,8 +6759,8 @@ }, "visible": null, "font": "Arial;13;0", - "left": 1211, - "top": 1500, + "left": 1012, + "top": 1411, "height": 13, "alpha": 1.5707963267948966, "distance": 30, @@ -7885,8 +6780,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1167, - "top": 1499, + "left": 984, + "top": 1376, "height": 13, "alpha": -1.5707963267948966, "distance": 15, @@ -7904,7 +6799,7 @@ "$ref": "AAAAAAGAlTkfofuodyI=" }, "lineStyle": 1, - "points": "1185:1301;1180:1711", + "points": "1164:1261;825:1527", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGAlU5WrJfHfLU=" @@ -7944,8 +6839,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 944, - "top": 784, + "left": 864, + "top": 592, "height": 13 }, { @@ -7955,8 +6850,8 @@ "$ref": "AAAAAAGAlU+ijhOnZ+Q=" }, "font": "Arial;13;1", - "left": 1021, - "top": 1231, + "left": 981, + "top": 1135, "width": 108.04345703125, "height": 13, "text": "Indicator Output" @@ -7969,8 +6864,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 944, - "top": 784, + "left": 864, + "top": 592, "width": 191.43896484375, "height": 13, "text": "(from BrighterTrades Class View)" @@ -7983,15 +6878,15 @@ }, "visible": false, "font": "Arial;13;0", - "left": 944, - "top": 784, + "left": 864, + "top": 592, "height": 13, "horizontalAlignment": 1 } ], "font": "Arial;13;0", - "left": 1016, - "top": 1224, + "left": 976, + "top": 1128, "width": 118.04345703125, "height": 25, "stereotypeLabel": { @@ -8027,8 +6922,8 @@ "$ref": "AAAAAAGAlYUqd9HDP+I=" }, "font": "Arial;13;0", - "left": 1021, - "top": 1254, + "left": 981, + "top": 1158, "width": 108.04345703125, "height": 13, "text": "-legend", @@ -8036,8 +6931,8 @@ } ], "font": "Arial;13;0", - "left": 1016, - "top": 1249, + "left": 976, + "top": 1153, "width": 118.04345703125, "height": 23 }, @@ -8061,8 +6956,8 @@ "$ref": "AAAAAAGAlaPCWGaFOto=" }, "font": "Arial;13;0", - "left": 1021, - "top": 1277, + "left": 981, + "top": 1181, "width": 108.04345703125, "height": 13, "text": "+create_legend()", @@ -8078,8 +6973,8 @@ "$ref": "AAAAAAGAlaRbjHJEQRw=" }, "font": "Arial;13;0", - "left": 1021, - "top": 1292, + "left": 981, + "top": 1196, "width": 108.04345703125, "height": 13, "text": "+set_legend_text()", @@ -8087,8 +6982,8 @@ } ], "font": "Arial;13;0", - "left": 1016, - "top": 1272, + "left": 976, + "top": 1176, "width": 118.04345703125, "height": 38 }, @@ -8103,8 +6998,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 472, - "top": 392, + "left": 432, + "top": 296, "width": 10, "height": 10 }, @@ -8119,16 +7014,16 @@ }, "visible": false, "font": "Arial;13;0", - "left": 472, - "top": 392, + "left": 432, + "top": 296, "width": 10, "height": 10 } ], "font": "Arial;13;0", "containerChangeable": true, - "left": 1016, - "top": 1224, + "left": 976, + "top": 1128, "width": 118.04345703125, "height": 86, "nameCompartment": { @@ -8168,8 +7063,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1143, - "top": 1500, + "left": 920, + "top": 1371, "height": 13, "alpha": 1.5707963267948966, "distance": 15, @@ -8189,8 +7084,8 @@ }, "visible": null, "font": "Arial;13;0", - "left": 1158, - "top": 1497, + "left": 933, + "top": 1379, "height": 13, "alpha": 1.5707963267948966, "distance": 30, @@ -8210,8 +7105,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1114, - "top": 1507, + "left": 895, + "top": 1356, "height": 13, "alpha": -1.5707963267948966, "distance": 15, @@ -8229,7 +7124,7 @@ "$ref": "AAAAAAGAlU+ijhOm5cs=" }, "lineStyle": 1, - "points": "1084:1310;1175:1711", + "points": "1006:1214;810:1527", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGAlVABNCiKFGk=" @@ -12481,8 +11376,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1482, - "top": 1220, + "left": 1496, + "top": 1221, "height": 13, "alpha": 1.5707963267948966, "distance": 15, @@ -12502,8 +11397,8 @@ }, "visible": null, "font": "Arial;13;0", - "left": 1468, - "top": 1225, + "left": 1482, + "top": 1227, "height": 13, "alpha": 1.5707963267948966, "distance": 30, @@ -12523,8 +11418,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1511, - "top": 1211, + "left": 1523, + "top": 1210, "height": 13, "alpha": -1.5707963267948966, "distance": 15, @@ -12544,8 +11439,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1524, - "top": 1348, + "left": 1549, + "top": 1350, "height": 13, "alpha": 0.5235987755982988, "distance": 30, @@ -12565,8 +11460,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1511, - "top": 1350, + "left": 1536, + "top": 1353, "height": 13, "alpha": 0.7853981633974483, "distance": 40, @@ -12585,7 +11480,7 @@ "$ref": "AAAAAAGAlWUHaVbGp9E=" }, "font": "Arial;13;0", - "left": 1549, + "left": 1573, "top": 1344, "width": 7.22998046875, "height": 13, @@ -12608,7 +11503,7 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1440, + "left": 1443, "top": 1092, "height": 13, "alpha": -0.5235987755982988, @@ -12628,8 +11523,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1428, - "top": 1098, + "left": 1432, + "top": 1099, "height": 13, "alpha": -0.7853981633974483, "distance": 40, @@ -12647,8 +11542,8 @@ "$ref": "AAAAAAGAlWUHaVbH1Js=" }, "font": "Arial;13;0", - "left": 1462, - "top": 1079, + "left": 1464, + "top": 1078, "width": 7.22998046875, "height": 13, "alpha": 0.5235987755982988, @@ -12699,7 +11594,7 @@ "$ref": "AAAAAAGAlRJADlhrEO0=" }, "lineStyle": 1, - "points": "1547:1375;1447:1069", + "points": "1573:1375;1448:1069", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGAlWUHaVbK+u8=" @@ -13309,8 +12204,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1356, - "top": 1173, + "left": 1346, + "top": 1164, "height": 13, "alpha": 1.5707963267948966, "distance": 15, @@ -13330,8 +12225,8 @@ }, "visible": null, "font": "Arial;13;0", - "left": 1343, - "top": 1166, + "left": 1333, + "top": 1156, "height": 13, "alpha": 1.5707963267948966, "distance": 30, @@ -13351,8 +12246,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1383, - "top": 1186, + "left": 1371, + "top": 1179, "height": 13, "alpha": -1.5707963267948966, "distance": 15, @@ -13372,8 +12267,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1310, - "top": 1267, + "left": 1293, + "top": 1251, "height": 13, "alpha": 0.5235987755982988, "distance": 30, @@ -13393,8 +12288,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1300, - "top": 1259, + "left": 1283, + "top": 1242, "height": 13, "alpha": 0.7853981633974483, "distance": 40, @@ -13413,8 +12308,8 @@ "$ref": "AAAAAAGAlWVK/Hi8tt0=" }, "font": "Arial;13;0", - "left": 1330, - "top": 1283, + "left": 1311, + "top": 1268, "width": 7.22998046875, "height": 13, "alpha": -0.5235987755982988, @@ -13436,8 +12331,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1403, - "top": 1079, + "left": 1398, + "top": 1077, "height": 13, "alpha": -0.5235987755982988, "distance": 30, @@ -13456,8 +12351,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1390, - "top": 1075, + "left": 1386, + "top": 1072, "height": 13, "alpha": -0.7853981633974483, "distance": 40, @@ -13475,7 +12370,7 @@ "$ref": "AAAAAAGAlWVK/Hi9A2E=" }, "font": "Arial;13;0", - "left": 1426, + "left": 1421, "top": 1087, "width": 7.22998046875, "height": 13, @@ -13527,7 +12422,7 @@ "$ref": "AAAAAAGAlLRrLqxjK7Y=" }, "lineStyle": 1, - "points": "1313:1303;1428:1069", + "points": "1293:1287;1425:1069", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGAlWVK/HjAbxM=" @@ -13585,8 +12480,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1301, - "top": 1144, + "left": 1306, + "top": 1124, "height": 13, "alpha": 1.5707963267948966, "distance": 15, @@ -13606,8 +12501,8 @@ }, "visible": null, "font": "Arial;13;0", - "left": 1291, - "top": 1133, + "left": 1297, + "top": 1112, "height": 13, "alpha": 1.5707963267948966, "distance": 30, @@ -13627,8 +12522,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1322, - "top": 1167, + "left": 1325, + "top": 1147, "height": 13, "alpha": -1.5707963267948966, "distance": 15, @@ -13648,8 +12543,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1219, - "top": 1220, + "left": 1233, + "top": 1181, "height": 13, "alpha": 0.5235987755982988, "distance": 30, @@ -13669,8 +12564,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1211, - "top": 1209, + "left": 1226, + "top": 1169, "height": 13, "alpha": 0.7853981633974483, "distance": 40, @@ -13689,8 +12584,8 @@ "$ref": "AAAAAAGAlWVTFoIL2pY=" }, "font": "Arial;13;0", - "left": 1231, - "top": 1243, + "left": 1243, + "top": 1205, "width": 7.22998046875, "height": 13, "alpha": -0.5235987755982988, @@ -13712,8 +12607,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1384, - "top": 1069, + "left": 1380, + "top": 1067, "height": 13, "alpha": -0.5235987755982988, "distance": 30, @@ -13732,8 +12627,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1374, - "top": 1061, + "left": 1370, + "top": 1058, "height": 13, "alpha": -0.7853981633974483, "distance": 40, @@ -13751,7 +12646,7 @@ "$ref": "AAAAAAGAlWVTFoIMumY=" }, "font": "Arial;13;0", - "left": 1403, + "left": 1397, "top": 1086, "width": 7.22998046875, "height": 13, @@ -13803,7 +12698,7 @@ "$ref": "AAAAAAGAlTkfofuodyI=" }, "lineStyle": 1, - "points": "1210:1255;1414:1069", + "points": "1222:1215;1410:1069", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGAlWVTFoIP68c=" @@ -13861,8 +12756,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1259, - "top": 1130, + "left": 1237, + "top": 1085, "height": 13, "alpha": 1.5707963267948966, "distance": 15, @@ -13882,8 +12777,8 @@ }, "visible": null, "font": "Arial;13;0", - "left": 1251, - "top": 1117, + "left": 1233, + "top": 1071, "height": 13, "alpha": 1.5707963267948966, "distance": 30, @@ -13903,8 +12798,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1274, - "top": 1155, + "left": 1246, + "top": 1114, "height": 13, "alpha": -1.5707963267948966, "distance": 15, @@ -13924,8 +12819,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1148, - "top": 1197, + "left": 1114, + "top": 1124, "height": 13, "alpha": 0.5235987755982988, "distance": 30, @@ -13945,8 +12840,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1143, - "top": 1185, + "left": 1112, + "top": 1110, "height": 13, "alpha": 0.7853981633974483, "distance": 40, @@ -13965,8 +12860,8 @@ "$ref": "AAAAAAGAlWX+zaGhhnw=" }, "font": "Arial;13;0", - "left": 1149, - "top": 1223, + "left": 1109, + "top": 1151, "width": 19.5126953125, "height": 13, "alpha": -0.5235987755982988, @@ -13988,8 +12883,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1371, - "top": 1063, + "left": 1361, + "top": 1048, "height": 13, "alpha": -0.5235987755982988, "distance": 30, @@ -14008,8 +12903,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1362, - "top": 1053, + "left": 1355, + "top": 1036, "height": 13, "alpha": -0.7853981633974483, "distance": 40, @@ -14027,8 +12922,8 @@ "$ref": "AAAAAAGAlWX+zaGiSKc=" }, "font": "Arial;13;0", - "left": 1385, - "top": 1084, + "left": 1370, + "top": 1073, "width": 7.22998046875, "height": 13, "alpha": 0.5235987755982988, @@ -14079,7 +12974,7 @@ "$ref": "AAAAAAGAlU+ijhOm5cs=" }, "lineStyle": 1, - "points": "1134:1230;1401:1069", + "points": "1094:1152;1391:1061", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGAlWX+zaGlYsM=" @@ -14137,8 +13032,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1156, - "top": 1118, + "left": 1111, + "top": 1054, "height": 13, "alpha": 1.5707963267948966, "distance": 15, @@ -14158,8 +13053,8 @@ }, "visible": null, "font": "Arial;13;0", - "left": 1151, - "top": 1104, + "left": 1110, + "top": 1039, "height": 13, "alpha": 1.5707963267948966, "distance": 30, @@ -14179,8 +13074,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1165, - "top": 1147, + "left": 1114, + "top": 1083, "height": 13, "alpha": -1.5707963267948966, "distance": 15, @@ -14200,8 +13095,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 950, - "top": 1188, + "left": 859, + "top": 1077, "height": 13, "alpha": 0.5235987755982988, "distance": 30, @@ -14221,8 +13116,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 948, - "top": 1175, + "left": 860, + "top": 1064, "height": 13, "alpha": 0.7853981633974483, "distance": 40, @@ -14242,8 +13137,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 955, - "top": 1215, + "left": 857, + "top": 1105, "height": 13, "alpha": -0.5235987755982988, "distance": 25, @@ -14263,8 +13158,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1361, - "top": 1050, + "left": 1363, + "top": 1031, "height": 13, "alpha": -0.5235987755982988, "distance": 30, @@ -14283,8 +13178,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1355, - "top": 1038, + "left": 1360, + "top": 1018, "height": 13, "alpha": -0.7853981633974483, "distance": 40, @@ -14302,8 +13197,8 @@ "$ref": "AAAAAAGAlWYJTq5jlHI=" }, "font": "Arial;13;0", - "left": 1371, - "top": 1074, + "left": 1367, + "top": 1058, "width": 7.22998046875, "height": 13, "alpha": 0.5235987755982988, @@ -14325,7 +13220,7 @@ "visible": false, "font": "Arial;13;0", "left": 376, - "top": 752, + "top": 472, "width": 10, "height": 10 }, @@ -14341,7 +13236,7 @@ "visible": false, "font": "Arial;13;0", "left": 376, - "top": 752, + "top": 472, "width": 10, "height": 10 } @@ -14354,7 +13249,7 @@ "$ref": "AAAAAAGAlKBwAZy+AvI=" }, "lineStyle": 1, - "points": "931:1217;1391:1062", + "points": "835:1101;1391:1050", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGAlWYJTq5m5tE=" @@ -16161,8 +15056,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 304, - "top": 64, + "left": -160, + "top": 144, "height": 13 }, { @@ -16172,8 +15067,8 @@ "$ref": "AAAAAAGAlXGQqAqnwQ8=" }, "font": "Arial;13;1", - "left": 1661, - "top": 887, + "left": 1429, + "top": 927, "width": 41.919921875, "height": 13, "text": "Data" @@ -16186,8 +15081,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 304, - "top": 64, + "left": -160, + "top": 144, "width": 191.43896484375, "height": 13, "text": "(from BrighterTrades Class View)" @@ -16200,15 +15095,15 @@ }, "visible": false, "font": "Arial;13;0", - "left": 304, - "top": 64, + "left": -160, + "top": 144, "height": 13, "horizontalAlignment": 1 } ], "font": "Arial;13;0", - "left": 1656, - "top": 880, + "left": 1424, + "top": 920, "width": 51.919921875, "height": 25, "stereotypeLabel": { @@ -16234,8 +15129,8 @@ "$ref": "AAAAAAGAlXGQqAqkRnk=" }, "font": "Arial;13;0", - "left": 1656, - "top": 905, + "left": 1424, + "top": 945, "width": 51.919921875, "height": 10 }, @@ -16249,8 +15144,8 @@ "$ref": "AAAAAAGAlXGQqAqkRnk=" }, "font": "Arial;13;0", - "left": 1656, - "top": 915, + "left": 1424, + "top": 955, "width": 51.919921875, "height": 10 }, @@ -16265,8 +15160,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 152, - "top": 32, + "left": -80, + "top": 72, "width": 10, "height": 10 }, @@ -16281,16 +15176,16 @@ }, "visible": false, "font": "Arial;13;0", - "left": 152, - "top": 32, + "left": -80, + "top": 72, "width": 10, "height": 10 } ], "font": "Arial;13;0", "containerChangeable": true, - "left": 1656, - "top": 880, + "left": 1424, + "top": 920, "width": 51.919921875, "height": 45, "nameCompartment": { @@ -16330,8 +15225,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1573, - "top": 976, + "left": 1458, + "top": 989, "height": 13, "alpha": 1.5707963267948966, "distance": 15, @@ -16351,8 +15246,8 @@ }, "visible": null, "font": "Arial;13;0", - "left": 1581, - "top": 989, + "left": 1473, + "top": 991, "height": 13, "alpha": 1.5707963267948966, "distance": 30, @@ -16372,8 +15267,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1558, - "top": 951, + "left": 1429, + "top": 986, "height": 13, "alpha": -1.5707963267948966, "distance": 15, @@ -16393,8 +15288,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1640, - "top": 937, + "left": 1459, + "top": 986, "height": 13, "alpha": 0.5235987755982988, "distance": 30, @@ -16414,8 +15309,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1645, - "top": 949, + "left": 1472, + "top": 990, "height": 13, "alpha": 0.7853981633974483, "distance": 40, @@ -16435,8 +15330,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1630, - "top": 911, + "left": 1432, + "top": 979, "height": 13, "alpha": -0.5235987755982988, "distance": 25, @@ -16456,8 +15351,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1507, - "top": 1016, + "left": 1458, + "top": 992, "height": 13, "alpha": -0.5235987755982988, "distance": 30, @@ -16476,8 +15371,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1516, - "top": 1026, + "left": 1472, + "top": 991, "height": 13, "alpha": -0.7853981633974483, "distance": 40, @@ -16496,8 +15391,8 @@ }, "visible": false, "font": "Arial;13;0", - "left": 1490, - "top": 995, + "left": 1430, + "top": 994, "height": 13, "alpha": 0.5235987755982988, "distance": 25, @@ -16542,7 +15437,7 @@ "$ref": "AAAAAAGAlXGQqAqmq9A=" }, "lineStyle": 1, - "points": "1655:917;1478:1023", + "points": "1447:965;1441:1023", "showVisibility": true, "nameLabel": { "$ref": "AAAAAAGAlXY64xtImbg=" @@ -16578,6 +15473,14468 @@ "headQualifiersCompartment": { "$ref": "AAAAAAGAlXY64xtSUjo=" } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAr+jSx9m/ZaM=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAr+jSx9m7uxc=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAr+jSx9nADgk=", + "_parent": { + "$ref": "AAAAAAGAr+jSx9m/ZaM=" + }, + "model": { + "$ref": "AAAAAAGAr+jSx9m7uxc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1441, + "top": 880, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAr+jSx9m/ZaM=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAr+jSyNnB/Rg=", + "_parent": { + "$ref": "AAAAAAGAr+jSx9m/ZaM=" + }, + "model": { + "$ref": "AAAAAAGAr+jSx9m7uxc=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1426, + "top": 878, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAr+jSx9m/ZaM=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAr+jSyNnCvYc=", + "_parent": { + "$ref": "AAAAAAGAr+jSx9m/ZaM=" + }, + "model": { + "$ref": "AAAAAAGAr+jSx9m7uxc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1470, + "top": 883, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAr+jSx9m/ZaM=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAr+jSyNnDhrc=", + "_parent": { + "$ref": "AAAAAAGAr+jSx9m/ZaM=" + }, + "model": { + "$ref": "AAAAAAGAr+jSx9m89Aw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1440, + "top": 885, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAr+jSx9m/ZaM=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAr+jSyNnEC1U=", + "_parent": { + "$ref": "AAAAAAGAr+jSx9m/ZaM=" + }, + "model": { + "$ref": "AAAAAAGAr+jSx9m89Aw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1427, + "top": 881, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAr+jSx9m/ZaM=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAr+jSyNnFSfc=", + "_parent": { + "$ref": "AAAAAAGAr+jSx9m/ZaM=" + }, + "model": { + "$ref": "AAAAAAGAr+jSx9m89Aw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1467, + "top": 893, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAr+jSx9m/ZaM=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAr+jSyNnGFU4=", + "_parent": { + "$ref": "AAAAAAGAr+jSx9m/ZaM=" + }, + "model": { + "$ref": "AAAAAAGAr+jSx9m96Vk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1441, + "top": 875, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAr+jSx9m/ZaM=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAr+jSyNnHpo0=", + "_parent": { + "$ref": "AAAAAAGAr+jSx9m/ZaM=" + }, + "model": { + "$ref": "AAAAAAGAr+jSx9m96Vk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1428, + "top": 876, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAr+jSx9m/ZaM=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAr+jSyNnIGCk=", + "_parent": { + "$ref": "AAAAAAGAr+jSx9m/ZaM=" + }, + "model": { + "$ref": "AAAAAAGAr+jSx9m96Vk=" + }, + "font": "Arial;13;0", + "left": 1466, + "top": 875, + "width": 7.22998046875, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAr+jSx9m/ZaM=" + }, + "text": "1" + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAr+jSyNnJSJY=", + "_parent": { + "$ref": "AAAAAAGAr+jSx9m/ZaM=" + }, + "model": { + "$ref": "AAAAAAGAr+jSx9m89Aw=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAr+jSyNnKMZg=", + "_parent": { + "$ref": "AAAAAAGAr+jSx9m/ZaM=" + }, + "model": { + "$ref": "AAAAAAGAr+jSx9m96Vk=" + }, + "visible": false, + "font": "Arial;13;0", + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlUKJqdyuF7g=" + }, + "tail": { + "$ref": "AAAAAAGAlXGQqAqmq9A=" + }, + "lineStyle": 1, + "points": "1452:919;1460:858", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAr+jSx9nADgk=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAr+jSyNnB/Rg=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAr+jSyNnCvYc=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAr+jSyNnDhrc=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAr+jSyNnEC1U=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAr+jSyNnFSfc=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAr+jSyNnGFU4=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAr+jSyNnHpo0=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAr+jSyNnIGCk=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAr+jSyNnJSJY=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAr+jSyNnKMZg=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAsSucK7CZeI8=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAsSucK7CXGcM=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAsSucK7CaNgA=", + "_parent": { + "$ref": "AAAAAAGAsSucK7CZeI8=" + }, + "model": { + "$ref": "AAAAAAGAsSucK7CXGcM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 620, + "top": 861, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAsSucK7CZeI8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAsSucK7CbbOU=", + "_parent": { + "$ref": "AAAAAAGAsSucK7CZeI8=" + }, + "model": { + "$ref": "AAAAAAGAsSucK7CXGcM=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 606, + "top": 865, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAsSucK7CZeI8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAsSucK7CcfTk=", + "_parent": { + "$ref": "AAAAAAGAsSucK7CZeI8=" + }, + "model": { + "$ref": "AAAAAAGAsSucK7CXGcM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 649, + "top": 854, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAsSucK7CZeI8=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlKJCvaOyt2Y=" + }, + "tail": { + "$ref": "AAAAAAGAlOG1qKyk1j0=" + }, + "lineStyle": 1, + "points": "656:943;614:785", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAsSucK7CaNgA=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAsSucK7CbbOU=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAsSucK7CcfTk=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAsSvMUrjkfdU=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAsSvMUrjiIKI=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAsSvMUrjllww=", + "_parent": { + "$ref": "AAAAAAGAsSvMUrjkfdU=" + }, + "model": { + "$ref": "AAAAAAGAsSvMUrjiIKI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 562, + "top": 791, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAsSvMUrjkfdU=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAsSvMUrjmdx8=", + "_parent": { + "$ref": "AAAAAAGAsSvMUrjkfdU=" + }, + "model": { + "$ref": "AAAAAAGAsSvMUrjiIKI=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 549, + "top": 784, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAsSvMUrjkfdU=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAsSvMU7jn3eg=", + "_parent": { + "$ref": "AAAAAAGAsSvMUrjkfdU=" + }, + "model": { + "$ref": "AAAAAAGAsSvMUrjiIKI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 589, + "top": 804, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAsSvMUrjkfdU=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAlKJCvaOyt2Y=" + }, + "tail": { + "$ref": "AAAAAAGAlOF3iKq5ed8=" + }, + "lineStyle": 1, + "points": "572:1071;576:804;586:785", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAsSvMUrjllww=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAsSvMUrjmdx8=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAsSvMU7jn3eg=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAuM+E1l2pZY4=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAuM+E1l2qDaM=", + "_parent": { + "$ref": "AAAAAAGAuM+E1l2pZY4=" + }, + "model": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAuM+E1l2rEJY=", + "_parent": { + "$ref": "AAAAAAGAuM+E1l2qDaM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4512, + "top": 2672, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuM+E1l2s2Do=", + "_parent": { + "$ref": "AAAAAAGAuM+E1l2qDaM=" + }, + "font": "Arial;13;1", + "left": 1028, + "top": 2191, + "width": 89.2353515625, + "height": 13, + "text": "App.py" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuM+E1l2tIGg=", + "_parent": { + "$ref": "AAAAAAGAuM+E1l2qDaM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4512, + "top": 2672, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuM+E112ulQQ=", + "_parent": { + "$ref": "AAAAAAGAuM+E1l2qDaM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4512, + "top": 2672, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1023, + "top": 2184, + "width": 99.2353515625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAuM+E1l2rEJY=" + }, + "nameLabel": { + "$ref": "AAAAAAGAuM+E1l2s2Do=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAuM+E1l2tIGg=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuM+E112ulQQ=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAuM+E112vBj8=", + "_parent": { + "$ref": "AAAAAAGAuM+E1l2pZY4=" + }, + "model": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + }, + "font": "Arial;13;0", + "left": 1023, + "top": 2209, + "width": 99.2353515625, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAuM+E112weos=", + "_parent": { + "$ref": "AAAAAAGAuM+E1l2pZY4=" + }, + "model": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAuNGntqHb+88=", + "_parent": { + "$ref": "AAAAAAGAuM+E112weos=" + }, + "model": { + "$ref": "AAAAAAGAuNGnl6GHukw=" + }, + "font": "Arial;13;0", + "left": 1028, + "top": 2224, + "width": 89.2353515625, + "height": 13, + "text": "+index()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAuNIArKuxgAw=", + "_parent": { + "$ref": "AAAAAAGAuM+E112weos=" + }, + "model": { + "$ref": "AAAAAAGAuNIAl6td5Ew=" + }, + "font": "Arial;13;0", + "left": 1028, + "top": 2239, + "width": 89.2353515625, + "height": 13, + "text": "+webSocket()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAuNJXl7KuP+o=", + "_parent": { + "$ref": "AAAAAAGAuM+E112weos=" + }, + "model": { + "$ref": "AAAAAAGAuNJXgrJan6g=" + }, + "font": "Arial;13;0", + "left": 1028, + "top": 2254, + "width": 89.2353515625, + "height": 13, + "text": "+buy()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAuNKdsbmruoU=", + "_parent": { + "$ref": "AAAAAAGAuM+E112weos=" + }, + "model": { + "$ref": "AAAAAAGAuNKdnblXsAQ=" + }, + "font": "Arial;13;0", + "left": 1028, + "top": 2269, + "width": 89.2353515625, + "height": 13, + "text": "+sell()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAuNLGQ70tZU0=", + "_parent": { + "$ref": "AAAAAAGAuM+E112weos=" + }, + "model": { + "$ref": "AAAAAAGAuNLGLrzZIAs=" + }, + "font": "Arial;13;0", + "left": 1028, + "top": 2284, + "width": 89.2353515625, + "height": 13, + "text": "+settings()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAuNL7EcCvU8Q=", + "_parent": { + "$ref": "AAAAAAGAuM+E112weos=" + }, + "model": { + "$ref": "AAAAAAGAuNL6+8BbR6g=" + }, + "font": "Arial;13;0", + "left": 1028, + "top": 2299, + "width": 89.2353515625, + "height": 13, + "text": "+history()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAuNND9MQxhmM=", + "_parent": { + "$ref": "AAAAAAGAuM+E112weos=" + }, + "model": { + "$ref": "AAAAAAGAuNND38PdSbM=" + }, + "font": "Arial;13;0", + "left": 1028, + "top": 2314, + "width": 89.2353515625, + "height": 13, + "text": "+saved_data()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAuNOSTseztKc=", + "_parent": { + "$ref": "AAAAAAGAuM+E112weos=" + }, + "model": { + "$ref": "AAAAAAGAuNOSN8dfJtE=" + }, + "font": "Arial;13;0", + "left": 1028, + "top": 2329, + "width": 89.2353515625, + "height": 13, + "text": "+indicator_init()", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 1023, + "top": 2219, + "width": 99.2353515625, + "height": 128 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAuM+E112x9xk=", + "_parent": { + "$ref": "AAAAAAGAuM+E1l2pZY4=" + }, + "model": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2368, + "top": 1344, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAuM+E112yHQg=", + "_parent": { + "$ref": "AAAAAAGAuM+E1l2pZY4=" + }, + "model": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2368, + "top": 1344, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1023, + "top": 2184, + "width": 99.2353515625, + "height": 163, + "nameCompartment": { + "$ref": "AAAAAAGAuM+E1l2qDaM=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAuM+E112vBj8=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAuM+E112weos=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAuM+E112x9xk=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAuM+E112yHQg=" + } + }, + { + "_type": "UMLInterfaceView", + "_id": "AAAAAAGAuNzCJ/fZex4=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuNzCJ/fX2oc=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAuNzCKPfaTxM=", + "_parent": { + "$ref": "AAAAAAGAuNzCJ/fZex4=" + }, + "model": { + "$ref": "AAAAAAGAuNzCJ/fX2oc=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAuNzCKPfbBug=", + "_parent": { + "$ref": "AAAAAAGAuNzCKPfaTxM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4624, + "top": 3040, + "width": 64.32080078125, + "height": 13, + "text": "«interface»" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuNzCKPfcoeU=", + "_parent": { + "$ref": "AAAAAAGAuNzCKPfaTxM=" + }, + "font": "Arial;13;1", + "left": 773, + "top": 2390, + "width": 91.05078125, + "height": 13, + "text": "Server" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuNzCKPfd7kY=", + "_parent": { + "$ref": "AAAAAAGAuNzCKPfaTxM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4624, + "top": 3040, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuNzCKPfeWMk=", + "_parent": { + "$ref": "AAAAAAGAuNzCKPfaTxM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4624, + "top": 3040, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 768, + "top": 2383, + "width": 101.05078125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAuNzCKPfbBug=" + }, + "nameLabel": { + "$ref": "AAAAAAGAuNzCKPfcoeU=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAuNzCKPfd7kY=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuNzCKPfeWMk=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAuNzCKPffVMI=", + "_parent": { + "$ref": "AAAAAAGAuNzCJ/fZex4=" + }, + "model": { + "$ref": "AAAAAAGAuNzCJ/fX2oc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2272, + "top": 1688, + "width": 10, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAuNzCKPfgYzE=", + "_parent": { + "$ref": "AAAAAAGAuNzCJ/fZex4=" + }, + "model": { + "$ref": "AAAAAAGAuNzCJ/fX2oc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2272, + "top": 1688, + "width": 10, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAuNzCKPfhc5c=", + "_parent": { + "$ref": "AAAAAAGAuNzCJ/fZex4=" + }, + "model": { + "$ref": "AAAAAAGAuNzCJ/fX2oc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2272, + "top": 1688, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAuNzCKPfi0k0=", + "_parent": { + "$ref": "AAAAAAGAuNzCJ/fZex4=" + }, + "model": { + "$ref": "AAAAAAGAuNzCJ/fX2oc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2272, + "top": 1688, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 768, + "top": 2328, + "width": 101.05078125, + "height": 81, + "stereotypeDisplay": "icon", + "nameCompartment": { + "$ref": "AAAAAAGAuNzCKPfaTxM=" + }, + "suppressAttributes": true, + "suppressOperations": true, + "attributeCompartment": { + "$ref": "AAAAAAGAuNzCKPffVMI=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAuNzCKPfgYzE=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAuNzCKPfhc5c=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAuNzCKPfi0k0=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAuN1auhCDKz0=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuN1auRB/qIU=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuN1auhCEbhI=", + "_parent": { + "$ref": "AAAAAAGAuN1auhCDKz0=" + }, + "model": { + "$ref": "AAAAAAGAuN1auRB/qIU=" + }, + "font": "Arial;13;0", + "left": 907, + "top": 2323, + "width": 86.35986328125, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuN1auhCDKz0=" + }, + "edgePosition": 1, + "text": "+request" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuN1auhCFbN0=", + "_parent": { + "$ref": "AAAAAAGAuN1auhCDKz0=" + }, + "model": { + "$ref": "AAAAAAGAuN1auRB/qIU=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 956, + "top": 2337, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuN1auhCDKz0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuN1auhCG4x8=", + "_parent": { + "$ref": "AAAAAAGAuN1auhCDKz0=" + }, + "model": { + "$ref": "AAAAAAGAuN1auRB/qIU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 939, + "top": 2296, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuN1auhCDKz0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuN1auhCHazA=", + "_parent": { + "$ref": "AAAAAAGAuN1auhCDKz0=" + }, + "model": { + "$ref": "AAAAAAGAuN1auRCA3aw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1003, + "top": 2302, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuN1auhCDKz0=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuN1auhCIM1w=", + "_parent": { + "$ref": "AAAAAAGAuN1auhCDKz0=" + }, + "model": { + "$ref": "AAAAAAGAuN1auRCA3aw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1006, + "top": 2315, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuN1auhCDKz0=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuN1auhCJNLE=", + "_parent": { + "$ref": "AAAAAAGAuN1auhCDKz0=" + }, + "model": { + "$ref": "AAAAAAGAuN1auRCA3aw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 997, + "top": 2275, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuN1auhCDKz0=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuN1auhCKOXk=", + "_parent": { + "$ref": "AAAAAAGAuN1auhCDKz0=" + }, + "model": { + "$ref": "AAAAAAGAuN1auRCBKc4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 898, + "top": 2345, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuN1auhCDKz0=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuN1auhCL2ok=", + "_parent": { + "$ref": "AAAAAAGAuN1auhCDKz0=" + }, + "model": { + "$ref": "AAAAAAGAuN1auRCBKc4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 905, + "top": 2356, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuN1auhCDKz0=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuN1auhCMGho=", + "_parent": { + "$ref": "AAAAAAGAuN1auhCDKz0=" + }, + "model": { + "$ref": "AAAAAAGAuN1auRCBKc4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 884, + "top": 2321, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuN1auhCDKz0=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuN1auhCNv48=", + "_parent": { + "$ref": "AAAAAAGAuN1auhCDKz0=" + }, + "model": { + "$ref": "AAAAAAGAuN1auRCA3aw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -1968, + "top": 1392, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuN1auhCOjnY=", + "_parent": { + "$ref": "AAAAAAGAuN1auhCDKz0=" + }, + "model": { + "$ref": "AAAAAAGAuN1auRCBKc4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -1968, + "top": 1392, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuNzCJ/fZex4=" + }, + "tail": { + "$ref": "AAAAAAGAuM+E1l2pZY4=" + }, + "lineStyle": 1, + "points": "1022:2285;869:2347", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuN1auhCEbhI=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuN1auhCFbN0=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuN1auhCG4x8=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAuN1auhCHazA=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAuN1auhCIM1w=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAuN1auhCJNLE=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAuN1auhCKOXk=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAuN1auhCL2ok=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAuN1auhCMGho=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAuN1auhCNv48=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAuN1auhCOjnY=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAuONfWHxEB+M=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuONfWHxCcSg=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAuONfWHxF6sE=", + "_parent": { + "$ref": "AAAAAAGAuONfWHxEB+M=" + }, + "model": { + "$ref": "AAAAAAGAuONfWHxCcSg=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAuONfWXxGxu4=", + "_parent": { + "$ref": "AAAAAAGAuONfWHxF6sE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4432, + "top": 3008, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuONfWXxHtDA=", + "_parent": { + "$ref": "AAAAAAGAuONfWHxF6sE=" + }, + "font": "Arial;13;1", + "left": 1028, + "top": 2479, + "width": 89.9462890625, + "height": 13, + "text": "AppSocket" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuONfWXxI1WY=", + "_parent": { + "$ref": "AAAAAAGAuONfWHxF6sE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4432, + "top": 3008, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuONfWXxJYTk=", + "_parent": { + "$ref": "AAAAAAGAuONfWHxF6sE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4432, + "top": 3008, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1023, + "top": 2472, + "width": 99.9462890625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAuONfWXxGxu4=" + }, + "nameLabel": { + "$ref": "AAAAAAGAuONfWXxHtDA=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAuONfWXxI1WY=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuONfWXxJYTk=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAuONfWXxKU9k=", + "_parent": { + "$ref": "AAAAAAGAuONfWHxEB+M=" + }, + "model": { + "$ref": "AAAAAAGAuONfWHxCcSg=" + }, + "font": "Arial;13;0", + "left": 1023, + "top": 2497, + "width": 99.9462890625, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAuONfWXxLS/U=", + "_parent": { + "$ref": "AAAAAAGAuONfWHxEB+M=" + }, + "model": { + "$ref": "AAAAAAGAuONfWHxCcSg=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAuOVBH6mAWaI=", + "_parent": { + "$ref": "AAAAAAGAuONfWXxLS/U=" + }, + "model": { + "$ref": "AAAAAAGAuOVBA6kpP+8=" + }, + "font": "Arial;13;0", + "left": 1028, + "top": 2512, + "width": 89.9462890625, + "height": 13, + "text": "+recieve_msg()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAuOYyo7EB6Nc=", + "_parent": { + "$ref": "AAAAAAGAuONfWXxLS/U=" + }, + "model": { + "$ref": "AAAAAAGAuOYyjLCqQ2s=" + }, + "font": "Arial;13;0", + "left": 1028, + "top": 2527, + "width": 89.9462890625, + "height": 13, + "text": "+send_msg()", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 1023, + "top": 2507, + "width": 99.9462890625, + "height": 38 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAuONfWXxM0Lg=", + "_parent": { + "$ref": "AAAAAAGAuONfWHxEB+M=" + }, + "model": { + "$ref": "AAAAAAGAuONfWHxCcSg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2336, + "top": 1504, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAuONfWXxNvy0=", + "_parent": { + "$ref": "AAAAAAGAuONfWHxEB+M=" + }, + "model": { + "$ref": "AAAAAAGAuONfWHxCcSg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2336, + "top": 1504, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1023, + "top": 2472, + "width": 99.9462890625, + "height": 73, + "nameCompartment": { + "$ref": "AAAAAAGAuONfWHxF6sE=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAuONfWXxKU9k=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAuONfWXxLS/U=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAuONfWXxM0Lg=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAuONfWXxNvy0=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAuOTIMJPtMrw=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuOTIMJPrIJA=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAuOTIMJPu0mM=", + "_parent": { + "$ref": "AAAAAAGAuOTIMJPtMrw=" + }, + "model": { + "$ref": "AAAAAAGAuOTIMJPrIJA=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAuOTIMZPvsDM=", + "_parent": { + "$ref": "AAAAAAGAuOTIMJPu0mM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -3408, + "top": 3088, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuOTIMZPwojE=", + "_parent": { + "$ref": "AAAAAAGAuOTIMJPu0mM=" + }, + "font": "Arial;13;1", + "left": 1773, + "top": 2298, + "width": 122.49072265625, + "height": 13, + "text": "Data" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuOTIMZPxdIc=", + "_parent": { + "$ref": "AAAAAAGAuOTIMJPu0mM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -3408, + "top": 3088, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuOTIMZPypYc=", + "_parent": { + "$ref": "AAAAAAGAuOTIMJPu0mM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -3408, + "top": 3088, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1768, + "top": 2291, + "width": 132.49072265625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAuOTIMZPvsDM=" + }, + "nameLabel": { + "$ref": "AAAAAAGAuOTIMZPwojE=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAuOTIMZPxdIc=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuOTIMZPypYc=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAuOTIMZPz6QQ=", + "_parent": { + "$ref": "AAAAAAGAuOTIMJPtMrw=" + }, + "model": { + "$ref": "AAAAAAGAuOTIMJPrIJA=" + }, + "font": "Arial;13;0", + "left": 1768, + "top": 2316, + "width": 132.49072265625, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAuOTIMZP0j7Y=", + "_parent": { + "$ref": "AAAAAAGAuOTIMJPtMrw=" + }, + "model": { + "$ref": "AAAAAAGAuOTIMJPrIJA=" + }, + "subViews": [ + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAuOoprtYJb08=", + "_parent": { + "$ref": "AAAAAAGAuOTIMZP0j7Y=" + }, + "model": { + "$ref": "AAAAAAGAuOopmNWvR3w=" + }, + "font": "Arial;13;0", + "left": 1773, + "top": 2331, + "width": 122.49072265625, + "height": 13, + "text": "+serve_index()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAuOp7Wtnuwg4=", + "_parent": { + "$ref": "AAAAAAGAuOTIMZP0j7Y=" + }, + "model": { + "$ref": "AAAAAAGAuOp7P9mUGCs=" + }, + "font": "Arial;13;0", + "left": 1773, + "top": 2346, + "width": 122.49072265625, + "height": 13, + "text": "+serve_history()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAuOtRquGxB7k=", + "_parent": { + "$ref": "AAAAAAGAuOTIMZP0j7Y=" + }, + "model": { + "$ref": "AAAAAAGAuOtRluFXjHk=" + }, + "font": "Arial;13;0", + "left": 1773, + "top": 2361, + "width": 122.49072265625, + "height": 13, + "text": "+serve_saved_data()", + "horizontalAlignment": 0 + }, + { + "_type": "UMLOperationView", + "_id": "AAAAAAGAuOu1mel0vx0=", + "_parent": { + "$ref": "AAAAAAGAuOTIMZP0j7Y=" + }, + "model": { + "$ref": "AAAAAAGAuOu1hekagdo=" + }, + "font": "Arial;13;0", + "left": 1773, + "top": 2376, + "width": 122.49072265625, + "height": 13, + "text": "+serve_init_data()", + "horizontalAlignment": 0 + } + ], + "font": "Arial;13;0", + "left": 1768, + "top": 2326, + "width": 132.49072265625, + "height": 68 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAuOTIMZP1YK4=", + "_parent": { + "$ref": "AAAAAAGAuOTIMJPtMrw=" + }, + "model": { + "$ref": "AAAAAAGAuOTIMJPrIJA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -1704, + "top": 1544, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAuOTIMZP2ZEg=", + "_parent": { + "$ref": "AAAAAAGAuOTIMJPtMrw=" + }, + "model": { + "$ref": "AAAAAAGAuOTIMJPrIJA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -1704, + "top": 1544, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1768, + "top": 2291, + "width": 132.49072265625, + "height": 103, + "nameCompartment": { + "$ref": "AAAAAAGAuOTIMJPu0mM=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAuOTIMZPz6QQ=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAuOTIMZP0j7Y=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAuOTIMZP1YK4=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAuOTIMZP2ZEg=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAuO4F8PeO/FY=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuO4F7/eMLTU=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAuO4F8PePPio=", + "_parent": { + "$ref": "AAAAAAGAuO4F8PeO/FY=" + }, + "model": { + "$ref": "AAAAAAGAuO4F7/eMLTU=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAuO4F8PeQ2As=", + "_parent": { + "$ref": "AAAAAAGAuO4F8PePPio=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4078, + "top": 2112, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuO4F8PeR/xc=", + "_parent": { + "$ref": "AAAAAAGAuO4F8PePPio=" + }, + "font": "Arial;13;1", + "left": 1445, + "top": 1919, + "width": 85.20458984375, + "height": 13, + "text": "Configuration" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuO4F8PeSkAQ=", + "_parent": { + "$ref": "AAAAAAGAuO4F8PePPio=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4078, + "top": 2112, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuO4F8PeTxHc=", + "_parent": { + "$ref": "AAAAAAGAuO4F8PePPio=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4078, + "top": 2112, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1440, + "top": 1912, + "width": 95.20458984375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAuO4F8PeQ2As=" + }, + "nameLabel": { + "$ref": "AAAAAAGAuO4F8PeR/xc=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAuO4F8PeSkAQ=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuO4F8PeTxHc=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAuO4F8PeUTiw=", + "_parent": { + "$ref": "AAAAAAGAuO4F8PeO/FY=" + }, + "model": { + "$ref": "AAAAAAGAuO4F7/eMLTU=" + }, + "font": "Arial;13;0", + "left": 1440, + "top": 1937, + "width": 95.20458984375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAuO4F8PeVex8=", + "_parent": { + "$ref": "AAAAAAGAuO4F8PeO/FY=" + }, + "model": { + "$ref": "AAAAAAGAuO4F7/eMLTU=" + }, + "font": "Arial;13;0", + "left": 1440, + "top": 1947, + "width": 95.20458984375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAuO4F8PeWuHk=", + "_parent": { + "$ref": "AAAAAAGAuO4F8PeO/FY=" + }, + "model": { + "$ref": "AAAAAAGAuO4F7/eMLTU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2039, + "top": 1056, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAuO4F8PeXkOA=", + "_parent": { + "$ref": "AAAAAAGAuO4F8PeO/FY=" + }, + "model": { + "$ref": "AAAAAAGAuO4F7/eMLTU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2039, + "top": 1056, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1440, + "top": 1912, + "width": 95.20458984375, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAuO4F8PePPio=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAuO4F8PeUTiw=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAuO4F8PeVex8=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAuO4F8PeWuHk=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAuO4F8PeXkOA=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAuPHt6BZST34=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuPHt5xZO7C4=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuPHt6BZT0f8=", + "_parent": { + "$ref": "AAAAAAGAuPHt6BZST34=" + }, + "model": { + "$ref": "AAAAAAGAuPHt5xZO7C4=" + }, + "font": "Arial;13;0", + "left": 1229, + "top": 2073, + "width": 102.2734375, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuPHt6BZST34=" + }, + "edgePosition": 1, + "text": "+get&set" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuPHt6BZUaY4=", + "_parent": { + "$ref": "AAAAAAGAuPHt6BZST34=" + }, + "model": { + "$ref": "AAAAAAGAuPHt5xZO7C4=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1271, + "top": 2061, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuPHt6BZST34=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuPHt6BZVCU0=", + "_parent": { + "$ref": "AAAAAAGAuPHt6BZST34=" + }, + "model": { + "$ref": "AAAAAAGAuPHt5xZO7C4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1299, + "top": 2096, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuPHt6BZST34=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuPHt6BZWtoI=", + "_parent": { + "$ref": "AAAAAAGAuPHt6BZST34=" + }, + "model": { + "$ref": "AAAAAAGAuPHt5xZPceg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1132, + "top": 2191, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuPHt6BZST34=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuPHt6BZXgd0=", + "_parent": { + "$ref": "AAAAAAGAuPHt6BZST34=" + }, + "model": { + "$ref": "AAAAAAGAuPHt5xZPceg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1126, + "top": 2179, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuPHt6BZST34=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuPHt6BZYbHk=", + "_parent": { + "$ref": "AAAAAAGAuPHt6BZST34=" + }, + "model": { + "$ref": "AAAAAAGAuPHt5xZPceg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1146, + "top": 2215, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuPHt6BZST34=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuPHt6BZZY54=", + "_parent": { + "$ref": "AAAAAAGAuPHt6BZST34=" + }, + "model": { + "$ref": "AAAAAAGAuPHt5xZQSeQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1428, + "top": 1955, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuPHt6BZST34=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuPHt6BZarHU=", + "_parent": { + "$ref": "AAAAAAGAuPHt6BZST34=" + }, + "model": { + "$ref": "AAAAAAGAuPHt5xZQSeQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1418, + "top": 1946, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuPHt6BZST34=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuPHt6BZbgW8=", + "_parent": { + "$ref": "AAAAAAGAuPHt6BZST34=" + }, + "model": { + "$ref": "AAAAAAGAuPHt5xZQSeQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1448, + "top": 1974, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuPHt6BZST34=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuPHt6BZct0U=", + "_parent": { + "$ref": "AAAAAAGAuPHt6BZST34=" + }, + "model": { + "$ref": "AAAAAAGAuPHt5xZPceg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuPHt6BZdKxE=", + "_parent": { + "$ref": "AAAAAAGAuPHt6BZST34=" + }, + "model": { + "$ref": "AAAAAAGAuPHt5xZQSeQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuO4F8PeO/FY=" + }, + "tail": { + "$ref": "AAAAAAGAuM+E1l2pZY4=" + }, + "lineStyle": 1, + "points": "1122:2225;1458:1957", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuPHt6BZT0f8=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuPHt6BZUaY4=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuPHt6BZVCU0=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAuPHt6BZWtoI=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAuPHt6BZXgd0=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAuPHt6BZYbHk=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAuPHt6BZZY54=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAuPHt6BZarHU=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAuPHt6BZbgW8=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAuPHt6BZct0U=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAuPHt6BZdKxE=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAuPiWF3PZbo0=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuPiWF3PXblM=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAuPiWF3PasVE=", + "_parent": { + "$ref": "AAAAAAGAuPiWF3PZbo0=" + }, + "model": { + "$ref": "AAAAAAGAuPiWF3PXblM=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAuPiWGHPbeNk=", + "_parent": { + "$ref": "AAAAAAGAuPiWF3PasVE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4080, + "top": 2496, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuPiWGHPc2GE=", + "_parent": { + "$ref": "AAAAAAGAuPiWF3PasVE=" + }, + "font": "Arial;13;1", + "left": 1467, + "top": 2192, + "width": 41.919921875, + "height": 13, + "text": "Trade" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuPiWGHPdL+A=", + "_parent": { + "$ref": "AAAAAAGAuPiWF3PasVE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4080, + "top": 2496, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuPiWGHPefw0=", + "_parent": { + "$ref": "AAAAAAGAuPiWF3PasVE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4080, + "top": 2496, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1462, + "top": 2185, + "width": 51.919921875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAuPiWGHPbeNk=" + }, + "nameLabel": { + "$ref": "AAAAAAGAuPiWGHPc2GE=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAuPiWGHPdL+A=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuPiWGHPefw0=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAuPiWGHPfuVE=", + "_parent": { + "$ref": "AAAAAAGAuPiWF3PZbo0=" + }, + "model": { + "$ref": "AAAAAAGAuPiWF3PXblM=" + }, + "font": "Arial;13;0", + "left": 1462, + "top": 2210, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAuPiWGHPgGjQ=", + "_parent": { + "$ref": "AAAAAAGAuPiWF3PZbo0=" + }, + "model": { + "$ref": "AAAAAAGAuPiWF3PXblM=" + }, + "font": "Arial;13;0", + "left": 1462, + "top": 2220, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAuPiWGHPhQWk=", + "_parent": { + "$ref": "AAAAAAGAuPiWF3PZbo0=" + }, + "model": { + "$ref": "AAAAAAGAuPiWF3PXblM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1248, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAuPiWGHPi+AA=", + "_parent": { + "$ref": "AAAAAAGAuPiWF3PZbo0=" + }, + "model": { + "$ref": "AAAAAAGAuPiWF3PXblM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1248, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1462, + "top": 2185, + "width": 51.919921875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAuPiWF3PasVE=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAuPiWGHPfuVE=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAuPiWGHPgGjQ=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAuPiWGHPhQWk=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAuPiWGHPi+AA=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAuPjy+YF2onw=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuPjy+YFyJHE=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuPjy+YF36og=", + "_parent": { + "$ref": "AAAAAAGAuPjy+YF2onw=" + }, + "model": { + "$ref": "AAAAAAGAuPjy+YFyJHE=" + }, + "font": "Arial;13;0", + "left": 1260, + "top": 2213, + "width": 56.72900390625, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuPjy+YF2onw=" + }, + "edgePosition": 1, + "text": "+buy&sell" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuPjy+YF4R/I=", + "_parent": { + "$ref": "AAAAAAGAuPjy+YF2onw=" + }, + "model": { + "$ref": "AAAAAAGAuPjy+YFyJHE=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1286, + "top": 2198, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuPjy+YF2onw=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuPjy+YF5z1E=", + "_parent": { + "$ref": "AAAAAAGAuPjy+YF2onw=" + }, + "model": { + "$ref": "AAAAAAGAuPjy+YFyJHE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1293, + "top": 2242, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuPjy+YF2onw=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuPjy+YF6rog=", + "_parent": { + "$ref": "AAAAAAGAuPjy+YF2onw=" + }, + "model": { + "$ref": "AAAAAAGAuPjy+YFzy1Q=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1145, + "top": 2233, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuPjy+YF2onw=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuPjy+YF7bQo=", + "_parent": { + "$ref": "AAAAAAGAuPjy+YF2onw=" + }, + "model": { + "$ref": "AAAAAAGAuPjy+YFzy1Q=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1146, + "top": 2220, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuPjy+YF2onw=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuPjy+YF8Hhw=", + "_parent": { + "$ref": "AAAAAAGAuPjy+YF2onw=" + }, + "model": { + "$ref": "AAAAAAGAuPjy+YFzy1Q=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1145, + "top": 2261, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuPjy+YF2onw=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuPjy+YF9huc=", + "_parent": { + "$ref": "AAAAAAGAuPjy+YF2onw=" + }, + "model": { + "$ref": "AAAAAAGAuPjy+YF0g+o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1433, + "top": 2193, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuPjy+YF2onw=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuPjy+YF+hcI=", + "_parent": { + "$ref": "AAAAAAGAuPjy+YF2onw=" + }, + "model": { + "$ref": "AAAAAAGAuPjy+YF0g+o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1429, + "top": 2180, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuPjy+YF2onw=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuPjy+YF/YpU=", + "_parent": { + "$ref": "AAAAAAGAuPjy+YF2onw=" + }, + "model": { + "$ref": "AAAAAAGAuPjy+YF0g+o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1441, + "top": 2220, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuPjy+YF2onw=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuPjy+YGAq3M=", + "_parent": { + "$ref": "AAAAAAGAuPjy+YF2onw=" + }, + "model": { + "$ref": "AAAAAAGAuPjy+YFzy1Q=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuPjy+YGBgW0=", + "_parent": { + "$ref": "AAAAAAGAuPjy+YF2onw=" + }, + "model": { + "$ref": "AAAAAAGAuPjy+YF0g+o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuPiWF3PZbo0=" + }, + "tail": { + "$ref": "AAAAAAGAuM+E1l2pZY4=" + }, + "lineStyle": 1, + "points": "1122:2258;1461:2211", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuPjy+YF36og=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuPjy+YF4R/I=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuPjy+YF5z1E=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAuPjy+YF6rog=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAuPjy+YF7bQo=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAuPjy+YF8Hhw=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAuPjy+YF9huc=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAuPjy+YF+hcI=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAuPjy+YF/YpU=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAuPjy+YGAq3M=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAuPjy+YGBgW0=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAuPqBdMRhmWQ=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuPqBc8Rf+0Y=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAuPqBdMRi96I=", + "_parent": { + "$ref": "AAAAAAGAuPqBdMRhmWQ=" + }, + "model": { + "$ref": "AAAAAAGAuPqBc8Rf+0Y=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAuPqBdMRjGt4=", + "_parent": { + "$ref": "AAAAAAGAuPqBdMRi96I=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4144, + "top": 3152, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuPqBdMRkxuo=", + "_parent": { + "$ref": "AAAAAAGAuPqBdMRi96I=" + }, + "font": "Arial;13;1", + "left": 1463, + "top": 2283, + "width": 50.57177734375, + "height": 13, + "text": "Candles" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuPqBdMRlNOo=", + "_parent": { + "$ref": "AAAAAAGAuPqBdMRi96I=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4144, + "top": 3152, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuPqBdMRm3LM=", + "_parent": { + "$ref": "AAAAAAGAuPqBdMRi96I=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4144, + "top": 3152, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1458, + "top": 2276, + "width": 60.57177734375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAuPqBdMRjGt4=" + }, + "nameLabel": { + "$ref": "AAAAAAGAuPqBdMRkxuo=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAuPqBdMRlNOo=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuPqBdMRm3LM=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAuPqBdMRniaI=", + "_parent": { + "$ref": "AAAAAAGAuPqBdMRhmWQ=" + }, + "model": { + "$ref": "AAAAAAGAuPqBc8Rf+0Y=" + }, + "font": "Arial;13;0", + "left": 1458, + "top": 2301, + "width": 60.57177734375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAuPqBdMRoQ0o=", + "_parent": { + "$ref": "AAAAAAGAuPqBdMRhmWQ=" + }, + "model": { + "$ref": "AAAAAAGAuPqBc8Rf+0Y=" + }, + "font": "Arial;13;0", + "left": 1458, + "top": 2311, + "width": 60.57177734375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAuPqBdMRpH1s=", + "_parent": { + "$ref": "AAAAAAGAuPqBdMRhmWQ=" + }, + "model": { + "$ref": "AAAAAAGAuPqBc8Rf+0Y=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2072, + "top": 1576, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAuPqBdMRq4XM=", + "_parent": { + "$ref": "AAAAAAGAuPqBdMRhmWQ=" + }, + "model": { + "$ref": "AAAAAAGAuPqBc8Rf+0Y=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2072, + "top": 1576, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1458, + "top": 2276, + "width": 60.57177734375, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAuPqBdMRi96I=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAuPqBdMRniaI=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAuPqBdMRoQ0o=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAuPqBdMRpH1s=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAuPqBdMRq4XM=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAuPviTiHFGAg=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuPviTiHBWtg=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuPviTiHGwKQ=", + "_parent": { + "$ref": "AAAAAAGAuPviTiHFGAg=" + }, + "model": { + "$ref": "AAAAAAGAuPviTiHBWtg=" + }, + "font": "Arial;13;0", + "left": 1255, + "top": 2261, + "width": 71.1826171875, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuPviTiHFGAg=" + }, + "edgePosition": 1, + "text": "+get&set" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuPviTiHHOCw=", + "_parent": { + "$ref": "AAAAAAGAuPviTiHFGAg=" + }, + "model": { + "$ref": "AAAAAAGAuPviTiHBWtg=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1291, + "top": 2246, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuPviTiHFGAg=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuPviTiHICuY=", + "_parent": { + "$ref": "AAAAAAGAuPviTiHFGAg=" + }, + "model": { + "$ref": "AAAAAAGAuPviTiHBWtg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1287, + "top": 2290, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuPviTiHFGAg=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuPviTiHJn5U=", + "_parent": { + "$ref": "AAAAAAGAuPviTiHFGAg=" + }, + "model": { + "$ref": "AAAAAAGAuPviTiHCBgc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1149, + "top": 2250, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuPviTiHFGAg=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuPviTiHKvwo=", + "_parent": { + "$ref": "AAAAAAGAuPviTiHFGAg=" + }, + "model": { + "$ref": "AAAAAAGAuPviTiHCBgc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1152, + "top": 2237, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuPviTiHFGAg=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuPviTiHLQYQ=", + "_parent": { + "$ref": "AAAAAAGAuPviTiHFGAg=" + }, + "model": { + "$ref": "AAAAAAGAuPviTiHCBgc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1142, + "top": 2277, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuPviTiHFGAg=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuPviTiHMqh8=", + "_parent": { + "$ref": "AAAAAAGAuPviTiHFGAg=" + }, + "model": { + "$ref": "AAAAAAGAuPviTiHDjZI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1432, + "top": 2272, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuPviTiHFGAg=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuPviTiHNpmQ=", + "_parent": { + "$ref": "AAAAAAGAuPviTiHFGAg=" + }, + "model": { + "$ref": "AAAAAAGAuPviTiHDjZI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1431, + "top": 2259, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuPviTiHFGAg=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuPviTyHOP3E=", + "_parent": { + "$ref": "AAAAAAGAuPviTiHFGAg=" + }, + "model": { + "$ref": "AAAAAAGAuPviTiHDjZI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1434, + "top": 2300, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuPviTiHFGAg=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuPviTyHPUSk=", + "_parent": { + "$ref": "AAAAAAGAuPviTiHFGAg=" + }, + "model": { + "$ref": "AAAAAAGAuPviTiHCBgc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuPviTyHQiyo=", + "_parent": { + "$ref": "AAAAAAGAuPviTiHFGAg=" + }, + "model": { + "$ref": "AAAAAAGAuPviTiHDjZI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuPqBdMRhmWQ=" + }, + "tail": { + "$ref": "AAAAAAGAuM+E1l2pZY4=" + }, + "lineStyle": 1, + "points": "1122:2269;1457:2296", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuPviTiHGwKQ=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuPviTiHHOCw=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuPviTiHICuY=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAuPviTiHJn5U=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAuPviTiHKvwo=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAuPviTiHLQYQ=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAuPviTiHMqh8=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAuPviTiHNpmQ=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAuPviTyHOP3E=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAuPviTyHPUSk=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAuPviTyHQiyo=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAuP33uT39n/4=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuP33uT37UxE=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAuP33uT3+TWE=", + "_parent": { + "$ref": "AAAAAAGAuP33uT39n/4=" + }, + "model": { + "$ref": "AAAAAAGAuP33uT37UxE=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAuP33uT3/2xg=", + "_parent": { + "$ref": "AAAAAAGAuP33uT3+TWE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4160, + "top": 3440, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuP33uT4AUis=", + "_parent": { + "$ref": "AAAAAAGAuP33uT3+TWE=" + }, + "font": "Arial;13;1", + "left": 1457, + "top": 2740, + "width": 62.12451171875, + "height": 13, + "text": "Indicators" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuP33uT4Bh+U=", + "_parent": { + "$ref": "AAAAAAGAuP33uT3+TWE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4160, + "top": 3440, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuP33uT4Cu6U=", + "_parent": { + "$ref": "AAAAAAGAuP33uT3+TWE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4160, + "top": 3440, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1452, + "top": 2733, + "width": 72.12451171875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAuP33uT3/2xg=" + }, + "nameLabel": { + "$ref": "AAAAAAGAuP33uT4AUis=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAuP33uT4Bh+U=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuP33uT4Cu6U=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAuP33uT4DyNM=", + "_parent": { + "$ref": "AAAAAAGAuP33uT39n/4=" + }, + "model": { + "$ref": "AAAAAAGAuP33uT37UxE=" + }, + "font": "Arial;13;0", + "left": 1452, + "top": 2758, + "width": 72.12451171875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAuP33uT4ENrY=", + "_parent": { + "$ref": "AAAAAAGAuP33uT39n/4=" + }, + "model": { + "$ref": "AAAAAAGAuP33uT37UxE=" + }, + "font": "Arial;13;0", + "left": 1452, + "top": 2768, + "width": 72.12451171875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAuP33uj4FdM0=", + "_parent": { + "$ref": "AAAAAAGAuP33uT39n/4=" + }, + "model": { + "$ref": "AAAAAAGAuP33uT37UxE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2080, + "top": 1720, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAuP33uj4G2bE=", + "_parent": { + "$ref": "AAAAAAGAuP33uT39n/4=" + }, + "model": { + "$ref": "AAAAAAGAuP33uT37UxE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2080, + "top": 1720, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1452, + "top": 2733, + "width": 72.12451171875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAuP33uT3+TWE=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAuP33uT4DyNM=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAuP33uT4ENrY=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAuP33uj4FdM0=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAuP33uj4G2bE=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAuQejB2PoDAU=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuQejB2Pkbss=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuQejCGPpaNo=", + "_parent": { + "$ref": "AAAAAAGAuQejB2PoDAU=" + }, + "model": { + "$ref": "AAAAAAGAuQejB2Pkbss=" + }, + "font": "Arial;13;0", + "left": 1256, + "top": 2512, + "width": 100.10888671875, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuQejB2PoDAU=" + }, + "edgePosition": 1, + "text": "+get&set&update" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuQejCGPqCD4=", + "_parent": { + "$ref": "AAAAAAGAuQejB2PoDAU=" + }, + "model": { + "$ref": "AAAAAAGAuQejB2Pkbss=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1317, + "top": 2502, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuQejB2PoDAU=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuQejCGPrKtA=", + "_parent": { + "$ref": "AAAAAAGAuQejB2PoDAU=" + }, + "model": { + "$ref": "AAAAAAGAuQejB2Pkbss=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1283, + "top": 2531, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuQejB2PoDAU=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuQejCGPsJNQ=", + "_parent": { + "$ref": "AAAAAAGAuQejB2PoDAU=" + }, + "model": { + "$ref": "AAAAAAGAuQejB2PlSzc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1150, + "top": 2328, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuQejB2PoDAU=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuQejCGPtJk0=", + "_parent": { + "$ref": "AAAAAAGAuQejB2PoDAU=" + }, + "model": { + "$ref": "AAAAAAGAuQejB2PlSzc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1161, + "top": 2321, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuQejB2PoDAU=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuQejCGPu7WM=", + "_parent": { + "$ref": "AAAAAAGAuQejB2PoDAU=" + }, + "model": { + "$ref": "AAAAAAGAuQejB2PlSzc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1126, + "top": 2342, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuQejB2PoDAU=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuQejCGPvAeQ=", + "_parent": { + "$ref": "AAAAAAGAuQejB2PoDAU=" + }, + "model": { + "$ref": "AAAAAAGAuQejB2Pmq7Y=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1462, + "top": 2696, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuQejB2PoDAU=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuQejCGPw2V8=", + "_parent": { + "$ref": "AAAAAAGAuQejB2PoDAU=" + }, + "model": { + "$ref": "AAAAAAGAuQejB2Pmq7Y=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1471, + "top": 2686, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuQejB2PoDAU=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuQejCGPx1Ec=", + "_parent": { + "$ref": "AAAAAAGAuQejB2PoDAU=" + }, + "model": { + "$ref": "AAAAAAGAuQejB2Pmq7Y=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1444, + "top": 2717, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuQejB2PoDAU=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuQejCGPyjso=", + "_parent": { + "$ref": "AAAAAAGAuQejB2PoDAU=" + }, + "model": { + "$ref": "AAAAAAGAuQejB2PlSzc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuQejCGPz+0Q=", + "_parent": { + "$ref": "AAAAAAGAuQejB2PoDAU=" + }, + "model": { + "$ref": "AAAAAAGAuQejB2Pmq7Y=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuP33uT39n/4=" + }, + "tail": { + "$ref": "AAAAAAGAuM+E1l2pZY4=" + }, + "lineStyle": 1, + "points": "1122:2324;1468:2732", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuQejCGPpaNo=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuQejCGPqCD4=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuQejCGPrKtA=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAuQejCGPsJNQ=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAuQejCGPtJk0=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAuQejCGPu7WM=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAuQejCGPvAeQ=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAuQejCGPw2V8=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAuQejCGPx1Ec=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAuQejCGPyjso=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAuQejCGPz+0Q=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAuSQc3ZT5u0c=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuSQc3JT1QAw=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuSQc3ZT6cEw=", + "_parent": { + "$ref": "AAAAAAGAuSQc3ZT5u0c=" + }, + "model": { + "$ref": "AAAAAAGAuSQc3JT1QAw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1057, + "top": 2402, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuSQc3ZT5u0c=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuSQc3ZT7uKg=", + "_parent": { + "$ref": "AAAAAAGAuSQc3ZT5u0c=" + }, + "model": { + "$ref": "AAAAAAGAuSQc3JT1QAw=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1042, + "top": 2402, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuSQc3ZT5u0c=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuSQc3ZT8IeE=", + "_parent": { + "$ref": "AAAAAAGAuSQc3ZT5u0c=" + }, + "model": { + "$ref": "AAAAAAGAuSQc3JT1QAw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1086, + "top": 2403, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuSQc3ZT5u0c=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuSQc3ZT92Co=", + "_parent": { + "$ref": "AAAAAAGAuSQc3ZT5u0c=" + }, + "model": { + "$ref": "AAAAAAGAuSQc3JT2zQo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1057, + "top": 2439, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuSQc3ZT5u0c=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuSQc3ZT+XpQ=", + "_parent": { + "$ref": "AAAAAAGAuSQc3ZT5u0c=" + }, + "model": { + "$ref": "AAAAAAGAuSQc3JT2zQo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1043, + "top": 2436, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuSQc3ZT5u0c=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuSQc3ZT/zgc=", + "_parent": { + "$ref": "AAAAAAGAuSQc3ZT5u0c=" + }, + "model": { + "$ref": "AAAAAAGAuSQc3JT2zQo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1084, + "top": 2443, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuSQc3ZT5u0c=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuSQc3ZUAVt4=", + "_parent": { + "$ref": "AAAAAAGAuSQc3ZT5u0c=" + }, + "model": { + "$ref": "AAAAAAGAuSQc3JT3YwU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1057, + "top": 2366, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuSQc3ZT5u0c=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuSQc3ZUB2JQ=", + "_parent": { + "$ref": "AAAAAAGAuSQc3ZT5u0c=" + }, + "model": { + "$ref": "AAAAAAGAuSQc3JT3YwU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1043, + "top": 2369, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuSQc3ZT5u0c=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuSQc3ZUCoM0=", + "_parent": { + "$ref": "AAAAAAGAuSQc3ZT5u0c=" + }, + "model": { + "$ref": "AAAAAAGAuSQc3JT3YwU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1084, + "top": 2362, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuSQc3ZT5u0c=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuSQc3ZUDyAQ=", + "_parent": { + "$ref": "AAAAAAGAuSQc3ZT5u0c=" + }, + "model": { + "$ref": "AAAAAAGAuSQc3JT2zQo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuSQc3ZUEd3k=", + "_parent": { + "$ref": "AAAAAAGAuSQc3ZT5u0c=" + }, + "model": { + "$ref": "AAAAAAGAuSQc3JT3YwU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuM+E1l2pZY4=" + }, + "tail": { + "$ref": "AAAAAAGAuONfWHxEB+M=" + }, + "lineStyle": 1, + "points": "1072:2471;1072:2347", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuSQc3ZT6cEw=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuSQc3ZT7uKg=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuSQc3ZT8IeE=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAuSQc3ZT92Co=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAuSQc3ZT+XpQ=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAuSQc3ZT/zgc=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAuSQc3ZUAVt4=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAuSQc3ZUB2JQ=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAuSQc3ZUCoM0=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAuSQc3ZUDyAQ=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAuSQc3ZUEd3k=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAuVJizeQdR98=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuVJizeQZJR8=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVJizeQeRDM=", + "_parent": { + "$ref": "AAAAAAGAuVJizeQdR98=" + }, + "model": { + "$ref": "AAAAAAGAuVJizeQZJR8=" + }, + "font": "Arial;13;0", + "left": 910, + "top": 2418, + "width": 84.89990234375, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuVJizeQdR98=" + }, + "edgePosition": 1, + "text": "+communicate" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVJizeQfWF8=", + "_parent": { + "$ref": "AAAAAAGAuVJizeQdR98=" + }, + "model": { + "$ref": "AAAAAAGAuVJizeQZJR8=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 959, + "top": 2405, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuVJizeQdR98=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVJizeQg65c=", + "_parent": { + "$ref": "AAAAAAGAuVJizeQdR98=" + }, + "model": { + "$ref": "AAAAAAGAuVJizeQZJR8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 937, + "top": 2445, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuVJizeQdR98=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVJizeQhmoE=", + "_parent": { + "$ref": "AAAAAAGAuVJizeQdR98=" + }, + "model": { + "$ref": "AAAAAAGAuVJizeQaPgY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 898, + "top": 2389, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuVJizeQdR98=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVJizeQiPnw=", + "_parent": { + "$ref": "AAAAAAGAuVJizeQdR98=" + }, + "model": { + "$ref": "AAAAAAGAuVJizeQaPgY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 907, + "top": 2378, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuVJizeQdR98=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVJizeQjcTo=", + "_parent": { + "$ref": "AAAAAAGAuVJizeQdR98=" + }, + "model": { + "$ref": "AAAAAAGAuVJizeQaPgY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 881, + "top": 2411, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuVJizeQdR98=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVJizeQkeoc=", + "_parent": { + "$ref": "AAAAAAGAuVJizeQdR98=" + }, + "model": { + "$ref": "AAAAAAGAuVJizeQbquk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1006, + "top": 2448, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuVJizeQdR98=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVJizeQl2g8=", + "_parent": { + "$ref": "AAAAAAGAuVJizeQdR98=" + }, + "model": { + "$ref": "AAAAAAGAuVJizeQbquk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1010, + "top": 2435, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuVJizeQdR98=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVJizeQmxjU=", + "_parent": { + "$ref": "AAAAAAGAuVJizeQdR98=" + }, + "model": { + "$ref": "AAAAAAGAuVJizeQbquk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 997, + "top": 2474, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuVJizeQdR98=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuVJizeQnjlI=", + "_parent": { + "$ref": "AAAAAAGAuVJizeQdR98=" + }, + "model": { + "$ref": "AAAAAAGAuVJizeQaPgY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuVJizeQoHdw=", + "_parent": { + "$ref": "AAAAAAGAuVJizeQdR98=" + }, + "model": { + "$ref": "AAAAAAGAuVJizeQbquk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuONfWHxEB+M=" + }, + "tail": { + "$ref": "AAAAAAGAuNzCJ/fZex4=" + }, + "lineStyle": 1, + "points": "869:2396;1022:2480", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuVJizeQeRDM=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuVJizeQfWF8=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuVJizeQg65c=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAuVJizeQhmoE=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAuVJizeQiPnw=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAuVJizeQjcTo=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAuVJizeQkeoc=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAuVJizeQl2g8=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAuVJizeQmxjU=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAuVJizeQnjlI=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAuVJizeQoHdw=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAuVM/cAVH5Nk=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuVM/cAVFGPk=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAuVM/cAVIUg8=", + "_parent": { + "$ref": "AAAAAAGAuVM/cAVH5Nk=" + }, + "model": { + "$ref": "AAAAAAGAuVM/cAVFGPk=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAuVM/cAVJXjs=", + "_parent": { + "$ref": "AAAAAAGAuVM/cAVIUg8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4112, + "top": 2912, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuVM/cAVKHC0=", + "_parent": { + "$ref": "AAAAAAGAuVM/cAVIUg8=" + }, + "font": "Arial;13;1", + "left": 1465, + "top": 2374, + "width": 46.236328125, + "height": 13, + "text": "Signals" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuVM/cAVL4X0=", + "_parent": { + "$ref": "AAAAAAGAuVM/cAVIUg8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4112, + "top": 2912, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuVM/cAVMz18=", + "_parent": { + "$ref": "AAAAAAGAuVM/cAVIUg8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4112, + "top": 2912, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1460, + "top": 2367, + "width": 56.236328125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAuVM/cAVJXjs=" + }, + "nameLabel": { + "$ref": "AAAAAAGAuVM/cAVKHC0=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAuVM/cAVL4X0=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuVM/cAVMz18=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAuVM/cAVNs54=", + "_parent": { + "$ref": "AAAAAAGAuVM/cAVH5Nk=" + }, + "model": { + "$ref": "AAAAAAGAuVM/cAVFGPk=" + }, + "font": "Arial;13;0", + "left": 1460, + "top": 2392, + "width": 56.236328125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAuVM/cAVOmBo=", + "_parent": { + "$ref": "AAAAAAGAuVM/cAVH5Nk=" + }, + "model": { + "$ref": "AAAAAAGAuVM/cAVFGPk=" + }, + "font": "Arial;13;0", + "left": 1460, + "top": 2402, + "width": 56.236328125, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAuVM/cQVPXVA=", + "_parent": { + "$ref": "AAAAAAGAuVM/cAVH5Nk=" + }, + "model": { + "$ref": "AAAAAAGAuVM/cAVFGPk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2056, + "top": 1456, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAuVM/cQVQe9o=", + "_parent": { + "$ref": "AAAAAAGAuVM/cAVH5Nk=" + }, + "model": { + "$ref": "AAAAAAGAuVM/cAVFGPk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2056, + "top": 1456, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1460, + "top": 2367, + "width": 56.236328125, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAuVM/cAVIUg8=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAuVM/cAVNs54=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAuVM/cAVOmBo=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAuVM/cQVPXVA=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAuVM/cQVQe9o=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAuVNvjRnvOLU=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuVNvjRnrHWs=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVNvjRnw+c4=", + "_parent": { + "$ref": "AAAAAAGAuVNvjRnvOLU=" + }, + "model": { + "$ref": "AAAAAAGAuVNvjRnrHWs=" + }, + "font": "Arial;13;0", + "left": 1244, + "top": 2309, + "width": 100.10888671875, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuVNvjRnvOLU=" + }, + "edgePosition": 1, + "text": "+get&set&update" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVNvjRnx/OM=", + "_parent": { + "$ref": "AAAAAAGAuVNvjRnvOLU=" + }, + "model": { + "$ref": "AAAAAAGAuVNvjRnrHWs=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1298, + "top": 2295, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuVNvjRnvOLU=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVNvjRny1dE=", + "_parent": { + "$ref": "AAAAAAGAuVNvjRnvOLU=" + }, + "model": { + "$ref": "AAAAAAGAuVNvjRnrHWs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1285, + "top": 2338, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuVNvjRnvOLU=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVNvjRnzCRk=", + "_parent": { + "$ref": "AAAAAAGAuVNvjRnvOLU=" + }, + "model": { + "$ref": "AAAAAAGAuVNvjRns3fQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1151, + "top": 2267, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuVNvjRnvOLU=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVNvjRn0dDk=", + "_parent": { + "$ref": "AAAAAAGAuVNvjRnvOLU=" + }, + "model": { + "$ref": "AAAAAAGAuVNvjRns3fQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1157, + "top": 2255, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuVNvjRnvOLU=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVNvjRn1CO8=", + "_parent": { + "$ref": "AAAAAAGAuVNvjRnvOLU=" + }, + "model": { + "$ref": "AAAAAAGAuVNvjRns3fQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1139, + "top": 2292, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuVNvjRnvOLU=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVNvjRn2YtI=", + "_parent": { + "$ref": "AAAAAAGAuVNvjRnvOLU=" + }, + "model": { + "$ref": "AAAAAAGAuVNvjRntm2U=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1438, + "top": 2353, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuVNvjRnvOLU=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVNvjRn3mTs=", + "_parent": { + "$ref": "AAAAAAGAuVNvjRnvOLU=" + }, + "model": { + "$ref": "AAAAAAGAuVNvjRntm2U=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1440, + "top": 2339, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuVNvjRnvOLU=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVNvjRn4dhs=", + "_parent": { + "$ref": "AAAAAAGAuVNvjRnvOLU=" + }, + "model": { + "$ref": "AAAAAAGAuVNvjRntm2U=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1434, + "top": 2380, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuVNvjRnvOLU=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuVNvjRn5Pts=", + "_parent": { + "$ref": "AAAAAAGAuVNvjRnvOLU=" + }, + "model": { + "$ref": "AAAAAAGAuVNvjRns3fQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuVNvjhn6LUs=", + "_parent": { + "$ref": "AAAAAAGAuVNvjRnvOLU=" + }, + "model": { + "$ref": "AAAAAAGAuVNvjRntm2U=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuVM/cAVH5Nk=" + }, + "tail": { + "$ref": "AAAAAAGAuM+E1l2pZY4=" + }, + "lineStyle": 1, + "points": "1122:2280;1459:2381", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuVNvjRnw+c4=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuVNvjRnx/OM=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuVNvjRny1dE=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAuVNvjRnzCRk=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAuVNvjRn0dDk=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAuVNvjRn1CO8=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAuVNvjRn2YtI=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAuVNvjRn3mTs=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAuVNvjRn4dhs=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAuVNvjRn5Pts=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAuVNvjhn6LUs=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAuVXFAz3J8ms=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuVXFAz3Hg7I=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAuVXFAz3Kb2I=", + "_parent": { + "$ref": "AAAAAAGAuVXFAz3J8ms=" + }, + "model": { + "$ref": "AAAAAAGAuVXFAz3Hg7I=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAuVXFAz3Lu+k=", + "_parent": { + "$ref": "AAAAAAGAuVXFAz3Kb2I=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -3760, + "top": 2880, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuVXFAz3M/FE=", + "_parent": { + "$ref": "AAAAAAGAuVXFAz3Kb2I=" + }, + "font": "Arial;13;1", + "left": 2053, + "top": 2327, + "width": 41.919921875, + "height": 13, + "text": "files" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuVXFAz3NW3E=", + "_parent": { + "$ref": "AAAAAAGAuVXFAz3Kb2I=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -3760, + "top": 2880, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuVXFAz3O4Nw=", + "_parent": { + "$ref": "AAAAAAGAuVXFAz3Kb2I=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -3760, + "top": 2880, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 2048, + "top": 2320, + "width": 51.919921875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAuVXFAz3Lu+k=" + }, + "nameLabel": { + "$ref": "AAAAAAGAuVXFAz3M/FE=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAuVXFAz3NW3E=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuVXFAz3O4Nw=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAuVXFAz3PH0Y=", + "_parent": { + "$ref": "AAAAAAGAuVXFAz3J8ms=" + }, + "model": { + "$ref": "AAAAAAGAuVXFAz3Hg7I=" + }, + "font": "Arial;13;0", + "left": 2048, + "top": 2345, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAuVXFAz3QjHM=", + "_parent": { + "$ref": "AAAAAAGAuVXFAz3J8ms=" + }, + "model": { + "$ref": "AAAAAAGAuVXFAz3Hg7I=" + }, + "font": "Arial;13;0", + "left": 2048, + "top": 2355, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAuVXFAz3R258=", + "_parent": { + "$ref": "AAAAAAGAuVXFAz3J8ms=" + }, + "model": { + "$ref": "AAAAAAGAuVXFAz3Hg7I=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -1880, + "top": 1440, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAuVXFAz3SkpQ=", + "_parent": { + "$ref": "AAAAAAGAuVXFAz3J8ms=" + }, + "model": { + "$ref": "AAAAAAGAuVXFAz3Hg7I=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -1880, + "top": 1440, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 2048, + "top": 2320, + "width": 51.919921875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAuVXFAz3Kb2I=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAuVXFAz3PH0Y=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAuVXFAz3QjHM=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAuVXFAz3R258=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAuVXFAz3SkpQ=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAuVZfzUlifXg=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuVZfzUlebbQ=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVZfzUljDRU=", + "_parent": { + "$ref": "AAAAAAGAuVZfzUlifXg=" + }, + "model": { + "$ref": "AAAAAAGAuVZfzUlebbQ=" + }, + "font": "Arial;13;0", + "left": 1939, + "top": 2321, + "width": 69.03076171875, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuVZfzUlifXg=" + }, + "edgePosition": 1, + "text": "+load&save" + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVZfzUlkcgg=", + "_parent": { + "$ref": "AAAAAAGAuVZfzUlifXg=" + }, + "model": { + "$ref": "AAAAAAGAuVZfzUlebbQ=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1973, + "top": 2306, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuVZfzUlifXg=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVZfzUllAxM=", + "_parent": { + "$ref": "AAAAAAGAuVZfzUlifXg=" + }, + "model": { + "$ref": "AAAAAAGAuVZfzUlebbQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1973, + "top": 2351, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuVZfzUlifXg=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVZfzUlmUjc=", + "_parent": { + "$ref": "AAAAAAGAuVZfzUlifXg=" + }, + "model": { + "$ref": "AAAAAAGAuVZfzUlfC/g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1925, + "top": 2321, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuVZfzUlifXg=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVZfzUlneNM=", + "_parent": { + "$ref": "AAAAAAGAuVZfzUlifXg=" + }, + "model": { + "$ref": "AAAAAAGAuVZfzUlfC/g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1928, + "top": 2307, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuVZfzUlifXg=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVZfzUloxQs=", + "_parent": { + "$ref": "AAAAAAGAuVZfzUlifXg=" + }, + "model": { + "$ref": "AAAAAAGAuVZfzUlfC/g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1921, + "top": 2348, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuVZfzUlifXg=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVZfzUlp4oE=", + "_parent": { + "$ref": "AAAAAAGAuVZfzUlifXg=" + }, + "model": { + "$ref": "AAAAAAGAuVZfzUlgssI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2021, + "top": 2321, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuVZfzUlifXg=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVZfzUlqWG8=", + "_parent": { + "$ref": "AAAAAAGAuVZfzUlifXg=" + }, + "model": { + "$ref": "AAAAAAGAuVZfzUlgssI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2018, + "top": 2307, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuVZfzUlifXg=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVZfzUlrCB8=", + "_parent": { + "$ref": "AAAAAAGAuVZfzUlifXg=" + }, + "model": { + "$ref": "AAAAAAGAuVZfzUlgssI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 2025, + "top": 2348, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuVZfzUlifXg=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuVZfzklsTTc=", + "_parent": { + "$ref": "AAAAAAGAuVZfzUlifXg=" + }, + "model": { + "$ref": "AAAAAAGAuVZfzUlfC/g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuVZfzkltCow=", + "_parent": { + "$ref": "AAAAAAGAuVZfzUlifXg=" + }, + "model": { + "$ref": "AAAAAAGAuVZfzUlgssI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuVXFAz3J8ms=" + }, + "tail": { + "$ref": "AAAAAAGAuOTIMJPtMrw=" + }, + "lineStyle": 1, + "points": "1900:2342;2047:2342", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuVZfzUljDRU=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuVZfzUlkcgg=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuVZfzUllAxM=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAuVZfzUlmUjc=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAuVZfzUlneNM=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAuVZfzUloxQs=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAuVZfzUlp4oE=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAuVZfzUlqWG8=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAuVZfzUlrCB8=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAuVZfzklsTTc=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAuVZfzkltCow=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAuVk4uYvU2Zo=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuVk4uYvQ3Tw=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVk4uYvVJqk=", + "_parent": { + "$ref": "AAAAAAGAuVk4uYvU2Zo=" + }, + "model": { + "$ref": "AAAAAAGAuVk4uYvQ3Tw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1659, + "top": 2107, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuVk4uYvU2Zo=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVk4uYvWEhw=", + "_parent": { + "$ref": "AAAAAAGAuVk4uYvU2Zo=" + }, + "model": { + "$ref": "AAAAAAGAuVk4uYvQ3Tw=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1670, + "top": 2097, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuVk4uYvU2Zo=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVk4uYvXU/U=", + "_parent": { + "$ref": "AAAAAAGAuVk4uYvU2Zo=" + }, + "model": { + "$ref": "AAAAAAGAuVk4uYvQ3Tw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1636, + "top": 2126, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuVk4uYvU2Zo=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVk4uYvYjcw=", + "_parent": { + "$ref": "AAAAAAGAuVk4uYvU2Zo=" + }, + "model": { + "$ref": "AAAAAAGAuVk4uYvRkhs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1535, + "top": 1961, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuVk4uYvU2Zo=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVk4uovZqqo=", + "_parent": { + "$ref": "AAAAAAGAuVk4uYvU2Zo=" + }, + "model": { + "$ref": "AAAAAAGAuVk4uYvRkhs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1546, + "top": 1954, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuVk4uYvU2Zo=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVk4uova2RU=", + "_parent": { + "$ref": "AAAAAAGAuVk4uYvU2Zo=" + }, + "model": { + "$ref": "AAAAAAGAuVk4uYvRkhs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1511, + "top": 1975, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuVk4uYvU2Zo=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVk4uovb9QE=", + "_parent": { + "$ref": "AAAAAAGAuVk4uYvU2Zo=" + }, + "model": { + "$ref": "AAAAAAGAuVk4uYvSBnI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1783, + "top": 2254, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuVk4uYvU2Zo=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVk4uovcleY=", + "_parent": { + "$ref": "AAAAAAGAuVk4uYvU2Zo=" + }, + "model": { + "$ref": "AAAAAAGAuVk4uYvSBnI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1792, + "top": 2244, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuVk4uYvU2Zo=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVk4uovdq3M=", + "_parent": { + "$ref": "AAAAAAGAuVk4uYvU2Zo=" + }, + "model": { + "$ref": "AAAAAAGAuVk4uYvSBnI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1765, + "top": 2275, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuVk4uYvU2Zo=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuVk4uovecZU=", + "_parent": { + "$ref": "AAAAAAGAuVk4uYvU2Zo=" + }, + "model": { + "$ref": "AAAAAAGAuVk4uYvRkhs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuVk4uovfNPs=", + "_parent": { + "$ref": "AAAAAAGAuVk4uYvU2Zo=" + }, + "model": { + "$ref": "AAAAAAGAuVk4uYvSBnI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuOTIMJPtMrw=" + }, + "tail": { + "$ref": "AAAAAAGAuO4F8PeO/FY=" + }, + "lineStyle": 1, + "points": "1507:1957;1789:2290", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuVk4uYvVJqk=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuVk4uYvWEhw=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuVk4uYvXU/U=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAuVk4uYvYjcw=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAuVk4uovZqqo=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAuVk4uova2RU=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAuVk4uovb9QE=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAuVk4uovcleY=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAuVk4uovdq3M=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAuVk4uovecZU=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAuVk4uovfNPs=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAuVmWqqy9YZ0=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuVmWqqy5k5A=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVmWqqy+1nI=", + "_parent": { + "$ref": "AAAAAAGAuVmWqqy9YZ0=" + }, + "model": { + "$ref": "AAAAAAGAuVmWqqy5k5A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1645, + "top": 2247, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuVmWqqy9YZ0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVmWqqy/ZAw=", + "_parent": { + "$ref": "AAAAAAGAuVmWqqy9YZ0=" + }, + "model": { + "$ref": "AAAAAAGAuVmWqqy5k5A=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1650, + "top": 2233, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuVmWqqy9YZ0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVmWqqzAZ5Y=", + "_parent": { + "$ref": "AAAAAAGAuVmWqqy9YZ0=" + }, + "model": { + "$ref": "AAAAAAGAuVmWqqy5k5A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1634, + "top": 2274, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuVmWqqy9YZ0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVmWqqzBCdM=", + "_parent": { + "$ref": "AAAAAAGAuVmWqqy9YZ0=" + }, + "model": { + "$ref": "AAAAAAGAuVmWqqy6UWs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1543, + "top": 2207, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuVmWqqy9YZ0=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVmWqqzCqC0=", + "_parent": { + "$ref": "AAAAAAGAuVmWqqy9YZ0=" + }, + "model": { + "$ref": "AAAAAAGAuVmWqqy6UWs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1550, + "top": 2195, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuVmWqqy9YZ0=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVmWqqzDdF4=", + "_parent": { + "$ref": "AAAAAAGAuVmWqqy9YZ0=" + }, + "model": { + "$ref": "AAAAAAGAuVmWqqy6UWs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1529, + "top": 2231, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuVmWqqy9YZ0=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVmWq6zEGBs=", + "_parent": { + "$ref": "AAAAAAGAuVmWqqy9YZ0=" + }, + "model": { + "$ref": "AAAAAAGAuVmWqqy7nq0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1748, + "top": 2286, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuVmWqqy9YZ0=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVmWq6zFD30=", + "_parent": { + "$ref": "AAAAAAGAuVmWqqy9YZ0=" + }, + "model": { + "$ref": "AAAAAAGAuVmWqqy7nq0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1750, + "top": 2273, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuVmWqqy9YZ0=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVmWq6zGIyE=", + "_parent": { + "$ref": "AAAAAAGAuVmWqqy9YZ0=" + }, + "model": { + "$ref": "AAAAAAGAuVmWqqy7nq0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1742, + "top": 2313, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuVmWqqy9YZ0=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuVmWq6zHikc=", + "_parent": { + "$ref": "AAAAAAGAuVmWqqy9YZ0=" + }, + "model": { + "$ref": "AAAAAAGAuVmWqqy6UWs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuVmWq6zID5k=", + "_parent": { + "$ref": "AAAAAAGAuVmWqqy9YZ0=" + }, + "model": { + "$ref": "AAAAAAGAuVmWqqy7nq0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuOTIMJPtMrw=" + }, + "tail": { + "$ref": "AAAAAAGAuPiWF3PZbo0=" + }, + "lineStyle": 1, + "points": "1514:2218;1767:2316", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuVmWqqy+1nI=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuVmWqqy/ZAw=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuVmWqqzAZ5Y=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAuVmWqqzBCdM=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAuVmWqqzCqC0=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAuVmWqqzDdF4=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAuVmWq6zEGBs=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAuVmWq6zFD30=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAuVmWq6zGIyE=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAuVmWq6zHikc=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAuVmWq6zID5k=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAuVmrmrq/h0Q=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuVmrmrq7wmQ=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVmrmrrA5vY=", + "_parent": { + "$ref": "AAAAAAGAuVmrmrq/h0Q=" + }, + "model": { + "$ref": "AAAAAAGAuVmrmrq7wmQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1644, + "top": 2297, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuVmrmrq/h0Q=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVmrmrrBc40=", + "_parent": { + "$ref": "AAAAAAGAuVmrmrq/h0Q=" + }, + "model": { + "$ref": "AAAAAAGAuVmrmrq7wmQ=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1646, + "top": 2282, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuVmrmrq/h0Q=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVmrmrrCtec=", + "_parent": { + "$ref": "AAAAAAGAuVmrmrq/h0Q=" + }, + "model": { + "$ref": "AAAAAAGAuVmrmrq7wmQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1641, + "top": 2326, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuVmrmrq/h0Q=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVmrmrrDM7M=", + "_parent": { + "$ref": "AAAAAAGAuVmrmrq/h0Q=" + }, + "model": { + "$ref": "AAAAAAGAuVmrmrq8q8U=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1546, + "top": 2284, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuVmrmrq/h0Q=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVmrm7rEUvA=", + "_parent": { + "$ref": "AAAAAAGAuVmrmrq/h0Q=" + }, + "model": { + "$ref": "AAAAAAGAuVmrmrq8q8U=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1550, + "top": 2271, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuVmrmrq/h0Q=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVmrm7rF6cc=", + "_parent": { + "$ref": "AAAAAAGAuVmrmrq/h0Q=" + }, + "model": { + "$ref": "AAAAAAGAuVmrmrq8q8U=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1538, + "top": 2311, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuVmrmrq/h0Q=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVmrm7rG/rU=", + "_parent": { + "$ref": "AAAAAAGAuVmrmrq/h0Q=" + }, + "model": { + "$ref": "AAAAAAGAuVmrmrq965o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1743, + "top": 2309, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuVmrmrq/h0Q=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVmrm7rHEwY=", + "_parent": { + "$ref": "AAAAAAGAuVmrmrq/h0Q=" + }, + "model": { + "$ref": "AAAAAAGAuVmrmrq965o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1742, + "top": 2296, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuVmrmrq/h0Q=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVmrm7rI9l0=", + "_parent": { + "$ref": "AAAAAAGAuVmrmrq/h0Q=" + }, + "model": { + "$ref": "AAAAAAGAuVmrmrq965o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1743, + "top": 2337, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuVmrmrq/h0Q=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuVmrm7rJRHE=", + "_parent": { + "$ref": "AAAAAAGAuVmrmrq/h0Q=" + }, + "model": { + "$ref": "AAAAAAGAuVmrmrq8q8U=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuVmrm7rKz78=", + "_parent": { + "$ref": "AAAAAAGAuVmrmrq/h0Q=" + }, + "model": { + "$ref": "AAAAAAGAuVmrmrq965o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuOTIMJPtMrw=" + }, + "tail": { + "$ref": "AAAAAAGAuPqBdMRhmWQ=" + }, + "lineStyle": 1, + "points": "1519:2302;1767:2334", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuVmrmrrA5vY=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuVmrmrrBc40=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuVmrmrrCtec=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAuVmrmrrDM7M=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAuVmrm7rEUvA=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAuVmrm7rF6cc=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAuVmrm7rG/rU=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAuVmrm7rHEwY=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAuVmrm7rI9l0=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAuVmrm7rJRHE=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAuVmrm7rKz78=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAuVmzaMoIqfI=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuVmzZ8oEZKs=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVmzaMoJaug=", + "_parent": { + "$ref": "AAAAAAGAuVmzaMoIqfI=" + }, + "model": { + "$ref": "AAAAAAGAuVmzZ8oEZKs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1638, + "top": 2347, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuVmzaMoIqfI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVmzaMoKlgs=", + "_parent": { + "$ref": "AAAAAAGAuVmzaMoIqfI=" + }, + "model": { + "$ref": "AAAAAAGAuVmzZ8oEZKs=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1636, + "top": 2332, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuVmzaMoIqfI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVmzaMoLP48=", + "_parent": { + "$ref": "AAAAAAGAuVmzaMoIqfI=" + }, + "model": { + "$ref": "AAAAAAGAuVmzZ8oEZKs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1643, + "top": 2376, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuVmzaMoIqfI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVmzaMoMh4U=", + "_parent": { + "$ref": "AAAAAAGAuVmzaMoIqfI=" + }, + "model": { + "$ref": "AAAAAAGAuVmzZ8oFkeY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1539, + "top": 2360, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuVmzaMoIqfI=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVmzaMoN/1U=", + "_parent": { + "$ref": "AAAAAAGAuVmzaMoIqfI=" + }, + "model": { + "$ref": "AAAAAAGAuVmzZ8oFkeY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1540, + "top": 2347, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuVmzaMoIqfI=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVmzaMoOVg4=", + "_parent": { + "$ref": "AAAAAAGAuVmzaMoIqfI=" + }, + "model": { + "$ref": "AAAAAAGAuVmzZ8oFkeY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1539, + "top": 2388, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuVmzaMoIqfI=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVmzaMoPSIo=", + "_parent": { + "$ref": "AAAAAAGAuVmzaMoIqfI=" + }, + "model": { + "$ref": "AAAAAAGAuVmzZ8oGVV0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1739, + "top": 2333, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuVmzaMoIqfI=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVmzaMoQ0EA=", + "_parent": { + "$ref": "AAAAAAGAuVmzaMoIqfI=" + }, + "model": { + "$ref": "AAAAAAGAuVmzZ8oGVV0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1735, + "top": 2320, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuVmzaMoIqfI=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVmzaMoRGVM=", + "_parent": { + "$ref": "AAAAAAGAuVmzaMoIqfI=" + }, + "model": { + "$ref": "AAAAAAGAuVmzZ8oGVV0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1747, + "top": 2360, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuVmzaMoIqfI=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuVmzaMoS9+w=", + "_parent": { + "$ref": "AAAAAAGAuVmzaMoIqfI=" + }, + "model": { + "$ref": "AAAAAAGAuVmzZ8oFkeY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuVmzaMoTxs4=", + "_parent": { + "$ref": "AAAAAAGAuVmzaMoIqfI=" + }, + "model": { + "$ref": "AAAAAAGAuVmzZ8oGVV0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuOTIMJPtMrw=" + }, + "tail": { + "$ref": "AAAAAAGAuVM/cAVH5Nk=" + }, + "lineStyle": 1, + "points": "1516:2385;1767:2351", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuVmzaMoJaug=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuVmzaMoKlgs=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuVmzaMoLP48=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAuVmzaMoMh4U=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAuVmzaMoN/1U=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAuVmzaMoOVg4=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAuVmzaMoPSIo=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAuVmzaMoQ0EA=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAuVmzaMoRGVM=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAuVmzaMoS9+w=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAuVmzaMoTxs4=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAuVm8sNz8dDc=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuVm8sNz4G9Q=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVm8sNz9ddM=", + "_parent": { + "$ref": "AAAAAAGAuVm8sNz8dDc=" + }, + "model": { + "$ref": "AAAAAAGAuVm8sNz4G9Q=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1635, + "top": 2547, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuVm8sNz8dDc=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVm8sNz+s1g=", + "_parent": { + "$ref": "AAAAAAGAuVm8sNz8dDc=" + }, + "model": { + "$ref": "AAAAAAGAuVm8sNz4G9Q=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1624, + "top": 2537, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuVm8sNz8dDc=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVm8sNz/8VY=", + "_parent": { + "$ref": "AAAAAAGAuVm8sNz8dDc=" + }, + "model": { + "$ref": "AAAAAAGAuVm8sNz4G9Q=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1658, + "top": 2566, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuVm8sNz8dDc=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVm8sN0Ahwg=", + "_parent": { + "$ref": "AAAAAAGAuVm8sNz8dDc=" + }, + "model": { + "$ref": "AAAAAAGAuVm8sNz57Vc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1511, + "top": 2696, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuVm8sNz8dDc=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVm8sN0BB3g=", + "_parent": { + "$ref": "AAAAAAGAuVm8sNz8dDc=" + }, + "model": { + "$ref": "AAAAAAGAuVm8sNz57Vc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1502, + "top": 2686, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuVm8sNz8dDc=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVm8sd0Cgww=", + "_parent": { + "$ref": "AAAAAAGAuVm8sNz8dDc=" + }, + "model": { + "$ref": "AAAAAAGAuVm8sNz57Vc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1529, + "top": 2717, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuVm8sNz8dDc=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVm8sd0DdHY=", + "_parent": { + "$ref": "AAAAAAGAuVm8sNz8dDc=" + }, + "model": { + "$ref": "AAAAAAGAuVm8sNz6eww=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1760, + "top": 2398, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuVm8sNz8dDc=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVm8sd0EVIw=", + "_parent": { + "$ref": "AAAAAAGAuVm8sNz8dDc=" + }, + "model": { + "$ref": "AAAAAAGAuVm8sNz6eww=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1749, + "top": 2391, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuVm8sNz8dDc=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVm8sd0FJ1E=", + "_parent": { + "$ref": "AAAAAAGAuVm8sNz8dDc=" + }, + "model": { + "$ref": "AAAAAAGAuVm8sNz6eww=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1784, + "top": 2412, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuVm8sNz8dDc=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuVm8sd0Gc5g=", + "_parent": { + "$ref": "AAAAAAGAuVm8sNz8dDc=" + }, + "model": { + "$ref": "AAAAAAGAuVm8sNz57Vc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuVm8sd0HqUw=", + "_parent": { + "$ref": "AAAAAAGAuVm8sNz8dDc=" + }, + "model": { + "$ref": "AAAAAAGAuVm8sNz6eww=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuOTIMJPtMrw=" + }, + "tail": { + "$ref": "AAAAAAGAuP33uT39n/4=" + }, + "lineStyle": 1, + "points": "1506:2732;1789:2394", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuVm8sNz9ddM=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuVm8sNz+s1g=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuVm8sNz/8VY=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAuVm8sN0Ahwg=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAuVm8sN0BB3g=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAuVm8sd0Cgww=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAuVm8sd0DdHY=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAuVm8sd0EVIw=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAuVm8sd0FJ1E=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAuVm8sd0Gc5g=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAuVm8sd0HqUw=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAuVtP5BIK7Ro=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuVtP4xIIvbM=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAuVtP5BILGaM=", + "_parent": { + "$ref": "AAAAAAGAuVtP5BIK7Ro=" + }, + "model": { + "$ref": "AAAAAAGAuVtP4xIIvbM=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAuVtP5BIM16A=", + "_parent": { + "$ref": "AAAAAAGAuVtP5BILGaM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4144, + "top": 2864, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuVtP5BINzx4=", + "_parent": { + "$ref": "AAAAAAGAuVtP5BILGaM=" + }, + "font": "Arial;13;1", + "left": 1457, + "top": 2465, + "width": 62.86083984375, + "height": 13, + "text": "Strategies" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuVtP5BIOnmU=", + "_parent": { + "$ref": "AAAAAAGAuVtP5BILGaM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4144, + "top": 2864, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuVtP5BIPJJg=", + "_parent": { + "$ref": "AAAAAAGAuVtP5BILGaM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4144, + "top": 2864, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1452, + "top": 2458, + "width": 72.86083984375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAuVtP5BIM16A=" + }, + "nameLabel": { + "$ref": "AAAAAAGAuVtP5BINzx4=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAuVtP5BIOnmU=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuVtP5BIPJJg=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAuVtP5BIQDoA=", + "_parent": { + "$ref": "AAAAAAGAuVtP5BIK7Ro=" + }, + "model": { + "$ref": "AAAAAAGAuVtP4xIIvbM=" + }, + "font": "Arial;13;0", + "left": 1452, + "top": 2483, + "width": 72.86083984375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAuVtP5BIRiGs=", + "_parent": { + "$ref": "AAAAAAGAuVtP5BIK7Ro=" + }, + "model": { + "$ref": "AAAAAAGAuVtP4xIIvbM=" + }, + "font": "Arial;13;0", + "left": 1452, + "top": 2493, + "width": 72.86083984375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAuVtP5BISRhA=", + "_parent": { + "$ref": "AAAAAAGAuVtP5BIK7Ro=" + }, + "model": { + "$ref": "AAAAAAGAuVtP4xIIvbM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2072, + "top": 1432, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAuVtP5BITO6w=", + "_parent": { + "$ref": "AAAAAAGAuVtP5BIK7Ro=" + }, + "model": { + "$ref": "AAAAAAGAuVtP4xIIvbM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2072, + "top": 1432, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1452, + "top": 2458, + "width": 72.86083984375, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAuVtP5BILGaM=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAuVtP5BIQDoA=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAuVtP5BIRiGs=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAuVtP5BISRhA=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAuVtP5BITO6w=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAuVw9eCo+59c=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuVw9dyo6P44=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVw9eCo/hBE=", + "_parent": { + "$ref": "AAAAAAGAuVw9eCo+59c=" + }, + "model": { + "$ref": "AAAAAAGAuVw9dyo6P44=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1640, + "top": 2396, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuVw9eCo+59c=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVw9eCpA6Pg=", + "_parent": { + "$ref": "AAAAAAGAuVw9eCo+59c=" + }, + "model": { + "$ref": "AAAAAAGAuVw9dyo6P44=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1634, + "top": 2382, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuVw9eCo+59c=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVw9eCpBGpY=", + "_parent": { + "$ref": "AAAAAAGAuVw9eCo+59c=" + }, + "model": { + "$ref": "AAAAAAGAuVw9dyo6P44=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1651, + "top": 2423, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuVw9eCo+59c=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVw9eCpCfvQ=", + "_parent": { + "$ref": "AAAAAAGAuVw9eCo+59c=" + }, + "model": { + "$ref": "AAAAAAGAuVw9dyo7VAU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1543, + "top": 2435, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuVw9eCo+59c=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVw9eCpD2Jg=", + "_parent": { + "$ref": "AAAAAAGAuVw9eCo+59c=" + }, + "model": { + "$ref": "AAAAAAGAuVw9dyo7VAU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1540, + "top": 2422, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuVw9eCo+59c=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVw9eCpEpsw=", + "_parent": { + "$ref": "AAAAAAGAuVw9eCo+59c=" + }, + "model": { + "$ref": "AAAAAAGAuVw9dyo7VAU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1549, + "top": 2462, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuVw9eCo+59c=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVw9eCpFwV8=", + "_parent": { + "$ref": "AAAAAAGAuVw9eCo+59c=" + }, + "model": { + "$ref": "AAAAAAGAuVw9dyo8tdk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1737, + "top": 2357, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuVw9eCo+59c=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVw9eCpG8FI=", + "_parent": { + "$ref": "AAAAAAGAuVw9eCo+59c=" + }, + "model": { + "$ref": "AAAAAAGAuVw9dyo8tdk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1730, + "top": 2346, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuVw9eCo+59c=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVw9eCpHpQE=", + "_parent": { + "$ref": "AAAAAAGAuVw9eCo+59c=" + }, + "model": { + "$ref": "AAAAAAGAuVw9dyo8tdk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1751, + "top": 2381, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuVw9eCo+59c=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuVw9eCpIV9o=", + "_parent": { + "$ref": "AAAAAAGAuVw9eCo+59c=" + }, + "model": { + "$ref": "AAAAAAGAuVw9dyo7VAU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuVw9eCpJv3I=", + "_parent": { + "$ref": "AAAAAAGAuVw9eCo+59c=" + }, + "model": { + "$ref": "AAAAAAGAuVw9dyo8tdk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuOTIMJPtMrw=" + }, + "tail": { + "$ref": "AAAAAAGAuVtP5BIK7Ro=" + }, + "lineStyle": 1, + "points": "1525:2465;1767:2368", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuVw9eCo/hBE=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuVw9eCpA6Pg=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuVw9eCpBGpY=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAuVw9eCpCfvQ=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAuVw9eCpD2Jg=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAuVw9eCpEpsw=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAuVw9eCpFwV8=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAuVw9eCpG8FI=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAuVw9eCpHpQE=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAuVw9eCpIV9o=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAuVw9eCpJv3I=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAuVxSGTwqfhU=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuVxSGDwmvqY=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVxSGTwrmSU=", + "_parent": { + "$ref": "AAAAAAGAuVxSGTwqfhU=" + }, + "model": { + "$ref": "AAAAAAGAuVxSGDwmvqY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1292, + "top": 2356, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuVxSGTwqfhU=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVxSGTwst3o=", + "_parent": { + "$ref": "AAAAAAGAuVxSGTwqfhU=" + }, + "model": { + "$ref": "AAAAAAGAuVxSGDwmvqY=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1299, + "top": 2343, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuVxSGTwqfhU=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVxSGTwto9w=", + "_parent": { + "$ref": "AAAAAAGAuVxSGTwqfhU=" + }, + "model": { + "$ref": "AAAAAAGAuVxSGDwmvqY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1279, + "top": 2383, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuVxSGTwqfhU=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVxSGTwu9EQ=", + "_parent": { + "$ref": "AAAAAAGAuVxSGTwqfhU=" + }, + "model": { + "$ref": "AAAAAAGAuVxSGDwnN5c=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1151, + "top": 2283, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuVxSGTwqfhU=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVxSGTwvvBU=", + "_parent": { + "$ref": "AAAAAAGAuVxSGTwqfhU=" + }, + "model": { + "$ref": "AAAAAAGAuVxSGDwnN5c=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1160, + "top": 2272, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuVxSGTwqfhU=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVxSGTwwAD4=", + "_parent": { + "$ref": "AAAAAAGAuVxSGTwqfhU=" + }, + "model": { + "$ref": "AAAAAAGAuVxSGDwnN5c=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1135, + "top": 2306, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuVxSGTwqfhU=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVxSGTwxD1A=", + "_parent": { + "$ref": "AAAAAAGAuVxSGTwqfhU=" + }, + "model": { + "$ref": "AAAAAAGAuVxSGDwouMA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1434, + "top": 2429, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuVxSGTwqfhU=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVxSGTwyOmI=", + "_parent": { + "$ref": "AAAAAAGAuVxSGTwqfhU=" + }, + "model": { + "$ref": "AAAAAAGAuVxSGDwouMA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1438, + "top": 2416, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuVxSGTwqfhU=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVxSGTwzNss=", + "_parent": { + "$ref": "AAAAAAGAuVxSGTwqfhU=" + }, + "model": { + "$ref": "AAAAAAGAuVxSGDwouMA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1426, + "top": 2456, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuVxSGTwqfhU=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuVxSGTw0ExI=", + "_parent": { + "$ref": "AAAAAAGAuVxSGTwqfhU=" + }, + "model": { + "$ref": "AAAAAAGAuVxSGDwnN5c=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuVxSGTw1sYY=", + "_parent": { + "$ref": "AAAAAAGAuVxSGTwqfhU=" + }, + "model": { + "$ref": "AAAAAAGAuVxSGDwouMA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuVtP5BIK7Ro=" + }, + "tail": { + "$ref": "AAAAAAGAuM+E1l2pZY4=" + }, + "lineStyle": 1, + "points": "1122:2291;1451:2461", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuVxSGTwrmSU=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuVxSGTwst3o=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuVxSGTwto9w=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAuVxSGTwu9EQ=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAuVxSGTwvvBU=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAuVxSGTwwAD4=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAuVxSGTwxD1A=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAuVxSGTwyOmI=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAuVxSGTwzNss=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAuVxSGTw0ExI=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAuVxSGTw1sYY=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAuVzDsG/G/9E=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuVzDsG/Eyf8=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAuVzDsG/Hy7g=", + "_parent": { + "$ref": "AAAAAAGAuVzDsG/G/9E=" + }, + "model": { + "$ref": "AAAAAAGAuVzDsG/Eyf8=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAuVzDsG/IwWo=", + "_parent": { + "$ref": "AAAAAAGAuVzDsG/Hy7g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4112, + "top": 3024, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuVzDsG/Jw5Y=", + "_parent": { + "$ref": "AAAAAAGAuVzDsG/Hy7g=" + }, + "font": "Arial;13;1", + "left": 1467, + "top": 2647, + "width": 41.919921875, + "height": 13, + "text": "Alerts" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuVzDsG/KPZ4=", + "_parent": { + "$ref": "AAAAAAGAuVzDsG/Hy7g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4112, + "top": 3024, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuVzDsG/L6Ow=", + "_parent": { + "$ref": "AAAAAAGAuVzDsG/Hy7g=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4112, + "top": 3024, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1462, + "top": 2640, + "width": 51.919921875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAuVzDsG/IwWo=" + }, + "nameLabel": { + "$ref": "AAAAAAGAuVzDsG/Jw5Y=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAuVzDsG/KPZ4=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuVzDsG/L6Ow=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAuVzDsW/M0yM=", + "_parent": { + "$ref": "AAAAAAGAuVzDsG/G/9E=" + }, + "model": { + "$ref": "AAAAAAGAuVzDsG/Eyf8=" + }, + "font": "Arial;13;0", + "left": 1462, + "top": 2665, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAuVzDsW/NRMw=", + "_parent": { + "$ref": "AAAAAAGAuVzDsG/G/9E=" + }, + "model": { + "$ref": "AAAAAAGAuVzDsG/Eyf8=" + }, + "font": "Arial;13;0", + "left": 1462, + "top": 2675, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAuVzDsW/Olzk=", + "_parent": { + "$ref": "AAAAAAGAuVzDsG/G/9E=" + }, + "model": { + "$ref": "AAAAAAGAuVzDsG/Eyf8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2056, + "top": 1512, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAuVzDsW/P3jE=", + "_parent": { + "$ref": "AAAAAAGAuVzDsG/G/9E=" + }, + "model": { + "$ref": "AAAAAAGAuVzDsG/Eyf8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2056, + "top": 1512, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1462, + "top": 2640, + "width": 51.919921875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAuVzDsG/Hy7g=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAuVzDsW/M0yM=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAuVzDsW/NRMw=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAuVzDsW/Olzk=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAuVzDsW/P3jE=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAuVzmC3yLhZQ=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuVzmC3yH6rw=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVzmC3yM4TM=", + "_parent": { + "$ref": "AAAAAAGAuVzmC3yLhZQ=" + }, + "model": { + "$ref": "AAAAAAGAuVzmC3yH6rw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1633, + "top": 2498, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuVzmC3yLhZQ=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVzmC3yNc/w=", + "_parent": { + "$ref": "AAAAAAGAuVzmC3yLhZQ=" + }, + "model": { + "$ref": "AAAAAAGAuVzmC3yH6rw=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1623, + "top": 2487, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuVzmC3yLhZQ=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVzmC3yOphA=", + "_parent": { + "$ref": "AAAAAAGAuVzmC3yLhZQ=" + }, + "model": { + "$ref": "AAAAAAGAuVzmC3yH6rw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1654, + "top": 2521, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuVzmC3yLhZQ=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVzmC3yPClQ=", + "_parent": { + "$ref": "AAAAAAGAuVzmC3yLhZQ=" + }, + "model": { + "$ref": "AAAAAAGAuVzmC3yIsCc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1520, + "top": 2604, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuVzmC3yLhZQ=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVzmC3yQfKc=", + "_parent": { + "$ref": "AAAAAAGAuVzmC3yLhZQ=" + }, + "model": { + "$ref": "AAAAAAGAuVzmC3yIsCc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1513, + "top": 2593, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuVzmC3yLhZQ=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVzmC3yRxbY=", + "_parent": { + "$ref": "AAAAAAGAuVzmC3yLhZQ=" + }, + "model": { + "$ref": "AAAAAAGAuVzmC3yIsCc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1536, + "top": 2627, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuVzmC3yLhZQ=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVzmC3ySZ+s=", + "_parent": { + "$ref": "AAAAAAGAuVzmC3yLhZQ=" + }, + "model": { + "$ref": "AAAAAAGAuVzmC3yJQlE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1747, + "top": 2394, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuVzmC3yLhZQ=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVzmC3yTB9U=", + "_parent": { + "$ref": "AAAAAAGAuVzmC3yLhZQ=" + }, + "model": { + "$ref": "AAAAAAGAuVzmC3yJQlE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1737, + "top": 2386, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuVzmC3yLhZQ=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVzmC3yUGA8=", + "_parent": { + "$ref": "AAAAAAGAuVzmC3yLhZQ=" + }, + "model": { + "$ref": "AAAAAAGAuVzmC3yJQlE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1769, + "top": 2411, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuVzmC3yLhZQ=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuVzmC3yVAk4=", + "_parent": { + "$ref": "AAAAAAGAuVzmC3yLhZQ=" + }, + "model": { + "$ref": "AAAAAAGAuVzmC3yIsCc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuVzmDHyWXaE=", + "_parent": { + "$ref": "AAAAAAGAuVzmC3yLhZQ=" + }, + "model": { + "$ref": "AAAAAAGAuVzmC3yJQlE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuOTIMJPtMrw=" + }, + "tail": { + "$ref": "AAAAAAGAuVzDsG/G/9E=" + }, + "lineStyle": 1, + "points": "1512:2639;1777:2394", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuVzmC3yM4TM=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuVzmC3yNc/w=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuVzmC3yOphA=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAuVzmC3yPClQ=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAuVzmC3yQfKc=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAuVzmC3yRxbY=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAuVzmC3ySZ+s=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAuVzmC3yTB9U=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAuVzmC3yUGA8=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAuVzmC3yVAk4=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAuVzmDHyWXaE=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAuVz30pBX1Cw=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuVz30pBTuQQ=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVz30pBYLUo=", + "_parent": { + "$ref": "AAAAAAGAuVz30pBX1Cw=" + }, + "model": { + "$ref": "AAAAAAGAuVz30pBTuQQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1302, + "top": 2459, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuVz30pBX1Cw=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVz30pBZcl0=", + "_parent": { + "$ref": "AAAAAAGAuVz30pBX1Cw=" + }, + "model": { + "$ref": "AAAAAAGAuVz30pBTuQQ=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1312, + "top": 2448, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuVz30pBX1Cw=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVz30pBaUKM=", + "_parent": { + "$ref": "AAAAAAGAuVz30pBX1Cw=" + }, + "model": { + "$ref": "AAAAAAGAuVz30pBTuQQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1281, + "top": 2480, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuVz30pBX1Cw=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVz30pBbyNo=", + "_parent": { + "$ref": "AAAAAAGAuVz30pBX1Cw=" + }, + "model": { + "$ref": "AAAAAAGAuVz30pBU8Yk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1151, + "top": 2314, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuVz30pBX1Cw=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVz30pBcCHs=", + "_parent": { + "$ref": "AAAAAAGAuVz30pBX1Cw=" + }, + "model": { + "$ref": "AAAAAAGAuVz30pBU8Yk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1161, + "top": 2306, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuVz30pBX1Cw=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVz30pBduPI=", + "_parent": { + "$ref": "AAAAAAGAuVz30pBX1Cw=" + }, + "model": { + "$ref": "AAAAAAGAuVz30pBU8Yk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1129, + "top": 2330, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuVz30pBX1Cw=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVz30pBeNiE=", + "_parent": { + "$ref": "AAAAAAGAuVz30pBX1Cw=" + }, + "model": { + "$ref": "AAAAAAGAuVz30pBVqGc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1454, + "top": 2604, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuVz30pBX1Cw=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVz30pBflZE=", + "_parent": { + "$ref": "AAAAAAGAuVz30pBX1Cw=" + }, + "model": { + "$ref": "AAAAAAGAuVz30pBVqGc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1462, + "top": 2593, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuVz30pBX1Cw=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuVz30pBgcug=", + "_parent": { + "$ref": "AAAAAAGAuVz30pBX1Cw=" + }, + "model": { + "$ref": "AAAAAAGAuVz30pBVqGc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1438, + "top": 2627, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuVz30pBX1Cw=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuVz30pBhj3A=", + "_parent": { + "$ref": "AAAAAAGAuVz30pBX1Cw=" + }, + "model": { + "$ref": "AAAAAAGAuVz30pBU8Yk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuVz30pBiPWw=", + "_parent": { + "$ref": "AAAAAAGAuVz30pBX1Cw=" + }, + "model": { + "$ref": "AAAAAAGAuVz30pBVqGc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuVzDsG/G/9E=" + }, + "tail": { + "$ref": "AAAAAAGAuM+E1l2pZY4=" + }, + "lineStyle": 1, + "points": "1122:2313;1463:2639", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuVz30pBYLUo=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuVz30pBZcl0=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuVz30pBaUKM=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAuVz30pBbyNo=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAuVz30pBcCHs=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAuVz30pBduPI=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAuVz30pBeNiE=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAuVz30pBflZE=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAuVz30pBgcug=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAuVz30pBhj3A=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAuVz30pBiPWw=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAuV0e0qx94aI=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuV0e0qx7KEA=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAuV0e0qx++jc=", + "_parent": { + "$ref": "AAAAAAGAuV0e0qx94aI=" + }, + "model": { + "$ref": "AAAAAAGAuV0e0qx7KEA=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAuV0e0qx/TiY=", + "_parent": { + "$ref": "AAAAAAGAuV0e0qx++jc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4128, + "top": 2896, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuV0e0qyA26E=", + "_parent": { + "$ref": "AAAAAAGAuV0e0qx++jc=" + }, + "font": "Arial;13;1", + "left": 1459, + "top": 2556, + "width": 57.8017578125, + "height": 13, + "text": "Statistics" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuV0e0qyB5+I=", + "_parent": { + "$ref": "AAAAAAGAuV0e0qx++jc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4128, + "top": 2896, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuV0e0qyCznU=", + "_parent": { + "$ref": "AAAAAAGAuV0e0qx++jc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4128, + "top": 2896, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1454, + "top": 2549, + "width": 67.8017578125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAuV0e0qx/TiY=" + }, + "nameLabel": { + "$ref": "AAAAAAGAuV0e0qyA26E=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAuV0e0qyB5+I=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuV0e0qyCznU=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAuV0e0qyDB7Q=", + "_parent": { + "$ref": "AAAAAAGAuV0e0qx94aI=" + }, + "model": { + "$ref": "AAAAAAGAuV0e0qx7KEA=" + }, + "font": "Arial;13;0", + "left": 1454, + "top": 2574, + "width": 67.8017578125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAuV0e0qyEF8g=", + "_parent": { + "$ref": "AAAAAAGAuV0e0qx94aI=" + }, + "model": { + "$ref": "AAAAAAGAuV0e0qx7KEA=" + }, + "font": "Arial;13;0", + "left": 1454, + "top": 2584, + "width": 67.8017578125, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAuV0e06yFmCM=", + "_parent": { + "$ref": "AAAAAAGAuV0e0qx94aI=" + }, + "model": { + "$ref": "AAAAAAGAuV0e0qx7KEA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2064, + "top": 1448, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAuV0e06yG9S0=", + "_parent": { + "$ref": "AAAAAAGAuV0e0qx94aI=" + }, + "model": { + "$ref": "AAAAAAGAuV0e0qx7KEA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2064, + "top": 1448, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1454, + "top": 2549, + "width": 67.8017578125, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAuV0e0qx++jc=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAuV0e0qyDB7Q=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAuV0e0qyEF8g=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAuV0e06yFmCM=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAuV0e06yG9S0=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAuV1aL81cJ84=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuV1aL81YYas=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV1aL81dg3A=", + "_parent": { + "$ref": "AAAAAAGAuV1aL81cJ84=" + }, + "model": { + "$ref": "AAAAAAGAuV1aL81YYas=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1635, + "top": 2448, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuV1aL81cJ84=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV1aL81ebps=", + "_parent": { + "$ref": "AAAAAAGAuV1aL81cJ84=" + }, + "model": { + "$ref": "AAAAAAGAuV1aL81YYas=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1627, + "top": 2435, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuV1aL81cJ84=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV1aL81fxhs=", + "_parent": { + "$ref": "AAAAAAGAuV1aL81cJ84=" + }, + "model": { + "$ref": "AAAAAAGAuV1aL81YYas=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1652, + "top": 2473, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuV1aL81cJ84=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV1aL81goEE=", + "_parent": { + "$ref": "AAAAAAGAuV1aL81cJ84=" + }, + "model": { + "$ref": "AAAAAAGAuV1aL81ZaNQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1535, + "top": 2515, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuV1aL81cJ84=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV1aL81hvEc=", + "_parent": { + "$ref": "AAAAAAGAuV1aL81cJ84=" + }, + "model": { + "$ref": "AAAAAAGAuV1aL81ZaNQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1529, + "top": 2502, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuV1aL81cJ84=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV1aMM1iVeQ=", + "_parent": { + "$ref": "AAAAAAGAuV1aL81cJ84=" + }, + "model": { + "$ref": "AAAAAAGAuV1aL81ZaNQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1546, + "top": 2540, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuV1aL81cJ84=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV1aMM1jLo8=", + "_parent": { + "$ref": "AAAAAAGAuV1aL81cJ84=" + }, + "model": { + "$ref": "AAAAAAGAuV1aL81ap5s=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1737, + "top": 2381, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuV1aL81cJ84=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV1aMM1kO5Q=", + "_parent": { + "$ref": "AAAAAAGAuV1aL81cJ84=" + }, + "model": { + "$ref": "AAAAAAGAuV1aL81ap5s=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1727, + "top": 2372, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuV1aL81cJ84=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV1aMM1loTM=", + "_parent": { + "$ref": "AAAAAAGAuV1aL81cJ84=" + }, + "model": { + "$ref": "AAAAAAGAuV1aL81ap5s=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1755, + "top": 2402, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuV1aL81cJ84=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuV1aMM1mzxs=", + "_parent": { + "$ref": "AAAAAAGAuV1aL81cJ84=" + }, + "model": { + "$ref": "AAAAAAGAuV1aL81ZaNQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuV1aMM1nrPE=", + "_parent": { + "$ref": "AAAAAAGAuV1aL81cJ84=" + }, + "model": { + "$ref": "AAAAAAGAuV1aL81ap5s=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuOTIMJPtMrw=" + }, + "tail": { + "$ref": "AAAAAAGAuV0e0qx94aI=" + }, + "lineStyle": 1, + "points": "1522:2548;1767:2386", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuV1aL81dg3A=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuV1aL81ebps=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuV1aL81fxhs=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAuV1aL81goEE=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAuV1aL81hvEc=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAuV1aMM1iVeQ=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAuV1aMM1jLo8=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAuV1aMM1kO5Q=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAuV1aMM1loTM=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAuV1aMM1mzxs=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAuV1aMM1nrPE=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAuV2PQfX+zco=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuV2PQPX68vw=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV2PQfX/eac=", + "_parent": { + "$ref": "AAAAAAGAuV2PQfX+zco=" + }, + "model": { + "$ref": "AAAAAAGAuV2PQPX68vw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1297, + "top": 2406, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuV2PQfX+zco=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV2PQfYA4MM=", + "_parent": { + "$ref": "AAAAAAGAuV2PQfX+zco=" + }, + "model": { + "$ref": "AAAAAAGAuV2PQPX68vw=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1306, + "top": 2394, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuV2PQfX+zco=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV2PQfYBjdg=", + "_parent": { + "$ref": "AAAAAAGAuV2PQfX+zco=" + }, + "model": { + "$ref": "AAAAAAGAuV2PQPX68vw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1280, + "top": 2431, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuV2PQfX+zco=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV2PQfYCVqA=", + "_parent": { + "$ref": "AAAAAAGAuV2PQfX+zco=" + }, + "model": { + "$ref": "AAAAAAGAuV2PQPX7cFo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1151, + "top": 2299, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuV2PQfX+zco=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV2PQfYDr74=", + "_parent": { + "$ref": "AAAAAAGAuV2PQfX+zco=" + }, + "model": { + "$ref": "AAAAAAGAuV2PQPX7cFo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1161, + "top": 2289, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuV2PQfX+zco=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV2PQfYERyY=", + "_parent": { + "$ref": "AAAAAAGAuV2PQfX+zco=" + }, + "model": { + "$ref": "AAAAAAGAuV2PQPX7cFo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1132, + "top": 2318, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuV2PQfX+zco=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV2PQfYFkHE=", + "_parent": { + "$ref": "AAAAAAGAuV2PQfX+zco=" + }, + "model": { + "$ref": "AAAAAAGAuV2PQfX8usQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1443, + "top": 2514, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuV2PQfX+zco=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV2PQfYGboA=", + "_parent": { + "$ref": "AAAAAAGAuV2PQfX+zco=" + }, + "model": { + "$ref": "AAAAAAGAuV2PQfX8usQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1449, + "top": 2502, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuV2PQfX+zco=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV2PQfYH/I8=", + "_parent": { + "$ref": "AAAAAAGAuV2PQfX+zco=" + }, + "model": { + "$ref": "AAAAAAGAuV2PQfX8usQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1431, + "top": 2539, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuV2PQfX+zco=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuV2PQfYIh28=", + "_parent": { + "$ref": "AAAAAAGAuV2PQfX+zco=" + }, + "model": { + "$ref": "AAAAAAGAuV2PQPX7cFo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuV2PQfYJUbo=", + "_parent": { + "$ref": "AAAAAAGAuV2PQfX+zco=" + }, + "model": { + "$ref": "AAAAAAGAuV2PQfX8usQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuV0e0qx94aI=" + }, + "tail": { + "$ref": "AAAAAAGAuM+E1l2pZY4=" + }, + "lineStyle": 1, + "points": "1122:2302;1456:2548", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuV2PQfX/eac=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuV2PQfYA4MM=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuV2PQfYBjdg=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAuV2PQfYCVqA=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAuV2PQfYDr74=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAuV2PQfYERyY=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAuV2PQfYFkHE=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAuV2PQfYGboA=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAuV2PQfYH/I8=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAuV2PQfYIh28=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAuV2PQfYJUbo=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAuV5xKGTqRvI=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuV5xKGToMcc=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAuV5xKGTrbFg=", + "_parent": { + "$ref": "AAAAAAGAuV5xKGTqRvI=" + }, + "model": { + "$ref": "AAAAAAGAuV5xKGToMcc=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAuV5xKGTsbA0=", + "_parent": { + "$ref": "AAAAAAGAuV5xKGTrbFg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4160, + "top": 2880, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuV5xKGTtG8Q=", + "_parent": { + "$ref": "AAAAAAGAuV5xKGTrbFg=" + }, + "font": "Arial;13;1", + "left": 1448, + "top": 2010, + "width": 79.45361328125, + "height": 13, + "text": "ExtrangeInfo" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuV5xKWTuTP4=", + "_parent": { + "$ref": "AAAAAAGAuV5xKGTrbFg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4160, + "top": 2880, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuV5xKWTvZP4=", + "_parent": { + "$ref": "AAAAAAGAuV5xKGTrbFg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4160, + "top": 2880, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1443, + "top": 2003, + "width": 89.45361328125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAuV5xKGTsbA0=" + }, + "nameLabel": { + "$ref": "AAAAAAGAuV5xKGTtG8Q=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAuV5xKWTuTP4=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuV5xKWTvZP4=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAuV5xKWTwGQY=", + "_parent": { + "$ref": "AAAAAAGAuV5xKGTqRvI=" + }, + "model": { + "$ref": "AAAAAAGAuV5xKGToMcc=" + }, + "font": "Arial;13;0", + "left": 1443, + "top": 2028, + "width": 89.45361328125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAuV5xKWTxERk=", + "_parent": { + "$ref": "AAAAAAGAuV5xKGTqRvI=" + }, + "model": { + "$ref": "AAAAAAGAuV5xKGToMcc=" + }, + "font": "Arial;13;0", + "left": 1443, + "top": 2038, + "width": 89.45361328125, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAuV5xKWTyNe8=", + "_parent": { + "$ref": "AAAAAAGAuV5xKGTqRvI=" + }, + "model": { + "$ref": "AAAAAAGAuV5xKGToMcc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2080, + "top": 1440, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAuV5xKWTzNUE=", + "_parent": { + "$ref": "AAAAAAGAuV5xKGTqRvI=" + }, + "model": { + "$ref": "AAAAAAGAuV5xKGToMcc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2080, + "top": 1440, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1443, + "top": 2003, + "width": 89.45361328125, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAuV5xKGTrbFg=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAuV5xKWTwGQY=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAuV5xKWTxERk=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAuV5xKWTyNe8=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAuV5xKWTzNUE=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAuV61GnWbcMU=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuV61GnWZEmM=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAuV61GnWcghc=", + "_parent": { + "$ref": "AAAAAAGAuV61GnWbcMU=" + }, + "model": { + "$ref": "AAAAAAGAuV61GnWZEmM=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAuV61GnWdkXE=", + "_parent": { + "$ref": "AAAAAAGAuV61GnWcghc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4080, + "top": 2928, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuV61GnWeQsE=", + "_parent": { + "$ref": "AAAAAAGAuV61GnWcghc=" + }, + "font": "Arial;13;1", + "left": 1451, + "top": 2101, + "width": 73.68994140625, + "height": 13, + "text": "Backtesting" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuV61GnWfV1k=", + "_parent": { + "$ref": "AAAAAAGAuV61GnWcghc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4080, + "top": 2928, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuV61GnWg2rU=", + "_parent": { + "$ref": "AAAAAAGAuV61GnWcghc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4080, + "top": 2928, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1446, + "top": 2094, + "width": 83.68994140625, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAuV61GnWdkXE=" + }, + "nameLabel": { + "$ref": "AAAAAAGAuV61GnWeQsE=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAuV61GnWfV1k=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuV61GnWg2rU=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAuV61GnWhXV4=", + "_parent": { + "$ref": "AAAAAAGAuV61GnWbcMU=" + }, + "model": { + "$ref": "AAAAAAGAuV61GnWZEmM=" + }, + "font": "Arial;13;0", + "left": 1446, + "top": 2119, + "width": 83.68994140625, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAuV61GnWiKf8=", + "_parent": { + "$ref": "AAAAAAGAuV61GnWbcMU=" + }, + "model": { + "$ref": "AAAAAAGAuV61GnWZEmM=" + }, + "font": "Arial;13;0", + "left": 1446, + "top": 2129, + "width": 83.68994140625, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAuV61GnWj8EM=", + "_parent": { + "$ref": "AAAAAAGAuV61GnWbcMU=" + }, + "model": { + "$ref": "AAAAAAGAuV61GnWZEmM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAuV61GnWklaw=", + "_parent": { + "$ref": "AAAAAAGAuV61GnWbcMU=" + }, + "model": { + "$ref": "AAAAAAGAuV61GnWZEmM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1446, + "top": 2094, + "width": 83.68994140625, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAuV61GnWcghc=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAuV61GnWhXV4=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAuV61GnWiKf8=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAuV61GnWj8EM=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAuV61GnWklaw=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAuV8NHKvC39w=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuV8NG6u+L4o=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV8NHKvDNNk=", + "_parent": { + "$ref": "AAAAAAGAuV8NHKvC39w=" + }, + "model": { + "$ref": "AAAAAAGAuV8NG6u+L4o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1277, + "top": 2168, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuV8NHKvC39w=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV8NHKvEBjI=", + "_parent": { + "$ref": "AAAAAAGAuV8NHKvC39w=" + }, + "model": { + "$ref": "AAAAAAGAuV8NG6u+L4o=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1272, + "top": 2154, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuV8NHKvC39w=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV8NHKvF+jY=", + "_parent": { + "$ref": "AAAAAAGAuV8NHKvC39w=" + }, + "model": { + "$ref": "AAAAAAGAuV8NG6u+L4o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1288, + "top": 2197, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuV8NHKvC39w=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV8NHKvGknY=", + "_parent": { + "$ref": "AAAAAAGAuV8NHKvC39w=" + }, + "model": { + "$ref": "AAAAAAGAuV8NG6u/i3w=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1141, + "top": 2218, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuV8NHKvC39w=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV8NHKvHcNM=", + "_parent": { + "$ref": "AAAAAAGAuV8NHKvC39w=" + }, + "model": { + "$ref": "AAAAAAGAuV8NG6u/i3w=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1139, + "top": 2204, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuV8NHKvC39w=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV8NHKvIf5o=", + "_parent": { + "$ref": "AAAAAAGAuV8NHKvC39w=" + }, + "model": { + "$ref": "AAAAAAGAuV8NG6u/i3w=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1146, + "top": 2245, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuV8NHKvC39w=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV8NHKvJH98=", + "_parent": { + "$ref": "AAAAAAGAuV8NHKvC39w=" + }, + "model": { + "$ref": "AAAAAAGAuV8NG6vAh/U=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1415, + "top": 2119, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuV8NHKvC39w=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV8NHKvKXi0=", + "_parent": { + "$ref": "AAAAAAGAuV8NHKvC39w=" + }, + "model": { + "$ref": "AAAAAAGAuV8NG6vAh/U=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1408, + "top": 2107, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuV8NHKvC39w=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV8NHKvLF3g=", + "_parent": { + "$ref": "AAAAAAGAuV8NHKvC39w=" + }, + "model": { + "$ref": "AAAAAAGAuV8NG6vAh/U=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1428, + "top": 2144, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuV8NHKvC39w=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuV8NHKvMJio=", + "_parent": { + "$ref": "AAAAAAGAuV8NHKvC39w=" + }, + "model": { + "$ref": "AAAAAAGAuV8NG6u/i3w=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuV8NHKvNZbI=", + "_parent": { + "$ref": "AAAAAAGAuV8NHKvC39w=" + }, + "model": { + "$ref": "AAAAAAGAuV8NG6vAh/U=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuV61GnWbcMU=" + }, + "tail": { + "$ref": "AAAAAAGAuM+E1l2pZY4=" + }, + "lineStyle": 1, + "points": "1122:2247;1445:2131", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuV8NHKvDNNk=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuV8NHKvEBjI=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuV8NHKvF+jY=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAuV8NHKvGknY=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAuV8NHKvHcNM=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAuV8NHKvIf5o=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAuV8NHKvJH98=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAuV8NHKvKXi0=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAuV8NHKvLF3g=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAuV8NHKvMJio=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAuV8NHKvNZbI=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAuV8h1b32/3Q=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuV8h1b3yYsQ=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV8h1b334jI=", + "_parent": { + "$ref": "AAAAAAGAuV8h1b32/3Q=" + }, + "model": { + "$ref": "AAAAAAGAuV8h1b3yYsQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1276, + "top": 2123, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuV8h1b32/3Q=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV8h1b34s9w=", + "_parent": { + "$ref": "AAAAAAGAuV8h1b32/3Q=" + }, + "model": { + "$ref": "AAAAAAGAuV8h1b3yYsQ=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1269, + "top": 2110, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuV8h1b32/3Q=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV8h1b35arw=", + "_parent": { + "$ref": "AAAAAAGAuV8h1b32/3Q=" + }, + "model": { + "$ref": "AAAAAAGAuV8h1b3yYsQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1291, + "top": 2148, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuV8h1b32/3Q=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV8h1b36jzM=", + "_parent": { + "$ref": "AAAAAAGAuV8h1b32/3Q=" + }, + "model": { + "$ref": "AAAAAAGAuV8h1b3zCNw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1136, + "top": 2204, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuV8h1b32/3Q=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV8h1b37gJ4=", + "_parent": { + "$ref": "AAAAAAGAuV8h1b32/3Q=" + }, + "model": { + "$ref": "AAAAAAGAuV8h1b3zCNw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1132, + "top": 2191, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuV8h1b32/3Q=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV8h1b38Tm8=", + "_parent": { + "$ref": "AAAAAAGAuV8h1b32/3Q=" + }, + "model": { + "$ref": "AAAAAAGAuV8h1b3zCNw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1146, + "top": 2229, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuV8h1b32/3Q=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV8h1b392eQ=", + "_parent": { + "$ref": "AAAAAAGAuV8h1b32/3Q=" + }, + "model": { + "$ref": "AAAAAAGAuV8h1b30vTo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1417, + "top": 2042, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuV8h1b32/3Q=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV8h1b3+m9g=", + "_parent": { + "$ref": "AAAAAAGAuV8h1b32/3Q=" + }, + "model": { + "$ref": "AAAAAAGAuV8h1b30vTo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1408, + "top": 2031, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuV8h1b32/3Q=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV8h1b3/SOc=", + "_parent": { + "$ref": "AAAAAAGAuV8h1b32/3Q=" + }, + "model": { + "$ref": "AAAAAAGAuV8h1b30vTo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1434, + "top": 2063, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuV8h1b32/3Q=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuV8h1b4AKXA=", + "_parent": { + "$ref": "AAAAAAGAuV8h1b32/3Q=" + }, + "model": { + "$ref": "AAAAAAGAuV8h1b3zCNw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuV8h1b4BDIc=", + "_parent": { + "$ref": "AAAAAAGAuV8h1b32/3Q=" + }, + "model": { + "$ref": "AAAAAAGAuV8h1b30vTo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuV5xKGTqRvI=" + }, + "tail": { + "$ref": "AAAAAAGAuM+E1l2pZY4=" + }, + "lineStyle": 1, + "points": "1122:2236;1447:2048", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuV8h1b334jI=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuV8h1b34s9w=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuV8h1b35arw=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAuV8h1b36jzM=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAuV8h1b37gJ4=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAuV8h1b38Tm8=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAuV8h1b392eQ=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAuV8h1b3+m9g=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAuV8h1b3/SOc=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAuV8h1b4AKXA=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAuV8h1b4BDIc=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAuV9FqNSPzSs=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuV9Fp9SL9aA=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV9FqNSQECM=", + "_parent": { + "$ref": "AAAAAAGAuV9FqNSPzSs=" + }, + "model": { + "$ref": "AAAAAAGAuV9Fp9SL9aA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1652, + "top": 2200, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuV9FqNSPzSs=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV9FqNSR0vU=", + "_parent": { + "$ref": "AAAAAAGAuV9FqNSPzSs=" + }, + "model": { + "$ref": "AAAAAAGAuV9Fp9SL9aA=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1660, + "top": 2187, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuV9FqNSPzSs=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV9FqNSS7gk=", + "_parent": { + "$ref": "AAAAAAGAuV9FqNSPzSs=" + }, + "model": { + "$ref": "AAAAAAGAuV9Fp9SL9aA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1635, + "top": 2225, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuV9FqNSPzSs=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV9FqNSTegQ=", + "_parent": { + "$ref": "AAAAAAGAuV9FqNSPzSs=" + }, + "model": { + "$ref": "AAAAAAGAuV9FqNSMnPQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1551, + "top": 2134, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuV9FqNSPzSs=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV9FqNSUzFI=", + "_parent": { + "$ref": "AAAAAAGAuV9FqNSPzSs=" + }, + "model": { + "$ref": "AAAAAAGAuV9FqNSMnPQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1561, + "top": 2124, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuV9FqNSPzSs=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV9FqNSVMkU=", + "_parent": { + "$ref": "AAAAAAGAuV9FqNSPzSs=" + }, + "model": { + "$ref": "AAAAAAGAuV9FqNSMnPQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1533, + "top": 2155, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuV9FqNSPzSs=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV9FqNSWDuk=", + "_parent": { + "$ref": "AAAAAAGAuV9FqNSPzSs=" + }, + "model": { + "$ref": "AAAAAAGAuV9FqNSN/RE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1753, + "top": 2266, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuV9FqNSPzSs=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV9FqNSXqGE=", + "_parent": { + "$ref": "AAAAAAGAuV9FqNSPzSs=" + }, + "model": { + "$ref": "AAAAAAGAuV9FqNSN/RE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1758, + "top": 2253, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuV9FqNSPzSs=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV9FqNSYqY0=", + "_parent": { + "$ref": "AAAAAAGAuV9FqNSPzSs=" + }, + "model": { + "$ref": "AAAAAAGAuV9FqNSN/RE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1742, + "top": 2291, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuV9FqNSPzSs=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuV9FqNSZmyU=", + "_parent": { + "$ref": "AAAAAAGAuV9FqNSPzSs=" + }, + "model": { + "$ref": "AAAAAAGAuV9FqNSMnPQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuV9FqNSat9g=", + "_parent": { + "$ref": "AAAAAAGAuV9FqNSPzSs=" + }, + "model": { + "$ref": "AAAAAAGAuV9FqNSN/RE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuOTIMJPtMrw=" + }, + "tail": { + "$ref": "AAAAAAGAuV61GnWbcMU=" + }, + "lineStyle": 1, + "points": "1522:2139;1767:2299", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuV9FqNSQECM=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuV9FqNSR0vU=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuV9FqNSS7gk=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAuV9FqNSTegQ=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAuV9FqNSUzFI=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAuV9FqNSVMkU=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAuV9FqNSWDuk=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAuV9FqNSXqGE=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAuV9FqNSYqY0=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAuV9FqNSZmyU=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAuV9FqNSat9g=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAuV9aU+NpAXo=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuV9aU+Nl9Sw=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV9aU+NqZy4=", + "_parent": { + "$ref": "AAAAAAGAuV9aU+NpAXo=" + }, + "model": { + "$ref": "AAAAAAGAuV9aU+Nl9Sw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1654, + "top": 2151, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuV9aU+NpAXo=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV9aU+NrIfE=", + "_parent": { + "$ref": "AAAAAAGAuV9aU+NpAXo=" + }, + "model": { + "$ref": "AAAAAAGAuV9aU+Nl9Sw=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1664, + "top": 2140, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuV9aU+NpAXo=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV9aU+NsedY=", + "_parent": { + "$ref": "AAAAAAGAuV9aU+NpAXo=" + }, + "model": { + "$ref": "AAAAAAGAuV9aU+Nl9Sw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1633, + "top": 2174, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuV9aU+NpAXo=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV9aU+Ntxs8=", + "_parent": { + "$ref": "AAAAAAGAuV9aU+NpAXo=" + }, + "model": { + "$ref": "AAAAAAGAuV9aU+NmjbE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1541, + "top": 2048, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuV9aU+NpAXo=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV9aU+NuoGE=", + "_parent": { + "$ref": "AAAAAAGAuV9aU+NpAXo=" + }, + "model": { + "$ref": "AAAAAAGAuV9aU+NmjbE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1551, + "top": 2040, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuV9aU+NpAXo=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV9aU+Nv90U=", + "_parent": { + "$ref": "AAAAAAGAuV9aU+NpAXo=" + }, + "model": { + "$ref": "AAAAAAGAuV9aU+NmjbE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1519, + "top": 2065, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuV9aU+NpAXo=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV9aU+NwA/8=", + "_parent": { + "$ref": "AAAAAAGAuV9aU+NpAXo=" + }, + "model": { + "$ref": "AAAAAAGAuV9aU+NnBOU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1766, + "top": 2255, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuV9aU+NpAXo=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV9aU+NxCyU=", + "_parent": { + "$ref": "AAAAAAGAuV9aU+NpAXo=" + }, + "model": { + "$ref": "AAAAAAGAuV9aU+NnBOU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1774, + "top": 2244, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuV9aU+NpAXo=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuV9aU+Nyk2A=", + "_parent": { + "$ref": "AAAAAAGAuV9aU+NpAXo=" + }, + "model": { + "$ref": "AAAAAAGAuV9aU+NnBOU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1751, + "top": 2278, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuV9aU+NpAXo=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuV9aU+NztEs=", + "_parent": { + "$ref": "AAAAAAGAuV9aU+NpAXo=" + }, + "model": { + "$ref": "AAAAAAGAuV9aU+NmjbE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuV9aU+N0PH0=", + "_parent": { + "$ref": "AAAAAAGAuV9aU+NpAXo=" + }, + "model": { + "$ref": "AAAAAAGAuV9aU+NnBOU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuOTIMJPtMrw=" + }, + "tail": { + "$ref": "AAAAAAGAuV5xKGTqRvI=" + }, + "lineStyle": 1, + "points": "1512:2048;1776:2290", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuV9aU+NqZy4=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuV9aU+NrIfE=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuV9aU+NsedY=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAuV9aU+Ntxs8=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAuV9aU+NuoGE=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAuV9aU+Nv90U=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAuV9aU+NwA/8=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAuV9aU+NxCyU=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAuV9aU+Nyk2A=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAuV9aU+NztEs=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAuV9aU+N0PH0=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAuWCQyo8soTQ=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuWCQyY8q+zA=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAuWCQyo8tTsE=", + "_parent": { + "$ref": "AAAAAAGAuWCQyo8soTQ=" + }, + "model": { + "$ref": "AAAAAAGAuWCQyY8q+zA=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAuWCQyo8uIxM=", + "_parent": { + "$ref": "AAAAAAGAuWCQyo8tTsE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -3296, + "top": 3094, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuWCQyo8vajI=", + "_parent": { + "$ref": "AAAAAAGAuWCQyo8tTsE=" + }, + "font": "Arial;13;1", + "left": 1874, + "top": 2926, + "width": 54.89453125, + "height": 13, + "text": "SMA" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuWCQyo8wAfY=", + "_parent": { + "$ref": "AAAAAAGAuWCQyo8tTsE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -3296, + "top": 3094, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuWCQyo8xXEc=", + "_parent": { + "$ref": "AAAAAAGAuWCQyo8tTsE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -3296, + "top": 3094, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1869, + "top": 2919, + "width": 64.89453125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAuWCQyo8uIxM=" + }, + "nameLabel": { + "$ref": "AAAAAAGAuWCQyo8vajI=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAuWCQyo8wAfY=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuWCQyo8xXEc=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAuWCQyo8y5/c=", + "_parent": { + "$ref": "AAAAAAGAuWCQyo8soTQ=" + }, + "model": { + "$ref": "AAAAAAGAuWCQyY8q+zA=" + }, + "font": "Arial;13;0", + "left": 1869, + "top": 2944, + "width": 64.89453125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAuWCQyo8z+DA=", + "_parent": { + "$ref": "AAAAAAGAuWCQyo8soTQ=" + }, + "model": { + "$ref": "AAAAAAGAuWCQyY8q+zA=" + }, + "font": "Arial;13;0", + "left": 1869, + "top": 2954, + "width": 64.89453125, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAuWCQyo80s5M=", + "_parent": { + "$ref": "AAAAAAGAuWCQyo8soTQ=" + }, + "model": { + "$ref": "AAAAAAGAuWCQyY8q+zA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -1648, + "top": 1547, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAuWCQyo81/fE=", + "_parent": { + "$ref": "AAAAAAGAuWCQyo8soTQ=" + }, + "model": { + "$ref": "AAAAAAGAuWCQyY8q+zA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -1648, + "top": 1547, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1869, + "top": 2919, + "width": 64.89453125, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAuWCQyo8tTsE=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAuWCQyo8y5/c=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAuWCQyo8z+DA=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAuWCQyo80s5M=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAuWCQyo81/fE=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAuWEQGre1Huk=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuWEQGrezKb0=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAuWEQG7e2A6I=", + "_parent": { + "$ref": "AAAAAAGAuWEQGre1Huk=" + }, + "model": { + "$ref": "AAAAAAGAuWEQGrezKb0=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAuWEQG7e37P0=", + "_parent": { + "$ref": "AAAAAAGAuWEQG7e2A6I=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -3808, + "top": 3440, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuWEQG7e4DwU=", + "_parent": { + "$ref": "AAAAAAGAuWEQG7e2A6I=" + }, + "font": "Arial;13;1", + "left": 1461, + "top": 3175, + "width": 54.89453125, + "height": 13, + "text": "Indicator" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuWEQG7e5Jjs=", + "_parent": { + "$ref": "AAAAAAGAuWEQG7e2A6I=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -3808, + "top": 3440, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuWEQG7e6VxA=", + "_parent": { + "$ref": "AAAAAAGAuWEQG7e2A6I=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -3808, + "top": 3440, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1456, + "top": 3168, + "width": 64.89453125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAuWEQG7e37P0=" + }, + "nameLabel": { + "$ref": "AAAAAAGAuWEQG7e4DwU=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAuWEQG7e5Jjs=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuWEQG7e6VxA=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAuWEQG7e7Iy4=", + "_parent": { + "$ref": "AAAAAAGAuWEQGre1Huk=" + }, + "model": { + "$ref": "AAAAAAGAuWEQGrezKb0=" + }, + "font": "Arial;13;0", + "left": 1456, + "top": 3193, + "width": 64.89453125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAuWEQG7e8624=", + "_parent": { + "$ref": "AAAAAAGAuWEQGre1Huk=" + }, + "model": { + "$ref": "AAAAAAGAuWEQGrezKb0=" + }, + "font": "Arial;13;0", + "left": 1456, + "top": 3203, + "width": 64.89453125, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAuWEQG7e9IIE=", + "_parent": { + "$ref": "AAAAAAGAuWEQGre1Huk=" + }, + "model": { + "$ref": "AAAAAAGAuWEQGrezKb0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -1904, + "top": 1720, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAuWEQG7e+ycQ=", + "_parent": { + "$ref": "AAAAAAGAuWEQGre1Huk=" + }, + "model": { + "$ref": "AAAAAAGAuWEQGrezKb0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -1904, + "top": 1720, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1456, + "top": 3168, + "width": 64.89453125, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAuWEQG7e2A6I=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAuWEQG7e7Iy4=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAuWEQG7e8624=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAuWEQG7e9IIE=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAuWEQG7e+ycQ=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAuWItvdNM/sI=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuWItvdNKsyI=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWItvdNNzPI=", + "_parent": { + "$ref": "AAAAAAGAuWItvdNM/sI=" + }, + "model": { + "$ref": "AAAAAAGAuWItvdNKsyI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1701, + "top": 3071, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuWItvdNM/sI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWItvdNOSi0=", + "_parent": { + "$ref": "AAAAAAGAuWItvdNM/sI=" + }, + "model": { + "$ref": "AAAAAAGAuWItvdNKsyI=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1709, + "top": 3084, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuWItvdNM/sI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWItvtNP1/U=", + "_parent": { + "$ref": "AAAAAAGAuWItvdNM/sI=" + }, + "model": { + "$ref": "AAAAAAGAuWItvdNKsyI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1686, + "top": 3046, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuWItvdNM/sI=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuWEQGre1Huk=" + }, + "tail": { + "$ref": "AAAAAAGAuWCQyo8soTQ=" + }, + "lineStyle": 1, + "points": "1868:2960;1521:3170", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuWItvdNNzPI=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuWItvdNOSi0=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuWItvtNP1/U=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAuWJ1XxSTYRs=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuWJ1XhSRfYI=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAuWJ1XxSUghQ=", + "_parent": { + "$ref": "AAAAAAGAuWJ1XxSTYRs=" + }, + "model": { + "$ref": "AAAAAAGAuWJ1XhSRfYI=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAuWJ1XxSVivk=", + "_parent": { + "$ref": "AAAAAAGAuWJ1XxSUghQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -3552, + "top": 2928, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuWJ1XxSW8nM=", + "_parent": { + "$ref": "AAAAAAGAuWJ1XxSUghQ=" + }, + "font": "Arial;13;1", + "left": 1758, + "top": 2926, + "width": 41.919921875, + "height": 13, + "text": "EMA" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuWJ1XxSXJjo=", + "_parent": { + "$ref": "AAAAAAGAuWJ1XxSUghQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -3552, + "top": 2928, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuWJ1XxSYGVk=", + "_parent": { + "$ref": "AAAAAAGAuWJ1XxSUghQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -3552, + "top": 2928, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1753, + "top": 2919, + "width": 51.919921875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAuWJ1XxSVivk=" + }, + "nameLabel": { + "$ref": "AAAAAAGAuWJ1XxSW8nM=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAuWJ1XxSXJjo=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuWJ1XxSYGVk=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAuWJ1XxSZ8QY=", + "_parent": { + "$ref": "AAAAAAGAuWJ1XxSTYRs=" + }, + "model": { + "$ref": "AAAAAAGAuWJ1XhSRfYI=" + }, + "font": "Arial;13;0", + "left": 1753, + "top": 2944, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAuWJ1XxSaS10=", + "_parent": { + "$ref": "AAAAAAGAuWJ1XxSTYRs=" + }, + "model": { + "$ref": "AAAAAAGAuWJ1XhSRfYI=" + }, + "font": "Arial;13;0", + "left": 1753, + "top": 2954, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAuWJ1XxSbw0w=", + "_parent": { + "$ref": "AAAAAAGAuWJ1XxSTYRs=" + }, + "model": { + "$ref": "AAAAAAGAuWJ1XhSRfYI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -1776, + "top": 1464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAuWJ1XxScBM8=", + "_parent": { + "$ref": "AAAAAAGAuWJ1XxSTYRs=" + }, + "model": { + "$ref": "AAAAAAGAuWJ1XhSRfYI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -1776, + "top": 1464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1753, + "top": 2919, + "width": 51.919921875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAuWJ1XxSUghQ=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAuWJ1XxSZ8QY=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAuWJ1XxSaS10=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAuWJ1XxSbw0w=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAuWJ1XxScBM8=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAuWKJvR1FAoI=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuWKJvR1DPHM=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAuWKJvR1GO1c=", + "_parent": { + "$ref": "AAAAAAGAuWKJvR1FAoI=" + }, + "model": { + "$ref": "AAAAAAGAuWKJvR1DPHM=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAuWKJvR1HSFA=", + "_parent": { + "$ref": "AAAAAAGAuWKJvR1GO1c=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -3792, + "top": 2784, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuWKJvR1IAFw=", + "_parent": { + "$ref": "AAAAAAGAuWKJvR1GO1c=" + }, + "font": "Arial;13;1", + "left": 1642, + "top": 2926, + "width": 41.919921875, + "height": 13, + "text": "RSI" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuWKJvR1JNXs=", + "_parent": { + "$ref": "AAAAAAGAuWKJvR1GO1c=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -3792, + "top": 2784, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuWKJvR1KnZI=", + "_parent": { + "$ref": "AAAAAAGAuWKJvR1GO1c=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -3792, + "top": 2784, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1637, + "top": 2919, + "width": 51.919921875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAuWKJvR1HSFA=" + }, + "nameLabel": { + "$ref": "AAAAAAGAuWKJvR1IAFw=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAuWKJvR1JNXs=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuWKJvR1KnZI=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAuWKJvR1L1uI=", + "_parent": { + "$ref": "AAAAAAGAuWKJvR1FAoI=" + }, + "model": { + "$ref": "AAAAAAGAuWKJvR1DPHM=" + }, + "font": "Arial;13;0", + "left": 1637, + "top": 2944, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAuWKJvR1MZYY=", + "_parent": { + "$ref": "AAAAAAGAuWKJvR1FAoI=" + }, + "model": { + "$ref": "AAAAAAGAuWKJvR1DPHM=" + }, + "font": "Arial;13;0", + "left": 1637, + "top": 2954, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAuWKJvR1N9Ms=", + "_parent": { + "$ref": "AAAAAAGAuWKJvR1FAoI=" + }, + "model": { + "$ref": "AAAAAAGAuWKJvR1DPHM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -1896, + "top": 1184, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAuWKJvR1O62I=", + "_parent": { + "$ref": "AAAAAAGAuWKJvR1FAoI=" + }, + "model": { + "$ref": "AAAAAAGAuWKJvR1DPHM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -1896, + "top": 1184, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1637, + "top": 2919, + "width": 51.919921875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAuWKJvR1GO1c=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAuWKJvR1L1uI=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAuWKJvR1MZYY=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAuWKJvR1N9Ms=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAuWKJvR1O62I=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAuWKgviX33Ww=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuWKgviX1ge8=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAuWKgviX4DEY=", + "_parent": { + "$ref": "AAAAAAGAuWKgviX33Ww=" + }, + "model": { + "$ref": "AAAAAAGAuWKgviX1ge8=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAuWKgvyX5620=", + "_parent": { + "$ref": "AAAAAAGAuWKgviX4DEY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4128, + "top": 2736, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuWKgvyX6Oj4=", + "_parent": { + "$ref": "AAAAAAGAuWKgviX4DEY=" + }, + "font": "Arial;13;1", + "left": 1257, + "top": 2926, + "width": 56.341796875, + "height": 13, + "text": "Bolenger" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuWKgvyX7xKw=", + "_parent": { + "$ref": "AAAAAAGAuWKgviX4DEY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4128, + "top": 2736, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuWKgvyX8hLk=", + "_parent": { + "$ref": "AAAAAAGAuWKgviX4DEY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4128, + "top": 2736, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1252, + "top": 2919, + "width": 66.341796875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAuWKgvyX5620=" + }, + "nameLabel": { + "$ref": "AAAAAAGAuWKgvyX6Oj4=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAuWKgvyX7xKw=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuWKgvyX8hLk=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAuWKgvyX9e+c=", + "_parent": { + "$ref": "AAAAAAGAuWKgviX33Ww=" + }, + "model": { + "$ref": "AAAAAAGAuWKgviX1ge8=" + }, + "font": "Arial;13;0", + "left": 1252, + "top": 2944, + "width": 66.341796875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAuWKgvyX+SfU=", + "_parent": { + "$ref": "AAAAAAGAuWKgviX33Ww=" + }, + "model": { + "$ref": "AAAAAAGAuWKgviX1ge8=" + }, + "font": "Arial;13;0", + "left": 1252, + "top": 2954, + "width": 66.341796875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAuWKgvyX/JkM=", + "_parent": { + "$ref": "AAAAAAGAuWKgviX33Ww=" + }, + "model": { + "$ref": "AAAAAAGAuWKgviX1ge8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2064, + "top": 1368, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAuWKgvyYAYfI=", + "_parent": { + "$ref": "AAAAAAGAuWKgviX33Ww=" + }, + "model": { + "$ref": "AAAAAAGAuWKgviX1ge8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2064, + "top": 1368, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1252, + "top": 2919, + "width": 66.341796875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAuWKgviX4DEY=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAuWKgvyX9e+c=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAuWKgvyX+SfU=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAuWKgvyX/JkM=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAuWKgvyYAYfI=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAuWLa2C6pq4s=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuWLa2C6nRlQ=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAuWLa2C6qDSM=", + "_parent": { + "$ref": "AAAAAAGAuWLa2C6pq4s=" + }, + "model": { + "$ref": "AAAAAAGAuWLa2C6nRlQ=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAuWLa2C6rXYI=", + "_parent": { + "$ref": "AAAAAAGAuWLa2C6qDSM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4096, + "top": 2944, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuWLa2C6sUXA=", + "_parent": { + "$ref": "AAAAAAGAuWLa2C6qDSM=" + }, + "font": "Arial;13;1", + "left": 1141, + "top": 2926, + "width": 41.919921875, + "height": 13, + "text": "ATR" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuWLa2C6tSZs=", + "_parent": { + "$ref": "AAAAAAGAuWLa2C6qDSM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4096, + "top": 2944, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuWLa2C6u+wY=", + "_parent": { + "$ref": "AAAAAAGAuWLa2C6qDSM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4096, + "top": 2944, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1136, + "top": 2919, + "width": 51.919921875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAuWLa2C6rXYI=" + }, + "nameLabel": { + "$ref": "AAAAAAGAuWLa2C6sUXA=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAuWLa2C6tSZs=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuWLa2C6u+wY=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAuWLa2C6vbb4=", + "_parent": { + "$ref": "AAAAAAGAuWLa2C6pq4s=" + }, + "model": { + "$ref": "AAAAAAGAuWLa2C6nRlQ=" + }, + "font": "Arial;13;0", + "left": 1136, + "top": 2944, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAuWLa2C6w1vU=", + "_parent": { + "$ref": "AAAAAAGAuWLa2C6pq4s=" + }, + "model": { + "$ref": "AAAAAAGAuWLa2C6nRlQ=" + }, + "font": "Arial;13;0", + "left": 1136, + "top": 2954, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAuWLa2C6xpLc=", + "_parent": { + "$ref": "AAAAAAGAuWLa2C6pq4s=" + }, + "model": { + "$ref": "AAAAAAGAuWLa2C6nRlQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2048, + "top": 1472, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAuWLa2C6ykw4=", + "_parent": { + "$ref": "AAAAAAGAuWLa2C6pq4s=" + }, + "model": { + "$ref": "AAAAAAGAuWLa2C6nRlQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2048, + "top": 1472, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1136, + "top": 2919, + "width": 51.919921875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAuWLa2C6qDSM=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAuWLa2C6vbb4=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAuWLa2C6w1vU=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAuWLa2C6xpLc=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAuWLa2C6ykw4=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAuWL8Czdb7WI=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuWL8CzdZp1M=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAuWL8Czdc90w=", + "_parent": { + "$ref": "AAAAAAGAuWL8Czdb7WI=" + }, + "model": { + "$ref": "AAAAAAGAuWL8CzdZp1M=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAuWL8CzddqzQ=", + "_parent": { + "$ref": "AAAAAAGAuWL8Czdc90w=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4224, + "top": 2742, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuWL8CzdefSs=", + "_parent": { + "$ref": "AAAAAAGAuWL8Czdc90w=" + }, + "font": "Arial;13;1", + "left": 1021, + "top": 2926, + "width": 45.98876953125, + "height": 13, + "text": "Volume" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuWL8CzdfDEg=", + "_parent": { + "$ref": "AAAAAAGAuWL8Czdc90w=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4224, + "top": 2742, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuWL8CzdgIR0=", + "_parent": { + "$ref": "AAAAAAGAuWL8Czdc90w=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4224, + "top": 2742, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1016, + "top": 2919, + "width": 55.98876953125, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAuWL8CzddqzQ=" + }, + "nameLabel": { + "$ref": "AAAAAAGAuWL8CzdefSs=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAuWL8CzdfDEg=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuWL8CzdgIR0=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAuWL8Czdhmyg=", + "_parent": { + "$ref": "AAAAAAGAuWL8Czdb7WI=" + }, + "model": { + "$ref": "AAAAAAGAuWL8CzdZp1M=" + }, + "font": "Arial;13;0", + "left": 1016, + "top": 2944, + "width": 55.98876953125, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAuWL8CzdiCkA=", + "_parent": { + "$ref": "AAAAAAGAuWL8Czdb7WI=" + }, + "model": { + "$ref": "AAAAAAGAuWL8CzdZp1M=" + }, + "font": "Arial;13;0", + "left": 1016, + "top": 2954, + "width": 55.98876953125, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAuWL8CzdjS/s=", + "_parent": { + "$ref": "AAAAAAGAuWL8Czdb7WI=" + }, + "model": { + "$ref": "AAAAAAGAuWL8CzdZp1M=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2112, + "top": 1371, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAuWL8CzdkzoA=", + "_parent": { + "$ref": "AAAAAAGAuWL8Czdb7WI=" + }, + "model": { + "$ref": "AAAAAAGAuWL8CzdZp1M=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2112, + "top": 1371, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1016, + "top": 2919, + "width": 55.98876953125, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAuWL8Czdc90w=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAuWL8Czdhmyg=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAuWL8CzdiCkA=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAuWL8CzdjS/s=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAuWL8CzdkzoA=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAuWQTn0ANyRk=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuWQTn0ALORo=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAuWQToEAOumc=", + "_parent": { + "$ref": "AAAAAAGAuWQTn0ANyRk=" + }, + "model": { + "$ref": "AAAAAAGAuWQTn0ALORo=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAuWQToEAPfO8=", + "_parent": { + "$ref": "AAAAAAGAuWQToEAOumc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -3856, + "top": 3136, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuWQToEAQNng=", + "_parent": { + "$ref": "AAAAAAGAuWQToEAOumc=" + }, + "font": "Arial;13;1", + "left": 1388, + "top": 2926, + "width": 63.57177734375, + "height": 13, + "text": "LinearReg" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuWQToEARQ8A=", + "_parent": { + "$ref": "AAAAAAGAuWQToEAOumc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -3856, + "top": 3136, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuWQToEAS1U8=", + "_parent": { + "$ref": "AAAAAAGAuWQToEAOumc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -3856, + "top": 3136, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1383, + "top": 2919, + "width": 73.57177734375, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAuWQToEAPfO8=" + }, + "nameLabel": { + "$ref": "AAAAAAGAuWQToEAQNng=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAuWQToEARQ8A=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuWQToEAS1U8=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAuWQToEAT7yY=", + "_parent": { + "$ref": "AAAAAAGAuWQTn0ANyRk=" + }, + "model": { + "$ref": "AAAAAAGAuWQTn0ALORo=" + }, + "font": "Arial;13;0", + "left": 1383, + "top": 2944, + "width": 73.57177734375, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAuWQToEAUDzM=", + "_parent": { + "$ref": "AAAAAAGAuWQTn0ANyRk=" + }, + "model": { + "$ref": "AAAAAAGAuWQTn0ALORo=" + }, + "font": "Arial;13;0", + "left": 1383, + "top": 2954, + "width": 73.57177734375, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAuWQToEAVYoY=", + "_parent": { + "$ref": "AAAAAAGAuWQTn0ANyRk=" + }, + "model": { + "$ref": "AAAAAAGAuWQTn0ALORo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -1928, + "top": 1568, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAuWQToEAWsac=", + "_parent": { + "$ref": "AAAAAAGAuWQTn0ANyRk=" + }, + "model": { + "$ref": "AAAAAAGAuWQTn0ALORo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -1928, + "top": 1568, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1383, + "top": 2919, + "width": 73.57177734375, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAuWQToEAOumc=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAuWQToEAT7yY=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAuWQToEAUDzM=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAuWQToEAVYoY=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAuWQToEAWsac=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAGAuWR+j047/E8=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuWR+j045PuA=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAGAuWR+j048roE=", + "_parent": { + "$ref": "AAAAAAGAuWR+j047/E8=" + }, + "model": { + "$ref": "AAAAAAGAuWR+j045PuA=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAGAuWR+j049i14=", + "_parent": { + "$ref": "AAAAAAGAuWR+j048roE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4080, + "top": 2992, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuWR+j04+Om8=", + "_parent": { + "$ref": "AAAAAAGAuWR+j048roE=" + }, + "font": "Arial;13;1", + "left": 1526, + "top": 2926, + "width": 41.919921875, + "height": 13, + "text": "MACD" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuWR+j04/QHQ=", + "_parent": { + "$ref": "AAAAAAGAuWR+j048roE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4080, + "top": 2992, + "width": 191.43896484375, + "height": 13, + "text": "(from BrighterTrades Class View)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAGAuWR+j05A4uQ=", + "_parent": { + "$ref": "AAAAAAGAuWR+j048roE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -4080, + "top": 2992, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 1521, + "top": 2919, + "width": 51.919921875, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAGAuWR+j049i14=" + }, + "nameLabel": { + "$ref": "AAAAAAGAuWR+j04+Om8=" + }, + "namespaceLabel": { + "$ref": "AAAAAAGAuWR+j04/QHQ=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuWR+j05A4uQ=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAGAuWR+j05Bdyk=", + "_parent": { + "$ref": "AAAAAAGAuWR+j047/E8=" + }, + "model": { + "$ref": "AAAAAAGAuWR+j045PuA=" + }, + "font": "Arial;13;0", + "left": 1521, + "top": 2944, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAGAuWR+j05CU7o=", + "_parent": { + "$ref": "AAAAAAGAuWR+j047/E8=" + }, + "model": { + "$ref": "AAAAAAGAuWR+j045PuA=" + }, + "font": "Arial;13;0", + "left": 1521, + "top": 2954, + "width": 51.919921875, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAGAuWR+j05DSVo=", + "_parent": { + "$ref": "AAAAAAGAuWR+j047/E8=" + }, + "model": { + "$ref": "AAAAAAGAuWR+j045PuA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1496, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAGAuWR+j05EQNk=", + "_parent": { + "$ref": "AAAAAAGAuWR+j047/E8=" + }, + "model": { + "$ref": "AAAAAAGAuWR+j045PuA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1496, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 1521, + "top": 2919, + "width": 51.919921875, + "height": 45, + "nameCompartment": { + "$ref": "AAAAAAGAuWR+j048roE=" + }, + "attributeCompartment": { + "$ref": "AAAAAAGAuWR+j05Bdyk=" + }, + "operationCompartment": { + "$ref": "AAAAAAGAuWR+j05CU7o=" + }, + "receptionCompartment": { + "$ref": "AAAAAAGAuWR+j05DSVo=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAGAuWR+j05EQNk=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAuWbQ6hNEvOs=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuWbQ6hNClPE=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWbQ6hNFY9I=", + "_parent": { + "$ref": "AAAAAAGAuWbQ6hNEvOs=" + }, + "model": { + "$ref": "AAAAAAGAuWbQ6hNClPE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1642, + "top": 3070, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuWbQ6hNEvOs=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWbQ6hNG4TY=", + "_parent": { + "$ref": "AAAAAAGAuWbQ6hNEvOs=" + }, + "model": { + "$ref": "AAAAAAGAuWbQ6hNClPE=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1652, + "top": 3081, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuWbQ6hNEvOs=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWbQ6hNHLEw=", + "_parent": { + "$ref": "AAAAAAGAuWbQ6hNEvOs=" + }, + "model": { + "$ref": "AAAAAAGAuWbQ6hNClPE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1623, + "top": 3047, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuWbQ6hNEvOs=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuWEQGre1Huk=" + }, + "tail": { + "$ref": "AAAAAAGAuWJ1XxSTYRs=" + }, + "lineStyle": 1, + "points": "1752:2963;1514:3167", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuWbQ6hNFY9I=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuWbQ6hNG4TY=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuWbQ6hNHLEw=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAuWbZrSRl3Ig=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuWbZrSRjwRk=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWbZrSRm6+k=", + "_parent": { + "$ref": "AAAAAAGAuWbZrSRl3Ig=" + }, + "model": { + "$ref": "AAAAAAGAuWbZrSRjwRk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1586, + "top": 3067, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuWbZrSRl3Ig=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWbZrSRnPs4=", + "_parent": { + "$ref": "AAAAAAGAuWbZrSRl3Ig=" + }, + "model": { + "$ref": "AAAAAAGAuWbZrSRjwRk=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1598, + "top": 3076, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuWbZrSRl3Ig=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWbZrSRo/0s=", + "_parent": { + "$ref": "AAAAAAGAuWbZrSRl3Ig=" + }, + "model": { + "$ref": "AAAAAAGAuWbZrSRjwRk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1561, + "top": 3050, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuWbZrSRl3Ig=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuWEQGre1Huk=" + }, + "tail": { + "$ref": "AAAAAAGAuWKJvR1FAoI=" + }, + "lineStyle": 1, + "points": "1646:2964;1503:3167", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuWbZrSRm6+k=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuWbZrSRnPs4=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuWbZrSRo/0s=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAuWbhpTROJ0s=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuWbhpTRMJa8=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWbhpTRPTpo=", + "_parent": { + "$ref": "AAAAAAGAuWbhpTROJ0s=" + }, + "model": { + "$ref": "AAAAAAGAuWbhpTRMJa8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1530, + "top": 3062, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuWbhpTROJ0s=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWbhpTRQQiM=", + "_parent": { + "$ref": "AAAAAAGAuWbhpTROJ0s=" + }, + "model": { + "$ref": "AAAAAAGAuWbhpTRMJa8=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1545, + "top": 3065, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuWbhpTROJ0s=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWbhpTRRRfM=", + "_parent": { + "$ref": "AAAAAAGAuWbhpTROJ0s=" + }, + "model": { + "$ref": "AAAAAAGAuWbhpTRMJa8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1501, + "top": 3055, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuWbhpTROJ0s=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuWEQGre1Huk=" + }, + "tail": { + "$ref": "AAAAAAGAuWR+j047/E8=" + }, + "lineStyle": 1, + "points": "1541:2964;1492:3167", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuWbhpTRPTpo=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuWbhpTRQQiM=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuWbhpTRRRfM=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAuWboxEVvETE=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuWboxEVtcT4=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWboxEVwL0Q=", + "_parent": { + "$ref": "AAAAAAGAuWboxEVvETE=" + }, + "model": { + "$ref": "AAAAAAGAuWboxEVtcT4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1467, + "top": 3055, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuWboxEVvETE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWboxEVxeYw=", + "_parent": { + "$ref": "AAAAAAGAuWboxEVvETE=" + }, + "model": { + "$ref": "AAAAAAGAuWboxEVtcT4=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1481, + "top": 3051, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuWboxEVvETE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWboxEVylg0=", + "_parent": { + "$ref": "AAAAAAGAuWboxEVvETE=" + }, + "model": { + "$ref": "AAAAAAGAuWboxEVtcT4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1438, + "top": 3062, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuWboxEVvETE=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuWEQGre1Huk=" + }, + "tail": { + "$ref": "AAAAAAGAuWQTn0ANyRk=" + }, + "lineStyle": 1, + "points": "1425:2964;1481:3167", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuWboxEVwL0Q=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuWboxEVxeYw=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuWboxEVylg0=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAuWbwplkAlm4=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuWbwplj+/zU=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWbwp1kB470=", + "_parent": { + "$ref": "AAAAAAGAuWbwplkAlm4=" + }, + "model": { + "$ref": "AAAAAAGAuWbwplj+/zU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1396, + "top": 3049, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuWbwplkAlm4=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWbwp1kC7YE=", + "_parent": { + "$ref": "AAAAAAGAuWbwplkAlm4=" + }, + "model": { + "$ref": "AAAAAAGAuWbwplj+/zU=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1408, + "top": 3040, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuWbwplkAlm4=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWbwp1kD4+k=", + "_parent": { + "$ref": "AAAAAAGAuWbwplkAlm4=" + }, + "model": { + "$ref": "AAAAAAGAuWbwplj+/zU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1373, + "top": 3068, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuWbwplkAlm4=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuWEQGre1Huk=" + }, + "tail": { + "$ref": "AAAAAAGAuWKgviX33Ww=" + }, + "lineStyle": 1, + "points": "1303:2964;1468:3167", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuWbwp1kB470=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuWbwp1kC7YE=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuWbwp1kD4+k=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAuWb4wW0tsFY=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuWb4wW0rj80=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWb4wW0uIos=", + "_parent": { + "$ref": "AAAAAAGAuWb4wW0tsFY=" + }, + "model": { + "$ref": "AAAAAAGAuWb4wW0rj80=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1331, + "top": 3046, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuWb4wW0tsFY=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWb4wW0v+SY=", + "_parent": { + "$ref": "AAAAAAGAuWb4wW0tsFY=" + }, + "model": { + "$ref": "AAAAAAGAuWb4wW0rj80=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1340, + "top": 3034, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuWb4wW0tsFY=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWb4wW0w5HU=", + "_parent": { + "$ref": "AAAAAAGAuWb4wW0tsFY=" + }, + "model": { + "$ref": "AAAAAAGAuWb4wW0rj80=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1312, + "top": 3069, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuWb4wW0tsFY=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuWEQGre1Huk=" + }, + "tail": { + "$ref": "AAAAAAGAuWLa2C6pq4s=" + }, + "lineStyle": 1, + "points": "1188:2962;1457:3167", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuWb4wW0uIos=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuWb4wW0v+SY=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuWb4wW0w5HU=" + } + }, + { + "_type": "UMLGeneralizationView", + "_id": "AAAAAAGAuWcB0H5O6dM=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuWcB0H5M3eY=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWcB0H5Pm3k=", + "_parent": { + "$ref": "AAAAAAGAuWcB0H5O6dM=" + }, + "model": { + "$ref": "AAAAAAGAuWcB0H5M3eY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1270, + "top": 3044, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuWcB0H5O6dM=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWcB0H5QoNg=", + "_parent": { + "$ref": "AAAAAAGAuWcB0H5O6dM=" + }, + "model": { + "$ref": "AAAAAAGAuWcB0H5M3eY=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1277, + "top": 3031, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuWcB0H5O6dM=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWcB0H5ReBk=", + "_parent": { + "$ref": "AAAAAAGAuWcB0H5O6dM=" + }, + "model": { + "$ref": "AAAAAAGAuWcB0H5M3eY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1255, + "top": 3071, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuWcB0H5O6dM=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuWEQGre1Huk=" + }, + "tail": { + "$ref": "AAAAAAGAuWL8Czdb7WI=" + }, + "lineStyle": 1, + "points": "1072:2957;1455:3172", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuWcB0H5Pm3k=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuWcB0H5QoNg=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuWcB0H5ReBk=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAuWdEiYqRKW0=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuWdEiYqNx0M=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWdEiYqS/+U=", + "_parent": { + "$ref": "AAAAAAGAuWdEiYqRKW0=" + }, + "model": { + "$ref": "AAAAAAGAuWdEiYqNx0M=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1628, + "top": 2857, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuWdEiYqRKW0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWdEiYqTlAw=", + "_parent": { + "$ref": "AAAAAAGAuWdEiYqRKW0=" + }, + "model": { + "$ref": "AAAAAAGAuWdEiYqNx0M=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1620, + "top": 2870, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuWdEiYqRKW0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWdEiYqU4q0=", + "_parent": { + "$ref": "AAAAAAGAuWdEiYqRKW0=" + }, + "model": { + "$ref": "AAAAAAGAuWdEiYqNx0M=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1645, + "top": 2832, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuWdEiYqRKW0=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWdEiYqVDuA=", + "_parent": { + "$ref": "AAAAAAGAuWdEiYqRKW0=" + }, + "model": { + "$ref": "AAAAAAGAuWdEiYqOg/0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1722, + "top": 2916, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuWdEiYqRKW0=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWdEioqWIuQ=", + "_parent": { + "$ref": "AAAAAAGAuWdEiYqRKW0=" + }, + "model": { + "$ref": "AAAAAAGAuWdEiYqOg/0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1712, + "top": 2926, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuWdEiYqRKW0=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWdEioqX5LQ=", + "_parent": { + "$ref": "AAAAAAGAuWdEiYqRKW0=" + }, + "model": { + "$ref": "AAAAAAGAuWdEiYqOg/0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1740, + "top": 2895, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuWdEiYqRKW0=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWdEioqYAjI=", + "_parent": { + "$ref": "AAAAAAGAuWdEiYqRKW0=" + }, + "model": { + "$ref": "AAAAAAGAuWdEiYqPYWI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1536, + "top": 2798, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuWdEiYqRKW0=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWdEioqZg8k=", + "_parent": { + "$ref": "AAAAAAGAuWdEiYqRKW0=" + }, + "model": { + "$ref": "AAAAAAGAuWdEiYqPYWI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1531, + "top": 2811, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuWdEiYqRKW0=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWdEioqa6hM=", + "_parent": { + "$ref": "AAAAAAGAuWdEiYqRKW0=" + }, + "model": { + "$ref": "AAAAAAGAuWdEiYqPYWI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1547, + "top": 2773, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuWdEiYqRKW0=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuWdEioqb2dk=", + "_parent": { + "$ref": "AAAAAAGAuWdEiYqRKW0=" + }, + "model": { + "$ref": "AAAAAAGAuWdEiYqOg/0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuWdEioqckYw=", + "_parent": { + "$ref": "AAAAAAGAuWdEiYqRKW0=" + }, + "model": { + "$ref": "AAAAAAGAuWdEiYqPYWI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuP33uT39n/4=" + }, + "tail": { + "$ref": "AAAAAAGAuWJ1XxSTYRs=" + }, + "lineStyle": 1, + "points": "1752:2924;1523:2778", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuWdEiYqS/+U=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuWdEiYqTlAw=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuWdEiYqU4q0=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAuWdEiYqVDuA=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAuWdEioqWIuQ=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAuWdEioqX5LQ=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAuWdEioqYAjI=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAuWdEioqZg8k=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAuWdEioqa6hM=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAuWdEioqb2dk=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAuWdEioqckYw=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAuWdw3KnUOs8=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuWdw3KnQ/ZI=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWdw3KnV+qc=", + "_parent": { + "$ref": "AAAAAAGAuWdw3KnUOs8=" + }, + "model": { + "$ref": "AAAAAAGAuWdw3KnQ/ZI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1501, + "top": 2846, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuWdw3KnUOs8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWdw3KnW5Tg=", + "_parent": { + "$ref": "AAAAAAGAuWdw3KnUOs8=" + }, + "model": { + "$ref": "AAAAAAGAuWdw3KnQ/ZI=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1487, + "top": 2850, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuWdw3KnUOs8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWdw3KnX8ZQ=", + "_parent": { + "$ref": "AAAAAAGAuWdw3KnUOs8=" + }, + "model": { + "$ref": "AAAAAAGAuWdw3KnQ/ZI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1530, + "top": 2837, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuWdw3KnUOs8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWdw3KnYdII=", + "_parent": { + "$ref": "AAAAAAGAuWdw3KnUOs8=" + }, + "model": { + "$ref": "AAAAAAGAuWdw3KnRX4o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1516, + "top": 2891, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuWdw3KnUOs8=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWdw3KnZ5cc=", + "_parent": { + "$ref": "AAAAAAGAuWdw3KnUOs8=" + }, + "model": { + "$ref": "AAAAAAGAuWdw3KnRX4o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1503, + "top": 2893, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuWdw3KnUOs8=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWdw3Kna4No=", + "_parent": { + "$ref": "AAAAAAGAuWdw3KnUOs8=" + }, + "model": { + "$ref": "AAAAAAGAuWdw3KnRX4o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1544, + "top": 2887, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuWdw3KnUOs8=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWdw3KnblLg=", + "_parent": { + "$ref": "AAAAAAGAuWdw3KnUOs8=" + }, + "model": { + "$ref": "AAAAAAGAuWdw3KnSPSQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1487, + "top": 2801, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuWdw3KnUOs8=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWdw3KncYuY=", + "_parent": { + "$ref": "AAAAAAGAuWdw3KnUOs8=" + }, + "model": { + "$ref": "AAAAAAGAuWdw3KnSPSQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1475, + "top": 2807, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuWdw3KnUOs8=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWdw3Knd0AI=", + "_parent": { + "$ref": "AAAAAAGAuWdw3KnUOs8=" + }, + "model": { + "$ref": "AAAAAAGAuWdw3KnSPSQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1512, + "top": 2788, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuWdw3KnUOs8=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuWdw3aneXwk=", + "_parent": { + "$ref": "AAAAAAGAuWdw3KnUOs8=" + }, + "model": { + "$ref": "AAAAAAGAuWdw3KnRX4o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuWdw3anfPsw=", + "_parent": { + "$ref": "AAAAAAGAuWdw3KnUOs8=" + }, + "model": { + "$ref": "AAAAAAGAuWdw3KnSPSQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuP33uT39n/4=" + }, + "tail": { + "$ref": "AAAAAAGAuWR+j047/E8=" + }, + "lineStyle": 1, + "points": "1539:2918;1494:2778", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuWdw3KnV+qc=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuWdw3KnW5Tg=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuWdw3KnX8ZQ=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAuWdw3KnYdII=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAuWdw3KnZ5cc=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAuWdw3Kna4No=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAuWdw3KnblLg=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAuWdw3KncYuY=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAuWdw3Knd0AI=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAuWdw3aneXwk=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAuWdw3anfPsw=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAuWeDd7p8mRE=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuWeDd7p4cVo=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWeDd7p9ySo=", + "_parent": { + "$ref": "AAAAAAGAuWeDd7p8mRE=" + }, + "model": { + "$ref": "AAAAAAGAuWeDd7p4cVo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1628, + "top": 2857, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuWeDd7p8mRE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWeDd7p+reg=", + "_parent": { + "$ref": "AAAAAAGAuWeDd7p8mRE=" + }, + "model": { + "$ref": "AAAAAAGAuWeDd7p4cVo=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1620, + "top": 2870, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuWeDd7p8mRE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWeDd7p/y4I=", + "_parent": { + "$ref": "AAAAAAGAuWeDd7p8mRE=" + }, + "model": { + "$ref": "AAAAAAGAuWeDd7p4cVo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1645, + "top": 2832, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuWeDd7p8mRE=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWeDd7qAhAc=", + "_parent": { + "$ref": "AAAAAAGAuWeDd7p8mRE=" + }, + "model": { + "$ref": "AAAAAAGAuWeDd7p5BzQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1722, + "top": 2916, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuWeDd7p8mRE=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWeDd7qBYEg=", + "_parent": { + "$ref": "AAAAAAGAuWeDd7p8mRE=" + }, + "model": { + "$ref": "AAAAAAGAuWeDd7p5BzQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1712, + "top": 2926, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuWeDd7p8mRE=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWeDd7qCLHE=", + "_parent": { + "$ref": "AAAAAAGAuWeDd7p8mRE=" + }, + "model": { + "$ref": "AAAAAAGAuWeDd7p5BzQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1740, + "top": 2895, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuWeDd7p8mRE=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWeDeLqD2Iw=", + "_parent": { + "$ref": "AAAAAAGAuWeDd7p8mRE=" + }, + "model": { + "$ref": "AAAAAAGAuWeDd7p60tw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1536, + "top": 2798, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuWeDd7p8mRE=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWeDeLqEYjw=", + "_parent": { + "$ref": "AAAAAAGAuWeDd7p8mRE=" + }, + "model": { + "$ref": "AAAAAAGAuWeDd7p60tw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1531, + "top": 2811, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuWeDd7p8mRE=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWeDeLqF/Kw=", + "_parent": { + "$ref": "AAAAAAGAuWeDd7p8mRE=" + }, + "model": { + "$ref": "AAAAAAGAuWeDd7p60tw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1547, + "top": 2773, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuWeDd7p8mRE=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuWeDeLqGYVY=", + "_parent": { + "$ref": "AAAAAAGAuWeDd7p8mRE=" + }, + "model": { + "$ref": "AAAAAAGAuWeDd7p5BzQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuWeDeLqHIkE=", + "_parent": { + "$ref": "AAAAAAGAuWeDd7p8mRE=" + }, + "model": { + "$ref": "AAAAAAGAuWeDd7p60tw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuP33uT39n/4=" + }, + "tail": { + "$ref": "AAAAAAGAuWJ1XxSTYRs=" + }, + "lineStyle": 1, + "points": "1752:2924;1523:2778", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuWeDd7p9ySo=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuWeDd7p+reg=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuWeDd7p/y4I=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAuWeDd7qAhAc=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAuWeDd7qBYEg=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAuWeDd7qCLHE=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAuWeDeLqD2Iw=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAuWeDeLqEYjw=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAuWeDeLqF/Kw=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAuWeDeLqGYVY=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAuWeDeLqHIkE=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAuWeO18rNSDU=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuWeO18rJeDk=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWeO18rOzps=", + "_parent": { + "$ref": "AAAAAAGAuWeO18rNSDU=" + }, + "model": { + "$ref": "AAAAAAGAuWeO18rJeDk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1438, + "top": 2836, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuWeO18rNSDU=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWeO18rPuhE=", + "_parent": { + "$ref": "AAAAAAGAuWeO18rNSDU=" + }, + "model": { + "$ref": "AAAAAAGAuWeO18rJeDk=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1424, + "top": 2831, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuWeO18rNSDU=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWeO18rQwWg=", + "_parent": { + "$ref": "AAAAAAGAuWeO18rNSDU=" + }, + "model": { + "$ref": "AAAAAAGAuWeO18rJeDk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1467, + "top": 2847, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuWeO18rNSDU=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWeO18rRbFg=", + "_parent": { + "$ref": "AAAAAAGAuWeO18rNSDU=" + }, + "model": { + "$ref": "AAAAAAGAuWeO18rKiNA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1421, + "top": 2882, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuWeO18rNSDU=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWeO18rSC6U=", + "_parent": { + "$ref": "AAAAAAGAuWeO18rNSDU=" + }, + "model": { + "$ref": "AAAAAAGAuWeO18rKiNA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1410, + "top": 2875, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuWeO18rNSDU=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWeO18rThkw=", + "_parent": { + "$ref": "AAAAAAGAuWeO18rNSDU=" + }, + "model": { + "$ref": "AAAAAAGAuWeO18rKiNA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1446, + "top": 2896, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuWeO18rNSDU=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWeO18rUW6k=", + "_parent": { + "$ref": "AAAAAAGAuWeO18rNSDU=" + }, + "model": { + "$ref": "AAAAAAGAuWeO18rLp14=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1455, + "top": 2791, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuWeO18rNSDU=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWeO18rVh44=", + "_parent": { + "$ref": "AAAAAAGAuWeO18rNSDU=" + }, + "model": { + "$ref": "AAAAAAGAuWeO18rLp14=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1442, + "top": 2788, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuWeO18rNSDU=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWeO18rWbM4=", + "_parent": { + "$ref": "AAAAAAGAuWeO18rNSDU=" + }, + "model": { + "$ref": "AAAAAAGAuWeO18rLp14=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1483, + "top": 2796, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuWeO18rNSDU=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuWeO18rX0tU=", + "_parent": { + "$ref": "AAAAAAGAuWeO18rNSDU=" + }, + "model": { + "$ref": "AAAAAAGAuWeO18rKiNA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuWeO18rY2Co=", + "_parent": { + "$ref": "AAAAAAGAuWeO18rNSDU=" + }, + "model": { + "$ref": "AAAAAAGAuWeO18rLp14=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuP33uT39n/4=" + }, + "tail": { + "$ref": "AAAAAAGAuWQTn0ANyRk=" + }, + "lineStyle": 1, + "points": "1427:2918;1479:2778", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuWeO18rOzps=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuWeO18rPuhE=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuWeO18rQwWg=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAuWeO18rRbFg=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAuWeO18rSC6U=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAuWeO18rThkw=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAuWeO18rUW6k=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAuWeO18rVh44=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAuWeO18rWbM4=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAuWeO18rX0tU=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAuWeO18rY2Co=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAuWeZ+dwRdtA=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuWeZ+dwNqn8=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWeZ+dwSD7Q=", + "_parent": { + "$ref": "AAAAAAGAuWeZ+dwRdtA=" + }, + "model": { + "$ref": "AAAAAAGAuWeZ+dwNqn8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1374, + "top": 2830, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuWeZ+dwRdtA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWeZ+dwTBBQ=", + "_parent": { + "$ref": "AAAAAAGAuWeZ+dwRdtA=" + }, + "model": { + "$ref": "AAAAAAGAuWeZ+dwNqn8=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1364, + "top": 2819, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuWeZ+dwRdtA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWeZ+dwUkJ0=", + "_parent": { + "$ref": "AAAAAAGAuWeZ+dwRdtA=" + }, + "model": { + "$ref": "AAAAAAGAuWeZ+dwNqn8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1395, + "top": 2853, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuWeZ+dwRdtA=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWeZ+dwVuFQ=", + "_parent": { + "$ref": "AAAAAAGAuWeZ+dwRdtA=" + }, + "model": { + "$ref": "AAAAAAGAuWeZ+dwOSHA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1318, + "top": 2883, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuWeZ+dwRdtA=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWeZ+dwWwQM=", + "_parent": { + "$ref": "AAAAAAGAuWeZ+dwRdtA=" + }, + "model": { + "$ref": "AAAAAAGAuWeZ+dwOSHA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1310, + "top": 2872, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuWeZ+dwRdtA=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWeZ+dwX9Js=", + "_parent": { + "$ref": "AAAAAAGAuWeZ+dwRdtA=" + }, + "model": { + "$ref": "AAAAAAGAuWeZ+dwOSHA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1333, + "top": 2906, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuWeZ+dwRdtA=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWeZ+dwYD9M=", + "_parent": { + "$ref": "AAAAAAGAuWeZ+dwRdtA=" + }, + "model": { + "$ref": "AAAAAAGAuWeZ+dwPYLw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1432, + "top": 2778, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuWeZ+dwRdtA=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWeZ+dwZgVI=", + "_parent": { + "$ref": "AAAAAAGAuWeZ+dwRdtA=" + }, + "model": { + "$ref": "AAAAAAGAuWeZ+dwPYLw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1422, + "top": 2770, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuWeZ+dwRdtA=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWeZ+dwapTw=", + "_parent": { + "$ref": "AAAAAAGAuWeZ+dwRdtA=" + }, + "model": { + "$ref": "AAAAAAGAuWeZ+dwPYLw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1454, + "top": 2795, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuWeZ+dwRdtA=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuWeZ+dwb31Y=", + "_parent": { + "$ref": "AAAAAAGAuWeZ+dwRdtA=" + }, + "model": { + "$ref": "AAAAAAGAuWeZ+dwOSHA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuWeZ+twckIk=", + "_parent": { + "$ref": "AAAAAAGAuWeZ+dwRdtA=" + }, + "model": { + "$ref": "AAAAAAGAuWeZ+dwPYLw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuP33uT39n/4=" + }, + "tail": { + "$ref": "AAAAAAGAuWKgviX33Ww=" + }, + "lineStyle": 1, + "points": "1309:2918;1462:2778", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuWeZ+dwSD7Q=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuWeZ+dwTBBQ=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuWeZ+dwUkJ0=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAuWeZ+dwVuFQ=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAuWeZ+dwWwQM=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAuWeZ+dwX9Js=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAuWeZ+dwYD9M=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAuWeZ+dwZgVI=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAuWeZ+dwapTw=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAuWeZ+dwb31Y=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAuWeZ+twckIk=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAuWejXPGlXzk=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuWejXPGh7/0=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWejXPGm9p0=", + "_parent": { + "$ref": "AAAAAAGAuWejXPGlXzk=" + }, + "model": { + "$ref": "AAAAAAGAuWejXPGh7/0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1311, + "top": 2831, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuWejXPGlXzk=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWejXPGnlXs=", + "_parent": { + "$ref": "AAAAAAGAuWejXPGlXzk=" + }, + "model": { + "$ref": "AAAAAAGAuWejXPGh7/0=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1304, + "top": 2818, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuWejXPGlXzk=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWejXPGope8=", + "_parent": { + "$ref": "AAAAAAGAuWejXPGlXzk=" + }, + "model": { + "$ref": "AAAAAAGAuWejXPGh7/0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1326, + "top": 2858, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuWejXPGlXzk=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWejXPGpYy8=", + "_parent": { + "$ref": "AAAAAAGAuWejXPGlXzk=" + }, + "model": { + "$ref": "AAAAAAGAuWejXPGiLb0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1203, + "top": 2894, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuWejXPGlXzk=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWejXPGqah8=", + "_parent": { + "$ref": "AAAAAAGAuWejXPGlXzk=" + }, + "model": { + "$ref": "AAAAAAGAuWejXPGiLb0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1198, + "top": 2881, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuWejXPGlXzk=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWejXPGrYs4=", + "_parent": { + "$ref": "AAAAAAGAuWejXPGlXzk=" + }, + "model": { + "$ref": "AAAAAAGAuWejXPGiLb0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1212, + "top": 2920, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuWejXPGlXzk=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWejXPGsCV8=", + "_parent": { + "$ref": "AAAAAAGAuWejXPGlXzk=" + }, + "model": { + "$ref": "AAAAAAGAuWejXPGj6GQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1421, + "top": 2769, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuWejXPGlXzk=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWejXPGtQPE=", + "_parent": { + "$ref": "AAAAAAGAuWejXPGlXzk=" + }, + "model": { + "$ref": "AAAAAAGAuWejXPGj6GQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1412, + "top": 2759, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuWejXPGlXzk=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWejXPGuqtM=", + "_parent": { + "$ref": "AAAAAAGAuWejXPGlXzk=" + }, + "model": { + "$ref": "AAAAAAGAuWejXPGj6GQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1438, + "top": 2791, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuWejXPGlXzk=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuWejXPGvtrE=", + "_parent": { + "$ref": "AAAAAAGAuWejXPGlXzk=" + }, + "model": { + "$ref": "AAAAAAGAuWejXPGiLb0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuWejXPGwZIk=", + "_parent": { + "$ref": "AAAAAAGAuWejXPGlXzk=" + }, + "model": { + "$ref": "AAAAAAGAuWejXPGj6GQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuP33uT39n/4=" + }, + "tail": { + "$ref": "AAAAAAGAuWLa2C6pq4s=" + }, + "lineStyle": 1, + "points": "1188:2926;1451:2776", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuWejXPGm9p0=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuWejXPGnlXs=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuWejXPGope8=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAuWejXPGpYy8=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAuWejXPGqah8=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAuWejXPGrYs4=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAuWejXPGsCV8=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAuWejXPGtQPE=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAuWejXPGuqtM=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAuWejXPGvtrE=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAuWejXPGwZIk=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAuWe0ug23qoo=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuWe0ug2zt/M=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWe0ug24ZV4=", + "_parent": { + "$ref": "AAAAAAGAuWe0ug23qoo=" + }, + "model": { + "$ref": "AAAAAAGAuWe0ug2zt/M=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1255, + "top": 2829, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuWe0ug23qoo=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWe0ug259LQ=", + "_parent": { + "$ref": "AAAAAAGAuWe0ug23qoo=" + }, + "model": { + "$ref": "AAAAAAGAuWe0ug2zt/M=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1249, + "top": 2815, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuWe0ug23qoo=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWe0ug26+CA=", + "_parent": { + "$ref": "AAAAAAGAuWe0ug23qoo=" + }, + "model": { + "$ref": "AAAAAAGAuWe0ug2zt/M=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1266, + "top": 2856, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuWe0ug23qoo=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWe0ug27Xms=", + "_parent": { + "$ref": "AAAAAAGAuWe0ug23qoo=" + }, + "model": { + "$ref": "AAAAAAGAuWe0ug205Qk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1090, + "top": 2899, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuWe0ug23qoo=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWe0ug28Tss=", + "_parent": { + "$ref": "AAAAAAGAuWe0ug23qoo=" + }, + "model": { + "$ref": "AAAAAAGAuWe0ug205Qk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1087, + "top": 2885, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuWe0ug23qoo=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWe0ug29rTQ=", + "_parent": { + "$ref": "AAAAAAGAuWe0ug23qoo=" + }, + "model": { + "$ref": "AAAAAAGAuWe0ug205Qk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1096, + "top": 2926, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuWe0ug23qoo=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWe0ug2+GV4=", + "_parent": { + "$ref": "AAAAAAGAuWe0ug23qoo=" + }, + "model": { + "$ref": "AAAAAAGAuWe0ug21QPw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1421, + "top": 2760, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuWe0ug23qoo=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWe0ug2/kg8=", + "_parent": { + "$ref": "AAAAAAGAuWe0ug23qoo=" + }, + "model": { + "$ref": "AAAAAAGAuWe0ug21QPw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1413, + "top": 2748, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuWe0ug23qoo=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWe0ug3AuVs=", + "_parent": { + "$ref": "AAAAAAGAuWe0ug23qoo=" + }, + "model": { + "$ref": "AAAAAAGAuWe0ug21QPw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1435, + "top": 2783, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuWe0ug23qoo=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuWe0ug3Bd8U=", + "_parent": { + "$ref": "AAAAAAGAuWe0ug23qoo=" + }, + "model": { + "$ref": "AAAAAAGAuWe0ug205Qk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuWe0ug3C/ps=", + "_parent": { + "$ref": "AAAAAAGAuWe0ug23qoo=" + }, + "model": { + "$ref": "AAAAAAGAuWe0ug21QPw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuP33uT39n/4=" + }, + "tail": { + "$ref": "AAAAAAGAuWL8Czdb7WI=" + }, + "lineStyle": 1, + "points": "1072:2929;1451:2770", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuWe0ug24ZV4=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuWe0ug259LQ=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuWe0ug26+CA=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAuWe0ug27Xms=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAuWe0ug28Tss=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAuWe0ug29rTQ=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAuWe0ug2+GV4=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAuWe0ug2/kg8=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAuWe0ug3AuVs=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAuWe0ug3Bd8U=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAuWe0ug3C/ps=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAGAuWfoYEMbjRU=", + "_parent": { + "$ref": "AAAAAAFF+qBtyKM79qY=" + }, + "model": { + "$ref": "AAAAAAGAuWfoYEMXbWo=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWfoYEMczhM=", + "_parent": { + "$ref": "AAAAAAGAuWfoYEMbjRU=" + }, + "model": { + "$ref": "AAAAAAGAuWfoYEMXbWo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1689, + "top": 2856, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuWfoYEMbjRU=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWfoYEMdIuU=", + "_parent": { + "$ref": "AAAAAAGAuWfoYEMbjRU=" + }, + "model": { + "$ref": "AAAAAAGAuWfoYEMXbWo=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 1683, + "top": 2870, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuWfoYEMbjRU=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWfoYEMeZEo=", + "_parent": { + "$ref": "AAAAAAGAuWfoYEMbjRU=" + }, + "model": { + "$ref": "AAAAAAGAuWfoYEMXbWo=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1702, + "top": 2829, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAGAuWfoYEMbjRU=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWfoYEMfkPE=", + "_parent": { + "$ref": "AAAAAAGAuWfoYEMbjRU=" + }, + "model": { + "$ref": "AAAAAAGAuWfoYEMYCUA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1838, + "top": 2924, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuWfoYEMbjRU=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWfoYEMgPPo=", + "_parent": { + "$ref": "AAAAAAGAuWfoYEMbjRU=" + }, + "model": { + "$ref": "AAAAAAGAuWfoYEMYCUA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1830, + "top": 2935, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuWfoYEMbjRU=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWfoYEMhzzY=", + "_parent": { + "$ref": "AAAAAAGAuWfoYEMbjRU=" + }, + "model": { + "$ref": "AAAAAAGAuWfoYEMYCUA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1853, + "top": 2900, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuWfoYEMbjRU=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWfoYEMi4Hc=", + "_parent": { + "$ref": "AAAAAAGAuWfoYEMbjRU=" + }, + "model": { + "$ref": "AAAAAAGAuWfoYEMZVVw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1541, + "top": 2790, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAGAuWfoYEMbjRU=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWfoYEMjScg=", + "_parent": { + "$ref": "AAAAAAGAuWfoYEMbjRU=" + }, + "model": { + "$ref": "AAAAAAGAuWfoYEMZVVw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1538, + "top": 2803, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAGAuWfoYEMbjRU=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAGAuWfoYEMk5rU=", + "_parent": { + "$ref": "AAAAAAGAuWfoYEMbjRU=" + }, + "model": { + "$ref": "AAAAAAGAuWfoYEMZVVw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 1548, + "top": 2763, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAGAuWfoYEMbjRU=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuWfoYEMly64=", + "_parent": { + "$ref": "AAAAAAGAuWfoYEMbjRU=" + }, + "model": { + "$ref": "AAAAAAGAuWfoYEMYCUA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAGAuWfoYEMmlDI=", + "_parent": { + "$ref": "AAAAAAGAuWfoYEMbjRU=" + }, + "model": { + "$ref": "AAAAAAGAuWfoYEMZVVw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -2040, + "top": 1464, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAGAuP33uT39n/4=" + }, + "tail": { + "$ref": "AAAAAAGAuWCQyo8soTQ=" + }, + "lineStyle": 1, + "points": "1868:2927;1524:2772", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAGAuWfoYEMczhM=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAGAuWfoYEMdIuU=" + }, + "propertyLabel": { + "$ref": "AAAAAAGAuWfoYEMeZEo=" + }, + "showEndOrder": "hide", + "tailRoleNameLabel": { + "$ref": "AAAAAAGAuWfoYEMfkPE=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAGAuWfoYEMgPPo=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAGAuWfoYEMhzzY=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAGAuWfoYEMi4Hc=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAGAuWfoYEMjScg=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAGAuWfoYEMk5rU=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAGAuWfoYEMly64=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAGAuWfoYEMmlDI=" + } } ] }, @@ -17885,6 +31242,19 @@ "target": { "$ref": "AAAAAAGAlMgRM+mty4M=" } + }, + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAsSvMUrjiIKI=", + "_parent": { + "$ref": "AAAAAAGAlOF3iKq3uas=" + }, + "source": { + "$ref": "AAAAAAGAlOF3iKq3uas=" + }, + "target": { + "$ref": "AAAAAAGAlKJCvaOwqG4=" + } } ], "operations": [ @@ -17918,6 +31288,19 @@ "target": { "$ref": "AAAAAAGAlMgRM+mty4M=" } + }, + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAsSucK7CXGcM=", + "_parent": { + "$ref": "AAAAAAGAlOG1qKyiRQY=" + }, + "source": { + "$ref": "AAAAAAGAlOG1qKyiRQY=" + }, + "target": { + "$ref": "AAAAAAGAlKJCvaOwqG4=" + } } ], "attributes": [ @@ -18626,7 +32009,8 @@ "$ref": "AAAAAAGAlTsU1xtxoZg=" }, "name": "indicator_list", - "visibility": "private" + "visibility": "private", + "type": "" }, { "_type": "UMLAttribute", @@ -18635,7 +32019,8 @@ "$ref": "AAAAAAGAlTsU1xtxoZg=" }, "name": "indicator_types", - "visibility": "private" + "visibility": "private", + "type": "" } ], "operations": [ @@ -18967,7 +32352,8 @@ "$ref": "AAAAAAGAlU+ijROkjck=" }, "name": "legend", - "visibility": "private" + "visibility": "private", + "type": "" } ], "operations": [ @@ -19511,6 +32897,1693 @@ }, "aggregation": "composite" } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAr+jSx9m7uxc=", + "_parent": { + "$ref": "AAAAAAGAlXGQqAqkRnk=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAr+jSx9m89Aw=", + "_parent": { + "$ref": "AAAAAAGAr+jSx9m7uxc=" + }, + "reference": { + "$ref": "AAAAAAGAlXGQqAqkRnk=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAr+jSx9m96Vk=", + "_parent": { + "$ref": "AAAAAAGAr+jSx9m7uxc=" + }, + "reference": { + "$ref": "AAAAAAGAlUKJqdysOJc=" + }, + "multiplicity": "1" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAuOTIMJPrIJA=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Data", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuVZfzUlebbQ=", + "_parent": { + "$ref": "AAAAAAGAuOTIMJPrIJA=" + }, + "name": "load&save", + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuVZfzUlfC/g=", + "_parent": { + "$ref": "AAAAAAGAuVZfzUlebbQ=" + }, + "reference": { + "$ref": "AAAAAAGAuOTIMJPrIJA=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuVZfzUlgssI=", + "_parent": { + "$ref": "AAAAAAGAuVZfzUlebbQ=" + }, + "reference": { + "$ref": "AAAAAAGAuVXFAz3Hg7I=" + } + } + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGAuOopmNWvR3w=", + "_parent": { + "$ref": "AAAAAAGAuOTIMJPrIJA=" + }, + "name": "serve_index" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAuOp7P9mUGCs=", + "_parent": { + "$ref": "AAAAAAGAuOTIMJPrIJA=" + }, + "name": "serve_history" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAuOtRluFXjHk=", + "_parent": { + "$ref": "AAAAAAGAuOTIMJPrIJA=" + }, + "name": "serve_saved_data" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAuOu1hekagdo=", + "_parent": { + "$ref": "AAAAAAGAuOTIMJPrIJA=" + }, + "name": "serve_init_data" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAuO4F7/eMLTU=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Configuration", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuPMD0yLd3IU=", + "_parent": { + "$ref": "AAAAAAGAuO4F7/eMLTU=" + }, + "name": "modify_settings", + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuPMD0yLePUY=", + "_parent": { + "$ref": "AAAAAAGAuPMD0yLd3IU=" + }, + "reference": { + "$ref": "AAAAAAGAuO4F7/eMLTU=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuPMD0yLfYTo=", + "_parent": { + "$ref": "AAAAAAGAuPMD0yLd3IU=" + }, + "reference": { + "$ref": "AAAAAAGAuOTIMJPrIJA=" + } + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuVk4uYvQ3Tw=", + "_parent": { + "$ref": "AAAAAAGAuO4F7/eMLTU=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuVk4uYvRkhs=", + "_parent": { + "$ref": "AAAAAAGAuVk4uYvQ3Tw=" + }, + "reference": { + "$ref": "AAAAAAGAuO4F7/eMLTU=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuVk4uYvSBnI=", + "_parent": { + "$ref": "AAAAAAGAuVk4uYvQ3Tw=" + }, + "reference": { + "$ref": "AAAAAAGAuOTIMJPrIJA=" + }, + "aggregation": "composite" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAuPiWF3PXblM=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Trade", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuPlitqNIZfs=", + "_parent": { + "$ref": "AAAAAAGAuPiWF3PXblM=" + }, + "name": "update_data", + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuPlitqNJx1s=", + "_parent": { + "$ref": "AAAAAAGAuPlitqNIZfs=" + }, + "reference": { + "$ref": "AAAAAAGAuPiWF3PXblM=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuPlitqNKyYw=", + "_parent": { + "$ref": "AAAAAAGAuPlitqNIZfs=" + }, + "reference": { + "$ref": "AAAAAAGAuOTIMJPrIJA=" + } + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuVmWqqy5k5A=", + "_parent": { + "$ref": "AAAAAAGAuPiWF3PXblM=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuVmWqqy6UWs=", + "_parent": { + "$ref": "AAAAAAGAuVmWqqy5k5A=" + }, + "reference": { + "$ref": "AAAAAAGAuPiWF3PXblM=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuVmWqqy7nq0=", + "_parent": { + "$ref": "AAAAAAGAuVmWqqy5k5A=" + }, + "reference": { + "$ref": "AAAAAAGAuOTIMJPrIJA=" + }, + "aggregation": "composite" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAuPqBc8Rf+0Y=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Candles", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuPyygTKyoCE=", + "_parent": { + "$ref": "AAAAAAGAuPqBc8Rf+0Y=" + }, + "name": "get_history", + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuPyygTKzLmE=", + "_parent": { + "$ref": "AAAAAAGAuPyygTKyoCE=" + }, + "reference": { + "$ref": "AAAAAAGAuPqBc8Rf+0Y=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuPyygTK0Ya8=", + "_parent": { + "$ref": "AAAAAAGAuPyygTKyoCE=" + }, + "reference": { + "$ref": "AAAAAAGAuOTIMJPrIJA=" + } + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuVmrmrq7wmQ=", + "_parent": { + "$ref": "AAAAAAGAuPqBc8Rf+0Y=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuVmrmrq8q8U=", + "_parent": { + "$ref": "AAAAAAGAuVmrmrq7wmQ=" + }, + "reference": { + "$ref": "AAAAAAGAuPqBc8Rf+0Y=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuVmrmrq965o=", + "_parent": { + "$ref": "AAAAAAGAuVmrmrq7wmQ=" + }, + "reference": { + "$ref": "AAAAAAGAuOTIMJPrIJA=" + }, + "aggregation": "composite" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAuP33uT37UxE=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Indicators", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuQhE+nO1Sfg=", + "_parent": { + "$ref": "AAAAAAGAuP33uT37UxE=" + }, + "name": "get_saved_data", + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuQhE+nO2BXo=", + "_parent": { + "$ref": "AAAAAAGAuQhE+nO1Sfg=" + }, + "reference": { + "$ref": "AAAAAAGAuP33uT37UxE=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuQhE+nO3x5M=", + "_parent": { + "$ref": "AAAAAAGAuQhE+nO1Sfg=" + }, + "reference": { + "$ref": "AAAAAAGAuOTIMJPrIJA=" + } + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuQy9auwI9Cc=", + "_parent": { + "$ref": "AAAAAAGAuP33uT37UxE=" + }, + "name": "update_display", + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuQy9auwJ2c0=", + "_parent": { + "$ref": "AAAAAAGAuQy9auwI9Cc=" + }, + "reference": { + "$ref": "AAAAAAGAuP33uT37UxE=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuQy9auwKiSk=", + "_parent": { + "$ref": "AAAAAAGAuQy9auwI9Cc=" + }, + "reference": { + "$ref": "AAAAAAGAuONfWHxCcSg=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuVm8sNz4G9Q=", + "_parent": { + "$ref": "AAAAAAGAuP33uT37UxE=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuVm8sNz57Vc=", + "_parent": { + "$ref": "AAAAAAGAuVm8sNz4G9Q=" + }, + "reference": { + "$ref": "AAAAAAGAuP33uT37UxE=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuVm8sNz6eww=", + "_parent": { + "$ref": "AAAAAAGAuVm8sNz4G9Q=" + }, + "reference": { + "$ref": "AAAAAAGAuOTIMJPrIJA=" + }, + "aggregation": "composite" + } + } + ] + }, + { + "_type": "UMLInterface", + "_id": "AAAAAAGAuNzCJ/fX2oc=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Server", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuOPyc4qId/Q=", + "_parent": { + "$ref": "AAAAAAGAuNzCJ/fX2oc=" + }, + "name": "comunicates", + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuOPyc4qJ8/g=", + "_parent": { + "$ref": "AAAAAAGAuOPyc4qId/Q=" + }, + "reference": { + "$ref": "AAAAAAGAuNzCJ/fX2oc=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuOPyc4qKR0Q=", + "_parent": { + "$ref": "AAAAAAGAuOPyc4qId/Q=" + }, + "reference": { + "$ref": "AAAAAAGAuONfWHxCcSg=" + } + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuVJizeQZJR8=", + "_parent": { + "$ref": "AAAAAAGAuNzCJ/fX2oc=" + }, + "name": "communicate", + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuVJizeQaPgY=", + "_parent": { + "$ref": "AAAAAAGAuVJizeQZJR8=" + }, + "reference": { + "$ref": "AAAAAAGAuNzCJ/fX2oc=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuVJizeQbquk=", + "_parent": { + "$ref": "AAAAAAGAuVJizeQZJR8=" + }, + "reference": { + "$ref": "AAAAAAGAuONfWHxCcSg=" + } + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAuONfWHxCcSg=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "AppSocket", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuQmQJK9U0C0=", + "_parent": { + "$ref": "AAAAAAGAuONfWHxCcSg=" + }, + "name": "update_candles", + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuQmQJK9VQaQ=", + "_parent": { + "$ref": "AAAAAAGAuQmQJK9U0C0=" + }, + "reference": { + "$ref": "AAAAAAGAuONfWHxCcSg=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuQmQJK9Wdjw=", + "_parent": { + "$ref": "AAAAAAGAuQmQJK9U0C0=" + }, + "reference": { + "$ref": "AAAAAAGAuPqBc8Rf+0Y=" + } + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuQxIod4Fenk=", + "_parent": { + "$ref": "AAAAAAGAuONfWHxCcSg=" + }, + "name": "update_candles", + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuQxIot4GAHc=", + "_parent": { + "$ref": "AAAAAAGAuQxIod4Fenk=" + }, + "reference": { + "$ref": "AAAAAAGAuONfWHxCcSg=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuQxIot4HZmM=", + "_parent": { + "$ref": "AAAAAAGAuQxIod4Fenk=" + }, + "reference": { + "$ref": "AAAAAAGAuPqBc8Rf+0Y=" + }, + "navigable": "navigable" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuSQc3JT1QAw=", + "_parent": { + "$ref": "AAAAAAGAuONfWHxCcSg=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuSQc3JT2zQo=", + "_parent": { + "$ref": "AAAAAAGAuSQc3JT1QAw=" + }, + "reference": { + "$ref": "AAAAAAGAuONfWHxCcSg=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuSQc3JT3YwU=", + "_parent": { + "$ref": "AAAAAAGAuSQc3JT1QAw=" + }, + "reference": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + }, + "aggregation": "composite" + } + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGAuOVBA6kpP+8=", + "_parent": { + "$ref": "AAAAAAGAuONfWHxCcSg=" + }, + "name": "recieve_msg" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAuOYyjLCqQ2s=", + "_parent": { + "$ref": "AAAAAAGAuONfWHxCcSg=" + }, + "name": "send_msg" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAuM+E1V2n1sI=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "App.py", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuN1auRB/qIU=", + "_parent": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + }, + "name": "request", + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuN1auRCA3aw=", + "_parent": { + "$ref": "AAAAAAGAuN1auRB/qIU=" + }, + "reference": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuN1auRCBKc4=", + "_parent": { + "$ref": "AAAAAAGAuN1auRB/qIU=" + }, + "reference": { + "$ref": "AAAAAAGAuNzCJ/fX2oc=" + } + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuOiqX76gTZI=", + "_parent": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + }, + "name": "get_data", + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuOiqX76ho7k=", + "_parent": { + "$ref": "AAAAAAGAuOiqX76gTZI=" + }, + "reference": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuOiqX76is10=", + "_parent": { + "$ref": "AAAAAAGAuOiqX76gTZI=" + }, + "reference": { + "$ref": "AAAAAAGAuOTIMJPrIJA=" + } + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuPHt5xZO7C4=", + "_parent": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + }, + "name": "get&set", + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuPHt5xZPceg=", + "_parent": { + "$ref": "AAAAAAGAuPHt5xZO7C4=" + }, + "reference": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuPHt5xZQSeQ=", + "_parent": { + "$ref": "AAAAAAGAuPHt5xZO7C4=" + }, + "reference": { + "$ref": "AAAAAAGAuO4F7/eMLTU=" + } + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuPjy+YFyJHE=", + "_parent": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + }, + "name": "buy&sell", + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuPjy+YFzy1Q=", + "_parent": { + "$ref": "AAAAAAGAuPjy+YFyJHE=" + }, + "reference": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuPjy+YF0g+o=", + "_parent": { + "$ref": "AAAAAAGAuPjy+YFyJHE=" + }, + "reference": { + "$ref": "AAAAAAGAuPiWF3PXblM=" + } + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuPviTiHBWtg=", + "_parent": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + }, + "name": "get&set", + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuPviTiHCBgc=", + "_parent": { + "$ref": "AAAAAAGAuPviTiHBWtg=" + }, + "reference": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuPviTiHDjZI=", + "_parent": { + "$ref": "AAAAAAGAuPviTiHBWtg=" + }, + "reference": { + "$ref": "AAAAAAGAuPqBc8Rf+0Y=" + } + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuQejB2Pkbss=", + "_parent": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + }, + "name": "get&set&update", + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuQejB2PlSzc=", + "_parent": { + "$ref": "AAAAAAGAuQejB2Pkbss=" + }, + "reference": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuQejB2Pmq7Y=", + "_parent": { + "$ref": "AAAAAAGAuQejB2Pkbss=" + }, + "reference": { + "$ref": "AAAAAAGAuP33uT37UxE=" + } + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuVNvjRnrHWs=", + "_parent": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + }, + "name": "get&set&update", + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuVNvjRns3fQ=", + "_parent": { + "$ref": "AAAAAAGAuVNvjRnrHWs=" + }, + "reference": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuVNvjRntm2U=", + "_parent": { + "$ref": "AAAAAAGAuVNvjRnrHWs=" + }, + "reference": { + "$ref": "AAAAAAGAuVM/cAVFGPk=" + } + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuVxSGDwmvqY=", + "_parent": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuVxSGDwnN5c=", + "_parent": { + "$ref": "AAAAAAGAuVxSGDwmvqY=" + }, + "reference": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuVxSGDwouMA=", + "_parent": { + "$ref": "AAAAAAGAuVxSGDwmvqY=" + }, + "reference": { + "$ref": "AAAAAAGAuVtP4xIIvbM=" + } + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuVz30pBTuQQ=", + "_parent": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuVz30pBU8Yk=", + "_parent": { + "$ref": "AAAAAAGAuVz30pBTuQQ=" + }, + "reference": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuVz30pBVqGc=", + "_parent": { + "$ref": "AAAAAAGAuVz30pBTuQQ=" + }, + "reference": { + "$ref": "AAAAAAGAuVzDsG/Eyf8=" + } + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuV2PQPX68vw=", + "_parent": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuV2PQPX7cFo=", + "_parent": { + "$ref": "AAAAAAGAuV2PQPX68vw=" + }, + "reference": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuV2PQfX8usQ=", + "_parent": { + "$ref": "AAAAAAGAuV2PQPX68vw=" + }, + "reference": { + "$ref": "AAAAAAGAuV0e0qx7KEA=" + } + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuV8NG6u+L4o=", + "_parent": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuV8NG6u/i3w=", + "_parent": { + "$ref": "AAAAAAGAuV8NG6u+L4o=" + }, + "reference": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuV8NG6vAh/U=", + "_parent": { + "$ref": "AAAAAAGAuV8NG6u+L4o=" + }, + "reference": { + "$ref": "AAAAAAGAuV61GnWZEmM=" + } + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuV8h1b3yYsQ=", + "_parent": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuV8h1b3zCNw=", + "_parent": { + "$ref": "AAAAAAGAuV8h1b3yYsQ=" + }, + "reference": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuV8h1b30vTo=", + "_parent": { + "$ref": "AAAAAAGAuV8h1b3yYsQ=" + }, + "reference": { + "$ref": "AAAAAAGAuV5xKGToMcc=" + } + } + } + ], + "operations": [ + { + "_type": "UMLOperation", + "_id": "AAAAAAGAuNGnl6GHukw=", + "_parent": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + }, + "name": "index" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAuNIAl6td5Ew=", + "_parent": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + }, + "name": "webSocket" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAuNJXgrJan6g=", + "_parent": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + }, + "name": "buy" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAuNKdnblXsAQ=", + "_parent": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + }, + "name": "sell" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAuNLGLrzZIAs=", + "_parent": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + }, + "name": "settings" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAuNL6+8BbR6g=", + "_parent": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + }, + "name": "history" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAuNND38PdSbM=", + "_parent": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + }, + "name": "saved_data" + }, + { + "_type": "UMLOperation", + "_id": "AAAAAAGAuNOSN8dfJtE=", + "_parent": { + "$ref": "AAAAAAGAuM+E1V2n1sI=" + }, + "name": "indicator_init" + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAuVM/cAVFGPk=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Signals", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuVb72XB9XtM=", + "_parent": { + "$ref": "AAAAAAGAuVM/cAVFGPk=" + }, + "name": "get&set&upate", + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuVb72XB+7pY=", + "_parent": { + "$ref": "AAAAAAGAuVb72XB9XtM=" + }, + "reference": { + "$ref": "AAAAAAGAuVM/cAVFGPk=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuVb72nB/kVk=", + "_parent": { + "$ref": "AAAAAAGAuVb72XB9XtM=" + }, + "reference": { + "$ref": "AAAAAAGAuOTIMJPrIJA=" + } + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuVmzZ8oEZKs=", + "_parent": { + "$ref": "AAAAAAGAuVM/cAVFGPk=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuVmzZ8oFkeY=", + "_parent": { + "$ref": "AAAAAAGAuVmzZ8oEZKs=" + }, + "reference": { + "$ref": "AAAAAAGAuVM/cAVFGPk=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuVmzZ8oGVV0=", + "_parent": { + "$ref": "AAAAAAGAuVmzZ8oEZKs=" + }, + "reference": { + "$ref": "AAAAAAGAuOTIMJPrIJA=" + }, + "aggregation": "composite" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAuVXFAz3Hg7I=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "files" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAuVtP4xIIvbM=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Strategies", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuVw9dyo6P44=", + "_parent": { + "$ref": "AAAAAAGAuVtP4xIIvbM=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuVw9dyo7VAU=", + "_parent": { + "$ref": "AAAAAAGAuVw9dyo6P44=" + }, + "reference": { + "$ref": "AAAAAAGAuVtP4xIIvbM=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuVw9dyo8tdk=", + "_parent": { + "$ref": "AAAAAAGAuVw9dyo6P44=" + }, + "reference": { + "$ref": "AAAAAAGAuOTIMJPrIJA=" + }, + "aggregation": "composite" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAuVzDsG/Eyf8=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Alerts", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuVzmC3yH6rw=", + "_parent": { + "$ref": "AAAAAAGAuVzDsG/Eyf8=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuVzmC3yIsCc=", + "_parent": { + "$ref": "AAAAAAGAuVzmC3yH6rw=" + }, + "reference": { + "$ref": "AAAAAAGAuVzDsG/Eyf8=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuVzmC3yJQlE=", + "_parent": { + "$ref": "AAAAAAGAuVzmC3yH6rw=" + }, + "reference": { + "$ref": "AAAAAAGAuOTIMJPrIJA=" + }, + "aggregation": "composite" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAuV0e0qx7KEA=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Statistics", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuV1aL81YYas=", + "_parent": { + "$ref": "AAAAAAGAuV0e0qx7KEA=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuV1aL81ZaNQ=", + "_parent": { + "$ref": "AAAAAAGAuV1aL81YYas=" + }, + "reference": { + "$ref": "AAAAAAGAuV0e0qx7KEA=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuV1aL81ap5s=", + "_parent": { + "$ref": "AAAAAAGAuV1aL81YYas=" + }, + "reference": { + "$ref": "AAAAAAGAuOTIMJPrIJA=" + }, + "aggregation": "composite" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAuV5xKGToMcc=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "ExtrangeInfo", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuV9aU+Nl9Sw=", + "_parent": { + "$ref": "AAAAAAGAuV5xKGToMcc=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuV9aU+NmjbE=", + "_parent": { + "$ref": "AAAAAAGAuV9aU+Nl9Sw=" + }, + "reference": { + "$ref": "AAAAAAGAuV5xKGToMcc=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuV9aU+NnBOU=", + "_parent": { + "$ref": "AAAAAAGAuV9aU+Nl9Sw=" + }, + "reference": { + "$ref": "AAAAAAGAuOTIMJPrIJA=" + }, + "aggregation": "composite" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAuV61GnWZEmM=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Backtesting", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuV9Fp9SL9aA=", + "_parent": { + "$ref": "AAAAAAGAuV61GnWZEmM=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuV9FqNSMnPQ=", + "_parent": { + "$ref": "AAAAAAGAuV9Fp9SL9aA=" + }, + "reference": { + "$ref": "AAAAAAGAuV61GnWZEmM=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuV9FqNSN/RE=", + "_parent": { + "$ref": "AAAAAAGAuV9Fp9SL9aA=" + }, + "reference": { + "$ref": "AAAAAAGAuOTIMJPrIJA=" + }, + "aggregation": "composite" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAuWCQyY8q+zA=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "SMA", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuWEBDbFnrVU=", + "_parent": { + "$ref": "AAAAAAGAuWCQyY8q+zA=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuWEBDbFo8mM=", + "_parent": { + "$ref": "AAAAAAGAuWEBDbFnrVU=" + }, + "reference": { + "$ref": "AAAAAAGAuWCQyY8q+zA=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuWEBDbFpsIM=", + "_parent": { + "$ref": "AAAAAAGAuWEBDbFnrVU=" + }, + "reference": { + "$ref": "AAAAAAGAuP33uT37UxE=" + }, + "aggregation": "composite" + } + }, + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAuWItvdNKsyI=", + "_parent": { + "$ref": "AAAAAAGAuWCQyY8q+zA=" + }, + "source": { + "$ref": "AAAAAAGAuWCQyY8q+zA=" + }, + "target": { + "$ref": "AAAAAAGAuWEQGrezKb0=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuWfoYEMXbWo=", + "_parent": { + "$ref": "AAAAAAGAuWCQyY8q+zA=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuWfoYEMYCUA=", + "_parent": { + "$ref": "AAAAAAGAuWfoYEMXbWo=" + }, + "reference": { + "$ref": "AAAAAAGAuWCQyY8q+zA=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuWfoYEMZVVw=", + "_parent": { + "$ref": "AAAAAAGAuWfoYEMXbWo=" + }, + "reference": { + "$ref": "AAAAAAGAuP33uT37UxE=" + }, + "aggregation": "shared" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAuWEQGrezKb0=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Indicator" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAuWJ1XhSRfYI=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "EMA", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAuWbQ6hNClPE=", + "_parent": { + "$ref": "AAAAAAGAuWJ1XhSRfYI=" + }, + "source": { + "$ref": "AAAAAAGAuWJ1XhSRfYI=" + }, + "target": { + "$ref": "AAAAAAGAuWEQGrezKb0=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuWdEiYqNx0M=", + "_parent": { + "$ref": "AAAAAAGAuWJ1XhSRfYI=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuWdEiYqOg/0=", + "_parent": { + "$ref": "AAAAAAGAuWdEiYqNx0M=" + }, + "reference": { + "$ref": "AAAAAAGAuWJ1XhSRfYI=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuWdEiYqPYWI=", + "_parent": { + "$ref": "AAAAAAGAuWdEiYqNx0M=" + }, + "reference": { + "$ref": "AAAAAAGAuP33uT37UxE=" + }, + "aggregation": "shared" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuWeDd7p4cVo=", + "_parent": { + "$ref": "AAAAAAGAuWJ1XhSRfYI=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuWeDd7p5BzQ=", + "_parent": { + "$ref": "AAAAAAGAuWeDd7p4cVo=" + }, + "reference": { + "$ref": "AAAAAAGAuWJ1XhSRfYI=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuWeDd7p60tw=", + "_parent": { + "$ref": "AAAAAAGAuWeDd7p4cVo=" + }, + "reference": { + "$ref": "AAAAAAGAuP33uT37UxE=" + }, + "aggregation": "shared" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAuWKJvR1DPHM=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "RSI", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAuWbZrSRjwRk=", + "_parent": { + "$ref": "AAAAAAGAuWKJvR1DPHM=" + }, + "source": { + "$ref": "AAAAAAGAuWKJvR1DPHM=" + }, + "target": { + "$ref": "AAAAAAGAuWEQGrezKb0=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAuWKgviX1ge8=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Bolenger", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAuWbwplj+/zU=", + "_parent": { + "$ref": "AAAAAAGAuWKgviX1ge8=" + }, + "source": { + "$ref": "AAAAAAGAuWKgviX1ge8=" + }, + "target": { + "$ref": "AAAAAAGAuWEQGrezKb0=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuWeZ+dwNqn8=", + "_parent": { + "$ref": "AAAAAAGAuWKgviX1ge8=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuWeZ+dwOSHA=", + "_parent": { + "$ref": "AAAAAAGAuWeZ+dwNqn8=" + }, + "reference": { + "$ref": "AAAAAAGAuWKgviX1ge8=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuWeZ+dwPYLw=", + "_parent": { + "$ref": "AAAAAAGAuWeZ+dwNqn8=" + }, + "reference": { + "$ref": "AAAAAAGAuP33uT37UxE=" + }, + "aggregation": "shared" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAuWLa2C6nRlQ=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "ATR", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAuWb4wW0rj80=", + "_parent": { + "$ref": "AAAAAAGAuWLa2C6nRlQ=" + }, + "source": { + "$ref": "AAAAAAGAuWLa2C6nRlQ=" + }, + "target": { + "$ref": "AAAAAAGAuWEQGrezKb0=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuWejXPGh7/0=", + "_parent": { + "$ref": "AAAAAAGAuWLa2C6nRlQ=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuWejXPGiLb0=", + "_parent": { + "$ref": "AAAAAAGAuWejXPGh7/0=" + }, + "reference": { + "$ref": "AAAAAAGAuWLa2C6nRlQ=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuWejXPGj6GQ=", + "_parent": { + "$ref": "AAAAAAGAuWejXPGh7/0=" + }, + "reference": { + "$ref": "AAAAAAGAuP33uT37UxE=" + }, + "aggregation": "shared" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAuWL8CzdZp1M=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Volume", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAuWcB0H5M3eY=", + "_parent": { + "$ref": "AAAAAAGAuWL8CzdZp1M=" + }, + "source": { + "$ref": "AAAAAAGAuWL8CzdZp1M=" + }, + "target": { + "$ref": "AAAAAAGAuWEQGrezKb0=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuWe0ug2zt/M=", + "_parent": { + "$ref": "AAAAAAGAuWL8CzdZp1M=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuWe0ug205Qk=", + "_parent": { + "$ref": "AAAAAAGAuWe0ug2zt/M=" + }, + "reference": { + "$ref": "AAAAAAGAuWL8CzdZp1M=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuWe0ug21QPw=", + "_parent": { + "$ref": "AAAAAAGAuWe0ug2zt/M=" + }, + "reference": { + "$ref": "AAAAAAGAuP33uT37UxE=" + }, + "aggregation": "shared" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAuWQTn0ALORo=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "LinearReg", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAuWboxEVtcT4=", + "_parent": { + "$ref": "AAAAAAGAuWQTn0ALORo=" + }, + "source": { + "$ref": "AAAAAAGAuWQTn0ALORo=" + }, + "target": { + "$ref": "AAAAAAGAuWEQGrezKb0=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuWeO18rJeDk=", + "_parent": { + "$ref": "AAAAAAGAuWQTn0ALORo=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuWeO18rKiNA=", + "_parent": { + "$ref": "AAAAAAGAuWeO18rJeDk=" + }, + "reference": { + "$ref": "AAAAAAGAuWQTn0ALORo=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuWeO18rLp14=", + "_parent": { + "$ref": "AAAAAAGAuWeO18rJeDk=" + }, + "reference": { + "$ref": "AAAAAAGAuP33uT37UxE=" + }, + "aggregation": "shared" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAGAuWR+j045PuA=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "MACD", + "ownedElements": [ + { + "_type": "UMLGeneralization", + "_id": "AAAAAAGAuWbhpTRMJa8=", + "_parent": { + "$ref": "AAAAAAGAuWR+j045PuA=" + }, + "source": { + "$ref": "AAAAAAGAuWR+j045PuA=" + }, + "target": { + "$ref": "AAAAAAGAuWEQGrezKb0=" + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAGAuWdw3KnQ/ZI=", + "_parent": { + "$ref": "AAAAAAGAuWR+j045PuA=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuWdw3KnRX4o=", + "_parent": { + "$ref": "AAAAAAGAuWdw3KnQ/ZI=" + }, + "reference": { + "$ref": "AAAAAAGAuWR+j045PuA=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAGAuWdw3KnSPSQ=", + "_parent": { + "$ref": "AAAAAAGAuWdw3KnQ/ZI=" + }, + "reference": { + "$ref": "AAAAAAGAuP33uT37UxE=" + }, + "aggregation": "shared" + } } ] } diff --git a/app.py b/app.py index b70fc77..1581002 100644 --- a/app.py +++ b/app.py @@ -1,9 +1,7 @@ import json -import os -import sys from flask import Flask, render_template, request, redirect, jsonify -from flask_cors import CORS, cross_origin +from flask_cors import cross_origin from binance.enums import * from flask_sock import Sock # Handles all server side data @@ -41,11 +39,11 @@ def index(): @sock.route('/ws') def ws(sock): def json_msg_received(msg_obj): - if 'message_type' in msg_ob: - if msg_ob['message_type'] == 'candle_data': + if 'message_type' in msg_obj: + if msg_obj['message_type'] == 'candle_data': # Send the candle to the BrighterData_obj # and forward any returned data to the client. - r_data = bt.app_data.received_cdata(msg_ob['data']) + r_data = bt.app_data.received_cdata(msg_obj['data']) if r_data: resp = { "reply": "i_updates", @@ -53,18 +51,18 @@ def ws(sock): } sock.send(json.dumps(resp)) - if msg_ob['message_type'] == 'request': - print(msg_ob['req']) + if msg_obj['message_type'] == 'request': + print(msg_obj['req']) print('Request!') - if msg_ob['message_type'] == 'reply': - print(msg_ob['rep']) + if msg_obj['message_type'] == 'reply': + print(msg_obj['rep']) print('Reply') - if msg_ob['message_type'] == 'new_signal': + if msg_obj['message_type'] == 'new_signal': # Send the data to the BrighterData_obj # and forward any returned data to the client. - r_data = bt.app_data.received_new_signal(msg_ob['data']) + r_data = bt.app_data.received_new_signal(msg_obj['data']) if r_data: resp = { "reply": "i_updates", @@ -81,8 +79,8 @@ def ws(sock): # If in json format the message gets converted into a dictionary # otherwise it is handled as a status signal from the client try: - msg_ob = json.loads(msg) - json_msg_received(msg_ob) + msg_obj = json.loads(msg) + json_msg_received(msg_obj) except json.JSONDecodeError: print(f'Msg received from client: {msg}') @@ -112,10 +110,10 @@ def settings(): setting = request.form['setting'] if setting == 'interval': interval_state = request.form['timeframe'] - bt.app_data.chart_configuration['chart_interval'] = interval_state + bt.app_data.config.chart_interval = interval_state elif setting == 'trading_pair': trading_pair = request.form['trading_pair'] - bt.app_data.chart_configuration['trading_pair'] = trading_pair + bt.app_data.config.trading_pair = trading_pair elif setting == 'toggle_indicator': # Get a list of indicators to enable enabled_indicators = [] @@ -123,13 +121,13 @@ def settings(): if request.form[i] == 'indicator': enabled_indicators.append(i) # Set visibility for all indicators according to - for indctr in bt.app_data.indicator_list: - if (indctr in enabled_indicators): - bt.app_data.indicator_list[indctr]['visible'] = True + for indctr in bt.app_data.indicators.indicator_list: + if indctr in enabled_indicators: + bt.app_data.indicators.indicator_list[indctr]['visible'] = True else: - bt.app_data.indicator_list[indctr]['visible'] = False + bt.app_data.indicators.indicator_list[indctr]['visible'] = False # Redirect without reloading history - bt.app_data.config_and_states('save') + bt.app_data.config.config_and_states('save') return redirect('/') elif setting == 'edit_indicator': @@ -143,16 +141,16 @@ def settings(): if attributes[a].isdigit(): attributes[a] = int(attributes[a]) # if visible is unchecked it doesn't get sent by the form - if not 'visible' in attributes: + if 'visible' not in attributes: attributes.update({'visible': False}) # Set the data in indicators according to - bt.app_data.indicator_list[indicator] = attributes + bt.app_data.indicators.indicator_list[indicator] = attributes if 'delete' in request.form: indicator = request.form['delete'] - del bt.app_data.indicator_list[indicator] + del bt.app_data.indicators.indicator_list[indicator] # Redirect without reloading history - bt.app_data.config_and_states('save') + bt.app_data.config.config_and_states('save') return redirect('/') elif setting == 'new_indicator': @@ -172,34 +170,34 @@ def settings(): if value.isdigit(): value = int(value) properties[key] = value - bt.app_data.create_indicator(name=indcr, type=indtyp, properties=properties) + bt.app_data.indicators.create_indicator(name=indcr, itype=indtyp, properties=properties) else: print('ERROR SETTING VALUE') print(f'The string received by the server was: /n{request.form}') - bt.app_data.config_and_states('save') - bt.app_data.set_candle_history() + bt.app_data.config.config_and_states('save') + bt.app_data.candles.set_candle_history() return redirect('/') @app.route('/history') @cross_origin(origin='localhost', headers=['Content- Type', 'Authorization']) def history(): - symbol = bt.app_data.chart_configuration['trading_pair'] - interval = bt.app_data.chart_configuration['chart_interval'] - return jsonify(bt.app_data.get_candle_history(symbol, interval, 1000)) + symbol = bt.app_data.config.trading_pair + interval = bt.app_data.config.chart_interval + return jsonify(bt.app_data.candles.get_candle_history(symbol, interval, 1000)) @app.route('/saved_data') @cross_origin(origin='localhost', headers=['Content- Type', 'Authorization']) def saved_data(): - return jsonify(bt.app_data.indicator_list) + return jsonify(bt.app_data.indicators.indicator_list) @app.route('/indicator_init') @cross_origin(origin='localhost', headers=['Content- Type', 'Authorization']) def indicator_init(): - symbol = bt.app_data.chart_configuration['trading_pair'] - interval = bt.app_data.chart_configuration['chart_interval'] - d = bt.app_data.get_indicator_data(symbol, interval, 1000) + symbol = bt.app_data.config.trading_pair + interval = bt.app_data.config.chart_interval + d = bt.app_data.indicators.get_indicator_data(symbol, interval, 1000) return jsonify(d) diff --git a/candles.py b/candles.py new file mode 100644 index 0000000..fc32742 --- /dev/null +++ b/candles.py @@ -0,0 +1,255 @@ +import datetime +import csv + + +class Candles: + def __init__(self, config, client): + # Keep a reference to the exchange client. + self.client = client + # The maximum amount of data to load into memory at one time. + self.max_data_loaded = config.max_data_loaded + # A reference to the app configuration + self.config = config + + # The entire loaded candle history + self.candlesticks = [] + # List of dictionaries of timestamped high, low, and closing values + self.latest_high_values = [] + self.latest_low_values = [] + self.latest_close_values = [] + # Values of the last candle received + self.last_candle = None + # List of dictionaries of timestamped volume values + self.latest_vol = [] + + # Set the instance variable of candlesticks, latest_close_values, high, low, closing, volume, and last_candle + self.set_candle_history() + + def set_new_candle(self, cdata): + self.last_candle = cdata + self.latest_close_values.append({'time': cdata['time'], 'close': cdata['close']}) + self.latest_high_values.append({'time': cdata['time'], 'high': cdata['high']}) + self.latest_low_values.append({'time': cdata['time'], 'low': cdata['low']}) + self.latest_vol.append({'time': cdata['time'], 'value': cdata['vol']}) + + def load_candle_history(self, symbol, interval): + """ Retrieve candlestick history from a file and append it with + more recent exchange data while updating the file record. + This method only get called if the data is requested. + This is to avoid maintaining irrelevant data files.""" + + start_datetime = datetime.datetime(2017, 1, 1) + # Create a filename from the function parameters. + # Format is symbol_interval_start_date: example - 'BTCUSDT_15m_2017-01-01' + file_name = f'{symbol}_{interval}_{start_datetime.date()}' + + # List of price data. ,,,,, + # + # , + candlesticks = [] + + try: + # Populate from if it exists. + print(f'Attempting to open: {file_name}') + with open(file_name, 'r') as file: + reader = csv.reader(file, delimiter=',') + # Load the data here + for row in reader: + candlesticks.append(row) + print('File loaded') + # Open for appending + file = open(file_name, 'a', newline='') + candlestick_writer = csv.writer(file, delimiter=',') + + except IOError: + # If the file doesn't exist it must be created. + print(f'{file_name} not found: Creating the file') + # Open for writing + file = open(file_name, 'w', newline='') + candlestick_writer = csv.writer(file, delimiter=',') + + # If no candlesticks were loaded from file. Set a date to start loading from in the + # variable with a default value stored in . + if not candlesticks: + last_candle_stamp = start_datetime.timestamp() * 1000 + else: + # Set with the timestamp of the last candles on file + last_candle_stamp = candlesticks[-1][0] + # Request any missing candlestick data from the exchange + recent_candlesticks = self.client.get_historical_klines(symbol, interval, start_str=int(last_candle_stamp)) + # Discard the first row of candlestick data as it will be a duplicate***DOUBLE CHECK THIS + recent_candlesticks.pop(0) + # Append the candlestick list and the file + for candlestick in recent_candlesticks: + candlesticks.append(candlestick) + candlestick_writer.writerow(candlestick) + # Close the file and return the entire candlestick history + file.close() + return candlesticks + + def set_candle_history(self, symbol=None, interval=None, max_data_loaded=None): + if not max_data_loaded: + max_data_loaded = self.max_data_loaded + if not symbol: + symbol = self.config.trading_pair + if not interval: + interval = self.config.chart_interval + if self.candlesticks: + print(f'set_candle_history(): Reloading candle data for :{interval}') + else: + print('set_candle_history(): Loading candle data') + # Load candles from file + cdata = self.load_candle_history(symbol, interval) + # Trim the beginning of the returned list to size of max_data_loaded of less + if len(cdata) < max_data_loaded: + max_data_loaded = len(cdata) + self.candlesticks = cdata[-max_data_loaded:] + # Set an instance dictionary of timestamped high, low, closing values + self.set_latest_high_values() + self.set_latest_low_values() + self.set_latest_close_values() + # Extract the volume data from self.candlesticks and store it in self.latest_vol + self.set_latest_vol() + + # Set an instance reference of the last candle + self.last_candle = self.convert_candle(self.candlesticks[-1]) + print('set_candle_history(): Candle data Loaded') + return + + def set_latest_vol(self): + # Extracts a list of volume values from all the loaded candlestick + # data and store it in a dictionary keyed to timestamp of measurement. + latest_vol = [] + last_clp = 0 + for data in self.candlesticks: + clp = int(float(data[4])) + if clp < last_clp: + color = 'rgba(255,82,82, 0.8)' # red + else: + color = 'rgba(0, 150, 136, 0.8)' # green + + vol_data = { + "time": int(data[0]) / 1000, + "value": int(float(data[5])), + "color": color + } + last_clp = clp + latest_vol.append(vol_data) + self.latest_vol = latest_vol + return + + def get_latest_vol(self, num_record=500): + # Returns the latest closing values + if self.latest_vol: + if len(self.latest_vol) < num_record: + print('Warning: get_latest_vol() - Requested too more records then available') + num_record = len(self.latest_vol) + return self.latest_vol[-num_record:] + else: + raise ValueError('Warning: get_latest_vol(): Values are not set') + + def set_latest_high_values(self): + # Extracts a list of close values from all the loaded candlestick + # data and store it in a dictionary keyed to timestamp of measurement. + latest_high_values = [] + for data in self.candlesticks: + high_data = { + "time": int(data[0]) / 1000, + "high": data[2] + } + latest_high_values.append(high_data) + self.latest_high_values = latest_high_values + return + + def get_latest_high_values(self, num_record=500): + # Returns the latest closing values + if self.latest_high_values: + if len(self.latest_high_values) < num_record: + print('Warning: latest_high_values() - Requested too more records then available') + num_record = len(self.latest_high_values) + return self.latest_high_values[-num_record:] + else: + raise ValueError('Warning: latest_high_values(): Values are not set') + + def set_latest_low_values(self): + # Extracts a list of close values from all the loaded candlestick + # data and store it in a dictionary keyed to timestamp of measurement. + latest_low_values = [] + for data in self.candlesticks: + low_data = { + "time": int(data[0]) / 1000, + "low": data[3] + } + latest_low_values.append(low_data) + self.latest_low_values = latest_low_values + return + + def get_latest_low_values(self, num_record=500): + # Returns the latest closing values + if self.latest_low_values: + if len(self.latest_low_values) < num_record: + print('Warning: latest_low_values() - Requested too more records then available') + num_record = len(self.latest_low_values) + return self.latest_low_values[-num_record:] + else: + raise ValueError('Warning: latest_low_values(): Values are not set') + + def set_latest_close_values(self): + # Extracts just the timestamped close values from all the loaded candlestick + # data and store it in the class instance as a dictionary. + latest_close_values = [] + for data in self.candlesticks: + close_data = { + "time": int(data[0]) / 1000, + "close": data[4] + } + latest_close_values.append(close_data) + self.latest_close_values = latest_close_values + return + + def get_latest_close_values(self, num_record=500): + # Returns the latest closing values from the class instance. + if self.latest_close_values: + if len(self.latest_close_values) < num_record: + print('Warning: get_latest_close_values() - Requested too more records then available') + num_record = len(self.latest_close_values) + return self.latest_close_values[-num_record:] + else: + raise ValueError('Warning: get_latest_close_values(): Values are not set') + + @staticmethod + def convert_candle(candle): + # Converts the binance candle format to what lightweight charts expects. + candlestick = { + "time": int(candle[0]) / 1000, + "open": candle[1], + "high": candle[2], + "low": candle[3], + "close": candle[4] + } + return candlestick + + def get_candle_history(self, symbol, interval, num_records): + # Returns a specified number of candle records from memory in the lightweight + # charts format. + if len(self.candlesticks) < num_records: + print('Warning: get_candle_history() Requested more records then available') + num_records = len(self.candlesticks) + + # Drop everything but the requested number of records + candlesticks = self.candlesticks[-num_records:] + + # Reformat relevant candlestick data into a list of python dictionary objects. + # Binance stores timestamps in milliseconds but lightweight charts doesn't, + # so it gets divided by 1000 + processed_candlesticks = [] + for candle in candlesticks: + candlestick = self.convert_candle(candle) + processed_candlesticks.append(candlestick) + # Return a list of candlestick objects + return processed_candlesticks + + def get_volume(self, i_type, num_results=800): + r_data = self.get_latest_vol() + r_data = r_data[-num_results:] + return {"type": i_type, "data": r_data} diff --git a/config.yml b/config.yml deleted file mode 100644 index 6f58486..0000000 --- a/config.yml +++ /dev/null @@ -1,100 +0,0 @@ -chart_configuration: - chart_interval: 4h - trading_pair: BTCUSDT -indicator_list: - ATR: - color: '#1a9b6f' - period: 100 - type: ATR - value: 0 - visible: true - Bolenger: - color_1: '#5ad858' - color_2: '#64d2f7' - color_3: '#5ad858' - devdn: 2 - devup: 2 - ma: 1 - period: 20 - type: BOLBands - value: 0 - value1: '38642.16' - value2: '38641.24' - value3: '38639.63' - visible: true - EMA 100: - color: '#5c5aee' - period: 100 - type: EMA - value: 0 - visible: true - EMA 50: - color: '#464e3f' - period: 50 - type: EMA - value: 0 - visible: true - Linear Reg 100: - color: '#236eb1' - period: 100 - type: LREG - value: '38139.51' - visible: true - MACD: - color_1: '#50d617' - color_2: '#94f657' - fast_p: 12 - hist: 0 - macd: '-2540.72' - signal: '-1775.26' - signal_p: 9 - slow_p: 26 - type: MACD - value: 0 - visible: 'False' - New Indicator: - color: '#d5ed5e' - period: 20 - type: RSI - value: 0 - visible: true - New rsi: - color: '#8e257b' - period: 20 - type: RSI - value: '48.96' - visible: true - RSI 14: - color: '#1b63bf' - period: 14 - type: RSI - value: 0 - visible: true - RSI 8: - color: '#2afd40' - period: 8 - type: RSI - value: 0 - visible: true - RSI_21: - color: '#ea3ea2' - period: 21 - type: RSI - value: '29.78' - visible: 'True' - SMA 200: - color: '#1d545c' - period: 200 - type: SMA - value: 0 - visible: true - SMA 21: - color: '#0decc9' - period: 21 - type: SMA - value: 0 - visible: true - Volume: - type: Volume - value: 0 - visible: true diff --git a/config_states.py b/config_states.py new file mode 100644 index 0000000..15cbf59 --- /dev/null +++ b/config_states.py @@ -0,0 +1,75 @@ +from binance.enums import * +import yaml + + +class Configuration: + def __init__(self): + # ************** Default values************** + + # The title of our program. + self.application_title = 'BrighterTrades' + + # The maximum number of candles to store in memory. + self.max_data_loaded = 1000 + + # The default values for the main chart. + self.chart_interval = KLINE_INTERVAL_15MINUTE + self.trading_pair = 'BTCUSDT' + + # The name of the file that stores saved_data + self.config_FN = 'config.yml' + + # A list of all the indicators available. This is injected later. + self.indicator_list = None + + # The data that will be saved and loaded from file . + self.saved_data = None + + def set_indicator_list(self, list): + self.indicator_list = list + + def config_and_states(self, cmd): + """Loads or saves configurable data to the file set in self.config_FN""" + + # The data stored and retrieved from file session. + self.saved_data = { + 'indicator_list': self.indicator_list, + 'config': {'chart_interval': self.chart_interval, 'trading_pair': self.trading_pair} + } + + def set_loaded_values(): + # Sets the values in the saved_data object. + self.indicator_list = self.saved_data['indicator_list'] + self.chart_interval = self.saved_data['config']['chart_interval'] + self.trading_pair = self.saved_data['config']['trading_pair'] + + def load_configuration(filepath): + """load file data""" + with open(filepath, "r") as file_descriptor: + data = yaml.safe_load(file_descriptor) + return data + + def save_configuration(filepath, data): + """Saves file data""" + with open(filepath, "w") as file_descriptor: + yaml.dump(data, file_descriptor) + + if cmd == 'load': + # If load_configuration() finds a file it overwrites + # the saved_data object otherwise it creates a new file + # with the defaults contained in saved_data> + try: + # If file exist load the values. + self.saved_data = load_configuration(self.config_FN) + set_loaded_values() + except IOError: + # If file doesn't exist create a file and save the default values. + save_configuration(self.config_FN, self.saved_data) + elif cmd == 'save': + try: + # Write saved_data to the file. + save_configuration(self.config_FN, self.saved_data) + except IOError: + raise ValueError("save_configuration(): Couldn't save the file.") + else: + raise ValueError('save_configuration(): Invalid command received.') diff --git a/data.py b/data.py index 89e1079..f090f6f 100644 --- a/data.py +++ b/data.py @@ -1,15 +1,10 @@ -import csv -import datetime -import sys -import random - -import numpy as np -import talib +from binance.client import Client import config -from binance.client import Client -from binance.enums import * -import yaml +from candles import Candles +from config_states import Configuration +from exchange_info import ExchangeInfo +from indicators import Indicators class BrighterData: @@ -18,782 +13,68 @@ class BrighterData: # Initialise a connection to the Binance client API self.client = Client(config.API_KEY, config.API_SECRET) - # The title of our program - self.application_title = 'BrighterTrades' - - # Settings for the main chart on our UI - self.chart_configuration = { - 'chart_interval': KLINE_INTERVAL_15MINUTE, - 'trading_pair': 'BTCUSDT', - } - - # The maximum number of candles to store in memory - self.max_data_loaded = 1000 - - # List of all available indicator types - self.indicator_types = {} - # List of all available indicators - self.indicator_list = None - # Add default indicators and their default values to self.indicator_list - self.set_indicator_defaults() - - # Dictionary of exchange and account data - self.exchange_data = {} - # Set the values in self.exchange_data from information retrieved from exchange. - self.set_exchange_data() - - # The name of the file that stores saved_data - self.config_FN = 'config.yml' + # Configuration and settings for the user interface and charts + self.config = Configuration() + # Call a static method from indicators that fills in a default list of indicators in config. + self.config.set_indicator_list(Indicators.get_indicator_defaults()) # Load any saved data from file - self.config_and_states('load') + self.config.config_and_states('load') - # The entire loaded candle history - self.candlesticks = [] - # List of dictionaries of timestamped high, low, and closing values - self.latest_high_values = [] - self.latest_low_values = [] - self.latest_close_values = [] - # Values of the last candle received - self.last_candle = None - # List of dictionaries of timestamped volume values - self.latest_vol = [] + # Object that maintains candlestick and price data. + self.candles = Candles(self.config, self.client) - # Set the instance variable of candlesticks, latest_close_values, high, low, closing, volume, and last_candle - self.set_candle_history() + # Object that interacts with and maintains data from available indicators + self.indicators = Indicators(self.candles) - # A list of values to use with bolenger bands - self.bb_ma_val = {'SMA': 0, 'EMA': 1, 'WMA': 2, 'DEMA': 3, 'TEMA': 4, 'TRIMA': 5, 'KAMA': 6, 'MAMA': 7, 'T3': 8} + # Object that maintains exchange and account data + self.exchange_info = ExchangeInfo(self.client) def get_js_init_data(self): """Returns a JSON object of initialization data for the javascript in the rendered HTML""" - js_data = {'i_types': self.indicator_types, - 'indicators': self.indicator_list, - 'interval': self.chart_configuration['chart_interval'], - 'trading_pair': self.chart_configuration['trading_pair']} + js_data = {'i_types': self.indicators.indicator_types, + 'indicators': self.indicators.indicator_list, + 'interval': self.config.chart_interval, + 'trading_pair': self.config.trading_pair} return js_data - def config_and_states(self, cmd): - """Loads or saves configurable data to the file set in self.config_FN""" - # Application configuration and object states - saved_data = { - 'indicator_list': self.indicator_list, - 'chart_configuration': self.chart_configuration - } - - def set_loaded_values(): - self.indicator_list = saved_data['indicator_list'] - self.chart_configuration = saved_data['chart_configuration'] - - def load_configuration(filepath): - """load file data""" - with open(filepath, "r") as file_descriptor: - data = yaml.safe_load(file_descriptor) - return data - - def save_configuration(filepath, data): - """Saves file data""" - with open(filepath, "w") as file_descriptor: - yaml.dump(data, file_descriptor) - - if cmd == 'load': - # If load_configuration() finds a file it overwrites - # the saved_data object otherwise it creates a new file - # with the defaults contained in saved_data> - try: - saved_data = load_configuration(self.config_FN) - set_loaded_values() - except IOError: - save_configuration(self.config_FN, saved_data) - elif cmd == 'save': - try: - save_configuration(self.config_FN, saved_data) - except IOError: - raise ValueError("Couldn't save the file") - else: - raise ValueError('Invalid command received') - - def load_candle_history(self, symbol, interval): - """ Retrieve candlestick history from a file and append it with - more recent exchange data while updating the file record. - This method only get called if the data is requested. - This is to avoid maintaining irrelevant data files.""" - - start_datetime = datetime.datetime(2017, 1, 1) - # Create a filename from the function parameters. - # Format is symbol_interval_start_date: example - 'BTCUSDT_15m_2017-01-01' - file_name = f'{symbol}_{interval}_{start_datetime.date()}' - - # List of price data. ,,,,, - # - # , - candlesticks = [] - - try: - # Populate from if it exists. - print(f'Attempting to open: {file_name}') - with open(file_name, 'r') as file: - reader = csv.reader(file, delimiter=',') - # Load the data here - for row in reader: - candlesticks.append(row) - print('File loaded') - # Open for appending - file = open(file_name, 'a', newline='') - candlestick_writer = csv.writer(file, delimiter=',') - - except IOError: - # If the file doesn't exist it must be created. - print(f'{file_name} not found: Creating the file') - # Open for writing - file = open(file_name, 'w', newline='') - candlestick_writer = csv.writer(file, delimiter=',') - - # If no candlesticks were loaded from file. Set a date to start loading from in the - # variable with a default value stored in . - if not candlesticks: - last_candle_stamp = start_datetime.timestamp() * 1000 - else: - # Set with the timestamp of the last candles on file - last_candle_stamp = candlesticks[-1][0] - # Request any missing candlestick data from the exchange - recent_candlesticks = self.client.get_historical_klines(symbol, interval, start_str=int(last_candle_stamp)) - # Discard the first row of candlestick data as it will be a duplicate***DOUBLE CHECK THIS - recent_candlesticks.pop(0) - # Append the candlestick list and the file - for candlestick in recent_candlesticks: - candlesticks.append(candlestick) - candlestick_writer.writerow(candlestick) - # Close the file and return the entire candlestick history - file.close() - return candlesticks - - def set_latest_vol(self): - # Extracts a list of volume values from all the loaded candlestick - # data and store it in a dictionary keyed to timestamp of measurement. - latest_vol = [] - last_clp = 0 - for data in self.candlesticks: - clp = int(float(data[4])) - if clp < last_clp: - color = 'rgba(255,82,82, 0.8)' # red - else: - color = 'rgba(0, 150, 136, 0.8)' # green - - vol_data = { - "time": int(data[0]) / 1000, - "value": int(float(data[5])), - "color": color - } - last_clp = clp - latest_vol.append(vol_data) - self.latest_vol = latest_vol - return - - def get_latest_vol(self, num_record=500): - # Returns the latest closing values - if self.latest_vol: - if len(self.latest_vol) < num_record: - print('Warning: get_latest_vol() - Requested too more records then available') - num_record = len(self.latest_vol) - return self.latest_vol[-num_record:] - else: - raise ValueError('Warning: get_latest_vol(): Values are not set') - - def set_latest_high_values(self): - # Extracts a list of close values from all the loaded candlestick - # data and store it in a dictionary keyed to timestamp of measurement. - latest_high_values = [] - for data in self.candlesticks: - high_data = { - "time": int(data[0]) / 1000, - "high": data[2] - } - latest_high_values.append(high_data) - self.latest_high_values = latest_high_values - return - - def get_latest_high_values(self, num_record=500): - # Returns the latest closing values - if self.latest_high_values: - if len(self.latest_high_values) < num_record: - print('Warning: latest_high_values() - Requested too more records then available') - num_record = len(self.latest_high_values) - return self.latest_high_values[-num_record:] - else: - raise ValueError('Warning: latest_high_values(): Values are not set') - - def set_latest_low_values(self): - # Extracts a list of close values from all the loaded candlestick - # data and store it in a dictionary keyed to timestamp of measurement. - latest_low_values = [] - for data in self.candlesticks: - low_data = { - "time": int(data[0]) / 1000, - "low": data[3] - } - latest_low_values.append(low_data) - self.latest_low_values = latest_low_values - return - - def get_latest_low_values(self, num_record=500): - # Returns the latest closing values - if self.latest_low_values: - if len(self.latest_low_values) < num_record: - print('Warning: latest_low_values() - Requested too more records then available') - num_record = len(self.latest_low_values) - return self.latest_low_values[-num_record:] - else: - raise ValueError('Warning: latest_low_values(): Values are not set') - - def set_latest_close_values(self): - # Extracts a list of close values from all the loaded candlestick - # data and store it in a dictionary keyed to timestamp of measurement. - latest_close_values = [] - for data in self.candlesticks: - close_data = { - "time": int(data[0]) / 1000, - "close": data[4] - } - latest_close_values.append(close_data) - self.latest_close_values = latest_close_values - return - - def get_latest_close_values(self, num_record=500): - # Returns the latest closing values - if self.latest_close_values: - if len(self.latest_close_values) < num_record: - print('Warning: get_latest_close_values() - Requested too more records then available') - num_record = len(self.latest_close_values) - return self.latest_close_values[-num_record:] - else: - raise ValueError('Warning: get_latest_close_values(): Values are not set') - - def set_candle_history(self, symbol=None, interval=None, max_data_loaded=None): - if not max_data_loaded: - max_data_loaded = self.max_data_loaded - if not symbol: - symbol = self.chart_configuration['trading_pair'] - if not interval: - interval = self.chart_configuration['chart_interval'] - if self.candlesticks: - print('set_candle_history(): Reloading candle data') - else: - print('set_candle_history(): Loading candle data') - # Load candles from file - cdata = self.load_candle_history(symbol, interval) - # Trim the beginning of the returned list to size of max_data_loaded of less - if len(cdata) < max_data_loaded: - max_data_loaded = len(cdata) - self.candlesticks = cdata[-max_data_loaded:] - # Set an instance dictionary of timestamped high, low, closing values - self.set_latest_high_values() - self.set_latest_low_values() - self.set_latest_close_values() - # Extract the volume data from self.candlesticks and store it in self.latest_vol - self.set_latest_vol() - - # Set an instance reference of the last candle - self.last_candle = self.convert_candle(self.candlesticks[-1]) - print('set_candle_history(): Candle data Loaded') - return - - def convert_candle(self, candle): - candlestick = { - "time": int(candle[0]) / 1000, - "open": candle[1], - "high": candle[2], - "low": candle[3], - "close": candle[4] - } - return candlestick - - def get_candle_history(self, symbol, interval, num_records): - - if len(self.candlesticks) < num_records: - print('Warning: get_candle_history() Requested more records then available') - num_records = len(self.candlesticks) - - # Drop everything but the requested number of records - candlesticks = self.candlesticks[-num_records:] - - # Reformat relevant candlestick data into a list of python dictionary objects. - # Binance stores timestamps in milliseconds but lightweight charts doesn't, - # so it gets divided by 1000 - processed_candlesticks = [] - for data in candlesticks: - candlestick = { - "time": int(data[0]) / 1000, - "open": data[1], - "high": data[2], - "low": data[3], - "close": data[4] - } - processed_candlesticks.append(candlestick) - # Return a list of candlestick objects - return processed_candlesticks - - # list enabled indicators - def get_enabled_indicators(self): - """ Loop through all indicators and make a list of indicators marked visible """ - enabled_indicators = [] - i_list = self.get_indicator_list() - for indctr in i_list: - if i_list[indctr]['visible']: - enabled_indicators.append(indctr) - return enabled_indicators - - def set_indicator_defaults(self): - """Set the default settings for each indicator""" - - self.indicator_types = {'simple_indicators': ['RSI', 'SMA', 'EMA', 'LREG'], - 'other': ['Volume', 'BOLBands', 'MACD', 'ATR']} - self.indicator_list = { - 'SMA 21': {'type': 'SMA', 'period': 21, 'visible': True, 'color': f"#{random.randrange(0x1000000):06x}", - 'value': 0}, - 'EMA 50': {'type': 'EMA', 'period': 50, 'visible': True, 'color': f"#{random.randrange(0x1000000):06x}", - 'value': 0}, - 'EMA 100': {'type': 'EMA', 'period': 100, 'visible': True, 'color': f"#{random.randrange(0x1000000):06x}", - 'value': 0}, - 'SMA 200': {'type': 'SMA', 'period': 200, 'visible': True, 'color': f"#{random.randrange(0x1000000):06x}", - 'value': 0}, - 'RSI 14': {'type': 'RSI', 'period': 14, 'visible': True, 'color': f"#{random.randrange(0x1000000):06x}", - 'value': 0}, - 'RSI 8': {'type': 'RSI', 'period': 8, 'visible': True, 'color': f"#{random.randrange(0x1000000):06x}", - 'value': 0}, - 'Bolenger': {'color_1': '#5ad858', 'color_2': '#f0f664', 'color_3': '#5ad858', 'devdn': 2, 'devup': 2, - 'ma': 1, 'period': 20, 'type': 'BOLBands', 'value': 0, 'value1': '38691.58', - 'value2': '38552.36', - 'value3': '38413.14', 'visible': 'True'}, - 'vol': {'type': 'Volume', 'visible': True, 'value': 0} - } - - return - - def get_indicator_list(self): - # Returns a list of all the indicator object in this class instance - if not self.indicator_list: - raise ValueError('get_indicator_list(): No indicators in the list') - return self.indicator_list - - def set_exchange_data(self): - # Pull all balances from client while discarding assets with zero balance - account = self.client.futures_coin_account_balance() - self.exchange_data['balances'] = [asset for asset in account if float(asset['balance']) > 0] - - # Pull all available symbols from client - exchange_info = self.client.get_exchange_info() - self.exchange_data['symbols'] = exchange_info['symbols'] - - # Available intervals - self.exchange_data['intervals'] = ( - KLINE_INTERVAL_1MINUTE, KLINE_INTERVAL_3MINUTE, - KLINE_INTERVAL_5MINUTE, KLINE_INTERVAL_15MINUTE, - KLINE_INTERVAL_30MINUTE, KLINE_INTERVAL_1HOUR, - KLINE_INTERVAL_2HOUR, KLINE_INTERVAL_4HOUR, - KLINE_INTERVAL_6HOUR, KLINE_INTERVAL_8HOUR, - KLINE_INTERVAL_12HOUR, KLINE_INTERVAL_1DAY, - KLINE_INTERVAL_3DAY, KLINE_INTERVAL_1WEEK, - KLINE_INTERVAL_1MONTH - ) - def get_rendered_data(self): """ Data to be rendered in the HTML """ rd = {} - rd['title'] = self.application_title # Title of the page - rd['my_balances'] = self.exchange_data['balances'] # Balances on the exchange - rd['symbols'] = self.exchange_data['symbols'] # Symbols information from the exchange - rd['intervals'] = self.exchange_data['intervals'] # Time candle time intervals available to stream - rd['chart_interval'] = self.chart_configuration['chart_interval'] # The charts current interval setting - rd['indicator_types'] = self.indicator_types # All the types indicators Available - rd['indicator_list'] = self.get_indicator_list() # indicators available - rd['enabled_indicators'] = self.get_enabled_indicators() # list of indicators that are enabled - rd['ma_vals'] = self.bb_ma_val # A list of acceptable values to use with bolenger band creation + rd['title'] = self.config.application_title # Title of the page + rd['my_balances'] = self.exchange_info.balances # Balances on the exchange + rd['symbols'] = self.exchange_info.symbols # Symbols information from the exchange + rd['intervals'] = self.exchange_info.intervals # Time candle time intervals available to stream + rd['chart_interval'] = self.config.chart_interval # The charts current interval setting + rd['indicator_types'] = self.indicators.indicator_types # All the types indicators Available + rd['indicator_list'] = self.indicators.get_indicator_list() # indicators available + rd['enabled_indicators'] = self.indicators.get_enabled_indicators() # list of indicators that are enabled + rd['ma_vals'] = self.indicators.bb_ma_val # A list of acceptable values to use with bolenger band creation return rd - def get_indicator_data(self, symbol=None, interval=None, num_results=100): - # Loop through all the indicators. If enabled, run the appropriate - # update function. Return all the results as a dictionary object. - - if not interval: - interval = self.chart_configuration['chart_interval'] - if not symbol: - symbol = self.chart_configuration['trading_pair'] - - # Get a list of indicator objects and a list of enabled indicators names. - i_list = self.get_indicator_list() - enabled_i = self.get_enabled_indicators() - result = {} - # Loop through all indicator objects in i_list - for each_i in i_list: - # If the indicator's not enabled skip to next each_i - if each_i not in enabled_i: - continue - i_type = i_list[each_i]['type'] - # If it is a simple indicator. - if i_type in self.indicator_types['simple_indicators']: - result[each_i] = self.calculate_simple_indicator(i_type=i_type, - period=i_list[each_i]['period']) - if i_type in self.indicator_types['other']: - if i_type == 'BOLBands': - result[each_i] = self.calculate_bolbands(i_type=i_type, - period=i_list[each_i]['period'], - devup=i_list[each_i]['devup'], - devdn=i_list[each_i]['devdn'], - ma=i_list[each_i]['ma']) - if i_type == 'MACD': - result[each_i] = self.calculate_macd(i_type=i_type, - fast_p=i_list[each_i]['fast_p'], - slow_p=i_list[each_i]['slow_p'], - signal_p=i_list[each_i]['signal_p']) - if i_type == 'Volume': - result[each_i] = self.get_volume(i_type=i_type) - - if i_type == 'ATR': - result[each_i] = self.calculate_atr(i_type=i_type, - period=i_list[each_i]['period']) - - return result - - def get_volume(self, i_type, num_results=800): - r_data = self.get_latest_vol() - r_data = r_data[-num_results:] - return {"type": i_type, "data": r_data} - - def calculate_macd(self, i_type, fast_p=12, slow_p=26, signal_p=9, num_results=800): - # These indicators do computations over a period number of price data points. - # So we need at least that plus what ever amount of results needed. - # It seems it needs num_of_nans = (slow_p) - 2) + signal_p - - # TODO: slow_p or fast_p which ever is greater should be used in the calc below. - # TODO but i am investigating this. - if fast_p > slow_p: - raise ValueError('Error I think: TODO: calculate_macd()') - num_cv = (slow_p - 2) + signal_p + num_results - - closing_data = self.get_latest_close_values(num_cv) - if len(closing_data) < num_cv: - print(f'Couldn\'t calculate {i_type} for time period of {period}') - print('Not enough data availiable') - return - # Initialize two arrays to hold a list of closing values and - # a list of timestamps associated with these values - closes = [] - ts = [] - # Isolate all the closing values and timestamps from - # the dictionary object - for each in closing_data: - closes.append(each['close']) - ts.append(each['time']) - # Convert the list of closes to a numpy array - np_real_data = np.array(closes, dtype=float) - # Pass the closing values and the period parameter to talib - macd, signal, hist = talib.MACD(np_real_data, fast_p, slow_p, signal_p) - - # Combine the new data with the timestamps - # Warning: The first ( -1) of values are . - # But they should get trimmed off - macd = macd[-num_results:] - if len(macd) == 1: - print('looks like after slicing') - print(macd) - signal = signal[-num_results:] - hist = hist[-num_results:] - ts = ts[-num_results:] - r_macd = [] - r_signal = [] - r_hist = [] - for each in range(len(macd)): - # filter out nan values - if np.isnan(macd[each]): - continue - r_macd.append({'time': ts[each], 'value': macd[each]}) - r_signal.append({'time': ts[each], 'value': signal[each]}) - r_hist.append({'time': ts[each], 'value': hist[each]}) - r_data = [r_macd, r_signal, r_hist] - return {"type": i_type, "data": r_data} - - def calculate_atr(self, i_type, period, num_results=800): - # These indicators do computations over period number of price data points. - # So we need at least that plus what ever amount of results needed. - num_cv = period + num_results - - high_data = self.get_latest_high_values(num_cv) - low_data = self.get_latest_low_values(num_cv) - close_data = self.get_latest_close_values(num_cv) - if len(close_data) < num_cv: - print(f'Couldn\'t calculate {i_type} for time period of {period}') - print('Not enough data availiable') - return - # Initialize 4 arrays to hold a list of h/l/c values and - # a list of timestamps associated with these values - highs = [] - lows = [] - closes = [] - ts = [] - # Isolate all the values and timestamps from - # the dictionary objects - - for each in high_data: - highs.append(each['high']) - for each in low_data: - lows.append(each['low']) - for each in close_data: - closes.append(each['close']) - ts.append(each['time']) - # Convert the lists to a numpy array - np_highs = np.array(highs, dtype=float) - np_lows = np.array(lows, dtype=float) - np_closes = np.array(closes, dtype=float) - # Pass the closing values and the period parameter to talib - atr = talib.ATR(high=np_highs, - low=np_lows, - close=np_closes, - timeperiod=period) - # Combine the new data with the timestamps - # Warning: The first ( -1) of values are . - # But they should get trimmed off - atr = atr[-num_results:] - ts = ts[-num_results:] - r_data = [] - for each in range(len(atr)): - # filter out nan values - if np.isnan(atr[each]): - continue - r_data.append({'time': ts[each], 'value': atr[each]}) - return {"type": i_type, "data": r_data} - - def calculate_bolbands(self, i_type, period, devup=2, devdn=2, ma=0, num_results=800): - # These indicators do computations over period number of price data points. - # So we need at least that plus what ever amount of results needed. - # Acceptable values for ma in the talib.BBANDS - # {'SMA':0,'EMA':1, 'WMA' : 2, 'DEMA' : 3, 'TEMA' : 4, 'TRIMA' : 5, 'KAMA' : 6, 'MAMA' : 7, 'T3' : 8} - num_cv = period + num_results - closing_data = self.get_latest_close_values(num_cv) - if len(closing_data) < num_cv: - print(f'Couldn\'t calculate {i_type} for time period of {period}') - print('Not enough data availiable') - return - # Initialize two arrays to hold a list of closing values and - # a list of timestamps associated with these values - closes = [] - ts = [] - # Isolate all the closing values and timestamps from - # the dictionary object - for each in closing_data: - closes.append(each['close']) - ts.append(each['time']) - # Convert the list of closes to a numpy array - np_real_data = np.array(closes, dtype=float) - # Pass the closing values and the period parameter to talib - upper, middle, lower = talib.BBANDS(np_real_data, - timeperiod=period, - # number of non-biased standard deviations from the mean - nbdevup=devup, - nbdevdn=devdn, - # Moving average type: simple moving average here - matype=ma) - - # Combine the new data with the timestamps - # Warning: The first ( -1) of values are . - # But they should get trimmed off - i_values_u = upper[-num_results:] - i_values_m = middle[-num_results:] - i_values_l = lower[-num_results:] - ts = ts[-num_results:] - r_data_u = [] - r_data_m = [] - r_data_l = [] - for each in range(len(i_values_u)): - # filter out nan values - if np.isnan(i_values_u[each]): - continue - r_data_u.append({'time': ts[each], 'value': i_values_u[each]}) - r_data_m.append({'time': ts[each], 'value': i_values_m[each]}) - r_data_l.append({'time': ts[each], 'value': i_values_l[each]}) - r_data = [r_data_u, r_data_m, r_data_l] - return {"type": i_type, "data": r_data} - - def calculate_simple_indicator(self, i_type, period, num_results=800): - # Valid types of indicators for this function - if i_type not in self.indicator_types['simple_indicators']: - raise ValueError(f'calculate_simple_indicator(): Unknown type: {i_type}') - - # These indicators do computations over period number of price data points. - # So we need at least that plus what ever amount of results needed. - num_cv = period + num_results - closing_data = self.get_latest_close_values(num_cv) - if len(closing_data) < num_cv: - print(f'Couldn\'t calculate {i_type} for time period of {period}') - print('Not enough data availiable') - return - # Initialize two arrays to hold a list of closing values and - # a list of timestamps associated with these values - closes = [] - ts = [] - # Isolate all the closing values and timestamps from - # the dictionary object - for each in closing_data: - closes.append(each['close']) - ts.append(each['time']) - # Convert the list of closes to a numpy array - np_real_data = np.array(closes, dtype=float) - # Pass the closing values and the period parameter to talib - if i_type == 'SMA': - i_values = talib.SMA(np_real_data, period) - if i_type == 'RSI': - i_values = talib.RSI(np_real_data, period) - if i_type == 'EMA': - i_values = talib.EMA(np_real_data, period) - if i_type == 'LREG': - i_values = talib.LINEARREG(np_real_data, period) - - # Combine the new data with the timestamps - # Warning: The first of rsi values are . - # But they should get trimmed off todo get rid of try except *just debuging info - try: - i_values = i_values[-num_results:] - except: - raise ValueError(f'error: {i_type} {i_values}') - ts = ts[-num_results:] - r_data = [] - for each in range(len(i_values)): - r_data.append({'time': ts[each], 'value': i_values[each]}) - return {"type": i_type, "data": r_data} - - def create_indicator(self, name, type, properties): - # Indicator type checking before adding to a dictionary of properties - properties['type'] = type - # Force color and period properties for simple indicators - if type in self.indicator_types['simple_indicators']: - if 'color' not in properties: - properties['color'] = f"#{random.randrange(0x1000000):06x}" - if 'period' not in properties: - properties['period'] = 20 - if type in self.indicator_types['other']: - ul_col = f"#{random.randrange(0x1000000):06x}" - if type == 'BOLBands': - if 'period' not in properties: - properties['period'] = 50 - if 'color_1' not in properties: - properties['color_1'] = ul_col - if 'color_2' not in properties: - properties['color_2'] = f"#{random.randrange(0x1000000):06x}" - if 'color_3' not in properties: - properties['color_3'] = ul_col - if 'value1' not in properties: - properties['value1'] = 0 - if 'value2' not in properties: - properties['value2'] = 0 - if 'value3' not in properties: - properties['value3'] = 0 - if 'devup' not in properties: - properties['devup'] = 2 - if 'devdn' not in properties: - properties['devdn'] = 2 - if 'ma' not in properties: - properties['ma'] = 1 - if type == 'MACD': - if 'fast_p' not in properties: - properties['fast_p'] = 12 - if 'slow_p' not in properties: - properties['slow_p'] = 26 - if 'signal_p' not in properties: - properties['signal_p'] = 9 - if 'macd' not in properties: - properties['macd'] = 0 - if 'signal' not in properties: - properties['signal'] = 0 - if 'hist' not in properties: - properties['hist'] = 0 - if 'color_1' not in properties: - properties['color_1'] = f"#{random.randrange(0x1000000):06x}" - if 'color_2' not in properties: - properties['color_2'] = f"#{random.randrange(0x1000000):06x}" - if type == 'ATR': - if 'period' not in properties: - properties['period'] = 50 - if 'color' not in properties: - properties['color'] = f"#{random.randrange(0x1000000):06x}" - - # Force value and visibility for all indicators - if 'value' not in properties: - properties['value'] = 0 - if 'visible' not in properties: - properties['visible'] = True - # Add the dictionary of properties and values to an instance list - self.indicator_list[name] = properties - return - def received_cdata(self, cdata): # If this is the first candle received, # then just set last_candle and return. - if not self.last_candle: - self.last_candle = cdata + if not self.candles.last_candle: + self.candles.last_candle = cdata return # If this candle is the same as last candle return nothing to do. if cdata['time']: - if cdata['time'] == self.last_candle['time']: + if cdata['time'] == self.candles.last_candle['time']: return - # **** New candle is received *** - # Update the instance data records. - self.last_candle = cdata - self.latest_close_values.append({'time': cdata['time'], 'close': cdata['close']}) - self.latest_high_values.append({'time': cdata['time'], 'high': cdata['high']}) - self.latest_low_values.append({'time': cdata['time'], 'low': cdata['low']}) - self.latest_vol.append({'time': cdata['time'], 'value': cdata['vol']}) - # Update indicators - updates = self.update_indicators() + # New candle is received update the instance data records. And the indicators. + self.candles.set_new_candle(cdata) + updates = self.indicators.update_indicators() return updates - def update_indicators(self): - enabled_indcrs = self.get_enabled_indicators() - indcrs_list = self.get_indicator_list() - # Updated data is collected in this dictionary object - updates = {} - # Loop through all enabled indicators - for indcr in enabled_indcrs: - # Get the type of the indicator being updated - i_type = indcrs_list[indcr]['type'] - # Update the indicator with a function appropriate for its kind - # TODO - Check EMA results i see a bit of a sharp turn in the ema line on - # the interface side when reloading the page. It smooths out after a full reload. - if i_type in self.indicator_types['simple_indicators']: - updates[indcr] = self.calculate_simple_indicator(i_type=i_type, - period=indcrs_list[indcr]['period'], - num_results=1) - if i_type == 'BOLBands': - updates[indcr] = self.calculate_bolbands(i_type=i_type, - period=indcrs_list[indcr]['period'], - devup=indcrs_list[indcr]['devup'], - devdn=indcrs_list[indcr]['devdn'], - ma=indcrs_list[indcr]['ma'], - num_results=1) - if i_type == 'MACD': - updates[indcr] = self.calculate_macd(i_type=i_type, - fast_p=indcrs_list[indcr]['fast_p'], - slow_p=indcrs_list[indcr]['slow_p'], - signal_p=indcrs_list[indcr]['signal_p'], - num_results=1) - - if i_type == 'ATR': - updates[indcr] = self.calculate_atr(i_type=i_type, - period=indcrs_list[indcr]['period'], - num_results=1) - - if i_type == 'Volume': - updates[indcr] = self.get_volume(i_type=i_type, - num_results=1) - return updates def received_new_signal(self, data): # Check the data. if 'sigName' not in data: return 'data.py:received_new_signal() - The new signal has no name. ' - Signal - print(data) + app_data = BrighterData() diff --git a/exchange_info.py b/exchange_info.py new file mode 100644 index 0000000..57a9aa0 --- /dev/null +++ b/exchange_info.py @@ -0,0 +1,33 @@ +from binance.enums import * + + +class ExchangeInfo: + def __init__(self, client): + self.client = client + + self.intervals = None + self.symbols = None + self.balances = None + # Set the above values from information retrieved from exchange. + self.set_exchange_data() + + def set_exchange_data(self): + # Pull all balances from client while discarding assets with zero balance + account = self.client.futures_coin_account_balance() + self.balances = [asset for asset in account if float(asset['balance']) > 0] + + # Pull all available symbols from client + exchange_info = self.client.get_exchange_info() + self.symbols = exchange_info['symbols'] + + # Available intervals + self.intervals = ( + KLINE_INTERVAL_1MINUTE, KLINE_INTERVAL_3MINUTE, + KLINE_INTERVAL_5MINUTE, KLINE_INTERVAL_15MINUTE, + KLINE_INTERVAL_30MINUTE, KLINE_INTERVAL_1HOUR, + KLINE_INTERVAL_2HOUR, KLINE_INTERVAL_4HOUR, + KLINE_INTERVAL_6HOUR, KLINE_INTERVAL_8HOUR, + KLINE_INTERVAL_12HOUR, KLINE_INTERVAL_1DAY, + KLINE_INTERVAL_3DAY, KLINE_INTERVAL_1WEEK, + KLINE_INTERVAL_1MONTH + ) diff --git a/indicators.py b/indicators.py new file mode 100644 index 0000000..b817257 --- /dev/null +++ b/indicators.py @@ -0,0 +1,409 @@ +import random +import numpy as np +import talib + + +class Indicators: + def __init__(self, candles): + # Object containing Price and candle data. + self.candles = candles + # List of all available indicator types + self.indicator_types = {} + # List of all available indicators + self.indicator_list = None + # Add default indicators and their default values to self.indicator_list + self.set_indicator_defaults() + + # A list of values to use with bolenger bands + self.bb_ma_val = {'SMA': 0, 'EMA': 1, 'WMA': 2, 'DEMA': 3, 'TEMA': 4, 'TRIMA': 5, 'KAMA': 6, 'MAMA': 7, 'T3': 8} + + def set_indicator_defaults(self): + self.indicator_list = self.get_indicator_defaults() + # todo: get rid of this they are not needed after utilizing ingheritance in classes instead. + self.indicator_types = {'simple_indicators': ['RSI', 'SMA', 'EMA', 'LREG'], + 'other': ['Volume', 'BOLBands', 'MACD', 'ATR']} + + @staticmethod + def get_indicator_defaults(): + """Set the default settings for each indicator""" + + indicator_list = { + 'SMA 21': {'type': 'SMA', 'period': 21, 'visible': True, 'color': f"#{random.randrange(0x1000000):06x}", + 'value': 0}, + 'EMA 50': {'type': 'EMA', 'period': 50, 'visible': True, 'color': f"#{random.randrange(0x1000000):06x}", + 'value': 0}, + 'EMA 100': {'type': 'EMA', 'period': 100, 'visible': True, 'color': f"#{random.randrange(0x1000000):06x}", + 'value': 0}, + 'SMA 200': {'type': 'SMA', 'period': 200, 'visible': True, 'color': f"#{random.randrange(0x1000000):06x}", + 'value': 0}, + 'RSI 14': {'type': 'RSI', 'period': 14, 'visible': True, 'color': f"#{random.randrange(0x1000000):06x}", + 'value': 0}, + 'RSI 8': {'type': 'RSI', 'period': 8, 'visible': True, 'color': f"#{random.randrange(0x1000000):06x}", + 'value': 0}, + 'Bolenger': {'color_1': '#5ad858', 'color_2': '#f0f664', 'color_3': '#5ad858', 'devdn': 2, 'devup': 2, + 'ma': 1, 'period': 20, 'type': 'BOLBands', 'value': 0, 'value1': '38691.58', + 'value2': '38552.36', + 'value3': '38413.14', 'visible': 'True'}, + 'vol': {'type': 'Volume', 'visible': True, 'value': 0} + } + return indicator_list + + def get_indicator_list(self): + # Returns a list of all the indicator object in this class instance + if not self.indicator_list: + raise ValueError('get_indicator_list(): No indicators in the list') + return self.indicator_list + + def get_enabled_indicators(self): + """ Loop through all indicators and return a list of indicators marked visible """ + enabled_indicators = [] + i_list = self.get_indicator_list() + for indctr in i_list: + if i_list[indctr]['visible']: + enabled_indicators.append(indctr) + return enabled_indicators + + def get_indicator_data(self, symbol=None, interval=None, num_results=100): + # Loop through all the indicators. If enabled, run the appropriate + # update function. Return all the results as a dictionary object. + + # Get a list of indicator objects and a list of enabled indicators names. + i_list = self.get_indicator_list() + enabled_i = self.get_enabled_indicators() + result = {} + # Loop through all indicator objects in i_list + for each_i in i_list: + # If the indicator's not enabled skip to next each_i + if each_i not in enabled_i: + continue + i_type = i_list[each_i]['type'] + # If it is a simple indicator. + if i_type in self.indicator_types['simple_indicators']: + result[each_i] = self.calculate_simple_indicator(i_type=i_type, + period=i_list[each_i]['period']) + if i_type in self.indicator_types['other']: + if i_type == 'BOLBands': + result[each_i] = self.calculate_bolbands(i_type=i_type, + period=i_list[each_i]['period'], + devup=i_list[each_i]['devup'], + devdn=i_list[each_i]['devdn'], + ma=i_list[each_i]['ma']) + if i_type == 'MACD': + result[each_i] = self.calculate_macd(i_type=i_type, + fast_p=i_list[each_i]['fast_p'], + slow_p=i_list[each_i]['slow_p'], + signal_p=i_list[each_i]['signal_p']) + if i_type == 'Volume': + result[each_i] = self.candles.get_volume(i_type=i_type) + + if i_type == 'ATR': + result[each_i] = self.calculate_atr(i_type=i_type, + period=i_list[each_i]['period']) + + return result + + def calculate_macd(self, i_type, fast_p=12, slow_p=26, signal_p=9, num_results=800): + # These indicators do computations over a period number of price data points. + # So we need at least that plus what ever amount of results needed. + # It seems it needs num_of_nans = (slow_p) - 2) + signal_p + + # TODO: slow_p or fast_p which ever is greater should be used in the calc below. + # TODO but i am investigating this. + if fast_p > slow_p: + raise ValueError('Error I think: TODO: calculate_macd()') + num_cv = (slow_p - 2) + signal_p + num_results + + closing_data = self.candles.get_latest_close_values(num_cv) + if len(closing_data) < num_cv: + print(f'Couldn\'t calculate {i_type} for time period of {slow_p}') + print('Not enough data availiable') + return + # Initialize two arrays to hold a list of closing values and + # a list of timestamps associated with these values + closes = [] + ts = [] + # Isolate all the closing values and timestamps from + # the dictionary object + for each in closing_data: + closes.append(each['close']) + ts.append(each['time']) + # Convert the list of closes to a numpy array + np_real_data = np.array(closes, dtype=float) + # Pass the closing values and the period parameter to talib + macd, signal, hist = talib.MACD(np_real_data, fast_p, slow_p, signal_p) + + # Combine the new data with the timestamps + # Warning: The first ( -1) of values are . + # But they should get trimmed off + macd = macd[-num_results:] + if len(macd) == 1: + print('looks like after slicing') + print(macd) + signal = signal[-num_results:] + hist = hist[-num_results:] + ts = ts[-num_results:] + r_macd = [] + r_signal = [] + r_hist = [] + for each in range(len(macd)): + # filter out nan values + if np.isnan(macd[each]): + continue + r_macd.append({'time': ts[each], 'value': macd[each]}) + r_signal.append({'time': ts[each], 'value': signal[each]}) + r_hist.append({'time': ts[each], 'value': hist[each]}) + r_data = [r_macd, r_signal, r_hist] + return {"type": i_type, "data": r_data} + + def calculate_atr(self, i_type, period, num_results=800): + # These indicators do computations over period number of price data points. + # So we need at least that plus what ever amount of results needed. + num_cv = period + num_results + + high_data = self.candles.get_latest_high_values(num_cv) + low_data = self.candles.get_latest_low_values(num_cv) + close_data = self.candles.get_latest_close_values(num_cv) + if len(close_data) < num_cv: + print(f'Couldn\'t calculate {i_type} for time period of {period}') + print('Not enough data availiable') + return + # Initialize 4 arrays to hold a list of h/l/c values and + # a list of timestamps associated with these values + highs = [] + lows = [] + closes = [] + ts = [] + # Isolate all the values and timestamps from + # the dictionary objects + + for each in high_data: + highs.append(each['high']) + for each in low_data: + lows.append(each['low']) + for each in close_data: + closes.append(each['close']) + ts.append(each['time']) + # Convert the lists to a numpy array + np_highs = np.array(highs, dtype=float) + np_lows = np.array(lows, dtype=float) + np_closes = np.array(closes, dtype=float) + # Pass the closing values and the period parameter to talib + atr = talib.ATR(high=np_highs, + low=np_lows, + close=np_closes, + timeperiod=period) + # Combine the new data with the timestamps + # Warning: The first ( -1) of values are . + # But they should get trimmed off + atr = atr[-num_results:] + ts = ts[-num_results:] + r_data = [] + for each in range(len(atr)): + # filter out nan values + if np.isnan(atr[each]): + continue + r_data.append({'time': ts[each], 'value': atr[each]}) + return {"type": i_type, "data": r_data} + + def calculate_bolbands(self, i_type, period, devup=2, devdn=2, ma=0, num_results=800): + # These indicators do computations over period number of price data points. + # So we need at least that plus what ever amount of results needed. + # Acceptable values for ma in the talib.BBANDS + # {'SMA':0,'EMA':1, 'WMA' : 2, 'DEMA' : 3, 'TEMA' : 4, 'TRIMA' : 5, 'KAMA' : 6, 'MAMA' : 7, 'T3' : 8} + num_cv = period + num_results + closing_data = self.candles.get_latest_close_values(num_cv) + if len(closing_data) < num_cv: + print(f'Couldn\'t calculate {i_type} for time period of {period}') + print('Not enough data availiable') + return + # Initialize two arrays to hold a list of closing values and + # a list of timestamps associated with these values + closes = [] + ts = [] + # Isolate all the closing values and timestamps from + # the dictionary object + for each in closing_data: + closes.append(each['close']) + ts.append(each['time']) + # Convert the list of closes to a numpy array + np_real_data = np.array(closes, dtype=float) + # Pass the closing values and the period parameter to talib + upper, middle, lower = talib.BBANDS(np_real_data, + timeperiod=period, + # number of non-biased standard deviations from the mean + nbdevup=devup, + nbdevdn=devdn, + # Moving average type: simple moving average here + matype=ma) + + # Combine the new data with the timestamps + # Warning: The first ( -1) of values are . + # But they should get trimmed off + i_values_u = upper[-num_results:] + i_values_m = middle[-num_results:] + i_values_l = lower[-num_results:] + ts = ts[-num_results:] + r_data_u = [] + r_data_m = [] + r_data_l = [] + for each in range(len(i_values_u)): + # filter out nan values + if np.isnan(i_values_u[each]): + continue + r_data_u.append({'time': ts[each], 'value': i_values_u[each]}) + r_data_m.append({'time': ts[each], 'value': i_values_m[each]}) + r_data_l.append({'time': ts[each], 'value': i_values_l[each]}) + r_data = [r_data_u, r_data_m, r_data_l] + return {"type": i_type, "data": r_data} + + def calculate_simple_indicator(self, i_type, period, num_results=800): + # Valid types of indicators for this function + if i_type not in self.indicator_types['simple_indicators']: + raise ValueError(f'calculate_simple_indicator(): Unknown type: {i_type}') + + # These indicators do computations over period number of price data points. + # So we need at least that plus what ever amount of results needed. + num_cv = period + num_results + closing_data = self.candles.get_latest_close_values(num_cv) + if len(closing_data) < num_cv: + print(f'Could not calculate {i_type} for time period of {period}') + print('Not enough data available') + return + # Initialize two arrays to hold a list of closing values and + # a list of timestamps associated with these values + closes = [] + ts = [] + # Isolate all the closing values and timestamps from + # the dictionary object + for each in closing_data: + closes.append(each['close']) + ts.append(each['time']) + # Convert the list of closes to a numpy array + np_real_data = np.array(closes, dtype=float) + # Pass the closing values and the period parameter to talib + i_values = None + if i_type == 'SMA': + i_values = talib.SMA(np_real_data, period) + if i_type == 'RSI': + i_values = talib.RSI(np_real_data, period) + if i_type == 'EMA': + i_values = talib.EMA(np_real_data, period) + if i_type == 'LREG': + i_values = talib.LINEARREG(np_real_data, period) + + # Combine the new data with the timestamps + # Warning: The first of rsi values are . + # But they should get trimmed off todo get rid of try except *just debuging info + try: + i_values = i_values[-num_results:] + except Exception: + raise ValueError(f'error: {i_type} {i_values}') + ts = ts[-num_results:] + r_data = [] + for each in range(len(i_values)): + r_data.append({'time': ts[each], 'value': i_values[each]}) + return {"type": i_type, "data": r_data} + + def create_indicator(self, name, itype, properties): + # Indicator type checking before adding to a dictionary of properties + properties['type'] = itype + # Force color and period properties for simple indicators + if itype in self.indicator_types['simple_indicators']: + if 'color' not in properties: + properties['color'] = f"#{random.randrange(0x1000000):06x}" + if 'period' not in properties: + properties['period'] = 20 + if itype in self.indicator_types['other']: + ul_col = f"#{random.randrange(0x1000000):06x}" + if itype == 'BOLBands': + if 'period' not in properties: + properties['period'] = 50 + if 'color_1' not in properties: + properties['color_1'] = ul_col + if 'color_2' not in properties: + properties['color_2'] = f"#{random.randrange(0x1000000):06x}" + if 'color_3' not in properties: + properties['color_3'] = ul_col + if 'value1' not in properties: + properties['value1'] = 0 + if 'value2' not in properties: + properties['value2'] = 0 + if 'value3' not in properties: + properties['value3'] = 0 + if 'devup' not in properties: + properties['devup'] = 2 + if 'devdn' not in properties: + properties['devdn'] = 2 + if 'ma' not in properties: + properties['ma'] = 1 + if itype == 'MACD': + if 'fast_p' not in properties: + properties['fast_p'] = 12 + if 'slow_p' not in properties: + properties['slow_p'] = 26 + if 'signal_p' not in properties: + properties['signal_p'] = 9 + if 'macd' not in properties: + properties['macd'] = 0 + if 'signal' not in properties: + properties['signal'] = 0 + if 'hist' not in properties: + properties['hist'] = 0 + if 'color_1' not in properties: + properties['color_1'] = f"#{random.randrange(0x1000000):06x}" + if 'color_2' not in properties: + properties['color_2'] = f"#{random.randrange(0x1000000):06x}" + if itype == 'ATR': + if 'period' not in properties: + properties['period'] = 50 + if 'color' not in properties: + properties['color'] = f"#{random.randrange(0x1000000):06x}" + + # Force value and visibility for all indicators + if 'value' not in properties: + properties['value'] = 0 + if 'visible' not in properties: + properties['visible'] = True + # Add the dictionary of properties and values to an instance list + self.indicator_list[name] = properties + return + + def update_indicators(self): + enabled_indcrs = self.get_enabled_indicators() + indcrs_list = self.get_indicator_list() + # Updated data is collected in this dictionary object + updates = {} + # Loop through all enabled indicators + for indcr in enabled_indcrs: + # Get the type of the indicator being updated + i_type = indcrs_list[indcr]['type'] + # Update the indicator with a function appropriate for its kind + # TODO - Check EMA results i see a bit of a sharp turn in the ema line on + # the interface side when reloading the page. It smooths out after a full reload. + if i_type in self.indicator_types['simple_indicators']: + updates[indcr] = self.calculate_simple_indicator(i_type=i_type, + period=indcrs_list[indcr]['period'], + num_results=1) + if i_type == 'BOLBands': + updates[indcr] = self.calculate_bolbands(i_type=i_type, + period=indcrs_list[indcr]['period'], + devup=indcrs_list[indcr]['devup'], + devdn=indcrs_list[indcr]['devdn'], + ma=indcrs_list[indcr]['ma'], + num_results=1) + if i_type == 'MACD': + updates[indcr] = self.calculate_macd(i_type=i_type, + fast_p=indcrs_list[indcr]['fast_p'], + slow_p=indcrs_list[indcr]['slow_p'], + signal_p=indcrs_list[indcr]['signal_p'], + num_results=1) + + if i_type == 'ATR': + updates[indcr] = self.calculate_atr(i_type=i_type, + period=indcrs_list[indcr]['period'], + num_results=1) + + if i_type == 'Volume': + updates[indcr] = self.candles.get_volume(i_type=i_type, + num_results=1) + return updates