-
Notifications
You must be signed in to change notification settings - Fork 1
/
规则引擎
893 lines (893 loc) · 128 KB
/
规则引擎
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
<mxfile host="app.diagrams.net" modified="2022-08-16T08:11:27.084Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36" etag="737uQvqoy9-3xD6Y032M" version="20.2.4" type="github" pages="5">
<diagram id="hAEX_xZfxIwHazybUXum" name="第一个版本,弃用">
<mxGraphModel dx="1038" dy="556" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="k9HZjOQAV6t7Ozw14jkY-13" value="web页面录入规则" style="rounded=0;whiteSpace=wrap;html=1;align=left;verticalAlign=top;" parent="1" vertex="1">
<mxGeometry x="50" y="140" width="1210" height="100" as="geometry" />
</mxCell>
<mxCell id="k9HZjOQAV6t7Ozw14jkY-20" style="edgeStyle=elbowEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;elbow=vertical;html=1;" parent="1" source="k9HZjOQAV6t7Ozw14jkY-12" target="k9HZjOQAV6t7Ozw14jkY-10" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="220" y="390" />
<mxPoint x="720" y="560" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="k9HZjOQAV6t7Ozw14jkY-12" value="规则组成" style="rounded=0;whiteSpace=wrap;html=1;align=left;verticalAlign=top;" parent="1" vertex="1">
<mxGeometry x="50" y="260" width="1210" height="100" as="geometry" />
</mxCell>
<mxCell id="k9HZjOQAV6t7Ozw14jkY-18" style="edgeStyle=elbowEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;elbow=vertical;html=1;" parent="1" source="k9HZjOQAV6t7Ozw14jkY-1" target="k9HZjOQAV6t7Ozw14jkY-4" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="k9HZjOQAV6t7Ozw14jkY-19" style="edgeStyle=elbowEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;elbow=vertical;html=1;" parent="1" source="k9HZjOQAV6t7Ozw14jkY-1" target="k9HZjOQAV6t7Ozw14jkY-5" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="330" y="190" />
<mxPoint x="360" y="220" />
<mxPoint x="330" y="190" />
<mxPoint x="414" y="190" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="k9HZjOQAV6t7Ozw14jkY-1" value="触发器" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="160" y="160" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="k9HZjOQAV6t7Ozw14jkY-14" style="edgeStyle=elbowEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;elbow=vertical;" parent="1" source="k9HZjOQAV6t7Ozw14jkY-2" target="k9HZjOQAV6t7Ozw14jkY-7" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="510" y="270" />
<mxPoint x="630" y="220" />
<mxPoint x="730" y="250" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="k9HZjOQAV6t7Ozw14jkY-15" style="edgeStyle=elbowEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;elbow=vertical;html=1;" parent="1" source="k9HZjOQAV6t7Ozw14jkY-2" target="k9HZjOQAV6t7Ozw14jkY-8" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="730" y="190" />
<mxPoint x="770" y="190" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="k9HZjOQAV6t7Ozw14jkY-16" style="edgeStyle=elbowEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;elbow=vertical;html=1;" parent="1" source="k9HZjOQAV6t7Ozw14jkY-2" target="k9HZjOQAV6t7Ozw14jkY-9" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="830" y="190" />
<mxPoint x="730" y="260" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="k9HZjOQAV6t7Ozw14jkY-36" style="edgeStyle=elbowEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;elbow=vertical;html=1;" parent="1" source="k9HZjOQAV6t7Ozw14jkY-2" target="k9HZjOQAV6t7Ozw14jkY-32" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="890" y="190" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="k9HZjOQAV6t7Ozw14jkY-40" style="edgeStyle=elbowEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;elbow=vertical;html=1;" parent="1" source="k9HZjOQAV6t7Ozw14jkY-2" target="k9HZjOQAV6t7Ozw14jkY-39" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="660" y="190" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="k9HZjOQAV6t7Ozw14jkY-2" value="执行器" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="460" y="160" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="k9HZjOQAV6t7Ozw14jkY-4" value="对象<br>设备/分组/型号/品类/全部设备" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="160" y="280" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="k9HZjOQAV6t7Ozw14jkY-5" value="条件" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="300" y="280" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="k9HZjOQAV6t7Ozw14jkY-7" value="动作<br>动作类型/动作id" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="450" y="280" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="k9HZjOQAV6t7Ozw14jkY-8" value="云云对接实例表" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="750" y="280" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="k9HZjOQAV6t7Ozw14jkY-9" value="告警表" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="910" y="280" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="k9HZjOQAV6t7Ozw14jkY-21" style="edgeStyle=elbowEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;elbow=vertical;html=1;" parent="1" source="k9HZjOQAV6t7Ozw14jkY-10" target="k9HZjOQAV6t7Ozw14jkY-11" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="k9HZjOQAV6t7Ozw14jkY-37" value="规则" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="k9HZjOQAV6t7Ozw14jkY-21" vertex="1" connectable="0">
<mxGeometry x="-0.1733" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="k9HZjOQAV6t7Ozw14jkY-10" value="规则grl" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="160" y="420" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="k9HZjOQAV6t7Ozw14jkY-11" value="grule_engine" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="430" y="420" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="k9HZjOQAV6t7Ozw14jkY-33" style="edgeStyle=elbowEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;elbow=vertical;html=1;" parent="1" source="k9HZjOQAV6t7Ozw14jkY-22" target="k9HZjOQAV6t7Ozw14jkY-28" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="810" y="520" />
<mxPoint x="810" y="630" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="k9HZjOQAV6t7Ozw14jkY-22" value="云云对接处理" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="750" y="420" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="k9HZjOQAV6t7Ozw14jkY-34" style="edgeStyle=elbowEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;elbow=vertical;html=1;" parent="1" source="k9HZjOQAV6t7Ozw14jkY-23" target="k9HZjOQAV6t7Ozw14jkY-28" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="980" y="510" />
<mxPoint x="980" y="630" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="k9HZjOQAV6t7Ozw14jkY-23" value="告警" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="920" y="420" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="k9HZjOQAV6t7Ozw14jkY-35" style="edgeStyle=elbowEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;elbow=vertical;html=1;" parent="1" source="k9HZjOQAV6t7Ozw14jkY-24" target="k9HZjOQAV6t7Ozw14jkY-28" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1130" y="510" />
<mxPoint x="1130" y="620" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="k9HZjOQAV6t7Ozw14jkY-24" value="通知" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="1070" y="420" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="k9HZjOQAV6t7Ozw14jkY-31" value="fact" style="edgeStyle=elbowEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;elbow=vertical;html=1;" parent="1" source="k9HZjOQAV6t7Ozw14jkY-28" target="k9HZjOQAV6t7Ozw14jkY-11" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="490" y="510" />
<mxPoint x="930" y="640" />
<mxPoint x="930" y="640" />
<mxPoint x="720" y="660" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="k9HZjOQAV6t7Ozw14jkY-28" value="事件总线" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="370" y="540" width="860" height="60" as="geometry" />
</mxCell>
<mxCell id="k9HZjOQAV6t7Ozw14jkY-30" style="edgeStyle=elbowEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;elbow=vertical;html=1;" parent="1" source="k9HZjOQAV6t7Ozw14jkY-29" target="k9HZjOQAV6t7Ozw14jkY-28" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="k9HZjOQAV6t7Ozw14jkY-29" value="设备" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="160" y="540" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="k9HZjOQAV6t7Ozw14jkY-32" value="通知表" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="1070" y="280" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="k9HZjOQAV6t7Ozw14jkY-39" value="物模型能力" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="600" y="280" width="120" height="60" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
<diagram id="h9tGKrCl6xbK-CpYoAB1" name="落地">
<mxGraphModel dx="1038" dy="556" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-0" />
<mxCell id="8q7S4aCoOHqLmdoOrjCB-1" parent="8q7S4aCoOHqLmdoOrjCB-0" />
<mxCell id="8q7S4aCoOHqLmdoOrjCB-63" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="260" y="780" width="220" height="230" as="geometry" />
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-62" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="30" y="780" width="220" height="230" as="geometry" />
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-8" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;edgeStyle=orthogonalEdgeStyle;strokeColor=#3333FF;" parent="8q7S4aCoOHqLmdoOrjCB-1" source="8q7S4aCoOHqLmdoOrjCB-2" target="8q7S4aCoOHqLmdoOrjCB-18" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="280" y="380" as="targetPoint" />
<Array as="points">
<mxPoint x="200" y="260" />
<mxPoint x="200" y="260" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-12" value="设备触发" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="8q7S4aCoOHqLmdoOrjCB-8" vertex="1" connectable="0">
<mxGeometry x="-0.2258" y="2" relative="1" as="geometry">
<mxPoint x="4" y="-8" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-2" value="设备" style="rounded=0;whiteSpace=wrap;html=1;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="40" y="240" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-9" value="手动触发" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;edgeStyle=orthogonalEdgeStyle;strokeColor=#FFD966;" parent="8q7S4aCoOHqLmdoOrjCB-1" source="8q7S4aCoOHqLmdoOrjCB-4" target="8q7S4aCoOHqLmdoOrjCB-18" edge="1">
<mxGeometry x="-0.5652" y="-20" relative="1" as="geometry">
<mxPoint x="410.0000000000002" y="380" as="targetPoint" />
<Array as="points">
<mxPoint x="470" y="260" />
<mxPoint x="470" y="300" />
</Array>
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-4" value="openapi" style="rounded=0;whiteSpace=wrap;html=1;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="560" y="240" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-10" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;edgeStyle=orthogonalEdgeStyle;strokeColor=#FFD966;" parent="8q7S4aCoOHqLmdoOrjCB-1" source="8q7S4aCoOHqLmdoOrjCB-5" target="8q7S4aCoOHqLmdoOrjCB-18" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="410.0000000000002" y="380" as="targetPoint" />
<Array as="points">
<mxPoint x="470" y="330" />
<mxPoint x="470" y="300" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-13" value="定时触发" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="8q7S4aCoOHqLmdoOrjCB-10" vertex="1" connectable="0">
<mxGeometry x="-0.1613" y="1" relative="1" as="geometry">
<mxPoint x="27" y="9" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-5" value="定时器" style="rounded=0;whiteSpace=wrap;html=1;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="560" y="310" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-16" value="信号触发" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="400" y="310" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-20" value="fact" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;edgeStyle=orthogonalEdgeStyle;startArrow=none;startFill=0;" parent="8q7S4aCoOHqLmdoOrjCB-1" source="8q7S4aCoOHqLmdoOrjCB-18" target="8q7S4aCoOHqLmdoOrjCB-19" edge="1">
<mxGeometry y="-20" relative="1" as="geometry">
<Array as="points">
<mxPoint x="340" y="390" />
</Array>
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;strokeColor=#FF3333;" parent="8q7S4aCoOHqLmdoOrjCB-1" source="8q7S4aCoOHqLmdoOrjCB-18" target="8q7S4aCoOHqLmdoOrjCB-28" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="440" y="460" />
<mxPoint x="440" y="460" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-33" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;strokeColor=#FF3333;" parent="8q7S4aCoOHqLmdoOrjCB-1" source="8q7S4aCoOHqLmdoOrjCB-18" target="8q7S4aCoOHqLmdoOrjCB-26" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="250" y="450" />
<mxPoint x="250" y="450" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-34" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;strokeColor=#FF3333;" parent="8q7S4aCoOHqLmdoOrjCB-1" source="8q7S4aCoOHqLmdoOrjCB-18" target="8q7S4aCoOHqLmdoOrjCB-25" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="250" y="510" />
<mxPoint x="250" y="510" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-18" value="事件总线" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="280" y="240" width="120" height="300" as="geometry" />
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-31" value="规则输出" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;strokeColor=#FFD966;" parent="8q7S4aCoOHqLmdoOrjCB-1" source="8q7S4aCoOHqLmdoOrjCB-19" target="8q7S4aCoOHqLmdoOrjCB-18" edge="1">
<mxGeometry x="-0.6923" y="20" relative="1" as="geometry">
<Array as="points">
<mxPoint x="470" y="180" />
<mxPoint x="470" y="300" />
</Array>
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-19" value="规则引擎" style="rounded=0;whiteSpace=wrap;html=1;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="280" y="160" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-23" value="设备数据触发" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="180" y="210" width="80" height="30" as="geometry" />
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-25" value="云云对接转发" style="rounded=0;whiteSpace=wrap;html=1;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="40" y="490" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-26" value="告警" style="rounded=0;whiteSpace=wrap;html=1;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="40" y="430" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-28" value="物模型能力调用" style="rounded=0;whiteSpace=wrap;html=1;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="560" y="440" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-29" value="" style="endArrow=none;html=1;rounded=0;" parent="8q7S4aCoOHqLmdoOrjCB-1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="40" y="400" as="sourcePoint" />
<mxPoint x="680" y="400" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-39" value="" style="shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAABEsAAAH7CAIAAAC7SIb+AAAgAElEQVR4AezdeVwT1/o/8JOFJSEgIgqIgrQoVNRaF6wVb7F1bd2qqLUitVRjtbaCCqKCK62K2gui+FPcxYqIihVxqVvdrqVWpQqIC5sIRLYAIQkhyfxeOvc7NwWUVAMk+Jk/+po5c+bMc97n1ORhlrAoiiJYIAABCEAAAhCAAAQgAAEItAgBdovoBToBAQhAAAIQgAAEIAABCEDgmQAyHMwDCEAAAhCAAAQgAAEIQKDlCCDDaTljiZ5AAAIQgAAEIAABCEAAAshwMAcgAAEIQAACEIAABCAAgZYjgAyn5YwlegIBCEAAAhCAAAQgAAEIIMPBHIAABCAAAQhAAAIQgAAEWo4AMpyWM5boCQQgAAEIQAACEIAABCCADAdzAAIQgAAEIAABCEAAAhBoOQLIcFrOWKInEIAABCAAAQhAAAIQgAAyHMwBCEAAAhCAAAQgAAEIQKDlCCDDaTljiZ5AAAIQgAAEIAABCEAAAshwMAcgAAEIQAACEIAABCAAgZYjgAyn5YwlegIBCEAAAhCAAAQgAAEIcEGgKwGKoiorK2UyGSGEx+OZm5uzWCxdNY52IAABCEAAAhCAAAQgAAFtBJDhaKPUcJ2SkpK8vDylUslU5XK5HTp0aNOmDVOCFQhAAAIQgAAEIAABCECgsQVeeJfa/fv3a5372rVrFEXVKqQ3pVJpveVvSGFhYWF2drZmekMIUSqV2dnZhYWFbwgCugkBCEAAAhCAAAQgAAF9EKg/w8nIyAgLC6sV3+bNm2vddnXkyJHy8vK8vLxx48YRQi5cuLBv3z7No9Rq9WeffbZ9+/aNGzeuWLFCqVR6eXlt377d29u7qKhIs2bd9YKCAoVCQQiZM2eO+/OlT58+9Iq7u7tEImEOSUtLGzt2LLOpk5W8vLwXpXO12q+qqnry5AldaGtr2/P54ujoSJc8efKkqqqq1iHYhAAEIAABCEAAAhCAAAQaSaD+DCchIaFt27ZeXl4nTpxgTmxkZMSsE0IePXp08uRJCwuL27dv9+zZkxDSv3//lJSUbdu2MdWYjIiiKDabrbnJrDOVNVfkcvmmTZuMjY0JIZs2bUp+vrRt23bHjh30ukAgoOurVKouXbrs3r1b8/DXWVer1YSQ/Pz8w4cPa9OOSCSiq/H5fHt7+7y8vMePH1tbW1tZWdHlTAVtWkMdCEAAAhCAAAQgAAEIQOB1BOp5Dic3NzcpKenTTz+tqKjIzMxUKpW7du0yNjYuLi7et2/fgwcPVq5cSQjZuHGjRCLx9/fPzMw0Njb28/MjhKjV6j///NPPz++TTz4ZOnQoi8U6evQoHd+ZM2d27NixYcOGsrKy6dOnvzzo+Pj4jz/++CV17t27t2LFirfffruoqGju3LmLFy9OSEjIz89fsmRJWVlZz5495XL5gAEDRo0adf369bVr13I4nPHjx+/Zs2fnzp3t27e/cuXKpk2bampq7O3tly5dam1t7e/v//bbbycmJoaEhAwYMMDd3T0mJmbUqFEmJiYvCYMQwlxNqq6uTktLk8lkrVq1IoSoVCr6QKbCy9vBXghAAAIQgAAEIAABCEDg9QXqyXAiIyPVavWIESMEAsG1a9eEQmFKSkpYWNiFCxemTp06bdo0+qwRERGEkKqqKi8vr7i4OFNT05dHc/78eW9vbzMzs2XLlu3cuZPNrv/yEd3IqVOndu7c+ZIGuVzu48ePv/rqq6FDh6alpdE1IyMje/fuPWfOnOTk5Llz5/7rX/9SqVQrVqxYunRp//79t27dWlZWxuFwiouLg4ODt2/f7uzsHBMTs2bNmvXr13O53Nu3byckJDAd6dmz59WrVz/66KOXhEE/b0NXUKlUMplMIBC8/fbbIpGovLycLq/1fM7LW8NeCEAAAhCAAAQgAAEIQOB1BOrJcEJDQ318fI4fP56dnV1cXPzy1pOSkmpqaoKCgphqQqGwa9eu9ObPP/9Mv4QgIyOjrKzs4sWLCQkJ48eP37lzp1qtnj59er15TkVFBYfDoW9RY5qtu0JR1ODBgzXLb9686evrSwhxd3dv3749IeTx48dyubx///6EkPHjx0dHRxNCrl+/3r17d2dnZ0LIuHHjIiMjVSoVi8Xy8PBg0htCiKur67Vr1xrMcIyNjaurq5kw2rRpU1VVlZeXx5Q02BGmJlYgAAEIQAACEIAABCAAgdcUqCfDMTExYbFYo0aNunz5MvOStO3bt4tEoqioKM2nSsRicVxcXFRUVFhYWHR0tEqlmjBhgpOTExPTF198QQi5cuVKcnJyeHi4QCDo1q1bfHx8SEiIjY0NU63WytOnT5mHWGrt0tw0NzevlSCVl5dbWFjQdWxtbQkh5eXl9D1jhBBra2su91l/y8rKbt26NXLkSLomj8crKysjhDA16XIrKytt3oRmYWGh+daEp0+f1nrEiAlJM3isQwACEIAABCAAAQhAAAKNIVBPhkMIYbFYCQkJOTk59DUcR0dHoVB48+bN2bNnZ2Vl0XGo1erQ0FBvb+8uXbr069cvNjZWpVINGDCAx+PRFfLz848cOXL9+vUuXbps2LCBfjeAp6dnu3btFixYYG9v/80333Tq1KneXmlzZ1etRIIQIhAIJBIJnTvRmRhdQp+ipKSEbrZNmzb9+vXbsGFDrVPXarCmpobOiGpVq7Vpa2tbUlJCv5+AENKhQwcOh3Pv3j26GpvNpnOtWkdhEwIQgAAEIAABCEAAAhBoDIH6H4YxNjYeO3Zsr169rK2tCSEBAQH07VtKpfLRo0dVVVVqtXrFihWEkDFjxhBCfH19f/311/j4+Dlz5jBR8ng8e3v78vLy9u3b79mzJzAw8OHDh9OmTbt27ZpYLJ44cWK7du2Yypor9vb2mldFNHe9fN3Nze38+fP0VaOCggJCSMeOHVUq1c2bNwkhsbGxHA6HENKvX7+UlJTc3FxCSGpq6rp16+ptViQS2dvb17tLs9DY2NjJyYnJjh4+fJiRkUFXYLFYTk5OuEtNkwvrEIAABCAAAQhAAAIQaFSBeq7hSKVSOhOgT6xSqQoKCsrKyiQSSWxsrJ2dXWJiYm5urlgsXr9+PX0n2N69e+VyuaOj48qVK6dMmeLm5kYIad269ahRo06ePDl9+nSxWPzjjz8SQt55553p06cnJyf36tXrRR3j8Xh8Pr+iouKf3t/13XffBQcHJyUl0T+bw2KxjI2Ng4KCli5dKhAIJkyYwOPxWCxWmzZtli9fHhgYKJfL+Xx+YGBgvZGkpKR88MEH9e6qVWhpaenq6pqXl1dZWcn8io65uXmHDh34fH6tytiEAAQgAAEIQAACEIAABBpPgMV8I2fOsWnTJmtraxcXl23btimVytDQ0LCwsPfee69bt26urq5yuTw6OvrLL7+0tLT8/fffd+/eXVxcPGbMmC+++MLExOTcuXPx8fFFRUUHDhwwNjaWy+WTni8ymSwjI8PX13fdunUff/xxXFxcQkICc8a6K8ePH6+urvby8qq76+UlarWafjhHKBT6+Ph4eHjQHWSxWCqVqn///pcuXdJ8ncCLWlOpVDNnzty6datmsveiyky5UqmUy+WEEFNTU23ucGMOxAoEIAABCEAAAhCAAAQgoBOBejKcwsJCKysrsVicm5vbvXv3l/wgjEwmKyoq6tixI3OPVt2YVCqVZpLAZCB1a2qWqFSqJUuWrFy58h/d4hUeHl5cXLxq1aqcnJxp06bFx8dbW1t7e3uPe74kJibGxMTExsZqnuhF6wkJCZaWlp6eni+qgHIIQAACEIAABCAAAQhAQA8F6slw9CRKpVLJfr5oH09JSUlISEh2draxsfE333wzfPhwQkhKSsrq1aslEknr1q2XLFni6uqqTYMKheIfJVfatIk6EIAABCAAAQhAAAIQgEBjC+hvhtPYPUf7EIAABCAAAQhAAAIQgEDLE6j/XWotr5/oEQQgAAEIQAACEIAABCDwJgggw3kTRhl9hAAEIAABCEAAAhCAwJsigAznTRlp9BMCEIAABCAAAQhAAAJvggAynDdhlNFHCEAAAhCAAAQgAAEIvCkCyHDelJFGPyEAAQhAAAIQgAAEIPAmCCDDeRNGGX2EAAQgAAEIQAACEIDAmyLArdtRqVRWtxAlEIAABCAAAQhAAAIQgMCbKcDn8wyo47iGY0CDhVAhAAEIQAACEIAABCAAgQYEkOE0AITdEIAABCAAAQhAAAIQgIABCSDDMaDBQqgQgAAEIAABCEAAAhCAQAMCyHAaAMJuCEAAAhCAAAQgAAEIQMCABJDhGNBgIVQIQAACEIAABCAAAQhAoAEBZDgNAGE3BCAAAQhAAAIQgAAEIGBAAshwDGiwECoEIAABCEAAAhCAAAQg0IAAMpwGgLAbAhCAAAQgAAEIQAACEDAgAWQ4BjRYCBUCEIAABCAAAQhAAAIQaEAAGU4DQNgNAQhAAAIQgAAEIAABCBiQADIcAxoshAoBCEAAAhCAAAQgAAEINCCADKcBIOyGAAQgAAEIQAACEIAABAxIABmOAQ0WQoUABCAAAQhAAAIQgAAEGhBAhtMAEHZDAAIQgAAEIAABCEAAAgYkgAzHgAYLoUIAAhCAAAQgAAEIQAACDQggw2kACLshAAEIQAACEIAABCAAAQMS0FmGk5aWWqvbFy6cpyiqViG9KZFI6i1HIQQgAAEIQAACEIAABCAAgdcR0E2Gk5p6Nzg4uFYca9asZbFYmoUxMfvKysqys7P/9a+BhJCTJ09u2bJFs4JarR440CMiIvyHH36YN2+eUqn09PwwIiJ8+PDhhYWFdE2lUhkaGtqhg31JSYnmsViHAAQgAAEIQAACEIAABCCgmwzn559/trW1HTTIMz4+njE1NjZi1gkh9+7dO3r0qKWl5R9/JPfr148Q4unpeePGHz/9tIGpxmREFEWx2ey/b/43WRIKZ/B4PDZbN5Ezp8YKBCAAAQhAAAIQgAAEINACBFh1bySTSmX/qGOZmZmffvrJ+PHjExNPTJw4MTAwMDJyo4mJyZ49e6ZN+yo9PX3jxo2EEB8fn4KCgvbt29+/n2Fqaurg4EgIUavVcrmMzzcbN27cmDFjNM977NixR48ejhkztqSkxN3dndmVmnrXza2bg0PHW7dut2nThinHCgQgAAEIQAACEIAABCDQGAJ8Pk/LZtUUUT9/UIXL/tvNXHUPf1BUzTNid7D820WRutVeoYT7CsfUOmT16h/VavVnn40zN7e4ePHCvHnzbtz4c+vWrSdPnpw1a9aoUSPp+nv37iWEVFZWDhrkef78BR6vAaaTJ5OEwpkCgZm/v19CwjHmoo2bW7daAWATAhCAAAQgAAEIQAACEGhGgcFR982M2ddzqqb2afNnnjStUPbn/K509hKSlD+1b5sffy1QqKj8cgXfmJ0k7EwIEcbldLQ02jvFSedh6yDDiYzcNHLkp4cOxT18+PDp06cvD/HIkSMKheKbb75hqs2bN+/dd9+lN6Ojo6XSKkLI3bt3S0pKTp8+HRt7YMoU78jIjSqVys/Pn8lzmMOxAgEIQAACEIAABCAAAQg0rwCLRTZ7OXpuyiCEzPe0WX/h2SP0dwpk9q2M1RRFX85ZOaL9rEM560Z3JIQk3BFb8Tk8I/bu5JJp7jq+LUsHGY6pqSmLxZowYeLZs2erqp7lJ4SQiIiIgoKCtWvXFhQUMNylpaV79uyOjY0NDg4+fPiISqUaNMjT2dmZqTBjxgxCyLlzZy9fvrx79x4LC4tevXrt3bt33bp17du3Z6phBQIQgAAEIAABCEAAAhDQHwEWqeeetMMpZaPcLJlXj114UOnaztTN1vT0vYrQMwVnZnVpZcqZl/D4l7vi7//VztPZXFfd0UGG8zwU1oEDBzIzH4lEIkLIW285zZs37/r1/yxcuPDhwwd0rGq1OiBggVAo7NrVbeDAgTt27FCpVB999JGZmRld4fHjxzExMb/99pubm9uOHTstLCwIIcOGDbO1tZ0+/WtHR8f58xdopkO6IkA7EIAABCAAAQhAAAIQgMArCyjVFJPGMI2oKIrLZnE0nsZxtTFNLZRFXHq66/diW3OjRYl5FEUoQtwdzO4WyPQuwzExMZ48efLZs2dlsmdvKVi1KpTum1KpzMjIqKysNDMz8/f3Z7FYn38+mRDy/fdzx48fV1RU9OuvZxkFHo/n4NBRLC5zcOgYFRWVlZXp7z8vMDBg8ODBpaWlS5cus7W1ZSpjBQIQgAAEIAABCEAAAhDQB4HAX/LuFMi+O5IrqqxJSi//M0+aLpLPic/tZve3B+9tzY1UauqjzuZfubcxN+Gcvldx8WHlmlH2FEXqJkiv0y8dXMORSCRc7v/aUSqVeXl5JSUlEolkx44d9vYd4uPjMzMflZWVbd++nRBSVla2ZcsWqVT29tvOAQELZswQ9uzZkxBibW09adLnR48enTvXr6SkZNGiIEJIjx495s71u3z58vvvv08IKS0t7dOnN/0Str59+xBCrl//vV27dq9DgGMhAAEIQAACEIAABCAAgVcW+Glsx3tP5f8e23Fw1P1P3mnl6Wy+/kLhlgmOu5OLa7X5UWeLO/my/TdKxTLlY3FNfoVCLFNShLxjw/P7UGdf6f+XmdQ6vfabkZGRo0ePUSqVt27d5PP5FRUVS5eGuLv3W7s2rHv37l5eXuHh/549+1srK6tLl37bvHmzSCSaPHnysWPHTE1NExMTV6/+sbCw8MyZX01MTGpqavLz86Ojo2UyKSFEpVKmpaVFR0czD/NYWVllZmZpHxtqQgACEIAABCAAAQhAAAKNLUBRxIjz30dxmAsyaopo/jINRYhTG5PjqeI1o+wl1eormZKLDyuDh9qZGbOZQ3QSpw5+D+fJkyfW1talpaWZmZm9e/c2NTV9UWRVVVUikcjJyYn5Kc+6NVUqFYfDYcrVajXen8ZoYAUCEIAABCAAAQhAAAJNL9Dg7+G4/5R+cY5Lj7C0Ee9YfNaj9crT+THeb/0nW9KrA39XcvE0d+vQMwWLh9jdyZfeL6oe3MUiJOmJ34c2Fx9WKlRqh9YmOryAQwhhvz6Qvb29iYmJnZ3dgAEDXpLeEELMzMzeeuutl6Q3hBDN9OZZfGwdRPj6fUQLEIAABCAAAQhAAAIQgEC9AsVVSrmSShPJVRSVki9zsjKR11AcNpnQs/Xb1ibMIUWSmgW/5I3tbumfkDt/kA1dvmiwXcQl0V/5zx7m19WC/EFXkmgHAhCAAAQgAAEIQAACb6KA/9HHcwa2W3uu0N3BzIjDWneh0K6VkY25ESEkObcq5YnMwvTZLVpt+Nw7gW7/72pR/06CIS4WNWqKyyFtBdxtEx1P36vQIZwOnsPRYTRoCgIQgAAEIAABCEAAAhAwLIGQYe07W5sI+1tLqtXlcpV9q2e5Db3cLZANcbFoJ+DWqKhqFSUwYQcNtrUxN4q6UhRxSRTj/RYhZIiLxRCXZ78To6tFB8/h6CoUtAMBCEAAAhCAAAQgAAEI6KFAg8/hNBizVKE24bI5TXIDGa7hNDgcqAABCEAAAhCAAAQgAAEIvJYA37hJkpvnMTbdmV6LBAdDAAIQgAAEIAABCEAAAhDQQgAZjhZIqAIBCEAAAhCAAAQgAAEIGIgAMhwDGSiECQEIQAACEIAABCAAAQhoIYAMRwskVIEABCAAAQhAAAIQgAAEDEQAGY6BDBTChAAEIAABCEAAAhCAAAS0EECGowUSqkAAAhCAAAQgAAEIQAACBiKgg7dFi0SFBtJZhPmGCtjY2Nbbc0zdellQqD8CmLr6MxaI5B8JvGjq/qNGUBkCEIDAKwvoIMMhhDg5Ob1yBDgQAo0qkJWV9ZL2MXVfgoNdzSuAqdu8/jj7Kwu8fOq+crM4EAIQgID2ArhLTXsr1IQABCAAAQhAAAIQgAAE9F0AGY6+jxDigwAEIAABCEAAAhCAAAS0F0CGo70VakIAAhCAAAQgAAEIQAAC+i6ADEffRwjxQQACEIAABCAAAQhAAALaCyDD0d4KNSEAAQhAAAIQgAAEIAABfRdAhqPvI4T4IAABCEAAAhCAAAQgAAHtBZDhaG+FmhCAAAQgAAEIQAACEICAvgsgw9H3EUJ8EIAABCAAAQhAAAIQgID2As2W4WRlZUmlUs1AKYpSP180CwkhUqk0Ojq6VqHm5v379zU3CSHXrl2jKKpWIb1Z66T11kEhBCAAAQhAAAIQgAAEIGCgAs2W4fz+++/ff/99TU0NIWTBggXffffd4sWLAwIC5syZU4vywIEDx44dW/5/y40bNzQrZGRkhIWFaZYQQjZv3sxisTQLjxw5Ul5enpeXN27cOELIhQsX9u3bp1kB6/osQFGUQqF4UYQKheJFCe2LDnmd8uPHj/+jw5n6eXl5X3/9tYeHx4QJE/766y+6kcLCQqFQ6OHh8fnnn6enpxNC1Gp1eHj4kCFDPv744+DgYJlMRgip99h/FAYqN4uAXk1dLQV27do1ePBgT0/PNWvWqFSqF00/pVIZERHRp08fsVisZcuoZkAChjh1DYgXoUIAAo0t0GwZzueff967d2/68guLxfr+++9Xr169aNEiY2NjzT5nZWXFxcV5eHgsX7585MiRqamp3bt316yQkJDQtm1bLy+vEydOMOVGRkbMOiHk0aNHJ0+etLCwuH37ds+ePQkh/fv3T0lJ2bZtm2Y1rOutwIkTJ2JjY6urq+tGWF1dHRsbm5SUVHdXY5RQFBUZGal9y5r1ly9f3r9//4sXL86ePTsoKEipVBJCQkJCBg4cePHiRS8vr59//pkQcuzYsVu3bh06dOiXX355+vTp/v37CSH1Hqt9GKjZXAL6M3W1FEhOTj58+PDevXsTExMfPnx45MiRF02/hQsXmpqastnN9iGiZY9Q7dUEDG7qvlo3cRQEINBSBZrzw2nWrFlubm4qlSo7O9vGxoYQwuFwKIqSPl/oPxwuXLhww4YNjo6Oy5Yt++GHH9auXWtiYsIMRm5ublJSUuvWrSsqKjIzM5VKZXR09J49e4qLi/ft27d06VK65saNGyUSib+//7Zt2x4+fOjn5xcUFKRQKP78808/P78zZ84wDWJFPwWcnJwKCgoOHjxYK8mprq4+ePBgYWFhp06dmibygICA0tLSiRMnFhYW5uTkCIXC8ePHe3t7p6SkEEJqampCQkLGjBkzcuTI4OBguVzO1L93715GRsa0adO4XO6gQYOsrKxSUlLyni9TpkzhcrleXl6rVq0ihDg7Oy9ZssTS0tLMzOyDDz54/PhxaWlp3WObpr84y2sK6M/UjYmJmTdvHt2db7/99tChQ+np6RMmTFi/fv3XX389ceJE+vL4+fPnvby82rdvLxAIfHx8zp49+6LpJxQKZ86c+Zo+OFxvBfRn6uotEQKDAAT0WYDbLMGFh4cXFRWxWKy5c+du2LDho48+srCwIIS0bt164MCBkZGRnTp1mjRpUlxc3LJly9zc3CQSSUxMjJWVFX1XGxNzZGSkWq0eMWKEQCC4du2aUChMSUkJCwu7cOHC1KlTp02bRteMiIgghFRVVXl5ecXFxZmamjItYMUgBNzc3AghiYmJBw8enDRpEp3lMunNp59+Sldogr4EBwdfvXo1Li6OEDJlyhQvL6/PPvssNTV1/vz5x48f/+2330pKShISEiiK2rhx471795j6t2/ftre353L/+3+cg4NDbm5uZWWlo6Pjjz/+eP36dXt7+6CgICcnJ+YqZX5+/tmzZ7/88svc3Ny6x/bu3bsJ+otTvKaA/kzdyZMnnzp16vr163K5vKqqavz48Q8ePMjKypo/f/6CBQsuXrz4ww8/HD16NDc3193dne61g4NDTk7Oi6afi4vLa+LgcH0W0J+pq89KiA0CENBbgebJcPz8/Agh48ePFwgEgwYN2rVrV2pqKp/PJ4Tk5uYuXry4R48ehBB/f//bt28HBgZWVVXt3LmzqKho2bJlnTt3/uSTT/r06WNkZBQaGurj43P8+PHs7Ozi4uKXKyclJdXU1AQFBTHVhEJh165dmU2s6LNArY9bQgh99aYp0xtNH/oazpgxYwghbm5ubdu2/euvv6ytrbOysq5evdq3b196kjOPKMjlcs07MI2NjaVSKZfL/euvv6ZPn75kyZLY2NhFixbFxsbSZ/Hx8UlLS/Py8vr444+Tk5PrHqsZDNb1WUBPpi6HwwkODl62bJlKpVqzZg19d5lAIHj//fcJIR4eHgsWLBCLxZoT1cTERCaTaZYQQuipq8/giE1XAnoydXXVHbQDAQi8UQLNk+EwxDweb9iwYebm5pcuXQoKCiopKZkxY0a3bt0IIampqYsXL7azs8vJyenXr19ERASXy3V2dr5//35lZWVYWNjPP//M4/FYLNaoUaMuX77MvCRt+/btIpEoKipKJBIxJxKLxXFxcVFRUWFhYdHR0SqVasKECU5OTkwFrOi/gObHLSGksLCwudIbQkhpaalCoRg9ejTtJpfLy8rKBg8ePH/+/H379gUHBw8ePHjBggWMKo/Hq6qqYjYlEgmfzzc3N3dycurTpw8hZNKkSREREWKx2NLSkhCyd+/e0tLSDRs2rFu3bvjw4XWPZZrCiv4L6MnUdXV1NTMzY7PZzs7ONJpAIKBXuFyuqalpRUWF5kSVSCS85wumn/7PsUaKUE+mbiP1Ds1CAAItWKCZMxyxWJySkvLhhx8eOnTo6tWrhw4d8vX1pf+46ObmdvTo0czMzB07dixfvjw4ONjHx8fS0jIkJCQ8PFytVtPVWCxWQkJCTk4OfQ3H0dFRKBTevHlz9uzZWVlZ9Mip1erQ0FBvb+8uXbr069cvNjZWpVINGDCAx+O14KFtkV1jPm5ZLFYzpjeEkDZt2vD5/MTExFrOg58vlZWVixYtio+PHzlyJF3B0dFRJBLJ5XL6JsmsrCxvb28zM7Py8nK6Av06OC6Xe/XqVXt7+06dOllZWY0bN+7HH9Usb3QAACAASURBVH+cOXNm3WNrnRebei6gD1P3ypUrHA5HoVBcuXLFw8ODEFJRUUFRFIvFUigUcrm8VatWjo6O2dnZNGZmZqaTk1O9U1fPtRGeDgX0YerqsDtoCgIQeEMEmvNNA4SQjRs30jdzL1y4MCAgQKVSMd8ICSF0DpOWlrZq1aq7d+9u3bo1PDycHhh6F33LxNixY3v16mVtbU0ICQgIoL9BKpXKR48eVVVVqdXqFStWEELoG4p8fX1//fXX+Pj4uq+lfkOG3NC76ebmNvL5Qn/uNnF3uFyuSqWSyWQ2NjYdOnQ4deoUIaSsrGzJkiVSqTQ2Nnbr1q0URQkEgnbt2lEUxdS3tLTs0aPHvn37lErlqVOnFApFt27dOnfuLBAIjh07RlHUwYMHnZ2dBQLBrVu31q9fL5FIampqTp482blz53qPbeKO43SvL9C8U1cmk61fv37hwoWBgYFr166l30Iul8vPnTtHCDl79uxbb73VqlWroUOHHj9+vKCgoKKiYv/+/cOGDcP0e/2hN/QWmnfqGroe4ocABJpFoDkznMePH7u6utra2t69e3fBggWjR48WiUQbN27UvCOCENK1a9eQkJBu3brNnDmTfraBkZJKpRwOh9lUqVQFBQVpaWkSiSQ2NtbOzi4xMXHDhg1isXj16tWEkPLy8qioKLlc7ujouHLlytTUVOZYrBiQgJubW3M9QCUQCPr27Tty5Mi7d+/ST2aPHTvW19f3vffe4/P5w4cPT09PHzVq1OjRo6VSKf2kGVN/6dKlycnJnp6eu3fvDgsLo986EBoaeujQoUGDBp09e5Z+l9r06dPbtm07duzY4cOHl5SUzJ8/nxBS77EGNGQIlRZoxqm7detWDw8PZ2dnNzc3d3f3qKgoQoi9vf2dO3fGjRu3Y8eOxYsXE0J69uw5efJkHx+f0aNHv/vuu/QfhupOP7FY3P/5Qr/rpX///iUlJRjlFizQjFO3BauiaxCAQOMJsOr+VKJU+uwXBrVfRKLCV3igRaFQ+Pv7d+zY8c6dO6ampt98803fvn2lUml0dPTx48e9vb3pN6GlpaUFBgbSDyoQQuRyeXl5+ZYtW+jwNm3aZG1t7eLism3bNqVSGRoaGhYW9t5773Xr1s3V1VUul0dHR3/55ZeWlpa///777t27i4uLx4wZ88UXX5iYmJw7dy4+Pr6oqOjAgQOaj3Fr33HUNAiBrKwsGxvbekN9talbb1MohIDOBRp76mZkZCxcuDAhIUHnkaPBN1zgJVP3DZdB9yFg0AJ8viE93NFsGQ4hhKKoS5cuubi42Nr+7QuoXC6XSqVWVlb0PGAeuak7LQoLC62srMRicW5ubvfu3TV/KqdWZZlMVlRU1LFjRxaLVWsXNlu2wEs+a5HhtOyhN/TeNfbURYZj6DNEb+N/ydTV25gRGAQg0KCAYWU4zfmmARaL9eGHH9YFNX2+MOXMIzdMCbNCp0btni9MYb0rPB7PwcGh3l0ohAAEIAABCEAAAhCAAARajEBzPofTYhDREQhAAAIGJ+Di4oJb1Axu1BAwBCAAAQhoI4AMRxsl1IEABCAAAQhAAAIQgAAEDEMAGY5hjBOihAAEIAABCEAAAhCAAAS0EUCGo40S6kAAAhCAAAQgAAEIQAAChiGADMcwxglRQgACEIAABCAAAQhAAALaCCDD0UYJdSAAAQhAAAIQgAAEIAABwxBAhmMY44QoIQABCEAAAhCAAAQgAAFtBJDhaKOEOhCAAAQgAAEIQAACEICAYQjo5hc/s7KyDKO7iBICfxfA1P27B7YMRgBT12CGCoFCAAIQgECTC7Aoiqp1UqlUVqsEmxCAAAQgAAEIQAACEIDAGyvA5/MMqO+4S82ABguhQgACEIAABCAAAQhAAAINCCDDaQAIuyEAAQhAAAIQgAAEIAABAxJAhmNAg4VQIQABCEAAAhCAAAQgAIEGBJDhNACE3RCAAAQgAAEIQAACEICAAQkgwzGgwUKoEIAABCAAAQhAAAIQgEADAshwGgDCbghAAAIQgAAEIAABCEDAgASQ4RjQYCFUCEAAAhCAAAQgAAEIQKABAR384qdIVNjASbAbAs0qYGNjW+/5MXXrZUGh/ghg6urPWCCSfySAqfuPuFBZfwReNHX1J0JEoqWADjIcQoiTk5OW50M1CDSxwMt/+h1Tt4mHA6fTXgBTV3sr1NQrAUxdvRoOBKO9wMunrvbtoKY+COAuNX0YBcQAAQhAAAIQgAAEIAABCOhGABmObhzRCgQgAAEIQAACEIAABCCgDwLIcPRhFBADBCAAAQhAAAIQgAAEIKAbAWQ4unFEKxCAAAQgAAEIQAACEICAPgggw9GHUUAMEIAABCAAAQhAAAIQgIBuBHTzLjXdxIJWIAABCEAAAhCAAAQgoE8CcrlcJpOp1SojI2M+n8/l4suzPg3PC2LBIL0ABsUQgAAEIAABCEAAAm+wgEwmKygoqK6WMwYsFqt1a6t27dqxWCymECt6KIC71PRwUBBSSxOorq5uaV1CfyAAAQhAAAItWqCqqionJ1szvSGEUBRVWlry+PHjFt31ltC55sxw1Gq1SqVSP1+o50st0by8vP3792sWbtmy5cmTJ5olhJD79+/XKrl27RpFUbUK6U2pVFpvOQoh0EgCarVaKBQWFhY2UvtoFgIQgAAEIAAB3Qqo1eonT57QXyYFAnNn586uru907OhA36JWVSUpLS3R7RnRmm4FmvMutZkzZ7q6unI4nFpdun379u7duwkh1dXVzO/Lbt++3cPD49GjRwqFQrN+RkbGunXrtm/frlm4efPmDz74QLPkyJEjH3/8cWVl5fTp00+dOnXhwoW8vLypU6dq1sG63gpQFFVTU2NsbFxvhAqFwsjIqMmuF2/fvp3FYvn6+ubl5c2fP5+ZaefPn//ll1/oCFUq1eTJk7t3704IqaiosLOzi46OVqlUHA5HpVINHTqUOareHqGwxQjo1dRtMaroSBMI6NXUVSqVmzdv3rdv39mzZy0tLenu79q1a//+/Uqlcvjw4QEBAXW/SzSBEk7RggXKy8tVKiXdwfbt21dWVpSVlTk6dmrbtm1BQQEhpKSkxMqqTQsWMPSuNec1HIqibGxs2tVZ7OzsaFYOh1NSUqJUPpthZ86c6dChA5vNrvVFNiEhoW3btl5eXidOnGAGw8jIiFknhDx69OjkyZMWFha3b9/u2bMnIaR///4pKSnbtm3TrIZ1vRU4ceJEbGxsvfd6VVdXx8bGJiUlNVnwvr6+9J92TExMOBwO7/8WU1NTJgaKovh8fkhIyKJFi7KystasWRMSEnLv3r2AgIDly5cjvWGgWvyK/kzdtLS0Bw8etHhwdFBXAvozdQkhCxcuNDU1ZbP/940lOTn58OHDe/fuTUxMfPjw4ZEjR3TVcbQDAVpAJvvfLT85OTlPnz6lv46qVGq6glKprPU3d9DplUBzXsNRq9WWlpa//fabmZkZISQzM9Pa2loikdBJyLFjxwoKCv7444+tW7cOGjRIKpX++9//Tk9P37Jli0AgqK6unjNnjkKhSEpK+vTTTysqKjIzM5VK5a5du4yNjYuLi/ft2/fgwYOVK1cSQjZu3CiRSPz9/TMzM42Njf38/AgharX6zz//9PPz++STT4YOHapXo4Jgagk4OTmlpqYePHhw0qRJJiYmzN7q6uqDBw8WFhb27t2bKWzUldOnT6enp9NT6OnTpy4uLjNnzqTPeOvWLc1Tq9XqFStWsNns0tLSVatWEUKKi4vDwsLUavXYsWPpSa5ZH+stUkB/pi6bzV6+fHnr1q2nTp3ar1+/FqmNTulQQH+mLiFEKBS6uLjs2LGD6eD58+e9vLzat29PCPHx8dm/f/+ECROYvViBwOsLKJUqppHqajmHw+nUyUkulxcXFzHlKtX/6jCFWNETgWbOcIYMGTJixAgOh6NWq729vX/66SfG5dixY76+vsOGDZPJZPv37w8KCvLw8AgMDJw1a1anTp3oagEBAWq1esSIEQKB4Nq1a0KhMCUlJSws7MKFC1OnTp02bRpdLSIighBSVVXl5eUVFxen+bd25nRY0WcBNzc3QkhiYqJmksOkN59++ildoQm6MHjw4PPPF1dXV5VKlZaWFh4eTp+31hNiarV62bJlhJC0tLSQkBBCyL1790JCQmpdhGyCmHGKZhTQn6nr6uq6f//+69ev79q1KyIiYurUqUOGDElKStL8V5cQMnfu3M8++6wZxXBqPRHQn6lLCHFxcanFkpub6+7uThc6ODjk5OTUqoBNCLymQK27gQQCAYfDycx8pFb/9xoOIaRWndc8Iw7XrUBzZjgURRkbGy9btszU1JTP5xcXF4eHh+fn53fp0uWrr77y8PDo0KEDh8OZNGnS3Llz6b+C1+p8aGioj4/P8ePHs7Ozi4uLa+2ttZmUlFRTUxMUFMSUC4XCrl27MptY0WeBWh+3hBD66k1TpjeEEA6Hs3r16kuXLonF4q5du8bFxTFo9IUdZpNZeffdd9evX08I6d69O9IbhuXNWdGTqUuDv/98SU9PX7FihUQimTBhwujRo9+csUBP/5GAXk3dWpHL5XLmyUwTExOZTFarAjYh8JoCZmZmYnEZ04hUKs3Le6yZ3piYmOCHcRgfPVxp5gyHxWJZWVmxWCz6Flsej9eqVSsLCwsOh+Pr65udnU0IUSgUQUFBERERMpksIyNj69at5ubm1tbWQqHQxMSExWKNGjXq8uXLzEvStm/fLhKJoqKiRCIRIy4Wi+Pi4qKiosLCwuhnvidMmODk5MRUwIr+C2h+3BJCCgsLmzi9oYnYbPbNmzeFQuHChQvt7Ozy8vI6dOhA/1csFi9fvpyuRlHU7du3f/nlFzabTf+bSFHU4cOHx48fr//UiFC3Anoyden3nF65cmXPnj3Gxsb0mzB021O01sIE9Gfq1oLl8XhVVVV0oUQi4fF4tSpgEwKvKWBhYVFcbMq8KtrColW7du3u3UtnXtVrbd32NU+BwxtVoDkzHBaLlZ6eTghhs9kKhYKiKIVCYWFhkZ+fX1hYaGtrS/f87edL9+7d2Wz2kiVLfH19HRwcmBnGYrESEhJycnLoaziOjo5CofDmzZuzZ89m3sOmVqtDQ0O9vb27dOnSr1+/2NhYlUo1YMAA/JvYqHOrMRpnPm5ZLFazpDeEEKVSSafTVVVVfn5+06ZNW79+PfNfutdyuZzH4/Xs2dPV1fW7775bv359q1atvv3225EjRzYGC9rUf4Fmn7pKpfLUqVMxMTG2trazZs2iH1375ZdfcJea/k+e5o2w2aduvd13dHSk/wZKP8SLv1fWq4TC1xTo0KFDTk42/YKB0tKSsrJS5stnmzbWFhYWr9k+Dm9UgWbOcLKzszt06ODl5UUIuX79ekFBQWBg4NatW0tLS5kMh+4/nY2w2WwjIyPNZ82NjY3Hjh17+fJlufzZL84GBATQ9ZVK5aNHj6qqqng83ooVKwghY8aMIYT4+vrOmDGjtLQ0Nja2UWXReCMJ0B+3LBarue4wTE5OdnZ2fnnvsrOzO3bsSAgxNTWdP3/+ihUr2rVr17dv33ffffflB2JvCxZo3ql76tSp27dvr1mzhnmOkRAy+vnSgs3RNZ0INO/UrbcLQ4cODQ4OHj16tJmZ2f79+8eNG1dvNRRC4HUEjI2NnZzeevr0aUVFOfOzjcbGxm3btkN68zqwTXNss2U4+fn5NjY2LBZLrVb7+Piw2WwOh1NWVrZ06VJ7e3stOy+VSjVfga9SqQoKCsrKyiQSSWxsrJ2dXWJiYm5urlgsph+EKC8v37t3r1wud3R0XLly5ZQpU+h/uLU8HarpiUDzjtqxY8dmzJjBYrGYv+XQv92keXtufHw8/YI+pVJZWlr69OnTzMzMGTNmSCQSgUCgJ4wIo+kFmnHqjny+NH2XccaWIdCMU1csFo8YMYJ+Ayq9kpiY2LNnz8mTJ/v4+NTU1IwaNYr+C2bLoEYv9EqAy+W2b9/e1ta2urparVYbGRkxD4DpVZwIpq5A82Q4SqXyp59++uKLL0QikVqtDgkJ6dSpk5GRkVqtTk5OvnjxIv3ae6VSSX9rjImJefDgAYvFevz48ZYtW3g8nlqt7tOnT25u7tChQ5VK5Z07d3g8XmVl5fr16997773g4GBXV9eRI0dGR0d/+eWXlpaW169f3717d3Fx8ZgxY3bu3GliYnLu3LnIyMiioqIDBw5gvtadGSipV6CoqOjmzZtvv/32hg0b2Gx2eHi4mZlZeHh4q1atIiIi+Hz+wYMH6a8CZmZm3t7eRkZGvXr1Wrdunbm5eWxs7Jw5c2QyWVhYmKOjY73toxACEIAABDQFLC0t//Of/2iW0OtTni91y1ECAZ0LsNlsPNegc9XGbvBvf4emTyaV/rN3kohEhf/0FtgzZ84UFxd/8cUXFy9erKysHDVqFH1qpVLp7e3doUOH0NBQU1PTwsLCGzduvOTRhcLCQisrK7FYnJub2717d82712rByWSyoqKijh074mVWtWRa/GZWVpaNzX+f6arV2VeYumq1+vHjx8hPakliszEEdDt1GyNCtAmBegUwdetlQaH+C7xk6up/8E0QIZ9vSK/0aJ5rOMwvbHp6emoOCZfL1Xw8xtbW9iXpDSGEflan3fNFs5266zwez8HBoW45SiDwjwTYbDbSm38khsoQgAAEIAABCECgiQXYTXw+nA4CEIAABCAAAQhAAAIQgEDjCSDDaTxbtAwBCEAAAhCAAAQgAAEINLUAMpymFsf5IAABCEAAAhCAAAQgAIHGE0CG03i2aBkCEIAABCAAAQhAAAIQaGoBZDhNLY7zQQACEIAABCAAAQhAAAKNJ4AMp/Fs0TIEIAABCEAAAhCAAAQg0NQCyHCaWhzngwAEIAABCEAAAhCAAAQaTwAZTuPZomUIQAACEIAABCAAAQhAoKkFdPOLn1lZWU0dOM4HAV0IYOrqQhFtNIMApm4zoOOUuhDA1NWFItqAAAQaEGBRFFWrilQqq1WCTQhAAAIQgAAEIAABCEDgjRXg83kG1HfcpWZAg4VQIQABCEAAAhCAAAQgAIEGBJDhNACE3RCAAAQgAAEIQAACEICAAQkgwzGgwUKoEIAABCAAAQhAAAIQgEADAshwGgDCbghAAAIQgAAEIAABCEDAgASQ4RjQYCFUCEAAAhCAAAQgAAEIQKABAWQ4DQBhNwQgAAEIQAACEIAABCBgQALIcAxosBAqBCAAAQhAAAIQgAAEINCAADKcBoCwGwIQgAAEIAABCEAAAhAwIAFkOAY0WAgVAhCAAAQgAAEIQAACEGhAABlOA0DYDQEIQAACEIAABCAAAQgYkAAyHAMaLIQKAQhAAAIQgAAEIAABCDQggAynASDshgAEIAABCEAAAhCAAAQMSAAZjgENFkKFAAQgAAEIQAACEIAABBoQQIbTABB2QwACEIAABCAAAQhAAAIGJIAMx4AGC6FCAAIQgAAEIAABCEAAAg0IsCiKaqAKdkMAAhCAAAQgAAEIQAACEDAQAVzDMZCBQpgQgAAEIAABCEAAAhCAgBYCyHC0QEIVCEAAAhCAAAQgAAEIQMBABJDhGMhAIUwIQAACEIAABCAAAQhAQAsBZDhaIKEKBCAAAQhAAAIQgAAEIGAgAshwDGSgECYEIAABCEAAAhCAAAQgoIUAMhwtkFAFAhCAAAQgAAEIQAACEDAQAWQ4BjJQCBMCEIAABCAAAQhAAAIQ0EKAW7eOVCqrW4gSCEAAAhCAAAQgAAEIQODNFODzeQbUcVzDMaDBQqgQgAAEIAABCEAAAhCAQAMCyHAaAMJuCEAAAhCAAAQgAAEIQMCABJDhGNBgIVQIQAACEIAABCAAAQhAoAEBZDgNAGE3BCAAAQhAAAIQgAAEIGBAAshwDGiwECoEIAABCEAAAhCAAAQg0IAAMpwGgLAbAhCAAAQgAAEIQAACEDAgAWQ4BjRYCBUCEIAABCAAAQhAAAIQaEAAGU4DQNgNAQhAAAIQgAAEIAABCBiQADIcAxoshAoBCEAAAhCAAAQgAAEINCCADKcBIOyGAAQgAAEIQAACEIAABAxIABmOAQ0WQoUABCAAAQhAAAIQgAAEGhBAhtMAEHZDAAIQgAAEIAABCEAAAgYkgAzHgAYLoUIAAhCAAAQgAAEIQAACDQggw2kACLshAAEIQAACEIAABCAAAQMSQIZjQIOFUCEAAQhAAAIQgAAEIACBBgSQ4TQAhN0QgAAEIAABCEAAAhCAgAEJ6CzDSUtLrdXtCxfOUxRVq5DelEgk9ZajEAIQgAAEIAABCEAAAhCAwOsI6CbDSU29GxwcXCuONWvWslgszcKYmH1lZWXZ2dn/+tdAQsjJkye3bNmiWUGtVg8c6BEREf7DDz/MmzdPqVR6en4YERE+fPjwwsJCuubp06c//PBf77zjOm7cZw8ePNA8HOsQgAAEIAABCEAAAhCAwBsuoJsM5+eff7a1tR00yDM+Pp4BNTY2YtYJIffu3Tt69KilpeUffyT369ePEOLp6Xnjxh8//bSBqcZkRBRFsdnsv28+S5YKCgr8/f02bPgpNTWtX7/3lyxZzByLFQhAAAIQgAAEIAABCEAAAqy6N5JJpbJ/5JKZmfnpp5+MHz8+MfHExIkTAwMDIyM3mpiY7NmzZ9q0r9LT0zdu3EgI8fHxKSgoaN++/f37Gaampg4OjoQQtVotl8v4fLNx48aNGTNG87zHjh179OjhmDFjS0pK3N3d6V0FBQW3bt365JNPCCF379756quv/vjjhuZRWIcABCAAAQhAAAIQgAAEdCvA5/O0bFBNEfXzB1W47L/dzFX38AdF1TwjdgfLv10UqVvtFUq4r3BMrUNWr/5RrVZ/9tk4c3OLixcvzJs378aNP7du3Xry5MlZs2aNGjWSrr93715CSGVl5aBBnufPX+DxGmA6eTJJKJwpEJj5+/slJBxjs59dbrJ7vtANXrp06f33368VDDYhAAEIQAACEIAABCAAgSYWGBx138yYfT2namqfNn/mSdMKZX/O70pnLyFJ+VP7tvnx1wKFisovV/CN2UnCzoQQYVxOR0ujvVOcdB6qDjKcyMhNI0d+euhQ3MOHD58+ffryEI8cOaJQKL755hum2rx589599116Mzo6Wiqten595m5JScnp06djYw9MmeIdGblRpVL5+fnTeQ4h5OLFCzExMUeOHGXawQoEIAABCEAAAhCAAAQg0CwCLBbZ7OXouSmDEDLf02b9hWeP0N8pkNm3MlZTFH05Z+WI9rMO5awb3ZEQknBHbMXn8IzYu5NLprm30W3MOshwTE1NWSzWhAkTz549W1X1LD8hhERERBQUFKxdu7agoICJuLS0dM+e3bGxscHBwYcPH1GpVIMGeTo7OzMVZsyYQQg5d+7s5cuXd+/eY2Fh0atXr717965bt659+/ZMtaNHj4aH/3v//mcP/zCFWIEABCAAAQhAAAIQgAAEmkWAReq5J+1wStkoN0vm1WMXHlS6tjN1szU9fa8i9EzBmVldWply5iU8/uWu+Pt/tfN0NtdV5DrIcJ6Hwjpw4EBm5iORSEQIeestp3nz5l2//p+FCxc+fPjf152p1eqAgAVCobBrV7eBAwfu2LFDpVJ99NFHZmZmdGceP34cExPz22+/ubm57dix08LCghAybNgwW1vb6dO/dnR0nD9/gbOz8+nTp6OiNh86dKhdOxtdKaAdCEAAAhCAAAQgAAEIQODVBJRqikljmBZUFMVlszgaT+O42pimFsoiLj3d9XuxrbnRosQ8iiIUIe4OZncLZHqX4ZiYGE+ePPns2bMy2bO3FKxaFUr3TalUZmRkVFZWmpmZ+fv7s1iszz+fTAj5/vu548ePKyoq+vXXs4wCj8dzcOgoFpc5OHSMiorKysr0958XGBgwePDg0tLSpUuX2draisXi4OAlhw8fQXrDuGEFAhCAAAQgAAEIQAACzSgQ+EvenQLZd0dyRZU1Senlf+ZJ00XyOfG53ez+9uC9rbmRSk191Nn8K/c25iac0/cqLj6sXDPKnqJI3QTpdbqjg2s4EomEy/1fO0qlMi8vr6SkRCKR7Nixw96+Q3x8fGbmo7Kysu3btxNCysrKtmzZIpXK3n7bOSBgwYwZwp49exJCrK2tJ036/OjRo3Pn+pWUlCxaFEQI6dGjx9y5fpcvX6ZfKnDwYGxBQYGn54dMn2/c+NPKyorZxAoEIAABCEAAAhCAAAQg0JQCP43teO+p/N9jOw6Ouv/JO608nc3XXyjcMsFxd3JxrTA+6mxxJ1+2/0apWKZ8LK7Jr1CIZUqKkHdseH4ftqtV+ZU3/5eZvHITkZGRo0ePUSqVt27d5PP5FRUVS5eGuLv3W7s2rHv37l5eXuHh/549+1srK6tLl37bvHmzSCSaPHnysWPHTE1NExMTV6/+sbCw8MyZX01MTGpqavLz86Ojo2UyKSFEpVKmpaVFR0czD/NMmvT5pEmfv3KoOBACEIAABCAAAQhAAAIQ0LkARREjzn8fxWEuyKgpovnLNBQhTm1MjqeK14yyl1Srr2RKLj6sDB5qZ2bMZg7RSWA6+D2cJ0+eWFtbl5aWZmZm9u7d29TU9EWRVVVViUQiJycn5qc869ZUqVQcDocpV6vVzPvTmEKsQAACEIAABCAAAQhAAAJNJtDg7+G4/5R+cY5Lj7C0Ee9YfNaj9crT+THeb/0nW9KrA39XcvE0d+vQMwWLh9jdyZfeL6oe3MUiJOmJ34c2Fx9WKlRqh9YmOryAQwh59iMzr7nY29ubmJjY2dkNGDDgJekNIcTMzOytt956SXpDCNFMb57F9/xncF4zQhwOAQhAAAIQgAAEIAABCDSSQHGVUq6k0kRyFUWl5MucrEzkNRSHTSb0bP22tQlz0iJJzYJf8sZ2t/RPyJ0/6L/vDFs02C7ikuiv/GcP8+tq8AF86AAAIABJREFU0UGGo6tQ0A4EIAABCEAAAhCAAAQgYHAC/kcfzxnYbu25QncHMyMOa92FQrtWRjbmRoSQ5NyqlCcyC9Nnt2i14XPvBLr9v6tF/TsJhrhY1KgpLoe0FXC3TXQ8fa9Ch73WwXM4OowGTUEAAhCAAAQgAAEIQAAChiUQMqx9Z2sTYX9rSbW6XK6yb/Ust6GXuwWyIS4W7QTcGhVVraIEJuygwbY25kZRV4oiLolivN8ihAxxsRji8ux3YnS16OA5HF2FgnYgAAEIQAACEIAABCAAAT0UaPA5nAZjlirUJlw2p0luIMM1nAaHAxUgAAEIQAACEIAABCAAgdcS4Bs3SXLzPMamO9NrkeBgCEAAAhCAAAQgAAEIQAACWgggw9ECCVUgAAEIQAACEIAABCAAAQMRQIZjIAOFMCEAAQhAAAIQgAAEIAABLQSQ4WiBhCoQgAAEIAABCEAAAhCAgIEIIMMxkIFCmBCAAAQgAAEIQAACEICAFgI6eJeaSFSoxYlQBQLNJmBjY1vvuTF162VBof4IYOrqz1ggkn8k8KKp+48aQWUIQAACryyggwyHEOLk5PTKEeBACDSqQFZW1kvax9R9CQ52Na8Apm7z+uPsryzw8qn7ys3iQAhAAALaC+AuNe2tUBMCEIAABCAAAQhAAAIQ0HcBZDj6PkKIDwIQgAAEIAABCEAAAhDQXgAZjvZWqAkBCEAAAhCAAAQgAAEI6LsAMhx9HyHEBwEIQAACEIAABCAAAQhoL4AMR3sr1IQABCAAAQhAAAIQgAAE9F0AGY6+jxDigwAEIAABCEAAAhCAAAS0F0CGo70VakIAAhCAAAQgAAEIQAAC+i6ADEffRwjxQQACEIAABCAAAQhAAALaCzRbhpOVlSWVSjUDpShK/XzRLCSESKXS6OjoWoWam/fv39fcJIRcu3aNoqhahfRmrZPWWweFEIAABCAAAQhAAAIQgICBCjRbhvP7779///33NTU1hJAFCxZ89913ixcvDggImDNnTi3KAwcOHDt2bPn/LTdu3NCskJGRERYWpllCCNm8eTOLxdIsPHLkSHl5eV5e3rhx4wghFy5c2Ldvn2YFrOuzAEVRCoXiRREqFIoXJbQvOuR1yo8fP/6PDmfq5+Xlff311x4eHhMmTPjrr7/oRgoLC4VCoYeHx+eff56enk4IUavV4eHhQ4YM+fjjj4ODg2UyGSGk3mP/URio3CwCejV1tRTYtWvX4MGDPT0916xZo1KpXjT9lEplREREnz59xGKxli2jmgEJGOLUNSBehAoBCDS2QLNlOJ9//nnv3r3pyy8sFuv7779fvXr1okWLjI2NNfuclZUVFxfn4eGxfPnykSNHpqamdu/eXbNCQkJC27Ztvby8Tpw4wZQbGRkx64SQR48enTx50sLC4vbt2z179iSE9O/fPyUlZdu2bZrVsK63AidOnIiNja2urq4bYXV1dWxsbFJSUt1djVFCUVRkZKT2LWvWX758ef/+/S9evDh79uygoCClUkkICQkJGThw4MWLF728vH7++WdCyLFjx27dunXo0KFffvnl6dOn+/fvJ4TUe6z2YaBmcwnoz9TVUiA5Ofnw4cN79+5NTEx8+PDhkSNHXjT9Fi5caGpqymY324eIlj1CtVcTMLip+2rdxFEQgEBLFWjOD6dZs2a5ubmpVKrs7GwbGxtCCIfDoShK+nyh/3C4cOHCDRs2ODo6Llu27Icffli7dq2JiQkzGLm5uUlJSa1bt66oqMjMzFQqldHR0Xv27CkuLt63b9/SpUvpmhs3bpRIJP7+/tu2bXv48KGfn19QUJBCofjzzz/9/PzOnDnDNIgV/RRwcnIqKCg4ePBgrSSnurr64MGDhYWFnTp1aprIAwICSktLJ06cWFhYmJOTIxQKx48f7+3tnZKSQgipqakJCQkZM2bMyJEjg4OD5XI5U//evXsZGRnTpk3jcrmDBg2ysrJKSUnJe75MmTKFy+V6eXmtWrWKEOLs7LxkyRJLS0szM7MPPvjg8ePHpaWldY9tmv7iLK8poD9TNyYmZt68eXR3vv3220OHDqWnp0+YMGH9+vVff/31xIkT6cvj58+f9/Lyat++vUAg8PHxOXv27Iumn1AonDlz5mv64HC9FdCfqau3RAgMAhDQZwFuswQXHh5eVFTEYrHmzp27YcOGjz76yMLCghDSunXrgQMHRkZGdurUadKkSXFxccuWLXNzc5NIJDExMVZWVvRdbUzMkZGRarV6xIgRAoHg2rVrQqEwJSUlLCzswoULU6dOnTZtGl0zIiKCEFJVVeXl5RUXF2dqasq0gBWDEHBzcyOEJCYmHjx4cNKkSXSWy6Q3n376KV2hCfoSHBx89erVuLg4QsiUKVO8vLw+++yz1NTU+fPnHz9+/LfffispKUlISKAoauPGjffu3WPq3759297ensv97/9xDg4Oubm5lZWVjo6OP/744/Xr1+3t7YOCgpycnJirlPn5+WfPnv3yyy9zc3PrHtu7d+8m6C9O8ZoC+jN1J0+efOrUqevXr8vl8qqqqvHjxz948CArK2v+/PkLFiy4ePHiDz/8cPTo0dzcXHd3d7rXDg4OOTk5L5p+Li4ur4mDw/VZQH+mrj4rITYIQEBvBZonw/Hz8yOEjB8/XiAQDBo0aNeuXampqXw+nxCSm5u7ePHiHj16EEL8/f1v374dGBhYVVW1c+fOoqKiZcuWde7c+ZNPPunTp4+RkVFoaKiPj8/x48ezs7OLi4tfrpyUlFRTUxMUFMRUEwqFXbt2ZTaxos8CtT5uCSH01ZumTG80fehrOGPGjCGEuLm5tW3b9q+//rK2ts7Kyrp69Wrfvn3pSc48oiCXyzXvwDQ2NpZKpVwu96+//po+ffqSJUtiY2MXLVoUGxtLn8XHxyctLc3Ly+vjjz9OTk6ue6xmMFjXZwE9mbocDic4OHjZsmUqlWrNmjX03WUCgeD9998nhHh4eCxYsEAsFmtOVBMTE5lMpllCCKGnrj6DIzZdCejJ1NVVd9AOBCDwRgk0T4bDEPN4vGHDhpmbm1+6dCkoKKikpGTGjBndunUjhKSmpi5evNjOzi4nJ6dfv34RERFcLtfZ2fn+/fuVlZVhYWE///wzj8djsVijRo26fPky85K07du3i0SiqKgokUjEnEgsFsfFxUVFRYWFhUVHR6tUqgkTJjg5OTEVsKL/Apoft4SQwsLC5kpvCCGlpaUKhWL06NG0m1wuLysrGzx48Pz58/ft2xccHDx48OAFCxYwqjwer6qqitmUSCR8Pt/c3NzJyalPnz6EkEmTJkVERIjFYktLS0LI3r17S0tLN2zYsG7duuHDh9c9lmkKK/ovoCdT19XV1czMjM1mOzs702gCgYBe4XK5pqamFRUVmhNVIpHwni+Yfvo/xxopQj2Zuo3UOzQLAQi0YIFmznDEYnFKSsqHH3546NChq1evHjp0yNfXl/7jopub29GjRzMzM3fs2LF8+fLg4GAfHx9LS8uQkJDw8HC1Wk1XY7FYCQkJOTk59DUcR0dHoVB48+bN2bNnZ2Vl0SOnVqtDQ0O9vb27dOnSr1+/2NhYlUo1YMAAHo/Xgoe2RXaN+bhlsVjNmN4QQtq0acPn8xMTE2s5D36+VFZWLlq0KD4+fuTIkXQFR0dHkUgkl8vpmySzsrK8vb3NzMzKy8vpCvTr4Lhc7tWrV+3t7Tt16mRlZTVu3Lgff/xx5syZdY+tdV5s6rmAPkzdK1eucDgchUJx5coVDw8PQkhFRQVFUSwWS6FQyOXyVq1aOTo6Zmdn05iZmZlOTk71Tl0910Z4OhTQh6mrw+6gKQhA4A0RaM43DRBCNm7cSN/MvXDhwoCAAJVKxXwjJITQOUxaWtqqVavu3r27devW8PBwemDoXfQtE2PHju3Vq5e1tTUhJCAggP4GqVQqHz16VFVVpVarV6xYQQihbyjy9fX99ddf4+Pj676W+g0ZckPvppub28jnC/2528Td4XK5KpVKJpPZ2Nh06NDh1KlThJCysrIlS5ZIpdLY2NitW7dSFCUQCNq1a0dRFFPf0tKyR48e+/btUyqVp06dUigU3bp169y5s0AgOHbsGEVRBw8edHZ2FggEt27dWr9+vUQiqampOXnyZOfOnes9tok7jtO9vkDzTl2ZTLZ+/fqFCxcGBgauXbuWfgu5XC4/d+4cIeTs2bNvvfVWq1athg4devz48YKCgoqKiv379w8bNgzT7/WH3tBbaN6pa+h6iB8CEGgWgebMcB4/fuzq6mpra3v37t0FCxaMHj1aJBJt3LhR844IQkjXrl1DQkK6des2c+ZM+tkGRkoqlXI4HGZTpVIVFBSkpaVJJJLY2Fg7O7vExMQNGzaIxeLVq1cTQsrLy6OiouRyuaOj48qVK1NTU5ljsWJAAm5ubs31AJVAIOjbt+/IkSPv3r1LP5k9duxYX1/f9957j8/nDx8+PD09fdSoUaNHj5ZKpfSTZkz9pUuXJicne3p67t69OywsjH7rQGho6KFDhwYNGnT27Fn6XWrTp09v27bt2LFjhw8fXlJSMn/+fEJIvcca0JAhVFqgGafu1q1bPTw8nJ2d3dzc3N3do6KiCCH29vZ37twZN27cjh07Fi9eTAjp2bPn5MmTfXx8Ro8e/e6779J/GKo7/cRicf/nC/2ul/79+5eUlGCUW7BAM07dFqyKrkEAAo0nwKr7U4lS6bNfGNR+EYkKX+GBFoVC4e/v37Fjxzt37piamn7zzTd9+/aVSqXR0dHHjx/39vam34SWlpYWGBhIP6hACJHL5eXl5Vu2bKHD27Rpk7W1tYuLy7Zt25RKZWhoaFhY2HvvvdetWzdXV1e5XB4dHf3ll19aWlr+/vvvu3fvLi4uHjNmzBdffGFiYnLu3Ln4+PiioqIDBw5oPsatfcdR0yAEsrKybGxs6w311aZuvU2hEAI6F2jsqZuRkbFw4cKEhASdR44G33CBl0zdN1wG3YeAQQvw+Yb0cEezZTiEEIqiLl265OLiYmv7ty+gcrlcKpVaWVnR84B55KbutCgsLLSyshKLxbm5ud27d9f8qZxalWUyWVFRUceOHVksVq1d2GzZAi/5rEWG07KH3tB719hTFxmOoc8QvY3/JVNXb2NGYBCAQIMChpXhNOebBlgs1ocfflgX1PT5wpQzj9wwJcwKnRq1e74whfWu8Hg8BweHenehEAIQgAAEIAABCEAAAhBoMQLN+RxOi0FERyAAAQgYnICLiwtuUTO4UUPAEIAABCCgjQAyHG2UUAcCEIAABCAAAQhAAAIQMAwBZDiGMU6IEgIQgAAEIAABCEAAAhDQRgAZjjZKqAMBCEAAAhCAAAQgAAEIGIYAMhzDGCdECQEIQAACEIAABCAAAQhoI4AMRxsl1IEABCAAAQhAAAIQgAAEDEMAGY5hjBOihAAEIAABCEAAAhCAAAS0EUCGo40S6kAAAhCAAAQgAAEIQAAChiGgm1/8zMrKMozuIkoI/F0AU/fvHtgyGAFMXYMZKgQKAQhAAAJNLsCiKKrWSaVSWa0SbEIAAhCAAAQgAAEIQAACb6wAn88zoL7jLjUDGiyECgEIQAACEIAABCAAAQg0IIAMpwEg7IYABCAAAQhAAAIQgAAEDEgAGY4BDRZChQAEIAABCEAAAhCAAAQaEECG0wAQdkMAAhCAAAQgAAEIQAACBiSADMeABguhQgACEIAABCAAAQhAAAINCCDDaQAIuyEAAQhAAAIQgAAEIAABAxJAhmNAg4VQIQABCEAAAhCAAAQgAIEGBHTwi58iUWEDJ8FuCDSrgI2Nbb3nx9StlwWF+iPw/9u7E7Aoq/2B42dg2BERVFBUxDD3otLMtH+a5pLmitt1zRRbrNy3cI3KhcrlphluuSTumuZSmpZaZlq5KyqbJCDbCAMzwCz/R9/ue+cCCdnIzKvfee5zO3Pe8573dz7nIPPjXYalaz9zQSR/S4Cl+7e4aGw/An+1dO0nQiIpo4AVMhwhRFBQUBmPRzMEylng7l/9ztIt5+ngcGUXYOmW3YqWdiXA0rWr6SCYsgvcfemWvR9a2oMAV6nZwywQAwIIIIAAAggggAACCFhHgAzHOo70ggACCCCAAAIIIIAAAvYgQIZjD7NADAgggAACCCCAAAIIIGAdATIc6zjSCwIIIIAAAggggAACCNiDABmOPcwCMSCAAAIIIIAAAggggIB1BMhwrONILwgggAACCCCAAAIIIGAPAmQ49jALxIAAAggggAACCCCAAALWESDDsY4jvSBwFwHjndddGpRxU35+fhlb0gwBuxJg6drVdBAMAggg8MAL2EWG06tXL5PJVKK12Ww+ePCgvGnlypV6vV5+KxViYmKK1Pz4449ms7lIpfQ2Ly+vxHoqEbgHgeLLTKrRarWbN2+WOzx27Ng777xTZJEX31duX2LBZDKFhYWlpKQU37pv377ilUVqjh49evPmzRMnTty4cUMIkZKSYvmTVaQxbx94gfnz5xcWFpY4zF9++eX333+XNyUmJu7evVt+K4Sw4tK17JYyAggggAAC1hJQW6ujv9XPqlWr4uPjVSqVtFdGRsbs2bPlHgoLC6dOnerh4SGEOH/+/P79+1u2bPn555+//fbbe/fu7devn9xSCHH58uX58+cvX77csvLTTz999tlnLWu2bdvWtm3bnJyc4cOH79u379ChQ0lJSYMGDbJsQ9luBcxmc2FhobOzc4kRFhQUODk5ycupxDbWqlywYIEQYt++fR07dvTy8iooKEhJSbl48aKnp2fNmjVNJlPPnj1DQkKMRuPp06d79+79+++/f/XVV87OzkFBQZ999tmZM2fq168/evTo3Nzct99+e/LkyXXr1h01alSNGjXU6j9/GM+fPz9y5MhnnnlGCGE0Gvv379+kSRMhRHZ2drVq1aKiooxGo6Ojo9FobN++vbTO161b17FjRyFEr169GjRoIA/24sWLW7duvXr16uHDh48dO9aoUaOrV6/WqlXrscceS0hIuHTp0vXr14UQNWrUaNeunbwXBSsK2M/SFUJkZmbGxMRIS+vnn392cLj9F65ffvlFpVI1bdpUHnW1atXGjRv3+eefV6xY8datWxMnThw/fry81bpLV+6Wgr0J2NXStTcc4rFnAZauPc9OecZmmwznlVde0Wq1n3zyiTRUlUrl6OgolV988UXpF7D09vDhwz179jx16lR6eroQQq1Wyy2lBjt27KhSpUpoaOgrr7zSuXNnqdLJyUkqSP9/7dq1vXv39ujR48iRIyEhIUKIFi1ahIeH63S6sLAwy5aU7VPg66+/zszM7Nu3r4uLS5EI8/PzN27c6OvrK89+kQbWfTt69GghxP79+6WC1Pnw4cMjIyO9vb3lY0mfHYUQISEhKSkp+/fv/+STT65du3b8+PG33npLCOHh4TFr1qxvvvmmbt26rq6unp6e8qJ1cXFxdXWVujKbze7u7tOmTTMYDP369duyZYsQol+/fqtXr5bazJ07V8qyZs2a1bJlSyFERESEHEavXr2EEMHBwevXrw8MDKxbt26NGjWMRmONGjW+/PLLxx577NKlS0OGDLFMiuR9KVhFwH6WrhCisLDwvffei46OrlChgoODg/Rv6YoVK1555RVpsDNmzJB+xNRq9fTp0/38/M6ePavX67+58zIYDP37969bt65Vlq5VeOnk/gnYz9K9cOGCk5NT3bp1799g6flBErCfpfsgqSpxLLbJcCSpjIwM6S/iZ8+enTZtmhBi165df/zxh+yYlZV19OjRN998c8aMGYmJiRMnTkxOTn733XdVKpWLi0tERERiYuKePXs6d+6cnZ0dGxtrMBhWrVrl7Oycnp6+du3aK1euSKeGFi1apNVqx4wZExsb6+zsLH02NZlMp06dGj169EsvvdS+fXv5oBTsUCAoKOj8+fMbN24skuRI6U1KSspTTz1lq7APHTqUmJhYsWJFOYDt27dfunTp4sWLERERTZs2vXbtWk5Ozscff3zjxo06deosXbq0bdu2a9euHTVq1LBhw6RrfoYNG+bu7i71sGzZMrkrIYTJZJo1a5aDg0NmZuZ7770n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;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="30" y="1040" width="1300.59" height="600" as="geometry" />
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-40" value="<div style="text-align: left"><b>触发类型</b></div><br>设备触发<br>手动触发<br>定时触发<br>规则触发" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="40" y="640" width="80" height="110" as="geometry" />
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-41" value="<b>设备选择<br></b><br>设备<br>型号<br>分组<br>全部设备" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="160" y="640" width="80" height="110" as="geometry" />
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-42" value="<b>设备触发类型<br></b><br>属性<br>事件<br>生命周期" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="280" y="640" width="80" height="110" as="geometry" />
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-43" value="<b>设备触发条件</b>" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="400" y="640" width="80" height="110" as="geometry" />
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-44" value="设备触发" style="rounded=0;whiteSpace=wrap;html=1;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="40" y="800" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-45" value="分组" style="rounded=0;whiteSpace=wrap;html=1;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="40" y="850" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-46" value="a4001abc" style="rounded=0;whiteSpace=wrap;html=1;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="140" y="850" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-47" value="生命周期" style="rounded=0;whiteSpace=wrap;html=1;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="40" y="900" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-48" value="下线" style="rounded=0;whiteSpace=wrap;html=1;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="140" y="950" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-49" value="设备触发条件" style="rounded=0;whiteSpace=wrap;html=1;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="40" y="950" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-50" value="设备触发" style="rounded=0;whiteSpace=wrap;html=1;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="280" y="800" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-51" value="型号" style="rounded=0;whiteSpace=wrap;html=1;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="280" y="850" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-52" value="云眼v4" style="rounded=0;whiteSpace=wrap;html=1;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="380" y="850" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-53" value="属性" style="rounded=0;whiteSpace=wrap;html=1;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="280" y="900" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-54" value="<span style="color: rgba(0 , 0 , 0 , 0.85) ; font-family: , &#34;blinkmacsystemfont&#34; , &#34;segoe ui&#34; , &#34;roboto&#34; , &#34;helvetica neue&#34; , &#34;arial&#34; , &#34;noto sans&#34; , sans-serif , &#34;apple color emoji&#34; , &#34;segoe ui emoji&#34; , &#34;segoe ui symbol&#34; , &#34;noto color emoji&#34; ; font-size: 14px ; text-align: left ; background-color: rgb(250 , 250 , 250)">CPU使用率大于50</span>" style="rounded=0;whiteSpace=wrap;html=1;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="380" y="950" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="8q7S4aCoOHqLmdoOrjCB-55" value="设备触发条件" style="rounded=0;whiteSpace=wrap;html=1;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="280" y="950" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="dIC1tpKF5Psw2czEKJlD-20" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;edgeStyle=orthogonalEdgeStyle;strokeColor=#3333FF;" parent="8q7S4aCoOHqLmdoOrjCB-1" source="dIC1tpKF5Psw2czEKJlD-22" target="dIC1tpKF5Psw2czEKJlD-33" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="1165" y="380" as="targetPoint" />
<Array as="points">
<mxPoint x="1085" y="260" />
<mxPoint x="1085" y="260" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="dIC1tpKF5Psw2czEKJlD-21" value="设备触发" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="dIC1tpKF5Psw2czEKJlD-20" vertex="1" connectable="0">
<mxGeometry x="-0.2258" y="2" relative="1" as="geometry">
<mxPoint x="4" y="-8" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="dIC1tpKF5Psw2czEKJlD-22" value="设备" style="rounded=0;whiteSpace=wrap;html=1;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="925" y="240" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="dIC1tpKF5Psw2czEKJlD-23" value="手动触发" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;edgeStyle=orthogonalEdgeStyle;strokeColor=#FFD966;" parent="8q7S4aCoOHqLmdoOrjCB-1" source="dIC1tpKF5Psw2czEKJlD-24" target="dIC1tpKF5Psw2czEKJlD-33" edge="1">
<mxGeometry x="-0.5652" y="-20" relative="1" as="geometry">
<mxPoint x="1295.0000000000002" y="380" as="targetPoint" />
<Array as="points">
<mxPoint x="1355" y="260" />
<mxPoint x="1355" y="300" />
</Array>
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="dIC1tpKF5Psw2czEKJlD-24" value="openapi" style="rounded=0;whiteSpace=wrap;html=1;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="1445" y="240" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="dIC1tpKF5Psw2czEKJlD-25" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;edgeStyle=orthogonalEdgeStyle;strokeColor=#FFD966;" parent="8q7S4aCoOHqLmdoOrjCB-1" source="dIC1tpKF5Psw2czEKJlD-27" target="dIC1tpKF5Psw2czEKJlD-33" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="1295.0000000000002" y="380" as="targetPoint" />
<Array as="points">
<mxPoint x="1355" y="330" />
<mxPoint x="1355" y="300" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="dIC1tpKF5Psw2czEKJlD-26" value="定时触发" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="dIC1tpKF5Psw2czEKJlD-25" vertex="1" connectable="0">
<mxGeometry x="-0.1613" y="1" relative="1" as="geometry">
<mxPoint x="27" y="9" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="dIC1tpKF5Psw2czEKJlD-27" value="定时器" style="rounded=0;whiteSpace=wrap;html=1;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="1445" y="310" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="dIC1tpKF5Psw2czEKJlD-28" value="信号触发" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="1285" y="310" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="dIC1tpKF5Psw2czEKJlD-29" value="输入数据" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;edgeStyle=orthogonalEdgeStyle;startArrow=none;startFill=0;" parent="8q7S4aCoOHqLmdoOrjCB-1" source="dIC1tpKF5Psw2czEKJlD-33" target="dIC1tpKF5Psw2czEKJlD-35" edge="1">
<mxGeometry x="0.05" y="-32" relative="1" as="geometry">
<Array as="points">
<mxPoint x="1225" y="390" />
</Array>
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="dIC1tpKF5Psw2czEKJlD-30" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;strokeColor=#FF3333;" parent="8q7S4aCoOHqLmdoOrjCB-1" source="dIC1tpKF5Psw2czEKJlD-33" target="dIC1tpKF5Psw2czEKJlD-39" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1372" y="450" />
<mxPoint x="1372" y="450" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="dIC1tpKF5Psw2czEKJlD-31" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;strokeColor=#FF3333;" parent="8q7S4aCoOHqLmdoOrjCB-1" source="dIC1tpKF5Psw2czEKJlD-33" target="dIC1tpKF5Psw2czEKJlD-38" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1135" y="450" />
<mxPoint x="1135" y="450" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="dIC1tpKF5Psw2czEKJlD-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;strokeColor=#FF3333;" parent="8q7S4aCoOHqLmdoOrjCB-1" source="dIC1tpKF5Psw2czEKJlD-33" target="dIC1tpKF5Psw2czEKJlD-37" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1135" y="510" />
<mxPoint x="1135" y="510" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="dIC1tpKF5Psw2czEKJlD-33" value="事件总线" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="1165" y="240" width="120" height="300" as="geometry" />
</mxCell>
<mxCell id="dIC1tpKF5Psw2czEKJlD-35" value="规则引擎" style="rounded=0;whiteSpace=wrap;html=1;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="1165" y="160" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="dIC1tpKF5Psw2czEKJlD-36" value="设备数据触发" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="1065" y="210" width="80" height="30" as="geometry" />
</mxCell>
<mxCell id="dIC1tpKF5Psw2czEKJlD-37" value="云云对接" style="rounded=0;whiteSpace=wrap;html=1;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="925" y="490" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="dIC1tpKF5Psw2czEKJlD-38" value="设备告警" style="rounded=0;whiteSpace=wrap;html=1;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="925" y="430" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="dIC1tpKF5Psw2czEKJlD-39" value="场景联动" style="rounded=0;whiteSpace=wrap;html=1;" parent="8q7S4aCoOHqLmdoOrjCB-1" vertex="1">
<mxGeometry x="1445" y="426" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="dIC1tpKF5Psw2czEKJlD-40" value="" style="endArrow=none;html=1;rounded=0;" parent="8q7S4aCoOHqLmdoOrjCB-1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="925" y="400" as="sourcePoint" />
<mxPoint x="1565" y="400" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="TddYF9FmUNx6kWuGMb0N-0" value="数据流转" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="8q7S4aCoOHqLmdoOrjCB-1">
<mxGeometry x="1445" y="486" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="TddYF9FmUNx6kWuGMb0N-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;strokeColor=#FF3333;" edge="1" parent="8q7S4aCoOHqLmdoOrjCB-1" source="dIC1tpKF5Psw2czEKJlD-33" target="TddYF9FmUNx6kWuGMb0N-0">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1394" y="509" />
<mxPoint x="1394" y="509" />
</Array>
<mxPoint x="1295" y="470" as="sourcePoint" />
<mxPoint x="1455" y="470" as="targetPoint" />
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
<diagram id="V7kW69x-GWiUvxmMWpdC" name="ratelimit">
<mxGraphModel dx="1038" dy="547" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="lr7SU02qSMKUi0O75KEI-0" />
<mxCell id="lr7SU02qSMKUi0O75KEI-1" parent="lr7SU02qSMKUi0O75KEI-0" />
<mxCell id="lr7SU02qSMKUi0O75KEI-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#33FF33;strokeWidth=2;" parent="lr7SU02qSMKUi0O75KEI-1" source="lr7SU02qSMKUi0O75KEI-5" target="lr7SU02qSMKUi0O75KEI-9" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="340" y="210" />
<mxPoint x="340" y="210" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lr7SU02qSMKUi0O75KEI-5" value="请求方" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;" parent="lr7SU02qSMKUi0O75KEI-1" vertex="1">
<mxGeometry x="280" y="40" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="lr7SU02qSMKUi0O75KEI-11" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;edgeStyle=orthogonalEdgeStyle;strokeColor=#33FF33;strokeWidth=2;" parent="lr7SU02qSMKUi0O75KEI-1" source="lr7SU02qSMKUi0O75KEI-6" target="lr7SU02qSMKUi0O75KEI-9" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="540" y="200" />
<mxPoint x="540" y="200" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lr7SU02qSMKUi0O75KEI-6" value="请求方" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;" parent="lr7SU02qSMKUi0O75KEI-1" vertex="1">
<mxGeometry x="480" y="40" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="lr7SU02qSMKUi0O75KEI-7" value="平台" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;dashed=1;verticalAlign=bottom;" parent="lr7SU02qSMKUi0O75KEI-1" vertex="1">
<mxGeometry x="280" y="130" width="320" height="270" as="geometry" />
</mxCell>
<mxCell id="lr7SU02qSMKUi0O75KEI-8" value="业务" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;" parent="lr7SU02qSMKUi0O75KEI-1" vertex="1">
<mxGeometry x="300" y="260" width="280" height="110" as="geometry" />
</mxCell>
<mxCell id="lr7SU02qSMKUi0O75KEI-12" value="未限流流量" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#33FF33;strokeWidth=2;" parent="lr7SU02qSMKUi0O75KEI-1" source="lr7SU02qSMKUi0O75KEI-9" target="lr7SU02qSMKUi0O75KEI-8" edge="1">
<mxGeometry x="0.2" y="40" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="lr7SU02qSMKUi0O75KEI-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeColor=#FF0000;strokeWidth=2;" parent="lr7SU02qSMKUi0O75KEI-1" source="lr7SU02qSMKUi0O75KEI-9" target="lr7SU02qSMKUi0O75KEI-6" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lr7SU02qSMKUi0O75KEI-14" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#FF0000;strokeWidth=2;" parent="lr7SU02qSMKUi0O75KEI-1" source="lr7SU02qSMKUi0O75KEI-9" target="lr7SU02qSMKUi0O75KEI-5" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="440" y="70" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lr7SU02qSMKUi0O75KEI-15" value="已拒绝的流量" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="lr7SU02qSMKUi0O75KEI-14" vertex="1" connectable="0">
<mxGeometry x="0.4622" y="-1" relative="1" as="geometry">
<mxPoint x="-1" y="-20" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="lr7SU02qSMKUi0O75KEI-9" value="限流中间件" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;" parent="lr7SU02qSMKUi0O75KEI-1" vertex="1">
<mxGeometry x="300" y="180" width="280" height="30" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
<diagram id="5j8YbaSmBmhfWvFIvH7M" name="云云对接">
<mxGraphModel dx="1483" dy="781" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="j9wHTkat09YekCUc9zt6-0" />
<mxCell id="j9wHTkat09YekCUc9zt6-1" parent="j9wHTkat09YekCUc9zt6-0" />
<mxCell id="nQPG1eYeCsPRD5kNECrD-18" value="Devops服务" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;dashed=1;strokeColor=#00CC66;verticalAlign=bottom;align=left;" parent="j9wHTkat09YekCUc9zt6-1" vertex="1">
<mxGeometry x="60" y="320" width="440" height="140" as="geometry" />
</mxCell>
<mxCell id="nQPG1eYeCsPRD5kNECrD-0" value="IOT" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;dashed=1;strokeColor=#FF00FF;verticalAlign=bottom;align=left;" parent="j9wHTkat09YekCUc9zt6-1" vertex="1">
<mxGeometry x="20" y="230" width="520" height="250" as="geometry" />
</mxCell>
<mxCell id="nQPG1eYeCsPRD5kNECrD-1" value="<span>设备</span>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;" parent="j9wHTkat09YekCUc9zt6-1" vertex="1">
<mxGeometry x="380" y="545" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="nQPG1eYeCsPRD5kNECrD-7" value="设备" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;" parent="j9wHTkat09YekCUc9zt6-1" vertex="1">
<mxGeometry x="60" y="545" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="nQPG1eYeCsPRD5kNECrD-12" value="阿里IOT" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;" parent="j9wHTkat09YekCUc9zt6-1" vertex="1">
<mxGeometry x="60" y="170" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="nQPG1eYeCsPRD5kNECrD-13" value="<span>第三方IOT</span>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;" parent="j9wHTkat09YekCUc9zt6-1" vertex="1">
<mxGeometry x="380" y="170" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="nQPG1eYeCsPRD5kNECrD-14" value="第三方IOT" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;" parent="j9wHTkat09YekCUc9zt6-1" vertex="1">
<mxGeometry x="220" y="170" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="nQPG1eYeCsPRD5kNECrD-28" style="edgeStyle=elbowEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;elbow=vertical;html=1;endArrow=none;endFill=0;strokeColor=#CC00CC;" parent="j9wHTkat09YekCUc9zt6-1" source="nQPG1eYeCsPRD5kNECrD-15" target="nQPG1eYeCsPRD5kNECrD-12" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="nQPG1eYeCsPRD5kNECrD-36" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;elbow=vertical;strokeColor=#55FF33;" parent="j9wHTkat09YekCUc9zt6-1" source="nQPG1eYeCsPRD5kNECrD-15" target="nQPG1eYeCsPRD5kNECrD-35" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="nQPG1eYeCsPRD5kNECrD-42" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;elbow=vertical;exitX=0.5;exitY=1;exitDx=0;exitDy=0;strokeColor=#FF8000;" parent="j9wHTkat09YekCUc9zt6-1" source="nQPG1eYeCsPRD5kNECrD-15" target="nQPG1eYeCsPRD5kNECrD-20" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="nQPG1eYeCsPRD5kNECrD-15" value="阿里对接微服务" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;fontStyle=0" parent="j9wHTkat09YekCUc9zt6-1" vertex="1">
<mxGeometry x="60" y="250" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="nQPG1eYeCsPRD5kNECrD-30" style="edgeStyle=elbowEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;elbow=vertical;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;endArrow=none;endFill=0;strokeColor=#CC00CC;" parent="j9wHTkat09YekCUc9zt6-1" source="nQPG1eYeCsPRD5kNECrD-16" target="nQPG1eYeCsPRD5kNECrD-13" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="nQPG1eYeCsPRD5kNECrD-38" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;elbow=vertical;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;strokeColor=#55FF33;" parent="j9wHTkat09YekCUc9zt6-1" source="nQPG1eYeCsPRD5kNECrD-16" target="nQPG1eYeCsPRD5kNECrD-35" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="nQPG1eYeCsPRD5kNECrD-44" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;elbow=vertical;strokeColor=#FF8000;" parent="j9wHTkat09YekCUc9zt6-1" source="nQPG1eYeCsPRD5kNECrD-16" target="nQPG1eYeCsPRD5kNECrD-20" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="nQPG1eYeCsPRD5kNECrD-16" value="<span style="font-weight: 400">第三方对接微服务</span>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;fontStyle=1" parent="j9wHTkat09YekCUc9zt6-1" vertex="1">
<mxGeometry x="380" y="250" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="nQPG1eYeCsPRD5kNECrD-29" style="edgeStyle=elbowEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;elbow=vertical;html=1;endArrow=none;endFill=0;strokeColor=#CC00CC;" parent="j9wHTkat09YekCUc9zt6-1" source="nQPG1eYeCsPRD5kNECrD-17" target="nQPG1eYeCsPRD5kNECrD-14" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="nQPG1eYeCsPRD5kNECrD-37" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;elbow=vertical;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;strokeColor=#55FF33;" parent="j9wHTkat09YekCUc9zt6-1" source="nQPG1eYeCsPRD5kNECrD-17" target="nQPG1eYeCsPRD5kNECrD-35" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="nQPG1eYeCsPRD5kNECrD-43" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;elbow=vertical;exitX=0.5;exitY=1;exitDx=0;exitDy=0;strokeColor=#FF8000;" parent="j9wHTkat09YekCUc9zt6-1" source="nQPG1eYeCsPRD5kNECrD-17" target="nQPG1eYeCsPRD5kNECrD-20" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="nQPG1eYeCsPRD5kNECrD-17" value="<span style="font-weight: 400">第三方对接微服务</span>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;fontStyle=1" parent="j9wHTkat09YekCUc9zt6-1" vertex="1">
<mxGeometry x="220" y="250" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="nQPG1eYeCsPRD5kNECrD-23" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;elbow=vertical;html=1;endArrow=none;endFill=0;curved=1;" parent="j9wHTkat09YekCUc9zt6-1" source="nQPG1eYeCsPRD5kNECrD-19" target="nQPG1eYeCsPRD5kNECrD-11" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="nQPG1eYeCsPRD5kNECrD-24" style="edgeStyle=elbowEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;elbow=vertical;html=1;endArrow=none;endFill=0;strokeColor=#FF8000;" parent="j9wHTkat09YekCUc9zt6-1" source="nQPG1eYeCsPRD5kNECrD-19" target="nQPG1eYeCsPRD5kNECrD-20" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="360" y="420" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="nQPG1eYeCsPRD5kNECrD-32" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;elbow=vertical;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeColor=#0000FF;" parent="j9wHTkat09YekCUc9zt6-1" source="nQPG1eYeCsPRD5kNECrD-19" target="nQPG1eYeCsPRD5kNECrD-7" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="nQPG1eYeCsPRD5kNECrD-33" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;elbow=vertical;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeColor=#0000FF;" parent="j9wHTkat09YekCUc9zt6-1" source="nQPG1eYeCsPRD5kNECrD-19" target="nQPG1eYeCsPRD5kNECrD-1" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="nQPG1eYeCsPRD5kNECrD-19" value="设备网关" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;" parent="j9wHTkat09YekCUc9zt6-1" vertex="1">
<mxGeometry x="240" y="400" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="nQPG1eYeCsPRD5kNECrD-20" value="<span>规则引擎</span>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;" parent="j9wHTkat09YekCUc9zt6-1" vertex="1">
<mxGeometry x="400" y="340" width="80" height="40" as="geometry" />
</mxCell>
<mxCell id="nQPG1eYeCsPRD5kNECrD-11" value="<span>设备</span>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;" parent="j9wHTkat09YekCUc9zt6-1" vertex="1">
<mxGeometry x="220" y="545" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="nQPG1eYeCsPRD5kNECrD-31" value="" style="rounded=0;orthogonalLoop=1;jettySize=auto;elbow=vertical;html=1;endArrow=none;endFill=0;strokeColor=#0000FF;" parent="j9wHTkat09YekCUc9zt6-1" source="nQPG1eYeCsPRD5kNECrD-19" target="nQPG1eYeCsPRD5kNECrD-11" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="520" y="349.9655172413793" as="sourcePoint" />
<mxPoint x="740" y="250" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="nQPG1eYeCsPRD5kNECrD-45" style="edgeStyle=elbowEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;endArrow=none;endFill=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;strokeColor=#55FF33;" parent="j9wHTkat09YekCUc9zt6-1" source="nQPG1eYeCsPRD5kNECrD-35" target="nQPG1eYeCsPRD5kNECrD-19" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="120" y="410" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="nQPG1eYeCsPRD5kNECrD-35" value="openapi" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#000000;fillColor=none;" parent="j9wHTkat09YekCUc9zt6-1" vertex="1">
<mxGeometry x="80" y="340" width="80" height="40" as="geometry" />
</mxCell>
<object placeholders="1" c4Name="IOT" c4Type="Software System" c4Description="通通IOT平台" label="<font style="font-size: 16px"><b>%c4Name%</b></font><div>[%c4Type%]</div><br><div><font style="font-size: 11px"><font color="#cccccc">%c4Description%</font></div>" id="SLF7TBmFHoFhIeTCJ8YM-0">
<mxCell style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#1061B0;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0D5091;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];" parent="j9wHTkat09YekCUc9zt6-1" vertex="1">
<mxGeometry x="1203" y="402" width="240" height="120" as="geometry" />
</mxCell>
</object>
<mxCell id="SLF7TBmFHoFhIeTCJ8YM-2" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#000000;dashed=1;" parent="j9wHTkat09YekCUc9zt6-1" source="SLF7TBmFHoFhIeTCJ8YM-1" target="SLF7TBmFHoFhIeTCJ8YM-0" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="SLF7TBmFHoFhIeTCJ8YM-3" value="对接" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="SLF7TBmFHoFhIeTCJ8YM-2" vertex="1" connectable="0">
<mxGeometry x="-0.2136" y="-2" relative="1" as="geometry">
<mxPoint x="24" y="13" as="offset" />
</mxGeometry>
</mxCell>
<object placeholders="1" c4Name="第三方云平台" c4Type="Software System" c4Description="待对接的云平台" label="<font style="font-size: 16px"><b>%c4Name%</b></font><div>[%c4Type%]</div><br><div><font style="font-size: 11px"><font color="#cccccc">%c4Description%</font></div>" id="SLF7TBmFHoFhIeTCJ8YM-1">
<mxCell style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#8C8496;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#736782;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];" parent="j9wHTkat09YekCUc9zt6-1" vertex="1">
<mxGeometry x="1203" y="216" width="240" height="120" as="geometry" />
</mxCell>
</object>
<mxCell id="mj1q7hX3LsrW3XwzowFh-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;endArrow=block;endFill=1;strokeColor=#FF0000;startArrow=none;startFill=0;" parent="j9wHTkat09YekCUc9zt6-1" source="mj1q7hX3LsrW3XwzowFh-0" target="ElMfJs4WWH0_vxcyytvh-1" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1800" y="420" />
<mxPoint x="1800" y="420" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="mj1q7hX3LsrW3XwzowFh-12" value="调用服务" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="mj1q7hX3LsrW3XwzowFh-6" vertex="1" connectable="0">
<mxGeometry x="-0.4788" y="3" relative="1" as="geometry">
<mxPoint x="27" y="18" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="ElMfJs4WWH0_vxcyytvh-6" style="edgeStyle=elbowEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=block;startFill=1;strokeColor=#0000FF;elbow=vertical;endArrow=none;endFill=0;" edge="1" parent="j9wHTkat09YekCUc9zt6-1" source="mj1q7hX3LsrW3XwzowFh-0" target="ElMfJs4WWH0_vxcyytvh-1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="2120" y="340" as="targetPoint" />
<Array as="points">
<mxPoint x="1960" y="380" />
<mxPoint x="1960" y="350" />
<mxPoint x="1950" y="370" />
<mxPoint x="1960" y="350" />
<mxPoint x="2000" y="370" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="ElMfJs4WWH0_vxcyytvh-7" value="数据上报" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="ElMfJs4WWH0_vxcyytvh-6">
<mxGeometry x="-0.2314" y="-1" relative="1" as="geometry">
<mxPoint x="31" y="4" as="offset" />
</mxGeometry>
</mxCell>
<object placeholders="1" c4Name="第三方云平台" c4Type="Software System" c4Description="待对接的云平台" label="<font style="font-size: 16px"><b>%c4Name%</b></font><div>[%c4Type%]</div><br><div><font style="font-size: 11px"><font color="#cccccc">%c4Description%</font></div>" id="mj1q7hX3LsrW3XwzowFh-0">
<mxCell style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#8C8496;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#736782;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];spacing=2;" parent="j9wHTkat09YekCUc9zt6-1" vertex="1">
<mxGeometry x="1760" y="240" width="240" height="120" as="geometry" />
</mxCell>
</object>
<object placeholders="1" c4Name="IOT" c4Type="SystemScopeBoundary" c4Application="通通IOT平台" label="<font style="font-size: 16px"><b><div style="text-align: left">%c4Name%</div></b></font><div style="text-align: left">[%c4Application%]</div>" id="mj1q7hX3LsrW3XwzowFh-1">
<mxCell style="rounded=1;fontSize=11;whiteSpace=wrap;html=1;dashed=1;arcSize=20;fillColor=none;strokeColor=#666666;fontColor=#333333;labelBackgroundColor=none;align=left;verticalAlign=bottom;labelBorderColor=none;spacingTop=0;spacing=10;dashPattern=8 4;metaEdit=1;rotatable=0;perimeter=rectanglePerimeter;noLabel=0;labelPadding=0;allowArrows=0;connectable=0;expand=0;recursiveResize=0;editable=1;pointerEvents=0;absoluteArcSize=1;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];" parent="j9wHTkat09YekCUc9zt6-1" vertex="1">
<mxGeometry x="1670" y="410" width="770" height="340" as="geometry" />
</mxCell>
</object>
<mxCell id="mj1q7hX3LsrW3XwzowFh-10" value="数据上报" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;endArrow=block;endFill=1;strokeColor=#0000FF;" parent="j9wHTkat09YekCUc9zt6-1" source="mj1q7hX3LsrW3XwzowFh-2" target="ElMfJs4WWH0_vxcyytvh-0" edge="1">
<mxGeometry x="-0.207" y="-34" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="ElMfJs4WWH0_vxcyytvh-8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=block;endFill=1;strokeColor=#FF0000;elbow=vertical;" edge="1" parent="j9wHTkat09YekCUc9zt6-1" source="mj1q7hX3LsrW3XwzowFh-2" target="ElMfJs4WWH0_vxcyytvh-3">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="2200" y="800" />
<mxPoint x="2200" y="800" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="ElMfJs4WWH0_vxcyytvh-11" value="调用服务" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="ElMfJs4WWH0_vxcyytvh-8">
<mxGeometry x="0.2188" y="-1" relative="1" as="geometry">
<mxPoint x="41" y="9" as="offset" />
</mxGeometry>
</mxCell>
<object placeholders="1" c4Name="设备网关" c4Type="Component" c4Technology="网络组件/消息协议" c4Description="设备和IOT交互的中间件" label="<font style="font-size: 16px"><b>%c4Name%</b></font><div>[%c4Type%: %c4Technology%]</div><br><div><font style="font-size: 11px"><font color="#E6E6E6">%c4Description%</font></div>" id="mj1q7hX3LsrW3XwzowFh-2">
<mxCell style="rounded=1;whiteSpace=wrap;html=1;fontSize=11;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0E7DAD;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];" parent="j9wHTkat09YekCUc9zt6-1" vertex="1">
<mxGeometry x="2160" y="600" width="240" height="120" as="geometry" />
</mxCell>
</object>
<mxCell id="mj1q7hX3LsrW3XwzowFh-9" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;endArrow=block;endFill=1;strokeColor=#FF0000;" parent="j9wHTkat09YekCUc9zt6-1" source="ElMfJs4WWH0_vxcyytvh-2" target="mj1q7hX3LsrW3XwzowFh-2" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mj1q7hX3LsrW3XwzowFh-14" value="调用服务" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="mj1q7hX3LsrW3XwzowFh-9" vertex="1" connectable="0">
<mxGeometry x="-0.3333" y="3" relative="1" as="geometry">
<mxPoint x="15" y="-10" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="mj1q7hX3LsrW3XwzowFh-11" value="上报属性/事件/设备状态" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;endArrow=block;endFill=1;strokeColor=#0000FF;edgeStyle=orthogonalEdgeStyle;" parent="j9wHTkat09YekCUc9zt6-1" source="ElMfJs4WWH0_vxcyytvh-0" target="ElMfJs4WWH0_vxcyytvh-1" edge="1">
<mxGeometry y="-20" relative="1" as="geometry">
<mxPoint as="offset" />
<Array as="points">
<mxPoint x="2100" y="480" />
<mxPoint x="2100" y="480" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="mj1q7hX3LsrW3XwzowFh-8" value="调用服务" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;endArrow=block;endFill=1;strokeColor=#FF0000;" parent="j9wHTkat09YekCUc9zt6-1" source="ElMfJs4WWH0_vxcyytvh-1" target="ElMfJs4WWH0_vxcyytvh-2" edge="1">
<mxGeometry x="0.0696" y="43" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<object placeholders="1" c4Name="对接服务" c4Type="ContainerScopeBoundary" c4Application="对接服务" label="<font style="font-size: 16px"><b><div style="text-align: left">%c4Name%</div></b></font><div style="text-align: left">[%c4Application%]</div>" id="mj1q7hX3LsrW3XwzowFh-15">
<mxCell style="rounded=1;fontSize=11;whiteSpace=wrap;html=1;dashed=1;arcSize=20;fillColor=none;strokeColor=#666666;fontColor=#333333;labelBackgroundColor=none;align=left;verticalAlign=bottom;labelBorderColor=none;spacingTop=0;spacing=10;dashPattern=8 4;metaEdit=1;rotatable=0;perimeter=rectanglePerimeter;noLabel=0;labelPadding=0;allowArrows=0;connectable=0;expand=0;recursiveResize=0;editable=1;pointerEvents=0;absoluteArcSize=1;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];" parent="j9wHTkat09YekCUc9zt6-1" vertex="1">
<mxGeometry x="2809" y="402" width="403" height="367" as="geometry" />
</mxCell>
</object>
<mxCell id="mj1q7hX3LsrW3XwzowFh-23" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;endArrow=block;endFill=1;strokeColor=#000000;startArrow=blockThin;startFill=1;" parent="j9wHTkat09YekCUc9zt6-1" source="mj1q7hX3LsrW3XwzowFh-16" target="mj1q7hX3LsrW3XwzowFh-21" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<object placeholders="1" c4Name="接入" c4Type="Component" c4Technology="http" c4Description="通过http服务来接收IOT上报的数据/配置;
通过http客户端来调用IOT的服务调用.
根据配置维护对接实例." label="<font style="font-size: 16px"><b>%c4Name%</b></font><div>[%c4Type%: %c4Technology%]</div><br><div><font style="font-size: 11px">%c4Description%</font></div>" id="mj1q7hX3LsrW3XwzowFh-16">
<mxCell style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#63BEF2;fontColor=#ffffff;align=center;arcSize=6;strokeColor=#2086C9;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];" parent="j9wHTkat09YekCUc9zt6-1" vertex="1">
<mxGeometry x="2900" y="607" width="240" height="120" as="geometry" />
</mxCell>
</object>
<mxCell id="mj1q7hX3LsrW3XwzowFh-22" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;endArrow=block;endFill=1;strokeColor=#000000;startArrow=block;startFill=1;" parent="j9wHTkat09YekCUc9zt6-1" source="mj1q7hX3LsrW3XwzowFh-17" target="mj1q7hX3LsrW3XwzowFh-16" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<object placeholders="1" c4Name="云云对接" c4Type="Component" c4Technology="第三方SDK,mqtt" c4Description="负责和第三方云平台交互,
以及数据的转换和过滤." label="<font style="font-size: 16px"><b>%c4Name%</b></font><div>[%c4Type%: %c4Technology%]</div><br><div><font style="font-size: 11px">%c4Description%</font></div>" id="mj1q7hX3LsrW3XwzowFh-17">
<mxCell style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#63BEF2;fontColor=#ffffff;align=center;arcSize=6;strokeColor=#2086C9;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];" parent="j9wHTkat09YekCUc9zt6-1" vertex="1">
<mxGeometry x="2898" y="440" width="240" height="120" as="geometry" />
</mxCell>
</object>
<object placeholders="1" c4Name="第三方云平台" c4Type="Software System" c4Description="待对接的云平台" label="<font style="font-size: 16px"><b>%c4Name%</b></font><div>[%c4Type%]</div><br><div><font style="font-size: 11px"><font color="#cccccc">%c4Description%</font></div>" id="mj1q7hX3LsrW3XwzowFh-18">
<mxCell style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#8C8496;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#736782;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];" parent="j9wHTkat09YekCUc9zt6-1" vertex="1">
<mxGeometry x="2898" y="225" width="240" height="120" as="geometry" />
</mxCell>
</object>
<mxCell id="mj1q7hX3LsrW3XwzowFh-19" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;endArrow=block;endFill=1;strokeColor=#000000;startArrow=block;startFill=1;" parent="j9wHTkat09YekCUc9zt6-1" source="mj1q7hX3LsrW3XwzowFh-18" target="mj1q7hX3LsrW3XwzowFh-17" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="1996.6607142857147" y="360" as="sourcePoint" />
<mxPoint x="1994.8973214285716" y="439" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="mj1q7hX3LsrW3XwzowFh-20" value="对接: 服务调用,数据上报" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="mj1q7hX3LsrW3XwzowFh-19" vertex="1" connectable="0">
<mxGeometry x="-0.4788" y="3" relative="1" as="geometry">
<mxPoint x="71" y="6" as="offset" />
</mxGeometry>
</mxCell>
<object placeholders="1" c4Name="IOT" c4Type="Software System" c4Description="通通IOT平台" label="<font style="font-size: 16px"><b>%c4Name%</b></font><div>[%c4Type%]</div><br><div><font style="font-size: 11px"><font color="#cccccc">%c4Description%</font></div>" id="mj1q7hX3LsrW3XwzowFh-21">
<mxCell style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#1061B0;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0D5091;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];" parent="j9wHTkat09YekCUc9zt6-1" vertex="1">
<mxGeometry x="2900" y="822" width="240" height="120" as="geometry" />
</mxCell>
</object>
<mxCell id="ElMfJs4WWH0_vxcyytvh-12" value="上报告警数据" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=block;endFill=1;strokeColor=#0000FF;elbow=vertical;" edge="1" parent="j9wHTkat09YekCUc9zt6-1" source="ElMfJs4WWH0_vxcyytvh-0" target="ElMfJs4WWH0_vxcyytvh-1">
<mxGeometry y="-20" relative="1" as="geometry">
<Array as="points">
<mxPoint x="2100" y="520" />
<mxPoint x="2100" y="520" />
</Array>
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<object placeholders="1" c4Name="规则引擎" c4Type="Component" c4Technology="规则引擎" c4Description="IOT规则处理引擎" label="<font style="font-size: 16px"><b>%c4Name%</b></font><div>[%c4Type%: %c4Technology%]</div><br><div><font style="font-size: 11px">%c4Description%</font></div>" id="ElMfJs4WWH0_vxcyytvh-0">
<mxCell style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#63BEF2;fontColor=#ffffff;align=center;arcSize=6;strokeColor=#2086C9;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];" vertex="1" parent="j9wHTkat09YekCUc9zt6-1">
<mxGeometry x="2160" y="440" width="240" height="120" as="geometry" />
</mxCell>
</object>
<object placeholders="1" c4Name="对接服务" c4Type="Component" c4Technology="http,mqtt" c4Description="通过集成sdk来完成对接" label="<font style="font-size: 16px"><b>%c4Name%</b></font><div>[%c4Type%: %c4Technology%]</div><br><div><font style="font-size: 11px">%c4Description%</font></div>" id="ElMfJs4WWH0_vxcyytvh-1">
<mxCell style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#63BEF2;fontColor=#ffffff;align=center;arcSize=6;strokeColor=#2086C9;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];" vertex="1" parent="j9wHTkat09YekCUc9zt6-1">
<mxGeometry x="1760" y="440" width="240" height="120" as="geometry" />
</mxCell>
</object>
<object placeholders="1" c4Name="OpenAPI" c4Type="Component" c4Technology="gin" c4Description="IOT开发平台接口" label="<font style="font-size: 16px"><b>%c4Name%</b></font><div>[%c4Type%: %c4Technology%]</div><br><div><font style="font-size: 11px">%c4Description%</font></div>" id="ElMfJs4WWH0_vxcyytvh-2">
<mxCell style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#63BEF2;fontColor=#ffffff;align=center;arcSize=6;strokeColor=#2086C9;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];" vertex="1" parent="j9wHTkat09YekCUc9zt6-1">
<mxGeometry x="1760" y="600" width="240" height="120" as="geometry" />
</mxCell>
</object>
<mxCell id="ElMfJs4WWH0_vxcyytvh-9" value="数据上报" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;startArrow=none;startFill=0;endArrow=block;endFill=1;strokeColor=#0000FF;elbow=vertical;" edge="1" parent="j9wHTkat09YekCUc9zt6-1" source="ElMfJs4WWH0_vxcyytvh-3" target="mj1q7hX3LsrW3XwzowFh-2">
<mxGeometry x="-0.4" y="-40" relative="1" as="geometry">
<Array as="points">
<mxPoint x="2360" y="760" />
<mxPoint x="2360" y="760" />
</Array>
<mxPoint y="1" as="offset" />
</mxGeometry>
</mxCell>
<object placeholders="1" c4Name="设备" c4Type="Software System" c4Description="IOT接入的设备" label="<font style="font-size: 16px"><b>%c4Name%</b></font><div>[%c4Type%]</div><br><div><font style="font-size: 11px"><font color="#cccccc">%c4Description%</font></div>" id="ElMfJs4WWH0_vxcyytvh-3">
<mxCell style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#8C8496;fontColor=#ffffff;align=center;arcSize=16;strokeColor=#736782;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];" vertex="1" parent="j9wHTkat09YekCUc9zt6-1">
<mxGeometry x="2160" y="810" width="240" height="120" as="geometry" />
</mxCell>
</object>
</root>
</mxGraphModel>
</diagram>
<diagram id="JNotHGwybTDf95N94IKC" name="第 5 页">
<mxGraphModel dx="-825" dy="1" grid="0" gridSize="10" guides="0" tooltips="0" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="Dr3iElRrRzA7SQJfvAMD-58" value="设备告警" style="rounded=0;whiteSpace=wrap;html=1;horizontal=1;verticalAlign=top;" vertex="1" parent="1">
<mxGeometry x="945" y="780" width="810" height="360" as="geometry" />
</mxCell>
<mxCell id="Dr3iElRrRzA7SQJfvAMD-65" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="Dr3iElRrRzA7SQJfvAMD-55" target="Dr3iElRrRzA7SQJfvAMD-66">
<mxGeometry relative="1" as="geometry">
<mxPoint x="1274" y="340" as="targetPoint" />
<Array as="points" />
</mxGeometry>
</mxCell>
<mxCell id="Dr3iElRrRzA7SQJfvAMD-55" value="规则引擎" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="1215" y="200" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="Dr3iElRrRzA7SQJfvAMD-64" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="Dr3iElRrRzA7SQJfvAMD-63" target="Dr3iElRrRzA7SQJfvAMD-55">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Dr3iElRrRzA7SQJfvAMD-63" value="设备" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="1215" y="120" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="Dr3iElRrRzA7SQJfvAMD-74" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="Dr3iElRrRzA7SQJfvAMD-66" target="Dr3iElRrRzA7SQJfvAMD-69">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Dr3iElRrRzA7SQJfvAMD-75" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="Dr3iElRrRzA7SQJfvAMD-66" target="Dr3iElRrRzA7SQJfvAMD-70">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Dr3iElRrRzA7SQJfvAMD-76" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="Dr3iElRrRzA7SQJfvAMD-66" target="Dr3iElRrRzA7SQJfvAMD-71">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Dr3iElRrRzA7SQJfvAMD-77" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="Dr3iElRrRzA7SQJfvAMD-66" target="Dr3iElRrRzA7SQJfvAMD-72">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Dr3iElRrRzA7SQJfvAMD-78" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="Dr3iElRrRzA7SQJfvAMD-66" target="Dr3iElRrRzA7SQJfvAMD-73">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Dr3iElRrRzA7SQJfvAMD-66" value="告警信息格式" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="1215" y="280" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="Dr3iElRrRzA7SQJfvAMD-69" value="钉钉" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="894" y="360" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="Dr3iElRrRzA7SQJfvAMD-82" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="Dr3iElRrRzA7SQJfvAMD-70" target="Dr3iElRrRzA7SQJfvAMD-79">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Dr3iElRrRzA7SQJfvAMD-70" value="邮件" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="1054" y="360" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="Dr3iElRrRzA7SQJfvAMD-83" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="Dr3iElRrRzA7SQJfvAMD-71" target="Dr3iElRrRzA7SQJfvAMD-80">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Dr3iElRrRzA7SQJfvAMD-71" value="短信" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="1215" y="360" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="Dr3iElRrRzA7SQJfvAMD-84" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="Dr3iElRrRzA7SQJfvAMD-72" target="Dr3iElRrRzA7SQJfvAMD-81">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Dr3iElRrRzA7SQJfvAMD-72" value="电话" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="1374" y="360" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="Dr3iElRrRzA7SQJfvAMD-73" value="工单" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="1534" y="360" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="Dr3iElRrRzA7SQJfvAMD-79" value="值班人员" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="1054" y="440" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="Dr3iElRrRzA7SQJfvAMD-80" value="项目经理" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="1215" y="440" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="Dr3iElRrRzA7SQJfvAMD-81" value="支持人员" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="1374" y="440" width="120" height="40" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>