diff --git a/notes/data path - rbuf.svg b/notes/data path - rbuf.svg
new file mode 100644
index 0000000..73d333f
--- /dev/null
+++ b/notes/data path - rbuf.svg
@@ -0,0 +1,645 @@
+
+
+
diff --git a/notes/data path - receive.svg b/notes/data path - receive.svg
new file mode 100644
index 0000000..72052bf
--- /dev/null
+++ b/notes/data path - receive.svg
@@ -0,0 +1,745 @@
+
+
+
diff --git a/notes/data path - transmit.svg b/notes/data path - transmit.svg
new file mode 100644
index 0000000..288a28a
--- /dev/null
+++ b/notes/data path - transmit.svg
@@ -0,0 +1,587 @@
+
+
+
diff --git a/notes/data path.graffle b/notes/data path.graffle
new file mode 100644
index 0000000..cb84628
--- /dev/null
+++ b/notes/data path.graffle
@@ -0,0 +1,13698 @@
+
+
+
+
+ ApplicationVersion
+
+ com.omnigroup.OmniGraffle7
+ 186.9.0.304876
+
+ CreationDate
+ 2011-01-28 12:38:57 +0000
+ Creator
+ Erik Boasson
+ GraphDocumentVersion
+ 14
+ GuidesLocked
+ NO
+ GuidesVisible
+ YES
+ ImageCounter
+ 1
+ LinksVisible
+ NO
+ MagnetsVisible
+ NO
+ MasterSheets
+
+ ModificationDate
+ 2018-07-04 12:39:41 +0000
+ Modifier
+ Erik Boasson
+ MovementHandleVisible
+ NO
+ NotesVisible
+ NO
+ OriginVisible
+ NO
+ PageBreaks
+ YES
+ PrintInfo
+
+ NSBottomMargin
+
+ float
+ 41
+
+ NSHorizonalPagination
+
+ coded
+ BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG
+
+ NSLeftMargin
+
+ float
+ 18
+
+ NSPaperSize
+
+ size
+ {595.27556419372559, 841.8897705078125}
+
+ NSPrintReverseOrientation
+
+ coded
+ BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG
+
+ NSRightMargin
+
+ float
+ 18
+
+ NSTopMargin
+
+ float
+ 18
+
+
+ ReadOnly
+ NO
+ Sheets
+
+
+ ActiveLayerIndex
+ 0
+ AutoAdjust
+ 0
+ AutosizingMargin
+ 0
+ BackgroundGraphic
+
+ Bounds
+ {{0, 0}, {560, 783}}
+ Class
+ GraffleShapes.CanvasBackgroundGraphic
+ ID
+ 2
+ Style
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+
+ BaseZoom
+ 0
+ CanvasDimensionsOrigin
+ {0, 0}
+ CanvasOrigin
+ {0, 0}
+ CanvasSizingMode
+ 0
+ ColumnAlign
+ 1
+ ColumnSpacing
+ 36
+ DisplayScale
+ 1.0000 cm = 1.0000 cm
+ GraphicsList
+
+
+ Bounds
+ {{377.75409201040827, 192.47373469176028}, {11, 11}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 7
+
+ ID
+ 3
+ Line
+
+ ID
+ 46
+ Position
+ 0.89051508903503418
+ RotationType
+ 0
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 1
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs14 \cf0 set}
+ VerticalPad
+ 1
+
+ TextRelativeArea
+ {{0, 0.20000000000000001}, {1, 1}}
+ TextRotation
+ 40
+ Wrap
+ NO
+
+
+ Bounds
+ {{70.911739628928785, 407.97989237621579}, {41, 9}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ archive
+
+ YnBsaXN0MDDUAQIDBAUI
+ ISJUJHRvcFgkb2JqZWN0
+ c1gkdmVyc2lvblkkYXJj
+ aGl2ZXLRBgdUcm9vdIAB
+ pQkKExceVSRudWxs1AsM
+ DQ4PEBESXxASTlNDdXN0
+ b21Db2xvclNwYWNlV05T
+ V2hpdGVcTlNDb2xvclNw
+ YWNlViRjbGFzc4ACQjAA
+ EAOABNIUDhUWVE5TSUQQ
+ AoAD0hgZGh1YJGNsYXNz
+ ZXNaJGNsYXNzbmFtZaIb
+ HFxOU0NvbG9yU3BhY2VY
+ TlNPYmplY3RcTlNDb2xv
+ clNwYWNl0hgZHyCiIBxX
+ TlNDb2xvchIAAYagXxAP
+ TlNLZXllZEFyY2hpdmVy
+ CBEWHygyNTo8QkhRZm57
+ goSHiYuQlZeZnqeytcLL
+ 2N3g6O0AAAAAAAABAQAA
+ AAAAAAAjAAAAAAAAAAAA
+ AAAAAAAA/w==
+
+ b
+ 0
+ g
+ 0
+ r
+ 0
+
+ Font
+ GillSans-Bold
+ Size
+ 10
+
+ ID
+ 4
+ Line
+
+ ID
+ 5
+ Position
+ 0.39059293270111084
+ RotationType
+ 0
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0.0
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\b\fs14 \cf0 rmsg, rdata}
+ VerticalPad
+ 0.0
+
+ Wrap
+ NO
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ Head
+
+ ID
+ 86
+
+ ID
+ 5
+ Points
+
+ {68.06151349993128, 412.4799463885858}
+ {127.84300000000133, 412.47980810556652}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Cap
+ 0
+ Color
+
+ space
+ gg22
+ w
+ 0.57230675220489502
+
+ HeadArrow
+ FilledArrow
+ HeadScale
+ 0.5
+ Legacy
+
+ LineType
+ 1
+ TailArrow
+ 0
+ Width
+ 10
+
+
+ Tail
+
+ ID
+ 84
+
+
+
+ Bounds
+ {{456.96417000000002, 35.270389999999999}, {81.702331999999998, 54}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 12
+
+ ID
+ 6
+ Style
+
+ fill
+
+ Color
+
+ b
+ 0.92103439569473267
+ g
+ 0.92104595899581909
+ r
+ 0.9210243821144104
+ space
+ srgb
+
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 0
+ Pad
+ 2
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0
+
+\f0\fs18 \cf0 DCPS reader entity owns the DDSI reader and stores a pointer and the GUID}
+ VerticalPad
+ 2
+
+ TextPlacement
+ 0
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 66
+
+ ID
+ 7
+ Points
+
+ {492.96545239451876, 169.92072673714577}
+ {434.79849999999999, 223.57331649344189}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Cap
+ 0
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 8
+
+
+
+ Bounds
+ {{493.33298000000002, 111.1769}, {45.333500000000001, 74.994499000000005}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ ID
+ 8
+ Style
+
+ fill
+
+ Color
+
+ space
+ gg22
+ w
+ 1
+
+ FillType
+ 3
+ GradientColor
+
+ space
+ gg22
+ w
+ 0.723367
+
+
+ stroke
+
+ Color
+
+ space
+ gg22
+ w
+ 0.0
+
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 DCPS reader entity}
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 66
+ Info
+ 5
+
+ ID
+ 9
+ OrthogonalBarAutomatic
+
+ OrthogonalBarPoint
+ {0, 0}
+ OrthogonalBarPosition
+ -1
+ Points
+
+ {492.83302440579297, 234.46611182329067}
+ {434.79849999999999, 234.90666100000001}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ LineType
+ 2
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 10
+
+
+
+ Bounds
+ {{493.33301, 196.79300000000001}, {45.333500000000001, 74.994499000000005}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ ID
+ 10
+ Style
+
+ fill
+
+ Color
+
+ space
+ gg22
+ w
+ 1
+
+ FillType
+ 3
+ GradientColor
+
+ space
+ gg22
+ w
+ 0.723367
+
+
+ stroke
+
+ Color
+
+ space
+ gg22
+ w
+ 0.0
+
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 guid\
+hash\
+table}
+
+
+
+ Bounds
+ {{183.48657157822814, 221.34351210010189}, {14, 11}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 7
+
+ ID
+ 11
+ Line
+
+ ID
+ 12
+ Position
+ 0.86295163631439209
+ RotationType
+ 0
+
+ Style
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 1
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs14 \cf0 guid}
+ VerticalPad
+ 1
+
+ Wrap
+ NO
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 83
+
+ ID
+ 12
+ OrthogonalBarAutomatic
+
+ OrthogonalBarPoint
+ {0, 0}
+ OrthogonalBarPosition
+ 106
+ Points
+
+ {320.38973999999996, 212.29201}
+ {203.67798999999999, 214}
+ {163.76546392875221, 226.84351210010189}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ LineType
+ 2
+ Pattern
+ 24
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 19
+ Info
+ 2
+
+
+
+ Bounds
+ {{365.55711966293484, 226.04700507524069}, {11, 11}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 7
+
+ ID
+ 13
+ Line
+
+ ID
+ 14
+ Offset
+ 3.380279541015625
+ Position
+ 0.39656719565391541
+ RotationType
+ 2
+
+ Rotation
+ 359.93580101391262
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 1
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs14 \cf0 set}
+ VerticalPad
+ 1
+
+ Wrap
+ NO
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 19
+
+ ID
+ 14
+ Points
+
+ {389.46499999999997, 234.90666100000001}
+ {343.05648999999994, 234.95866100000001}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 66
+ Info
+ 11
+
+
+
+ Bounds
+ {{389.82867568541928, 269.83301}, {14, 11}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 7
+
+ ID
+ 15
+ Line
+
+ ID
+ 17
+ Position
+ 0.83316570520401001
+ RotationType
+ 0
+
+ Style
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 1
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs14 \cf0 guid}
+ VerticalPad
+ 1
+
+ Wrap
+ NO
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 17
+ Position
+ 0.26414713263511658
+
+ ID
+ 16
+ OrthogonalBarAutomatic
+
+ OrthogonalBarPoint
+ {0, 0}
+ OrthogonalBarPosition
+ -1
+ Points
+
+ {272.75650000000002, 288.62664100000001}
+ {285.39600000000002, 273.99911247742824}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ 0
+ Legacy
+
+ LineType
+ 2
+ Pattern
+ 24
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 81
+ Info
+ 3
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 66
+ Info
+ 8
+
+ ID
+ 17
+ OrthogonalBarAutomatic
+
+ OrthogonalBarPoint
+ {0, 0}
+ OrthogonalBarPosition
+ 0.0
+ Points
+
+ {272.75650000000002, 234.29064099999999}
+ {285.39600000000002, 258}
+ {404.35699, 275.33301}
+ {412.13174999999995, 257.57331199999999}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ LineType
+ 2
+ Pattern
+ 24
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 82
+ Info
+ 3
+
+
+
+ Bounds
+ {{194.88435729937703, 229.1304665118642}, {11, 11}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 7
+
+ ID
+ 18
+ Line
+
+ ID
+ 79
+ Position
+ 0.028558904305100441
+ RotationType
+ 0
+
+ Style
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 1
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs14 \cf0 set}
+ VerticalPad
+ 1
+
+ Wrap
+ NO
+
+
+ Bounds
+ {{297.72298999999998, 212.29201}, {45.333500000000001, 45.333302000000003}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ ID
+ 19
+ Magnets
+
+ {0, 1}
+ {0, -1}
+ {1, 0}
+ {-1, 0}
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 proxy writer\
+match\
+}
+
+
+
+ Bounds
+ {{7.39499, 448.185}, {278.00101000000001, 134}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 12
+
+ ID
+ 20
+ Style
+
+ fill
+
+ Color
+
+ a
+ 0.89000000000000001
+ b
+ 0.91699087619781494
+ g
+ 0.91700243949890137
+ r
+ 0.91698092222213745
+ space
+ srgb
+
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 0
+ Pad
+ 2
+ RTFD
+
+ BAtzdHJlYW10eXBlZIHoA4QBQISE
+ hBJOU0F0dHJpYnV0ZWRTdHJpbmcA
+ hIQITlNPYmplY3QAhZKEhIQITlNT
+ dHJpbmcBlIQBK4GuAnRoZSByZWNl
+ aXZlIHRocmVhZCByZXF1ZXN0cyB0
+ aGUgTy9TIGtlcm5lbCB0byBkdW1w
+ IHRoZSBkYXRhIGluIGxhcmdlIHJi
+ dWZzLCBlYWNoIGNvbnRhaW5pbmcg
+ YW55IG51bWJlciBvZiBtZXNzYWdl
+ czsgdGhlIGRlY29kaW5nIGFwcGVu
+ ZHMgc29tZSBpbmZvcm1hdGlvbiwg
+ Ym90aCBmb3IgRGF0YSBhbmQgRGF0
+ YUZyYWcgc3ViLW1lc3NhZ2VzICh0
+ aGUgcmRhdGEgZWxlbWVudHMpLCBh
+ bmQgZm9yIHRoZSBlbWJlZGRlZCBR
+ b1MgbGlzdHMuCgpFYWNoIHJkYXRh
+ IGNvbnRhaW5zIGFsbCB0aGF0IGlz
+ IG5lY2Vzc2FyeSB0byB0cmFjayBp
+ dCBpbiBkZWZyYWdtZW50aW5nIGFu
+ ZCByZW9yZGVyaW5nIGFkbWlucywg
+ YW5kIHRvIGxpbmsgaXQgaW50byB0
+ aGUgZGVsaXZlcnkgcXVldWUuIFRo
+ aXMgZW5zdXJlcyBubyAoaGVhcCkg
+ bWVtb3J5IGFsbG9jYXRpb25zIGFy
+ ZSBuZWNlc3NhcnkgdG8gdHJhY2sg
+ YW4gYXJiaXRyYXJ5IG51bWJlciBv
+ ZiBtZXNzYWdlcy9mcmFnbWVudHMg
+ aW4gdGhlIG5vcm1hbCBjYXNlLgoK
+ VGhlIGRlc2VyaWFsaXplciBvcGVy
+ YXRlcyBmcm9tIHRoZSByZGF0YSBl
+ bGVtZW50cywgaXQgZ2V0cyBhIGxp
+ dHRsZSBiaXQgbmFzdHkgd2hlbiBh
+ IHByaW1pdGl2ZSBpcyBzcGxpdCBv
+ dmVyIG11bGl0cGxlIGZyYWdtZW50
+ cywgYnV0IHNvIGJlIGl0LiAgTklZ
+ OiBjdXJyZW50bHkgbWFsbG9jICsg
+ bWVtY3B5hoQCaUkBgcgAkoSEhAxO
+ U0RpY3Rpb25hcnkAlIQBaQKShJaW
+ EE5TUGFyYWdyYXBoU3R5bGWGkoSE
+ hBdOU011dGFibGVQYXJhZ3JhcGhT
+ dHlsZQCEhBBOU1BhcmFncmFwaFN0
+ eWxlAJSEBENDQFMAAISEhAdOU0Fy
+ cmF5AJSZDJKEhIQJTlNUZXh0VGFi
+ AJSEAkNmAByGkoSgnwA4hpKEoJ8A
+ VIaShKCfAHCGkoSgnwCBjACGkoSg
+ nwCBqACGkoSgnwCBxACGkoSgnwCB
+ 4ACGkoSgnwCB/ACGkoSgnwCBGAGG
+ koSgnwCBNAGGkoSgnwCBUAGGhgCG
+ koSWlgZOU0ZvbnSGkoSEhAZOU0Zv
+ bnQelJkchAVbMjhjXQYAAAASAAAA
+ //5HAGkAbABsAFMAYQBuAHMAAACE
+ AWYJhAFjAKMBowCjAIaGlwIFkoSY
+ mQKSmZKEm5wAAISemQySn5KhkqKS
+ o5KkkqWSppKnkqiSqZKqkquGAIaS
+ rJKErpkohAVbNDBjXQYAAAAgAAAA
+ //5HAGkAbABsAFMAYQBuAHMALQBJ
+ AHQAYQBsAGkAYwCiCaMAowGjAKMA
+ hoaXATKXAgWXAYEfAZcCBZcBaJcD
+ HpKEmJkDkoSWlgdOU0NvbG9yhpKE
+ hIQHTlNDb2xvcgCUowGEBGZmZmaD
+ c4AAP4NzgAA/g3OAAD8BhpKZkrCS
+ rJKyhoY=
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;\red128\green128\blue128;}
+{\*\expandedcolortbl;;\csgenericrgb\c50196\c50196\c50196;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0
+
+\f0\fs18 \cf0 the receive thread requests the O/S kernel to dump the data in large rbufs, each containing any number of messages; the decoding appends some information, both for Data and DataFrag sub-messages (the
+\i rdata
+\i0 elements), and for the embedded QoS lists.\
+\
+Each
+\i rdata
+\i0 contains all that is necessary to track it in defragmenting and reordering admins, and to link it into the delivery queue. This ensures no (heap) memory allocations are necessary to track an arbitrary number of messages/fragments in the normal case.\
+\
+The deserializer operates from the
+\i rdata
+\i0 elements, it gets a little bit nasty when a primitive is split over mulitple fragments, but so be it.
+\i \cf2 NIY: currently malloc + memcpy}
+ VerticalPad
+ 2
+
+ TextPlacement
+ 0
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ Head
+
+ ID
+ 35
+ Position
+ 0.12543308734893799
+
+ ID
+ 21
+ Points
+
+ {122.31712819426481, 716.33306520331962}
+ {123.667, 625.5}
+ {181.18090540982314, 602.19506081287852}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ 0
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 40
+
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ Head
+
+ ID
+ 40
+
+ ID
+ 22
+ Points
+
+ {106.66373638905849, 599.99678980084138}
+ {111.9117396289289, 631.57894736842104}
+ {106.333, 687.55200000000002}
+ {115.00447133290611, 716.35423799942214}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Cap
+ 0
+ Color
+
+ space
+ gg22
+ w
+ 0.57230675220489502
+
+ HeadArrow
+ FilledArrow
+ HeadScale
+ 0.5
+ Legacy
+
+ LineType
+ 1
+ TailArrow
+ 0
+ Width
+ 10
+
+
+ Tail
+
+ ID
+ 23
+ Position
+ 0.68259400129318237
+
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ Head
+
+ ID
+ 43
+
+ ID
+ 23
+ Points
+
+ {75.666646362957877, 412.47992879683966}
+ {86.333297999999999, 440.66699}
+ {111.91200000000001, 620.66699000000006}
+ {157.89087158374534, 641.84840226381596}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Cap
+ 0
+ Color
+
+ space
+ gg22
+ w
+ 0.57230675220489502
+
+ HeadArrow
+ FilledArrow
+ HeadScale
+ 0.5
+ Legacy
+
+ LineType
+ 1
+ TailArrow
+ 0
+ Width
+ 10
+
+
+ Tail
+
+ ID
+ 5
+ Position
+ 0.12721551954746246
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 27
+
+ ID
+ 24
+ Points
+
+ {157.46140254925464, 371.07017905031677}
+ {175.71195634273738, 396.07513294963923}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 26
+
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ Head
+
+ ID
+ 26
+
+ ID
+ 25
+ Points
+
+ {140.62276, 257.457292}
+ {140.62276, 324.83301}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 83
+
+
+
+ Bounds
+ {{117.956, 325.33301}, {45.333500000000001, 45.333302000000003}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ ID
+ 26
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 defrag}
+
+
+
+ Bounds
+ {{166.179, 396.47899999999998}, {31.333500000000001, 16}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ ID
+ 27
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 rdata}
+
+
+
+ Class
+ Group
+ Graphics
+
+
+ Bounds
+ {{396.12398999999999, 529.22460999999998}, {98.4011, 64}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 12
+
+ ID
+ 29
+ Style
+
+ fill
+
+ Color
+
+ b
+ 0.92103439569473267
+ g
+ 0.92104595899581909
+ r
+ 0.9210243821144104
+ space
+ srgb
+
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 0
+ Pad
+ 2
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0
+
+\f0\fs18 \cf0 given that the kernel can only do groupWrite, and not deliver data to an individual reader, might as well design to that behaviour}
+ VerticalPad
+ 2
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{297.72298999999998, 529.22460999999998}, {98.4011, 64}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 12
+
+ ID
+ 30
+ Style
+
+ fill
+
+ Color
+
+ b
+ 0.92103439569473267
+ g
+ 0.92104595899581909
+ r
+ 0.9210243821144104
+ space
+ srgb
+
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 0
+ Pad
+ 2
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0
+
+\f0\fs18 \cf0 potentially many delivery threads: if a writer always delivers via the same queue, all expected ordering properties are retained }
+ VerticalPad
+ 2
+
+ TextPlacement
+ 0
+
+
+ ID
+ 28
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+
+
+ Bounds
+ {{494.68799000000001, 3.62656}, {61, 16}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ archive
+
+ YnBsaXN0MDDUAQIDBAUI
+ ISJUJHRvcFgkb2JqZWN0
+ c1gkdmVyc2lvblkkYXJj
+ aGl2ZXLRBgdUcm9vdIAB
+ pQkKExceVSRudWxs1AsM
+ DQ4PEBESXxASTlNDdXN0
+ b21Db2xvclNwYWNlV05T
+ V2hpdGVcTlNDb2xvclNw
+ YWNlViRjbGFzc4ACRTAu
+ NzUAEAOABNIUDhUWVE5T
+ SUQQAoAD0hgZGh1YJGNs
+ YXNzZXNaJGNsYXNzbmFt
+ ZaIbHFxOU0NvbG9yU3Bh
+ Y2VYTlNPYmplY3RcTlND
+ b2xvclNwYWNl0hgZHyCi
+ IBxXTlNDb2xvchIAAYag
+ XxAPTlNLZXllZEFyY2hp
+ dmVyAAgAEQAWAB8AKAAy
+ ADUAOgA8AEIASABRAGYA
+ bgB7AIIAhACKAIwAjgCT
+ AJgAmgCcAKEAqgC1ALgA
+ xQDOANsA4ADjAOsA8AAA
+ AAAAAAIBAAAAAAAAACMA
+ AAAAAAAAAAAAAAAAAAEC
+
+ b
+ 0.75
+ g
+ 0.75
+ r
+ 0.75
+
+ Font
+ GillSans-Bold
+ Size
+ 9
+
+ ID
+ 31
+ Style
+
+ fill
+
+ Color
+
+ space
+ gg22
+ w
+ 0.31799882650375366
+
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 2
+ Pad
+ 2
+ RTFD
+
+ BAtzdHJlYW10eXBlZIHoA4QBQISE
+ hBJOU0F0dHJpYnV0ZWRTdHJpbmcA
+ hIQITlNPYmplY3QAhZKEhIQITlNT
+ dHJpbmcBlIQBKwxyZWNlaXZlIHBh
+ dGiGhAJpSQEMkoSEhAxOU0RpY3Rp
+ b25hcnkAlIQBaQOShJaWB05TQ29s
+ b3KGkoSEhAdOU0NvbG9yAJSEAWMB
+ hARmZmZmg8a/Pz+Dxr8/P4PGvz8/
+ AYaShJaWEE5TUGFyYWdyYXBoU3R5
+ bGWGkoSEhBdOU011dGFibGVQYXJh
+ Z3JhcGhTdHlsZQCEhBBOU1BhcmFn
+ cmFwaFN0eWxlAJSEBENDQFMBAISE
+ hAdOU0FycmF5AJSZDJKEhIQJTlNU
+ ZXh0VGFiAJSEAkNmAByGkoSjogA4
+ hpKEo6IAVIaShKOiAHCGkoSjogCB
+ jACGkoSjogCBqACGkoSjogCBxACG
+ koSjogCB4ACGkoSjogCB/ACGkoSj
+ ogCBGAGGkoSjogCBNAGGkoSjogCB
+ UAGGhgCGkoSWlgZOU0ZvbnSGkoSE
+ hAZOU0ZvbnQelJkkhAVbMzZjXQYA
+ AAAcAAAA//5HAGkAbABsAFMAYQBu
+ AHMALQBCAG8AbABkAIQBZgmbAJsB
+ mwCbAIaGhg==
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;\red191\green191\blue191;}
+{\*\expandedcolortbl;;\csgenericrgb\c74902\c74902\c74902;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qr\partightenfactor0
+
+\f0\b\fs18 \cf2 receive path}
+ VerticalPad
+ 2
+
+ TextPlacement
+ 0
+ Wrap
+ NO
+
+
+ Bounds
+ {{289.33400999999998, 381.14600000000002}, {266.35399999999998, 54}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ archive
+
+ YnBsaXN0MDDUAQIDBAUI
+ ISJUJHRvcFgkb2JqZWN0
+ c1gkdmVyc2lvblkkYXJj
+ aGl2ZXLRBgdUcm9vdIAB
+ pQkKExceVSRudWxs1AsM
+ DQ4PEBESXxASTlNDdXN0
+ b21Db2xvclNwYWNlV05T
+ V2hpdGVcTlNDb2xvclNw
+ YWNlViRjbGFzc4ACRTAu
+ NzUAEAOABNIUDhUWVE5T
+ SUQQAoAD0hgZGh1YJGNs
+ YXNzZXNaJGNsYXNzbmFt
+ ZaIbHFxOU0NvbG9yU3Bh
+ Y2VYTlNPYmplY3RcTlND
+ b2xvclNwYWNl0hgZHyCi
+ IBxXTlNDb2xvchIAAYag
+ XxAPTlNLZXllZEFyY2hp
+ dmVyAAgAEQAWAB8AKAAy
+ ADUAOgA8AEIASABRAGYA
+ bgB7AIIAhACKAIwAjgCT
+ AJgAmgCcAKEAqgC1ALgA
+ xQDOANsA4ADjAOsA8AAA
+ AAAAAAIBAAAAAAAAACMA
+ AAAAAAAAAAAAAAAAAAEC
+
+ b
+ 0.75
+ g
+ 0.75
+ r
+ 0.75
+
+ Font
+ GillSans
+ Size
+ 12
+
+ ID
+ 32
+ Style
+
+ fill
+
+ Color
+
+ space
+ gg22
+ w
+ 0.31799882650375366
+
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 0
+ Pad
+ 2
+ RTFD
+
+ BAtzdHJlYW10eXBlZIHoA4QBQISE
+ hBJOU0F0dHJpYnV0ZWRTdHJpbmcA
+ hIQITlNPYmplY3QAhZKEhIQITlNT
+ dHJpbmcBlIQBK4EDAU1ham9yIGRp
+ ZmZlcmVuY2VzIGZyb20gY3VycmVu
+ dCBpbXBsZW1lbnRhdGlvbjoKLSBw
+ cm94eSB3cml0ZXIgc3RvcmVzIGFs
+ bCBpdHMgcmVhZGVyIG1hdGNoZXMg
+ Y3VycmVudGx5IGluIGEgc2luZ2xl
+ IHRyZWUsIG5vdCBkaXNjcmltaW5h
+ dGluZyBiZXR3ZWVuIHN5bmMvbm90
+ LWluLXN5bmMKLSBhbGwgcmVjdiBw
+ cm9jZXNzaW5nIGN1cnJlbnRseSBp
+ biBhIHNpbmdsZSB0aHJlYWQKLSBu
+ byBRb1MgY2hhbmdlcyB5ZXQsIG5v
+ IHZlcnNpb25pbmcgb2YgUW9TJ3OG
+ hAJpSQGBAwGShISEDE5TRGljdGlv
+ bmFyeQCUhAFpA5KElpYHTlNDb2xv
+ coaShISEB05TQ29sb3IAlIQBYwGE
+ BGZmZmaDxr8/P4PGvz8/g8a/Pz8B
+ hpKElpYQTlNQYXJhZ3JhcGhTdHls
+ ZYaShISEF05TTXV0YWJsZVBhcmFn
+ cmFwaFN0eWxlAISEEE5TUGFyYWdy
+ YXBoU3R5bGUAlIQEQ0NAUwAAhISE
+ B05TQXJyYXkAlJkMkoSEhAlOU1Rl
+ eHRUYWIAlIQCQ2YAHIaShKOiADiG
+ koSjogBUhpKEo6IAcIaShKOiAIGM
+ AIaShKOiAIGoAIaShKOiAIHEAIaS
+ hKOiAIHgAIaShKOiAIH8AIaShKOi
+ AIEYAYaShKOiAIE0AYaShKOiAIFQ
+ AYaGAIaShJaWBk5TRm9udIaShISE
+ Bk5TRm9udB6UmRyEBVsyOGNdBgAA
+ ABIAAAD//kcAaQBsAGwAUwBhAG4A
+ cwAAAIQBZgmbAJsBmwCbAIaGhg==
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;\red191\green191\blue191;}
+{\*\expandedcolortbl;;\csgenericrgb\c74902\c74902\c74902;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0
+
+\f0\fs18 \cf2 Major differences from current implementation:\
+- proxy writer stores all its reader matches currently in a single tree, not discriminating between sync/not-in-sync\
+- all recv processing currently in a single thread\
+- no QoS changes yet, no versioning of QoS's}
+ VerticalPad
+ 2
+
+ TextPlacement
+ 0
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ Head
+
+ ID
+ 87
+
+ ID
+ 33
+ Points
+
+ {336.71404137262351, 593.22460999999998}
+ {332, 608}
+ {310, 631.44799999999998}
+ {312.06173109332491, 630.91615665196844}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Color
+
+ b
+ 0.92103439569473267
+ g
+ 0.92104595899581909
+ r
+ 0.9210243821144104
+ space
+ srgb
+
+ HeadArrow
+ 0
+ Legacy
+
+ LineType
+ 1
+ TailArrow
+ 0
+ Width
+ 6
+
+
+ Tail
+
+ ID
+ 30
+
+
+
+ Bounds
+ {{251.79111, 710.44201999999996}, {144.33299, 64}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 12
+
+ ID
+ 34
+ Style
+
+ fill
+
+ Color
+
+ b
+ 0.92103439569473267
+ g
+ 0.92104595899581909
+ r
+ 0.9210243821144104
+ space
+ srgb
+
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 0
+ Pad
+ 2
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0
+
+\f0\fs18 \cf0 delivery queues are filled by recv thread (by shuffling rdata references around); heartbeats and acks are a special case: they have no associated rdata and are processed as quickly as possible}
+ VerticalPad
+ 2
+
+ TextPlacement
+ 0
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ Head
+
+ ID
+ 27
+
+ ID
+ 35
+ Points
+
+ {181.08965070592734, 629.33301282678462}
+ {181.81716771329098, 412.97899717321542}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 43
+
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ Head
+
+ ID
+ 38
+
+ ID
+ 36
+ Points
+
+ {40.561535836822962, 647.83299199999988}
+ {40.561516810459949, 678.95433650000632}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Cap
+ 0
+ Color
+
+ space
+ gg22
+ w
+ 0.57230675220489502
+
+ HeadArrow
+ FilledArrow
+ HeadScale
+ 0.5
+ Legacy
+
+ LineType
+ 1
+ TailArrow
+ 0
+ Width
+ 5
+
+
+ Tail
+
+ ID
+ 37
+
+
+
+ Bounds
+ {{17.8948, 601.99968999999999}, {45.333500000000001, 45.333302000000003}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ ID
+ 37
+ Text
+
+ Pad
+ 2
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 heartbeat queue}
+
+
+
+ Bounds
+ {{13.561500000000001, 679.45434999999998}, {54, 54}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 38
+ Shape
+ Circle
+ Text
+
+ Pad
+ 2
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 ack & heartbeat proc. thread}
+
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ Head
+
+ ID
+ 41
+
+ ID
+ 39
+ Points
+
+ {145.13959899999688, 739.49974324971618}
+ {189.96098650017916, 739.49990238064311}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Cap
+ 0
+ Color
+
+ space
+ gg22
+ w
+ 0.57230675220489502
+
+ HeadArrow
+ FilledArrow
+ HeadScale
+ 0.5
+ Legacy
+
+ LineType
+ 1
+ TailArrow
+ 0
+ Width
+ 10
+
+
+ Tail
+
+ ID
+ 40
+
+
+
+ Bounds
+ {{99.306099000000003, 716.83300999999994}, {45.333500000000001, 45.333302000000003}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ ID
+ 40
+ Text
+
+ Pad
+ 2
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 builtin/discovery delivery queues}
+
+
+
+ Bounds
+ {{190.46100000000001, 712.5}, {54, 54}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 41
+ Shape
+ Circle
+ Text
+
+ Pad
+ 2
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 builtin/discovery threads}
+
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ Head
+
+ ID
+ 44
+
+ ID
+ 42
+ Points
+
+ {204.17849999999677, 652.49974455618781}
+ {247.49998650018483, 652.4999008050471}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Cap
+ 0
+ Color
+
+ space
+ gg22
+ w
+ 0.57230675220489502
+
+ HeadArrow
+ FilledArrow
+ HeadScale
+ 0.5
+ Legacy
+
+ LineType
+ 1
+ TailArrow
+ 0
+ Width
+ 10
+
+
+ Tail
+
+ ID
+ 43
+
+
+
+ Bounds
+ {{158.345, 629.83300999999994}, {45.333500000000001, 45.333302000000003}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ ID
+ 43
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 regular data delivery queue}
+
+
+
+ Bounds
+ {{248, 625.5}, {54, 54}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 44
+ Shape
+ Circle
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 delivery thread\
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\fs10 \cf0 store in reader history cache}
+
+
+
+ Bounds
+ {{404.35730195313147, 619.66673948211633}, {19, 16}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 12
+
+ ID
+ 45
+ Line
+
+ ID
+ 54
+ Position
+ 0.43638646602630615
+ RotationType
+ 4
+
+ Style
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 2
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 else}
+ VerticalPad
+ 2
+
+ Wrap
+ NO
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ Head
+
+ ID
+ 66
+
+ ID
+ 46
+ Points
+
+ {215.01248952331622, 166.11567780117966}
+ {343.05649, 165.28676666666655}
+ {400.41046237527212, 211.9245601513926}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 47
+
+
+
+ Bounds
+ {{169.179, 143.59899999999999}, {45.333500000000001, 45.333302000000003}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ ID
+ 47
+ Text
+
+ Pad
+ 2
+ RTFD
+
+ BAtzdHJlYW10eXBlZIHoA4QBQISE
+ hBJOU0F0dHJpYnV0ZWRTdHJpbmcA
+ hIQITlNPYmplY3QAhZKEhIQITlNT
+ dHJpbmcBlIQBKxRyZGFyeQp2ZXJz
+ aW9uaW5nIE5JWYaEAmlJAQaShISE
+ DE5TRGljdGlvbmFyeQCUhAFpApKE
+ lpYQTlNQYXJhZ3JhcGhTdHlsZYaS
+ hISEF05TTXV0YWJsZVBhcmFncmFw
+ aFN0eWxlAISEEE5TUGFyYWdyYXBo
+ U3R5bGUAlIQEQ0NAUwIAhISEB05T
+ QXJyYXkAlJkMkoSEhAlOU1RleHRU
+ YWIAlIQCQ2YAHIaShKCfADiGkoSg
+ nwBUhpKEoJ8AcIaShKCfAIGMAIaS
+ hKCfAIGoAIaShKCfAIHEAIaShKCf
+ AIHgAIaShKCfAIH8AIaShKCfAIEY
+ AYaShKCfAIE0AYaShKCfAIFQAYaG
+ AIaShJaWBk5TRm9udIaShISEBk5T
+ Rm9udB6UmRyEBVsyOGNdBgAAABIA
+ AAD//kcAaQBsAGwAUwBhAG4AcwAA
+ AIQBZgmEAWMAowGjAKMAhoaXAg6S
+ hJiZA5KElpYHTlNDb2xvcoaShISE
+ B05TQ29sb3IAlKMBhARmZmZmg3OA
+ AD+Dc4AAP4NzgAA/AYaSmZKEm5wC
+ AISemQySn5KhkqKSo5KkkqWSppKn
+ kqiSqZKqkquGAIaSrJKErpkohAVb
+ NDBjXQYAAAAgAAAA//5HAGkAbABs
+ AFMAYQBuAHMALQBJAHQAYQBsAGkA
+ YwCiCaMAowGjAKMAhoaG
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;\red128\green128\blue128;}
+{\*\expandedcolortbl;;\csgenericrgb\c50196\c50196\c50196;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 rdary\
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\i \cf2 versioning NIY}
+
+
+
+ Bounds
+ {{480.20400999999998, 654.62072999999998}, {93.000197999999997, 44}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 12
+
+ ID
+ 48
+ Rotation
+ 90
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 2
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 next-to-be-delivered\
+for this conn. matches\
+next-to-be-delivered\
+for proxy-writer}
+ VerticalPad
+ 2
+
+
+
+ Bounds
+ {{444.56, 668.52173000000005}, {31.333500000000001, 24}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 12
+
+ ID
+ 49
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 2
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 rejects data}
+ VerticalPad
+ 2
+
+
+
+ Bounds
+ {{365.34659274148999, 673.02959332441787}, {80, 34}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 12
+
+ ID
+ 50
+ Line
+
+ ID
+ 53
+ Offset
+ -16.901409149169922
+ Position
+ 0.49472150206565857
+ RotationType
+ 2
+
+ Rotation
+ 42.988370018535988
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 0
+ Pad
+ 2
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0
+
+\f0\fs18 \cf0 not trans. local conn.\
+or proxy writer has\
+no old msgs}
+ VerticalPad
+ 2
+
+ Wrap
+ NO
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ Head
+
+ ID
+ 55
+
+ ID
+ 51
+ Points
+
+ {485.24887856392672, 651.33034070162637}
+ {503.22600999999997, 681.66674999999998}
+ {486.7808938658855, 705.64887356142958}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ LineType
+ 1
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 56
+
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ Head
+
+ ID
+ 56
+
+ ID
+ 52
+ Points
+
+ {457.81119427280345, 704.31874931323739}
+ {444.22600999999997, 679.99976000000004}
+ {458.61390893761563, 652.11227633402848}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ LineType
+ 1
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 55
+
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ Head
+
+ ID
+ 55
+
+ ID
+ 53
+ Points
+
+ {383.34723226693154, 646.41781690233665}
+ {451.10976773471003, 709.58169309590426}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 57
+
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ Head
+
+ ID
+ 56
+
+ ID
+ 54
+ Points
+
+ {390.73100349999862, 627.66673948211633}
+ {443.72599650000285, 627.66673948211633}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 57
+
+
+
+ Bounds
+ {{444.22600999999997, 701.33276000000001}, {54, 54}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 55
+ Shape
+ Circle
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 IN-SYNC}
+
+
+
+ Bounds
+ {{444.22600999999997, 600.66674999999998}, {54, 54}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 56
+ Shape
+ Circle
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 NOT-IN-SYNC}
+
+
+
+ Bounds
+ {{336.23099000000002, 600.66674999999998}, {54, 54}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 57
+ Shape
+ Circle
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 INIT}
+
+
+
+ Bounds
+ {{18.016999999999999, 128.304}, {87.438498999999993, 64}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ NSKern
+ 0.0
+ Size
+ 9
+
+ ID
+ 58
+ Style
+
+ fill
+
+ Color
+
+ b
+ 0.92103439569473267
+ g
+ 0.92104595899581909
+ r
+ 0.9210243821144104
+ space
+ srgb
+
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 0
+ Pad
+ 2
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0
+
+\f0\fs18 \cf0 \expnd0\expndtw0\kerning0
+"reader" is a DDSI reader, which is a proxy for a local DCPS reader; "proxy writer" is a proxy for a remote DDSI writer.}
+ VerticalPad
+ 2
+
+ TextPlacement
+ 0
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ Head
+
+ ID
+ 60
+
+ ID
+ 59
+ Points
+
+ {140.62276032880649, 211.12398999999999}
+ {140.62276032880649, 189.43230199999999}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 83
+
+
+
+ Bounds
+ {{117.956, 143.59899999999999}, {45.333500000000001, 45.333302000000003}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ ID
+ 60
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 QOS}
+
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ Head
+
+ ID
+ 62
+
+ ID
+ 61
+ Points
+
+ {412.13173999999998, 211.74001000000001}
+ {412.13173999999998, 177.99230199999997}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 66
+
+
+
+ Bounds
+ {{389.46499999999997, 132.15899999999999}, {45.333500000000001, 45.333302000000003}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ ID
+ 62
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 QOS}
+
+
+
+ Bounds
+ {{289.33400999999998, 298.79998999999998}, {262.71201000000002, 64}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 12
+
+ ID
+ 63
+ Style
+
+ fill
+
+ Color
+
+ b
+ 0.92103439569473267
+ g
+ 0.92104595899581909
+ r
+ 0.9210243821144104
+ space
+ srgb
+
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 0
+ Pad
+ 2
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0
+
+\f0\fs18 \cf0 proxy-writer \'96\'a0reader matches switch between not-in-sync and in-sync; the general idea being that the in-sync ones are only relevant to heartbeat processing and need not be touched by Data(Frag) processing. ("Too new" data always gets stored in the primary reorder admin, whereas the not-in-sync ones are generally interested in old data and track old data in the secondary reorder admins.)}
+ VerticalPad
+ 2
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{177.16535593815675, 23.140271999999968}, {188.27699000000001, 114}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 12
+
+ ID
+ 64
+ Style
+
+ fill
+
+ Color
+
+ b
+ 0.92103439569473267
+ g
+ 0.92104595899581909
+ r
+ 0.9210243821144104
+ space
+ srgb
+
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 0
+ Pad
+ 2
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0
+
+\f0\fs18 \cf0 discovery maintains the set of readers that match the proxy writer and an array of reader pointers that the data from this proxy writer must be delivered to. This should be versioned, so partition changes are (can be) precise. Currently there is no versioning.\
+\
+implementation: possibly by using the sequence number of the writer data as a version number: that allows for a very simple, parallel, garbage collector for these sets.}
+ VerticalPad
+ 2
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{6, 276.63101}, {98.4011, 94}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 12
+
+ ID
+ 65
+ Style
+
+ fill
+
+ Color
+
+ b
+ 0.92103439569473267
+ g
+ 0.92104595899581909
+ r
+ 0.9210243821144104
+ space
+ srgb
+
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 0
+ Pad
+ 2
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0
+
+\f0\fs18 \cf0 guid hash table maps all (local & proxy) endpoint and participant guids to the corresponding object. Pointers to such objects must be derived from the guid hash, and may not be retained across thread liveliness state updates.}
+ VerticalPad
+ 2
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{389.46499999999997, 212.24001000000001}, {45.333500000000001, 45.333302000000003}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ ID
+ 66
+ Magnets
+
+ {-0.59628397, -1.1925699999999999}
+ {0, -1.3333299999999999}
+ {0.59628397, -1.1925699999999999}
+ {1.1925699999999999, -0.59628599999999998}
+ {1.3333299999999999, 0}
+ {1.1925699999999999, 0.59628499000000001}
+ {0.59628499000000001, 1.1925699999999999}
+ {0, 1.3333299999999999}
+ {-0.59628499000000001, 1.1925699999999999}
+ {-1.1925699999999999, 0.59628397}
+ {-1.3333299999999999, 0}
+ {-1.1925699999999999, -0.59628599999999998}
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 reader}
+
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ Head
+
+ ID
+ 83
+
+ ID
+ 67
+ Points
+
+ {63.728299999990455, 234.2911163014075}
+ {117.45600000000954, 234.29078419910493}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 68
+
+
+
+ Bounds
+ {{17.8948, 196.79400999999999}, {45.333500000000001, 74.994499000000005}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ ID
+ 68
+ Style
+
+ fill
+
+ Color
+
+ space
+ gg22
+ w
+ 1
+
+ FillType
+ 3
+ GradientColor
+
+ space
+ gg22
+ w
+ 0.723367
+
+
+ stroke
+
+ Color
+
+ space
+ gg22
+ w
+ 0.0
+
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 guid\
+hash table}
+
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ Head
+
+ ID
+ 47
+
+ ID
+ 69
+ Points
+
+ {158.05976234571273, 211.22513738653203}
+ {174.60985745015466, 189.3328389315962}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 83
+
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ Head
+
+ ID
+ 72
+
+ ID
+ 70
+ Points
+
+ {249.70861679276592, 377.27424434787207}
+ {249.39359963214633, 396.4220676521287}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 78
+
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ Head
+
+ ID
+ 73
+
+ ID
+ 71
+ Points
+
+ {196.84924349410949, 318.37903247743765}
+ {213.71547764882561, 396.43327952256243}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 76
+
+
+
+ Bounds
+ {{233.58700999999999, 396.92200000000003}, {31.333500000000001, 16}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ ID
+ 72
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 rdata}
+
+
+
+ Bounds
+ {{199.88300000000001, 396.92200000000003}, {31.333500000000001, 16}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ ID
+ 73
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 rdata}
+
+
+
+ Bounds
+ {{133.34299999999999, 396.47899999999998}, {31.333500000000001, 16}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ ID
+ 74
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 rmsg}
+
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ Head
+
+ ID
+ 76
+
+ ID
+ 75
+ Points
+
+ {159.99908290286137, 257.34002294788536}
+ {172.46941661371221, 272.17427905609588}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 83
+
+
+
+ Bounds
+ {{169.179, 272.55700999999999}, {45.333500000000001, 45.333302000000003}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ ID
+ 76
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 primary reorder}
+
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ Head
+
+ ID
+ 78
+
+ ID
+ 77
+ Points
+
+ {250.08975000000001, 311.29329200000001}
+ {250.08975000000001, 330.94101000000001}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 81
+
+
+
+ Bounds
+ {{227.423, 331.44101000000001}, {45.333500000000001, 45.333302000000003}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ ID
+ 78
+ Text
+
+ Pad
+ 2
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 secondary reorder}
+
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ Head
+
+ ID
+ 81
+ Info
+ 4
+
+ ID
+ 79
+ Points
+
+ {198.48437668013054, 234.29064099999999}
+ {215.49001000000001, 238.66701}
+ {221.12299999999999, 268.66699}
+ {227.42299999999997, 288.62664100000001}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ LineType
+ 1
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 80
+ Position
+ 0.54522973299026489
+
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ Head
+
+ ID
+ 82
+
+ ID
+ 80
+ Points
+
+ {163.78949999999998, 234.29064099999999}
+ {227.42299999999997, 234.29064099999999}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 83
+
+
+
+ Bounds
+ {{227.423, 265.95999}, {45.333500000000001, 45.333302000000003}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ ID
+ 81
+ Magnets
+
+ {0, 1}
+ {0, -1}
+ {1, 0}
+ {-1, 0}
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 reader\
+match\
+(not in sync)}
+
+
+
+ Bounds
+ {{227.423, 211.62398999999999}, {45.333500000000001, 45.333302000000003}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ ID
+ 82
+ Magnets
+
+ {0, 1}
+ {0, -1}
+ {1, 0}
+ {-1, 0}
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 reader\
+match\
+(in sync)}
+
+
+
+ Bounds
+ {{117.956, 211.62398999999999}, {45.333500000000001, 45.333302000000003}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ ID
+ 83
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 proxy\
+writer}
+
+
+
+ Bounds
+ {{13.561500000000001, 385.48000999999999}, {54, 54}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 84
+ Shape
+ Circle
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 recv\
+thread(s)}
+
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ Head
+
+ ID
+ 47
+
+ ID
+ 85
+ Points
+
+ {150.46323671752378, 395.98616542975685}
+ {175.78998999999999, 248}
+ {187.29677339184155, 189.42292550360861}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Color
+
+ space
+ gg22
+ w
+ 0.57230675220489502
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ LineType
+ 1
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 74
+
+
+
+ Bounds
+ {{128.34299999999999, 389.81299000000001}, {143.495, 45.333302000000003}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ ID
+ 86
+ Text
+
+ Align
+ 2
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qr\partightenfactor0
+
+\f0\fs18 \cf0 rbuf}
+
+ TextPlacement
+ 2
+
+
+ Bounds
+ {{147.14097635155593, 617.44793288402707}, {162.5, 70.103797999999998}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ ID
+ 87
+ Line
+
+ ID
+ 42
+ Position
+ 0.55890226364135742
+ RotationType
+ 0
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Color
+
+ b
+ 0.92103439569473267
+ g
+ 0.92104595899581909
+ r
+ 0.9210243821144104
+ space
+ srgb
+
+ CornerRadius
+ 12
+ Pattern
+ 24
+ Width
+ 5
+
+
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ Head
+
+ ID
+ 37
+
+ ID
+ 88
+ Points
+
+ {40.56150648015673, 439.98002349999962}
+ {40.561544540965436, 601.4996900000001}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Cap
+ 0
+ Color
+
+ space
+ gg22
+ w
+ 0.57230675220489502
+
+ HeadArrow
+ FilledArrow
+ HeadScale
+ 0.5
+ Legacy
+
+ LineType
+ 1
+ TailArrow
+ 0
+ Width
+ 5
+
+
+ Tail
+
+ ID
+ 84
+
+
+
+ Bounds
+ {{6, 593.33300999999994}, {80.333297999999999, 181.10899000000001}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ archive
+
+ YnBsaXN0MDDUAQIDBAUI
+ ISJUJHRvcFgkb2JqZWN0
+ c1gkdmVyc2lvblkkYXJj
+ aGl2ZXLRBgdUcm9vdIAB
+ pQkKExceVSRudWxs1AsM
+ DQ4PEBESXxASTlNDdXN0
+ b21Db2xvclNwYWNlV05T
+ V2hpdGVcTlNDb2xvclNw
+ YWNlViRjbGFzc4ACRDAu
+ NQAQA4AE0hQOFRZUTlNJ
+ RBACgAPSGBkaHVgkY2xh
+ c3Nlc1okY2xhc3NuYW1l
+ ohscXE5TQ29sb3JTcGFj
+ ZVhOU09iamVjdFxOU0Nv
+ bG9yU3BhY2XSGBkfIKIg
+ HFdOU0NvbG9yEgABhqBf
+ EA9OU0tleWVkQXJjaGl2
+ ZXIACAARABYAHwAoADIA
+ NQA6ADwAQgBIAFEAZgBu
+ AHsAggCEAIkAiwCNAJIA
+ lwCZAJsAoACpALQAtwDE
+ AM0A2gDfAOIA6gDvAAAA
+ AAAAAgEAAAAAAAAAIwAA
+ AAAAAAAAAAAAAAAAAQE=
+
+ b
+ 0.5
+ g
+ 0.5
+ r
+ 0.5
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ ID
+ 89
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Color
+
+ b
+ 0.92103439569473267
+ g
+ 0.92104595899581909
+ r
+ 0.9210243821144104
+ space
+ srgb
+
+ CornerRadius
+ 12
+ Pattern
+ 24
+ Width
+ 5
+
+
+ Text
+
+ RTFD
+
+ BAtzdHJlYW10eXBlZIHoA4QBQISE
+ hBJOU0F0dHJpYnV0ZWRTdHJpbmcA
+ hIQITlNPYmplY3QAhZKEhIQITlNT
+ dHJpbmcBlIQBKylOSVk6IGRvbmUg
+ YnkgcmVjdiBhbmQgdGltZWQtZXZl
+ bnQgdGhyZWFkc4aEAmlJASmShISE
+ DE5TRGljdGlvbmFyeQCUhAFpA5KE
+ lpYHTlNDb2xvcoaShISEB05TQ29s
+ b3IAlIQBYwGEBGZmZmaDc4AAP4Nz
+ gAA/g3OAAD8BhpKElpYQTlNQYXJh
+ Z3JhcGhTdHlsZYaShISEF05TTXV0
+ YWJsZVBhcmFncmFwaFN0eWxlAISE
+ EE5TUGFyYWdyYXBoU3R5bGUAlIQE
+ Q0NAUwIAhISEB05TQXJyYXkAlJkM
+ koSEhAlOU1RleHRUYWIAlIQCQ2YA
+ HIaShKOiADiGkoSjogBUhpKEo6IA
+ cIaShKOiAIGMAIaShKOiAIGoAIaS
+ hKOiAIHEAIaShKOiAIHgAIaShKOi
+ AIH8AIaShKOiAIEYAYaShKOiAIE0
+ AYaShKOiAIFQAYaGAIaShJaWBk5T
+ Rm9udIaShISEBk5TRm9udB6UmSiE
+ BVs0MGNdBgAAACAAAAD//kcAaQBs
+ AGwAUwBhAG4AcwAtAEkAdABhAGwA
+ aQBjAIQBZgmbAJsBmwCbAIaGhg==
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;\red128\green128\blue128;}
+{\*\expandedcolortbl;;\csgenericrgb\c50196\c50196\c50196;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\i\fs18 \cf2 NIY: done by recv and timed-event threads}
+
+ TextPlacement
+ 2
+
+
+ GridInfo
+
+ HPages
+ 1
+ KeepToScale
+
+ Layers
+
+
+ Artboards
+
+ Lock
+
+ Name
+ Layer 1
+ Print
+
+ View
+
+
+
+ LayoutInfo
+
+ Animate
+ NO
+ circoMinDist
+ 18
+ circoSeparation
+ 0.0
+ layoutEngine
+ dot
+ neatoLineLength
+ 0.20000000298023224
+ neatoSeparation
+ 0.0
+ twopiSeparation
+ 0.0
+
+ Orientation
+ 2
+ PrintOnePage
+
+ RowAlign
+ 1
+ RowSpacing
+ 36
+ SheetTitle
+ receive path
+ UniqueID
+ 1
+ VPages
+ 1
+ VisibleVoidKey
+ 1
+
+
+ ActiveLayerIndex
+ 0
+ AutoAdjust
+ 0
+ AutosizingMargin
+ 0
+ BackgroundGraphic
+
+ Bounds
+ {{0, 0}, {560, 783}}
+ Class
+ GraffleShapes.CanvasBackgroundGraphic
+ ID
+ 2
+ Style
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+
+ BaseZoom
+ 0
+ CanvasDimensionsOrigin
+ {0, 0}
+ CanvasOrigin
+ {0, 0}
+ CanvasSizingMode
+ 0
+ ColumnAlign
+ 1
+ ColumnSpacing
+ 36
+ DisplayScale
+ 1.0000 cm = 1.0000 cm
+ GraphicsList
+
+
+ Bounds
+ {{205.51181288826183, 4}, {105, 44}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ NSKern
+ 0.0
+ Size
+ 9
+
+ ID
+ 90
+ Style
+
+ fill
+
+ Color
+
+ b
+ 0.92103400000000002
+ g
+ 0.92104600000000003
+ r
+ 0.92102399999999995
+ space
+ srgb
+
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 0
+ Pad
+ 2
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0
+
+\f0\fs18 \cf0 \expnd0\expndtw0\kerning0
+The local delivery path is essentially the same for local writers & for proxy writers}
+ VerticalPad
+ 2
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{161.98620215266533, 120.53255256091083}, {11, 11}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 7
+
+ ID
+ 89
+ Line
+
+ ID
+ 87
+ Position
+ 0.6902184074515032
+ RotationType
+ 0
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 1
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs14 \cf0 set}
+ VerticalPad
+ 1
+
+ TextRelativeArea
+ {{0, 0.20000000000000001}, {1, 1}}
+ TextRotation
+ 318
+ Wrap
+ NO
+
+
+ Bounds
+ {{282.54424004962004, 53.285047113624294}, {11, 11}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 7
+
+ ID
+ 80
+ Line
+
+ ID
+ 83
+ Position
+ 0.74878783855631348
+ RotationType
+ 0
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 1
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs14 \cf0 set}
+ VerticalPad
+ 1
+
+ TextRelativeArea
+ {{0, 0.20000000000000001}, {1, 1}}
+ TextRotation
+ 54
+ Wrap
+ NO
+
+
+ Bounds
+ {{266.37113340975668, 102.20602185031524}, {14, 11}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 7
+
+ ID
+ 81
+ Line
+
+ ID
+ 82
+ Position
+ 0.67044006938962286
+ RotationType
+ 0
+
+ Style
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 1
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs14 \cf0 guid}
+ VerticalPad
+ 1
+
+ Wrap
+ NO
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 85
+ Info
+ 11
+
+ ID
+ 82
+ OrthogonalBarAutomatic
+
+ OrthogonalBarPoint
+ {0, 0}
+ OrthogonalBarPosition
+ -1
+ Points
+
+ {231.95590300000001, 107.70602185031524}
+ {293.72910499999995, 107.70602185031524}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ LineType
+ 2
+ Pattern
+ 24
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 88
+ Info
+ 3
+
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ Head
+
+ ID
+ 85
+
+ ID
+ 83
+ Points
+
+ {198.006567240723, 53.85569321713492}
+ {284.20932697965503, 52.868869311782149}
+ {305.06249957684031, 85.039370850315237}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 84
+
+
+
+ Bounds
+ {{152.17310000000001, 31.454248}, {45.333500000000001, 45.333302000000003}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ ID
+ 84
+ Text
+
+ Pad
+ 2
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 rdary}
+
+
+
+ Bounds
+ {{293.72910499999995, 85.039370850315237}, {45.333500000000001, 45.333302000000003}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ ID
+ 85
+ Magnets
+
+ {-0.59628397, -1.1925699999999999}
+ {0, -1.3333299999999999}
+ {0.59628397, -1.1925699999999999}
+ {1.1925699999999999, -0.59628599999999998}
+ {1.3333299999999999, 0}
+ {1.1925699999999999, 0.59628499000000001}
+ {0.59628499000000001, 1.1925699999999999}
+ {0, 1.3333299999999999}
+ {-0.59628499000000001, 1.1925699999999999}
+ {-1.1925699999999999, 0.59628397}
+ {-1.3333299999999999, 0}
+ {-1.1925699999999999, -0.59628599999999998}
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 reader}
+
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ Head
+
+ ID
+ 84
+
+ ID
+ 86
+ Points
+
+ {124.84920100000002, 166.86554325043181}
+ {164.58685314062498, 77.244633269003657}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 71
+ Info
+ 6
+
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ Head
+
+ ID
+ 88
+
+ ID
+ 87
+ Points
+
+ {124.84920100000002, 166.86554325043181}
+ {186.62240299999999, 107.70602185031524}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 71
+ Info
+ 6
+
+
+
+ Bounds
+ {{186.62240299999999, 85.039370850315237}, {45.333500000000001, 45.333302000000003}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ ID
+ 88
+ Magnets
+
+ {0, 1}
+ {0, -1}
+ {1, 0}
+ {-1, 0}
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 reader\
+match}
+
+
+
+ Bounds
+ {{339.29964999999999, 604.33960000000002}, {107.68214999999999, 64}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ NSKern
+ 0.0
+ Size
+ 9
+
+ ID
+ 3
+ Style
+
+ fill
+
+ Color
+
+ b
+ 0.92103439569473267
+ g
+ 0.92104595899581909
+ r
+ 0.9210243821144104
+ space
+ srgb
+
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 0
+ Pad
+ 2
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0
+
+\f0\fs18 \cf0 \expnd0\expndtw0\kerning0
+xpacks bundle xmsgs into DDSI messages, copying some things and leaving others as references; xmsgs included in an xpack are explicitly tracked. }
+ VerticalPad
+ 2
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{194.35883999999999, 424.00695999999999}, {115.22485, 74}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ NSKern
+ 0.0
+ Size
+ 9
+
+ ID
+ 4
+ Style
+
+ fill
+
+ Color
+
+ b
+ 0.92103439569473267
+ g
+ 0.92104595899581909
+ r
+ 0.9210243821144104
+ space
+ srgb
+
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 0
+ Pad
+ 2
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0
+
+\f0\fs18 \cf0 \expnd0\expndtw0\kerning0
+an xmsg for transmitting a sample references a serdata along with a base+length pair; large samples are fragmented "on-the-fly", each fragment references a different range of the CDR encoded data.}
+ VerticalPad
+ 2
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{86.416961999999998, 664.3999}, {134.14865, 64}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ NSKern
+ 0.0
+ Size
+ 9
+
+ ID
+ 5
+ Style
+
+ fill
+
+ Color
+
+ b
+ 0.92103439569473267
+ g
+ 0.92104595899581909
+ r
+ 0.9210243821144104
+ space
+ srgb
+
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 0
+ Pad
+ 2
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0
+
+\f0\fs18 \cf0 \expnd0\expndtw0\kerning0
+timed events: xmsgs for delayed transmission (delay can be 0), heartbeat, ack generation, automatic liveliness "participant message" generation, SPDP generation, &c.}
+ VerticalPad
+ 2
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{232.66701, 536.68402000000003}, {45.333500000000001, 45.333302000000003}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 7
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 xmsg}
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 71
+ Info
+ 17
+
+ ID
+ 8
+ Points
+
+ {53.737335611368145, 208.35143623190345}
+ {79.515701000000007, 189.53217272177744}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Cap
+ 0
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 9
+
+
+
+ Bounds
+ {{8, 187.69666000000001}, {45.333500000000001, 74.994499000000005}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ ID
+ 9
+ Style
+
+ fill
+
+ Color
+
+ space
+ gg22
+ w
+ 1
+
+ FillType
+ 3
+ GradientColor
+
+ space
+ gg22
+ w
+ 0.723367
+
+
+ stroke
+
+ Color
+
+ space
+ gg22
+ w
+ 0.0
+
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 DCPS writer}
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 76
+ Info
+ 8
+
+ ID
+ 10
+ Points
+
+ {502.02051000000012, 181.97664}
+ {482.40061000000003, 181.97664}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 11
+
+
+
+ Bounds
+ {{502.52051, 144.4794}, {45.333500000000001, 74.994499000000005}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ ID
+ 11
+ Style
+
+ fill
+
+ Color
+
+ space
+ gg22
+ w
+ 1
+
+ FillType
+ 3
+ GradientColor
+
+ space
+ gg22
+ w
+ 0.723367
+
+
+ stroke
+
+ Color
+
+ space
+ gg22
+ w
+ 0.0
+
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 guid\
+hash\
+table}
+
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ Head
+
+ ID
+ 71
+ Info
+ 19
+
+ ID
+ 12
+ Points
+
+ {53.72278161575921, 153.63051798608285}
+ {79.515701000000007, 174.42107540007834}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 13
+
+
+
+ Bounds
+ {{8, 97.548798000000005}, {45.333500000000001, 74.994499000000005}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ ID
+ 13
+ Style
+
+ fill
+
+ Color
+
+ space
+ gg22
+ w
+ 1
+
+ FillType
+ 3
+ GradientColor
+
+ space
+ gg22
+ w
+ 0.723367
+
+
+ stroke
+
+ Color
+
+ space
+ gg22
+ w
+ 0.0
+
+
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 guid\
+hash table}
+
+
+
+ Bounds
+ {{194.35884801294347, 173.27682119201882}, {11, 11}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 7
+
+ ID
+ 14
+ Line
+
+ ID
+ 15
+ Offset
+ 3.1998252868652344
+ Position
+ 0.79084980487823486
+ RotationType
+ 0
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 1
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs14 \cf0 set}
+ VerticalPad
+ 1
+
+ Wrap
+ NO
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ Head
+
+ ID
+ 22
+
+ ID
+ 15
+ Points
+
+ {124.84920100000002, 181.97662938339741}
+ {219.69609, 181.976651}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 71
+
+
+
+ Bounds
+ {{354.39987257153342, 173.09636614683313}, {11, 11}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 7
+
+ ID
+ 16
+ Line
+
+ ID
+ 17
+ Offset
+ 3.380279541015625
+ Position
+ 0.75425595045089722
+ RotationType
+ 2
+
+ Rotation
+ 359.99998781518309
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 1
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs14 \cf0 set}
+ VerticalPad
+ 1
+
+ Wrap
+ NO
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 23
+ Info
+ 3
+
+ ID
+ 17
+ Points
+
+ {436.56710999999996, 181.97662938339741}
+ {334.92092999999994, 181.976651}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 76
+
+
+
+ Bounds
+ {{389.42361918725231, 168.92107540007834}, {14, 11}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 7
+
+ ID
+ 18
+ Line
+
+ ID
+ 19
+ Position
+ 0.83690613508224487
+ RotationType
+ 0
+
+ Style
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 1
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs14 \cf0 guid}
+ VerticalPad
+ 1
+
+ Wrap
+ NO
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 76
+ Info
+ 19
+
+ ID
+ 19
+ OrthogonalBarAutomatic
+
+ OrthogonalBarPoint
+ {0, 0}
+ OrthogonalBarPosition
+ 106
+ Points
+
+ {242.36284000000001, 159.31}
+ {326.25967000000003, 140.89899}
+ {381.56009, 168.83788999999999}
+ {436.56710999999996, 174.42107540007834}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ LineType
+ 2
+ Pattern
+ 24
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 22
+ Info
+ 2
+
+
+
+ Bounds
+ {{155.60653654269635, 168.92107540007834}, {14, 11}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 7
+
+ ID
+ 20
+ Line
+
+ ID
+ 21
+ Position
+ 0.83316546678543091
+ RotationType
+ 0
+
+ Style
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 1
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs14 \cf0 guid}
+ VerticalPad
+ 1
+
+ Wrap
+ NO
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 71
+ Info
+ 7
+
+ ID
+ 21
+ OrthogonalBarAutomatic
+
+ OrthogonalBarPoint
+ {0, 0}
+ OrthogonalBarPosition
+ 106.5
+ Points
+
+ {312.25417999999996, 159.31}
+ {201.61904999999999, 168.24871999999999}
+ {124.84920100000002, 174.42107540007834}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ LineType
+ 2
+ Pattern
+ 24
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 23
+ Info
+ 2
+
+
+
+ Bounds
+ {{219.69609, 159.31}, {45.333500000000001, 45.333302000000003}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ ID
+ 22
+ Magnets
+
+ {0, 1}
+ {0, -1}
+ {1, 0}
+ {-1, 0}
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 proxy reader\
+match\
+}
+
+
+
+ Bounds
+ {{289.58742999999998, 159.31}, {45.333500000000001, 45.333302000000003}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 9
+
+ ID
+ 23
+ Magnets
+
+ {0, 1}
+ {0, -1}
+ {1, 0}
+ {-1, 0}
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 writer\
+match}
+
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ Head
+
+ ID
+ 7
+
+ ID
+ 25
+ Points
+
+ {185.16690687803646, 559.5556531071436}
+ {232.16701213356112, 559.41834923153647}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Cap
+ 0
+ Color
+
+ space
+ gg22
+ w
+ 0.57230675220489502
+
+ HeadArrow
+ FilledArrow
+ HeadScale
+ 0.5
+ Legacy
+
+ LineType
+ 1
+ TailArrow
+ 0
+ Width
+ 10
+
+
+ Tail
+
+ ID
+ 45
+
+
+
+ Bounds
+ {{308.46116800935204, 513.48852054677764}, {21, 8}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 7
+
+ ID
+ 26
+ Line
+
+ ID
+ 29
+ Position
+ 0.16640891134738922
+ RotationType
+ 0
+
+ Style
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0.0
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs14 \cf0 copied}
+ VerticalPad
+ 0.0
+
+ Wrap
+ NO
+
+
+ Bounds
+ {{192.0417608221714, 523.07330981040036}, {34, 8}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 7
+
+ ID
+ 27
+ Line
+
+ ID
+ 30
+ Position
+ 0.18438893556594849
+ RotationType
+ 2
+
+ Rotation
+ 33.52146558715998
+ Style
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0.0
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs14 \cf0 refcounted}
+ VerticalPad
+ 0.0
+
+ Wrap
+ NO
+
+
+ Bounds
+ {{168.71217330582277, 460.66808474108529}, {34, 8}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ Helvetica
+ Size
+ 7
+
+ ID
+ 28
+ Line
+
+ ID
+ 33
+ Position
+ 0.5791168212890625
+ RotationType
+ 2
+
+ Rotation
+ 82.311990311813474
+ Style
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0.0
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs14 \cf0 refcounted}
+ VerticalPad
+ 0.0
+
+ Wrap
+ NO
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 53
+
+ ID
+ 29
+ Points
+
+ {278.39072141550008, 540.87810296055613}
+ {354.39987000000002, 479.98178000000001}
+ {448.81436238129749, 270.46115667419019}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ LineType
+ 1
+ Pattern
+ 1
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 7
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 73
+
+ ID
+ 30
+ Points
+
+ {232.26851413354927, 541.87096300035341}
+ {186.89046999999999, 507.48178000000001}
+ {119.032032072812, 414.57008739123728}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ LineType
+ 1
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 7
+
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ Head
+
+ ID
+ 47
+
+ ID
+ 31
+ Points
+
+ {282.83377349999432, 696.3998802730365}
+ {330.02844000000334, 696.39984641823617}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Cap
+ 0
+ Color
+
+ space
+ gg22
+ w
+ 0.57230675220489502
+
+ HeadArrow
+ FilledArrow
+ HeadScale
+ 0.5
+ Legacy
+
+ LineType
+ 1
+ TailArrow
+ 0
+ Width
+ 10
+
+
+ Tail
+
+ ID
+ 77
+
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ Head
+
+ ID
+ 77
+
+ ID
+ 32
+ Points
+
+ {255.33374463816884, 582.51732200000004}
+ {255.33374463816884, 668.89988650000328}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Color
+
+ space
+ gg22
+ w
+ 0.57230675220489502
+
+ HeadArrow
+ FilledArrow
+ HeadScale
+ 0.5
+ Legacy
+
+ LineType
+ 1
+ TailArrow
+ FilledArrow
+ TailScale
+ 0.5
+ Width
+ 10
+
+
+ Tail
+
+ ID
+ 7
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 35
+
+ ID
+ 33
+ Points
+
+ {232.46163611804121, 536.32931886240578}
+ {192.66022000000001, 496.26821999999999}
+ {178.07878587930855, 391.99547378953679}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ LineType
+ 1
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 7
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 35
+
+ ID
+ 34
+ Points
+
+ {174.83983799510429, 330.23830199999998}
+ {174.83983799510429, 345.66699}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 36
+
+
+
+ Bounds
+ {{152.17310000000001, 346.16699}, {45.333500000000001, 45.333302000000003}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 35
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 ser.data}
+
+
+
+ Bounds
+ {{152.17310000000001, 284.40499999999997}, {45.333500000000001, 45.333302000000003}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 36
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 whc node}
+
+
+
+ Bounds
+ {{274.60730000000001, 211.32973999999999}, {123.92361, 74}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ NSKern
+ 0.0
+ Size
+ 9
+
+ ID
+ 37
+ Style
+
+ fill
+
+ Color
+
+ b
+ 0.92103439569473267
+ g
+ 0.92104595899581909
+ r
+ 0.9210243821144104
+ space
+ srgb
+
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 0
+ Pad
+ 2
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0
+
+\f0\fs18 \cf0 \expnd0\expndtw0\kerning0
+ack info: highest sequence number ack'd so far; writer can drop non-TL msgs from the WHC with sequence numbers less than the minimum over all matched readers; unreliable readers have it fixed at MAX.}
+ VerticalPad
+ 2
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{202.68253000000001, 292.01616999999999}, {141.67798999999999, 54}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ NSKern
+ 0.0
+ Size
+ 9
+
+ ID
+ 38
+ Style
+
+ fill
+
+ Color
+
+ b
+ 0.92103439569473267
+ g
+ 0.92104595899581909
+ r
+ 0.9210243821144104
+ space
+ srgb
+
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 0
+ Pad
+ 2
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0
+
+\f0\fs18 \cf0 \expnd0\expndtw0\kerning0
+writer history indexed by sequence number (seqidx; for retransmitting on request) and by key (tlidx)\'97key used only for retaining/dropping data when new data comes in}
+ VerticalPad
+ 2
+
+ TextPlacement
+ 0
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ Head
+
+ ID
+ 47
+
+ ID
+ 39
+ Points
+
+ {271.80967307477016, 582.42423212125595}
+ {336.71927727863067, 673.32636987577894}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Cap
+ 0
+ Color
+
+ space
+ gg22
+ w
+ 0.57230675220489502
+
+ HeadArrow
+ FilledArrow
+ HeadScale
+ 0.5
+ Legacy
+
+ LineType
+ 1
+ TailArrow
+ 0
+ Width
+ 10
+
+
+ Tail
+
+ ID
+ 7
+
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ Head
+
+ ID
+ 41
+
+ ID
+ 40
+ Points
+
+ {376.36193999999989, 696.39994513176407}
+ {423.55664000000093, 696.39997392062583}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Cap
+ 0
+ Color
+
+ space
+ gg22
+ w
+ 0.57230675220489502
+
+ HeadArrow
+ FilledArrow
+ HeadScale
+ 0.5
+ Legacy
+
+ LineType
+ 1
+ TailArrow
+ 0
+ Width
+ 10
+
+
+ Tail
+
+ ID
+ 47
+
+
+
+ Bounds
+ {{424.05664000000002, 673.73328000000004}, {45.333500000000001, 45.333302000000003}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 41
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 sockets}
+
+
+
+ Bounds
+ {{130.66701, 532.63598999999999}, {54, 54}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 45
+ Shape
+ Circle
+ Text
+
+ Pad
+ 1
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 application writes}
+ VerticalPad
+ 1
+
+
+
+ Bounds
+ {{289.58742999999998, 536.96996999999999}, {101.82944000000001, 44}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ NSKern
+ 0.0
+ Size
+ 9
+
+ ID
+ 46
+ Style
+
+ fill
+
+ Color
+
+ b
+ 0.92103439569473267
+ g
+ 0.92104595899581909
+ r
+ 0.9210243821144104
+ space
+ srgb
+
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 0
+ Pad
+ 2
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0
+
+\f0\fs18 \cf0 \expnd0\expndtw0\kerning0
+an xmsg either references the destination address set of a writer, or a locator of a proxy-reader.}
+ VerticalPad
+ 2
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{330.52843999999999, 673.73328000000004}, {45.333500000000001, 45.333302000000003}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 47
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 xpacks}
+
+
+
+ Bounds
+ {{54.878295999999999, 271.20758000000001}, {86.564301, 84}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ NSKern
+ 0.0
+ Size
+ 9
+
+ ID
+ 48
+ Style
+
+ fill
+
+ Color
+
+ b
+ 0.92103439569473267
+ g
+ 0.92104595899581909
+ r
+ 0.9210243821144104
+ space
+ srgb
+
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 0
+ Pad
+ 2
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0
+
+\f0\fs18 \cf0 \expnd0\expndtw0\kerning0
+serdata is CDR encoded data and a separate copy of its key (except for discovery message where it uses the DDSI "parameter-list" encoding).}
+ VerticalPad
+ 2
+
+ TextPlacement
+ 0
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 50
+
+ ID
+ 49
+ Points
+
+ {242.36284000000001, 204.64330200000001}
+ {242.36284000000001, 220.57100000000003}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Cap
+ 0
+ GapRatio
+ 0.5
+ HeadArrow
+ 0
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 22
+
+
+
+ Bounds
+ {{219.69609, 221.071}, {45.333500000000001, 45.333302000000003}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 50
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 ack info}
+
+
+
+ Bounds
+ {{96.682451000000015, 344.15050116428029}, {11, 11}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 7
+
+ ID
+ 51
+ Line
+
+ ID
+ 72
+ Position
+ 0.88586634397506714
+ RotationType
+ 0
+
+ Style
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 1
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs14 \cf0 set}
+ VerticalPad
+ 1
+
+ Wrap
+ NO
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 53
+
+ ID
+ 52
+ Points
+
+ {459.23385999999999, 205.14330200000001}
+ {459.23385999999999, 224.172}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 76
+
+
+
+ Bounds
+ {{436.56711000000001, 224.672}, {45.333500000000001, 45.333302000000003}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 53
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 locators}
+
+
+
+ Bounds
+ {{159.79105032962127, 276.04747401602316}, {11, 11}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 7
+
+ ID
+ 54
+ Line
+
+ ID
+ 74
+ Offset
+ -9.0140838623046875
+ Position
+ 0.83510637283325195
+ RotationType
+ 0
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 1
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs14 \cf0 set}
+ VerticalPad
+ 1
+
+ Wrap
+ NO
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ Head
+
+ ID
+ 75
+
+ ID
+ 55
+ Points
+
+ {125.20452170460942, 197.43953594734526}
+ {150.5357792953906, 222.51817250259387}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 71
+
+
+
+ Bounds
+ {{486.33899000000002, 4}, {68, 16}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ archive
+
+ YnBsaXN0MDDUAQIDBAUI
+ ISJUJHRvcFgkb2JqZWN0
+ c1gkdmVyc2lvblkkYXJj
+ aGl2ZXLRBgdUcm9vdIAB
+ pQkKExceVSRudWxs1AsM
+ DQ4PEBESXxASTlNDdXN0
+ b21Db2xvclNwYWNlV05T
+ V2hpdGVcTlNDb2xvclNw
+ YWNlViRjbGFzc4ACRTAu
+ NzUAEAOABNIUDhUWVE5T
+ SUQQAoAD0hgZGh1YJGNs
+ YXNzZXNaJGNsYXNzbmFt
+ ZaIbHFxOU0NvbG9yU3Bh
+ Y2VYTlNPYmplY3RcTlND
+ b2xvclNwYWNl0hgZHyCi
+ IBxXTlNDb2xvchIAAYag
+ XxAPTlNLZXllZEFyY2hp
+ dmVyAAgAEQAWAB8AKAAy
+ ADUAOgA8AEIASABRAGYA
+ bgB7AIIAhACKAIwAjgCT
+ AJgAmgCcAKEAqgC1ALgA
+ xQDOANsA4ADjAOsA8AAA
+ AAAAAAIBAAAAAAAAACMA
+ AAAAAAAAAAAAAAAAAAEC
+
+ b
+ 0.75
+ g
+ 0.75
+ r
+ 0.75
+
+ Font
+ GillSans-Bold
+ Size
+ 9
+
+ ID
+ 57
+ Style
+
+ fill
+
+ Color
+
+ space
+ gg22
+ w
+ 0.31799882650375366
+
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 2
+ Pad
+ 2
+ RTFD
+
+ BAtzdHJlYW10eXBlZIHoA4QBQISE
+ hBJOU0F0dHJpYnV0ZWRTdHJpbmcA
+ hIQITlNPYmplY3QAhZKEhIQITlNT
+ dHJpbmcBlIQBKw10cmFuc21pdCBw
+ YXRohoQCaUkBDZKEhIQMTlNEaWN0
+ aW9uYXJ5AJSEAWkDkoSWlgdOU0Nv
+ bG9yhpKEhIQHTlNDb2xvcgCUhAFj
+ AYQEZmZmZoPGvz8/g8a/Pz+Dxr8/
+ PwGGkoSWlhBOU1BhcmFncmFwaFN0
+ eWxlhpKEhIQXTlNNdXRhYmxlUGFy
+ YWdyYXBoU3R5bGUAhIQQTlNQYXJh
+ Z3JhcGhTdHlsZQCUhARDQ0BTAQCE
+ hIQHTlNBcnJheQCUmQyShISECU5T
+ VGV4dFRhYgCUhAJDZgAchpKEo6IA
+ OIaShKOiAFSGkoSjogBwhpKEo6IA
+ gYwAhpKEo6IAgagAhpKEo6IAgcQA
+ hpKEo6IAgeAAhpKEo6IAgfwAhpKE
+ o6IAgRgBhpKEo6IAgTQBhpKEo6IA
+ gVABhoYAhpKElpYGTlNGb250hpKE
+ hIQGTlNGb250HpSZJIQFWzM2Y10G
+ AAAAHAAAAP/+RwBpAGwAbABTAGEA
+ bgBzAC0AQgBvAGwAZACEAWYJmwCb
+ AZsAmwCGhoY=
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;\red191\green191\blue191;}
+{\*\expandedcolortbl;;\csgenericrgb\c74902\c74902\c74902;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qr\partightenfactor0
+
+\f0\b\fs18 \cf2 transmit path}
+ VerticalPad
+ 2
+
+ TextPlacement
+ 0
+ Wrap
+ NO
+
+
+ Bounds
+ {{8, 27.120899000000001}, {105, 54}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ NSKern
+ 0.0
+ Size
+ 9
+
+ ID
+ 58
+ Style
+
+ fill
+
+ Color
+
+ b
+ 0.92103439569473267
+ g
+ 0.92104595899581909
+ r
+ 0.9210243821144104
+ space
+ srgb
+
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 0
+ Pad
+ 2
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0
+
+\f0\fs18 \cf0 \expnd0\expndtw0\kerning0
+"writer" is a DDSI writer, which is a proxy for a local DCPS writer; "proxy reader" is a proxy for a remote DDSI reader.}
+ VerticalPad
+ 2
+
+ TextPlacement
+ 0
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ Head
+
+ ID
+ 60
+
+ ID
+ 59
+ Points
+
+ {459.23385999999999, 159.31}
+ {459.23385999999999, 139.78180400000002}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 76
+
+
+
+ Bounds
+ {{436.56711000000001, 93.948502000000005}, {45.333500000000001, 45.333302000000003}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 60
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 QOS}
+
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ Head
+
+ ID
+ 62
+
+ ID
+ 61
+ Points
+
+ {102.18245820555902, 159.31}
+ {102.18245820555902, 143.38209999999998}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 71
+
+
+
+ Bounds
+ {{79.515701000000007, 97.548798000000005}, {45.333500000000001, 45.333302000000003}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 62
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 QOS}
+
+
+
+ Bounds
+ {{79.515701000000007, 159.31}, {45.333500000000001, 45.333302000000003}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 71
+ Magnets
+
+ {-0.73959976000000005, -1.1094006999999999}
+ {-0.42163655, -1.2649112}
+ {1.5894557e-07, -1.3333333999999999}
+ {0.42163669999999998, -1.2649112}
+ {0.73959993999999996, -1.1094006000000001}
+ {1.1094002000000001, -0.73960048}
+ {1.2649106999999999, -0.42163831000000002}
+ {1.3333333999999999, -1.2715658000000001e-06}
+ {1.2649113000000001, 0.42163669999999998}
+ {1.1094002000000001, 0.73960048}
+ {0.73960018000000005, 1.1094005}
+ {0.42163718, 1.2649109000000001}
+ {0, 1.3333333999999999}
+ {-0.42163727000000001, 1.2649109000000001}
+ {-0.73960011999999997, 1.1094004}
+ {-1.1094002000000001, 0.73960048}
+ {-1.2649115, 0.42163557000000002}
+ {-1.3333333999999999, -1.2715658000000001e-06}
+ {-1.2649106999999999, -0.42163831000000002}
+ {-1.1094002000000001, -0.73960048}
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 writer}
+
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ Head
+
+ ID
+ 73
+
+ ID
+ 72
+ Points
+
+ {102.18245100000001, 204.64330200000001}
+ {102.18245100000001, 368.33301}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 71
+
+
+
+ Bounds
+ {{79.515701000000007, 368.83301}, {45.333500000000001, 45.333302000000003}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 73
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 dest. locators}
+
+
+
+ Class
+ LineGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ Head
+
+ ID
+ 36
+
+ ID
+ 74
+ Points
+
+ {174.03682744545512, 268.47719516626319}
+ {174.35580565619605, 283.90510910526706}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 75
+
+
+
+ Bounds
+ {{150.89109999999999, 222.64400000000001}, {45.333500000000001, 45.333302000000003}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 75
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 writer history}
+
+
+
+ Bounds
+ {{436.56711000000001, 159.31}, {45.333500000000001, 45.333302000000003}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 76
+ Magnets
+
+ {-0.73960071999999999, -1.1093999999999999}
+ {-0.42163524000000002, -1.2649117999999999}
+ {0, -1.3333333999999999}
+ {0.42163524000000002, -1.2649117999999999}
+ {0.73959923000000005, -1.1094010000000001}
+ {1.1094002000000001, -0.73960048}
+ {1.2649106999999999, -0.42163831000000002}
+ {1.3333333999999999, -1.2715658000000001e-06}
+ {1.2649113000000001, 0.42163669999999998}
+ {1.1094002000000001, 0.73960048}
+ {0.73959976000000005, 1.1094006999999999}
+ {0.42163557000000002, 1.2649115}
+ {0, 1.3333333999999999}
+ {-0.42163557000000002, 1.2649115}
+ {-0.73959976000000005, 1.1094006999999999}
+ {-1.1094002000000001, 0.73960048}
+ {-1.2649115, 0.42163557000000002}
+ {-1.3333333999999999, -1.2715658000000001e-06}
+ {-1.2649106999999999, -0.42163831000000002}
+ {-1.1094002000000001, -0.73960048}
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 proxy\
+reader}
+
+
+
+ Bounds
+ {{228.33376000000001, 669.3999}, {54, 54}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 77
+ Shape
+ Circle
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 timed events\
+thread}
+
+
+
+ GridInfo
+
+ HPages
+ 1
+ KeepToScale
+
+ Layers
+
+
+ Artboards
+
+ Lock
+
+ Name
+ Layer 1
+ Print
+
+ View
+
+
+
+ LayoutInfo
+
+ Animate
+ NO
+ circoMinDist
+ 18
+ circoSeparation
+ 0.0
+ layoutEngine
+ dot
+ neatoLineLength
+ 0.20000000298023224
+ neatoSeparation
+ 0.0
+ twopiSeparation
+ 0.0
+
+ Orientation
+ 2
+ PrintOnePage
+
+ RowAlign
+ 1
+ RowSpacing
+ 36
+ SheetTitle
+ transmit path
+ UniqueID
+ 2
+ VPages
+ 1
+ VisibleVoidKey
+ 1
+
+
+ ActiveLayerIndex
+ 0
+ AutoAdjust
+ 0
+ AutosizingMargin
+ 0
+ BackgroundGraphic
+
+ Bounds
+ {{0, 0}, {560, 783}}
+ Class
+ GraffleShapes.CanvasBackgroundGraphic
+ ID
+ 2
+ Style
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+
+ BaseZoom
+ 0
+ CanvasDimensionsOrigin
+ {0, 0}
+ CanvasOrigin
+ {0, 0}
+ CanvasSizingMode
+ 0
+ ColumnAlign
+ 1
+ ColumnSpacing
+ 36
+ DisplayScale
+ 1.0000 cm = 1.0000 cm
+ GraphicsList
+
+
+ Bounds
+ {{339, 14}, {89, 64}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 12
+
+ ID
+ 3
+ Style
+
+ fill
+
+ Color
+
+ b
+ 0.92103439569473267
+ g
+ 0.92104595899581909
+ r
+ 0.9210243821144104
+ space
+ srgb
+
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 0
+ Pad
+ 2
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0
+
+\f0\fs18 \cf0 Note: there is no conceptual difference between light grey arrows and black arrows: it is merely to reduce visual clutter}
+ VerticalPad
+ 2
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{12.833299999999999, 452.20999}, {228.36098999999999, 264}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 12
+
+ ID
+ 4
+ Style
+
+ fill
+
+ Color
+
+ b
+ 0.92103439569473267
+ g
+ 0.92104595899581909
+ r
+ 0.9210243821144104
+ space
+ srgb
+
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 0
+ Pad
+ 2
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0
+
+\f0\fs18 \cf0 A receive thread has a pool of receive buffers,
+\i rbuf
+\i0 s, each large enough to contain several network packets and derived administrative data.\
+Before requesting a packet from the kernel, a receive thread allocates an
+\i rmsg
+\i0 from the buffer, which is the administrative entity representing a raw packet along with additional derived data.\
+During processing the packet, an
+\i rdata
+\i0 is created for each Data/DataFrag submessage. These
+\i rdata
+\i0 entries contain a reference to the
+\i rmsg
+\i0 and a byte range within the packet at which the serialized payload is stored.\
+For each sample (i.e., sequence number), a
+\i sampleinfo
+\i0 containing various metadata on the sample is allocated. The
+\i sampleinfo
+\i0 includes a reference to the receiver state as described in the DDSI specification, which contains, a.o., time stamps and source addresses.\
+For fragmented data,
+\i rdata
+\i0 are chained together into a
+\i fragchain
+\i0 , using interval tree pointed to by a
+\i sample.defrag
+\i0 .\
+Completed samples that have been received out of order are linked into chains of consecutive samples, with the sample chains organized into an interval tree using
+\i sample.reorder
+\i0 .\
+Once a sample has been delivered, the reference count of the
+\i rmsg
+\i0 s pointed to by its fragchain are decremented, eventually freeing the original network packets and recovering space in the
+\i rbuf
+\i0 s.\
+}
+ VerticalPad
+ 2
+
+ TextPlacement
+ 0
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 35
+ Position
+ 0.70083564519882202
+
+ ID
+ 5
+ OrthogonalBarAutomatic
+
+ OrthogonalBarPoint
+ {0, 0}
+ OrthogonalBarPosition
+ -1
+ Points
+
+ {360.86098999999996, 323.33379000000002}
+ {339.66699, 323.3334619477705}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Cap
+ 0
+ HeadArrow
+ 0
+ Legacy
+
+ LineType
+ 2
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 12
+ Info
+ 4
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 38
+ Position
+ 0.53273677825927734
+
+ ID
+ 6
+ Points
+
+ {360.3611650689208, 333.32016985289243}
+ {335.66699, 332.66652308775349}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Cap
+ 0
+ Color
+
+ b
+ 0.91984850168228149
+ g
+ 0.9198601245880127
+ r
+ 0.91983860731124878
+ space
+ srgb
+
+ HeadArrow
+ 0
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 11
+ Info
+ 12
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 63
+ Info
+ 9
+
+ ID
+ 7
+ OrthogonalBarAutomatic
+
+ OrthogonalBarPoint
+ {0, 0}
+ OrthogonalBarPosition
+ 7.6970000000000312
+ Points
+
+ {360.86099000000002, 336.66680000000002}
+ {321.66699, 326.66699}
+ {253.07850999999999, 194.22258306394804}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Color
+
+ b
+ 0.92103439569473267
+ g
+ 0.92104595899581909
+ r
+ 0.9210243821144104
+ space
+ srgb
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ LineType
+ 2
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 11
+ Info
+ 11
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 12
+ Info
+ 3
+
+ ID
+ 8
+ OrthogonalBarAutomatic
+
+ OrthogonalBarPoint
+ {0, 0}
+ OrthogonalBarPosition
+ -1
+ Points
+
+ {458.68649000000005, 347.77852571205221}
+ {458.68649000000011, 323.33379000000002}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ LineType
+ 2
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 13
+ Info
+ 3
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 11
+ Info
+ 10
+
+ ID
+ 9
+ OrthogonalBarAutomatic
+
+ OrthogonalBarPoint
+ {0, 0}
+ OrthogonalBarPosition
+ -1
+ Points
+
+ {360.86099000000002, 347.77852571205221}
+ {360.86099000000002, 340.00019994409723}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ LineType
+ 2
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 13
+ Info
+ 8
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 13
+ Info
+ 7
+
+ ID
+ 10
+ OrthogonalBarAutomatic
+
+ OrthogonalBarPoint
+ {0, 0}
+ OrthogonalBarPosition
+ -1
+ Points
+
+ {458.68649000000005, 464.22209428794781}
+ {479, 464}
+ {478.33301, 405.33301}
+ {360.86099000000002, 352.22309428794779}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ LineType
+ 2
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 31
+ Info
+ 4
+
+
+
+ Bounds
+ {{360.86099000000002, 330}, {97.825500000000005, 13.333600000000001}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 11
+ Magnets
+
+ {-0.59628499000000001, -1.1925699999999999}
+ {0, -1.3333299999999999}
+ {0.59628499000000001, -1.1925699999999999}
+ {1.1925699999999999, -0.59628499000000001}
+ {1.3333299999999999, 0}
+ {1.1925699999999999, 0.59629202000000003}
+ {0.59628499000000001, 1.1925699999999999}
+ {0, 1.3333299999999999}
+ {-0.59628499000000001, 1.1925699999999999}
+ {-1.1925699999999999, 0.59628499000000001}
+ {-1.3333299999999999, 0}
+ {-1.1925699999999999, -0.59628499000000001}
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 rdata}
+
+
+
+ Bounds
+ {{360.86099000000002, 316.66699}, {97.825500000000005, 13.333600000000001}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 12
+ Magnets
+
+ {0, 1}
+ {0, -1}
+ {1, 0}
+ {-1, 0}
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 sampleinfo}
+
+
+
+ Bounds
+ {{360.86099000000002, 343.33400999999998}, {97.825500000000005, 13.333600000000001}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 13
+ Magnets
+
+ {-0.42163801000000001, -1.26491}
+ {0.42163699999999998, -1.26491}
+ {1.26491, -0.42164001000000001}
+ {1.26491, 0.42164001000000001}
+ {0.42163699999999998, 1.26491}
+ {-0.42163801000000001, 1.26491}
+ {-1.26491, 0.42164001000000001}
+ {-1.26491, -0.42164001000000001}
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 sample chain}
+
+
+
+ Bounds
+ {{378.02600000000001, 538}, {80.660399999999996, 13.333600000000001}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 14
+ Magnets
+
+ {0, 1}
+ {0, -1}
+ {1, 0}
+ {-1, 0}
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 lastchunk}
+
+
+
+ Bounds
+ {{378.02600000000001, 551.33300999999994}, {80.660399999999996, 13.333600000000001}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 15
+ Magnets
+
+ {0, 1}
+ {0, -1}
+ {1, 0}
+ {-1, 0}
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 chunk hdr}
+
+
+
+ Bounds
+ {{360.86099000000002, 510.66699}, {97.825500000000005, 54}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 16
+ Magnets
+
+ {-0.73960000000000004, -1.1093999999999999}
+ {-0.42163699999999998, -1.26491}
+ {0, -1.3333299999999999}
+ {0.42163699999999998, -1.26491}
+ {0.73960000000000004, -1.1093999999999999}
+ {1.1093999999999999, -0.73960000000000004}
+ {1.26491, -0.42163699999999998}
+ {1.3333299999999999, 0}
+ {1.26491, 0.42163699999999998}
+ {1.1093999999999999, 0.73960000000000004}
+ {0.73960000000000004, 1.1093999999999999}
+ {0.42163699999999998, 1.26491}
+ {0, 1.3333299999999999}
+ {-0.42163699999999998, 1.26491}
+ {-0.73960000000000004, 1.1093999999999999}
+ {-1.1093999999999999, 0.73960102000000005}
+ {-1.26491, 0.42163699999999998}
+ {-1.3333299999999999, -6.3578301000000001e-07}
+ {-1.26491, -0.42163801000000001}
+ {-1.1093999999999999, -0.73960000000000004}
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 rmsg\
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\fs14 \cf0 (counts refs by rdata)
+\fs18 \
+}
+ VerticalPad
+ 2
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{15.453099999999999, 151.31200000000001}, {205, 8}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ ID
+ 17
+ Line
+
+ ID
+ 18
+ Offset
+ -3.380281925201416
+ Position
+ 0.30319148302078247
+ RotationType
+ 2
+
+ Rotation
+ 270
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0.0
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs14 \cf0 large enough for storing & processing a largish number of packets}
+ VerticalPad
+ 0.0
+
+ Wrap
+ NO
+
+
+ Class
+ LineGraphic
+ ID
+ 18
+ Points
+
+ {121.333, 43.333401000000002}
+ {121.333, 412.66699}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ DimensionArrow
+ Legacy
+
+ TailArrow
+ DimensionArrow
+
+
+
+
+ Bounds
+ {{360.86099000000002, 564.66699000000006}, {97.825500000000005, 104}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ archive
+
+ YnBsaXN0MDDUAQIDBAUI
+ ISJUJHRvcFgkb2JqZWN0
+ c1gkdmVyc2lvblkkYXJj
+ aGl2ZXLRBgdUcm9vdIAB
+ pQkKExceVSRudWxs1AsM
+ DQ4PEBESXxASTlNDdXN0
+ b21Db2xvclNwYWNlV05T
+ V2hpdGVcTlNDb2xvclNw
+ YWNlViRjbGFzc4ACRDAu
+ NQAQA4AE0hQOFRZUTlNJ
+ RBACgAPSGBkaHVgkY2xh
+ c3Nlc1okY2xhc3NuYW1l
+ ohscXE5TQ29sb3JTcGFj
+ ZVhOU09iamVjdFxOU0Nv
+ bG9yU3BhY2XSGBkfIKIg
+ HFdOU0NvbG9yEgABhqBf
+ EA9OU0tleWVkQXJjaGl2
+ ZXIACAARABYAHwAoADIA
+ NQA6ADwAQgBIAFEAZgBu
+ AHsAggCEAIkAiwCNAJIA
+ lwCZAJsAoACpALQAtwDE
+ AM0A2gDfAOIA6gDvAAAA
+ AAAAAgEAAAAAAAAAIwAA
+ AAAAAAAAAAAAAAAAAQE=
+
+ b
+ 0.5
+ g
+ 0.5
+ r
+ 0.5
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 19
+ Style
+
+ fill
+
+ Color
+
+ b
+ 0.91984850168228149
+ g
+ 0.9198601245880127
+ r
+ 0.91983860731124878
+ space
+ srgb
+
+ FillType
+ 2
+ GradientAngle
+ 90
+ GradientColor
+
+ space
+ gg22
+ w
+ 0.921028
+
+
+
+ Text
+
+ RTFD
+
+ BAtzdHJlYW10eXBlZIHoA4QBQISE
+ hBJOU0F0dHJpYnV0ZWRTdHJpbmcA
+ hIQITlNPYmplY3QAhZKEhIQITlNT
+ dHJpbmcBlIQBKxcobmV4dCBwYWNr
+ ZXQKZ29lcyBoZXJlKYaEAmlJAReS
+ hISEDE5TRGljdGlvbmFyeQCUhAFp
+ A5KElpYHTlNDb2xvcoaShISEB05T
+ Q29sb3IAlIQBYwGEBGZmZmaDc4AA
+ P4NzgAA/g3OAAD8BhpKElpYQTlNQ
+ YXJhZ3JhcGhTdHlsZYaShISEF05T
+ TXV0YWJsZVBhcmFncmFwaFN0eWxl
+ AISEEE5TUGFyYWdyYXBoU3R5bGUA
+ lIQEQ0NAUwIAhISEB05TQXJyYXkA
+ lJkMkoSEhAlOU1RleHRUYWIAlIQC
+ Q2YAHIaShKOiADiGkoSjogBUhpKE
+ o6IAcIaShKOiAIGMAIaShKOiAIGo
+ AIaShKOiAIHEAIaShKOiAIHgAIaS
+ hKOiAIH8AIaShKOiAIEYAYaShKOi
+ AIE0AYaShKOiAIFQAYaGAIaShJaW
+ Bk5TRm9udIaShISEBk5TRm9udB6U
+ mSiEBVs0MGNdBgAAACAAAAD//kcA
+ aQBsAGwAUwBhAG4AcwAtAEkAdABh
+ AGwAaQBjAIQBZgmbAJsBmwCbAIaG
+ hg==
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;\red128\green128\blue128;}
+{\*\expandedcolortbl;;\csgenericrgb\c50196\c50196\c50196;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\i\fs18 \cf2 (next packet\
+goes here)}
+
+
+
+ Bounds
+ {{155.25300999999999, 382.66699}, {97.825500000000005, 30}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ archive
+
+ YnBsaXN0MDDUAQIDBAUI
+ ISJUJHRvcFgkb2JqZWN0
+ c1gkdmVyc2lvblkkYXJj
+ aGl2ZXLRBgdUcm9vdIAB
+ pQkKExceVSRudWxs1AsM
+ DQ4PEBESXxASTlNDdXN0
+ b21Db2xvclNwYWNlV05T
+ V2hpdGVcTlNDb2xvclNw
+ YWNlViRjbGFzc4ACRDAu
+ NQAQA4AE0hQOFRZUTlNJ
+ RBACgAPSGBkaHVgkY2xh
+ c3Nlc1okY2xhc3NuYW1l
+ ohscXE5TQ29sb3JTcGFj
+ ZVhOU09iamVjdFxOU0Nv
+ bG9yU3BhY2XSGBkfIKIg
+ HFdOU0NvbG9yEgABhqBf
+ EA9OU0tleWVkQXJjaGl2
+ ZXIACAARABYAHwAoADIA
+ NQA6ADwAQgBIAFEAZgBu
+ AHsAggCEAIkAiwCNAJIA
+ lwCZAJsAoACpALQAtwDE
+ AM0A2gDfAOIA6gDvAAAA
+ AAAAAgEAAAAAAAAAIwAA
+ AAAAAAAAAAAAAAAAAQE=
+
+ b
+ 0.5
+ g
+ 0.5
+ r
+ 0.5
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 20
+ Style
+
+ fill
+
+ Color
+
+ b
+ 0.91984850168228149
+ g
+ 0.9198601245880127
+ r
+ 0.91983860731124878
+ space
+ srgb
+
+
+
+ Text
+
+ RTFD
+
+ BAtzdHJlYW10eXBlZIHoA4QBQISE
+ hBJOU0F0dHJpYnV0ZWRTdHJpbmcA
+ hIQITlNPYmplY3QAhZKEhIQITlNT
+ dHJpbmcBlIQBKxAobGVmdG92ZXIg
+ c3BhY2UphoQCaUkBEJKEhIQMTlNE
+ aWN0aW9uYXJ5AJSEAWkDkoSWlgdO
+ U0NvbG9yhpKEhIQHTlNDb2xvcgCU
+ hAFjAYQEZmZmZoNzgAA/g3OAAD+D
+ c4AAPwGGkoSWlhBOU1BhcmFncmFw
+ aFN0eWxlhpKEhIQXTlNNdXRhYmxl
+ UGFyYWdyYXBoU3R5bGUAhIQQTlNQ
+ YXJhZ3JhcGhTdHlsZQCUhARDQ0BT
+ AgCEhIQHTlNBcnJheQCUmQyShISE
+ CU5TVGV4dFRhYgCUhAJDZgAchpKE
+ o6IAOIaShKOiAFSGkoSjogBwhpKE
+ o6IAgYwAhpKEo6IAgagAhpKEo6IA
+ gcQAhpKEo6IAgeAAhpKEo6IAgfwA
+ hpKEo6IAgRgBhpKEo6IAgTQBhpKE
+ o6IAgVABhoYAhpKElpYGTlNGb250
+ hpKEhIQGTlNGb250HpSZKIQFWzQw
+ Y10GAAAAIAAAAP/+RwBpAGwAbABT
+ AGEAbgBzAC0ASQB0AGEAbABpAGMA
+ hAFmCZsAmwGbAJsAhoaG
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;\red128\green128\blue128;}
+{\*\expandedcolortbl;;\csgenericrgb\c50196\c50196\c50196;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\i\fs18 \cf2 (leftover space)}
+
+
+
+ Bounds
+ {{422.11700000000002, 292.13}, {143, 8}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ ID
+ 21
+ Line
+
+ ID
+ 22
+ Offset
+ 3.380279541015625
+ Position
+ 0.51851850748062134
+ RotationType
+ 4
+
+ Rotation
+ 90
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0.0
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs14 \cf0 fixed size chunks; larger than max packet size}
+ VerticalPad
+ 0.0
+
+ Wrap
+ NO
+
+
+ Class
+ LineGraphic
+ ID
+ 22
+ Points
+
+ {490.23700000000002, 202.66701}
+ {490.23700000000002, 382.91699}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ DimensionArrow
+ Legacy
+
+ TailArrow
+ DimensionArrow
+
+
+
+
+ Bounds
+ {{445.49700999999999, 445.67899}, {97, 8}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ ID
+ 23
+ Line
+
+ ID
+ 24
+ Offset
+ 3.380279541015625
+ Position
+ 0.51851850748062134
+ RotationType
+ 4
+
+ Rotation
+ 90
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0.0
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs14 \cf0 last chunk as small as possible}
+ VerticalPad
+ 0.0
+
+ Wrap
+ NO
+
+
+ Class
+ LineGraphic
+ ID
+ 24
+ Points
+
+ {490.61700000000002, 384}
+ {490.61700000000002, 510.66699}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ DimensionArrow
+ Legacy
+
+ TailArrow
+ DimensionArrow
+
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 42
+ Info
+ 10
+
+ ID
+ 25
+ OrthogonalBarAutomatic
+
+ OrthogonalBarPoint
+ {0, 0}
+ OrthogonalBarPosition
+ -1
+ Points
+
+ {360.86099000000002, 459.77752571205224}
+ {360.86099000000002, 433.66120994409721}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ LineType
+ 2
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 31
+ Info
+ 8
+
+
+
+ Bounds
+ {{306.7030795466228, 504.20032172861227}, {37, 16}}
+ Class
+ ShapedGraphic
+ FitText
+ Vertical
+ Flow
+ Resize
+ ID
+ 26
+ Line
+
+ ID
+ 27
+ Position
+ 0.43868362903594971
+ RotationType
+ 2
+
+ Rotation
+ 341.43318216919113
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0.0
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs14 \cf0 interval tree\
+(seq no)}
+ VerticalPad
+ 0.0
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 29
+ Info
+ 7
+
+ ID
+ 27
+ Points
+
+ {297.33547648627405, 521.56084274165278}
+ {360.86099000000002, 500.22309428794779}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 32
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 31
+ Info
+ 7
+
+ ID
+ 28
+ OrthogonalBarAutomatic
+
+ OrthogonalBarPoint
+ {0, 0}
+ OrthogonalBarPosition
+ -1
+ Points
+
+ {360.86099000000002, 495.77852571205221}
+ {360.86099000000002, 464.22209428794781}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ LineType
+ 2
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 29
+ Info
+ 8
+
+
+
+ Bounds
+ {{360.86099000000002, 491.33400999999998}, {97.825500000000005, 13.333600000000001}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 29
+ Magnets
+
+ {-0.42163801000000001, -1.26491}
+ {0.42163699999999998, -1.26491}
+ {1.26491, -0.42164001000000001}
+ {1.26491, 0.42164001000000001}
+ {0.42163699999999998, 1.26491}
+ {-0.42163801000000001, 1.26491}
+ {-1.26491, 0.42164001000000001}
+ {-1.26491, -0.42164001000000001}
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 sample.reorder}
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 36
+ Info
+ 3
+
+ ID
+ 30
+ OrthogonalBarAutomatic
+
+ OrthogonalBarPoint
+ {0, 0}
+ OrthogonalBarPosition
+ -1
+ Points
+
+ {458.68649000000005, 459.77752571205224}
+ {458.68649000000011, 416.99380000000002}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ LineType
+ 2
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 31
+ Info
+ 3
+
+
+
+ Bounds
+ {{360.86099000000002, 455.33301}, {97.825500000000005, 13.333600000000001}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 31
+ Magnets
+
+ {-0.42163801000000001, -1.26491}
+ {0.42163699999999998, -1.26491}
+ {1.26491, -0.42164001000000001}
+ {1.26491, 0.42164001000000001}
+ {0.42163699999999998, 1.26491}
+ {-0.42163801000000001, 1.26491}
+ {-1.26491, 0.42164001000000001}
+ {-1.26491, -0.42164001000000001}
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 sample chain}
+
+
+
+ Bounds
+ {{251.52799999999999, 506.66699}, {45.333500000000001, 45.333302000000003}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 32
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 reorder\
+admin}
+
+
+
+ Bounds
+ {{117.286, 112.667}, {30, 8}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ ID
+ 33
+ Line
+
+ ID
+ 34
+ Offset
+ -3.380281925201416
+ Position
+ 0.51851850748062134
+ RotationType
+ 2
+
+ Rotation
+ 270
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0.0
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs14 \cf0 fixed size}
+ VerticalPad
+ 0.0
+
+ Wrap
+ NO
+
+
+ Class
+ LineGraphic
+ ID
+ 34
+ Points
+
+ {135.66701, 88.666702000000001}
+ {135.66701, 142.66701}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ DimensionArrow
+ Legacy
+
+ TailArrow
+ DimensionArrow
+
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 61
+ Info
+ 4
+
+ ID
+ 35
+ OrthogonalBarAutomatic
+
+ OrthogonalBarPoint
+ {0, 0}
+ OrthogonalBarPosition
+ -1
+ Points
+
+ {360.86098999999996, 416.99380000000002}
+ {339.66699, 340.28899999999999}
+ {360.86098999999996, 295.49981000000002}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ LineType
+ 2
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 36
+ Info
+ 4
+
+
+
+ Bounds
+ {{360.86099000000002, 410.327}, {97.825500000000005, 13.333600000000001}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 36
+ Magnets
+
+ {0, 1}
+ {0, -1}
+ {1, 0}
+ {-1, 0}
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 sampleinfo}
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 74
+ Info
+ 20
+
+ ID
+ 37
+ OrthogonalBarAutomatic
+
+ OrthogonalBarPoint
+ {0, 0}
+ OrthogonalBarPosition
+ -1
+ Points
+
+ {155.25300999999996, 250.0003707562357}
+ {155.25300999999996, 97.666702000000001}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ LineType
+ 2
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 58
+ Info
+ 12
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 39
+ Position
+ 0.084524087607860565
+
+ ID
+ 38
+ OrthogonalBarAutomatic
+
+ OrthogonalBarPoint
+ {0, 0}
+ OrthogonalBarPosition
+ -1
+ Points
+
+ {360.86099000000002, 426.99441005590279}
+ {335.66699, 227.83392739712286}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Color
+
+ b
+ 0.92103439569473267
+ g
+ 0.92104595899581909
+ r
+ 0.9210243821144104
+ space
+ srgb
+
+ HeadArrow
+ 0
+ Legacy
+
+ LineType
+ 2
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 42
+ Info
+ 12
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 74
+ Info
+ 20
+
+ ID
+ 39
+ OrthogonalBarAutomatic
+
+ OrthogonalBarPoint
+ {0, 0}
+ OrthogonalBarPosition
+ -1
+ Points
+
+ {360.86099000000007, 249.0853607562357}
+ {335.66699, 162}
+ {263, 13.333299999999999}
+ {155.25300999999996, 97.666702000000001}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Color
+
+ b
+ 0.92103439569473267
+ g
+ 0.92104595899581909
+ r
+ 0.9210243821144104
+ space
+ srgb
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ LineType
+ 2
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 59
+ Info
+ 12
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 63
+ Info
+ 10
+
+ ID
+ 40
+ OrthogonalBarAutomatic
+
+ OrthogonalBarPoint
+ {0, 0}
+ OrthogonalBarPosition
+ 8.3639900000000296
+ Points
+
+ {360.86099000000002, 430.32781}
+ {320.33301, 316.70598999999999}
+ {253.07850999999997, 207.111425}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Color
+
+ b
+ 0.92103439569473267
+ g
+ 0.92104595899581909
+ r
+ 0.9210243821144104
+ space
+ srgb
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ LineType
+ 2
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 42
+ Info
+ 11
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 63
+ Info
+ 8
+
+ ID
+ 41
+ OrthogonalBarAutomatic
+
+ OrthogonalBarPoint
+ {0, 0}
+ OrthogonalBarPosition
+ 24.666656494140625
+ Points
+
+ {360.86099000000002, 252.41874913635559}
+ {253.07850999999999, 181.33365900000001}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Color
+
+ b
+ 0.92103439569473267
+ g
+ 0.92104595899581909
+ r
+ 0.9210243821144104
+ space
+ srgb
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ LineType
+ 2
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 59
+ Info
+ 11
+
+
+
+ Bounds
+ {{360.86099000000002, 423.66100999999998}, {97.825500000000005, 13.333600000000001}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 42
+ Magnets
+
+ {-0.59628499000000001, -1.1925699999999999}
+ {0, -1.3333299999999999}
+ {0.59628499000000001, -1.1925699999999999}
+ {1.1925699999999999, -0.59628499000000001}
+ {1.3333299999999999, 0}
+ {1.1925699999999999, 0.59629202000000003}
+ {0.59628499000000001, 1.1925699999999999}
+ {0, 1.3333299999999999}
+ {-0.59628499000000001, 1.1925699999999999}
+ {-1.1925699999999999, 0.59628499000000001}
+ {-1.3333299999999999, 0}
+ {-1.1925699999999999, -0.59628499000000001}
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 rdata}
+
+
+
+ Bounds
+ {{360.86099000000002, 184.66701}, {97.825500000000005, 18}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 43
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 rbuf header}
+
+
+
+ Bounds
+ {{268.50887627624513, 156.10668889706454}, {48, 24}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ ID
+ 44
+ Line
+
+ ID
+ 45
+ Offset
+ -14.647886276245117
+ Position
+ 0.74075812101364136
+ RotationType
+ 0
+
+ Style
+
+ fill
+
+ Color
+
+ a
+ 0.72999999999999998
+ b
+ 1
+ g
+ 1
+ r
+ 0.99999600648880005
+ space
+ srgb
+
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0.0
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs14 \cf0 data ref:\
+offset+length\
+relative to rmsg}
+ VerticalPad
+ 0.0
+
+ Wrap
+ NO
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 63
+ Info
+ 6
+
+ ID
+ 45
+ OrthogonalBarAutomatic
+
+ OrthogonalBarPoint
+ {0, 0}
+ OrthogonalBarPosition
+ -1
+ Points
+
+ {253.07850999999999, 250.0003707562357}
+ {277.86099000000002, 233.334}
+ {253.07850999999997, 155.55589300000003}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ LineType
+ 2
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 58
+ Info
+ 4
+
+
+
+ Bounds
+ {{96.31509099327566, 323.24912709767591}, {40, 8}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ ID
+ 46
+ Line
+
+ ID
+ 47
+ Offset
+ 3.380279541015625
+ Position
+ 0.43691340088844299
+ RotationType
+ 2
+
+ Rotation
+ 340.18325303638699
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0.0
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs14 \cf0 tree (seq no)}
+ VerticalPad
+ 0.0
+
+ Wrap
+ NO
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 53
+
+ ID
+ 47
+ Points
+
+ {88.137291859587322, 340.99611762027462}
+ {155.25300999999996, 316.81081}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 48
+
+
+
+ Bounds
+ {{42.333401000000002, 326.66699}, {45.333500000000001, 45.333302000000003}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 48
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 defrag\
+admin}
+
+
+
+ Bounds
+ {{204.19399999999999, 296.14499000000001}, {37, 8}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ ID
+ 49
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0.0
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs14 \cf0 interval tree}
+ VerticalPad
+ 0.0
+
+ Wrap
+ NO
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 51
+
+ ID
+ 50
+ Points
+
+ {204.16575999999998, 310.14401000000004}
+ {204.16575999999998, 284.73961000000003}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 53
+ Info
+ 2
+
+
+
+ Bounds
+ {{155.25300999999999, 271.40600999999998}, {97.825500000000005, 13.333600000000001}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 51
+ Magnets
+
+ {-0.59628099000000001, -1.1925699999999999}
+ {0, -1.3333299999999999}
+ {0.59628099000000001, -1.1925699999999999}
+ {1.1925699999999999, -0.59629202000000003}
+ {1.3333299999999999, 0}
+ {1.1925699999999999, 0.59628499000000001}
+ {0.59628499000000001, 1.1925699999999999}
+ {0, 1.3333299999999999}
+ {-0.59628499000000001, 1.1925699999999999}
+ {-1.1925699999999999, 0.59628499000000001}
+ {-1.3333299999999999, 0}
+ {-1.1925699999999999, -0.59629202000000003}
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 defrag_iv}
+
+
+
+ Bounds
+ {{155.25300999999999, 43.333401000000002}, {97.825500000000005, 45.333302000000003}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 52
+ Style
+
+ fill
+
+ Color
+
+ b
+ 0.91984850168228149
+ g
+ 0.9198601245880127
+ r
+ 0.91983860731124878
+ space
+ srgb
+
+
+
+ Text
+
+ RTFD
+
+ BAtzdHJlYW10eXBlZIHoA4QBQISE
+ hBJOU0F0dHJpYnV0ZWRTdHJpbmcA
+ hIQITlNPYmplY3QAhZKEhIQITlNT
+ dHJpbmcBlIQBKwwoZnJlZSBzcGFj
+ ZSmGhAJpSQEMkoSEhAxOU0RpY3Rp
+ b25hcnkAlIQBaQOShJaWB05TQ29s
+ b3KGkoSEhAdOU0NvbG9yAJSEAWMB
+ hARmZmZmg3OAAD+Dc4AAP4NzgAA/
+ AYaShJaWEE5TUGFyYWdyYXBoU3R5
+ bGWGkoSEhBdOU011dGFibGVQYXJh
+ Z3JhcGhTdHlsZQCEhBBOU1BhcmFn
+ cmFwaFN0eWxlAJSEBENDQFMCAISE
+ hAdOU0FycmF5AJSZDJKEhIQJTlNU
+ ZXh0VGFiAJSEAkNmAByGkoSjogA4
+ hpKEo6IAVIaShKOiAHCGkoSjogCB
+ jACGkoSjogCBqACGkoSjogCBxACG
+ koSjogCB4ACGkoSjogCB/ACGkoSj
+ ogCBGAGGkoSjogCBNAGGkoSjogCB
+ UAGGhgCGkoSWlgZOU0ZvbnSGkoSE
+ hAZOU0ZvbnQelJkohAVbNDBjXQYA
+ AAAgAAAA//5HAGkAbABsAFMAYQBu
+ AHMALQBJAHQAYQBsAGkAYwCEAWYJ
+ mwCbAZsAmwCGhoY=
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;\red128\green128\blue128;}
+{\*\expandedcolortbl;;\csgenericrgb\c50196\c50196\c50196;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\i\fs18 \cf2 (free space)}
+
+
+
+ Bounds
+ {{155.25300999999999, 310.14400999999998}, {97.825500000000005, 13.333600000000001}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 53
+ Magnets
+
+ {0, 1}
+ {0, -1}
+ {1, 0}
+ {-1, 0}
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 sample.defrag}
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 62
+
+ ID
+ 54
+ Points
+
+ {253.07850999999999, 240.0008}
+ {270.18398999999999, 234.66701}
+ {253.07850999999999, 226.66679999999999}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ LineType
+ 1
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 60
+ Info
+ 3
+
+
+
+ Bounds
+ {{280.82043427575212, 252.30858550515399}, {29, 8}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ ID
+ 55
+ Line
+
+ ID
+ 56
+ Position
+ 0.39191827178001404
+ RotationType
+ 0
+
+ Style
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Pad
+ 0.0
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs14 \cf0 fragchain}
+ VerticalPad
+ 0.0
+
+ Wrap
+ NO
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 59
+ Info
+ 10
+
+ ID
+ 56
+ Points
+
+ {253.07850999999999, 256.66720994409724}
+ {360.86099000000007, 255.75216092394407}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 58
+ Info
+ 6
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 58
+ Info
+ 10
+
+ ID
+ 57
+ OrthogonalBarAutomatic
+
+ OrthogonalBarPoint
+ {0, 0}
+ OrthogonalBarPosition
+ -1
+ Points
+
+ {155.25300999999996, 278.07281}
+ {155.25300999999996, 256.66720994409724}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ LineType
+ 2
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 51
+ Info
+ 11
+
+
+
+ Bounds
+ {{155.25300999999999, 246.66701}, {97.825500000000005, 13.333600000000001}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 58
+ Magnets
+
+ {-0.59628099000000001, -1.1925699999999999}
+ {0, -1.3333299999999999}
+ {0.59628099000000001, -1.1925699999999999}
+ {1.1925699999999999, -0.59629202000000003}
+ {1.3333299999999999, 0}
+ {1.1925699999999999, 0.59628499000000001}
+ {0.59628499000000001, 1.1925699999999999}
+ {0, 1.3333299999999999}
+ {-0.59628499000000001, 1.1925699999999999}
+ {-1.1925699999999999, 0.59628499000000001}
+ {-1.3333299999999999, 0}
+ {-1.1925699999999999, -0.59629202000000003}
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 rdata}
+
+
+
+ Bounds
+ {{360.86099000000002, 245.75200000000001}, {97.825500000000005, 13.333600000000001}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 59
+ Magnets
+
+ {-0.59628099000000001, -1.1925699999999999}
+ {0, -1.3333299999999999}
+ {0.59628099000000001, -1.1925699999999999}
+ {1.1925699999999999, -0.59629202000000003}
+ {1.3333299999999999, -1.01725e-05}
+ {1.1925699999999999, 0.59627801000000002}
+ {0.59628397, 1.1925699999999999}
+ {0, 1.3333299999999999}
+ {-0.59628499000000001, 1.1925699999999999}
+ {-1.1925699999999999, 0.59627801000000002}
+ {-1.3333299999999999, -1.01725e-05}
+ {-1.1925699999999999, -0.59629202000000003}
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 rdata}
+
+
+
+ Bounds
+ {{155.25300999999999, 233.334}, {97.825500000000005, 13.333600000000001}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 60
+ Magnets
+
+ {0, 1}
+ {0, -1}
+ {1, 0}
+ {-1, 0}
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 sampleinfo}
+
+
+
+ Bounds
+ {{360.86099000000002, 288.83301}, {97.825500000000005, 13.333600000000001}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 61
+ Magnets
+
+ {0, 1}
+ {0, -1}
+ {1, 0}
+ {-1, 0}
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 ddsi receiver state}
+
+
+
+ Bounds
+ {{155.25300999999999, 220}, {97.825500000000005, 13.333600000000001}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 62
+ Magnets
+
+ {0, 1}
+ {0, -1}
+ {1, 0}
+ {-1, 0}
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 ddsi receiver state}
+
+
+
+ Bounds
+ {{155.25300999999999, 142.66701}, {97.825500000000005, 77.333297999999999}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 63
+ Magnets
+
+ {-0.73960000000000004, -1.1093999999999999}
+ {-0.42163699999999998, -1.26491}
+ {3.1789098999999999e-07, -1.3333299999999999}
+ {0.42163699999999998, -1.26491}
+ {0.73960000000000004, -1.1093999999999999}
+ {1.1093999999999999, -0.73960000000000004}
+ {1.26491, -0.42163699999999998}
+ {1.3333299999999999, 0}
+ {1.26491, 0.42163801000000001}
+ {1.1093999999999999, 0.73960000000000004}
+ {0.73960000000000004, 1.1093999999999999}
+ {0.42163699999999998, 1.26491}
+ {3.1789098999999999e-07, 1.3333299999999999}
+ {-0.42163699999999998, 1.26491}
+ {-0.73959898999999996, 1.1093999999999999}
+ {-1.1093999999999999, 0.73960102000000005}
+ {-1.26491, 0.42163699999999998}
+ {-1.3333299999999999, -1.27157e-06}
+ {-1.26491, -0.42163801000000001}
+ {-1.1093999999999999, -0.73960000000000004}
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 raw packet}
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 66
+ Info
+ 4
+
+ ID
+ 64
+ OrthogonalBarAutomatic
+
+ OrthogonalBarPoint
+ {0, 0}
+ OrthogonalBarPosition
+ -1
+ Points
+
+ {253.07839999999999, 122.66679999999999}
+ {360.86099000000002, 122.667}
+ {477.66699, 124}
+ {458.68659000000002, 392.88908428794781}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ LineType
+ 2
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 68
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 66
+ Info
+ 3
+
+ ID
+ 65
+ OrthogonalBarAutomatic
+
+ OrthogonalBarPoint
+ {0, 0}
+ OrthogonalBarPosition
+ -1
+ Points
+
+ {458.68659000000002, 209.33381}
+ {474.33301, 271.40600999999998}
+ {458.68659000000002, 388.44451571205224}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ LineType
+ 2
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 70
+ Info
+ 3
+
+
+
+ Bounds
+ {{360.86099000000002, 384}, {97.825599999999994, 13.333600000000001}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 66
+ Magnets
+
+ {-0.42163399000000001, -1.26491}
+ {0.42163499999999998, -1.26491}
+ {1.26491, -0.42164001000000001}
+ {1.26491, 0.42164001000000001}
+ {0.42163801000000001, 1.26491}
+ {-0.42163699999999998, 1.26491}
+ {-1.26491, 0.42164001000000001}
+ {-1.26491, -0.42164001000000001}
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 chunk hdr}
+
+
+
+ Bounds
+ {{360.86099000000002, 384}, {97.825500000000005, 126.667}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 67
+ Style
+
+ fill
+
+ Color
+
+ space
+ gg22
+ w
+ 0.79525351524353027
+
+
+
+
+
+ Bounds
+ {{172.41800000000001, 116}, {80.660399999999996, 13.333600000000001}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 68
+ Magnets
+
+ {0, 1}
+ {0, -1}
+ {1, 0}
+ {-1, 0}
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 lastchunk}
+
+
+
+ Class
+ LineGraphic
+ Head
+
+ ID
+ 70
+
+ ID
+ 69
+ OrthogonalBarAutomatic
+
+ OrthogonalBarPoint
+ {0, 0}
+ OrthogonalBarPosition
+ 82.666671752929688
+ Points
+
+ {253.57839999999999, 135.99978999999999}
+ {360.86099000000007, 209.33381}
+
+ Style
+
+ fill
+
+ Draws
+ NO
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ HeadArrow
+ FilledArrow
+ Legacy
+
+ LineType
+ 2
+ TailArrow
+ 0
+
+
+ Tail
+
+ ID
+ 73
+
+
+
+ Bounds
+ {{360.86099000000002, 202.66701}, {97.825599999999994, 13.333600000000001}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 70
+ Magnets
+
+ {0, 1}
+ {0, -1}
+ {1, 0}
+ {-1, 0}
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 chunk hdr}
+
+
+
+ Bounds
+ {{360.86099000000002, 202.66701}, {97.825500000000005, 181.33299}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 71
+ Style
+
+ fill
+
+ Color
+
+ space
+ gg22
+ w
+ 0.79525351524353027
+
+
+
+
+
+ Bounds
+ {{155.25300999999999, 142.66701}, {97.825500000000005, 241.33299}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 72
+ Style
+
+ fill
+
+ Color
+
+ space
+ gg22
+ w
+ 0.79525351524353027
+
+
+
+ Text
+
+ RTFD
+
+ BAtzdHJlYW10eXBlZIHoA4QBQISE
+ hBJOU0F0dHJpYnV0ZWRTdHJpbmcA
+ hIQITlNPYmplY3QAhZKEhIQITlNT
+ dHJpbmcBlIQBK00odGhpcyBsZXZl
+ bCBvZiBncmF5OiBwYWNrZWQgd2l0
+ aCBtb3JlIHJlY2VpdmVyIHN0YXRl
+ LCBzYW1wbGVpbmZvLCByZGF0YSwg
+ JmMuKYaEAmlJAU2ShISEDE5TRGlj
+ dGlvbmFyeQCUhAFpA5KElpYHTlND
+ b2xvcoaShISEB05TQ29sb3IAlIQB
+ YwGEBGZmZmaDc4AAP4NzgAA/g3OA
+ AD8BhpKElpYQTlNQYXJhZ3JhcGhT
+ dHlsZYaShISEF05TTXV0YWJsZVBh
+ cmFncmFwaFN0eWxlAISEEE5TUGFy
+ YWdyYXBoU3R5bGUAlIQEQ0NAUwIA
+ hISEB05TQXJyYXkAlJkMkoSEhAlO
+ U1RleHRUYWIAlIQCQ2YAHIaShKOi
+ ADiGkoSjogBUhpKEo6IAcIaShKOi
+ AIGMAIaShKOiAIGoAIaShKOiAIHE
+ AIaShKOiAIHgAIaShKOiAIH8AIaS
+ hKOiAIEYAYaShKOiAIE0AYaShKOi
+ AIFQAYaGAIaShJaWBk5TRm9udIaS
+ hISEBk5TRm9udB6UmSiEBVs0MGNd
+ BgAAACAAAAD//kcAaQBsAGwAUwBh
+ AG4AcwAtAEkAdABhAGwAaQBjAIQB
+ ZgmbAJsBmwCbAIaGhg==
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;\red128\green128\blue128;}
+{\*\expandedcolortbl;;\csgenericrgb\c50196\c50196\c50196;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\i\fs18 \cf2 (this level of gray: packed with more receiver state, sampleinfo, rdata, &c.)}
+
+ TextPlacement
+ 2
+
+
+ Bounds
+ {{172.41800000000001, 129.33299}, {80.660399999999996, 13.333600000000001}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 73
+ Magnets
+
+ {0, 1}
+ {0, -1}
+ {1, 0}
+ {-1, 0}
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 chunk hdr}
+
+
+
+ Bounds
+ {{155.25300999999999, 88.666702000000001}, {97.825500000000005, 54}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 74
+ Magnets
+
+ {-0.73960000000000004, -1.1093999999999999}
+ {-0.42163699999999998, -1.26491}
+ {0, -1.3333299999999999}
+ {0.42163699999999998, -1.26491}
+ {0.73960000000000004, -1.1093999999999999}
+ {1.1093999999999999, -0.73960000000000004}
+ {1.26491, -0.42163699999999998}
+ {1.3333299999999999, 0}
+ {1.26491, 0.42163699999999998}
+ {1.1093999999999999, 0.73960000000000004}
+ {0.73960000000000004, 1.1093999999999999}
+ {0.42163699999999998, 1.26491}
+ {0, 1.3333299999999999}
+ {-0.42163699999999998, 1.26491}
+ {-0.73960000000000004, 1.1093999999999999}
+ {-1.1093999999999999, 0.73960102000000005}
+ {-1.26491, 0.42163699999999998}
+ {-1.3333299999999999, -6.3578301000000001e-07}
+ {-1.26491, -0.42163801000000001}
+ {-1.1093999999999999, -0.73960000000000004}
+
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 rmsg\
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\fs14 \cf0 (counts derived rdatas still to be delivered)
+\fs18 \
+}
+ VerticalPad
+ 2
+
+ TextPlacement
+ 0
+
+
+ Bounds
+ {{155.25300999999999, 25.333400999999999}, {97.825500000000005, 18}}
+ Class
+ ShapedGraphic
+ FontInfo
+
+ Color
+
+ space
+ gg22
+ w
+ 0
+
+ Font
+ GillSans
+ Size
+ 9
+
+ ID
+ 75
+ Text
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0
+
+\f0\fs18 \cf0 rbuf header}
+
+
+
+ Bounds
+ {{501.33899000000002, 4}, {53, 16}}
+ Class
+ ShapedGraphic
+ FitText
+ YES
+ Flow
+ Resize
+ FontInfo
+
+ Color
+
+ archive
+
+ YnBsaXN0MDDUAQIDBAUI
+ ISJUJHRvcFgkb2JqZWN0
+ c1gkdmVyc2lvblkkYXJj
+ aGl2ZXLRBgdUcm9vdIAB
+ pQkKExceVSRudWxs1AsM
+ DQ4PEBESXxASTlNDdXN0
+ b21Db2xvclNwYWNlV05T
+ V2hpdGVcTlNDb2xvclNw
+ YWNlViRjbGFzc4ACRTAu
+ NzUAEAOABNIUDhUWVE5T
+ SUQQAoAD0hgZGh1YJGNs
+ YXNzZXNaJGNsYXNzbmFt
+ ZaIbHFxOU0NvbG9yU3Bh
+ Y2VYTlNPYmplY3RcTlND
+ b2xvclNwYWNl0hgZHyCi
+ IBxXTlNDb2xvchIAAYag
+ XxAPTlNLZXllZEFyY2hp
+ dmVyAAgAEQAWAB8AKAAy
+ ADUAOgA8AEIASABRAGYA
+ bgB7AIIAhACKAIwAjgCT
+ AJgAmgCcAKEAqgC1ALgA
+ xQDOANsA4ADjAOsA8AAA
+ AAAAAAIBAAAAAAAAACMA
+ AAAAAAAAAAAAAAAAAAEC
+
+ b
+ 0.75
+ g
+ 0.75
+ r
+ 0.75
+
+ Font
+ GillSans-Bold
+ Size
+ 9
+
+ ID
+ 76
+ Style
+
+ fill
+
+ Color
+
+ space
+ gg22
+ w
+ 0.31799882650375366
+
+
+ shadow
+
+ Draws
+ NO
+
+ stroke
+
+ Draws
+ NO
+
+
+ Text
+
+ Align
+ 2
+ Pad
+ 2
+ RTFD
+
+ BAtzdHJlYW10eXBlZIHoA4QBQISE
+ hBJOU0F0dHJpYnV0ZWRTdHJpbmcA
+ hIQITlNPYmplY3QAhZKEhIQITlNT
+ dHJpbmcBlIQBKwtyYnVmLCByZGF0
+ YYaEAmlJAQuShISEDE5TRGljdGlv
+ bmFyeQCUhAFpA5KElpYHTlNDb2xv
+ coaShISEB05TQ29sb3IAlIQBYwGE
+ BGZmZmaDxr8/P4PGvz8/g8a/Pz8B
+ hpKElpYQTlNQYXJhZ3JhcGhTdHls
+ ZYaShISEF05TTXV0YWJsZVBhcmFn
+ cmFwaFN0eWxlAISEEE5TUGFyYWdy
+ YXBoU3R5bGUAlIQEQ0NAUwEAhISE
+ B05TQXJyYXkAlJkMkoSEhAlOU1Rl
+ eHRUYWIAlIQCQ2YAHIaShKOiADiG
+ koSjogBUhpKEo6IAcIaShKOiAIGM
+ AIaShKOiAIGoAIaShKOiAIHEAIaS
+ hKOiAIHgAIaShKOiAIH8AIaShKOi
+ AIEYAYaShKOiAIE0AYaShKOiAIFQ
+ AYaGAIaShJaWBk5TRm9udIaShISE
+ Bk5TRm9udB6UmSSEBVszNmNdBgAA
+ ABwAAAD//kcAaQBsAGwAUwBhAG4A
+ cwAtAEIAbwBsAGQAhAFmCZsAmwGb
+ AJsAhoaG
+
+ Text
+ {\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
+{\fonttbl\f0\fnil\fcharset0 GillSans;}
+{\colortbl;\red255\green255\blue255;\red191\green191\blue191;}
+{\*\expandedcolortbl;;\csgenericrgb\c74902\c74902\c74902;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qr\partightenfactor0
+
+\f0\b\fs18 \cf2 rbuf, rdata}
+ VerticalPad
+ 2
+
+ TextPlacement
+ 0
+ Wrap
+ NO
+
+
+ GridInfo
+
+ HPages
+ 1
+ KeepToScale
+
+ Layers
+
+
+ Artboards
+
+ Lock
+
+ Name
+ Layer 1
+ Print
+
+ View
+
+
+
+ LayoutInfo
+
+ Animate
+ NO
+ circoMinDist
+ 18
+ circoSeparation
+ 0.0
+ layoutEngine
+ dot
+ neatoLineLength
+ 0.20000000298023224
+ neatoSeparation
+ 0.0
+ twopiSeparation
+ 0.0
+
+ Orientation
+ 2
+ PrintOnePage
+
+ RowAlign
+ 1
+ RowSpacing
+ 36
+ SheetTitle
+ rbuf
+ UniqueID
+ 4
+ VPages
+ 1
+ VisibleVoidKey
+ 1
+
+
+ SmartAlignmentGuidesActive
+ YES
+ SmartDistanceGuidesActive
+ YES
+ UseEntirePage
+
+ WindowInfo
+
+ CurrentSheet
+ 2
+ Frame
+ {{112, 128}, {1440, 838}}
+ ShowInfo
+
+ ShowRuler
+
+ Sidebar
+
+ SidebarWidth
+ 216
+ Sidebar_Tab
+ 0
+ VisibleRegion
+ {{-241, 0}, {1043.2323529411765, 783}}
+ ZoomValues
+
+
+ receive path
+ 1.5
+ 1.5
+
+
+ transmit path
+ 1.5
+ 1.5
+
+
+ rbuf
+ 0.0
+ 1.5
+
+
+
+ compressOnDiskKey
+
+ copyLinkedImagesKey
+
+ createSinglePDFKey
+
+ exportAreaKey
+ 4
+ exportQualityKey
+ 100
+ exportSizesKey
+
+ 1
+
+
+ fileFormatKey
+ 0
+ htmlImageTypeKey
+ 0
+ includeBackgroundGraphicKey
+
+ includeNonPrintingLayersKey
+
+ lastExportTypeKey
+ 11
+ marginWidthKey
+ 0.0
+ previewTypeKey
+ 0
+ readOnlyKey
+
+ resolutionForBMPKey
+ 1
+ resolutionForGIFKey
+ 1
+ resolutionForHTMLKey
+ 1
+ resolutionForJPGKey
+ 1
+ resolutionForPNGKey
+ 1
+ resolutionForTIFFKey
+ 1
+ resolutionUnitsKey
+ 0
+ saveAsFlatFileOptionKey
+ 3
+ useArtboardsKey
+
+ useMarginKey
+
+ useNotesKey
+
+
+
diff --git a/src/docs/config.rst b/src/docs/config.rst
new file mode 100644
index 0000000..8425ab5
--- /dev/null
+++ b/src/docs/config.rst
@@ -0,0 +1,1141 @@
+###################################################
+A guide to the configuration options of Cyclone DDS
+###################################################
+
+This document attempts to provide background information that will help in adjusting the
+configuration of Cyclone DDS when the default settings do not give the desired behavior.
+A full listing of all settings is out of scope for this document, but can be extracted
+from the sources.
+
+
+.. _`DDSI Concepts`
+
+DDSI Concepts
+*************
+
+The DDSI standard is intimately related to the DDS 1.2 and 1.4 standards, with a clear
+correspondence between the entities in DDSI and those in DCPS. However, this
+correspondence is not one-to-one.
+
+In this section we give a high-level description of the concepts of the DDSI
+specification, with hardly any reference to the specifics of the Cyclone DDS
+implementation, which are addressed in subsequent sections. This division was chosen to
+aid readers interested in interoperability to understand where the specification ends
+and the Cyclone DDS implementation begins.
+
+
+.. _`Mapping of DCPS domains to DDSI domains`:
+
+Mapping of DCPS domains to DDSI domains
+=======================================
+
+In DCPS, a domain is uniquely identified by a non-negative integer, the domain id. In
+the UDP/IP mapping, this domain id is mapped to port numbers to be used for
+communicating with the peer nodes — these port numbers are particularly important for
+the discovery protocol — and this mapping of domain ids to UDP/IP port numbers ensures
+that accidental cross-domain communication is impossible with the default mapping.
+
+DDSI does not communicate the DCPS port number in the discovery protocol; it assumes
+that each domain id maps to a unique port number. While it is unusual to change the
+mapping, the specification requires this to be possible, and this means that two
+different DCPS domain ids can be mapped to a single DDSI domain.
+
+
+.. _`Mapping of DCPS entities to DDSI entities`:
+
+Mapping of DCPS entities to DDSI entities
+=========================================
+
+Each DCPS domain participant in a domain is mirrored in DDSI as a DDSI participant.
+These DDSI participants drive the discovery of participants, readers and writers in DDSI
+via the discovery protocols. By default, each DDSI participant has a unique address on
+the network in the form of its own UDP/IP socket with a unique port number.
+
+Any data reader or data writer created by a DCPS domain participant is mirrored in DDSI
+as a DDSI reader or writer. In this translation, some of the structure of the DCPS
+domain is obscured because the standardized parts of DDSI have no knowledge of DCPS
+Subscribers and Publishers. Instead, each DDSI reader is the combination of the
+corresponding DCPS data reader and the DCPS subscriber it belongs to; similarly, each
+DDSI writer is a combination of the corresponding DCPS data writer and DCPS publisher.
+This corresponds to the way the standardized DCPS built-in topics describe the DCPS data
+readers and data writers, as there are no standardized built-in topics for describing
+the DCPS subscribers and publishers either. Implementations can (and do) offer
+additional built-in topics for describing these entities and include them in the
+discovery, but these are non-standard extensions.
+
+In addition to the application-created readers and writers (referred to as *endpoints*),
+DDSI participants have a number of DDSI built-in endpoints used for discovery and
+liveliness checking/asserting. The most important ones are those absolutely required
+for discovery: readers and writers for the discovery data concerning DDSI participants,
+DDSI readers and DDSI writers. Some other ones exist as well, and a DDSI implementation
+can leave out some of these if it has no use for them. For example, if a participant
+has no writers, it doesn’t strictly need the DDSI built-in endpoints for describing
+writers, nor the DDSI built-in endpoint for learning of readers of other participants.
+
+
+.. _`Reliable communication`:
+
+Reliable communication
+======================
+
+*Best-effort* communication is simply a wrapper around UDP/IP: the packet(s) containing
+a sample are sent to the addresses at which the readers reside. No state is maintained
+on the writer. If a packet is lost, the reader will simply ignore the whatever samples
+were contained in the lost packet and continue with the next one.
+
+When *reliable* communication is used, the writer does maintain a copy of the sample, in
+case a reader detects it has lost packets and requests a retransmission. These copies
+are stored in the writer history cache (or *WHC*) of the DDSI writer. The DDSI writer
+is required to periodically send *Heartbeats* to its readers to ensure that all readers
+will learn of the presence of new samples in the WHC even when packets get lost. It is
+allowed to suppress these periodic Heartbeats if there is all samples in the WHC have
+been acknowledged by all matched readers and the Cyclone DDS exploits this freedom.
+
+If a reader receives a Heartbeat and detects it did not receive all samples, it requests
+a retransmission by sending an *AckNack* message to the writer. The timing of this is
+somewhat adjustable and it is worth remarking that a roundtrip latency longer than the
+Heartbeat interval easily results in multiple retransmit requests for a single sample.
+In addition to requesting retransmission of some samples, a reader also uses the AckNack
+messages to inform the writer up to what sample it has received everything, and which
+ones it has not yet received. Whenever the writer indicates it requires a response to a
+Heartbeat the readers will send an AckNack message even when no samples are missing. In
+this case, it becomes a pure acknowledgement.
+
+The combination of these behaviours in principle allows the writer to remove old samples
+from its WHC when it fills up too far, and allows readers to always receive all data. A
+complication exists in the case of unresponsive readers, readers that do not respond to
+a Heartbeat at all, or that for some reason fail to receive some samples despite
+resending it. The specification leaves the way these get treated unspecified. The
+default beahviour of Cyclone DDS is to never consider readers unresponsive, but it can
+be configured to consider them so after a certain length of time has passed at which
+point the participant containing the reader is undiscovered.
+
+Note that while this Heartbeat/AckNack mechanism is very straightforward, the
+specification actually allows suppressing heartbeats, merging of AckNacks and
+retransmissions, etc. The use of these techniques is required to allow for a performant
+DDSI implementation, whilst avoiding the need for sending redundant messages.
+
+
+.. _`DDSI-specific transient-local behaviour`:
+
+DDSI-specific transient-local behaviour
+=======================================
+
+The above describes the essentials of the mechanism used for samples of the *volatile*
+durability kind, but the DCPS specification also provides *transient-local*, *transient*
+and *persistent* data. Of these, the DDSI specification at present only covers
+*transient-local*, and this is the only form of durable data available when
+interoperating across vendors.
+
+In DDSI, transient-local data is implemented using the WHC that is normally used for
+reliable communication. For transient-local data, samples are retained even when all
+readers have acknowledged them. With the default history setting of ``KEEP_LAST`` with
+``history_depth = 1``, this means that late-joining readers can still obtain the latest
+sample for each existing instance.
+
+Naturally, once the DCPS writer is deleted (or disappears for whatever reason), the DDSI
+writer disappears as well, and with it, its history. For this reason, transient data is
+generally much to be preferred over transient-local data. Cyclone DDS has a facility
+for retrieving transient data from an suitably configured OpenSplice node, but does not
+yet include a native service for managing transient data.
+
+
+.. _`Discovery of participants & endpoints`:
+
+Discovery of participants & endpoints
+=====================================
+
+DDSI participants discover each other by means of the *Simple Participant Discovery
+Protocol* or *SPDP* for short. This protocol is based on periodically sending a message
+containing the specifics of the participant to a set of known addresses. By default,
+this is a standardised multicast address (``239.255.0.1``; the port number is derived
+from the domain id) that all DDSI implementations listen to.
+
+Particularly important in the SPDP message are the unicast and multicast addresses at
+which the participant can be reached. Typically, each participant has a unique unicast
+address, which in practice means all participants on a node all have a different UDP/IP
+port number in their unicast address. In a multicast-capable network, it doesn’t matter
+what the actual address (including port number) is, because all participants will learn
+them through these SPDP messages.
+
+The protocol does allow for unicast-based discovery, which requires listing the
+addresses of machines where participants may be located and ensuring each participant
+uses one of a small set of port numbers. Because of this, some of the port numbers are
+derived not only from the domain id, but also from a *participant index*, which is a
+small non-negative integer, unique to a participant within a node. (Cyclone DDS adds an
+indirection and uses at most one participant index for a domain for each process,
+regardless of how many DCPS participants are created by the process.)
+
+Once two participants have discovered each other and both have matched the DDSI built-in
+endpoints their peer is advertising in the SPDP message, the *Simple Endpoint Discovery
+Protocol* or *SEDP* takes over, exchanging information on the DCPS data readers and data
+writers (and for Cyclone DDS, also publishers, subscribers and topics in a manner
+compatible with OpenSplice) in the two participants.
+
+The SEDP data is handled as reliable, transient-local data. Therefore, the SEDP writers
+send Heartbeats, the SEDP readers detect they have not yet received all samples and send
+AckNacks requesting retransmissions, the writer responds to these and eventually
+receives a pure acknowledgement informing it that the reader has now received the
+complete set.
+
+Note that the discovery process necessarily creates a burst of traffic each time a
+participant is added to the system: *all* existing participants respond to the SPDP
+message, following which all start exchanging SEDP data.
+
+
+.. _`Cyclone DDS specifics`:
+
+Cyclone DDS specifics
+*********************
+
+.. _`Discovery behaviour`:
+
+Discovery behaviour
+===================
+
+.. _`Proxy participants and endpoints`:
+
+Proxy participants and endpoints
+--------------------------------
+
+Cyclone DDS is what the DDSI specification calls a *stateful* implementation. Writers
+only send data to discovered readers and readers only accept data from discovered
+writers. (There is one exception: the writer may choose to multicast the data, and
+anyone listening will be able to receive it, if a reader has already discovered the
+writer but not vice-versa; it may accept the data even though the connection is not
+fully established yet. At present, not only can such asymmetrical discovery cause data
+to be delivered when it was perhaps not expected, it can also cause indefinite blocking
+if the situation persists for a long time.) Consequently, for each remote participant
+and reader or writer, Cyclone DDS internally creates a proxy participant, proxy reader
+or proxy writer. In the discovery process, writers are matched with proxy readers, and
+readers are matched with proxy writers, based on the topic and type names and the QoS
+settings.
+
+Proxies have the same natural hierarchy that ‘normal’ DDSI entities have: each proxy
+endpoint is owned by some proxy participant, and once the proxy participant is deleted,
+all of its proxy endpoints are deleted as well. Participants assert their liveliness
+periodically (called *automic* liveliness in the DCPS specification and the only mode
+currently supported by Cyclone DDS), and when nothing has been heard from a participant
+for the lease duration published by that participant in its SPDP message, the lease
+becomes expired triggering a clean-up.
+
+Under normal circumstances, deleting endpoints simply triggers disposes and unregisters
+in SEDP protocol, and, similarly, deleting a participant also creates special messages
+that allow the peers to immediately reclaim resources instead of waiting for the lease
+to expire.
+
+
+.. _`Sharing of discovery information`:
+
+Sharing of discovery information
+--------------------------------
+
+As Cyclone DDS handles any number of participants in an integrated manner, the discovery
+protocol as sketched earlier is rather wasteful: there is no need for each individual
+participant in a Cyclone DDS process to run the full discovery protocol for itself.
+
+Instead of implementing the protocol as suggested by the standard, Cyclone DDS shares
+all discovery activities amongst the participants, allowing one to add participants on a
+process with only a minimal impact on the system. It is even possible to have only a
+single DDSI participant in a process regardless of the number of DCPS participants
+created by the application code in that process, which then becomes the virtual owner of
+all the endpoints created in that one process. (See `Combining multiple
+participants`_.) In this latter mode, there is no discovery penalty at all for having
+many participants, but evidently, any participant-based liveliness monitoring will be
+affected.
+
+Because other implementations of the DDSI specification may be written on the assumption
+that all participants perform their own discovery, it is possible to simulate that with
+Cyclone DDS. It will not actually perform the discovery for each participant
+independently, but it will generate the network traffic *as if* it does. These are
+controlled by the ``Internal/BuiltinEndpointSet`` and
+``Internal/ConservativeBuiltinReaderStartup`` options. However, please note that at the
+time of writing, we are not aware of any DDSI implementation requiring the use of these
+settings.)
+
+By sharing the discovery information across all participants in a single node, each
+new participant or endpoint is immediately aware of the existing peers and will
+immediately try to communicate with these peers. This may generate some
+redundant network traffic if these peers take a significant amount of time for
+discovering this new participant or endpoint.
+
+
+.. _`Lingering writers`:
+
+Lingering writers
+-----------------
+
+When an application deletes a reliable DCPS data writer, there is no guarantee that all
+its readers have already acknowledged the correct receipt of all samples. In such a
+case, Cyclone DDS lets the writer (and the owning participant if necessary) linger in
+the system for some time, controlled by the ``Internal/WriterLingerDuration`` option.
+The writer is deleted when all samples have been acknowledged by all readers or the
+linger duration has elapsed, whichever comes first.
+
+Note that the writer linger duration setting is currently not applied when Cyclone DDS
+is requested to terminate.
+
+
+.. _`Start-up mode`:
+
+Start-up mode
+-------------
+
+A similar issue exists when starting Cyclone DDS: DDSI discovery takes time, and when
+data is written immediately after the first participant was created, it is likely that
+the discovery process hasn’t completed yet and some remote readers have not yet been
+discovered. This would cause the writers to throw away samples for lack of interest,
+even though matching readers already existed at the time of starting. For best-effort
+writers, this is perhaps surprising but still acceptable; for reliable writers, however,
+it would be very counter-intuitive.
+
+Hence the existence of the so-called *start-up mode*, during which all volatile reliable
+writers are treated as-if they are transient-local writers. Transient-local data is
+meant to ensure samples are available to late-joining readers, the start-up mode uses
+this same mechanism to ensure late-discovered readers will also receive the data. This
+treatment of volatile data as-if it were transient-local happens internally and is
+invisible to the outside world, other than the availability of some samples that would
+not otherwise be available.
+
+Once initial discovery has been completed, any new local writers can be matched locally
+against already existing readers, and consequently keeps any new samples published in a
+writer history cache because these existing readers have not acknowledged them yet.
+Hence why this mode is tied to the start-up of the DDSI stack, rather than to that of an
+individual writer.
+
+Unfortunately it is impossible to detect with certainty when the initial discovery
+process has been completed and therefore the duration of this start-up mode is
+controlled by an option: ``General/StartupModeDuration``.
+
+While in general this start-up mode is beneficial, it is not always so. There are two
+downsides: the first is that during the start-up period, the writer history caches can
+grow significantly larger than one would normally expect; the second is that it does
+mean large amounts of historical data may be transferred to readers discovered
+relatively late in the process.
+
+
+.. _`Writer history QoS and throttling`:
+
+Writer history QoS and throttling
+=================================
+
+The DDSI specification heavily relies on the notion of a writer history cache (WHC)
+within which a sequence number uniquely identifies each sample. This WHC integrates two
+different indices on the samples published by a writer: one is on sequence number, used
+for retransmitting lost samples, and one is on key value and is used for retaining the
+current state of each instance in the WHC.
+
+The index on key value allows dropping samples from the index on sequence number when
+the state of an instance is overwritten by a new sample. For transient-local, it
+conversely (also) allows retaining the current state of each instance even when all
+readers have acknowledged a sample.
+
+The index on sequence number is required for retransmitting old data, and is therefore
+needed for all reliable writers. The index on key values is always needed for
+transient-local data, and will be default also be used for other writers using a history
+setting of ``KEEP_LAST``. (The ``Internal/AggressiveKeepLastWhc`` setting controls this
+behaviour.) The advantage of an index on key value in such a case is that superseded
+samples can be dropped aggressively, instead of having to deliver them to all readers;
+the disadvantage is that it is somewhat more resource-intensive.
+
+The WHC distinguishes between history to be retained for existing readers (controlled by
+the writer’s history QoS setting) and the history to be retained for late-joining
+readers for transient-local writers (controlled by the topic’s durability-service
+history QoS setting). This makes it possible to create a writer that never overwrites
+samples for live readers while maintaining only the most recent samples for late-joining
+readers. Moreover, it ensures that the data that is available for late-joining readers
+is the same for transient-local and for transient data.
+
+Writer throttling is based on the WHC size using a simple controller. Once the WHC
+contains at least *high* bytes in unacknowledged samples, it stalls the writer until the
+number of bytes in unacknowledged samples drops below ``Internal/Watermarks/WhcLow``.
+The value of *high* is dynamically adjusted between ``Internal/Watermarks/WhcLow`` and
+``Internal/Watermarks/WhcHigh`` based on transmit pressure and receive retransmit
+requests. The initial value of *high* is ``Internal/Watermarks/WhcHighInit`` and the
+adaptive behavior can be disabled by setting ``Internal/Watermarks/WhcAdaptive`` to
+false.
+
+While the adaptive behaviour generally handles a variety of fast and slow writers and
+readers quite well, the introduction of a very slow reader with small buffers in an
+existing network that is transmitting data at high rates can cause a sudden stop while
+the new reader tries to recover the large amount of data stored in the writer, before
+things can continue at a much lower rate.
+
+
+.. _`Network and discovery configuration`:
+
+Network and discovery configuration
+***********************************
+
+.. _`Networking interfaces`:
+
+Networking interfaces
+=====================
+
+Cyclone DDS uses a single network interface, the *preferred* interface, for transmitting
+its multicast packets and advertises only the address corresponding to this interface in
+the DDSI discovery protocol.
+
+To determine the default network interface, the eligible interfaces are ranked by
+quality and then selects the interface with the highest quality. If multiple interfaces
+are of the highest quality, it will select the first enumerated one. Eligible
+interfaces are those that are up and have the right kind of address family (IPv4 or
+IPv6). Priority is then determined as follows:
+
++ interfaces with a non-link-local address are preferred over those with
+ a link-local one;
++ multicast-capable is preferred (see also ``Internal/AssumeMulticastCapable``), or if
+ none is available
++ non-multicast capable but neither point-to-point, or if none is available
++ point-to-point, or if none is available
++ loopback
+
+If this procedure doesn’t select the desired interface automatically, it can be
+overridden by setting ``General/NetworkInterfaceAddress`` to either the name of the
+interface, the IP address of the host on the desired interface, or the network portion
+of the IP address of the host on the desired interface. An exact match on the address
+is always preferred and is the only option that allows selecting the desired one when
+multiple addresses are tied to a single interface.
+
+The default address family is IPv4, setting General/UseIPv6 will change this to IPv6.
+Currently, Cyclone DDS does not mix IPv4 and IPv6 addressing. Consequently, all DDSI
+participants in the network must use the same addressing mode. When interoperating,
+this behaviour is the same, i.e., it will look at either IPv4 or IPv6 addresses in the
+advertised address information in the SPDP and SEDP discovery protocols.
+
+IPv6 link-local addresses are considered undesirable because they need to be published
+and received via the discovery mechanism, but there is in general no way to determine to
+which interface a received link-local address is related.
+
+If IPv6 is requested and the preferred interface has a non-link-local address, Cyclone
+DDS will operate in a *global addressing* mode and will only consider discovered
+non-link-local addresses. In this mode, one can select any set of interface for
+listening to multicasts. Note that this behaviour is essentially identical to that when
+using IPv4, as IPv4 does not have the formal notion of address scopes that IPv6 has. If
+instead only a link-local address is available, Cyclone DDS will run in a *link-local
+addressing* mode. In this mode it will accept any address in a discovery packet,
+assuming that a link-local address is valid on the preferred interface. To minimise the
+risk involved in this assumption, it only allows the preferred interface for listening
+to multicasts.
+
+When a remote participant publishes multiple addresses in its SPDP message (or in SEDP
+messages, for that matter), it will select a single address to use for communicating
+with that participant. The address chosen is the first eligible one on the same network
+as the locally chosen interface, else one that is on a network corresponding to any of
+the other local interfaces, and finally simply the first one. Eligibility is determined
+in the same way as for network interfaces.
+
+
+.. _`Multicasting`:
+
+Multicasting
+------------
+
+Cyclone DDS allows configuring to what extent multicast (the regular, any-source
+multicast as well as source-specific multicast) is to be used:
+
++ whether to use multicast for data communications,
++ whether to use multicast for participant discovery,
++ on which interfaces to listen for multicasts.
+
+It is advised to allow multicasting to be used. However, if there are restrictions on
+the use of multicasting, or if the network reliability is dramatically different for
+multicast than for unicast, it may be attractive to disable multicast for normal
+communications. In this case, setting ``General/AllowMulticast`` to ``false`` will
+force the use of unicast communications for everything.
+
+If at all possible, it is strongly advised to leave multicast-based participant
+discovery enabled, because that avoids having to specify a list of nodes to contact, and
+it furthermore reduces the network load considerably. Setting
+``General/AllowMulticast`` to ``spdp`` will allow participant discovery via multicast
+while disabling multicast for everything else.
+
+To disable incoming multicasts, or to control from which interfaces multicasts are to be
+accepted, one can use the ``General/MulticastRecvInterfaceAddresses`` setting. This
+allows listening on no interface, the preferred, all or a specific set of interfaces.
+
+
+.. _`TCP support`:
+
+TCP support
+-----------
+
+The DDSI protocol is really a protocol designed for a transport providing
+connectionless, unreliable datagrams. However, there are times where TCP is the only
+practical network transport available (for example, across a WAN). Because of this,
+Cyclone DDS can use TCP instead of UDP.
+
+The differences in the model of operation between DDSI and TCP are quite large: DDSI is
+based on the notion of peers, whereas TCP communication is based on the notion of a
+session that is initiated by a ‘client’ and accepted by a ‘server’, and so TCP requires
+knowledge of the servers to connect to before the DDSI discovery protocol can exchange
+that information. The configuration of this is done in the same manner as for
+unicast-based UDP discovery.
+
+TCP reliability is defined in terms of these sessions, but DDSI reliability is defined
+in terms of DDSI discovery and liveliness management. It is therefore possible that a
+TCP connection is (forcibly) closed while the remote endpoint is still considered alive.
+Following a reconnect the samples lost when the TCP connection was closed can be
+recovered via the normal DDSI reliability. This also means that the Heartbeats and
+AckNacks still need to be sent over a TCP connection, and consequently that DDSI
+flow-control occurs on top of TCP flow-control.
+
+Another point worth noting is that connection establishment takes a potentially long
+time, and that giving up on a transmission to a failed or no-longer reachable host can
+also take a long time. These long delays can be visible at the application level at
+present.
+
+.. _`TLS support`:
+
+TLS support
+...........
+
+The TCP mode can be used in conjunction with TLS to provide mutual authentication and
+encryption. When TLS is enabled, plain TCP connections are no longer accepted or
+initiated.
+
+
+.. _`Raw Ethernet support`:
+
+Raw Ethernet support
+--------------------
+
+As an additional option, on Linux, Cyclone DDS can use a raw Ethernet network interface
+to communicate without a configured IP stack.
+
+
+.. _`Discovery configuration`:
+
+Discovery configuration
+-----------------------
+
+.. _`Discovery addresses`:
+
+Discovery addresses
+...................
+
+The DDSI discovery protocols, SPDP for the domain participants and SEDP for their
+endpoints, usually operate well without any explicit configuration. Indeed, the SEDP
+protocol never requires any configuration.
+
+The SPDP protocol periodically sends, for each domain participant, an SPDP sample to a
+set of addresses, which by default contains just the multicast address, which is
+standardised for IPv4 (``239.255.0.1``) but not for IPv6 (it uses
+``ff02::ffff:239.255.0.1``). The actual address can be overridden using the
+``Discovery/SPDPMulticastAddress`` setting, which requires a valid multicast address.
+
+In addition (or as an alternative) to the multicast-based discovery, any number of
+unicast addresses can be configured as addresses to be contacted by specifying peers in
+the ``Discovery/Peers`` section. Each time an SPDP message is sent, it is sent to all
+of these addresses.
+
+Default behaviour is to include each IP address several times in the set (for
+participant indices 0 through ``MaxAutoParticipantIndex``, each time with a different
+UDP port number (corresponding to another participant index), allowing at least several
+applications to be present on these hosts.
+
+Obviously, configuring a number of peers in this way causes a large burst of packets
+to be sent each time an SPDP message is sent out, and each local DDSI participant
+causes a burst of its own. Most of the participant indices will not actually be use,
+making this rather wasteful behaviour.
+
+To avoid sending large numbers of packets to each host, differing only in port number,
+it is also possible to add a port number to the IP address, formatted as IP:PORT, but
+this requires manually calculating the port number. In practice it also requires fixing
+the participant index using ``Discovery/ParticipantIndex`` (see the description of ‘PI’
+in `Controlling port numbers`_) to ensure that the configured port number indeed
+corresponds to the port number the remote DDSI implementation is listening on, and
+therefore is really attractive only when it is known that there is but a single DDSI
+process on that node.
+
+
+.. _`Asymmetrical discovery`:
+
+Asymmetrical discovery
+......................
+
+On reception of an SPDP packet, the addresses advertised in the packet are added to the
+set of addresses to which SPDP packets are sent periodically, allowing asymmetrical
+discovery. In an extreme example, if SPDP multicasting is disabled entirely, host A has
+the address of host B in its peer list and host B has an empty peer list, then B will
+eventually discover A because of an SPDP message sent by A, at which point it adds A’s
+address to its own set and starts sending its own SPDP message to A, allowing A to
+discover B. This takes a bit longer than normal multicast based discovery, though, and
+risks writers being blocked by unresponsive readers.
+
+
+.. _`Timing of SPDP packets`:
+
+Timing of SPDP packets
+......................
+
+The interval with which the SPDP packets are transmitted is configurable as well, using
+the Discovery/SPDPInterval setting. A longer interval reduces the network load, but
+also increases the time discovery takes, especially in the face of temporary network
+disconnections.
+
+
+.. _`Endpoint discovery`:
+
+Endpoint discovery
+..................
+
+Although the SEDP protocol never requires any configuration, network partitioning does
+interact with it: so-called ‘ignored partitions’ can be used to instruct Cyclone DDS to
+completely ignore certain DCPS topic and partition combinations, which will prevent data
+for these topic/partition combinations from being forwarded to and from the network.
+
+
+.. _`Combining multiple participants`:
+
+Combining multiple participants
+===============================
+
+If a single process creates multiple participants, these are faithfully mirrored in DDSI
+participants and so a single process can appear as if it is a large system with many
+participants. The ``Internal/SquashParticipants`` option can be used to simulate the
+existence of only one participant, which owns all endpoints on that node. This reduces
+the background messages because far fewer liveliness assertions need to be sent, but
+there are some downsides.
+
+Firstly, the liveliness monitoring features that are related to domain participants will
+be affected if multiple DCPS domain participants are combined into a single DDSI domain
+participant. For the ‘automatic’ liveliness setting, this is not an issue.
+
+Secondly, this option makes it impossible for tooling to show the actual system
+topology.
+
+Thirdly, the QoS of this sole participant is simply that of the first participant
+created in the process. In particular, no matter what other participants specify as
+their ‘user data’, it will not be visible on remote nodes.
+
+There is an alternative that sits between squashing participants and normal operation,
+and that is setting ``Internal/BuiltinEndpointSet`` to ``minimal``. In the default
+setting, each DDSI participant handled has its own writers for built-in topics and
+publishes discovery data on its own entities, but when set to ‘minimal’, only the first
+participant has these writers and publishes data on all entities. This is not fully
+compatible with other implementations as it means endpoint discovery data can be
+received for a participant that has not yet been discovered.
+
+
+.. _`Controlling port numbers`:
+
+Controlling port numbers
+========================
+
+The port numbers used by by Cyclone DDS are determined as follows, where the first two
+items are given by the DDSI specification and the third is unique to Cyclone DDS as a
+way of serving multiple participants by a single DDSI instance:
+
++ 2 ‘well-known’ multicast ports: ``B`` and ``B+1``
++ 2 unicast ports at which only this instance is listening: ``B+PG*PI+10`` and
+ ``B+PG*PI+11``
++ 1 unicast port per domain participant it serves, chosen by the kernel
+ from the anonymous ports, *i.e.* >= 32768
+
+where:
+
++ *B* is ``Discovery/Ports/Base`` (``7400``) + ``Discovery/Ports/DomainGain``
+ (``250``) * ``Domain/Id``
++ *PG* is ``Discovery/Ports/ParticipantGain`` (``2``)
++ *PI* is ``Discovery/ParticipantIndex``
+
+The default values, taken from the DDSI specification, are in parentheses. There are
+actually even more parameters, here simply turned into constants as there is absolutely
+no point in ever changing these values; however, they *are* configurable and the
+interested reader is referred to the DDSI 2.1 or 2.2 specification, section 9.6.1.
+
+PI is the most interesting, as it relates to having multiple processes in the same
+domain on a single node. Its configured value is either *auto*, *none* or a non-negative
+integer. This setting matters:
+
++ When it is *auto* (which is the default), Cyclone DDS probes UDP port numbers on
+ start-up, starting with PI = 0, incrementing it by one each time until it finds a pair
+ of available port numbers, or it hits the limit. The maximum PI it will ever choose
+ is ``Discovery/MaxAutoParticipantIndex`` as a way of limiting the cost of unicast
+ discovery.
++ When it is *none* it simply ignores the ‘participant index’ altogether and asks the
+ kernel to pick random ports (>= 32768). This eliminates the limit on the number of
+ standalone deployments on a single machine and works just fine with multicast
+ discovery while complying with all other parts of the specification for
+ interoperability. However, it is incompatible with unicast discovery.
++ When it is a non-negative integer, it is simply the value of PI in the above
+ calculations. If multiple processes on a single machine are needed, they will need
+ unique values for PI, and so for standalone deployments this particular alternative is
+ hardly useful.
+
+Clearly, to fully control port numbers, setting ``Discovery/ParticipantIndex`` (= PI) to
+a hard-coded value is the only possibility. By fixing PI, the port numbers needed for
+unicast discovery are fixed as well. This allows listing peers as IP:PORT pairs,
+significantly reducing traffic, as explained in the preceding subsection.
+
+The other non-fixed ports that are used are the per-domain participant ports, the third
+item in the list. These are used only because there exist some DDSI implementations
+that assume each domain participant advertises a unique port number as part of the
+discovery protocol, and hence that there is never any need for including an explicit
+destination participant id when intending to address a single domain participant by
+using its unicast locator. Cyclone DDS never makes this assumption, instead opting to
+send a few bytes extra to ensure the contents of a message are all that is needed. With
+other implementations, you will need to check.
+
+If all DDSI implementations in the network include full addressing information in the
+messages like Cyclone DDS does, then the per-domain participant ports serve no purpose
+at all. The default ``false`` setting of ``Compatibility/ManySocketsMode`` disables the
+creation of these ports.
+
+This setting can have a few other side benefits as well, as there will may be multiple
+DCPS participants using the same unicast locator. This improves the chances of a single
+unicast sufficing even when addressing a multiple participants.
+
+
+.. _`Data path configuration`:
+
+Data path configuration
+***********************
+
+.. _`Retransmit merging`:
+
+Retransmit merging
+==================
+
+A remote reader can request retransmissions whenever it receives a Heartbeat and detects
+samples are missing. If a sample was lost on the network for many or all readers, the
+next heartbeat is likely to trigger a ‘storm’ of retransmission requests. Thus, the
+writer should attempt merging these requests into a multicast retransmission, to avoid
+retransmitting the same sample over & over again to many different readers. Similarly,
+while readers should try to avoid requesting retransmissions too often, in an
+interoperable system the writers should be robust against it.
+
+In Cyclone DDS, upon receiving a Heartbeat that indicates samples are missing, a reader
+will schedule the second and following retransmission requests to be sent after
+``Internal/NackDelay`` or combine it with an already scheduled request if possible. Any
+samples received in between receipt of the Heartbeat and the sending of the AckNack will
+not need to be retransmitted.
+
+Secondly, a writer attempts to combine retransmit requests in two different ways. The
+first is to change messages from unicast to multicast when another retransmit request
+arrives while the retransmit has not yet taken place. This is particularly effective
+when bandwidth limiting causes a backlog of samples to be retransmitted. The behaviour
+of the second can be configured using the ``Internal/RetransmitMerging`` setting. Based
+on this setting, a retransmit request for a sample is either honoured unconditionally,
+or it may be suppressed (or ‘merged’) if it comes in shortly after a multicasted
+retransmission of that very sample, on the assumption that the second reader will likely
+receive the retransmit, too. The ``Internal/RetransmitMergingPeriod`` controls the
+length of this time window.
+
+
+.. _`Retransmit backlogs`:
+
+Retransmit backlogs
+===================
+
+Another issue is that a reader can request retransmission of many samples at once. When
+the writer simply queues all these samples for retransmission, it may well result in a
+huge backlog of samples to be retransmitted. As a result, the ones near the end of the
+queue may be delayed by so much that the reader issues another retransmit request.
+
+Therefore, Cyclone DDS limits the number of samples queued for retransmission and
+ignores (those parts of) retransmission requests that would cause the retransmit queue
+to contain too many samples or take too much time to process. There are two settings
+governing the size of these queues, and the limits are applied per timed-event thread.
+The first is ``Internal/MaxQueuedRexmitMessages``, which limits the number of retransmit
+messages, the second ``Internal/MaxQueuedRexmitBytes`` which limits the number of bytes.
+The latter defaults to a setting based on the combination of the allowed transmit
+bandwidth and the ``Internal/NackDelay`` setting, as an approximation of the likely time
+until the next potential retransmit request from the reader.
+
+
+.. _`Controlling fragmentation`:
+
+Controlling fragmentation
+=========================
+
+Samples in DDS can be arbitrarily large, and will not always fit within a single
+datagram. DDSI has facilities to fragment samples so they can fit in UDP datagrams, and
+similarly IP has facilities to fragment UDP datagrams to into network packets. The DDSI
+specification states that one must not unnecessarily fragment at the DDSI level, but
+Cyclone DDS simply provides a fully configurable behaviour.
+
+If the serialised form of a sample is at least ``Internal/FragmentSize``,
+it will be fragmented using the DDSI fragmentation. All but the last fragment
+will be exactly this size; the last one may be smaller.
+
+Control messages, non-fragmented samples, and sample fragments are all subject to
+packing into datagrams before sending it out on the network, based on various attributes
+such as the destination address, to reduce the number of network packets. This packing
+allows datagram payloads of up to ``Internal/MaxMessageSize``, overshooting this size if
+the set maximum is too small to contain what must be sent as a single unit. Note that
+in this case, there is a real problem anyway, and it no longer matters where the data is
+rejected, if it is rejected at all. UDP/IP header sizes are not taken into account in
+this maximum message size.
+
+The IP layer then takes this UDP datagram, possibly fragmenting it into multiple packets
+to stay within the maximum size the underlying network supports. A trade-off to be made
+is that while DDSI fragments can be retransmitted individually, the processing overhead
+of DDSI fragmentation is larger than that of UDP fragmentation.
+
+
+.. _`Receive processing`:
+
+Receive processing
+==================
+
+Receiving of data is split into multiple threads:
+
++ A single receive thread responsible for retrieving network packets and running
+ the protocol state machine;
++ A delivery thread dedicated to processing DDSI built-in data: participant
+ discovery, endpoint discovery and liveliness assertions;
++ One or more delivery threads dedicated to the handling of application data:
+ deserialisation and delivery to the DCPS data reader caches.
+
+The receive thread is responsible for retrieving all incoming network packets, running
+the protocol state machine, which involves scheduling of AckNack and Heartbeat messages
+and queueing of samples that must be retransmitted, and for defragmenting and ordering
+incoming samples.
+
+Fragmented data first enters the defragmentation stage, which is per proxy writer. The
+number of samples that can be defragmented simultaneously is limited, for reliable data
+to ``Internal/DefragReliableMaxSamples`` and for unreliable data to
+``Internal/DefragUnreliableMaxSamples``.
+
+Samples (defragmented if necessary) received out of sequence are buffered, primarily per
+proxy writer, but, secondarily, per reader catching up on historical (transient-local)
+data. The size of the first is limited to ``Internal/PrimaryReorderMaxSamples``, the
+size of the second to ``Internal/SecondaryReorderMaxSamples``.
+
+In between the receive thread and the delivery threads sit queues, of which the maximum
+size is controlled by the ``Internal/DeliveryQueueMaxSamples`` setting. Generally there
+is no need for these queues to be very large (unless one has very small samples in very
+large messaegs), their primary function is to smooth out the processing when batches of
+samples become available at once, for example following a retransmission.
+
+When any of these receive buffers hit their size limit and it concerns application data,
+the receive thread of will wait for the queue to shrink (a compromise that is the lesser
+evil within the constraints of various other choices). However, discovery data will
+never block the receive thread.
+
+
+.. _`Minimising receive latency`:
+
+Minimising receive latency
+==========================
+
+In low-latency environments, a few microseconds can be gained by processing the
+application data directly in the receive thread, or synchronously with respect to the
+incoming network traffic, instead of queueing it for asynchronous processing by a
+delivery thread. This happens for data transmitted with the *max_latency* QoS setting at
+most a configurable value and the *transport_priority* QoS setting at least a
+configurable value. By default, these values are ``inf`` and the maximum transport
+priority, effectively enabling synchronous delivery for all data.
+
+
+.. _`Maximum sample size`:
+
+Maximum sample size
+===================
+
+Cyclone DDS provides a setting, ``Internal/MaxSampleSize``, to control the maximum size
+of samples that the service is willing to process. The size is the size of the (CDR)
+serialised payload, and the limit holds both for built-in data and for application data.
+The (CDR) serialised payload is never larger than the in-memory representation of the
+data.
+
+On the transmitting side, samples larger than ``MaxSampleSize`` are dropped with a
+warning in the. Cyclone DDS behaves as if the sample never existed.
+
+Similarly, on the receiving side, samples large than ``MaxSampleSize`` are dropped as
+early as possible, immediately following the reception of a sample or fragment of one,
+to prevent any resources from being claimed for longer than strictly necessary. Where
+the transmitting side completely ignores the sample, the receiving side pretends the
+sample has been correctly received and, at the acknowledges reception to the writer.
+This allows communication to continue.
+
+When the receiving side drops a sample, readers will get a *sample lost* notification at
+the next sample that does get delivered to those readers. This condition means that
+again checking the info log is ultimately the only truly reliable way of determining
+whether samples have been dropped or not.
+
+While dropping samples (or fragments thereof) as early as possible is beneficial from
+the point of view of reducing resource usage, it can make it hard to decide whether or
+not dropping a particular sample has been recorded in the log already. Under normal
+operational circumstances, only a single message will be recorded for each sample
+dropped, but it may on occasion report multiple events for the same sample.
+
+Finally, it is technically allowed to set ``MaxSampleSize`` to very small sizes,
+even to the point that the discovery data can’t be communicated anymore.
+The dropping of the discovery data will be duly reported, but the usefulness
+of such a configuration seems doubtful.
+
+
+.. _`Network partition configuration`:
+
+Network partition configuration
+*******************************
+
+.. _`Network partition configuration overview`:
+
+Network partition configuration overview
+========================================
+
+Network partitions introduce alternative multicast addresses for data. In the DDSI
+discovery protocol, a reader can override the default address at which it is reachable,
+and this feature of the discovery protocol is used to advertise alternative multicast
+addresses. The DDSI writers in the network will (also) multicast to such an alternative
+multicast address when multicasting samples or control data.
+
+The mapping of a DCPS data reader to a network partition is indirect: first the DCPS
+partitions and topic are matched against a table of *partition mappings*,
+partition/topic combinations to obtain the name of a network partition, then the network
+partition name is used to find a addressing information.. This makes it easier to map
+many different partition/topic combinations to the same multicast address without having
+to specify the actual multicast address many times over.
+
+If no match is found, the default multicast address is used.
+
+
+.. _`Matching rules`:
+
+Matching rules
+==============
+
+Matching of a DCPS partition/topic combination proceeds in the order in which the
+partition mappings are specified in the configuration. The first matching mapping is
+the one that will be used. The ``*`` and ``?`` wildcards are available for the DCPS
+partition/topic combination in the partition mapping.
+
+As mentioned earlier (see `Local discovery and built-in topics`_), Cyclone DDS can be
+instructed to ignore all DCPS data readers and writers for certain DCPS partition/topic
+combinations through the use of *IgnoredPartitions*. The ignored partitions use the
+same matching rules as normal mappings, and take precedence over the normal mappings.
+
+
+.. _`Multiple matching mappings`:
+
+Multiple matching mappings
+==========================
+
+A single DCPS data reader can be associated with a set of partitions, and each
+partition/topic combination can potentially map to a different network partitions. In
+this case, the first matching network partition will be used. This does not affect what
+data the reader will receive; it only affects the addressing on the network.
+
+
+.. _`Thread configuration`:
+
+Thread configuration
+********************
+
+Cyclone DDS creates a number of threads and each of these threads has a number of
+properties that can be controlled individually. The properties that can be controlled
+are:
+
++ stack size,
++ scheduling class, and
++ scheduling priority.
+
+The threads are named and the attribute ``Threads/Thread[@name]`` is used to set the
+properties by thread name. Any subset of threads can be given special properties;
+anything not specified explicitly is left at the default value.
+
+The following threads exist:
+
++ *gc*: garbage collector, which sleeps until garbage collection is requested for an
+ entity, at which point it starts monitoring the state of Cyclone DDS, pushing the
+ entity through whatever state transitions are needed once it is safe to do so, ending
+ with the freeing of the memory.
++ *recv*: accepts incoming network packets from all sockets/ports, performs all protocol
+ processing, queues (nearly) all protocol messages sent in response for handling by the
+ timed-event thread, queues for delivery or, in special cases, delivers it directly to
+ the data readers.
++ *dq.builtins*: processes all discovery data coming in from the network.
++ *lease*: performs internal liveliness monitoring of Cyclone DDS.
++ *tev*: timed-event handling, used for all kinds of things, such as: periodic
+ transmission of participant discovery and liveliness messages, transmission of control
+ messages for reliable writers and readers (except those that have their own
+ timed-event thread), retransmitting of reliable data on request (except those that
+ have their own timed-event thread), and handling of start-up mode to normal mode
+ transition.
+
+and, for each defined channel:
+
++ *dq.channel-name*: deserialisation and asynchronous delivery of all user data.
++ *tev.channel-name*: channel-specific ‘timed-event’ handling: transmission of control
+ messages for reliable writers and readers and retransmission of data on request.
+ Channel-specific threads exist only if the configuration includes an element for it or
+ if an auxiliary bandwidth limit is set for the channel.
+
+When no channels are explicitly defined, there is one channel named *user*.
+
+
+.. _`Reporting and tracing`:
+
+Reporting and tracing
+*********************
+
+Cyclone DDS can produce highly detailed traces of all traffic and internal activities.
+It enables individual categories of information, as well as having a simple verbosity
+level that enables fixed sets of categories.
+
+The categorisation of tracing output is incomplete and hence most of the verbosity
+levels and categories are not of much use in the current release. This is an ongoing
+process and here we describe the target situation rather than the current situation.
+
+All *fatal* and *error* messages are written both to the trace and to the
+``cyclonedds-error.log`` file; similarly all ‘warning’ messages are written to the trace
+and the ``cyclonedds-info.log`` file.
+
+The Tracing element has the following sub elements:
+
++ *Verbosity*:
+ selects a tracing level by enabled a pre-defined set of categories. The
+ list below gives the known tracing levels, and the categories they enable:
+
+ - *none*
+ - *severe*: ‘error’ and ‘fatal’
+ - *warning*, *info*: severe + ‘warning’
+ - *config*: info + ‘config’
+ - *fine*: config + ‘discovery’
+ - *finer*: fine + ‘traffic’, ‘timing’ and ‘info’
+ - *finest*: fine + ‘trace’
+
++ *EnableCategory*:
+ a comma-separated list of keywords, each keyword enabling
+ individual categories. The following keywords are recognised:
+
+ - *fatal*: all fatal errors, errors causing immediate termination
+ - *error*: failures probably impacting correctness but not necessarily causing
+ immediate termination.
+ - *warning*: abnormal situations that will likely not impact correctness.
+ - *config*: full dump of the configuration
+ - *info*: general informational notices
+ - *discovery*: all discovery activity
+ - *data*: include data content of samples in traces
+ - *timing*: periodic reporting of CPU loads per thread
+ - *traffic*: periodic reporting of total outgoing data
+ - *tcp*: connection and connection cache management for the TCP support
+ - *throttle*: throttling events where the writer stalls because its WHC hit the
+ high-water mark
+ - *topic*: detailed information on topic interpretation (in particular topic keys)
+ - *plist*: dumping of parameter lists encountered in discovery and inline QoS
+ - *radmin*: receive buffer administration
+ - *whc*: very detailed tracing of WHC content management
+
+In addition, the keyword *trace* enables everything from *fatal* to *throttle*. The
+*topic* and *plist* ones are useful only for particular classes of discovery failures;
+and *radmin* and *whc* only help in analyzing the detailed behaviour of those two
+components and produce very large amounts of output.
+
++ *OutputFile*: the file to write the trace to
++ *AppendToFile*: boolean, set to ``true`` to append to the trace instead of replacing the
+ file.
+
+Currently, the useful verbosity settings are *config*, *fine* and *finest*.
+
+*Config* writes the full configuration to the trace file as well as any warnings or
+errors, which can be a good way to verify everything is configured and behaving as
+expected.
+
+*Fine* additionally includes full discovery information in the trace, but nothing
+related to application data or protocol activities. If a system has a stable topology,
+this will therefore typically result in a moderate size trace.
+
+*Finest* provides a detailed trace of everything that occurs and is an
+indispensable source of information when analysing problems; however,
+it also requires a significant amount of time and results in huge log files.
+
+Whether these logging levels are set using the verbosity level or by enabling the
+corresponding categories is immaterial.
+
+
+.. _`Compatibility and conformance`:
+
+Compatibility and conformance
+*****************************
+
+.. _`Conformance modes`:
+
+Conformance modes
+=================
+
+Cyclone DDS operates in one of three modes: *pedantic*, *strict* and *lax*; the mode is
+configured using the ``Compatibility/StandardsConformance`` setting. The default is
+*lax*.
+
+The first, *pedantic* mode, is of such limited utility that it will be removed.
+
+The second mode, *strict*, attempts to follow the *intent* of the specification while
+staying close to the letter of it. The points in which it deviates from the standard are
+in all probability editing errors that will be rectified in the next update. When
+operated in this mode, one would expect it to be fully interoperable with other vendors’
+implementations, but this is not the case. The deviations in other vendors’
+implementations are not required to implement DDSI 2.1 (or 2.2), as is proven by, e.g.,
+the OpenSplice DDSI2 service, and they cannot rightly be considered ‘true’
+implementations of the DDSI 2.1 (or 2.2) standard.
+
+The default mode, *lax*, attempts to work around (most of) the deviations of other
+implementations, and generally provides good interoperability without any further
+settings. In lax mode, the Cyclone DDS not only accepts some invalid messages, it will
+even transmit them. The consequences for interoperability of not doing this are simply
+too severe. It should be noted that if one configures two Cyclone DDS processes with
+different compliancy modes, the one in the stricter mode will complain about messages
+sent by the one in the less strict mode.
+
+
+.. _`Compatibility issues with RTI`:
+
+Compatibility issues with RTI
+-----------------------------
+
+In *lax* mode, there should be no major issues with most topic types when working across
+a network, but within a single host there used to be an issue with the way RTI DDS uses,
+or attempts to use, its shared memory transport to communicate with peers even when they
+clearly advertises only UDP/IP addresses. The result is an inability to reliably
+establish bidirectional communication between the two.
+
+Disposing data may also cause problems, as RTI DDS leaves out the serialised key value
+and instead expects the reader to rely on an embedded hash of the key value. In the
+strict modes, Cyclone DDS requires a proper key value to be supplied; in the relaxed
+mode, it is willing to accept key hash, provided it is of a form that contains the key
+values in an unmangled form.
+
+If an RTI DDS data writer disposes an instance with a key of which the serialised
+representation may be larger than 16 bytes, this problem is likely to occur. In
+practice, the most likely cause is using a key as string, either unbounded, or with a
+maximum length larger than 11 bytes. See the DDSI specification for details.
+
+In *strict* mode, there is interoperation with RTI DDS, but at the cost of incredibly
+high CPU and network load, caused by a Heartbeats and AckNacks going back-and-forth
+between a reliable RTI DDS data writer and a reliable Cyclone DDS data reader. The
+problem is that once Cyclone DDS informs the RTI writer that it has received all data
+(using a valid AckNack message), the RTI writer immediately publishes a message listing
+the range of available sequence numbers and requesting an acknowledgement, which becomes
+an endless loop.
+
+There is furthermore also a difference of interpretation of the meaning of the
+‘autodispose_unregistered_instances’ QoS on the writer. Cyclone DDS aligns with
+OpenSplice.
+
+
+.. _`Compatibility issues with TwinOaks`:
+
+Compatibility issues with TwinOaks
+----------------------------------
+
+Interoperability with TwinOaks CoreDX require (or used to require at some point in the
+past):
+
++ ``Compatibility/ManySocketsMode``: *true*
++ ``Compatibility/StandardsConformance``: *lax*
++ ``Compatibility/AckNackNumbitsEmptySet``: *0*
++ ``Compatibility/ExplicitlyPublishQosSetToDefault``: *true*
+
+The ``ManySocketsMode`` option needed to be changed from the default, to ensure that
+each domain participant has a unique locator; this was needed because TwinOaks CoreDX
+DDS did not include the full GUID of a reader or writer if it needs to address just one,
+but this is probably no longer the case. Note that the (old) behaviour of TwinOaks
+CoreDX DDS has always been allowed by the specification.
+
+The ``Compatibility/ExplicitlyPublishQosSetToDefault`` settings work around TwinOaks
+CoreDX DDS’ use of incorrect default values for some of the QoS settings if they are not
+explicitly supplied during discovery. It may be that this is no longer the case.