{"id":0,"registry":{"0":{"submorphs":[{"__isSmartRef__":true,"id":1},{"__isSmartRef__":true,"id":31}],"scripts":[],"shape":{"__isSmartRef__":true,"id":61},"_ClipMode":"visible","derivationIds":["08324C60-F4FC-4728-9954-1C3A6A3014B6","49AA1E5C-8A95-4B2E-BC7A-B80A2088C152","03BEC3B2-DC66-4BE0-BBCA-41C989A76D76","CF2F94D4-237D-4D34-87C4-12932E833B91"],"id":"E436EF2F-C895-4877-B91D-A4C6D5807B60","droppingEnabled":false,"halosEnabled":true,"name":"CoordinateSystem","xScale":{"__isSmartRef__":true,"id":1},"yScale":{"__isSmartRef__":true,"id":31},"eventHandler":{"__isSmartRef__":true,"id":62},"showsHalos":false,"isBeingDragged":false,"partsBinMetaInfo":{"__isSmartRef__":true,"id":63},"target":null,"__serializedExpressions__":["_Position"],"_Rotation":0,"_Scale":1,"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":66},"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(0.0,0.0)"},"1":{"submorphs":[{"__isSmartRef__":true,"id":2},{"__isSmartRef__":true,"id":7},{"__isSmartRef__":true,"id":10},{"__isSmartRef__":true,"id":13},{"__isSmartRef__":true,"id":16},{"__isSmartRef__":true,"id":19},{"__isSmartRef__":true,"id":22},{"__isSmartRef__":true,"id":25}],"scripts":[],"shape":{"__isSmartRef__":true,"id":29},"_ClipMode":"visible","derivationIds":[],"id":"3CC97779-40D6-4DCF-89A6-2D213F6D237E","droppingEnabled":true,"halosEnabled":false,"__serializedExpressions__":["_Position"],"label":{"__isSmartRef__":true,"id":2},"owner":{"__isSmartRef__":true,"id":0},"eventHandler":{"__isSmartRef__":true,"id":30},"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(0.0,0.0)"},"2":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":3},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":4}],"_ClipMode":"visible","derivationIds":[],"id":"6C3BC8B9-C1A7-4CD8-B424-101BBA9697D2","_InputAllowed":false,"_HandStyle":"default","allowInput":false,"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":false,"draggingEnabled":true,"fixedWidth":true,"fixedHeight":true,"_FontFamily":"Helvetica","_FontSize":10,"__serializedExpressions__":["_TextColor","_Position"],"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":1},"_Align":"center","eventHandler":{"__isSmartRef__":true,"id":6},"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(64,64,64)","_Position":"lively.pt(134.0,-6.5)"},"3":{"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"_BorderWidth":0,"_Fill":null,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(17.0,17.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(0,0,0)"},"4":{"style":{"__isSmartRef__":true,"id":5},"chunkOwner":{"__isSmartRef__":true,"id":2},"_id":"_41332","storedString":"x","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"5":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"6":{"morph":{"__isSmartRef__":true,"id":2},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"7":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":8},"_ClipMode":"visible","derivationIds":[],"id":"4959D333-E19A-4915-93D4-572970F1AE3E","droppingEnabled":true,"halosEnabled":false,"__serializedExpressions__":["_Position"],"owner":{"__isSmartRef__":true,"id":1},"eventHandler":{"__isSmartRef__":true,"id":9},"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(19.0,0.0)"},"8":{"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor","_Fill"],"_BorderWidth":0,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(2.0,4.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(0,0,0)"},"9":{"morph":{"__isSmartRef__":true,"id":7},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"10":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":11},"_ClipMode":"visible","derivationIds":[],"id":"0518544E-4888-4DC4-A757-6BFFA91DC6B7","droppingEnabled":true,"halosEnabled":false,"__serializedExpressions__":["_Position"],"owner":{"__isSmartRef__":true,"id":1},"eventHandler":{"__isSmartRef__":true,"id":12},"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(39.0,0.0)"},"11":{"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor","_Fill"],"_BorderWidth":0,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(2.0,4.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(0,0,0)"},"12":{"morph":{"__isSmartRef__":true,"id":10},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"13":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":14},"_ClipMode":"visible","derivationIds":[],"id":"74C5AC11-9449-463C-8CE7-1AB4CE6D44E3","droppingEnabled":true,"halosEnabled":false,"__serializedExpressions__":["_Position"],"owner":{"__isSmartRef__":true,"id":1},"eventHandler":{"__isSmartRef__":true,"id":15},"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(59.0,0.0)"},"14":{"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor","_Fill"],"_BorderWidth":0,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(2.0,4.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(0,0,0)"},"15":{"morph":{"__isSmartRef__":true,"id":13},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"16":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":17},"_ClipMode":"visible","derivationIds":[],"id":"BD6A7BE5-D202-404B-847E-54BE3B6EC344","droppingEnabled":true,"halosEnabled":false,"__serializedExpressions__":["_Position"],"owner":{"__isSmartRef__":true,"id":1},"eventHandler":{"__isSmartRef__":true,"id":18},"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(79.0,0.0)"},"17":{"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor","_Fill"],"_BorderWidth":0,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(2.0,4.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(0,0,0)"},"18":{"morph":{"__isSmartRef__":true,"id":16},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"19":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":20},"_ClipMode":"visible","derivationIds":[],"id":"67C79EA8-684F-4985-9396-B5C111B21886","droppingEnabled":true,"halosEnabled":false,"__serializedExpressions__":["_Position"],"owner":{"__isSmartRef__":true,"id":1},"eventHandler":{"__isSmartRef__":true,"id":21},"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(99.0,0.0)"},"20":{"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor","_Fill"],"_BorderWidth":0,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(2.0,4.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(0,0,0)"},"21":{"morph":{"__isSmartRef__":true,"id":19},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"22":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":23},"_ClipMode":"visible","derivationIds":[],"id":"A03CD6EC-A134-410C-8004-2F862758DCE5","droppingEnabled":true,"halosEnabled":false,"__serializedExpressions__":["_Position"],"owner":{"__isSmartRef__":true,"id":1},"eventHandler":{"__isSmartRef__":true,"id":24},"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(119.0,0.0)"},"23":{"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor","_Fill"],"_BorderWidth":0,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(2.0,4.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(0,0,0)"},"24":{"morph":{"__isSmartRef__":true,"id":22},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"25":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":26},"_ClipMode":"visible","derivationIds":[],"id":"3C20EDC3-343A-4CDB-B5F3-8AEBD194C944","droppingEnabled":false,"halosEnabled":false,"controlPoints":"M-18.0000,-8 L-18.0000,8 L0.0000,0 L-18.0000,-8","grabbingEnabled":false,"doNotSerialize":[],"doNotCopyProperties":[],"__serializedExpressions__":["_Position"],"_Rotation":0,"_Scale":1,"layout":{"__isSmartRef__":true,"id":27},"owner":{"__isSmartRef__":true,"id":1},"eventHandler":{"__isSmartRef__":true,"id":28},"__LivelyClassName__":"lively.morphic.Path","__SourceModuleName__":"Global.lively.morphic.AdditionalMorphs","_Position":"lively.pt(128.0,2.0)"},"26":{"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor","_Fill"],"_BorderWidth":0,"_BorderStyle":"solid","_BorderRadius":0,"_Opacity":1,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(0.0,0.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(255,153,0)"},"27":{},"28":{"morph":{"__isSmartRef__":true,"id":25},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"29":{"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor","_Fill"],"_BorderWidth":0,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(120.0,4.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(255,153,0)"},"30":{"morph":{"__isSmartRef__":true,"id":1},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"31":{"submorphs":[{"__isSmartRef__":true,"id":32},{"__isSmartRef__":true,"id":37},{"__isSmartRef__":true,"id":40},{"__isSmartRef__":true,"id":43},{"__isSmartRef__":true,"id":46},{"__isSmartRef__":true,"id":49},{"__isSmartRef__":true,"id":52},{"__isSmartRef__":true,"id":55}],"scripts":[],"shape":{"__isSmartRef__":true,"id":59},"_ClipMode":"visible","derivationIds":[],"id":"0C2ABE44-BA4B-47FE-8338-4F2E594F740E","droppingEnabled":true,"halosEnabled":false,"__serializedExpressions__":["_Position"],"label":{"__isSmartRef__":true,"id":32},"owner":{"__isSmartRef__":true,"id":0},"eventHandler":{"__isSmartRef__":true,"id":60},"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(0.0,0.0)"},"32":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":33},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":34}],"_ClipMode":"visible","derivationIds":[],"id":"0D5D7EB3-9447-40BE-B076-F6000E73DB3A","_InputAllowed":false,"_HandStyle":"default","allowInput":false,"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":false,"draggingEnabled":true,"fixedWidth":true,"fixedHeight":true,"_FontFamily":"Helvetica","_FontSize":10,"__serializedExpressions__":["_TextColor","_Position"],"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":31},"_Align":"center","eventHandler":{"__isSmartRef__":true,"id":36},"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(64,64,64)","_Position":"lively.pt(-6.5,134.0)"},"33":{"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"_BorderWidth":0,"_Fill":null,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(17.0,17.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(0,0,0)"},"34":{"style":{"__isSmartRef__":true,"id":35},"chunkOwner":{"__isSmartRef__":true,"id":32},"_id":"_41334","storedString":"y","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"35":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"36":{"morph":{"__isSmartRef__":true,"id":32},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"37":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":38},"_ClipMode":"visible","derivationIds":[],"id":"4B7A210B-2AD5-4AA1-A95E-CAA7C99BACDE","droppingEnabled":true,"halosEnabled":false,"__serializedExpressions__":["_Position"],"owner":{"__isSmartRef__":true,"id":31},"eventHandler":{"__isSmartRef__":true,"id":39},"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(0.0,19.0)"},"38":{"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor","_Fill"],"_BorderWidth":0,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(4.0,2.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(0,0,0)"},"39":{"morph":{"__isSmartRef__":true,"id":37},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"40":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":41},"_ClipMode":"visible","derivationIds":[],"id":"63F241E4-FECF-4703-A308-658640B095D2","droppingEnabled":true,"halosEnabled":false,"__serializedExpressions__":["_Position"],"owner":{"__isSmartRef__":true,"id":31},"eventHandler":{"__isSmartRef__":true,"id":42},"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(0.0,39.0)"},"41":{"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor","_Fill"],"_BorderWidth":0,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(4.0,2.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(0,0,0)"},"42":{"morph":{"__isSmartRef__":true,"id":40},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"43":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":44},"_ClipMode":"visible","derivationIds":[],"id":"F3044B37-1863-4033-B81C-FD9F3979202C","droppingEnabled":true,"halosEnabled":false,"__serializedExpressions__":["_Position"],"owner":{"__isSmartRef__":true,"id":31},"eventHandler":{"__isSmartRef__":true,"id":45},"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(0.0,59.0)"},"44":{"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor","_Fill"],"_BorderWidth":0,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(4.0,2.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(0,0,0)"},"45":{"morph":{"__isSmartRef__":true,"id":43},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"46":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":47},"_ClipMode":"visible","derivationIds":[],"id":"81A24706-F33B-40EA-BA8C-76B1AF29B089","droppingEnabled":true,"halosEnabled":false,"__serializedExpressions__":["_Position"],"owner":{"__isSmartRef__":true,"id":31},"eventHandler":{"__isSmartRef__":true,"id":48},"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(0.0,79.0)"},"47":{"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor","_Fill"],"_BorderWidth":0,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(4.0,2.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(0,0,0)"},"48":{"morph":{"__isSmartRef__":true,"id":46},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"49":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":50},"_ClipMode":"visible","derivationIds":[],"id":"E574D647-2549-4419-B65E-325AD647F751","droppingEnabled":true,"halosEnabled":false,"__serializedExpressions__":["_Position"],"owner":{"__isSmartRef__":true,"id":31},"eventHandler":{"__isSmartRef__":true,"id":51},"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(0.0,99.0)"},"50":{"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor","_Fill"],"_BorderWidth":0,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(4.0,2.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(0,0,0)"},"51":{"morph":{"__isSmartRef__":true,"id":49},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"52":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":53},"_ClipMode":"visible","derivationIds":[],"id":"6CD1D3CF-79D9-4066-8A8C-34B044A65964","droppingEnabled":true,"halosEnabled":false,"__serializedExpressions__":["_Position"],"owner":{"__isSmartRef__":true,"id":31},"eventHandler":{"__isSmartRef__":true,"id":54},"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(0.0,119.0)"},"53":{"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor","_Fill"],"_BorderWidth":0,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(4.0,2.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(0,0,0)"},"54":{"morph":{"__isSmartRef__":true,"id":52},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"55":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":56},"_ClipMode":"visible","derivationIds":[],"id":"E312C595-DD79-42FB-B788-171D74335B57","droppingEnabled":false,"halosEnabled":false,"controlPoints":"M-18.0000,-8 L-18.0000,8 L0.0000,0 L-18.0000,-8","grabbingEnabled":false,"doNotSerialize":[],"doNotCopyProperties":[],"__serializedExpressions__":["_Position"],"_Rotation":1.5707963267948966,"_Scale":1,"layout":{"__isSmartRef__":true,"id":57},"owner":{"__isSmartRef__":true,"id":31},"eventHandler":{"__isSmartRef__":true,"id":58},"__LivelyClassName__":"lively.morphic.Path","__SourceModuleName__":"Global.lively.morphic.AdditionalMorphs","_Position":"lively.pt(2.0,128.0)"},"56":{"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor","_Fill"],"_BorderWidth":0,"_BorderStyle":"solid","_BorderRadius":0,"_Opacity":1,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(0.0,0.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(255,153,0)"},"57":{},"58":{"morph":{"__isSmartRef__":true,"id":55},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"59":{"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor","_Fill"],"_BorderWidth":0,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(4.0,120.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(255,153,0)"},"60":{"morph":{"__isSmartRef__":true,"id":31},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"61":{"_BorderWidth":0,"_Fill":null,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(120.0,120.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(0,0,0)"},"62":{"morph":{"__isSmartRef__":true,"id":0},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"63":{"partName":"CoordinateSystem","requiredModules":[],"partsSpaceName":"PartsBin/Debugging/","comment":"A CoordinateSystem can be dropped onto other morphs and will then visualize the tranform of that morphs in terms of the coordinate system the morph uses locally.","changes":[{"__isSmartRef__":true,"id":64},{"__isSmartRef__":true,"id":65}],"migrationLevel":8,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"64":{"author":"robertkrahn","message":"no comment","id":"31E17DD8-B5FA-43F3-AABE-D975FB0DFDC9","__serializedExpressions__":["date"],"date":"new Date(\"Mon Apr 28 2014 04:37:19 GMT-0700 (PDT)\")"},"65":{"__serializedExpressions__":["date"],"author":"robertkrahn","message":"no comment","id":"B59C5C56-2E89-4674-8027-5E738AECAB4E","date":"new Date(\"Mon Apr 28 2014 07:13:35 GMT-0700 (PDT)\")"},"66":{"openOn":{"__isSmartRef__":true,"id":67},"onDropOn":{"__isSmartRef__":true,"id":70},"update":{"__isSmartRef__":true,"id":77},"stopObserving":{"__isSmartRef__":true,"id":80},"reset":{"__isSmartRef__":true,"id":83},"prepareForExtent":{"__isSmartRef__":true,"id":86}},"67":{"varMapping":{"__isSmartRef__":true,"id":68},"source":"function openOn(target) {\n        this.stopObserving();\n        this.target = target;\n        this.prepareForExtent(target.innerBounds().extent());\n        this.openInWorld();\n        this.startStepping(.1*1000, 'update');\n        this.update();\n        return this;\n    }","funcProperties":{"__isSmartRef__":true,"id":69},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"68":{"this":{"__isSmartRef__":true,"id":0}},"69":{},"70":{"varMapping":{"__isSmartRef__":true,"id":71},"source":"function onDropOn(otherMorph) {\n        if (!otherMorph || otherMorph.isWorld || otherMorph.isHand) {\n            alertOK('coordinate system has no target,\\nstopping');\n            this.stopStepping();\n            return;\n        }\n\n        alertOK('showing coordinate system for\\n' + otherMorph);\n        this.openOn(otherMorph);\n    }","funcProperties":{"__isSmartRef__":true,"id":76},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"71":{"this":{"__isSmartRef__":true,"id":0},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":72}},"72":{"$super":{"__isSmartRef__":true,"id":73}},"73":{"varMapping":{"__isSmartRef__":true,"id":74},"source":"function () {\n                try {\n                    // FIXME super is supposed to be static\n                    return Object.getPrototypeOf(obj)[name].apply(obj, arguments);\n                } catch (e) {\n                    if ($world)\n                        $world.logError(e, 'Error in $super call')\n                    else\n                        alert('Error in $super call: ' + e + '\\n' + e.stack);\n                    return null;\n                }\n            }","funcProperties":{"__isSmartRef__":true,"id":75},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"74":{"obj":{"__isSmartRef__":true,"id":0},"name":"onDropOn"},"75":{},"76":{},"77":{"varMapping":{"__isSmartRef__":true,"id":78},"source":"function update() {\n        var w = this.target && this.target.world();\n\n        if (!w || !this.owner || !this.world() || this.owner.isHand) {\n            this.stopStepping();\n            return;\n        }\n\n\n        var tfm = this.target.getGlobalTransform();\n        \n        this.setPosition(tfm.getTranslation());\n        this.setRotation(tfm.getRotation().toRadians());\n        this.setScale(tfm.getScale());\n\n        // ensure that coordsystem is in front of target\n        var ownerInWorld = this.target.owner === w ? this.target : this.target.ownerChain().slice(-2)[0],\n            ownerInWorldIdx = w.submorphs.indexOf(ownerInWorld),\n            containerIdx = w.submorphs.indexOf(this);\n\n        if (ownerInWorldIdx > containerIdx) w.addMorphFront(this);\n    }","funcProperties":{"__isSmartRef__":true,"id":79},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"78":{"this":{"__isSmartRef__":true,"id":0}},"79":{},"80":{"varMapping":{"__isSmartRef__":true,"id":81},"source":"function stopObserving() {\n        this.stopStepping();\n        if (this.target) this.target = null;\n    }","funcProperties":{"__isSmartRef__":true,"id":82},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"81":{"this":{"__isSmartRef__":true,"id":0}},"82":{},"83":{"varMapping":{"__isSmartRef__":true,"id":84},"source":"function reset() {\n        this.stopObserving();\n        this.prepareForExtent(pt(100,100));\n    }","funcProperties":{"__isSmartRef__":true,"id":85},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"84":{"this":{"__isSmartRef__":true,"id":0}},"85":{},"86":{"varMapping":{"__isSmartRef__":true,"id":87},"source":"function prepareForExtent(extent) {\n\n        var w = extent.x, h = extent.y;\n\n        var scaleWidth = 4;\n        var scaleOverreach = 20;\n\n        var scaleStyle = {\n            borderWidth: 0,\n            fill: Color.orange\n        }\n    \n        var labelStyle = {\n            fixedWidth: true,\n            fixedHeight: true,\n            fill: null,\n            align: 'center',\n            padding: rect(0,0,0,0),\n            borderWidth: 0,\n            allowInput: false\n        }\n\n        // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n\n        this.setExtent(pt(w+scaleOverreach, h+scaleOverreach));\n\n        this.applyStyle({fill: null, borderWidth: 0});\n\n        this.setName('CoordianteSystem');\n        // this.isEpiMorph = true;\n\n        if (this.xScale) this.xScale.remove();\n        if (this.yScale) this.yScale.remove();\n\n        this.xScale = this.addMorph(createXScale(scaleStyle));\n        this.yScale = this.addMorph(createYScale(scaleStyle));\n\n        this.submorphs.forEach(function(ea) {\n            ea.withAllSubmorphsDo(Functions.K).invoke('disableHalos');\n        });\n\n\n        // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n        // helper\n\n        function createXScale(style) {\n            var m = lively.morphic.Morph.makeRectangle(0,0, w+scaleOverreach,scaleWidth);\n            m.applyStyle(style);\n    \n            var label = m.label = new lively.morphic.Text(rect(0,0,17,17), 'x');\n            m.addMorph(label);\n            label.applyStyle(labelStyle);\n            (function() {\n                label.setExtent(label.getExtent());\n                label.align(label.bounds().leftCenter(), m.innerBounds().rightCenter().addXY(14, 0));\n            }).delay(0);\n    \n    \n            Array.range(0, w+scaleOverreach, 20).forEach(function(tickX) {\n                if (tickX === 0) return;\n                m.addMorph(\n                    lively.morphic.Morph.makeRectangle(tickX-1,0, 2, scaleWidth)\n                        .applyStyle({fill: Color.black, borderWidth: 0}));\n            });\n    \n            var arr = createArrow();\n            m.addMorph(arr);\n            arr.align(arr.getPosition(), m.innerBounds().rightCenter().addXY(8, 0));\n    \n            return m;\n        }\n    \n        function createYScale(style) {\n            var m = lively.morphic.Morph.makeRectangle(0,0, scaleWidth,h + scaleOverreach);\n            m.applyStyle(style);\n    \n            var label = m.label = new lively.morphic.Text(rect(0,0,17,17), 'y');\n            m.addMorph(label);\n            label.applyStyle(labelStyle);\n            (function() {\n                label.setExtent(label.getExtent());\n                label.align(label.bounds().topCenter(), m.innerBounds().bottomCenter().addXY(0, 14));\n            }).delay(0);\n    \n            Array.range(0, h+scaleOverreach, 20).forEach(function(tickY) {\n                if (tickY === 0) return;\n                m.addMorph(\n                    lively.morphic.Morph.makeRectangle(0,tickY-1, scaleWidth, 2)\n                        .applyStyle({fill: Color.black, borderWidth: 0}));\n            });\n    \n            var arr = createArrow();\n            arr.setRotation((90).toRadians());\n            m.addMorph(arr);\n            arr.align(arr.getPosition(), m.innerBounds().bottomCenter().addXY(0, 8));\n    \n            return m;\n        }\n    \n        function createArrow() {\n            return lively.BuildSpec({\n                _Fill: Color.orange,\n                // _Origin: lively.pt(0, 8),\n                className: \"lively.morphic.Path\",\n                controlPoints: \"M-18.0000,-8 L-18.0000,8 L0.0000,0 L-18.0000,-8\",\n                droppingEnabled: false,\n                grabbingEnabled: false,\n                sourceModule: \"lively.morphic.AdditionalMorphs\"\n            }).createMorph();\n        }\n    }","funcProperties":{"__isSmartRef__":true,"id":88},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"87":{"this":{"__isSmartRef__":true,"id":0}},"88":{},"isSimplifiedRegistry":true}}