{"id":0,"registry":{"0":{"submorphs":[{"__isSmartRef__":true,"id":1},{"__isSmartRef__":true,"id":46}],"scripts":[{"__isSmartRef__":true,"id":71}],"id":"BA318103-15D9-4858-9967-5B95B670728A","shape":{"__isSmartRef__":true,"id":72},"droppingEnabled":true,"halosEnabled":true,"registeredForMouseEvents":true,"showsHalos":false,"name":"RelaxUIv2","partsBinMetaInfo":{"__isSmartRef__":true,"id":73},"eventHandler":{"__isSmartRef__":true,"id":108},"derivationIds":[127,"F0291F62-F100-480C-AEBF-0230398F7983","AE8B5ED7-E305-45BC-BE4A-1C28A49EE12B","39BA345C-17FA-45A0-BAC2-F0CF5654ACF8","FE91EA31-D8AE-461B-8A49-95DA5FBAE5B4","F38439A3-2F4E-4AC2-BF73-2633C00B1393","6748F5B5-2284-4748-A6EE-F1A261CBAD0B","BBAFB862-93AE-4F89-BCFF-9F1C67B7FE4C","7EC17E78-593A-4CC8-B7E3-859BCBBFE785","BD8BECDB-A9A1-4009-B433-C925F0AFCCFC","F2677A9D-5855-4DF2-B248-94545B34B762","D52188B3-7DC0-410E-96B1-50892AC00A37","0CB258C2-D570-4220-B2BC-30BB14104A00","D8999DAB-5BDA-4A0E-A733-17675087D8D3","727D131A-D4FE-4F5A-B975-F05915BB906F","CD1C4A80-5A58-424A-92BA-F2F79AF3188C","9726DDB5-46FB-49BA-B3B4-2F97909DE5E6","E0E4658B-858F-4966-9ECC-62A195429E6B","6E4EB66B-DAF1-45AB-B988-A228C16C3E58","96EA231F-4221-4633-A719-BD1512D34201","CFC3AF28-01B5-4EBD-8CC5-D7BB8726EF06","C3223976-B966-45CF-9A9A-3F54CD427C99","31DF8BAD-8AB8-49A6-A74B-5642BFDAB138","CD2B2AE2-7E3F-4E5A-9D32-C900B6DDAF91"],"partTests":{"__isSmartRef__":true,"id":109},"_ClipMode":"visible","moved":true,"relax":{"__isSmartRef__":true,"id":114},"isBeingDragged":false,"lines":[],"__serializedExpressions__":["_Position","distanceToDragEvent"],"_Rotation":0,"_Scale":1,"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":115},"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(0.0,0.0)","distanceToDragEvent":"lively.pt(53.0,-11.0)"},"1":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":2},"id":"DC3F22A9-110F-4C9A-A86F-F61B60730CB4","eventHandler":{"__isSmartRef__":true,"id":3},"droppingEnabled":true,"halosEnabled":true,"showsHalos":false,"layout":{"__isSmartRef__":true,"id":4},"name":"Point","partsBinMetaInfo":{"__isSmartRef__":true,"id":5},"derivationIds":[113,"07BC3F00-A1CC-4E18-8B69-527B6067A724","13233823-1113-464C-ADCF-071B43D6AEF6","2F1DBF66-E53D-4B13-9793-53EBDA946EEB","8FD80762-096B-48DB-8141-2C96F04625A3","C69CCBC2-8516-4164-BC07-7615A0C14275","FCEE158B-94AE-4177-95EF-1A232B5B632B","EC19BD2F-A66A-49EB-B9B8-1AB2EC6CD06E","ECC324B5-B2E9-4699-9BA8-2112F46DB4F5","634B77E0-ECD1-4B7A-9459-6FFFE05302EF","9FE6E59C-C772-4C45-936D-0EAE262A0C7C","6D5C9C6B-3431-41C7-A881-C8022BFB7E4D","4476767E-F288-4770-BA28-540EB6EB2ACB","177A9411-B5EA-4951-B506-EF46948F63E4","34DF9AE1-D95E-4C9B-A88E-29F719B9CB98","836986A1-C50B-475A-B191-A6BE396A419A"],"_ClipMode":"visible","owner":{"__isSmartRef__":true,"id":0},"isBeingDragged":false,"grabbingEnabled":false,"draggingEnabled":true,"isRelaxPoint":true,"__serializedExpressions__":["_Position","distanceToDragEvent"],"_Rotation":0,"_Scale":1,"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":9},"__LivelyClassName__":"lively.morphic.Morph","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(16.0,18.0)","distanceToDragEvent":"lively.pt(39.0,-13.0)"},"2":{"_ClipMode":"visible","_BorderWidth":1.26,"_BorderRadius":0,"_Opacity":1,"_BorderStyle":"solid","_AppearanceStylingMode":false,"_BorderStylingMode":false,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor","_Fill"],"__LivelyClassName__":"lively.morphic.Shapes.Ellipse","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(-10.0,-10.0)","_Extent":"lively.pt(20.0,20.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(0,204,30)"},"3":{"morph":{"__isSmartRef__":true,"id":1},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"4":{},"5":{"partName":"Ellipse","requiredModules":[],"migrationLevel":8,"partsSpaceName":"PartsBin/Basic","comment":"This is a \"Ellipse\"","changes":[{"__isSmartRef__":true,"id":6},{"__isSmartRef__":true,"id":7},{"__isSmartRef__":true,"id":8}],"__serializedExpressions__":["lastModifiedDate"],"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin","lastModifiedDate":"new Date(\"Tue Jul 23 2013 23:21:08 GMT-0700 (PDT)\")"},"6":{"author":"robertkrahn","message":"no comment","id":"EE799F0E-9E4A-4AF8-98F7-DAEF09F6A8DC","__serializedExpressions__":["date"],"date":"new Date(\"Fri Feb 15 2013 11:22:02 GMT-0800 (PST)\")"},"7":{"author":"undefined","message":"reverted changes - was there any description of this morph?","id":"C3C03411-9523-4F35-89EC-B20E24B3C287","__serializedExpressions__":["date"],"date":"new Date(\"Tue Apr 03 2012 00:08:08 GMT-0700 (PDT)\")"},"8":{"author":null,"message":"no comment","id":"8081E212-F627-4DBF-A925-E884B7F401F7","__serializedExpressions__":["date"],"date":"new Date(\"Fri Jul 12 2013 12:14:02 GMT-0700 (PDT)\")"},"9":{"onDragStart":{"__isSmartRef__":true,"id":10},"getNewPoint":{"__isSmartRef__":true,"id":17},"updatePoint":{"__isSmartRef__":true,"id":20},"onOwnerChanged":{"__isSmartRef__":true,"id":23},"forgetMe":{"__isSmartRef__":true,"id":30},"updateFromRelax":{"__isSmartRef__":true,"id":33},"morphMenuItems":{"__isSmartRef__":true,"id":36},"combinatorFor":{"__isSmartRef__":true,"id":43}},"10":{"varMapping":{"__isSmartRef__":true,"id":11},"source":"function onDragStart() {\n    var newEllipse = this.getNewPoint();\n    newEllipse.openInHand();\n    return newEllipse;\n}","funcProperties":{"__isSmartRef__":true,"id":16},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"11":{"this":{"__isSmartRef__":true,"id":1},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":12}},"12":{"$super":{"__isSmartRef__":true,"id":13}},"13":{"varMapping":{"__isSmartRef__":true,"id":14},"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":15},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"14":{"obj":{"__isSmartRef__":true,"id":1},"name":"onDragStart"},"15":{},"16":{"user":"larswassermann","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Tue Aug 12 2014 14:52:19 GMT-0700 (PDT)\")"},"17":{"varMapping":{"__isSmartRef__":true,"id":18},"source":"function getNewPoint() {\n    var newEllipse = this.copy();\n    newEllipse.relax = this.owner.relax;\n    newEllipse.point = this.owner.relax.add(lively.pt(0, 0));\n    newEllipse.point.morph = newEllipse;\n    \n    delete newEllipse.onDragStart;\n    delete newEllipse.getNewPoint;\n    Global.connect(newEllipse, 'position', newEllipse, 'updatePoint', {converter: function(newPt) {\n        return this.sourceObj.getPosition();\n    }});\n    return newEllipse;\n}","funcProperties":{"__isSmartRef__":true,"id":19},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"18":{"this":{"__isSmartRef__":true,"id":1}},"19":{"user":"larswassermann","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Tue Aug 12 2014 16:16:26 GMT-0700 (PDT)\")"},"20":{"varMapping":{"__isSmartRef__":true,"id":21},"source":"function updatePoint(newPt) {\n    lively.bindings.noUpdate(\n            {sourceObj: this, \n            sourceAttribute: 'position', \n            targetObj: this, \n            targetAttribute: 'updatePoint'}, \n            function() {\n                this.point.x = newPt.x;\n                this.point.y = newPt.y;\n            }.bind(this))\n}","funcProperties":{"__isSmartRef__":true,"id":22},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"21":{"this":{"__isSmartRef__":true,"id":1}},"22":{"user":"larswassermann","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Tue Aug 12 2014 15:22:04 GMT-0700 (PDT)\")"},"23":{"varMapping":{"__isSmartRef__":true,"id":24},"source":"function onOwnerChanged(newOwner) {\n    if (newOwner === null) {\n        window.setTimeout(this.forgetMe.bind(this), 1000);\n    } else if (newOwner !== $world && !newOwner.adjustTransformation) {\n        newOwner.addScript(function adjustTransformation() {\n            var rps = this.submorphs.filter(function(ea) {\n                    return ea.isRelaxPoint\n                }),\n                oldPts = rps.map(function(ea) { return ea.getPositionInWorld(); }),\n                newPts = rps.map(function(ea) { return ea.point; }),\n                update = !(newPts.all(function(p, idx) {\n                        return Math.abs(p.x - oldPts[idx].x) < 0.1\n                            && Math.abs(p.y - oldPts[idx].y) < 0.1; }, this));\n            if (update) {\n                var gauss = Global.lib.relax.demo.GaussLRElimination,\n                    transform = this.getTransform(),\n                    change = gauss.fromPoints(oldPts, newPts);\n                this.setTransform(transform.preConcatenate(change));\n                rps.forEach(function(ea) {\n                    var pos = ea.getPositionInWorld();\n                    ea.point.initialize(pos.x, pos.y);\n                })\n            }\n        });\n    }\n    if (this.world() && this.point) {\n        var pos = this.getPositionInWorld();\n        this.point.initialize(pos.x, pos.y);\n    }\n}","funcProperties":{"__isSmartRef__":true,"id":29},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"24":{"this":{"__isSmartRef__":true,"id":1},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":25}},"25":{"$super":{"__isSmartRef__":true,"id":26}},"26":{"varMapping":{"__isSmartRef__":true,"id":27},"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":28},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"27":{"obj":{"__isSmartRef__":true,"id":1},"name":"onOwnerChanged"},"28":{},"29":{"user":"larswassermann","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Tue Aug 12 2014 16:44:20 GMT-0700 (PDT)\")"},"30":{"varMapping":{"__isSmartRef__":true,"id":31},"source":"function forgetMe() {\n    if (!this.world()){\n        this.relax && this.relax.remove(this.point);\n        this.point = undefined;\n    }\n}","funcProperties":{"__isSmartRef__":true,"id":32},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"31":{"this":{"__isSmartRef__":true,"id":1}},"32":{"user":"larswassermann","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Tue Oct 28 2014 09:39:55 GMT-0700 (PDT)\")"},"33":{"varMapping":{"__isSmartRef__":true,"id":34},"source":"function updateFromRelax() {\n    if(!this.owner || $world.hands.include(this.owner) || $world.hands.include(this.owner.owner) || this.owner == $world) {\n        var pos = this.getPositionInWorld();\n        this.point.initialize(pos.x, pos.y);\n        return // when grabbed or place in the world, don't do anything\n    }\n    if (this.owner && this.point.dist(this.getPositionInWorld()) > 1){\n        this.owner.adjustTransformation();\n    }\n}","funcProperties":{"__isSmartRef__":true,"id":35},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"34":{"this":{"__isSmartRef__":true,"id":1}},"35":{"user":"larswassermann","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Tue Aug 12 2014 16:56:18 GMT-0700 (PDT)\")"},"36":{"varMapping":{"__isSmartRef__":true,"id":37},"source":"function morphMenuItems() {\n    var relax = this.relax,\n        self = this;\n    return $super().concat([[\"Constrain\", [\n        ['position', function(evt) {\n            relax.add(new Global.Relax.geom.CoordinateConstraint(self.point, self.point.x, self.point.y));\n        }],\n        ['distance to ...', function(evt) {\n            self.combinatorFor(function(p1, p2) {\n                relax.add(new Global.Relax.geom.LengthConstraint(p1, p2, p1.dist(p2)));\n            }.bind(null, self.point));\n        }],\n        ['coincide with ...', function(evt) {\n            self.combinatorFor(function(p1, p2) {\n                relax.add(new Global.Relax.geom.CoincidenceConstraint(p1, p2));\n            }.bind(null, self.point))\n        }]\n    ]]])\n}","funcProperties":{"__isSmartRef__":true,"id":42},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"37":{"this":{"__isSmartRef__":true,"id":1},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":38}},"38":{"$super":{"__isSmartRef__":true,"id":39}},"39":{"varMapping":{"__isSmartRef__":true,"id":40},"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":41},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"40":{"obj":{"__isSmartRef__":true,"id":1},"name":"morphMenuItems"},"41":{},"42":{"user":"larswassermann","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Tue Aug 12 2014 16:34:04 GMT-0700 (PDT)\")"},"43":{"varMapping":{"__isSmartRef__":true,"id":44},"source":"function combinatorFor(fn) {\n    // build a morph\n    var aMorph = lively.morphic.Morph.makeRectangle(0, 0, 80, 25);\n    aMorph.applyStyle({fill: Global.Color.gray, opacity: 0.5, borderWidth: 0})\n    aMorph.fn = fn;\n    \n    // similar to the connection builder properties\n    aMorph.isLayoutable = false;\n    var label = lively.morphic.Text.makeLabel(\"choose \" + fn.length + \" point\", {\n        fixedWidth: true, fixedHeight: true, align: 'center',\n        fontSize: 14, fill: null});\n    aMorph.addMorph(label);\n    aMorph.label = label;\n    label.setBounds(aMorph.innerBounds());\n    aMorph.adjustOrigin(aMorph.innerBounds().center());\n    \n    aMorph.addScript(function getGrabShadow() { return null; })\n    aMorph.addScript(function dropOn(morph) {\n        this.remove();\n        if (!morph.isRelaxPoint) { return alert(\"Not a relax point.\") };\n        var fn = this.fn;\n        if (fn.length == 1) {\n            fn(morph.point);\n        } else {\n            morph.combinatorFor(fn.bind(null, morph.point));\n        }\n    })\n\n    aMorph.openInHand();\n    aMorph.setPosition(lively.pt(0, 0))\n}","funcProperties":{"__isSmartRef__":true,"id":45},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"44":{"this":{"__isSmartRef__":true,"id":1}},"45":{"user":"larswassermann","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Tue Aug 12 2014 16:23:43 GMT-0700 (PDT)\")"},"46":{"submorphs":[{"__isSmartRef__":true,"id":47}],"scripts":[],"shape":{"__isSmartRef__":true,"id":52},"eventHandler":{"__isSmartRef__":true,"id":53},"_ClipMode":"visible","derivationIds":["EC7EBB28-54AE-4244-80ED-3E13650F82B7","9FD2DCE2-B997-4536-B2A5-90D7DD92B3E6","0D8CC908-BD1C-4062-BB03-3FCEB910483D","D5FA60EE-75BC-4EA0-8FB3-6F77351ABFD7","C3CBB5F8-EA33-423D-9D3B-1B95DD39F35F","D92D7552-E8E8-4056-B117-6305A46E167E","9D92E675-32EB-4FD2-B509-69EA93BD7ACE","CC851CD9-EC59-49D4-8208-BCE886D4279C","8C9DFCC7-87F3-4775-8CA0-271BEAA5B3F3","B7689050-BC01-4A08-8CC2-8190360EB5B7","66C26F73-6B8C-41BD-9D69-44499DA9B6E2","33603EC8-4818-45F4-880A-647D9DCCCF8F","09EE7436-AAF2-4163-9185-372E19D78698","E2D42E09-91FC-47C8-A3BE-6BBA85A642BA","3CCAA36F-942D-49CA-8AF4-9F90DDB2841A"],"id":"4BD0E1E5-7478-4953-B3E4-3245B4507BF6","grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"value":true,"toggle":true,"isActive":true,"label":{"__isSmartRef__":true,"id":47},"_PreviousBorderWidth":1,"isPressed":false,"showsHalos":false,"name":"run","partsBinMetaInfo":{"__isSmartRef__":true,"id":54},"pinSpecs":[{"__isSmartRef__":true,"id":62}],"owner":{"__isSmartRef__":true,"id":0},"_StyleClassNames":["Morph","Button","toggled"],"attributeConnections":[{"__isSmartRef__":true,"id":63},{"__isSmartRef__":true,"id":65}],"doNotSerialize":["$$value"],"doNotCopyProperties":["$$value"],"__serializedExpressions__":["_Position","distanceToDragEvent"],"_Rotation":0,"_Scale":1,"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":67},"__LivelyClassName__":"lively.morphic.Button","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(34.0,7.0)","distanceToDragEvent":"lively.pt(37.0,-5.0)"},"47":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":48},"_WhiteSpaceHandling":"pre","textChunks":[{"__isSmartRef__":true,"id":49}],"eventHandler":{"__isSmartRef__":true,"id":51},"_ClipMode":"hidden","derivationIds":["7884E73F-0D17-44B3-907F-44A5223F1F3D","444B63A6-D9E7-4AB2-AB57-4A9146C18BFF","08999E10-CCC3-4CAB-99BC-4EF500309EC4","DEC1FDB5-FC95-4B93-B065-C0F80EB51460","6844D033-3341-4128-81F1-B2D017585D84","F179CEBC-004C-4C21-96FA-B60845C2AC46","1F90CF9B-7DB9-482F-AE16-7C7794D7EB83","DD6D345C-8B39-4F03-A738-BAF805E28708","6CD94870-C880-4ADE-9DAD-13373D969EC5","AF076A28-9268-48D6-9AC3-E0B010AE41D0","C9154AA1-FA7B-4FC9-A55C-719A00737FDB","45E01C4D-E9CD-4903-9E3A-75D2998CC596","6A2A78F5-255B-4365-BB70-53DA1590481B","D363B797-0F59-4F7E-AD58-F6AFA87181A2","50A2FA97-F08A-4A6B-8261-E2F753ABE9D6"],"id":"B5D9EA62-EFED-41A2-BB9C-17FBBA605539","grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":true,"_WordBreak":"break-all","fixedHeight":true,"_InputAllowed":false,"_HandStyle":"default","allowInput":false,"_FontFamily":"Helvetica","_FontSize":10,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":46},"isLabel":true,"_Align":"center","eventsAreIgnored":true,"_TextStylingMode":true,"showsHalos":false,"eventsAreDisabled":true,"_PointerEvents":"none","__serializedExpressions__":["_TextColor","_Position"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(0,0,0)","_Position":"lively.pt(0.0,0.0)"},"48":{"_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(27.0,20.0)","_Padding":"lively.rect(0,3,0,0)","_BorderColor":"Color.rgb(0,0,0)"},"49":{"style":{"__isSmartRef__":true,"id":50},"chunkOwner":{"__isSmartRef__":true,"id":47},"_id":"_825","storedString":"❚ ❚","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"50":{"__serializedExpressions__":["color"],"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore","color":"Color.rgb(0,0,0)"},"51":{"morph":{"__isSmartRef__":true,"id":47},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"52":{"_BorderWidth":1,"_BorderRadius":5,"_AppearanceStylingMode":true,"_BorderStylingMode":true,"__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(27.0,20.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(189,190,192)"},"53":{"morph":{"__isSmartRef__":true,"id":46},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"54":{"partName":"Button","requiredModules":[],"partsSpaceName":"PartsBin/Inputs","comment":"A simple button that calls a method #doAction when pressed.","changes":[{"__isSmartRef__":true,"id":55},{"__isSmartRef__":true,"id":56},{"__isSmartRef__":true,"id":57},{"__isSmartRef__":true,"id":58},{"__isSmartRef__":true,"id":59},{"__isSmartRef__":true,"id":60},{"__isSmartRef__":true,"id":61}],"migrationLevel":7,"__serializedExpressions__":["lastModifiedDate"],"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin","lastModifiedDate":"new Date(\"Tue Jul 23 2013 23:21:11 GMT-0700 (PDT)\")"},"55":{"author":null,"message":"no comment","id":"F8B70225-5143-4A51-ABB4-344B488B3811","__serializedExpressions__":["date"],"date":"new Date(\"Tue Dec 11 2012 13:15:42 GMT-0800 (PST)\")"},"56":{"author":"robertkrahn","message":"no comment","id":"9B8B6BE4-4519-4A6C-8F47-70DE61BBB0FB","__serializedExpressions__":["date"],"date":"new Date(\"Tue Dec 11 2012 13:53:16 GMT-0800 (PST)\")"},"57":{"author":"robertkrahn","message":"test","id":"ACA617B4-0416-4E3C-9F4D-171A40F44F0F","__serializedExpressions__":["date"],"date":"new Date(\"Tue Apr 30 2013 20:34:25 GMT-0700 (PDT)\")"},"58":{"author":"robertkrahn","message":"no comment","id":"811BDE87-D8DD-48BB-97B2-7A3C3F3FAE32","__serializedExpressions__":["date"],"date":"new Date(\"Tue Apr 30 2013 20:35:59 GMT-0700 (PDT)\")"},"59":{"author":"robertkrahn","message":"no comment","id":"BB2EA501-D9AF-414B-A035-E1487DA6F0FD","__serializedExpressions__":["date"],"date":"new Date(\"Tue Apr 30 2013 20:36:30 GMT-0700 (PDT)\")"},"60":{"author":"Dan","message":"no comment","id":"A594459F-DA9B-49DD-A105-547B3F613CC5","__serializedExpressions__":["date"],"date":"new Date(\"Mon Jun 17 2013 10:22:38 GMT-0700 (PDT)\")"},"61":{"author":"Dan","message":"no comment","id":"CFEC4071-14FF-4AEB-A399-197884CD18BF","__serializedExpressions__":["date"],"date":"new Date(\"Mon Jun 17 2013 10:24:50 GMT-0700 (PDT)\")"},"62":{"pinName":"fire","modality":"output","type":"Boolean","accessor":"fire","location":1.5},"63":{"sourceObj":{"__isSmartRef__":true,"id":46},"sourceAttrName":"value","targetObj":{"__isSmartRef__":true,"id":46},"targetMethodName":"updateLabel","varMapping":{"__isSmartRef__":true,"id":64},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"64":{"source":{"__isSmartRef__":true,"id":46},"target":{"__isSmartRef__":true,"id":46}},"65":{"sourceObj":{"__isSmartRef__":true,"id":46},"sourceAttrName":"value","targetObj":{"__isSmartRef__":true,"id":0},"targetMethodName":"setPaused","varMapping":{"__isSmartRef__":true,"id":66},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"66":{"source":{"__isSmartRef__":true,"id":46},"target":{"__isSmartRef__":true,"id":0}},"67":{"updateLabel":{"__isSmartRef__":true,"id":68}},"68":{"varMapping":{"__isSmartRef__":true,"id":69},"source":"function updateLabel(value) {\n    if (!value) this.ensureLabel('\\u25B6')\n    else this.ensureLabel('\\u275A \\u275A')\n}","funcProperties":{"__isSmartRef__":true,"id":70},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"69":{"this":{"__isSmartRef__":true,"id":46}},"70":{"user":"larswassermann","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Fri Jul 18 2014 16:34:51 GMT-0700 (PDT)\")"},"71":{"target":{"__isSmartRef__":true,"id":0},"selector":"satisfyConstraints","args":[],"stopped":false,"tickTime":14.285714285714286,"suspended":false,"__LivelyClassName__":"lively.morphic.TargetScript","__SourceModuleName__":"Global.lively.morphic.Core"},"72":{"_BorderWidth":1,"_ClipMode":"visible","_BorderRadius":0,"_Opacity":1,"_BorderStyle":"solid","__serializedExpressions__":["position","_Extent","_BorderColor","_Fill","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(69.0,38.0)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(220,220,220)","_Padding":"lively.rect(0,0,0,0)"},"73":{"partsSpaceName":"PartsBin/Constraints/","comment":"Some controls to drag points into a lively world.","migrationLevel":8,"partName":"RelaxUIv2","changes":[{"__isSmartRef__":true,"id":74},{"__isSmartRef__":true,"id":75},{"__isSmartRef__":true,"id":76},{"__isSmartRef__":true,"id":77},{"__isSmartRef__":true,"id":78},{"__isSmartRef__":true,"id":79},{"__isSmartRef__":true,"id":80},{"__isSmartRef__":true,"id":81},{"__isSmartRef__":true,"id":82},{"__isSmartRef__":true,"id":83},{"__isSmartRef__":true,"id":84},{"__isSmartRef__":true,"id":85},{"__isSmartRef__":true,"id":86},{"__isSmartRef__":true,"id":87},{"__isSmartRef__":true,"id":88},{"__isSmartRef__":true,"id":89},{"__isSmartRef__":true,"id":90},{"__isSmartRef__":true,"id":91},{"__isSmartRef__":true,"id":92},{"__isSmartRef__":true,"id":93},{"__isSmartRef__":true,"id":94},{"__isSmartRef__":true,"id":95},{"__isSmartRef__":true,"id":96},{"__isSmartRef__":true,"id":97},{"__isSmartRef__":true,"id":98},{"__isSmartRef__":true,"id":99},{"__isSmartRef__":true,"id":100},{"__isSmartRef__":true,"id":101},{"__isSmartRef__":true,"id":102},{"__isSmartRef__":true,"id":103},{"__isSmartRef__":true,"id":104},{"__isSmartRef__":true,"id":105},{"__isSmartRef__":true,"id":106},{"__isSmartRef__":true,"id":107}],"requiredModules":["users.larswassermann.relax","users.larswassermann.RelaxUI"],"__serializedExpressions__":["lastModifiedDate"],"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin","lastModifiedDate":"new Date(\"Tue Oct 28 2014 09:40:09 GMT-0700 (PDT)\")"},"74":{"author":"larswassermann","message":"fixed forget me bug","id":"E1BC69E2-5031-4A06-AD95-FA31283B19C0","__serializedExpressions__":["date"],"date":"new Date(\"Tue Oct 28 2014 09:40:10 GMT-0700 (PDT)\")"},"75":{"author":"athomschke","message":"no comment","id":"4182C72D-14E9-4070-BF93-0CA76A974437","__serializedExpressions__":["date"],"date":"new Date(\"Fri Sep 05 2014 16:31:34 GMT-0700 (PDT)\")"},"76":{"author":"athomschke","message":"hä??","id":"B57F4C9A-0549-49C9-B5F5-DB01241359F8","__serializedExpressions__":["date"],"date":"new Date(\"Fri Sep 05 2014 16:26:45 GMT-0700 (PDT)\")"},"77":{"author":"larswassermann","message":"no comment","id":"4B1DF745-E62E-49DA-9429-A7589C98948C","__serializedExpressions__":["date"],"date":"new Date(\"Tue Aug 12 2014 16:57:14 GMT-0700 (PDT)\")"},"78":{"author":"larswassermann","message":"!this.owner instead of this.owner ...","id":"ED849B23-122E-48EB-B1DC-C7C23ED5F61C","__serializedExpressions__":["date"],"date":"new Date(\"Tue Aug 12 2014 16:57:05 GMT-0700 (PDT)\")"},"79":{"author":"larswassermann","message":"no comment","id":"38B352B2-0A77-48F4-8E1F-E45B9A4EFD47","__serializedExpressions__":["date"],"date":"new Date(\"Mon Jul 21 2014 10:14:24 GMT-0700 (PDT)\")"},"80":{"author":"robertkrahn","message":"no comment","id":"FBBB9C99-B61C-4D5F-8750-6E2987DF0C9C","__serializedExpressions__":["date"],"date":"new Date(\"Thu Jun 20 2013 15:16:24 GMT-0700 (PDT)\")"},"81":{"author":"robertkrahn","message":"no comment","id":"67FD74CD-7AE4-4050-ADC7-4DF73804258D","__serializedExpressions__":["date"],"date":"new Date(\"Thu May 30 2013 00:18:06 GMT-0700 (PDT)\")"},"82":{"author":"jenslincke","message":"no comment","id":"AEB2F41B-2C88-4BBA-8875-93CD17CBA1C8","__serializedExpressions__":["date"],"date":"new Date(\"Wed Jan 23 2013 03:57:18 GMT-0800 (PST)\")"},"83":{"author":"undefined","message":"whoopsie","id":"3F17A2D2-3C24-424B-B0FA-E43112267D23","__serializedExpressions__":["date"],"date":"new Date(\"Thu May 03 2012 06:51:36 GMT-0700 (PDT)\")"},"84":{"author":"undefined","message":"whoopsie","id":"CEA5DCD5-2DB7-40AD-A776-262A7A0666FC","__serializedExpressions__":["date"],"date":"new Date(\"Thu May 03 2012 06:51:30 GMT-0700 (PDT)\")"},"85":{"author":"undefined","message":"sorry","id":"44B56D2E-9B59-4C67-A305-49A6E10E66C2","__serializedExpressions__":["date"],"date":"new Date(\"Wed Mar 14 2012 02:53:45 GMT-0700 (PDT)\")"},"86":{"author":"fbo","message":"","id":"BD1C654D-9100-4B66-BC62-B15FF2498B2B","__serializedExpressions__":["date"],"date":"new Date(\"Fri Feb 24 2012 17:59:09 GMT-0800 (PST)\")"},"87":{"author":"undefined","message":"css transitions","id":"1004E0FC-D96B-4F40-B3E0-F514A3FCFFD7","__serializedExpressions__":["date"],"date":"new Date(\"Wed Mar 14 2012 02:42:26 GMT-0700 (PDT)\")"},"88":{"author":"undefined","message":"suddenly, the rectangle became a CarDemo","id":"B5083AA8-9BAE-48DD-A6B4-FD7DB3998350","__serializedExpressions__":["date"],"date":"new Date(\"Mon Apr 09 2012 04:42:07 GMT-0700 (PDT)\")"},"89":{"author":"bgnauk","message":"no comment","id":"0124E570-50B7-4CE3-83A1-6E7BA89B5CD8","__serializedExpressions__":["date"],"date":"new Date(\"Mon Jun 18 2012 10:35:08 GMT-0700 (PDT)\")"},"90":{"author":"jenslincke","message":"I want my blue rectangle back!","id":"5AA9291A-869F-4D36-8095-4721B5A5B205","__serializedExpressions__":["date"],"date":"new Date(\"Thu Nov 22 2012 01:35:51 GMT-0800 (PST)\")"},"91":{"author":"jenslincke","message":"no comment","id":"A4B86A7E-A398-4C29-BEE0-4AA045ABABD2","__serializedExpressions__":["date"],"date":"new Date(\"Fri Jan 18 2013 07:42:31 GMT-0800 (PST)\")"},"92":{"author":"jenslincke","message":"added legend","id":"7ADA3049-56C1-4D32-874B-F664A79DDB20","__serializedExpressions__":["date"],"date":"new Date(\"Fri Jan 18 2013 07:47:05 GMT-0800 (PST)\")"},"93":{"author":"SAPLivelyScreen","message":"no comment","id":"EF145198-0649-41BD-A92E-521D98FEC49D","__serializedExpressions__":["date"],"date":"new Date(\"Wed May 29 2013 15:36:50 GMT-0700 (PDT)\")"},"94":{"author":"SAPLivelyScreen","message":"no comment","id":"7A44D8CA-6D5F-42A3-A4B4-4D7F51EECA52","__serializedExpressions__":["date"],"date":"new Date(\"Tue Jun 18 2013 11:49:27 GMT-0700 (PDT)\")"},"95":{"author":"robertkrahn","message":"no comment","id":"A452871F-4EB9-45D1-94B8-6065CBA7B8FD","__serializedExpressions__":["date"],"date":"new Date(\"Mon Jul 29 2013 23:20:51 GMT-0700 (PDT)\")"},"96":{"author":"larswassermann","message":"no comment","id":"49CC8BF1-F2A7-425C-B082-1DC20EA8D561","__serializedExpressions__":["date"],"date":"new Date(\"Fri Jul 18 2014 15:16:26 GMT-0700 (PDT)\")"},"97":{"author":"larswassermann","message":"no comment","id":"97297F66-C664-446D-BAB1-6175D074E8D9","__serializedExpressions__":["date"],"date":"new Date(\"Fri Jul 18 2014 19:03:11 GMT-0700 (PDT)\")"},"98":{"author":"larswassermann","message":"no comment","id":"C544E673-30DB-46DA-963A-46058FC05EB8","__serializedExpressions__":["date"],"date":"new Date(\"Sun Jul 20 2014 14:13:02 GMT-0700 (PDT)\")"},"99":{"author":"larswassermann","message":"no comment","id":"8A8C4918-CCF2-4127-B9B1-046940FB821F","__serializedExpressions__":["date"],"date":"new Date(\"Sun Jul 20 2014 14:21:29 GMT-0700 (PDT)\")"},"100":{"author":"larswassermann","message":"no comment","id":"CA137F03-BE0D-433C-8CEF-FE009C02E6B6","__serializedExpressions__":["date"],"date":"new Date(\"Sun Jul 20 2014 14:22:14 GMT-0700 (PDT)\")"},"101":{"author":"larswassermann","message":"no comment","id":"1775DE8F-BAD5-4961-9131-8BE17A762532","__serializedExpressions__":["date"],"date":"new Date(\"Tue Aug 12 2014 14:47:23 GMT-0700 (PDT)\")"},"102":{"author":"larswassermann","message":"no comment","id":"CDC41219-323E-4D37-99F1-D9E2FCBF9BD6","__serializedExpressions__":["date"],"date":"new Date(\"Tue Aug 12 2014 16:41:30 GMT-0700 (PDT)\")"},"103":{"author":"larswassermann","message":"no comment","id":"37EB2488-EC42-4D1A-9DD7-E28E7BC835BA","__serializedExpressions__":["date"],"date":"new Date(\"Tue Aug 12 2014 16:44:41 GMT-0700 (PDT)\")"},"104":{"author":"athomschke","message":"adding required modules","id":"84BEDD6D-B253-40B8-9CF4-696E55CB649B","__serializedExpressions__":["date"],"date":"new Date(\"Fri Sep 05 2014 16:04:43 GMT-0700 (PDT)\")"},"105":{"author":"athomschke","message":"onload delay","id":"23BE4A88-91C6-45C3-BF0D-CA177628F782","__serializedExpressions__":["date"],"date":"new Date(\"Fri Sep 05 2014 16:30:31 GMT-0700 (PDT)\")"},"106":{"author":"athomschke","message":"wrong delay bindings","id":"92699B26-8C45-4BB2-8B3F-DC3C162D5E04","__serializedExpressions__":["date"],"date":"new Date(\"Fri Sep 05 2014 17:18:58 GMT-0700 (PDT)\")"},"107":{"__serializedExpressions__":["date"],"author":"larswassermann","message":"similar issue in satisfy constraints","id":"8FAC006E-DD62-48E8-AD92-086896A3683F","date":"new Date(\"Tue Oct 28 2014 09:41:34 GMT-0700 (PDT)\")"},"108":{"morph":{"__isSmartRef__":true,"id":0},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"109":{"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":110}},"110":{"test01IsMorph":{"__isSmartRef__":true,"id":111}},"111":{"varMapping":{"__isSmartRef__":true,"id":112},"source":"function test01IsMorph(aPart) {\n    this.assert(aPart.isMorph, 'rectangle should be a morph');\n}","funcProperties":{"__isSmartRef__":true,"id":113},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"112":{"this":{"__isSmartRef__":true,"id":109}},"113":{},"114":{"rho":0.25,"epsilon":0.01,"things":[],"groupedConstraints":null},"115":{"onLoad":{"__isSmartRef__":true,"id":116},"setPaused":{"__isSmartRef__":true,"id":119},"satisfyConstraints":{"__isSmartRef__":true,"id":122},"onLoadDelayed":{"__isSmartRef__":true,"id":125}},"116":{"varMapping":{"__isSmartRef__":true,"id":117},"source":"function onLoad() {\n    this.onLoadDelayed.bind(this).delay(1)\n    this.relax.add\n}","funcProperties":{"__isSmartRef__":true,"id":118},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"117":{"this":{"__isSmartRef__":true,"id":0}},"118":{"user":"athomschke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Fri Sep 05 2014 17:18:47 GMT-0700 (PDT)\")"},"119":{"varMapping":{"__isSmartRef__":true,"id":120},"source":"function setPaused(value) {\n    if (value){\n        this.startStepping(1000/70, 'satisfyConstraints');\n    } else {\n        this.stopSteppingScriptNamed('satisfyConstraints');\n    }\n}","funcProperties":{"__isSmartRef__":true,"id":121},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"120":{"this":{"__isSmartRef__":true,"id":0}},"121":{"user":"larswassermann","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Mon Jul 21 2014 10:14:17 GMT-0700 (PDT)\")"},"122":{"varMapping":{"__isSmartRef__":true,"id":123},"source":"function satisfyConstraints() {\n    if (!this.relax.iterateForUpToMillis) { return; }\n    this.relax.iterateForUpToMillis(1000/65);\n    this.relax.things.forEach(function(ea) {\n        ea.morph && ea.morph.updateFromRelax(ea);\n    });\n}","funcProperties":{"__isSmartRef__":true,"id":124},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"123":{"this":{"__isSmartRef__":true,"id":0}},"124":{"__serializedExpressions__":["timestamp"],"user":"larswassermann","timestamp":"new Date(\"Tue Oct 28 2014 09:41:18 GMT-0700 (PDT)\")"},"125":{"varMapping":{"__isSmartRef__":true,"id":126},"source":"function onLoadDelayed() {\n    debugger\n    this.relax = new Global.Relax();\n}","funcProperties":{"__isSmartRef__":true,"id":127},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"126":{"this":{"__isSmartRef__":true,"id":0}},"127":{"user":"athomschke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Fri Sep 05 2014 16:31:24 GMT-0700 (PDT)\")"},"isSimplifiedRegistry":true}}