Scicos: speedup model transformation #2 48/19348/24
Clément DAVID [Mon, 4 Jun 2018 13:41:15 +0000 (15:41 +0200)]
1. Remove 2 model lookup by using a map of ID to (initial, cloned) on
   deepClone.
2. Reduce deep cloning on scicos_flat()
3. Do not clone scs_m.objs non modified objects on insertionCall
4. Relax allocation / deallocation pressure on Adapters partial information

Preserving smart-linking information on the scilab side will end up having more temporary data stored and reseted ; move the smart-linking at allocation time.

Change-Id: Ib7f81e2ce49674ed010f26871b93a1f580b7499b

38 files changed:
scilab/modules/scicos/includes/Controller.hxx
scilab/modules/scicos/includes/adapters_utilities.hxx
scilab/modules/scicos/includes/view_scilab/Adapters.hxx
scilab/modules/scicos/macros/scicos_scicos/scicos_flat.sci
scilab/modules/scicos/src/cpp/Controller.cpp
scilab/modules/scicos/src/cpp/Model_setObjectProperties.cpp
scilab/modules/scicos/src/cpp/controller_helpers.hxx
scilab/modules/scicos/src/cpp/view_scilab/Adapters.cpp
scilab/modules/scicos/src/cpp/view_scilab/BaseAdapter.hxx
scilab/modules/scicos/src/cpp/view_scilab/BlockAdapter.cpp
scilab/modules/scicos/src/cpp/view_scilab/DiagramAdapter.cpp
scilab/modules/scicos/src/cpp/view_scilab/GraphicsAdapter.cpp
scilab/modules/scicos/src/cpp/view_scilab/GraphicsAdapter.hxx
scilab/modules/scicos/src/cpp/view_scilab/LinkAdapter.cpp
scilab/modules/scicos/src/cpp/view_scilab/LinkAdapter.hxx
scilab/modules/scicos/src/cpp/view_scilab/ModelAdapter.cpp
scilab/modules/scicos/tests/unit_tests/model/Block.dia.ref
scilab/modules/scicos/tests/unit_tests/model/Clone_SuperBlock_in_Diagram.dia.ref
scilab/modules/scicos/tests/unit_tests/model/Deep_cloning.dia.ref
scilab/modules/scicos/tests/unit_tests/model/Deep_cloning.tst
scilab/modules/scicos/tests/unit_tests/model/Delete_objects.dia.ref
scilab/modules/scicos/tests/unit_tests/model/Delete_objects.tst
scilab/modules/scicos/tests/unit_tests/model/Diagram.dia.ref
scilab/modules/scicos/tests/unit_tests/model/Diagram.tst
scilab/modules/scicos/tests/unit_tests/model/Diagram_cloning.dia.ref
scilab/modules/scicos/tests/unit_tests/model/Implicit_link.dia.ref
scilab/modules/scicos/tests/unit_tests/model/Insert_in_SuperBlock.dia.ref
scilab/modules/scicos/tests/unit_tests/model/Insert_in_SuperBlock.tst
scilab/modules/scicos/tests/unit_tests/model/SuperBlock.dia.ref
scilab/modules/scicos/tests/unit_tests/model/SuperBlock_in_SuperBlock.dia.ref
scilab/modules/scicos/tests/unit_tests/model/SuperBlock_misconnected.dia.ref [new file with mode: 0644]
scilab/modules/scicos/tests/unit_tests/model/SuperBlock_misconnected.tst [new file with mode: 0644]
scilab/modules/scicos/tests/unit_tests/model/clone_extract.dia.ref
scilab/modules/scicos/tests/unit_tests/model/clone_extract.tst
scilab/modules/scicos/tests/unit_tests/model/from_mlist.dia.ref
scilab/modules/scicos/tests/unit_tests/model/from_mlist.tst
scilab/modules/scicos/tests/unit_tests/model/link_preservation.dia.ref
scilab/modules/scicos/tests/unit_tests/scicos_new.dia.ref

index a800b9c..2589189 100644 (file)
@@ -20,7 +20,7 @@
 #include <atomic>
 #include <string>
 #include <vector>
-#include <map>
+#include <unordered_map>
 
 #include "utilities.hxx"
 #include "Model.hxx"
@@ -108,7 +108,17 @@ public:
     {
         return static_cast<T*>(getBaseObject(uid));
     }
-    model::BaseObject* cloneBaseObject(std::unordered_map<model::BaseObject*, model::BaseObject*>& mapped, model::BaseObject* initial, bool cloneChildren, bool clonePorts);
+
+    struct cloned_pair_t
+    {
+        model::BaseObject* initial;
+        model::BaseObject* cloned;
+
+        cloned_pair_t(model::BaseObject* i, model::BaseObject* c) : initial(i), cloned(c) {};
+    };
+    typedef std::unordered_map<ScicosID, cloned_pair_t> cloned_t;
+
+    model::BaseObject* cloneBaseObject(cloned_t& mapped, model::BaseObject* initial, bool cloneChildren, bool clonePorts);
 #endif /* !defined SWIG */
 
     /*
@@ -228,9 +238,10 @@ private:
     template<typename T> void cloneProperties(model::BaseObject* initial, model::BaseObject* clone, T& temporary);
     template<typename T> bool getObjectProperty(ScicosID uid, kind_t k, object_properties_t p, T& v) const;
     template<typename T> update_status_t setObjectProperty(ScicosID uid, kind_t k, object_properties_t p, T v);
-    void deepClone(std::unordered_map<model::BaseObject*, model::BaseObject*>& mapped, model::BaseObject* initial, model::BaseObject* clone, object_properties_t p, bool cloneIfNotFound);
-    void deepCloneVector(std::unordered_map<model::BaseObject*, model::BaseObject*>& mapped, model::BaseObject* initial, model::BaseObject* clone, object_properties_t p, bool cloneIfNotFound);
-    void updateChildrenRelatedPropertiesAfterClone(std::unordered_map<model::BaseObject*, model::BaseObject*>& mapped);
+
+    void deepClone(cloned_t& mapped, model::BaseObject* initial, model::BaseObject* clone, object_properties_t p, bool cloneIfNotFound);
+    void deepCloneVector(cloned_t& mapped, model::BaseObject* initial, model::BaseObject* clone, object_properties_t p, bool cloneIfNotFound);
+    void updateChildrenRelatedPropertiesAfterClone(cloned_t& mapped);
     void unlinkVector(model::BaseObject* o, object_properties_t uid_prop, object_properties_t ref_prop);
     void unlink(model::BaseObject* o, object_properties_t uid_prop, object_properties_t ref_prop);
     void deleteVector(model::BaseObject* o, object_properties_t uid_prop);
index b541a40..69cee7f 100644 (file)
@@ -1,6 +1,7 @@
 /*
  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  *  Copyright (C) 2014-2014 - Scilab Enterprises - Clement DAVID
+ *  Copyright (C) 2017 - ESI Group - Clement DAVID
  *
  * Copyright (C) 2012 - 2016 - Scilab Enterprises
  *
 #ifndef ADAPTERS_UTILITIES_HXX_
 #define ADAPTERS_UTILITIES_HXX_
 
+#include <string>
+#include <unordered_map>
+#include <vector>
+
+typedef std::vector<unsigned int> link_indices_t;
+template<typename K, typename T>
+using partials_map_t = std::unordered_map<K, T>;
+
+/*
+ * Partial information used on LinkAdapter
+ */
+
 enum startOrEnd
 {
     Start = 0,
@@ -29,6 +42,11 @@ struct link_t
     enum startOrEnd kind;
 };
 
+inline std::string to_string(const link_t& l)
+{
+    return "[ " + std::to_string(l.block) + ", " + std::to_string(l.port) + ", " + std::to_string(l.kind) + " ]";
+};
+
 // partial-link information
 struct partial_link_t
 {
@@ -36,15 +54,87 @@ struct partial_link_t
     link_t to;
 };
 
-typedef std::vector<unsigned int> link_indices_t;
+inline std::string to_string(const partial_link_t& l)
+{
+    return "{ \"from\": " + to_string(l.from) + ", \"to\": " + to_string(l.to) + " }";
+};
 
-// partial-port information
-struct partial_ports_t
+typedef partials_map_t<ScicosID, partial_link_t> partials_links_t;
+
+inline std::string to_string(const partials_links_t& links)
 {
-    link_indices_t graphics_pin;
-    link_indices_t graphics_pout;
-    link_indices_t graphics_pein;
-    link_indices_t graphics_peout;
+    if (links.size() == 0)
+    {
+        return "{}";
+    }
+
+    std::string inner;
+    for (const auto& e : links)
+    {
+        inner += "\"" + std::to_string(e.first) + "\": " + to_string(e.second) + ", ";
+    }
+    inner = inner.substr(0, inner.size() - 2);
+
+    return "{ " + inner + " }";
 };
 
+/*
+ * Partial information used on GraphicsAdapter
+ */
+
+struct partial_port_t
+{
+    typedef std::vector<int> value_type;
+
+    value_type pin;
+    value_type pout;
+    value_type pein;
+    value_type peout;
+};
+
+typedef partials_map_t<ScicosID, partial_port_t> partials_ports_t;
+
+inline std::string to_string(const std::vector<int>& v)
+{
+    if (v.size() == 0)
+    {
+        return "[]";
+    }
+
+    std::string inner;
+    for (int index : v)
+    {
+        inner += std::to_string(index) + ", ";
+    }
+    inner = inner.substr(0, inner.size() - 2);
+
+    return "[ " + inner + " ]";
+};
+
+inline std::string to_string(const partial_port_t& ports)
+{
+    return "{ \"pin\": " + to_string(ports.pin) +
+           ", \"pout\": " + to_string(ports.pout) +
+           ", \"pein\": " + to_string(ports.pein) +
+           ", \"peout\": " + to_string(ports.peout) +
+           " }";
+};
+
+inline std::string to_string(const partials_ports_t& ports)
+{
+    if (ports.size() == 0)
+    {
+        return "{}";
+    }
+
+    std::string inner;
+    for (const auto& e : ports)
+    {
+        inner += "\"" + std::to_string(e.first) + "\": " + to_string(e.second) + ", ";
+    }
+    inner = inner.substr(0, inner.size() - 2);
+
+    return "{ " + inner + " }";
+}
+
 #endif /* ADAPTERS_UTILITIES_HXX_ */
index 4ea62fa..3921294 100644 (file)
@@ -22,6 +22,7 @@
 
 #include "internal.hxx"
 #include "utilities.hxx"
+#include "Controller.hxx"
 #include "model/BaseObject.hxx"
 
 extern "C"
@@ -62,6 +63,7 @@ public:
     model::BaseObject* descriptor(types::InternalType* v);
     model::BaseObject* descriptor(adapters_index_t index, types::InternalType* v);
     types::InternalType* allocate_view(ScicosID id, kind_t kind);
+    types::InternalType* allocate_view(Controller& controller, model::BaseObject* o);
 
 private:
 
index 0233f1c..4a0da2c 100644 (file)
@@ -218,45 +218,36 @@ function  [cor,corinv,links_table,cur_fictitious,sco_mat,ok, IN, OUT, EIN, EOUT]
                         if scs_m.objs(kc).to(1)==scs_m.objs(kc).from(1) then
                             //** regular input port
                             if port_type=="pin" then
-                                scs_m.objs(kc).to(1)=-(cur_fictitious+scs_m.objs(kc).to(2));
-                                scs_m.objs(kc).to(2)=1
+                                scs_m.objs(kc).to=[-(cur_fictitious+scs_m.objs(kc).to(2)), 1, 1];
 
                                 if scs_m.objs(kc).from(3)==0 then //** in connected to out
-                                    scs_m.objs(kc).from(1)=-(cur_fictitious+scs_m.objs(kc).from(2)+nb_pin);
-                                    scs_m.objs(kc).from(2)=1
+                                    scs_m.objs(kc).from=[-(cur_fictitious+scs_m.objs(kc).from(2)+nb_pin), 1, 0];
                                 else //** in connected to in
-                                    scs_m.objs(kc).from(1)=-(cur_fictitious+scs_m.objs(kc).from(2));
-                                    scs_m.objs(kc).from(2)=1
+                                    scs_m.objs(kc).from=[-(cur_fictitious+scs_m.objs(kc).from(2)), 1, 0];
                                 end
 
                                 //** regular output port
                             elseif port_type=="pout" then
-                                scs_m.objs(kc).from(1)=-(cur_fictitious+scs_m.objs(kc).from(2));
-                                scs_m.objs(kc).from(2)=1
+                                scs_m.objs(kc).from=[-(cur_fictitious+scs_m.objs(kc).from(2)), 1, 0];
 
                                 if scs_m.objs(kc).to(3)==0 then //** out connected to out
-                                    scs_m.objs(kc).to(1)=-(cur_fictitious+scs_m.objs(kc).to(2));
-                                    scs_m.objs(kc).to(2)=1
+                                    scs_m.objs(kc).to=[-(cur_fictitious+scs_m.objs(kc).to(2)), 1, 1]
                                 end
 
                                 //** event input port
                             elseif port_type=="pein" then
-                                scs_m.objs(kc).to(1)=-(cur_fictitious+scs_m.objs(kc).to(2));
-                                scs_m.objs(kc).to(2)=1
+                                scs_m.objs(kc).to=[-(cur_fictitious+scs_m.objs(kc).to(2)), 1, 1];
 
-                                scs_m.objs(kc).from(1)=-(cur_fictitious+scs_m.objs(kc).from(2)+nb_pein);
-                                scs_m.objs(kc).from(2)=1
+                                scs_m.objs(kc).from=[-(cur_fictitious+scs_m.objs(kc).from(2)+nb_pein), 1, 0];
 
                                 //** peout and pein are never connected to themselves
                             end
 
                         elseif scs_m.objs(kc).to(1)==k then  // a link going to the superblock
-                            scs_m.objs(kc).to(1)=-(cur_fictitious+scs_m.objs(kc).to(2));
-                            scs_m.objs(kc).to(2)=1
+                            scs_m.objs(kc).to=[-(cur_fictitious+scs_m.objs(kc).to(2)), 1, 1];
 
                         elseif scs_m.objs(kc).from(1)==k then  // a link coming from the superblock
-                            scs_m.objs(kc).from(1)=-(cur_fictitious+scs_m.objs(kc).from(2));
-                            scs_m.objs(kc).from(2)=1
+                            scs_m.objs(kc).from=[-(cur_fictitious+scs_m.objs(kc).from(2)), 1, 0];
                         end
                     end
                     cur_fictitious=cur_fictitious+size(ip,"*")
index 5663805..76fb11e 100644 (file)
@@ -369,12 +369,13 @@ void Controller::cloneProperties(model::BaseObject* initial, model::BaseObject*
     }
 }
 
-model::BaseObject* Controller::cloneBaseObject(std::unordered_map<model::BaseObject*, model::BaseObject*>& mapped, model::BaseObject* initial, bool cloneChildren, bool clonePorts)
+model::BaseObject* Controller::cloneBaseObject(cloned_t& mapped, model::BaseObject* initial, bool cloneChildren, bool clonePorts)
 {
     const kind_t k = initial->kind();
     ScicosID o = createObject(k);
     model::BaseObject* cloned = getBaseObject(o);
-    mapped.insert(std::make_pair(initial, cloned));
+    mapped.insert(
+        std::make_pair(initial->id(), cloned_pair_t(initial, cloned)));
 
     lock(&m_instance.onViewsStructuralModification);
     for (auto v : m_instance.allViews)
@@ -440,18 +441,16 @@ model::BaseObject* Controller::cloneBaseObject(std::unordered_map<model::BaseObj
     return cloned;
 }
 
-void Controller::deepClone(std::unordered_map<model::BaseObject*, model::BaseObject*>& mapped, model::BaseObject* initial, model::BaseObject* clone, object_properties_t p, bool cloneIfNotFound)
+void Controller::deepClone(cloned_t& mapped, model::BaseObject* initial, model::BaseObject* clone, object_properties_t p, bool cloneIfNotFound)
 {
     ScicosID v;
     getObjectProperty(initial, p, v);
 
-    model::BaseObject* opposite = getBaseObject(v);
-    model::BaseObject* cloned;
-
-    std::unordered_map<model::BaseObject*, model::BaseObject*>::iterator it = mapped.find(opposite);
+    ScicosID cloned;
+    cloned_t::iterator it = mapped.find(v);
     if (it != mapped.end())
     {
-        cloned = it->second;
+        cloned = it->second.cloned->id();
     }
     else
     {
@@ -459,38 +458,34 @@ void Controller::deepClone(std::unordered_map<model::BaseObject*, model::BaseObj
         {
             if (v != ScicosID())
             {
-                cloned = cloneBaseObject(mapped, opposite, true, true);
+                model::BaseObject *opposite = getBaseObject(v);
+                cloned = cloneBaseObject(mapped, opposite, true, true)->id();
             }
             else
             {
-                cloned = nullptr;
+                cloned = ScicosID();
             }
         }
         else
         {
-            cloned = nullptr;
+            cloned = ScicosID();
         }
     }
 
-    if (cloned == nullptr)
-    {
-        setObjectProperty(clone, p, ScicosID());
-    }
-    else
-    {
-        setObjectProperty(clone, p, cloned->id());
-    }
+    setObjectProperty(clone, p, cloned);
 }
 
-void Controller::deepCloneVector(std::unordered_map<model::BaseObject*, model::BaseObject*>& mapped, model::BaseObject* initial, model::BaseObject* clone, object_properties_t p, bool cloneIfNotFound)
+void Controller::deepCloneVector(cloned_t &mapped, model::BaseObject *initial,
+                                 model::BaseObject *clone,
+                                 object_properties_t p, bool cloneIfNotFound)
 {
     std::vector<ScicosID> v;
     getObjectProperty(initial, p, v);
 
-    std::vector<model::BaseObject*> cloned;
+    std::vector<model::BaseObject *> cloned;
     cloned.reserve(v.size());
 
-    for (const ScicosID & id : v)
+    for (const ScicosID &id : v)
     {
         if (id == ScicosID())
         {
@@ -499,11 +494,11 @@ void Controller::deepCloneVector(std::unordered_map<model::BaseObject*, model::B
             continue;
         }
 
-        model::BaseObject* opposite = getBaseObject(id);
-        std::unordered_map<model::BaseObject*, model::BaseObject*>::iterator it = mapped.find(opposite);
+        model::BaseObject *opposite = getBaseObject(id);
+        cloned_t::iterator it = mapped.find(id);
         if (it != mapped.end())
         {
-            cloned.push_back(it->second);
+            cloned.push_back(it->second.cloned);
         }
         else
         {
@@ -511,7 +506,8 @@ void Controller::deepCloneVector(std::unordered_map<model::BaseObject*, model::B
             {
                 if (id != ScicosID())
                 {
-                    model::BaseObject* clone = cloneBaseObject(mapped, opposite, true, true);
+                    model::BaseObject *clone =
+                        cloneBaseObject(mapped, opposite, true, true);
                     cloned.push_back(clone);
                 }
                 else
@@ -534,7 +530,8 @@ void Controller::deepCloneVector(std::unordered_map<model::BaseObject*, model::B
 
     // set the main object vector property
     std::vector<ScicosID> clonedUIDs(cloned.size());
-    std::transform(cloned.begin(), cloned.end(), clonedUIDs.begin(), [](model::BaseObject * o)
+    std::transform(cloned.begin(), cloned.end(), clonedUIDs.begin(),
+                   [](model::BaseObject * o)
     {
         if (o == nullptr)
         {
@@ -549,12 +546,12 @@ void Controller::deepCloneVector(std::unordered_map<model::BaseObject*, model::B
     setObjectProperty(clone, p, clonedUIDs);
 }
 
-void Controller::updateChildrenRelatedPropertiesAfterClone(std::unordered_map<model::BaseObject*, model::BaseObject*>& mapped)
+void Controller::updateChildrenRelatedPropertiesAfterClone(cloned_t &mapped)
 {
-    for (auto const & it : mapped)
+    for (auto const &it : mapped)
     {
-        model::BaseObject* initial = it.first;
-        model::BaseObject* cloned = it.second;
+        model::BaseObject *initial = it.second.initial;
+        model::BaseObject *cloned = it.second.cloned;
 
         switch (initial->kind())
         {
@@ -573,8 +570,9 @@ void Controller::updateChildrenRelatedPropertiesAfterClone(std::unordered_map<mo
 
 ScicosID Controller::cloneObject(ScicosID uid, bool cloneChildren, bool clonePorts)
 {
-    std::unordered_map<model::BaseObject*, model::BaseObject*> mapped;
-    model::BaseObject* clone = cloneBaseObject(mapped, getBaseObject(uid), cloneChildren, clonePorts);
+    cloned_t mapped;
+    model::BaseObject *clone =
+        cloneBaseObject(mapped, getBaseObject(uid), cloneChildren, clonePorts);
 
     return clone->id();
 }
index a4a5413..8a406ec 100644 (file)
@@ -275,9 +275,29 @@ update_status_t Model::setObjectProperty(model::BaseObject* object, object_prope
             case LABEL:
                 return o->setLabel(v);
             case SOURCE_PORT:
-                return o->setSourcePort(v);
+#if SANITY_CHECK
+            {
+                ScicosID oppositePort = ScicosID();
+                getObjectProperty(o, DESTINATION_PORT, oppositePort);
+                if (v != ScicosID() && oppositePort == v)
+                {
+                    abort();
+                }
+            }
+#endif /* SANITY CHECK */
+            return o->setSourcePort(v);
             case DESTINATION_PORT:
-                return o->setDestinationPort(v);
+#if SANITY_CHECK
+            {
+                ScicosID oppositePort = ScicosID();
+                getObjectProperty(o, SOURCE_PORT, oppositePort);
+                if (v != ScicosID() && oppositePort == v)
+                {
+                    abort();
+                }
+            }
+#endif /* SANITY CHECK */
+            return o->setDestinationPort(v);
             default:
                 break;
         }
@@ -684,7 +704,7 @@ update_status_t Model::setObjectProperty(model::BaseObject* object, object_prope
 
                     ScicosID parent = ScicosID();
                     getObjectProperty(p, SOURCE_BLOCK, parent);
-                    if (parent != baseObject->id())
+                    if (parent != ScicosID() && parent != baseObject->id())
                     {
                         abort();
                     }
@@ -699,7 +719,7 @@ update_status_t Model::setObjectProperty(model::BaseObject* object, object_prope
 
                     ScicosID parent = ScicosID();
                     getObjectProperty(p, SOURCE_BLOCK, parent);
-                    if (parent != baseObject->id())
+                    if (parent != ScicosID() && parent != baseObject->id())
                     {
                         abort();
                     }
@@ -714,7 +734,7 @@ update_status_t Model::setObjectProperty(model::BaseObject* object, object_prope
 
                     ScicosID parent = ScicosID();
                     getObjectProperty(p, SOURCE_BLOCK, parent);
-                    if (parent != baseObject->id())
+                    if (parent != ScicosID() && parent != baseObject->id())
                     {
                         abort();
                     }
@@ -729,7 +749,7 @@ update_status_t Model::setObjectProperty(model::BaseObject* object, object_prope
 
                     ScicosID parent = ScicosID();
                     getObjectProperty(p, SOURCE_BLOCK, parent);
-                    if (parent != baseObject->id())
+                    if (parent != ScicosID() && parent != baseObject->id())
                     {
                         abort();
                     }
@@ -787,13 +807,13 @@ update_status_t Model::setObjectProperty(model::BaseObject* object, object_prope
 
                     ScicosID parent = ScicosID();
                     getObjectProperty(c, PARENT_BLOCK, parent);
-                    if (parent != ScicosID())
+                    if (parent != ScicosID() && parent != baseObject->id())
                     {
                         abort();
                     }
 
                     getObjectProperty(c, PARENT_DIAGRAM, parent);
-                    if (parent != baseObject->id())
+                    if (parent != ScicosID() && parent != baseObject->id())
                     {
                         abort();
                     }
@@ -819,6 +839,7 @@ update_status_t Model::setObjectProperty(model::BaseObject* object, object_prope
         {
             case CONNECTED_SIGNALS:
                 return o->setConnectedSignals(v);
+
             default:
                 break;
         }
index c93eeb8..172eb12 100644 (file)
@@ -1,6 +1,7 @@
 /*
  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  *  Copyright (C) 2014-2015 - Scilab Enterprises - Clement DAVID
+ *  Copyright (C) 2017 - Scilab Enterprises - Clement DAVID
  *
  * Copyright (C) 2012 - 2016 - Scilab Enterprises
  *
index 97f9a6d..0ccc1b7 100644 (file)
@@ -18,6 +18,7 @@
 #include <string>
 #include <algorithm>
 
+#include "View.hxx"
 #include "BlockAdapter.hxx"
 #include "CprAdapter.hxx"
 #include "DiagramAdapter.hxx"
@@ -34,7 +35,45 @@ namespace org_scilab_modules_scicos
 namespace view_scilab
 {
 
-Adapters Adapters::m_instance = Adapters();
+struct AdapterView : public View
+{
+    void objectCreated(const ScicosID& uid, kind_t kind) override {};
+    void objectReferenced(const ScicosID& uid, kind_t kind, unsigned refCount) override {};
+    void objectUnreferenced(const ScicosID& uid, kind_t kind, unsigned refCount) override {};
+    void objectDeleted(const ScicosID& uid, kind_t kind) override
+    {
+        switch (kind)
+        {
+            case BLOCK:
+                GraphicsAdapter::remove_partial_links_information(uid);
+                break;
+            case LINK:
+                LinkAdapter::remove_partial_links_information(uid);
+                break;
+            default:
+                break;
+        }
+    };
+    void objectCloned(const ScicosID& uid, const ScicosID& cloned, kind_t kind) override
+    {
+        Controller controller;
+
+        switch (kind)
+        {
+            case BLOCK:
+                GraphicsAdapter::add_partial_links_information(controller, uid, cloned);
+                break;
+            case LINK:
+                LinkAdapter::add_partial_links_information(controller, uid, cloned);
+                break;
+            default:
+                break;
+        }
+    };
+    void propertyUpdated(const ScicosID& uid, kind_t kind, object_properties_t property, update_status_t status) override {};
+};
+
+Adapters Adapters::m_instance;
 
 Adapters& Adapters::instance()
 {
@@ -62,6 +101,9 @@ Adapters::Adapters()
     adapters.push_back(adapter_t(view_scilab::TextAdapter::getSharedTypeStr(), TEXT_ADAPTER));
 
     std::sort(adapters.begin(), adapters.end());
+
+    Controller controller;
+    controller.register_view("Adapters", new AdapterView());
 }
 
 Adapters::~Adapters()
@@ -136,14 +178,19 @@ types::InternalType* Adapters::allocate_view(ScicosID id, kind_t kind)
 {
     Controller controller;
 
-    switch (kind)
+    return allocate_view(controller, controller.getBaseObject(id));
+}
+
+types::InternalType* Adapters::allocate_view(Controller& controller, model::BaseObject* o)
+{
+    switch (o->kind())
     {
         case BLOCK:
-            return new view_scilab::BlockAdapter(controller, controller.getBaseObject<model::Block>(id));
+            return new view_scilab::BlockAdapter(controller, static_cast<model::Block*>(o));
         case LINK:
-            return new view_scilab::LinkAdapter(controller, controller.getBaseObject<model::Link>(id));
+            return new view_scilab::LinkAdapter(controller, static_cast<model::Link*>(o));
         case DIAGRAM:
-            return new view_scilab::DiagramAdapter(controller, controller.getBaseObject<model::Diagram>(id));
+            return new view_scilab::DiagramAdapter(controller, static_cast<model::Diagram*>(o));
         default:
             return nullptr;
     }
index 154c6f5..eb880fd 100644 (file)
@@ -23,7 +23,6 @@
 #include <functional>
 #include <string>
 #include <vector>
-#include <unordered_map>
 #include <sstream>
 
 #include "bool.hxx"
@@ -174,7 +173,7 @@ public:
         {
             Controller controller;
 
-            std::unordered_map<BaseObject*, BaseObject*> mapped;
+            Controller::cloned_t mapped;
             BaseObject* clone = controller.cloneBaseObject(mapped, adapter.getAdaptee(), cloneChildren, true);
             m_adaptee = static_cast<Adaptee*>(clone);
         }
@@ -204,7 +203,8 @@ public:
         typename property<Adaptor>::props_t_it found = property<Adaptor>::find(_sKey);
         if (found != property<Adaptor>::fields.end())
         {
-            return found->get(*static_cast<Adaptor*>(this), controller);
+            Adaptor& adapter = *static_cast<Adaptor*>(this);
+            return found->get(adapter, controller);
         }
         return nullptr;
     }
@@ -214,7 +214,8 @@ public:
         typename property<Adaptor>::props_t_it found = property<Adaptor>::find(_sKey);
         if (found != property<Adaptor>::fields.end())
         {
-            return found->set(*static_cast<Adaptor*>(this), v, controller);
+            Adaptor& adapter = *static_cast<Adaptor*>(this);
+            return found->set(adapter, v, controller);
         }
         return false;
     }
index 2f90940..6ed4b74 100644 (file)
@@ -194,16 +194,12 @@ BlockAdapter::BlockAdapter(const BlockAdapter& adapter) :
     BaseAdapter<BlockAdapter, org_scilab_modules_scicos::model::Block>(adapter),
     doc_content(reference_value(adapter.doc_content))
 {
-    Controller controller;
-    GraphicsAdapter::add_partial_links_information(controller, adapter.getAdaptee(), getAdaptee());
 }
 
 BlockAdapter::~BlockAdapter()
 {
     doc_content->DecreaseRef();
     doc_content->killMe();
-
-    GraphicsAdapter::remove_partial_links_information(getAdaptee());
 }
 
 std::wstring BlockAdapter::getTypeStr() const
index ed8c232..ff679f7 100644 (file)
@@ -1,6 +1,7 @@
 /*
  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  *  Copyright (C) 2014-2016 - Scilab Enterprises - Clement DAVID
+ *  Copyright (C) 2017-2018 - ESI Group - Clement DAVID
  *
  * Copyright (C) 2012 - 2016 - Scilab Enterprises
  *
@@ -109,7 +110,7 @@ struct objs
                 case BLOCK :
                     ret->append(new BlockAdapter(controller, controller.referenceBaseObject<model::Block>(o)));
                     break;
-                case LINK :
+                case LINK:
                 {
                     ret->append(new LinkAdapter(controller, controller.referenceBaseObject<model::Link>(o)));
                     break;
@@ -217,7 +218,7 @@ struct objs
             {
                 if (u.adaptee != nullptr)
                 {
-                    controller.deleteObject(u.adaptee->id());
+                    controller.deleteBaseObject(u.adaptee);
                 }
             });
         }
@@ -256,6 +257,7 @@ struct objs
 
         // work buffer :
         std::vector<update_t> childrenToUpdate;
+        Controller::cloned_t mapped;
 
         // fill the work buffers accordingly to the arguments
         for (int i = 0; i < argumentList->getSize(); ++i)
@@ -272,22 +274,26 @@ struct objs
                         return false;
                     }
 
+                    // filter out non modified children
+                    if (o->id() == children[i])
+                    {
+                        break;
+                    }
+
                     // clone if the adapter is used somewhere else (eg. not owned by the list)
                     if (pIT->getRef() > 1 || o->refCount() > 0) // over-clone some elements but PASS the tests
                         //                     if (pIT->getRef() > 1) // TODO: investigate why this expression is not enough
                     {
-                        types::InternalType* clonedAdapter = pIT->clone();
-                        model::BaseObject* cloned = Adapters::instance().descriptor(clonedAdapter);
+                        model::BaseObject* cloned = controller.cloneBaseObject(mapped, o, true, true);
+                        types::InternalType* clonedAdapter = Adapters::instance().allocate_view(controller, cloned);
 
-                        LinkAdapter::add_partial_links_information(controller, o, cloned);
-                        GraphicsAdapter::add_partial_links_information(controller, o, cloned);
                         childrenToUpdate.emplace_back(i, cloned, clonedAdapter);
+                        break;
                     }
-                    else
-                    {
-                        pIT->IncreaseRef();
-                        childrenToUpdate.emplace_back(i, o, pIT);
-                    }
+
+                    // o have been edited in place, refresh partial information
+                    pIT->IncreaseRef();
+                    childrenToUpdate.emplace_back(i, o, pIT);
                     break;
                 }
                 case types::InternalType::ScilabMList:
@@ -331,7 +337,14 @@ struct objs
             // reference / derefence the content
             if (update.adapter == nullptr)
             {
-                controller.deleteObject(children[update.index]);
+                ScicosID c = children[update.index];
+                if (c == ScicosID())
+                {
+                    continue;
+                }
+
+                auto o = controller.getBaseObject(c);
+                controller.deleteBaseObject(o);
             }
             else
             {
@@ -345,6 +358,9 @@ struct objs
                     // Then 'offset' will skip the mlist so all the old children are deleted
                     ++offset;
                 }
+
+                LinkAdapter::store_partial_links_information(controller, update.adaptee, update.index + offset, children);
+                GraphicsAdapter::store_partial_links_information(controller, update.adaptee, update.index + offset, children);
                 controller.deleteObject(children[update.index + offset]);
             }
 
@@ -377,20 +393,24 @@ struct objs
         }
 
         /*
-         * Update partial linking information (links then ports)
+         * Update partial linking information
          */
-        for (const auto & update : childrenToUpdate)
+        for (auto it = childrenToUpdate.begin(); it != childrenToUpdate.end(); ++it)
         {
-            if (update.adaptee != nullptr && update.adaptee->kind() == LINK)
+            if (it->adaptee != nullptr && it->adaptee->kind() == BLOCK)
             {
-                LinkAdapter::relink(controller, static_cast<model::Link*>(update.adaptee), children);
+                model::Block* adaptee = static_cast<model::Block*>(it->adaptee);
+                GraphicsAdapter::relink(controller, adaptee, children);
+                LinkAdapter::reverse_relink(controller, adaptee, it->index, children);
             }
         }
-        for (const auto & update : childrenToUpdate)
+        for (auto it = childrenToUpdate.begin(); it != childrenToUpdate.end(); ++it)
         {
-            if (update.adaptee != nullptr && update.adaptee->kind() == BLOCK)
+            if (it->adaptee != nullptr && it->adaptee->kind() == LINK)
             {
-                GraphicsAdapter::relink(controller, static_cast<model::Block*>(update.adaptee), children);
+                model::Link* adaptee = static_cast<model::Link*>(it->adaptee);
+                LinkAdapter::relink(controller, adaptee, children);
+                GraphicsAdapter::reverse_relink(controller, adaptee, it->index, children);
             }
         }
 
@@ -523,7 +543,6 @@ DiagramAdapter::DiagramAdapter(const DiagramAdapter& adapter) :
     BaseAdapter<DiagramAdapter, org_scilab_modules_scicos::model::BaseObject>(adapter),
     contrib_content(reference_value(adapter.contrib_content))
 {
-    contrib_content->IncreaseRef();
 }
 
 DiagramAdapter::~DiagramAdapter()
index d4c1a34..eb3aa8f 100644 (file)
@@ -1,6 +1,7 @@
 /*
  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  *  Copyright (C) 2014-2016 - Scilab Enterprises - Clement DAVID
+ *  Copyright (C) 2017-2018 - ESI Group - Clement DAVID
  *
  * Copyright (C) 2012 - 2016 - Scilab Enterprises
  *
 
 #include <cwchar>
 
-#include <string>
-#include <vector>
-#include <iostream>
-#include <iomanip>
 #include <algorithm>
 #include <functional>
+#include <iomanip>
+#include <iostream>
+#include <string>
+#include <vector>
 
-#include "list.hxx"
-#include "tlist.hxx"
 #include "double.hxx"
+#include "list.hxx"
 #include "string.hxx"
+#include "tlist.hxx"
 
-#include "utilities.hxx"
 #include "Controller.hxx"
 #include "GraphicsAdapter.hxx"
-#include "ports_management.hxx"
 #include "controller_helpers.hxx"
+#include "ports_management.hxx"
+#include "utilities.hxx"
 
 #include "var2vec.hxx"
 #include "vec2var.hxx"
 
 extern "C" {
+#include "charEncoding.h"
 #include "localization.h"
 #include "sci_malloc.h"
-#include "charEncoding.h"
 }
 
 namespace org_scilab_modules_scicos
@@ -49,23 +50,20 @@ namespace view_scilab
 namespace
 {
 
-const std::wstring MBLOCK (L"MBLOCK");
-const std::wstring MPBLOCK (L"MPBLOCK");
-const std::wstring in (L"in");
-const std::wstring intype (L"intype");
-const std::wstring out (L"out");
-const std::wstring outtype (L"outtype");
-const std::wstring param (L"param");
-const std::wstring paramv (L"paramv");
-const std::wstring pprop (L"pprop");
-const std::wstring nameF (L"nameF");
-const std::wstring funtxt (L"funtxt");
+const std::wstring MBLOCK(L"MBLOCK");
+const std::wstring MPBLOCK(L"MPBLOCK");
+const std::wstring in(L"in");
+const std::wstring intype(L"intype");
+const std::wstring out(L"out");
+const std::wstring outtype(L"outtype");
+const std::wstring param(L"param");
+const std::wstring paramv(L"paramv");
+const std::wstring pprop(L"pprop");
+const std::wstring nameF(L"nameF");
+const std::wstring funtxt(L"funtxt");
 
 // shared informations for relinking across adapters hierarchy
-std::map<ScicosID, std::vector<int> > partial_pin;
-std::map<ScicosID, std::vector<int> > partial_pout;
-std::map<ScicosID, std::vector<int> > partial_pein;
-std::map<ScicosID, std::vector<int> > partial_peout;
+partials_ports_t partial_ports;
 
 struct orig
 {
@@ -200,15 +198,8 @@ struct exprs
     }
 };
 
-std::vector<int> cached_ports_init(std::map<ScicosID, std::vector<int> >& cache, model::Block* adaptee, const object_properties_t port_kind, const Controller& controller)
+void cached_ports_init(partial_port_t::value_type& cache, model::Block* adaptee, const object_properties_t port_kind, const Controller& controller)
 {
-    auto it = cache.find(adaptee->id());
-    if (it != cache.end())
-    {
-        // if already present, do not refresh it !
-        return it->second;
-    }
-
     std::vector<ScicosID> ids;
     controller.getObjectProperty(adaptee, port_kind, ids);
 
@@ -229,7 +220,7 @@ std::vector<int> cached_ports_init(std::map<ScicosID, std::vector<int> >& cache,
         controller.getObjectProperty(parentBlock, BLOCK, CHILDREN, children);
     }
 
-    std::vector<int> ret(ids.size());
+    cache.resize(ids.size());
     // foreach ports, resolve it or discard
     int i = 0;
     for (std::vector<ScicosID>::iterator it = ids.begin(); it != ids.end(); ++it, ++i)
@@ -240,36 +231,51 @@ std::vector<int> cached_ports_init(std::map<ScicosID, std::vector<int> >& cache,
         if (id == ScicosID())
         {
             // Unconnected port, no need to search in 'children'
-            ret[i] = 0;
+            cache[i] = 0;
         }
         else
         {
             std::vector<ScicosID>::iterator found = std::find(children.begin(), children.end(), id);
             if (found != children.end())
             {
-                ret[i] = static_cast<int>(std::distance(children.begin(), found)) + 1;
+                cache[i] = static_cast<int>(std::distance(children.begin(), found)) + 1;
             }
             else
             {
                 // connected link not found ; discard it !
-                ret[i] = 0;
+                cache[i] = 0;
             }
         }
     }
-
-    cache.insert({adaptee->id(), ret});
-    return ret;
 }
 
-types::InternalType* cached_ports_get(std::map<ScicosID, std::vector<int> >& cache, const GraphicsAdapter& adaptor, const object_properties_t port_kind, const Controller& controller)
+types::InternalType* cached_ports_get(const GraphicsAdapter& adaptor, const object_properties_t port_kind, const Controller& controller)
 {
-    auto it = cache.find(adaptor.getAdaptee()->id());
-    if (it == cache.end())
+    auto it = partial_ports.find(adaptor.getAdaptee()->id());
+    if (it == partial_ports.end())
     {
         return get_ports_property<GraphicsAdapter, CONNECTED_SIGNALS>(adaptor, port_kind, controller);
     }
 
-    std::vector<int> const& ports = it->second;
+    std::vector<int>* pPorts;
+    switch (port_kind)
+    {
+        case INPUTS:
+            pPorts = &it->second.pin;
+            break;
+        case OUTPUTS:
+            pPorts = &it->second.pout;
+            break;
+        case EVENT_INPUTS:
+            pPorts = &it->second.pein;
+            break;
+        case EVENT_OUTPUTS:
+            pPorts = &it->second.peout;
+            break;
+        default:
+            return nullptr;
+    }
+    std::vector<int> const& ports = *pPorts;
 
     double* data;
     types::Double* ret = new types::Double(static_cast<int>(ports.size()), 1, &data);
@@ -288,10 +294,10 @@ types::InternalType* cached_ports_get(std::map<ScicosID, std::vector<int> >& cac
 
     return ret;
 }
-bool cached_ports_set(std::map<ScicosID, std::vector<int> >& cache, GraphicsAdapter& adaptor, const object_properties_t port_kind, Controller& controller, types::InternalType* v)
+bool cached_ports_set(GraphicsAdapter& adaptor, const object_properties_t port_kind, Controller& controller, types::InternalType* v)
 {
-    auto it = cache.find(adaptor.getAdaptee()->id());
-    if (it == cache.end())
+    auto it = partial_ports.find(adaptor.getAdaptee()->id());
+    if (it == partial_ports.end())
     {
         return update_ports_property<GraphicsAdapter, CONNECTED_SIGNALS>(adaptor, port_kind, controller, v);
     }
@@ -301,11 +307,28 @@ bool cached_ports_set(std::map<ScicosID, std::vector<int> >& cache, GraphicsAdap
         return false;
     }
     types::Double* value = v->getAs<types::Double>();
+    std::vector<int>* pPorts;
+    switch (port_kind)
+    {
+        case INPUTS:
+            pPorts = &it->second.pin;
+            break;
+        case OUTPUTS:
+            pPorts = &it->second.pout;
+            break;
+        case EVENT_INPUTS:
+            pPorts = &it->second.pein;
+            break;
+        case EVENT_OUTPUTS:
+            pPorts = &it->second.peout;
+            break;
+        default:
+            return false;
+    }
+    std::vector<int>& ports = *pPorts;
 
     // store the updated value locally
     {
-        std::vector<int>& ports = it->second;
-
         ports.resize(value->getSize());
         for (int i = 0; i < value->getSize(); ++i)
         {
@@ -313,10 +336,8 @@ bool cached_ports_set(std::map<ScicosID, std::vector<int> >& cache, GraphicsAdap
         }
     }
 
-    // enforce a the same number of port on the Model
+    // enforce the same number of port on the Model
     {
-        const std::vector<int>& ports = it->second;
-
         std::vector<ScicosID> objects;
         controller.getObjectProperty(adaptor.getAdaptee(), port_kind, objects);
 
@@ -371,12 +392,12 @@ struct pin
 
     static types::InternalType* get(const GraphicsAdapter& adaptor, const Controller& controller)
     {
-        return cached_ports_get(partial_pin, adaptor, INPUTS, controller);
+        return cached_ports_get(adaptor, INPUTS, controller);
     }
 
     static bool set(GraphicsAdapter& adaptor, types::InternalType* v, Controller& controller)
     {
-        return cached_ports_set(partial_pin, adaptor, INPUTS, controller, v);
+        return cached_ports_set(adaptor, INPUTS, controller, v);
     }
 };
 
@@ -385,12 +406,12 @@ struct pout
 
     static types::InternalType* get(const GraphicsAdapter& adaptor, const Controller& controller)
     {
-        return cached_ports_get(partial_pout, adaptor, OUTPUTS, controller);
+        return cached_ports_get(adaptor, OUTPUTS, controller);
     }
 
     static bool set(GraphicsAdapter& adaptor, types::InternalType* v, Controller& controller)
     {
-        return cached_ports_set(partial_pout, adaptor, OUTPUTS, controller, v);
+        return cached_ports_set(adaptor, OUTPUTS, controller, v);
     }
 };
 
@@ -399,12 +420,12 @@ struct pein
 
     static types::InternalType* get(const GraphicsAdapter& adaptor, const Controller& controller)
     {
-        return cached_ports_get(partial_pein, adaptor, EVENT_INPUTS, controller);
+        return cached_ports_get(adaptor, EVENT_INPUTS, controller);
     }
 
     static bool set(GraphicsAdapter& adaptor, types::InternalType* v, Controller& controller)
     {
-        return cached_ports_set(partial_pein, adaptor, EVENT_INPUTS, controller, v);
+        return cached_ports_set(adaptor, EVENT_INPUTS, controller, v);
     }
 };
 
@@ -413,12 +434,12 @@ struct peout
 
     static types::InternalType* get(const GraphicsAdapter& adaptor, const Controller& controller)
     {
-        return cached_ports_get(partial_peout, adaptor, EVENT_OUTPUTS, controller);
+        return cached_ports_get(adaptor, EVENT_OUTPUTS, controller);
     }
 
     static bool set(GraphicsAdapter& adaptor, types::InternalType* v, Controller& controller)
     {
-        return cached_ports_set(partial_peout, adaptor, EVENT_OUTPUTS, controller, v);
+        return cached_ports_set(adaptor, EVENT_OUTPUTS, controller, v);
     }
 };
 
@@ -634,7 +655,8 @@ struct style
 
 } /* namespace */
 
-template<> property<GraphicsAdapter>::props_t property<GraphicsAdapter>::fields = property<GraphicsAdapter>::props_t();
+template<>
+property<GraphicsAdapter>::props_t property<GraphicsAdapter>::fields = property<GraphicsAdapter>::props_t();
 static void initialize_fields()
 {
     if (property<GraphicsAdapter>::properties_have_not_been_set())
@@ -660,38 +682,37 @@ static void initialize_fields()
     }
 }
 
-GraphicsAdapter::GraphicsAdapter() :
-    BaseAdapter<GraphicsAdapter, org_scilab_modules_scicos::model::Block>(),
+GraphicsAdapter::GraphicsAdapter() : BaseAdapter<GraphicsAdapter, org_scilab_modules_scicos::model::Block>(),
     gr_i_content(reference_value(types::Double::Empty()))
 {
     initialize_fields();
 }
 
-GraphicsAdapter::GraphicsAdapter(const Controller& c, model::Block* adaptee) :
-    BaseAdapter<GraphicsAdapter, org_scilab_modules_scicos::model::Block>(c, adaptee),
+GraphicsAdapter::GraphicsAdapter(const Controller& c, model::Block* adaptee) : BaseAdapter<GraphicsAdapter, org_scilab_modules_scicos::model::Block>(c, adaptee),
     gr_i_content(reference_value(types::Double::Empty()))
 {
     initialize_fields();
 
-    Controller controller;
-    cached_ports_init(partial_pin, adaptee, INPUTS, controller);
-    cached_ports_init(partial_pout, adaptee, OUTPUTS, controller);
-    cached_ports_init(partial_pein, adaptee, EVENT_INPUTS, controller);
-    cached_ports_init(partial_peout, adaptee, EVENT_OUTPUTS, controller);
+    auto it = partial_ports.find(adaptee->id());
+    if (it == partial_ports.end())
+    {
+        Controller controller;
+
+        // if already present, do not allocate it  !
+        partial_port_t partial;
+        cached_ports_init(partial.pin, adaptee, INPUTS, controller);
+        cached_ports_init(partial.pout, adaptee, OUTPUTS, controller);
+        cached_ports_init(partial.pein, adaptee, EVENT_INPUTS, controller);
+        cached_ports_init(partial.peout, adaptee, EVENT_OUTPUTS, controller);
+
+        partial_ports.insert(std::make_pair(adaptee->id(), partial));
+    }
 }
 
 GraphicsAdapter::~GraphicsAdapter()
 {
     gr_i_content->DecreaseRef();
     gr_i_content->killMe();
-
-    if (getAdaptee() != nullptr && getAdaptee()->refCount() == 0)
-    {
-        partial_pin.erase(getAdaptee()->id());
-        partial_pout.erase(getAdaptee()->id());
-        partial_pein.erase(getAdaptee()->id());
-        partial_peout.erase(getAdaptee()->id());
-    }
 }
 
 std::wstring GraphicsAdapter::getTypeStr() const
@@ -720,16 +741,8 @@ void GraphicsAdapter::setGrIContent(types::InternalType* v)
     temp->killMe();
 }
 
-static void relink_cached(Controller& controller, model::BaseObject* adaptee, const std::vector<ScicosID>& children, std::map<ScicosID, std::vector<int> >& cache, object_properties_t p)
+static void relink_cached(Controller& controller, model::BaseObject* adaptee, const std::vector<ScicosID>& children, partial_port_t::value_type& cached_information, object_properties_t p, const partials_ports_t::iterator& it)
 {
-    auto it = cache.find(adaptee->id());
-    if (it == cache.end())
-    {
-        // unable to relink as there is no information to do so
-        return;
-    }
-    std::vector<int>& cached_information = it->second;
-
     std::vector<ScicosID> ports;
     controller.getObjectProperty(adaptee, p, ports);
 
@@ -739,95 +752,403 @@ static void relink_cached(Controller& controller, model::BaseObject* adaptee, co
         return;
     }
 
-    bool isConnected = true;
     for (size_t i = 0; i < cached_information.size(); ++i)
     {
-        ScicosID connectedSignal;
-        controller.getObjectProperty(ports[i], PORT, CONNECTED_SIGNALS, connectedSignal);
-
-        if (connectedSignal != ScicosID())
+        // relink
+        int index = cached_information[i];
+        if (0 < index && index <= children.size())
         {
-            cached_information[i] = (int)std::distance(children.begin(), std::find(children.begin(), children.end(), connectedSignal));
+            // common case: relink to a pre-connected block
+            model::BaseObject* opposite = controller.getBaseObject(children[index - 1]);
+            if (opposite == nullptr || opposite->kind() != LINK)
+            {
+                continue;
+            }
+
+            model::Port* port = controller.getBaseObject<model::Port>(ports[i]);
+            controller.setObjectProperty(port, CONNECTED_SIGNALS, opposite->id());
         }
-        else
+        else if (index == 0)
         {
-            isConnected = false;
+            // corner case: relink to non connected block, smart-connect the links if there is enough ports.
+            // TODO: is it already done ?
         }
     }
+}
 
-    if (isConnected)
+// delete the current shared values if the block is fully connected
+static void refresh_shared_values(Controller& controller, model::Block* adaptee, partials_ports_t::iterator& it)
+{
+    /*
+    // early cleanup is commented out to pass tests where :
+    //  1. within a SuperBlock
+    //  2. a link is created
+    //  3. connected using lnk.from (which might erase the partials)
+    //  4. connected using lnk.to
+    //
+    //  The check show that as the partials are deleted on 3 (if commented out) *BUT* the
+    //  block does not appear as connected due to setLinkEnd extra checks for both start
+    //  and end. On 4, where setLinkEnd succeed for both side, we have already lost the
+    //  reference on this block.
+
+    auto are_all_connected = [&controller,
+                              adaptee](object_properties_t portKind)
     {
-        cache.erase(it);
+        std::vector<ScicosID> ports;
+        controller.getObjectProperty(adaptee, portKind, ports);
+
+        for (ScicosID p : ports)
+        {
+            ScicosID connectedSignal = ScicosID();
+            controller.getObjectProperty(p, PORT, CONNECTED_SIGNALS, connectedSignal);
+
+            if (connectedSignal == ScicosID())
+            {
+                return false;
+            }
+        }
+        return true;
+    };
+
+    if (are_all_connected(INPUTS) && are_all_connected(OUTPUTS) && are_all_connected(EVENT_INPUTS) && are_all_connected(EVENT_OUTPUTS))
+    {
+
+        partial_ports.erase(it);
     }
+    */
 }
 
 void GraphicsAdapter::relink(Controller& controller, model::Block* adaptee, const std::vector<ScicosID>& children)
 {
-    relink_cached(controller, adaptee, children, partial_pin, INPUTS);
-    relink_cached(controller, adaptee, children, partial_pout, OUTPUTS);
-    relink_cached(controller, adaptee, children, partial_pein, EVENT_INPUTS);
-    relink_cached(controller, adaptee, children, partial_peout, EVENT_OUTPUTS);
+    auto it = partial_ports.find(adaptee->id());
+    if (it == partial_ports.end())
+    {
+        // unable to relink as there is no information to do so
+        return;
+    }
+
+
+    relink_cached(controller, adaptee, children, it->second.pin, INPUTS, it);
+    relink_cached(controller, adaptee, children, it->second.pout, OUTPUTS, it);
+    relink_cached(controller, adaptee, children, it->second.pein, EVENT_INPUTS, it);
+    relink_cached(controller, adaptee, children, it->second.peout, EVENT_OUTPUTS, it);
+
+    refresh_shared_values(controller, adaptee, it);
 }
 
-void copyOnClone(model::BaseObject* original, model::BaseObject* cloned, std::map<ScicosID, std::vector<int> >& cache)
+static bool incorrectly_connected(Controller& controller, model::Port* port,
+                                  partial_port_t::value_type& graphics_port,
+                                  const std::vector<ScicosID>& children)
 {
+    ScicosID signal;
+    controller.getObjectProperty(port, CONNECTED_SIGNALS,
+                                 signal);
+    for (int idx : graphics_port)
+    {
+        if (0 > idx || idx >= children.size())
+        {
+            return true;
+        }
+        else if (children[idx] != signal)
+        {
+            return true;
+        }
+    }
 
-    auto it = cache.find(original->id());
-    if (it != cache.end())
-        cache.insert({cloned->id(), it->second});
+    return false;
 }
 
-void GraphicsAdapter::add_partial_links_information(Controller& controller, model::BaseObject* original, model::BaseObject* cloned)
+// Remove partial information if not needed anymore
+static void cleanup(Controller& controller, const std::vector<ScicosID>& children, model::Port* src, model::Port* dst)
 {
-    // precondition
-    if (cloned == nullptr)
+    // check if the source block is fully connected
+    ScicosID source_block = ScicosID();
+    controller.getObjectProperty(src, SOURCE_BLOCK, source_block);
+
+    auto source_it = partial_ports.find(source_block);
+    if (source_it == partial_ports.end())
+    {
+        return;
+    }
+
+    if (incorrectly_connected(controller, src, source_it->second.pin, children) ||
+            incorrectly_connected(controller, src, source_it->second.pout, children) ||
+            incorrectly_connected(controller, src, source_it->second.pein, children) ||
+            incorrectly_connected(controller, src, source_it->second.peout, children))
     {
         return;
     }
 
-    if (original->kind() == BLOCK)
+    // check if the destination block is fully connected
+    ScicosID destination_block = ScicosID();
+    controller.getObjectProperty(dst, SOURCE_BLOCK, destination_block);
+
+    auto destination_it = partial_ports.find(destination_block);
+    if (destination_it == partial_ports.end())
     {
-        // add the from / to information if applicable
-        copyOnClone(original, cloned, partial_pin);
-        copyOnClone(original, cloned, partial_pout);
-        copyOnClone(original, cloned, partial_pein);
-        copyOnClone(original, cloned, partial_peout);
+        return;
     }
 
-    switch (original->kind())
+    if (incorrectly_connected(controller, dst, destination_it->second.pin, children) ||
+            incorrectly_connected(controller, dst, destination_it->second.pout, children) ||
+            incorrectly_connected(controller, dst, destination_it->second.pein, children) ||
+            incorrectly_connected(controller, dst, destination_it->second.peout, children))
+    {
+        return;
+    }
+
+
+    // erase the partial information
+    partial_ports.erase(source_it);
+    partial_ports.erase(destination_it);
+}
+
+void GraphicsAdapter::reverse_relink(Controller& controller, model::Link* adaptee, int index, const std::vector<ScicosID>& children)
+{
+    if (adaptee->id() != children[index])
+    {
+        return;
+    }
+
+    ScicosID source = ScicosID();
+    ScicosID destination = ScicosID();
+    controller.getObjectProperty(adaptee, SOURCE_PORT, source);
+    controller.getObjectProperty(adaptee, DESTINATION_PORT, destination);
+
+    model::Port* src = controller.getBaseObject<model::Port>(source);
+    model::Port* dst = controller.getBaseObject<model::Port>(destination);
+
+    ScicosID source_parent = ScicosID();
+    ScicosID destination_parent = ScicosID();
+    controller.getObjectProperty(src, SOURCE_BLOCK, source_parent);
+    controller.getObjectProperty(dst, SOURCE_BLOCK, destination_parent);
+
+    int linkType = 0;
+    controller.getObjectProperty(adaptee, KIND, linkType);
+
+    auto source_it = partial_ports.find(source_parent);
+    if (source_it != partial_ports.end())
     {
-        // handle recursion
-        case DIAGRAM:
-        case BLOCK:
+        if (linkType == model::activation)
         {
-            std::vector<ScicosID> originalChildren;
-            controller.getObjectProperty(original, CHILDREN, originalChildren);
-            std::vector<ScicosID> clonedChildren;
-            controller.getObjectProperty(cloned, CHILDREN, clonedChildren);
+            std::vector<ScicosID> ports;
+            controller.getObjectProperty(source_parent, BLOCK, EVENT_OUTPUTS, ports);
+            int port_index = (int)std::distance(ports.begin(), std::find(ports.begin(), ports.end(), source));
+            if (port_index < source_it->second.peout.size())
+            {
+                source_it->second.peout[port_index] = index + 1;
+            }
+        }
+        else // model::regular || model::implicit
+        {
+            std::vector<ScicosID> ports;
+            controller.getObjectProperty(source_parent, BLOCK, OUTPUTS, ports);
+            int port_index = (int)std::distance(ports.begin(), std::find(ports.begin(), ports.end(), source));
+            if (port_index < source_it->second.pout.size()) // regular indexing
+            {
+                source_it->second.pout[port_index] = index + 1;
+            }
+            else if (linkType == model::implicit &&
+                     port_index < source_it->second.pin.size()) // second try for implicit reversed link
+            {
+                source_it->second.pin[port_index] = index + 1;
+            }
+        }
+    }
 
-            for (size_t i = 0; i < originalChildren.size(); ++i)
+    auto destination_it = partial_ports.find(destination_parent);
+    if (destination_it != partial_ports.end())
+    {
+        if (linkType == model::activation)
+        {
+            std::vector<ScicosID> ports;
+            controller.getObjectProperty(destination_parent, BLOCK, EVENT_INPUTS, ports);
+            int port_index = (int)std::distance(ports.begin(), std::find(ports.begin(), ports.end(), destination));
+            if (port_index < destination_it->second.pein.size())
             {
-                // a clone preserve position thus null ID, ignore them on
-                // this loop
-                if (originalChildren[i] != ScicosID())
-                {
-                    add_partial_links_information(controller, controller.getBaseObject(originalChildren[i]), controller.getBaseObject(clonedChildren[i]));
-                }
+                destination_it->second.pein[port_index] = index + 1;
+            }
+        }
+        else // model::regular || model::implicit
+        {
+            std::vector<ScicosID> ports;
+            controller.getObjectProperty(destination_parent, BLOCK, INPUTS, ports);
+            int port_index = (int)std::distance(ports.begin(), std::find(ports.begin(), ports.end(), destination));
+            if (port_index < destination_it->second.pin.size()) // regular indexing
+            {
+                destination_it->second.pin[port_index] = index + 1;
+            }
+            else if (linkType == model::implicit &&
+                     port_index < destination_it->second.pout.size()) // second try for implicit reversed link
+            {
+                destination_it->second.pout[port_index] = index + 1;
             }
-            break;
         }
+    }
 
-        default:
-            break;
+    if (source_it != partial_ports.end() && destination_it != partial_ports.end())
+    {
+    }
+    cleanup(controller, children, src, dst);
+}
+
+inline std::ptrdiff_t indexof(const std::vector<int>& vec, int value)
+{
+    return std::distance(vec.begin(), std::find(vec.begin(), vec.end(), value));
+}
+
+static void resolve_ports(Controller& controller, model::Block* block, const object_properties_t port_kind, std::vector<int>& resolved, const std::vector<ScicosID>& children)
+{
+    std::vector<ScicosID> ports;
+    controller.getObjectProperty(block, port_kind, ports);
+
+    resolved.resize(ports.size());
+    for (size_t i = 0; i < ports.size(); ++i)
+    {
+        ScicosID link;
+        controller.getObjectProperty(ports[i], PORT, CONNECTED_SIGNALS, link);
+        if (link == ScicosID())
+        {
+            resolved[i] = 0;
+        }
+        else
+        {
+            auto found = std::find(children.begin(), children.end(), link);
+            resolved[i] = std::distance(children.begin(), found) + 1;
+        }
+    }
+}
+
+void GraphicsAdapter::add_partial_links_information(Controller& controller, ScicosID original, ScicosID cloned)
+{
+    auto it = partial_ports.find(original);
+    if (it != partial_ports.end())
+    {
+        partial_ports.insert(std::make_pair(cloned, it->second));
+    }
+    else
+    {
+        model::Block* block = controller.getBaseObject<model::Block>(original);
+
+        std::vector<ScicosID> children;
+        ScicosID parentBlock;
+        controller.getObjectProperty(block, PARENT_BLOCK, parentBlock);
+        if (parentBlock == ScicosID())
+        {
+            // Adding to a diagram
+            ScicosID parentDiagram;
+            controller.getObjectProperty(block, PARENT_DIAGRAM, parentDiagram);
+
+            controller.getObjectProperty(parentDiagram, DIAGRAM, CHILDREN, children);
+        }
+        else
+        {
+            // Adding to a superblock
+            controller.getObjectProperty(parentBlock, BLOCK, CHILDREN, children);
+        }
+
+        partial_port_t removed_interface;
+        resolve_ports(controller, block, INPUTS, removed_interface.pin, children);
+        resolve_ports(controller, block, OUTPUTS, removed_interface.pout, children);
+        resolve_ports(controller, block, EVENT_INPUTS, removed_interface.pein, children);
+        resolve_ports(controller, block, EVENT_OUTPUTS, removed_interface.peout, children);
+
+        partial_ports.insert(std::make_pair(cloned, removed_interface));
+    }
+}
+
+static bool connected(const partial_port_t& p)
+{
+    for (int idx : p.pin)
+    {
+        if (idx == 0)
+        {
+            return false;
+        }
+    }
+    for (int idx : p.pout)
+    {
+        if (idx == 0)
+        {
+            return false;
+        }
+    }
+    for (int idx : p.pein)
+    {
+        if (idx == 0)
+        {
+            return false;
+        }
+    }
+    for (int idx : p.peout)
+    {
+        if (idx == 0)
+        {
+            return false;
+        }
+    }
+
+    return true;
+}
+
+static bool compatible(const partial_port_t& added, const partial_port_t& removed)
+{
+    return added.pin.size() == removed.pin.size() &&
+           added.pout.size() == removed.pout.size() &&
+           added.pein.size() == removed.pein.size() &&
+           added.peout.size() == removed.peout.size();
+}
+
+// manage partial information before a model delete
+void GraphicsAdapter::store_partial_links_information(Controller& controller, model::BaseObject* added, int index, const std::vector<ScicosID>& children)
+{
+    model::BaseObject* removed = controller.getBaseObject(children[index]);
+    if (removed == nullptr || removed->kind() != BLOCK)
+    {
+        return;
+    }
+    if (added == nullptr || added->kind() != BLOCK)
+    {
+        return;
+    }
+
+    // use the cached added information by default
+    auto added_it = partial_ports.find(added->id());
+    partial_port_t added_interface;
+    if (added_it == partial_ports.end())
+    {
+        return;
+    }
+    added_interface = added_it->second;
+
+    // resolve the removed information
+    auto removed_it = partial_ports.find(removed->id());
+    partial_port_t removed_interface;
+    if (removed_it == partial_ports.end())
+    {
+        model::Block* block = static_cast<model::Block*>(removed);
+
+        resolve_ports(controller, block, INPUTS, removed_interface.pin, children);
+        resolve_ports(controller, block, OUTPUTS, removed_interface.pout, children);
+        resolve_ports(controller, block, EVENT_INPUTS, removed_interface.pein, children);
+        resolve_ports(controller, block, EVENT_OUTPUTS, removed_interface.peout, children);
+    }
+    else
+    {
+        removed_interface = removed_it->second;
+    }
+
+    // relink automatically
+    if (!connected(added_interface) && compatible(added_interface, removed_interface))
+    {
+        added_it->second = removed_interface;
     }
 }
 
-void GraphicsAdapter::remove_partial_links_information(model::Block* o)
+// delete all information related to the block
+void GraphicsAdapter::remove_partial_links_information(ScicosID uid)
 {
-    partial_pin.erase(o->id());
-    partial_pout.erase(o->id());
-    partial_pein.erase(o->id());
-    partial_peout.erase(o->id());
+    partial_ports.erase(uid);
 }
 
 } /* namespace view_scilab */
index a6731d6..aab7525 100644 (file)
 #define GRAPHICSADAPTER_HXX_
 
 #include <string>
+#include <vector>
 
 #include "internal.hxx"
 
 #include "BaseAdapter.hxx"
 #include "adapters_utilities.hxx"
 #include "model/Block.hxx"
+#include "model/Link.hxx"
 
 namespace org_scilab_modules_scicos
 {
@@ -49,10 +51,13 @@ public:
 
     // move (if possible) the partial information to the model
     static void relink(Controller& controller, model::Block* adaptee, const std::vector<ScicosID>& children);
+    static void reverse_relink(Controller& controller, model::Link* adaptee, int index, const std::vector<ScicosID>& children);
     // manage partial information after a model clone
-    static void add_partial_links_information(Controller& controller, model::BaseObject* original, model::BaseObject* cloned);
-    // remove partial links information (on delete)
-    static void remove_partial_links_information(model::Block* o);
+    static void add_partial_links_information(Controller& controller, ScicosID original, ScicosID cloned);
+    // manage partial information before a model delete
+    static void store_partial_links_information(Controller& controller, model::BaseObject* added, int index, const std::vector<ScicosID>& children);
+    // remove all information related to the block
+    static void remove_partial_links_information(ScicosID uid);
 
 private:
     types::InternalType* gr_i_content;
index 93762bc..f95fd44 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) 2014-2016 - Scilab Enterprises - Clement DAVID
- * Copyright (C) 2017 - ESI Group - Clement DAVID
+ * Copyright (C) 2017-2018 - ESI Group - Clement DAVID
  *
  * Copyright (C) 2012 - 2016 - Scilab Enterprises
  *
  *
  */
 
+#include <algorithm>
+#include <iterator>
 #include <string>
 #include <vector>
-#include <map>
-#include <iterator>
-#include <algorithm>
 
+#include "double.hxx"
 #include "internal.hxx"
 #include "list.hxx"
 #include "types.hxx"
 #include "user.hxx"
-#include "double.hxx"
 
-#include "utilities.hxx"
-#include "adapters_utilities.hxx"
 #include "Controller.hxx"
 #include "LinkAdapter.hxx"
+#include "adapters_utilities.hxx"
 #include "controller_helpers.hxx"
+#include "model/Block.hxx"
 #include "model/Link.hxx"
 #include "model/Port.hxx"
-#include "model/Block.hxx"
+#include "utilities.hxx"
 
 extern "C" {
-#include "sci_malloc.h"
 #include "charEncoding.h"
 #include "localization.h"
+#include "sci_malloc.h"
 }
 
 namespace org_scilab_modules_scicos
@@ -48,12 +47,12 @@ namespace view_scilab
 namespace
 {
 
-const std::string split ("split");
-const std::string lsplit ("lsplit");
-const std::string limpsplit ("limpsplit");
+const std::string split("split");
+const std::string lsplit("lsplit");
+const std::string limpsplit("limpsplit");
 
 // shared information for relinking across adapters hierarchy
-std::map<ScicosID, partial_link_t> partial_links;
+partials_links_t partial_links;
 
 struct xx
 {
@@ -93,7 +92,7 @@ struct xx
 
         int newXSize = current->getSize();
         int oldXSize = static_cast<int>(controlPoints.size() / 2);
-        std::vector<double> newControlPoints (controlPoints);
+        std::vector<double> newControlPoints(controlPoints);
 
         if (newXSize == oldXSize)
         {
@@ -155,7 +154,7 @@ struct yy
 
         int newYSize = current->getSize();
         int oldYSize = static_cast<int>(controlPoints.size() / 2);
-        std::vector<double> newControlPoints (controlPoints);
+        std::vector<double> newControlPoints(controlPoints);
 
         if (newYSize == oldYSize)
         {
@@ -254,7 +253,7 @@ struct thick
             return false;
         }
 
-        std::vector<double> thick (2);
+        std::vector<double> thick(2);
         thick[0] = current->get(0);
         thick[1] = current->get(1);
 
@@ -303,7 +302,7 @@ struct ct
         }
 
         int color = static_cast<int>(current->get(0));
-        int kind  = static_cast<int>(current->get(1));
+        int kind = static_cast<int>(current->get(1));
 
         controller.setObjectProperty(adaptee, COLOR, color);
         controller.setObjectProperty(adaptee, KIND, kind);
@@ -311,9 +310,10 @@ struct ct
     }
 };
 
-link_t getLinkEnd(model::Link* adaptee, const Controller& controller, const object_properties_t end)
+static link_t getLinkEnd(model::Link* adaptee, const Controller& controller,
+                         const object_properties_t end)
 {
-    link_t ret {0, 0, Start};
+    link_t ret{0, 0, Start};
     if (end == DESTINATION_PORT)
     {
         ret.kind = End;
@@ -325,7 +325,8 @@ link_t getLinkEnd(model::Link* adaptee, const Controller& controller, const obje
     {
         ScicosID sourceBlock;
         controller.getObjectProperty(endID, PORT, SOURCE_BLOCK, sourceBlock);
-        model::Block* sourceBlockObject = controller.getBaseObject<model::Block>(sourceBlock);
+        model::Block* sourceBlockObject =
+            controller.getBaseObject<model::Block>(sourceBlock);
 
         // Looking for the block number among the block IDs
         ScicosID parent;
@@ -345,28 +346,40 @@ link_t getLinkEnd(model::Link* adaptee, const Controller& controller, const obje
         }
         controller.getObjectProperty(parent, parentKind, CHILDREN, children);
 
-        ret.block = static_cast<int>(std::distance(children.begin(), std::find(children.begin(), children.end(), sourceBlock)) + 1);
+        ret.block =
+            static_cast<int>(std::distance(children.begin(),
+                                           std::find(children.begin(),
+                                                   children.end(), sourceBlock)) +
+                             1);
 
-        // To find the port index from its 'endID' ID, search through all the block's ports lists
+        // To find the port index from its 'endID' ID, search through all the
+        // block's ports lists
         std::vector<ScicosID> sourceBlockPorts;
         controller.getObjectProperty(sourceBlockObject, INPUTS, sourceBlockPorts);
 
-        std::vector<ScicosID>::iterator found = std::find(sourceBlockPorts.begin(), sourceBlockPorts.end(), endID);
+        std::vector<ScicosID>::iterator found =
+            std::find(sourceBlockPorts.begin(), sourceBlockPorts.end(), endID);
         if (found == sourceBlockPorts.end()) // Not found in the data inputs
         {
             sourceBlockPorts.clear();
-            controller.getObjectProperty(sourceBlockObject, OUTPUTS, sourceBlockPorts);
-            found = std::find(sourceBlockPorts.begin(), sourceBlockPorts.end(), endID);
+            controller.getObjectProperty(sourceBlockObject, OUTPUTS,
+                                         sourceBlockPorts);
+            found =
+                std::find(sourceBlockPorts.begin(), sourceBlockPorts.end(), endID);
             if (found == sourceBlockPorts.end()) // Not found in the data outputs
             {
                 sourceBlockPorts.clear();
-                controller.getObjectProperty(sourceBlockObject, EVENT_INPUTS, sourceBlockPorts);
-                found = std::find(sourceBlockPorts.begin(), sourceBlockPorts.end(), endID);
+                controller.getObjectProperty(sourceBlockObject, EVENT_INPUTS,
+                                             sourceBlockPorts);
+                found =
+                    std::find(sourceBlockPorts.begin(), sourceBlockPorts.end(), endID);
                 if (found == sourceBlockPorts.end()) // Not found in the event inputs
                 {
                     sourceBlockPorts.clear();
-                    controller.getObjectProperty(sourceBlockObject, EVENT_OUTPUTS, sourceBlockPorts);
-                    found = std::find(sourceBlockPorts.begin(), sourceBlockPorts.end(), endID);
+                    controller.getObjectProperty(sourceBlockObject, EVENT_OUTPUTS,
+                                                 sourceBlockPorts);
+                    found = std::find(sourceBlockPorts.begin(), sourceBlockPorts.end(),
+                                      endID);
                     if (found == sourceBlockPorts.end()) // Not found in the event outputs
                     {
                         return ret;
@@ -374,7 +387,8 @@ link_t getLinkEnd(model::Link* adaptee, const Controller& controller, const obje
                 }
             }
         }
-        ret.port = static_cast<int>(std::distance(sourceBlockPorts.begin(), found) + 1);
+        ret.port =
+            static_cast<int>(std::distance(sourceBlockPorts.begin(), found) + 1);
 
         int kind;
         controller.getObjectProperty(endID, PORT, PORT_KIND, kind);
@@ -526,7 +540,6 @@ void setLinkEnd(model::Link* linkObject, Controller& controller, const object_pr
             newPortKind = PORT_EIN;
             sourceBlockPorts = evtin;
         }
-
     }
     else if (linkType == model::regular || linkType == model::implicit)
     {
@@ -606,13 +619,9 @@ void setLinkEnd(model::Link* linkObject, Controller& controller, const object_pr
         }
     }
 
-    // Disconnect the old port if it was connected. After that, concernedPort will be reused to designate the new port
-    if (concernedPort != ScicosID())
-    {
-        controller.setObjectProperty(concernedPort, PORT, CONNECTED_SIGNALS, ScicosID());
-    }
 
-    model::Port* concernedPortObject;
+
+    model::Port* concernedPortObject = nullptr;
     int nBlockPorts = static_cast<int>(sourceBlockPorts.size());
     if (nBlockPorts >= portIndex)
     {
@@ -621,55 +630,17 @@ void setLinkEnd(model::Link* linkObject, Controller& controller, const object_pr
     }
     else
     {
-        while (nBlockPorts < portIndex) // Create as many ports as necessary
-        {
-            concernedPortObject = controller.createBaseObject<model::Port>(PORT);
-            concernedPort = concernedPortObject->id();
-            controller.setObjectProperty(concernedPortObject, IMPLICIT, newPortIsImplicit);
-            controller.setObjectProperty(concernedPortObject, PORT_KIND, static_cast<int>(newPortKind));
-            controller.setObjectProperty(concernedPortObject, SOURCE_BLOCK, blkID);
-            controller.setObjectProperty(concernedPortObject, CONNECTED_SIGNALS, ScicosID());
-            // Set the default dataType so it is saved in the model
-            std::vector<int> dataType;
-            controller.getObjectProperty(concernedPortObject, DATATYPE, dataType);
-            controller.setObjectProperty(concernedPortObject, DATATYPE, dataType);
-
-            std::vector<ScicosID> concernedPorts;
-            if (linkType == model::activation)
-            {
-                if (v.kind == Start)
-                {
-                    controller.getObjectProperty(blkObject, EVENT_OUTPUTS, concernedPorts);
-                    concernedPorts.push_back(concernedPort);
-                    controller.setObjectProperty(blkObject, EVENT_OUTPUTS, concernedPorts);
-                }
-                else
-                {
-                    controller.getObjectProperty(blkObject, EVENT_INPUTS, concernedPorts);
-                    concernedPorts.push_back(concernedPort);
-                    controller.setObjectProperty(blkObject, EVENT_INPUTS, concernedPorts);
-                }
-            }
-            else // model::regular || model::implicit
-            {
-                if (v.kind == Start)
-                {
-                    controller.getObjectProperty(blkObject, OUTPUTS, concernedPorts);
-                    concernedPorts.push_back(concernedPort);
-                    controller.setObjectProperty(blkObject, OUTPUTS, concernedPorts);
-                }
-                else
-                {
-                    controller.getObjectProperty(blkObject, INPUTS, concernedPorts);
-                    concernedPorts.push_back(concernedPort);
-                    controller.setObjectProperty(blkObject, INPUTS, concernedPorts);
-                }
-            }
+        // the interface does not match, we should not create anything else but rather alert the user that he is not matching the block interface.
+        return;
+    }
 
-            nBlockPorts++;
-        }
+    // Disconnect the old port if it was connected. After that, concernedPort will be reused to designate the new port
+    if (concernedPort != ScicosID())
+    {
+        controller.setObjectProperty(concernedPort, PORT, CONNECTED_SIGNALS, ScicosID());
     }
-    ScicosID oldLink;
+
+    ScicosID oldLink = ScicosID();
     controller.getObjectProperty(concernedPortObject, CONNECTED_SIGNALS, oldLink);
     if (oldLink != ScicosID())
     {
@@ -724,7 +695,6 @@ bool is_valid(types::Double* o)
     return false;
 }
 
-
 struct from
 {
 
@@ -766,7 +736,7 @@ struct from
             return false;
         }
 
-        link_t from_content {0, 0, Start};
+        link_t from_content{0, 0, Start};
         if (current->getSize() >= 2)
         {
             from_content.block = static_cast<int>(current->get(0));
@@ -843,7 +813,7 @@ struct to
             return false;
         }
 
-        link_t to_content {0, 0, End};
+        link_t to_content{0, 0, End};
         if (current->getSize() >= 2)
         {
             to_content.block = static_cast<int>(current->get(0));
@@ -875,10 +845,10 @@ struct to
 
 } /* namespace */
 
-template<> property<LinkAdapter>::props_t property<LinkAdapter>::fields = property<LinkAdapter>::props_t();
+template<>
+property<LinkAdapter>::props_t property<LinkAdapter>::fields = property<LinkAdapter>::props_t();
 
-LinkAdapter::LinkAdapter(const Controller& c, org_scilab_modules_scicos::model::Link* adaptee) :
-    BaseAdapter<LinkAdapter, org_scilab_modules_scicos::model::Link>(c, adaptee)
+LinkAdapter::LinkAdapter(const Controller& c, org_scilab_modules_scicos::model::Link* adaptee) : BaseAdapter<LinkAdapter, org_scilab_modules_scicos::model::Link>(c, adaptee)
 {
     if (property<LinkAdapter>::properties_have_not_been_set())
     {
@@ -894,19 +864,12 @@ LinkAdapter::LinkAdapter(const Controller& c, org_scilab_modules_scicos::model::
     }
 }
 
-LinkAdapter::LinkAdapter(const LinkAdapter& adapter) :
-    BaseAdapter<LinkAdapter, org_scilab_modules_scicos::model::Link>(adapter)
+LinkAdapter::LinkAdapter(const LinkAdapter& adapter) : BaseAdapter<LinkAdapter, org_scilab_modules_scicos::model::Link>(adapter)
 {
-    Controller controller;
-    add_partial_links_information(controller, adapter.getAdaptee(), getAdaptee());
 }
 
 LinkAdapter::~LinkAdapter()
 {
-    if (getAdaptee()->refCount() == 0)
-    {
-        partial_links.erase(getAdaptee()->id());
-    }
 }
 
 std::wstring LinkAdapter::getTypeStr() const
@@ -918,6 +881,20 @@ std::wstring LinkAdapter::getShortTypeStr() const
     return getSharedTypeStr();
 }
 
+void refresh_shared_values(Controller& controller, model::Link* adaptee, partials_links_t::iterator& it)
+{
+    ScicosID from;
+    controller.getObjectProperty(adaptee, SOURCE_PORT, from);
+    ScicosID to;
+    controller.getObjectProperty(adaptee, DESTINATION_PORT, to);
+
+    bool isConnected = from != ScicosID() && to != ScicosID();
+    if (isConnected)
+    {
+        partial_links.erase(it);
+    }
+}
+
 void LinkAdapter::relink(Controller& controller, model::Link* adaptee, const std::vector<ScicosID>& children)
 {
     auto it = partial_links.find(adaptee->id());
@@ -926,72 +903,147 @@ void LinkAdapter::relink(Controller& controller, model::Link* adaptee, const std
         // unable to relink as there is no information to do so
         return;
     }
-    partial_link_t l = it->second;
+    const partial_link_t& l = it->second;
 
     setLinkEnd(adaptee, controller, SOURCE_PORT, l.from, children);
     setLinkEnd(adaptee, controller, DESTINATION_PORT, l.to, children);
 
-    // refresh the shared values
-    ScicosID from;
-    controller.getObjectProperty(adaptee, SOURCE_PORT, from);
-    ScicosID to;
-    controller.getObjectProperty(adaptee, DESTINATION_PORT, to);
+    refresh_shared_values(controller, adaptee, it);
+}
 
-    bool isConnected = from != ScicosID() && to != ScicosID();
-    if (isConnected)
+std::vector<model::Port*> getPorts(Controller& controller, model::Block* adaptee, object_properties_t port_kind)
+{
+    std::vector<ScicosID> ids;
+    controller.getObjectProperty(adaptee, port_kind, ids);
+
+    std::vector<model::Port*> ports;
+    ports.reserve(ids.size());
+    for (ScicosID id : ids)
     {
-        partial_links.erase(it);
+        ports.push_back(controller.getBaseObject<model::Port>(id));
     }
+
+    return ports;
 }
 
-void LinkAdapter::add_partial_links_information(Controller& controller, model::BaseObject* original, model::BaseObject* cloned)
+void LinkAdapter::reverse_relink(Controller& controller, model::Block* adaptee, int index, const std::vector<ScicosID>& children)
 {
-    // precondition
-    if (cloned == nullptr)
+    if (adaptee->id() != children[index])
     {
         return;
     }
 
-    switch (original->kind())
+    for (object_properties_t p :
+            {
+                INPUTS, OUTPUTS, EVENT_INPUTS, EVENT_OUTPUTS
+            })
     {
-        // add the from / to information if applicable
-        case LINK:
+        std::vector<model::Port*> ports = getPorts(controller, adaptee, p);
+
+        for (size_t i = 0; i < ports.size(); i++)
         {
-            auto it = partial_links.find(original->id());
-            if (it != partial_links.end())
-            {
-                partial_links.insert({cloned->id(), it->second});
-            }
-            else
+            ScicosID signal = ScicosID();
+            controller.getObjectProperty(ports[i], CONNECTED_SIGNALS, signal);
+            model::Link* link = controller.getBaseObject<model::Link>(signal);
+
+            auto opposite = partial_links.find(signal);
+            if (opposite != partial_links.end())
             {
-                partial_link_t l;
-                l.from = getLinkEnd(static_cast<model::Link*>(original), controller, SOURCE_PORT);
-                l.to = getLinkEnd(static_cast<model::Link*>(original), controller, DESTINATION_PORT);
-                partial_links.insert({cloned->id(), l});
+                auto& from = opposite->second.from;
+                auto& to = opposite->second.to;
+
+                if (from.block == index + 1 && from.port == i)
+                {
+                    controller.setObjectProperty(link, SOURCE_PORT, ports[i]->id());
+                    from.kind = Start;
+                }
+                else if (to.block == index + 1 && to.port == i)
+                {
+                    controller.setObjectProperty(link, DESTINATION_PORT, ports[i]->id());
+                    to.kind = End;
+                }
+
+                refresh_shared_values(controller, link, opposite);
             }
-            break;
         }
+    }
+}
+
+void LinkAdapter::add_partial_links_information(Controller& controller, ScicosID original, ScicosID cloned)
+{
+    auto it = partial_links.find(original);
+    if (it != partial_links.end())
+    {
+        partial_links.insert({cloned, it->second});
+    }
+    else
+    {
+        model::Link* link = controller.getBaseObject<model::Link>(original);
+
+        partial_link_t l;
+        l.from = getLinkEnd(link, controller, SOURCE_PORT);
+        l.to = getLinkEnd(link, controller, DESTINATION_PORT);
+        partial_links.insert({cloned, l});
+    }
+}
 
-        // handle recursion
-        case DIAGRAM:
-        case BLOCK:
+void reverse_store(Controller& controller, model::Block* removed, object_properties_t port_kind)
+{
+    std::vector<model::Port*> ports = getPorts(controller, removed, port_kind);
+    for (model::Port* p : ports)
+    {
+        ScicosID signal = ScicosID();
+        controller.getObjectProperty(p, CONNECTED_SIGNALS, signal);
+        if (signal == ScicosID())
         {
-            std::vector<ScicosID> originalChildren;
-            controller.getObjectProperty(original->id(), original->kind(), CHILDREN, originalChildren);
-            std::vector<ScicosID> clonedChildren;
-            controller.getObjectProperty(cloned->id(), cloned->kind(), CHILDREN, clonedChildren);
+            continue;
+        }
+        model::Link* link = controller.getBaseObject<model::Link>(signal);
 
-            for (size_t i = 0; i < originalChildren.size(); ++i)
-            {
-                add_partial_links_information(controller, controller.getBaseObject(originalChildren[i]), controller.getBaseObject(clonedChildren[i]));
-            }
-            break;
+        auto it = partial_links.find(link->id());
+        if (it == partial_links.end())
+        {
+            partial_link_t l;
+            l.from = getLinkEnd(link, controller, SOURCE_PORT);
+            l.to = getLinkEnd(link, controller, DESTINATION_PORT);
+            partial_links.insert({link->id(), l});
         }
+    }
+}
 
-        default:
-            break;
+// manage partial information before a model delete
+void LinkAdapter::store_partial_links_information(Controller& controller, model::BaseObject* added, int index, const std::vector<ScicosID>& children)
+{
+    model::BaseObject* removed = controller.getBaseObject(children[index]);
+    if (removed == nullptr || added == nullptr)
+    {
+        return;
+    }
+
+    if (removed->kind() == LINK && added->kind() == LINK)
+    {
+        model::Link* link = static_cast<model::Link*>(added);
+
+        partial_link_t l;
+        l.from = getLinkEnd(link, controller, SOURCE_PORT);
+        l.to = getLinkEnd(link, controller, DESTINATION_PORT);
+        partial_links.insert({link->id(), l});
     }
+    else if (removed->kind() == BLOCK && added->kind() == BLOCK)
+    {
+        model::Block* block = static_cast<model::Block*>(removed);
 
+        reverse_store(controller, block, INPUTS);
+        reverse_store(controller, block, OUTPUTS);
+        reverse_store(controller, block, EVENT_INPUTS);
+        reverse_store(controller, block, EVENT_OUTPUTS);
+    }
+}
+
+// delete all information related to the block
+void LinkAdapter::remove_partial_links_information(ScicosID uid)
+{
+    partial_links.erase(uid);
 }
 
 } /* namespace view_scilab */
index 801d891..35613e1 100644 (file)
 #define LINKADAPTER_HXX_
 
 #include <string>
+#include <vector>
 
 #include "adapters_utilities.hxx"
 #include "BaseAdapter.hxx"
 #include "model/Link.hxx"
+#include "model/Block.hxx"
 
 namespace org_scilab_modules_scicos
 {
 namespace view_scilab
 {
 
-class LinkAdapter : public BaseAdapter<LinkAdapter, org_scilab_modules_scicos::model::Link>
+class LinkAdapter final : public BaseAdapter<LinkAdapter, org_scilab_modules_scicos::model::Link>
 {
 public:
     LinkAdapter(const Controller& c, org_scilab_modules_scicos::model::Link* adaptee);
@@ -42,11 +44,15 @@ public:
     std::wstring getTypeStr() const;
     std::wstring getShortTypeStr() const;
 
-    // move (if possible) the partial informatios to the model
+    // move (if possible) the partial informations to the model
     static void relink(Controller& controller, model::Link* adaptee, const std::vector<ScicosID>& children);
+    static void reverse_relink(Controller& controller, model::Block* adaptee, int index, const std::vector<ScicosID>& children);
     // manage partial information after a model clone
-       static void add_partial_links_information(Controller& controller, model::BaseObject* original, model::BaseObject* cloned);
-
+    static void add_partial_links_information(Controller& controller, ScicosID original, ScicosID cloned);
+    // manage partial information before a model delete
+    static void store_partial_links_information(Controller& controller, model::BaseObject* added, int index, const std::vector<ScicosID>& children);
+    // remove all information related to the link
+    static void remove_partial_links_information(ScicosID uid);
 };
 
 } /* namespace view_scilab */
index 5fbd1b3..af5b865 100644 (file)
@@ -34,6 +34,7 @@
 #include "ModelAdapter.hxx"
 #include "LinkAdapter.hxx"
 #include "DiagramAdapter.hxx"
+#include "GraphicsAdapter.hxx"
 
 #include "view_scilab/Adapters.hxx"
 #include "ports_management.hxx"
index 7e950ce..ad70bb4 100644 (file)
@@ -959,8 +959,8 @@ Xcos debug:   propertyUpdated( 18 , BLOCK , OUTPUTS ) : SUCCESS
 Xcos trace:   propertyUpdated( 18 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 18 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 18 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 21 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 22 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 21 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 20 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 19 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 18 , BLOCK , CHILDREN ) : NO_CHANGES
@@ -1302,7 +1302,7 @@ Xcos trace:   objectReferenced( 23 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 23 , BLOCK ) : 0
           orig = [0,0]
           sz = [2,2]
-          exprs = ["1 3 5 7 9 11 13 15";"-1";"[]";"[600;400]";"-15";"15";"30";"20";"0";""]
+          exprs = ["1 3 5 7 9 11 13 15";"-1";"[]";"[6;4]";"-15";"15";"3";"2";"0";""]
           pin = 0
           pout = []
           pein = 0
@@ -1331,8 +1331,8 @@ Xcos trace:   objectUnreferenced( 23 , BLOCK ) : 0
           state = []
           dstate = []
           odstate = list()
-          rpar = [0;-15;15;30]
-          ipar = [-1;1;20;1;3;5;7;9;11;13;15;-1;-1;600;400]
+          rpar = [0;-15;15;3]
+          ipar = [-1;1;2;1;3;5;7;9;11;13;15;-1;-1;6;4]
           opar = list()
           blocktype = "c"
           firing = []
@@ -1348,7 +1348,7 @@ Xcos trace:   objectUnreferenced( 23 , BLOCK ) : 0
  ans  =
 orig = [0,0]
 sz = [2,2]
-exprs = ["1 3 5 7 9 11 13 15";"-1";"[]";"[600;400]";"-15";"15";"30";"20";"0";""]
+exprs = ["1 3 5 7 9 11 13 15";"-1";"[]";"[6;4]";"-15";"15";"3";"2";"0";""]
 pin = 0
 pout = []
 pein = 0
@@ -1378,8 +1378,8 @@ evtout = []
 state = []
 dstate = []
 odstate = list()
-rpar = [0;-15;15;30]
-ipar = [-1;1;20;1;3;5;7;9;11;13;15;-1;-1;600;400]
+rpar = [0;-15;15;3]
+ipar = [-1;1;2;1;3;5;7;9;11;13;15;-1;-1;6;4]
 opar = list()
 blocktype = "c"
 firing = []
@@ -1526,7 +1526,7 @@ Xcos trace:   objectReferenced( 26 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 26 , BLOCK ) : 0
           orig = [0,0]
           sz = [2,2]
-          exprs = ["1 3 5 7 9 11 13 15";"-1";"[]";"[600;400]";"-15";"15";"30";"20";"0";""]
+          exprs = ["1 3 5 7 9 11 13 15";"-1";"[]";"[6;4]";"-15";"15";"3";"2";"0";""]
           pin = 0
           pout = []
           pein = 0
@@ -1555,8 +1555,8 @@ Xcos trace:   objectUnreferenced( 26 , BLOCK ) : 0
           state = []
           dstate = []
           odstate = list()
-          rpar = [0;-15;15;30]
-          ipar = [-1;1;20;1;3;5;7;9;11;13;15;-1;-1;600;400]
+          rpar = [0;-15;15;3]
+          ipar = [-1;1;2;1;3;5;7;9;11;13;15;-1;-1;6;4]
           opar = list()
           blocktype = "c"
           firing = []
@@ -2234,7 +2234,7 @@ Xcos trace:   objectReferenced( 34 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 34 , BLOCK ) : 0
           orig = [0,0]
           sz = [2,2]
-          exprs = ["220";"50"]
+          exprs = ["22";"5"]
           pin = 0
           pout = 0
           pein = []
@@ -2263,7 +2263,7 @@ Xcos trace:   objectUnreferenced( 34 , BLOCK ) : 0
           state = []
           dstate = []
           odstate = list()
-          rpar = [220;50]
+          rpar = [22;5]
           ipar = []
           opar = list()
           blocktype = "c"
@@ -2272,7 +2272,7 @@ Xcos trace:   objectUnreferenced( 34 , BLOCK ) : 0
           label = ""
           nzcross = 0
           nmode = 0
-          equations = tlist(["modelica","model","inputs","outputs","parameters"],"VsourceAC","p","n",list(["VA";"f"],list(220,50)))
+          equations = tlist(["modelica","model","inputs","outputs","parameters"],"VsourceAC","p","n",list(["VA";"f"],list(22,5)))
           uid = ""
 o.model.equations
 Xcos trace:   objectReferenced( 34 , BLOCK ) : 1
index 178ee26..d171a6d 100644 (file)
@@ -407,8 +407,8 @@ Xcos debug:   propertyUpdated( 10 , DIAGRAM , CHILDREN ) : SUCCESS
 Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 0
 Xcos trace:   objectReferenced( 11 , BLOCK ) : 1
 Xcos info:    objectCreated( 13 , BLOCK )
-Xcos info:    objectCloned( 11 , 13 , BLOCK )
-Xcos trace:   propertyUpdated( 13 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
+Xcos info:    objectCloned( 1 , 13 , BLOCK )
+Xcos debug:   propertyUpdated( 13 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
 Xcos trace:   propertyUpdated( 13 , BLOCK , DESCRIPTION ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 13 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
 Xcos debug:   propertyUpdated( 13 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
@@ -420,20 +420,20 @@ Xcos debug:   propertyUpdated( 13 , BLOCK , EXPRS ) : SUCCESS
 Xcos trace:   propertyUpdated( 13 , BLOCK , STATE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 13 , BLOCK , DSTATE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 13 , BLOCK , ODSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 13 , BLOCK , RPAR ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 13 , BLOCK , RPAR ) : SUCCESS
 Xcos trace:   propertyUpdated( 13 , BLOCK , OPAR ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 13 , BLOCK , EQUATIONS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 13 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 13 , BLOCK , NZCROSS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 13 , BLOCK , NMODE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 13 , BLOCK , IPAR ) : SUCCESS
+Xcos trace:   propertyUpdated( 13 , BLOCK , IPAR ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 13 , BLOCK , COLOR ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 13 , BLOCK , CONTEXT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 13 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 13 , BLOCK , INPUTS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 13 , BLOCK , OUTPUTS ) : NO_CHANGES
 Xcos info:    objectCreated( 14 , PORT )
-Xcos info:    objectCloned( 12 , 14 , PORT )
+Xcos info:    objectCloned( 2 , 14 , PORT )
 Xcos trace:   propertyUpdated( 14 , PORT , FIRING ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 14 , PORT , PORT_KIND ) : SUCCESS
 Xcos trace:   propertyUpdated( 14 , PORT , IMPLICIT ) : NO_CHANGES
@@ -444,122 +444,108 @@ Xcos debug:   propertyUpdated( 14 , PORT , DATATYPE ) : SUCCESS
 Xcos debug:   propertyUpdated( 14 , PORT , SOURCE_BLOCK ) : SUCCESS
 Xcos trace:   propertyUpdated( 14 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 13 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 13 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectCreated( 15 , PORT )
+Xcos info:    objectCloned( 3 , 15 , PORT )
+Xcos debug:   propertyUpdated( 15 , PORT , FIRING ) : SUCCESS
+Xcos debug:   propertyUpdated( 15 , PORT , PORT_KIND ) : SUCCESS
+Xcos trace:   propertyUpdated( 15 , PORT , IMPLICIT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 15 , PORT , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 15 , PORT , STYLE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 15 , PORT , LABEL ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 15 , PORT , DATATYPE ) : SUCCESS
+Xcos debug:   propertyUpdated( 15 , PORT , SOURCE_BLOCK ) : SUCCESS
+Xcos trace:   propertyUpdated( 15 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 13 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
 Xcos trace:   propertyUpdated( 13 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 15 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 14 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 13 , BLOCK , CHILDREN ) : NO_CHANGES
-Xcos info:    objectCreated( 15 , BLOCK )
-Xcos info:    objectCloned( 1 , 15 , BLOCK )
-Xcos debug:   propertyUpdated( 15 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
-Xcos trace:   propertyUpdated( 15 , BLOCK , DESCRIPTION ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 15 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-Xcos debug:   propertyUpdated( 15 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-Xcos debug:   propertyUpdated( 15 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
-Xcos trace:   propertyUpdated( 15 , BLOCK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , STYLE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 15 , BLOCK , GEOMETRY ) : SUCCESS
-Xcos debug:   propertyUpdated( 15 , BLOCK , EXPRS ) : SUCCESS
-Xcos trace:   propertyUpdated( 15 , BLOCK , STATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , DSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , ODSTATE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 15 , BLOCK , RPAR ) : SUCCESS
-Xcos trace:   propertyUpdated( 15 , BLOCK , OPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , EQUATIONS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , NZCROSS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , NMODE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , IPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , COLOR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , CONTEXT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos info:    objectCreated( 16 , PORT )
-Xcos info:    objectCloned( 2 , 16 , PORT )
-Xcos trace:   propertyUpdated( 16 , PORT , FIRING ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 16 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 16 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 16 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 16 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 16 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 16 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 16 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 16 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 15 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos info:    objectCreated( 17 , PORT )
-Xcos info:    objectCloned( 3 , 17 , PORT )
-Xcos debug:   propertyUpdated( 17 , PORT , FIRING ) : SUCCESS
-Xcos debug:   propertyUpdated( 17 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 17 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 17 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 17 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 17 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 17 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 17 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 17 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 15 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 15 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 17 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 16 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 15 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 0
 Xcos debug:   propertyUpdated( 13 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 13 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   objectReferenced( 15 , BLOCK ) : 2
-Xcos debug:   propertyUpdated( 15 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   propertyUpdated( 15 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 15 , BLOCK ) : 1
 Xcos debug:   propertyUpdated( 10 , DIAGRAM , CHILDREN ) : SUCCESS
 Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 15 , BLOCK ) : 0
-Xcos trace:   propertyUpdated( 10 , DIAGRAM , CHILDREN ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 11 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 11 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 11 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 11 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos info:    objectDeleted( 12 , PORT )
-Xcos info:    objectDeleted( 11 , BLOCK )
-Xcos info:    objectCreated( 18 , LINK )
-Xcos debug:   propertyUpdated( 18 , LINK , CONTROL_POINTS ) : SUCCESS
-Xcos debug:   propertyUpdated( 18 , LINK , CONTROL_POINTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 18 , LINK , DESCRIPTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 18 , LINK , THICK ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 18 , LINK , COLOR ) : SUCCESS
-Xcos debug:   propertyUpdated( 18 , LINK , KIND ) : SUCCESS
+Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 0
+Xcos info:    objectCreated( 16 , LINK )
+Xcos debug:   propertyUpdated( 16 , LINK , CONTROL_POINTS ) : SUCCESS
+Xcos debug:   propertyUpdated( 16 , LINK , CONTROL_POINTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 16 , LINK , DESCRIPTION ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 16 , LINK , THICK ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 16 , LINK , COLOR ) : SUCCESS
+Xcos debug:   propertyUpdated( 16 , LINK , KIND ) : SUCCESS
+Xcos trace:   objectReferenced( 11 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 13 , BLOCK ) : 1
+Xcos info:    objectCreated( 17 , LINK )
+Xcos info:    objectCloned( 16 , 17 , LINK )
+Xcos debug:   propertyUpdated( 17 , LINK , COLOR ) : SUCCESS
+Xcos debug:   propertyUpdated( 17 , LINK , KIND ) : SUCCESS
+Xcos trace:   propertyUpdated( 17 , LINK , DESCRIPTION ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 17 , LINK , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 17 , LINK , STYLE ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 17 , LINK , CONTROL_POINTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 17 , LINK , THICK ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 17 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 17 , LINK , PARENT_BLOCK ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 17 , LINK , SOURCE_PORT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 17 , LINK , DESTINATION_PORT ) : NO_CHANGES
+Xcos trace:   objectReferenced( 17 , LINK ) : 1
+Xcos trace:   objectReferenced( 17 , LINK ) : 2
+Xcos debug:   propertyUpdated( 17 , LINK , PARENT_DIAGRAM ) : SUCCESS
+Xcos trace:   propertyUpdated( 17 , LINK , PARENT_BLOCK ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 15 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 15 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos debug:   propertyUpdated( 17 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos trace:   objectUnreferenced( 17 , LINK ) : 1
+Xcos debug:   propertyUpdated( 10 , DIAGRAM , CHILDREN ) : SUCCESS
+Xcos trace:   objectUnreferenced( 17 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 0
+Xcos info:    objectDeleted( 16 , LINK )
+Xcos trace:   objectReferenced( 11 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 15 , BLOCK ) : 1
-Xcos info:    objectCreated( 19 , BLOCK )
-Xcos info:    objectCloned( 13 , 19 , BLOCK )
-Xcos trace:   propertyUpdated( 19 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 19 , BLOCK , DESCRIPTION ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 19 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-Xcos debug:   propertyUpdated( 19 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-Xcos debug:   propertyUpdated( 19 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
-Xcos trace:   propertyUpdated( 19 , BLOCK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 19 , BLOCK , STYLE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 19 , BLOCK , GEOMETRY ) : SUCCESS
-Xcos debug:   propertyUpdated( 19 , BLOCK , EXPRS ) : SUCCESS
-Xcos trace:   propertyUpdated( 19 , BLOCK , STATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 19 , BLOCK , DSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 19 , BLOCK , ODSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 19 , BLOCK , RPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 19 , BLOCK , OPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 19 , BLOCK , EQUATIONS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 19 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 19 , BLOCK , NZCROSS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 19 , BLOCK , NMODE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 19 , BLOCK , IPAR ) : SUCCESS
-Xcos trace:   propertyUpdated( 19 , BLOCK , COLOR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 19 , BLOCK , CONTEXT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 19 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 19 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 19 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   objectReferenced( 17 , LINK ) : 1
+Xcos info:    objectCreated( 18 , BLOCK )
+Xcos info:    objectCloned( 6 , 18 , BLOCK )
+Xcos trace:   propertyUpdated( 18 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 18 , BLOCK , DESCRIPTION ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 18 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
+Xcos debug:   propertyUpdated( 18 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
+Xcos debug:   propertyUpdated( 18 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
+Xcos trace:   propertyUpdated( 18 , BLOCK , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 18 , BLOCK , STYLE ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 18 , BLOCK , GEOMETRY ) : SUCCESS
+Xcos trace:   propertyUpdated( 18 , BLOCK , EXPRS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 18 , BLOCK , STATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 18 , BLOCK , DSTATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 18 , BLOCK , ODSTATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 18 , BLOCK , RPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 18 , BLOCK , OPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 18 , BLOCK , EQUATIONS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 18 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 18 , BLOCK , NZCROSS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 18 , BLOCK , NMODE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 18 , BLOCK , IPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 18 , BLOCK , COLOR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 18 , BLOCK , CONTEXT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 18 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 18 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 18 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos info:    objectCreated( 19 , PORT )
+Xcos info:    objectCloned( 7 , 19 , PORT )
+Xcos trace:   propertyUpdated( 19 , PORT , FIRING ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 19 , PORT , PORT_KIND ) : SUCCESS
+Xcos trace:   propertyUpdated( 19 , PORT , IMPLICIT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 19 , PORT , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 19 , PORT , STYLE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 19 , PORT , LABEL ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 19 , PORT , DATATYPE ) : SUCCESS
+Xcos debug:   propertyUpdated( 19 , PORT , SOURCE_BLOCK ) : SUCCESS
+Xcos trace:   propertyUpdated( 19 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 18 , BLOCK , EVENT_INPUTS ) : SUCCESS
 Xcos info:    objectCreated( 20 , PORT )
-Xcos info:    objectCloned( 14 , 20 , PORT )
+Xcos info:    objectCloned( 8 , 20 , PORT )
 Xcos trace:   propertyUpdated( 20 , PORT , FIRING ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 20 , PORT , PORT_KIND ) : SUCCESS
 Xcos trace:   propertyUpdated( 20 , PORT , IMPLICIT ) : NO_CHANGES
@@ -569,207 +555,343 @@ Xcos trace:   propertyUpdated( 20 , PORT , LABEL ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 20 , PORT , DATATYPE ) : SUCCESS
 Xcos debug:   propertyUpdated( 20 , PORT , SOURCE_BLOCK ) : SUCCESS
 Xcos trace:   propertyUpdated( 20 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 19 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 19 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 19 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
+Xcos info:    objectCreated( 21 , PORT )
+Xcos info:    objectCloned( 9 , 21 , PORT )
+Xcos trace:   propertyUpdated( 21 , PORT , FIRING ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 21 , PORT , PORT_KIND ) : SUCCESS
+Xcos trace:   propertyUpdated( 21 , PORT , IMPLICIT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 21 , PORT , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 21 , PORT , STYLE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 21 , PORT , LABEL ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 21 , PORT , DATATYPE ) : SUCCESS
+Xcos debug:   propertyUpdated( 21 , PORT , SOURCE_BLOCK ) : SUCCESS
+Xcos trace:   propertyUpdated( 21 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 18 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 18 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 21 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 20 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 19 , BLOCK , CHILDREN ) : NO_CHANGES
-Xcos info:    objectCreated( 21 , BLOCK )
-Xcos info:    objectCloned( 15 , 21 , BLOCK )
-Xcos debug:   propertyUpdated( 21 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
-Xcos trace:   propertyUpdated( 21 , BLOCK , DESCRIPTION ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 21 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-Xcos debug:   propertyUpdated( 21 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-Xcos debug:   propertyUpdated( 21 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
-Xcos trace:   propertyUpdated( 21 , BLOCK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 21 , BLOCK , STYLE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 21 , BLOCK , GEOMETRY ) : SUCCESS
-Xcos debug:   propertyUpdated( 21 , BLOCK , EXPRS ) : SUCCESS
-Xcos trace:   propertyUpdated( 21 , BLOCK , STATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 21 , BLOCK , DSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 21 , BLOCK , ODSTATE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 21 , BLOCK , RPAR ) : SUCCESS
-Xcos trace:   propertyUpdated( 21 , BLOCK , OPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 21 , BLOCK , EQUATIONS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 21 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 21 , BLOCK , NZCROSS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 21 , BLOCK , NMODE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 21 , BLOCK , IPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 21 , BLOCK , COLOR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 21 , BLOCK , CONTEXT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 21 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 21 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 21 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos info:    objectCreated( 22 , PORT )
-Xcos info:    objectCloned( 16 , 22 , PORT )
-Xcos trace:   propertyUpdated( 22 , PORT , FIRING ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 22 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 22 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 22 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 22 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 22 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 22 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 22 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 22 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 21 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos info:    objectCreated( 23 , PORT )
-Xcos info:    objectCloned( 17 , 23 , PORT )
-Xcos debug:   propertyUpdated( 23 , PORT , FIRING ) : SUCCESS
-Xcos debug:   propertyUpdated( 23 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 23 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 23 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 23 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 23 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 23 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 23 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 23 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 21 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 21 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 23 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 22 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 21 , BLOCK , CHILDREN ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 19 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 18 , BLOCK , CHILDREN ) : NO_CHANGES
+Xcos trace:   objectReferenced( 18 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 18 , BLOCK ) : 2
+Xcos debug:   propertyUpdated( 18 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+Xcos trace:   propertyUpdated( 18 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 19 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos trace:   objectUnreferenced( 18 , BLOCK ) : 1
+Xcos debug:   propertyUpdated( 10 , DIAGRAM , CHILDREN ) : SUCCESS
+Xcos trace:   objectUnreferenced( 18 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 17 , LINK ) : 0
+Xcos info:    objectCreated( 22 , LINK )
+Xcos debug:   propertyUpdated( 22 , LINK , CONTROL_POINTS ) : SUCCESS
+Xcos debug:   propertyUpdated( 22 , LINK , CONTROL_POINTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 22 , LINK , DESCRIPTION ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 22 , LINK , THICK ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 22 , LINK , COLOR ) : SUCCESS
+Xcos debug:   propertyUpdated( 22 , LINK , KIND ) : SUCCESS
+Xcos trace:   objectReferenced( 11 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 13 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 17 , LINK ) : 1
+Xcos trace:   objectReferenced( 18 , BLOCK ) : 1
+Xcos info:    objectCreated( 23 , LINK )
+Xcos info:    objectCloned( 22 , 23 , LINK )
+Xcos debug:   propertyUpdated( 23 , LINK , COLOR ) : SUCCESS
+Xcos debug:   propertyUpdated( 23 , LINK , KIND ) : SUCCESS
+Xcos trace:   propertyUpdated( 23 , LINK , DESCRIPTION ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 23 , LINK , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 23 , LINK , STYLE ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 23 , LINK , CONTROL_POINTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 23 , LINK , THICK ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 23 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 23 , LINK , PARENT_BLOCK ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 23 , LINK , SOURCE_PORT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 23 , LINK , DESTINATION_PORT ) : NO_CHANGES
+Xcos trace:   objectReferenced( 23 , LINK ) : 1
+Xcos trace:   objectReferenced( 23 , LINK ) : 2
+Xcos debug:   propertyUpdated( 23 , LINK , PARENT_DIAGRAM ) : SUCCESS
+Xcos trace:   propertyUpdated( 23 , LINK , PARENT_BLOCK ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 20 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 20 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos debug:   propertyUpdated( 23 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos trace:   propertyUpdated( 12 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 12 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos debug:   propertyUpdated( 23 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos trace:   objectUnreferenced( 23 , LINK ) : 1
+Xcos debug:   propertyUpdated( 10 , DIAGRAM , CHILDREN ) : SUCCESS
+Xcos trace:   objectUnreferenced( 23 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 17 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 18 , BLOCK ) : 0
+Xcos info:    objectDeleted( 22 , LINK )
 Xcos info:    objectCreated( 24 , LINK )
-Xcos info:    objectCloned( 18 , 24 , LINK )
-Xcos debug:   propertyUpdated( 24 , LINK , COLOR ) : SUCCESS
-Xcos debug:   propertyUpdated( 24 , LINK , KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 24 , LINK , DESCRIPTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 24 , LINK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 24 , LINK , STYLE ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 24 , LINK , CONTROL_POINTS ) : SUCCESS
+Xcos debug:   propertyUpdated( 24 , LINK , CONTROL_POINTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 24 , LINK , DESCRIPTION ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 24 , LINK , THICK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 24 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 24 , LINK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 24 , LINK , SOURCE_PORT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 24 , LINK , DESTINATION_PORT ) : NO_CHANGES
-Xcos trace:   objectReferenced( 19 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 21 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 24 , LINK ) : 1
-Xcos trace:   objectReferenced( 19 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 0
-Xcos debug:   propertyUpdated( 19 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   propertyUpdated( 19 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   objectReferenced( 21 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 15 , BLOCK ) : 0
-Xcos debug:   propertyUpdated( 21 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   propertyUpdated( 21 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   objectReferenced( 24 , LINK ) : 2
-Xcos debug:   propertyUpdated( 24 , LINK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   propertyUpdated( 24 , LINK , PARENT_BLOCK ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 23 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos debug:   propertyUpdated( 24 , LINK , SOURCE_PORT ) : SUCCESS
-Xcos trace:   objectUnreferenced( 19 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 24 , LINK ) : 1
+Xcos debug:   propertyUpdated( 24 , LINK , COLOR ) : SUCCESS
+Xcos debug:   propertyUpdated( 24 , LINK , KIND ) : SUCCESS
+Xcos trace:   objectReferenced( 11 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 13 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 17 , LINK ) : 1
+Xcos trace:   objectReferenced( 18 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 23 , LINK ) : 1
+Xcos info:    objectCreated( 25 , LINK )
+Xcos info:    objectCloned( 24 , 25 , LINK )
+Xcos debug:   propertyUpdated( 25 , LINK , COLOR ) : SUCCESS
+Xcos debug:   propertyUpdated( 25 , LINK , KIND ) : SUCCESS
+Xcos trace:   propertyUpdated( 25 , LINK , DESCRIPTION ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 25 , LINK , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 25 , LINK , STYLE ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 25 , LINK , CONTROL_POINTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 25 , LINK , THICK ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 25 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 25 , LINK , PARENT_BLOCK ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 25 , LINK , SOURCE_PORT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 25 , LINK , DESTINATION_PORT ) : NO_CHANGES
+Xcos trace:   objectReferenced( 25 , LINK ) : 1
+Xcos trace:   objectReferenced( 25 , LINK ) : 2
+Xcos debug:   propertyUpdated( 25 , LINK , PARENT_DIAGRAM ) : SUCCESS
+Xcos trace:   propertyUpdated( 25 , LINK , PARENT_BLOCK ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 21 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 21 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos debug:   propertyUpdated( 25 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos trace:   propertyUpdated( 14 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 14 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos debug:   propertyUpdated( 25 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos trace:   objectUnreferenced( 25 , LINK ) : 1
 Xcos debug:   propertyUpdated( 10 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 19 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 24 , LINK ) : 0
-Xcos trace:   propertyUpdated( 10 , DIAGRAM , CHILDREN ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 13 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 13 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 13 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 13 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos info:    objectDeleted( 14 , PORT )
-Xcos info:    objectDeleted( 13 , BLOCK )
-Xcos trace:   propertyUpdated( 10 , DIAGRAM , CHILDREN ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 15 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 15 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos info:    objectDeleted( 16 , PORT )
-Xcos trace:   propertyUpdated( 15 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 15 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos info:    objectDeleted( 17 , PORT )
-Xcos info:    objectDeleted( 15 , BLOCK )
-Xcos info:    objectDeleted( 18 , LINK )
-Xcos trace:   objectReferenced( 19 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 21 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 24 , LINK ) : 1
-Xcos info:    objectCreated( 25 , BLOCK )
-Xcos info:    objectCloned( 19 , 25 , BLOCK )
-Xcos trace:   propertyUpdated( 25 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 25 , BLOCK , DESCRIPTION ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 25 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-Xcos debug:   propertyUpdated( 25 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-Xcos debug:   propertyUpdated( 25 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
-Xcos trace:   propertyUpdated( 25 , BLOCK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 25 , BLOCK , STYLE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 25 , BLOCK , GEOMETRY ) : SUCCESS
-Xcos debug:   propertyUpdated( 25 , BLOCK , EXPRS ) : SUCCESS
-Xcos trace:   propertyUpdated( 25 , BLOCK , STATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 25 , BLOCK , DSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 25 , BLOCK , ODSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 25 , BLOCK , RPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 25 , BLOCK , OPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 25 , BLOCK , EQUATIONS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 25 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 25 , BLOCK , NZCROSS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 25 , BLOCK , NMODE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 25 , BLOCK , IPAR ) : SUCCESS
-Xcos trace:   propertyUpdated( 25 , BLOCK , COLOR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 25 , BLOCK , CONTEXT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 25 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 25 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 25 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos info:    objectCreated( 26 , PORT )
-Xcos info:    objectCloned( 20 , 26 , PORT )
-Xcos trace:   propertyUpdated( 26 , PORT , FIRING ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 26 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 26 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 26 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 26 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 26 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 26 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 26 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 26 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 25 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 25 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 25 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 26 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 25 , BLOCK , CHILDREN ) : NO_CHANGES
-Xcos info:    objectCreated( 27 , BLOCK )
-Xcos info:    objectCloned( 21 , 27 , BLOCK )
-Xcos debug:   propertyUpdated( 27 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
-Xcos trace:   propertyUpdated( 27 , BLOCK , DESCRIPTION ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 27 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-Xcos debug:   propertyUpdated( 27 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-Xcos debug:   propertyUpdated( 27 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
-Xcos trace:   propertyUpdated( 27 , BLOCK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 27 , BLOCK , STYLE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 27 , BLOCK , GEOMETRY ) : SUCCESS
-Xcos debug:   propertyUpdated( 27 , BLOCK , EXPRS ) : SUCCESS
-Xcos trace:   propertyUpdated( 27 , BLOCK , STATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 27 , BLOCK , DSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 27 , BLOCK , ODSTATE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 27 , BLOCK , RPAR ) : SUCCESS
-Xcos trace:   propertyUpdated( 27 , BLOCK , OPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 27 , BLOCK , EQUATIONS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 27 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 27 , BLOCK , NZCROSS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 27 , BLOCK , NMODE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 27 , BLOCK , IPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 27 , BLOCK , COLOR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 27 , BLOCK , CONTEXT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 27 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 27 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 27 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos info:    objectCreated( 28 , PORT )
-Xcos info:    objectCloned( 22 , 28 , PORT )
-Xcos trace:   propertyUpdated( 28 , PORT , FIRING ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 28 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 28 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 28 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 28 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 28 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 28 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 28 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 28 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 27 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace:   objectUnreferenced( 25 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 17 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 18 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 23 , LINK ) : 0
+Xcos info:    objectDeleted( 24 , LINK )
+Xcos info:    objectCreated( 26 , BLOCK )
+Xcos trace:   objectReferenced( 26 , BLOCK ) : 1
+Xcos trace:   propertyUpdated( 26 , BLOCK , GEOMETRY ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , GEOMETRY ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , EXPRS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , DESCRIPTION ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , STYLE ) : NO_CHANGES
+Xcos trace:   objectUnreferenced( 26 , BLOCK ) : 0
+Xcos trace:   objectReferenced( 26 , BLOCK ) : 1
+Xcos trace:   propertyUpdated( 26 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , STATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , DSTATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , ODSTATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , RPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , IPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , OPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , DESCRIPTION ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , NZCROSS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , NMODE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , EQUATIONS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , UID ) : NO_CHANGES
+Xcos trace:   objectUnreferenced( 26 , BLOCK ) : 0
+Xcos trace:   propertyUpdated( 26 , BLOCK , INTERFACE_FUNCTION ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 26 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
+Xcos trace:   objectReferenced( 26 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 26 , BLOCK ) : 0
+Xcos trace:   objectReferenced( 26 , BLOCK ) : 1
+Xcos trace:   propertyUpdated( 26 , BLOCK , GEOMETRY ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 26 , BLOCK , GEOMETRY ) : SUCCESS
+Xcos trace:   propertyUpdated( 26 , BLOCK , EXPRS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , DESCRIPTION ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , STYLE ) : NO_CHANGES
+Xcos trace:   objectUnreferenced( 26 , BLOCK ) : 0
+Xcos trace:   objectReferenced( 26 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 26 , BLOCK ) : 0
+Xcos trace:   objectReferenced( 26 , BLOCK ) : 1
+Xcos trace:   propertyUpdated( 26 , BLOCK , GEOMETRY ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , GEOMETRY ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , EXPRS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , DESCRIPTION ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , STYLE ) : NO_CHANGES
+Xcos trace:   objectUnreferenced( 26 , BLOCK ) : 0
+Xcos trace:   objectReferenced( 26 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 26 , BLOCK ) : 0
+Xcos trace:   objectReferenced( 26 , BLOCK ) : 1
+Xcos trace:   propertyUpdated( 26 , BLOCK , GEOMETRY ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , GEOMETRY ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , EXPRS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos info:    objectCreated( 27 , PORT )
+Xcos debug:   propertyUpdated( 27 , PORT , SOURCE_BLOCK ) : SUCCESS
+Xcos debug:   propertyUpdated( 27 , PORT , PORT_KIND ) : SUCCESS
+Xcos debug:   propertyUpdated( 26 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 26 , BLOCK , DESCRIPTION ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , STYLE ) : NO_CHANGES
+Xcos trace:   objectUnreferenced( 26 , BLOCK ) : 0
+Xcos trace:   objectReferenced( 26 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 26 , BLOCK ) : 0
+Xcos trace:   objectReferenced( 26 , BLOCK ) : 1
+Xcos debug:   propertyUpdated( 26 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
+Xcos trace:   propertyUpdated( 26 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 27 , PORT , DATATYPE ) : SUCCESS
+Xcos trace:   propertyUpdated( 26 , BLOCK , STATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , DSTATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , ODSTATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , RPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , IPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , OPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 27 , PORT , FIRING ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , DESCRIPTION ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , NZCROSS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , NMODE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , EQUATIONS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , UID ) : NO_CHANGES
+Xcos trace:   objectUnreferenced( 26 , BLOCK ) : 0
+Xcos trace:   objectReferenced( 26 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 26 , BLOCK ) : 0
+Xcos trace:   objectReferenced( 26 , BLOCK ) : 1
+Xcos trace:   propertyUpdated( 26 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 27 , PORT , DATATYPE ) : SUCCESS
+Xcos trace:   propertyUpdated( 26 , BLOCK , STATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , DSTATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , ODSTATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , RPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , IPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , OPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 27 , PORT , FIRING ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , DESCRIPTION ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , NZCROSS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , NMODE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , EQUATIONS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , UID ) : NO_CHANGES
+Xcos trace:   objectUnreferenced( 26 , BLOCK ) : 0
+Xcos trace:   objectReferenced( 26 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 26 , BLOCK ) : 0
+Xcos trace:   objectReferenced( 26 , BLOCK ) : 1
+Xcos trace:   propertyUpdated( 26 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 27 , PORT , DATATYPE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , STATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , DSTATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , ODSTATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , RPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , IPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , OPAR ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 26 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
+Xcos trace:   propertyUpdated( 27 , PORT , FIRING ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , DESCRIPTION ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , NZCROSS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , NMODE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , EQUATIONS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , UID ) : NO_CHANGES
+Xcos trace:   objectUnreferenced( 26 , BLOCK ) : 0
+Xcos trace:   objectReferenced( 26 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 26 , BLOCK ) : 0
+Xcos trace:   objectReferenced( 26 , BLOCK ) : 1
+Xcos trace:   propertyUpdated( 26 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 27 , PORT , DATATYPE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , STATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , DSTATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , ODSTATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , RPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , IPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , OPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 27 , PORT , FIRING ) : FAIL
+Xcos trace:   propertyUpdated( 26 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , DESCRIPTION ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , NZCROSS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , NMODE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , EQUATIONS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , UID ) : NO_CHANGES
+Xcos trace:   objectUnreferenced( 26 , BLOCK ) : 0
+Xcos trace:   objectReferenced( 26 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 26 , BLOCK ) : 0
+Xcos trace:   objectReferenced( 26 , BLOCK ) : 1
+Xcos trace:   propertyUpdated( 26 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 27 , PORT , DATATYPE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , STATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , DSTATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , ODSTATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , RPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , IPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , OPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 27 , PORT , FIRING ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , DESCRIPTION ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , NZCROSS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , NMODE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , EQUATIONS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , UID ) : NO_CHANGES
+Xcos trace:   objectUnreferenced( 26 , BLOCK ) : 0
+Xcos trace:   objectReferenced( 26 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 26 , BLOCK ) : 0
+Xcos trace:   objectReferenced( 26 , BLOCK ) : 1
+Xcos trace:   propertyUpdated( 26 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 27 , PORT , DATATYPE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , STATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , DSTATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , ODSTATE ) : NO_CHANGES
+Xcos trace:   objectReferenced( 26 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 11 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 13 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 17 , LINK ) : 1
+Xcos trace:   objectReferenced( 18 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 23 , LINK ) : 1
+Xcos trace:   objectReferenced( 25 , LINK ) : 1
+Xcos info:    objectCreated( 28 , BLOCK )
+Xcos info:    objectCloned( 11 , 28 , BLOCK )
+Xcos trace:   propertyUpdated( 28 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 28 , BLOCK , DESCRIPTION ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 28 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
+Xcos debug:   propertyUpdated( 28 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
+Xcos debug:   propertyUpdated( 28 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
+Xcos trace:   propertyUpdated( 28 , BLOCK , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 28 , BLOCK , STYLE ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 28 , BLOCK , GEOMETRY ) : SUCCESS
+Xcos debug:   propertyUpdated( 28 , BLOCK , EXPRS ) : SUCCESS
+Xcos trace:   propertyUpdated( 28 , BLOCK , STATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 28 , BLOCK , DSTATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 28 , BLOCK , ODSTATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 28 , BLOCK , RPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 28 , BLOCK , OPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 28 , BLOCK , EQUATIONS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 28 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 28 , BLOCK , NZCROSS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 28 , BLOCK , NMODE ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 28 , BLOCK , IPAR ) : SUCCESS
+Xcos trace:   propertyUpdated( 28 , BLOCK , COLOR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 28 , BLOCK , CONTEXT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 28 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 28 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 28 , BLOCK , OUTPUTS ) : NO_CHANGES
 Xcos info:    objectCreated( 29 , PORT )
-Xcos info:    objectCloned( 23 , 29 , PORT )
-Xcos debug:   propertyUpdated( 29 , PORT , FIRING ) : SUCCESS
+Xcos info:    objectCloned( 12 , 29 , PORT )
+Xcos trace:   propertyUpdated( 29 , PORT , FIRING ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 29 , PORT , PORT_KIND ) : SUCCESS
 Xcos trace:   propertyUpdated( 29 , PORT , IMPLICIT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 29 , PORT , UID ) : NO_CHANGES
@@ -778,53 +900,52 @@ Xcos trace:   propertyUpdated( 29 , PORT , LABEL ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 29 , PORT , DATATYPE ) : SUCCESS
 Xcos debug:   propertyUpdated( 29 , PORT , SOURCE_BLOCK ) : SUCCESS
 Xcos trace:   propertyUpdated( 29 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 27 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 27 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 28 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 28 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 28 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 29 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 28 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 27 , BLOCK , CHILDREN ) : NO_CHANGES
-Xcos info:    objectCreated( 30 , LINK )
-Xcos info:    objectCloned( 24 , 30 , LINK )
-Xcos debug:   propertyUpdated( 30 , LINK , COLOR ) : SUCCESS
-Xcos debug:   propertyUpdated( 30 , LINK , KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 30 , LINK , DESCRIPTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 30 , LINK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 30 , LINK , STYLE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 30 , LINK , CONTROL_POINTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 30 , LINK , THICK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 30 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 30 , LINK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 30 , LINK , SOURCE_PORT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 30 , LINK , DESTINATION_PORT ) : NO_CHANGES
-Xcos info:    objectCreated( 31 , BLOCK )
-Xcos info:    objectCloned( 6 , 31 , BLOCK )
-Xcos trace:   propertyUpdated( 31 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 31 , BLOCK , DESCRIPTION ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 31 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-Xcos debug:   propertyUpdated( 31 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-Xcos debug:   propertyUpdated( 31 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
-Xcos trace:   propertyUpdated( 31 , BLOCK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 31 , BLOCK , STYLE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 31 , BLOCK , GEOMETRY ) : SUCCESS
-Xcos trace:   propertyUpdated( 31 , BLOCK , EXPRS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 31 , BLOCK , STATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 31 , BLOCK , DSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 31 , BLOCK , ODSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 31 , BLOCK , RPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 31 , BLOCK , OPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 31 , BLOCK , EQUATIONS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 31 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 31 , BLOCK , NZCROSS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 31 , BLOCK , NMODE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 31 , BLOCK , IPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 31 , BLOCK , COLOR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 31 , BLOCK , CONTEXT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 31 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 31 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 31 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 28 , BLOCK , CHILDREN ) : NO_CHANGES
+Xcos info:    objectCreated( 30 , BLOCK )
+Xcos info:    objectCloned( 13 , 30 , BLOCK )
+Xcos debug:   propertyUpdated( 30 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
+Xcos trace:   propertyUpdated( 30 , BLOCK , DESCRIPTION ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 30 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
+Xcos debug:   propertyUpdated( 30 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
+Xcos debug:   propertyUpdated( 30 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
+Xcos trace:   propertyUpdated( 30 , BLOCK , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 30 , BLOCK , STYLE ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 30 , BLOCK , GEOMETRY ) : SUCCESS
+Xcos debug:   propertyUpdated( 30 , BLOCK , EXPRS ) : SUCCESS
+Xcos trace:   propertyUpdated( 30 , BLOCK , STATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 30 , BLOCK , DSTATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 30 , BLOCK , ODSTATE ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 30 , BLOCK , RPAR ) : SUCCESS
+Xcos trace:   propertyUpdated( 30 , BLOCK , OPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 30 , BLOCK , EQUATIONS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 30 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 30 , BLOCK , NZCROSS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 30 , BLOCK , NMODE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 30 , BLOCK , IPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 30 , BLOCK , COLOR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 30 , BLOCK , CONTEXT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 30 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 30 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 30 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos info:    objectCreated( 31 , PORT )
+Xcos info:    objectCloned( 14 , 31 , PORT )
+Xcos trace:   propertyUpdated( 31 , PORT , FIRING ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 31 , PORT , PORT_KIND ) : SUCCESS
+Xcos trace:   propertyUpdated( 31 , PORT , IMPLICIT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 31 , PORT , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 31 , PORT , STYLE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 31 , PORT , LABEL ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 31 , PORT , DATATYPE ) : SUCCESS
+Xcos debug:   propertyUpdated( 31 , PORT , SOURCE_BLOCK ) : SUCCESS
+Xcos trace:   propertyUpdated( 31 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 30 , BLOCK , EVENT_INPUTS ) : SUCCESS
 Xcos info:    objectCreated( 32 , PORT )
-Xcos info:    objectCloned( 7 , 32 , PORT )
-Xcos trace:   propertyUpdated( 32 , PORT , FIRING ) : NO_CHANGES
+Xcos info:    objectCloned( 15 , 32 , PORT )
+Xcos debug:   propertyUpdated( 32 , PORT , FIRING ) : SUCCESS
 Xcos debug:   propertyUpdated( 32 , PORT , PORT_KIND ) : SUCCESS
 Xcos trace:   propertyUpdated( 32 , PORT , IMPLICIT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 32 , PORT , UID ) : NO_CHANGES
@@ -833,128 +954,76 @@ Xcos trace:   propertyUpdated( 32 , PORT , LABEL ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 32 , PORT , DATATYPE ) : SUCCESS
 Xcos debug:   propertyUpdated( 32 , PORT , SOURCE_BLOCK ) : SUCCESS
 Xcos trace:   propertyUpdated( 32 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 31 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos info:    objectCreated( 33 , PORT )
-Xcos info:    objectCloned( 8 , 33 , PORT )
-Xcos trace:   propertyUpdated( 33 , PORT , FIRING ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 33 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 33 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 33 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 33 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 33 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 33 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 33 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 33 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos info:    objectCreated( 34 , PORT )
-Xcos info:    objectCloned( 9 , 34 , PORT )
-Xcos trace:   propertyUpdated( 34 , PORT , FIRING ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 34 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 34 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 34 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 34 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 34 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 34 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 34 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 34 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 31 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 31 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 34 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 33 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 30 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 30 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 32 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 31 , BLOCK , CHILDREN ) : NO_CHANGES
-Xcos trace:   objectReferenced( 25 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 27 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 30 , LINK ) : 1
-Xcos trace:   objectReferenced( 31 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 25 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 19 , BLOCK ) : 0
-Xcos debug:   propertyUpdated( 25 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   propertyUpdated( 25 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   objectReferenced( 27 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 0
-Xcos debug:   propertyUpdated( 27 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   propertyUpdated( 27 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   objectReferenced( 30 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 24 , LINK ) : 0
-Xcos debug:   propertyUpdated( 30 , LINK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   propertyUpdated( 30 , LINK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   objectReferenced( 31 , BLOCK ) : 2
-Xcos debug:   propertyUpdated( 31 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   propertyUpdated( 31 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 29 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos debug:   propertyUpdated( 30 , LINK , SOURCE_PORT ) : SUCCESS
-Xcos debug:   propertyUpdated( 32 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos debug:   propertyUpdated( 30 , LINK , DESTINATION_PORT ) : SUCCESS
-Xcos trace:   objectUnreferenced( 25 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 27 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 30 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 31 , BLOCK ) : 1
-Xcos debug:   propertyUpdated( 10 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 25 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 27 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 30 , LINK ) : 0
-Xcos trace:   objectUnreferenced( 31 , BLOCK ) : 0
-Xcos trace:   propertyUpdated( 10 , DIAGRAM , CHILDREN ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 19 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 19 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 19 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 19 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos info:    objectDeleted( 20 , PORT )
-Xcos info:    objectDeleted( 19 , BLOCK )
-Xcos trace:   propertyUpdated( 10 , DIAGRAM , CHILDREN ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 21 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 21 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 21 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 21 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos info:    objectDeleted( 22 , PORT )
-Xcos trace:   propertyUpdated( 21 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 21 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 21 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 21 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos debug:   propertyUpdated( 24 , LINK , SOURCE_PORT ) : SUCCESS
-Xcos info:    objectDeleted( 23 , PORT )
-Xcos info:    objectDeleted( 21 , BLOCK )
-Xcos trace:   propertyUpdated( 10 , DIAGRAM , CHILDREN ) : NO_CHANGES
-Xcos info:    objectDeleted( 24 , LINK )
-Xcos info:    objectCreated( 35 , LINK )
-Xcos debug:   propertyUpdated( 35 , LINK , CONTROL_POINTS ) : SUCCESS
-Xcos debug:   propertyUpdated( 35 , LINK , CONTROL_POINTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 35 , LINK , DESCRIPTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 35 , LINK , THICK ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 35 , LINK , COLOR ) : SUCCESS
-Xcos debug:   propertyUpdated( 35 , LINK , KIND ) : SUCCESS
-Xcos trace:   objectReferenced( 25 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 27 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 30 , LINK ) : 1
-Xcos trace:   objectReferenced( 31 , BLOCK ) : 1
-Xcos info:    objectCreated( 36 , BLOCK )
-Xcos info:    objectCloned( 25 , 36 , BLOCK )
-Xcos trace:   propertyUpdated( 36 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 36 , BLOCK , DESCRIPTION ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 36 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-Xcos debug:   propertyUpdated( 36 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-Xcos debug:   propertyUpdated( 36 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
-Xcos trace:   propertyUpdated( 36 , BLOCK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 36 , BLOCK , STYLE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 36 , BLOCK , GEOMETRY ) : SUCCESS
-Xcos debug:   propertyUpdated( 36 , BLOCK , EXPRS ) : SUCCESS
-Xcos trace:   propertyUpdated( 36 , BLOCK , STATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 36 , BLOCK , DSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 36 , BLOCK , ODSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 36 , BLOCK , RPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 36 , BLOCK , OPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 36 , BLOCK , EQUATIONS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 36 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 36 , BLOCK , NZCROSS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 36 , BLOCK , NMODE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 36 , BLOCK , IPAR ) : SUCCESS
-Xcos trace:   propertyUpdated( 36 , BLOCK , COLOR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 36 , BLOCK , CONTEXT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 36 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 36 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 36 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 31 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 29 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 30 , BLOCK , CHILDREN ) : NO_CHANGES
+Xcos info:    objectCreated( 33 , LINK )
+Xcos info:    objectCloned( 17 , 33 , LINK )
+Xcos debug:   propertyUpdated( 33 , LINK , COLOR ) : SUCCESS
+Xcos debug:   propertyUpdated( 33 , LINK , KIND ) : SUCCESS
+Xcos trace:   propertyUpdated( 33 , LINK , DESCRIPTION ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 33 , LINK , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 33 , LINK , STYLE ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 33 , LINK , CONTROL_POINTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 33 , LINK , THICK ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 33 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 33 , LINK , PARENT_BLOCK ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 33 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos trace:   propertyUpdated( 33 , LINK , DESTINATION_PORT ) : NO_CHANGES
+Xcos info:    objectCreated( 34 , BLOCK )
+Xcos info:    objectCloned( 18 , 34 , BLOCK )
+Xcos trace:   propertyUpdated( 34 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 34 , BLOCK , DESCRIPTION ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 34 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
+Xcos debug:   propertyUpdated( 34 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
+Xcos debug:   propertyUpdated( 34 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
+Xcos trace:   propertyUpdated( 34 , BLOCK , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 34 , BLOCK , STYLE ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 34 , BLOCK , GEOMETRY ) : SUCCESS
+Xcos trace:   propertyUpdated( 34 , BLOCK , EXPRS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 34 , BLOCK , STATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 34 , BLOCK , DSTATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 34 , BLOCK , ODSTATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 34 , BLOCK , RPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 34 , BLOCK , OPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 34 , BLOCK , EQUATIONS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 34 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 34 , BLOCK , NZCROSS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 34 , BLOCK , NMODE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 34 , BLOCK , IPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 34 , BLOCK , COLOR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 34 , BLOCK , CONTEXT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 34 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 34 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 34 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos info:    objectCreated( 35 , PORT )
+Xcos info:    objectCloned( 19 , 35 , PORT )
+Xcos trace:   propertyUpdated( 35 , PORT , FIRING ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 35 , PORT , PORT_KIND ) : SUCCESS
+Xcos trace:   propertyUpdated( 35 , PORT , IMPLICIT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 35 , PORT , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 35 , PORT , STYLE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 35 , PORT , LABEL ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 35 , PORT , DATATYPE ) : SUCCESS
+Xcos debug:   propertyUpdated( 35 , PORT , SOURCE_BLOCK ) : SUCCESS
+Xcos debug:   propertyUpdated( 35 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos debug:   propertyUpdated( 34 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos info:    objectCreated( 36 , PORT )
+Xcos info:    objectCloned( 20 , 36 , PORT )
+Xcos trace:   propertyUpdated( 36 , PORT , FIRING ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 36 , PORT , PORT_KIND ) : SUCCESS
+Xcos trace:   propertyUpdated( 36 , PORT , IMPLICIT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 36 , PORT , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 36 , PORT , STYLE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 36 , PORT , LABEL ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 36 , PORT , DATATYPE ) : SUCCESS
+Xcos debug:   propertyUpdated( 36 , PORT , SOURCE_BLOCK ) : SUCCESS
+Xcos trace:   propertyUpdated( 36 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos info:    objectCreated( 37 , PORT )
-Xcos info:    objectCloned( 26 , 37 , PORT )
+Xcos info:    objectCloned( 21 , 37 , PORT )
 Xcos trace:   propertyUpdated( 37 , PORT , FIRING ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 37 , PORT , PORT_KIND ) : SUCCESS
 Xcos trace:   propertyUpdated( 37 , PORT , IMPLICIT ) : NO_CHANGES
@@ -964,118 +1033,277 @@ Xcos trace:   propertyUpdated( 37 , PORT , LABEL ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 37 , PORT , DATATYPE ) : SUCCESS
 Xcos debug:   propertyUpdated( 37 , PORT , SOURCE_BLOCK ) : SUCCESS
 Xcos trace:   propertyUpdated( 37 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 36 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 36 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 36 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 34 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 34 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 37 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 36 , BLOCK , CHILDREN ) : NO_CHANGES
-Xcos info:    objectCreated( 38 , BLOCK )
-Xcos info:    objectCloned( 27 , 38 , BLOCK )
-Xcos debug:   propertyUpdated( 38 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
-Xcos trace:   propertyUpdated( 38 , BLOCK , DESCRIPTION ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 38 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-Xcos debug:   propertyUpdated( 38 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-Xcos debug:   propertyUpdated( 38 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
-Xcos trace:   propertyUpdated( 38 , BLOCK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 38 , BLOCK , STYLE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 38 , BLOCK , GEOMETRY ) : SUCCESS
-Xcos debug:   propertyUpdated( 38 , BLOCK , EXPRS ) : SUCCESS
-Xcos trace:   propertyUpdated( 38 , BLOCK , STATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 38 , BLOCK , DSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 38 , BLOCK , ODSTATE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 38 , BLOCK , RPAR ) : SUCCESS
-Xcos trace:   propertyUpdated( 38 , BLOCK , OPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 38 , BLOCK , EQUATIONS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 38 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 38 , BLOCK , NZCROSS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 38 , BLOCK , NMODE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 38 , BLOCK , IPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 38 , BLOCK , COLOR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 38 , BLOCK , CONTEXT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 38 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 38 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 38 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos info:    objectCreated( 39 , PORT )
-Xcos info:    objectCloned( 28 , 39 , PORT )
-Xcos trace:   propertyUpdated( 39 , PORT , FIRING ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 39 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 39 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 39 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 39 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 39 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 39 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 39 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 39 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 38 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos info:    objectCreated( 40 , PORT )
-Xcos info:    objectCloned( 29 , 40 , PORT )
-Xcos debug:   propertyUpdated( 40 , PORT , FIRING ) : SUCCESS
-Xcos debug:   propertyUpdated( 40 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 40 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 40 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 40 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 40 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 40 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 40 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 40 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 38 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 38 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 40 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 39 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 38 , BLOCK , CHILDREN ) : NO_CHANGES
-Xcos info:    objectCreated( 41 , LINK )
-Xcos info:    objectCloned( 30 , 41 , LINK )
-Xcos debug:   propertyUpdated( 41 , LINK , COLOR ) : SUCCESS
-Xcos debug:   propertyUpdated( 41 , LINK , KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 41 , LINK , DESCRIPTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 41 , LINK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 41 , LINK , STYLE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 41 , LINK , CONTROL_POINTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 41 , LINK , THICK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 41 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 41 , LINK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 41 , LINK , SOURCE_PORT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 41 , LINK , DESTINATION_PORT ) : NO_CHANGES
-Xcos info:    objectCreated( 42 , BLOCK )
-Xcos info:    objectCloned( 31 , 42 , BLOCK )
-Xcos trace:   propertyUpdated( 42 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 42 , BLOCK , DESCRIPTION ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 42 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-Xcos debug:   propertyUpdated( 42 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-Xcos debug:   propertyUpdated( 42 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
-Xcos trace:   propertyUpdated( 42 , BLOCK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 42 , BLOCK , STYLE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 42 , BLOCK , GEOMETRY ) : SUCCESS
-Xcos trace:   propertyUpdated( 42 , BLOCK , EXPRS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 42 , BLOCK , STATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 42 , BLOCK , DSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 42 , BLOCK , ODSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 42 , BLOCK , RPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 42 , BLOCK , OPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 42 , BLOCK , EQUATIONS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 42 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 42 , BLOCK , NZCROSS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 42 , BLOCK , NMODE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 42 , BLOCK , IPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 42 , BLOCK , COLOR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 42 , BLOCK , CONTEXT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 42 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 42 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 42 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos info:    objectCreated( 43 , PORT )
-Xcos info:    objectCloned( 32 , 43 , PORT )
-Xcos trace:   propertyUpdated( 43 , PORT , FIRING ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 43 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 43 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 43 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 43 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 43 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 43 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 43 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 43 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 42 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 36 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 35 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 29 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 31 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 32 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos trace:   propertyUpdated( 33 , LINK , SOURCE_PORT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 33 , LINK , DESTINATION_PORT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 34 , BLOCK , CHILDREN ) : NO_CHANGES
+Xcos info:    objectCreated( 38 , LINK )
+Xcos info:    objectCloned( 23 , 38 , LINK )
+Xcos debug:   propertyUpdated( 38 , LINK , COLOR ) : SUCCESS
+Xcos debug:   propertyUpdated( 38 , LINK , KIND ) : SUCCESS
+Xcos trace:   propertyUpdated( 38 , LINK , DESCRIPTION ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 38 , LINK , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 38 , LINK , STYLE ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 38 , LINK , CONTROL_POINTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 38 , LINK , THICK ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 38 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 38 , LINK , PARENT_BLOCK ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 38 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos debug:   propertyUpdated( 38 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos info:    objectCreated( 39 , LINK )
+Xcos info:    objectCloned( 25 , 39 , LINK )
+Xcos debug:   propertyUpdated( 39 , LINK , COLOR ) : SUCCESS
+Xcos debug:   propertyUpdated( 39 , LINK , KIND ) : SUCCESS
+Xcos trace:   propertyUpdated( 39 , LINK , DESCRIPTION ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 39 , LINK , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 39 , LINK , STYLE ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 39 , LINK , CONTROL_POINTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 39 , LINK , THICK ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 39 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 39 , LINK , PARENT_BLOCK ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 39 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos debug:   propertyUpdated( 39 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos trace:   objectReferenced( 28 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 30 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 33 , LINK ) : 1
+Xcos trace:   objectReferenced( 34 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 38 , LINK ) : 1
+Xcos trace:   objectReferenced( 39 , LINK ) : 1
+Xcos trace:   objectReferenced( 28 , BLOCK ) : 2
+Xcos trace:   propertyUpdated( 28 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 28 , BLOCK , PARENT_BLOCK ) : SUCCESS
+Xcos trace:   objectReferenced( 30 , BLOCK ) : 2
+Xcos trace:   propertyUpdated( 30 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 30 , BLOCK , PARENT_BLOCK ) : SUCCESS
+Xcos trace:   objectReferenced( 33 , LINK ) : 2
+Xcos trace:   propertyUpdated( 33 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 33 , LINK , PARENT_BLOCK ) : SUCCESS
+Xcos trace:   objectReferenced( 34 , BLOCK ) : 2
+Xcos trace:   propertyUpdated( 34 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 34 , BLOCK , PARENT_BLOCK ) : SUCCESS
+Xcos trace:   objectReferenced( 38 , LINK ) : 2
+Xcos trace:   propertyUpdated( 38 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 38 , LINK , PARENT_BLOCK ) : SUCCESS
+Xcos trace:   objectReferenced( 39 , LINK ) : 2
+Xcos trace:   propertyUpdated( 39 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 39 , LINK , PARENT_BLOCK ) : SUCCESS
+Xcos debug:   propertyUpdated( 29 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos debug:   propertyUpdated( 31 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos trace:   propertyUpdated( 32 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 35 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 36 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos debug:   propertyUpdated( 37 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos debug:   propertyUpdated( 32 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos debug:   propertyUpdated( 32 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos trace:   propertyUpdated( 33 , LINK , SOURCE_PORT ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 35 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos debug:   propertyUpdated( 35 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos debug:   propertyUpdated( 33 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos trace:   objectUnreferenced( 28 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 30 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 33 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 34 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 38 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 39 , LINK ) : 1
+Xcos debug:   propertyUpdated( 26 , BLOCK , CHILDREN ) : SUCCESS
+Xcos trace:   objectUnreferenced( 28 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 30 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 33 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 34 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 38 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 39 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 17 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 18 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 23 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 25 , LINK ) : 0
+Xcos trace:   objectReferenced( 10 , DIAGRAM ) : 1
+Xcos trace:   objectUnreferenced( 10 , DIAGRAM ) : 0
+Xcos trace:   objectReferenced( 26 , BLOCK ) : 3
+Xcos debug:   propertyUpdated( 26 , BLOCK , DESCRIPTION ) : SUCCESS
+Xcos trace:   propertyUpdated( 26 , BLOCK , CONTEXT ) : NO_CHANGES
+Xcos trace:   objectUnreferenced( 26 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 26 , BLOCK ) : 1
+Xcos trace:   propertyUpdated( 26 , BLOCK , IPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , OPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 27 , PORT , FIRING ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 26 , BLOCK , DESCRIPTION ) : SUCCESS
+Xcos trace:   propertyUpdated( 26 , BLOCK , NZCROSS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , NMODE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , EQUATIONS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , UID ) : NO_CHANGES
+Xcos trace:   objectUnreferenced( 26 , BLOCK ) : 0
+Xcos debug:   propertyUpdated( 11 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+Xcos debug:   propertyUpdated( 13 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+Xcos debug:   propertyUpdated( 17 , LINK , PARENT_DIAGRAM ) : SUCCESS
+Xcos debug:   propertyUpdated( 18 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+Xcos debug:   propertyUpdated( 23 , LINK , PARENT_DIAGRAM ) : SUCCESS
+Xcos debug:   propertyUpdated( 25 , LINK , PARENT_DIAGRAM ) : SUCCESS
+Xcos trace:   propertyUpdated( 11 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 11 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 11 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 11 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 23 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 12 , PORT )
+Xcos info:    objectDeleted( 11 , BLOCK )
+Xcos trace:   propertyUpdated( 13 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 13 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 13 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 13 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 25 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 14 , PORT )
+Xcos trace:   propertyUpdated( 13 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 13 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 13 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 13 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos debug:   propertyUpdated( 17 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 15 , PORT )
+Xcos info:    objectDeleted( 13 , BLOCK )
+Xcos info:    objectDeleted( 17 , LINK )
+Xcos trace:   propertyUpdated( 18 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 18 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 18 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 18 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 19 , PORT )
+Xcos trace:   propertyUpdated( 18 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 18 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 18 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 18 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos debug:   propertyUpdated( 23 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 20 , PORT )
+Xcos trace:   propertyUpdated( 18 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 18 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 18 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 18 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos debug:   propertyUpdated( 25 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 21 , PORT )
+Xcos info:    objectDeleted( 18 , BLOCK )
+Xcos info:    objectDeleted( 23 , LINK )
+Xcos info:    objectDeleted( 25 , LINK )
+Xcos info:    objectDeleted( 10 , DIAGRAM )
+Xcos trace:   propertyUpdated( 1 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 1 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 1 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 1 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 2 , PORT )
+Xcos trace:   propertyUpdated( 1 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 1 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 1 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 1 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos info:    objectDeleted( 3 , PORT )
+Xcos info:    objectDeleted( 1 , BLOCK )
+Xcos trace:   propertyUpdated( 4 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 4 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 4 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 4 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 5 , PORT )
+Xcos info:    objectDeleted( 4 , BLOCK )
+Xcos trace:   propertyUpdated( 6 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 6 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 6 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 6 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 7 , PORT )
+Xcos trace:   propertyUpdated( 6 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 6 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 6 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 6 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos info:    objectDeleted( 8 , PORT )
+Xcos trace:   propertyUpdated( 6 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 6 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 6 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 6 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos info:    objectDeleted( 9 , PORT )
+Xcos info:    objectDeleted( 6 , BLOCK )
+d = scicos_diagram();
+Xcos info:    objectCreated( 40 , DIAGRAM )
+Xcos trace:   objectReferenced( 40 , DIAGRAM ) : 1
+Xcos trace:   propertyUpdated( 40 , DIAGRAM , TITLE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 40 , DIAGRAM , PATH ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 40 , DIAGRAM , PROPERTIES ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 40 , DIAGRAM , PROPERTIES ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 40 , DIAGRAM , CONTEXT ) : NO_CHANGES
+Xcos trace:   objectUnreferenced( 40 , DIAGRAM ) : 0
+Xcos trace:   propertyUpdated( 40 , DIAGRAM , CHILDREN ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 40 , DIAGRAM , VERSION_NUMBER ) : SUCCESS
+d.objs(1) = o;
+Xcos info:    objectCreated( 41 , BLOCK )
+Xcos info:    objectCloned( 26 , 41 , BLOCK )
+Xcos trace:   propertyUpdated( 41 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 41 , BLOCK , DESCRIPTION ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 41 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
+Xcos debug:   propertyUpdated( 41 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
+Xcos debug:   propertyUpdated( 41 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
+Xcos trace:   propertyUpdated( 41 , BLOCK , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 41 , BLOCK , STYLE ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 41 , BLOCK , GEOMETRY ) : SUCCESS
+Xcos trace:   propertyUpdated( 41 , BLOCK , EXPRS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 41 , BLOCK , STATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 41 , BLOCK , DSTATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 41 , BLOCK , ODSTATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 41 , BLOCK , RPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 41 , BLOCK , OPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 41 , BLOCK , EQUATIONS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 41 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 41 , BLOCK , NZCROSS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 41 , BLOCK , NMODE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 41 , BLOCK , IPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 41 , BLOCK , COLOR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 41 , BLOCK , CONTEXT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 41 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 41 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 41 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 41 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos info:    objectCreated( 42 , PORT )
+Xcos info:    objectCloned( 27 , 42 , PORT )
+Xcos trace:   propertyUpdated( 42 , PORT , FIRING ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 42 , PORT , PORT_KIND ) : SUCCESS
+Xcos trace:   propertyUpdated( 42 , PORT , IMPLICIT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 42 , PORT , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 42 , PORT , STYLE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 42 , PORT , LABEL ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 42 , PORT , DATATYPE ) : SUCCESS
+Xcos debug:   propertyUpdated( 42 , PORT , SOURCE_BLOCK ) : SUCCESS
+Xcos trace:   propertyUpdated( 42 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 41 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 41 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
+Xcos info:    objectCreated( 43 , BLOCK )
+Xcos info:    objectCloned( 28 , 43 , BLOCK )
+Xcos trace:   propertyUpdated( 43 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 43 , BLOCK , DESCRIPTION ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 43 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
+Xcos debug:   propertyUpdated( 43 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
+Xcos debug:   propertyUpdated( 43 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
+Xcos trace:   propertyUpdated( 43 , BLOCK , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 43 , BLOCK , STYLE ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 43 , BLOCK , GEOMETRY ) : SUCCESS
+Xcos debug:   propertyUpdated( 43 , BLOCK , EXPRS ) : SUCCESS
+Xcos trace:   propertyUpdated( 43 , BLOCK , STATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 43 , BLOCK , DSTATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 43 , BLOCK , ODSTATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 43 , BLOCK , RPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 43 , BLOCK , OPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 43 , BLOCK , EQUATIONS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 43 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 43 , BLOCK , NZCROSS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 43 , BLOCK , NMODE ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 43 , BLOCK , IPAR ) : SUCCESS
+Xcos trace:   propertyUpdated( 43 , BLOCK , COLOR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 43 , BLOCK , CONTEXT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 43 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 43 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 43 , BLOCK , OUTPUTS ) : NO_CHANGES
 Xcos info:    objectCreated( 44 , PORT )
-Xcos info:    objectCloned( 33 , 44 , PORT )
+Xcos info:    objectCloned( 29 , 44 , PORT )
 Xcos trace:   propertyUpdated( 44 , PORT , FIRING ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 44 , PORT , PORT_KIND ) : SUCCESS
 Xcos trace:   propertyUpdated( 44 , PORT , IMPLICIT ) : NO_CHANGES
@@ -1085,202 +1313,121 @@ Xcos trace:   propertyUpdated( 44 , PORT , LABEL ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 44 , PORT , DATATYPE ) : SUCCESS
 Xcos debug:   propertyUpdated( 44 , PORT , SOURCE_BLOCK ) : SUCCESS
 Xcos trace:   propertyUpdated( 44 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos info:    objectCreated( 45 , PORT )
-Xcos info:    objectCloned( 34 , 45 , PORT )
-Xcos trace:   propertyUpdated( 45 , PORT , FIRING ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 45 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 45 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 45 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 45 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 45 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 45 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 45 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 45 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 42 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 42 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 45 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 43 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 43 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 43 , BLOCK , PARENT_BLOCK ) : SUCCESS
 Xcos trace:   propertyUpdated( 44 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 43 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 42 , BLOCK , CHILDREN ) : NO_CHANGES
-Xcos info:    objectCreated( 46 , LINK )
-Xcos info:    objectCloned( 35 , 46 , LINK )
-Xcos debug:   propertyUpdated( 46 , LINK , COLOR ) : SUCCESS
-Xcos debug:   propertyUpdated( 46 , LINK , KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 46 , LINK , DESCRIPTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 46 , LINK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 46 , LINK , STYLE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 46 , LINK , CONTROL_POINTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 46 , LINK , THICK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 46 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 46 , LINK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 46 , LINK , SOURCE_PORT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 46 , LINK , DESTINATION_PORT ) : NO_CHANGES
-Xcos trace:   objectReferenced( 36 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 38 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 41 , LINK ) : 1
-Xcos trace:   objectReferenced( 42 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 46 , LINK ) : 1
-Xcos trace:   objectReferenced( 36 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 25 , BLOCK ) : 0
-Xcos debug:   propertyUpdated( 36 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   propertyUpdated( 36 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   objectReferenced( 38 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 27 , BLOCK ) : 0
-Xcos debug:   propertyUpdated( 38 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   propertyUpdated( 38 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   objectReferenced( 41 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 30 , LINK ) : 0
-Xcos debug:   propertyUpdated( 41 , LINK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   propertyUpdated( 41 , LINK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   objectReferenced( 42 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 31 , BLOCK ) : 0
-Xcos debug:   propertyUpdated( 42 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   propertyUpdated( 42 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   objectReferenced( 46 , LINK ) : 2
-Xcos debug:   propertyUpdated( 46 , LINK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   propertyUpdated( 46 , LINK , PARENT_BLOCK ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 40 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos debug:   propertyUpdated( 41 , LINK , SOURCE_PORT ) : SUCCESS
-Xcos debug:   propertyUpdated( 43 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos debug:   propertyUpdated( 41 , LINK , DESTINATION_PORT ) : SUCCESS
-Xcos debug:   propertyUpdated( 44 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos debug:   propertyUpdated( 46 , LINK , SOURCE_PORT ) : SUCCESS
-Xcos debug:   propertyUpdated( 37 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos debug:   propertyUpdated( 46 , LINK , DESTINATION_PORT ) : SUCCESS
-Xcos trace:   objectUnreferenced( 36 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 38 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 41 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 42 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 46 , LINK ) : 1
-Xcos debug:   propertyUpdated( 10 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 36 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 38 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 41 , LINK ) : 0
-Xcos trace:   objectUnreferenced( 42 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 46 , LINK ) : 0
-Xcos trace:   propertyUpdated( 10 , DIAGRAM , CHILDREN ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 25 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 25 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 25 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 25 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos info:    objectDeleted( 26 , PORT )
-Xcos info:    objectDeleted( 25 , BLOCK )
-Xcos trace:   propertyUpdated( 10 , DIAGRAM , CHILDREN ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 27 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 27 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 27 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 27 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos info:    objectDeleted( 28 , PORT )
-Xcos trace:   propertyUpdated( 27 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 27 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 27 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 27 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos debug:   propertyUpdated( 30 , LINK , SOURCE_PORT ) : SUCCESS
-Xcos info:    objectDeleted( 29 , PORT )
-Xcos info:    objectDeleted( 27 , BLOCK )
-Xcos trace:   propertyUpdated( 10 , DIAGRAM , CHILDREN ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 32 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos info:    objectDeleted( 30 , LINK )
-Xcos trace:   propertyUpdated( 10 , DIAGRAM , CHILDREN ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 31 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 31 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 31 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 31 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos info:    objectDeleted( 32 , PORT )
-Xcos trace:   propertyUpdated( 31 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 31 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 31 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 31 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos info:    objectDeleted( 33 , PORT )
-Xcos trace:   propertyUpdated( 31 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 31 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 31 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 31 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos info:    objectDeleted( 34 , PORT )
-Xcos info:    objectDeleted( 31 , BLOCK )
-Xcos info:    objectDeleted( 35 , LINK )
-Xcos info:    objectCreated( 47 , LINK )
-Xcos debug:   propertyUpdated( 47 , LINK , CONTROL_POINTS ) : SUCCESS
-Xcos debug:   propertyUpdated( 47 , LINK , CONTROL_POINTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 47 , LINK , DESCRIPTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 47 , LINK , THICK ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 47 , LINK , COLOR ) : SUCCESS
-Xcos debug:   propertyUpdated( 47 , LINK , KIND ) : SUCCESS
-Xcos trace:   objectReferenced( 36 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 38 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 41 , LINK ) : 1
-Xcos trace:   objectReferenced( 42 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 46 , LINK ) : 1
-Xcos info:    objectCreated( 48 , BLOCK )
-Xcos info:    objectCloned( 36 , 48 , BLOCK )
-Xcos trace:   propertyUpdated( 48 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 48 , BLOCK , DESCRIPTION ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 48 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-Xcos debug:   propertyUpdated( 48 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-Xcos debug:   propertyUpdated( 48 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
-Xcos trace:   propertyUpdated( 48 , BLOCK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 48 , BLOCK , STYLE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 48 , BLOCK , GEOMETRY ) : SUCCESS
-Xcos debug:   propertyUpdated( 48 , BLOCK , EXPRS ) : SUCCESS
-Xcos trace:   propertyUpdated( 48 , BLOCK , STATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 48 , BLOCK , DSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 48 , BLOCK , ODSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 48 , BLOCK , RPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 48 , BLOCK , OPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 48 , BLOCK , EQUATIONS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 48 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 48 , BLOCK , NZCROSS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 48 , BLOCK , NMODE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 48 , BLOCK , IPAR ) : SUCCESS
-Xcos trace:   propertyUpdated( 48 , BLOCK , COLOR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 48 , BLOCK , CONTEXT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 48 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 48 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 48 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos info:    objectCreated( 49 , PORT )
-Xcos info:    objectCloned( 37 , 49 , PORT )
-Xcos trace:   propertyUpdated( 49 , PORT , FIRING ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 49 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 49 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 49 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 49 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 49 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 49 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 49 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 49 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 48 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 48 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 48 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 49 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 48 , BLOCK , CHILDREN ) : NO_CHANGES
-Xcos info:    objectCreated( 50 , BLOCK )
-Xcos info:    objectCloned( 38 , 50 , BLOCK )
-Xcos debug:   propertyUpdated( 50 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
-Xcos trace:   propertyUpdated( 50 , BLOCK , DESCRIPTION ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 50 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-Xcos debug:   propertyUpdated( 50 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-Xcos debug:   propertyUpdated( 50 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
-Xcos trace:   propertyUpdated( 50 , BLOCK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 50 , BLOCK , STYLE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 50 , BLOCK , GEOMETRY ) : SUCCESS
-Xcos debug:   propertyUpdated( 50 , BLOCK , EXPRS ) : SUCCESS
-Xcos trace:   propertyUpdated( 50 , BLOCK , STATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 50 , BLOCK , DSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 50 , BLOCK , ODSTATE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 50 , BLOCK , RPAR ) : SUCCESS
-Xcos trace:   propertyUpdated( 50 , BLOCK , OPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 50 , BLOCK , EQUATIONS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 50 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 50 , BLOCK , NZCROSS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 50 , BLOCK , NMODE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 50 , BLOCK , IPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 50 , BLOCK , COLOR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 50 , BLOCK , CONTEXT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 50 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 50 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 50 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 42 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 43 , BLOCK , CHILDREN ) : NO_CHANGES
+Xcos info:    objectCreated( 45 , BLOCK )
+Xcos info:    objectCloned( 30 , 45 , BLOCK )
+Xcos debug:   propertyUpdated( 45 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
+Xcos trace:   propertyUpdated( 45 , BLOCK , DESCRIPTION ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 45 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
+Xcos debug:   propertyUpdated( 45 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
+Xcos debug:   propertyUpdated( 45 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
+Xcos trace:   propertyUpdated( 45 , BLOCK , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 45 , BLOCK , STYLE ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 45 , BLOCK , GEOMETRY ) : SUCCESS
+Xcos debug:   propertyUpdated( 45 , BLOCK , EXPRS ) : SUCCESS
+Xcos trace:   propertyUpdated( 45 , BLOCK , STATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 45 , BLOCK , DSTATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 45 , BLOCK , ODSTATE ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 45 , BLOCK , RPAR ) : SUCCESS
+Xcos trace:   propertyUpdated( 45 , BLOCK , OPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 45 , BLOCK , EQUATIONS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 45 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 45 , BLOCK , NZCROSS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 45 , BLOCK , NMODE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 45 , BLOCK , IPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 45 , BLOCK , COLOR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 45 , BLOCK , CONTEXT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 45 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 45 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 45 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos info:    objectCreated( 46 , PORT )
+Xcos info:    objectCloned( 31 , 46 , PORT )
+Xcos trace:   propertyUpdated( 46 , PORT , FIRING ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 46 , PORT , PORT_KIND ) : SUCCESS
+Xcos trace:   propertyUpdated( 46 , PORT , IMPLICIT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 46 , PORT , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 46 , PORT , STYLE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 46 , PORT , LABEL ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 46 , PORT , DATATYPE ) : SUCCESS
+Xcos debug:   propertyUpdated( 46 , PORT , SOURCE_BLOCK ) : SUCCESS
+Xcos trace:   propertyUpdated( 46 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 45 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos info:    objectCreated( 47 , PORT )
+Xcos info:    objectCloned( 32 , 47 , PORT )
+Xcos debug:   propertyUpdated( 47 , PORT , FIRING ) : SUCCESS
+Xcos debug:   propertyUpdated( 47 , PORT , PORT_KIND ) : SUCCESS
+Xcos trace:   propertyUpdated( 47 , PORT , IMPLICIT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 47 , PORT , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 47 , PORT , STYLE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 47 , PORT , LABEL ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 47 , PORT , DATATYPE ) : SUCCESS
+Xcos debug:   propertyUpdated( 47 , PORT , SOURCE_BLOCK ) : SUCCESS
+Xcos trace:   propertyUpdated( 47 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 45 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos debug:   propertyUpdated( 45 , BLOCK , PARENT_BLOCK ) : SUCCESS
+Xcos trace:   propertyUpdated( 47 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 42 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 44 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 46 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 45 , BLOCK , CHILDREN ) : NO_CHANGES
+Xcos info:    objectCreated( 48 , LINK )
+Xcos info:    objectCloned( 33 , 48 , LINK )
+Xcos debug:   propertyUpdated( 48 , LINK , COLOR ) : SUCCESS
+Xcos debug:   propertyUpdated( 48 , LINK , KIND ) : SUCCESS
+Xcos trace:   propertyUpdated( 48 , LINK , DESCRIPTION ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 48 , LINK , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 48 , LINK , STYLE ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 48 , LINK , CONTROL_POINTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 48 , LINK , THICK ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 48 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 48 , LINK , PARENT_BLOCK ) : SUCCESS
+Xcos debug:   propertyUpdated( 48 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos trace:   propertyUpdated( 48 , LINK , DESTINATION_PORT ) : NO_CHANGES
+Xcos info:    objectCreated( 49 , BLOCK )
+Xcos info:    objectCloned( 34 , 49 , BLOCK )
+Xcos trace:   propertyUpdated( 49 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 49 , BLOCK , DESCRIPTION ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 49 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
+Xcos debug:   propertyUpdated( 49 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
+Xcos debug:   propertyUpdated( 49 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
+Xcos trace:   propertyUpdated( 49 , BLOCK , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 49 , BLOCK , STYLE ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 49 , BLOCK , GEOMETRY ) : SUCCESS
+Xcos trace:   propertyUpdated( 49 , BLOCK , EXPRS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 49 , BLOCK , STATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 49 , BLOCK , DSTATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 49 , BLOCK , ODSTATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 49 , BLOCK , RPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 49 , BLOCK , OPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 49 , BLOCK , EQUATIONS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 49 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 49 , BLOCK , NZCROSS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 49 , BLOCK , NMODE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 49 , BLOCK , IPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 49 , BLOCK , COLOR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 49 , BLOCK , CONTEXT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 49 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 49 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 49 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos info:    objectCreated( 50 , PORT )
+Xcos info:    objectCloned( 35 , 50 , PORT )
+Xcos trace:   propertyUpdated( 50 , PORT , FIRING ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 50 , PORT , PORT_KIND ) : SUCCESS
+Xcos trace:   propertyUpdated( 50 , PORT , IMPLICIT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 50 , PORT , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 50 , PORT , STYLE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 50 , PORT , LABEL ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 50 , PORT , DATATYPE ) : SUCCESS
+Xcos debug:   propertyUpdated( 50 , PORT , SOURCE_BLOCK ) : SUCCESS
+Xcos debug:   propertyUpdated( 50 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos debug:   propertyUpdated( 49 , BLOCK , EVENT_INPUTS ) : SUCCESS
 Xcos info:    objectCreated( 51 , PORT )
-Xcos info:    objectCloned( 39 , 51 , PORT )
+Xcos info:    objectCloned( 36 , 51 , PORT )
 Xcos trace:   propertyUpdated( 51 , PORT , FIRING ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 51 , PORT , PORT_KIND ) : SUCCESS
 Xcos trace:   propertyUpdated( 51 , PORT , IMPLICIT ) : NO_CHANGES
@@ -1290,10 +1437,9 @@ Xcos trace:   propertyUpdated( 51 , PORT , LABEL ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 51 , PORT , DATATYPE ) : SUCCESS
 Xcos debug:   propertyUpdated( 51 , PORT , SOURCE_BLOCK ) : SUCCESS
 Xcos trace:   propertyUpdated( 51 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 50 , BLOCK , EVENT_INPUTS ) : SUCCESS
 Xcos info:    objectCreated( 52 , PORT )
-Xcos info:    objectCloned( 40 , 52 , PORT )
-Xcos debug:   propertyUpdated( 52 , PORT , FIRING ) : SUCCESS
+Xcos info:    objectCloned( 37 , 52 , PORT )
+Xcos trace:   propertyUpdated( 52 , PORT , FIRING ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 52 , PORT , PORT_KIND ) : SUCCESS
 Xcos trace:   propertyUpdated( 52 , PORT , IMPLICIT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 52 , PORT , UID ) : NO_CHANGES
@@ -1302,13 +1448,20 @@ Xcos trace:   propertyUpdated( 52 , PORT , LABEL ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 52 , PORT , DATATYPE ) : SUCCESS
 Xcos debug:   propertyUpdated( 52 , PORT , SOURCE_BLOCK ) : SUCCESS
 Xcos trace:   propertyUpdated( 52 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 50 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 50 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 49 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos debug:   propertyUpdated( 49 , BLOCK , PARENT_BLOCK ) : SUCCESS
 Xcos trace:   propertyUpdated( 52 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 51 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 50 , BLOCK , CHILDREN ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 50 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 48 , LINK , SOURCE_PORT ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 48 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos debug:   propertyUpdated( 47 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos trace:   propertyUpdated( 42 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 44 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 46 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 49 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos info:    objectCreated( 53 , LINK )
-Xcos info:    objectCloned( 41 , 53 , LINK )
+Xcos info:    objectCloned( 38 , 53 , LINK )
 Xcos debug:   propertyUpdated( 53 , LINK , COLOR ) : SUCCESS
 Xcos debug:   propertyUpdated( 53 , LINK , KIND ) : SUCCESS
 Xcos trace:   propertyUpdated( 53 , LINK , DESCRIPTION ) : NO_CHANGES
@@ -1317,60 +1470,123 @@ Xcos trace:   propertyUpdated( 53 , LINK , STYLE ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 53 , LINK , CONTROL_POINTS ) : SUCCESS
 Xcos trace:   propertyUpdated( 53 , LINK , THICK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 53 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 53 , LINK , PARENT_BLOCK ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 53 , LINK , PARENT_BLOCK ) : SUCCESS
+Xcos debug:   propertyUpdated( 53 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos debug:   propertyUpdated( 53 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos info:    objectCreated( 54 , LINK )
+Xcos info:    objectCloned( 39 , 54 , LINK )
+Xcos debug:   propertyUpdated( 54 , LINK , COLOR ) : SUCCESS
+Xcos debug:   propertyUpdated( 54 , LINK , KIND ) : SUCCESS
+Xcos trace:   propertyUpdated( 54 , LINK , DESCRIPTION ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 54 , LINK , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 54 , LINK , STYLE ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 54 , LINK , CONTROL_POINTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 54 , LINK , THICK ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 54 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 54 , LINK , PARENT_BLOCK ) : SUCCESS
+Xcos debug:   propertyUpdated( 54 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos debug:   propertyUpdated( 54 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos trace:   propertyUpdated( 54 , LINK , SOURCE_PORT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 54 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 53 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 53 , LINK , DESTINATION_PORT ) : NO_CHANGES
-Xcos info:    objectCreated( 54 , BLOCK )
-Xcos info:    objectCloned( 42 , 54 , BLOCK )
-Xcos trace:   propertyUpdated( 54 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 54 , BLOCK , DESCRIPTION ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 54 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-Xcos debug:   propertyUpdated( 54 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-Xcos debug:   propertyUpdated( 54 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
-Xcos trace:   propertyUpdated( 54 , BLOCK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 54 , BLOCK , STYLE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 54 , BLOCK , GEOMETRY ) : SUCCESS
-Xcos trace:   propertyUpdated( 54 , BLOCK , EXPRS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 54 , BLOCK , STATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 54 , BLOCK , DSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 54 , BLOCK , ODSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 54 , BLOCK , RPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 54 , BLOCK , OPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 54 , BLOCK , EQUATIONS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 54 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 54 , BLOCK , NZCROSS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 54 , BLOCK , NMODE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 54 , BLOCK , IPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 54 , BLOCK , COLOR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 54 , BLOCK , CONTEXT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 54 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 54 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 54 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos info:    objectCreated( 55 , PORT )
-Xcos info:    objectCloned( 43 , 55 , PORT )
-Xcos trace:   propertyUpdated( 55 , PORT , FIRING ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 55 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 55 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 55 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 55 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 55 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 55 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 55 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 55 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 54 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos info:    objectCreated( 56 , PORT )
-Xcos info:    objectCloned( 44 , 56 , PORT )
-Xcos trace:   propertyUpdated( 56 , PORT , FIRING ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 56 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 56 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 56 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 56 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 56 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 56 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 56 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 56 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 52 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos debug:   propertyUpdated( 51 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos trace:   propertyUpdated( 50 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 48 , LINK , SOURCE_PORT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 48 , LINK , DESTINATION_PORT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 47 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 42 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 44 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos debug:   propertyUpdated( 46 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos debug:   propertyUpdated( 41 , BLOCK , CHILDREN ) : SUCCESS
+Xcos trace:   objectReferenced( 41 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 41 , BLOCK ) : 2
+Xcos debug:   propertyUpdated( 41 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+Xcos trace:   propertyUpdated( 41 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
+Xcos trace:   objectUnreferenced( 41 , BLOCK ) : 1
+Xcos debug:   propertyUpdated( 40 , DIAGRAM , CHILDREN ) : SUCCESS
+Xcos trace:   objectUnreferenced( 41 , BLOCK ) : 0
+assert_checkequal(d.objs(1).model.rpar.objs(3).from, [2 1 0]);
+Xcos trace:   objectReferenced( 41 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 41 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 41 , BLOCK ) : 3
+Xcos trace:   objectUnreferenced( 41 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 41 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 43 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 45 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 48 , LINK ) : 1
+Xcos trace:   objectReferenced( 49 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 53 , LINK ) : 1
+Xcos trace:   objectReferenced( 54 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 41 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 43 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 45 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 53 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 54 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 48 , LINK ) : 0
+assert_checkequal(d.objs(1).model.rpar.objs(3).to,   [4 1 1]);
+Xcos trace:   objectReferenced( 41 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 41 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 41 , BLOCK ) : 3
+Xcos trace:   objectUnreferenced( 41 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 41 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 43 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 45 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 48 , LINK ) : 1
+Xcos trace:   objectReferenced( 49 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 53 , LINK ) : 1
+Xcos trace:   objectReferenced( 54 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 41 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 43 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 45 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 53 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 54 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 48 , LINK ) : 0
+dClone = d;
+dClone.props.tol(6) = d.props.tol(6); // COW: effectively cloning
+Xcos trace:   objectReferenced( 40 , DIAGRAM ) : 1
+Xcos trace:   objectUnreferenced( 40 , DIAGRAM ) : 0
+Xcos info:    objectCreated( 55 , DIAGRAM )
+Xcos info:    objectCloned( 40 , 55 , DIAGRAM )
+Xcos trace:   propertyUpdated( 55 , DIAGRAM , DEBUG_LEVEL ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 55 , DIAGRAM , TITLE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 55 , DIAGRAM , PATH ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 55 , DIAGRAM , VERSION_NUMBER ) : SUCCESS
+Xcos trace:   propertyUpdated( 55 , DIAGRAM , PROPERTIES ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 55 , DIAGRAM , COLOR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 55 , DIAGRAM , CONTEXT ) : NO_CHANGES
+Xcos info:    objectCreated( 56 , BLOCK )
+Xcos info:    objectCloned( 41 , 56 , BLOCK )
+Xcos trace:   propertyUpdated( 56 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 56 , BLOCK , DESCRIPTION ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 56 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
+Xcos debug:   propertyUpdated( 56 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
+Xcos debug:   propertyUpdated( 56 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
+Xcos trace:   propertyUpdated( 56 , BLOCK , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 56 , BLOCK , STYLE ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 56 , BLOCK , GEOMETRY ) : SUCCESS
+Xcos trace:   propertyUpdated( 56 , BLOCK , EXPRS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 56 , BLOCK , STATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 56 , BLOCK , DSTATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 56 , BLOCK , ODSTATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 56 , BLOCK , RPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 56 , BLOCK , OPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 56 , BLOCK , EQUATIONS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 56 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 56 , BLOCK , NZCROSS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 56 , BLOCK , NMODE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 56 , BLOCK , IPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 56 , BLOCK , COLOR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 56 , BLOCK , CONTEXT ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 56 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+Xcos trace:   propertyUpdated( 56 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 56 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 56 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
 Xcos info:    objectCreated( 57 , PORT )
-Xcos info:    objectCloned( 45 , 57 , PORT )
+Xcos info:    objectCloned( 42 , 57 , PORT )
 Xcos trace:   propertyUpdated( 57 , PORT , FIRING ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 57 , PORT , PORT_KIND ) : SUCCESS
 Xcos trace:   propertyUpdated( 57 , PORT , IMPLICIT ) : NO_CHANGES
@@ -1380,376 +1596,123 @@ Xcos trace:   propertyUpdated( 57 , PORT , LABEL ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 57 , PORT , DATATYPE ) : SUCCESS
 Xcos debug:   propertyUpdated( 57 , PORT , SOURCE_BLOCK ) : SUCCESS
 Xcos trace:   propertyUpdated( 57 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 54 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 54 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 56 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 56 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
+Xcos info:    objectCreated( 58 , BLOCK )
+Xcos info:    objectCloned( 43 , 58 , BLOCK )
+Xcos trace:   propertyUpdated( 58 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 58 , BLOCK , DESCRIPTION ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 58 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
+Xcos debug:   propertyUpdated( 58 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
+Xcos debug:   propertyUpdated( 58 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
+Xcos trace:   propertyUpdated( 58 , BLOCK , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 58 , BLOCK , STYLE ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 58 , BLOCK , GEOMETRY ) : SUCCESS
+Xcos debug:   propertyUpdated( 58 , BLOCK , EXPRS ) : SUCCESS
+Xcos trace:   propertyUpdated( 58 , BLOCK , STATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 58 , BLOCK , DSTATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 58 , BLOCK , ODSTATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 58 , BLOCK , RPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 58 , BLOCK , OPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 58 , BLOCK , EQUATIONS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 58 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 58 , BLOCK , NZCROSS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 58 , BLOCK , NMODE ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 58 , BLOCK , IPAR ) : SUCCESS
+Xcos trace:   propertyUpdated( 58 , BLOCK , COLOR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 58 , BLOCK , CONTEXT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 58 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 58 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 58 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos info:    objectCreated( 59 , PORT )
+Xcos info:    objectCloned( 44 , 59 , PORT )
+Xcos trace:   propertyUpdated( 59 , PORT , FIRING ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 59 , PORT , PORT_KIND ) : SUCCESS
+Xcos trace:   propertyUpdated( 59 , PORT , IMPLICIT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 59 , PORT , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 59 , PORT , STYLE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 59 , PORT , LABEL ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 59 , PORT , DATATYPE ) : SUCCESS
+Xcos debug:   propertyUpdated( 59 , PORT , SOURCE_BLOCK ) : SUCCESS
+Xcos trace:   propertyUpdated( 59 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 58 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 58 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 58 , BLOCK , PARENT_BLOCK ) : SUCCESS
+Xcos trace:   propertyUpdated( 59 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 57 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 56 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 55 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 54 , BLOCK , CHILDREN ) : NO_CHANGES
-Xcos info:    objectCreated( 58 , LINK )
-Xcos info:    objectCloned( 46 , 58 , LINK )
-Xcos debug:   propertyUpdated( 58 , LINK , COLOR ) : SUCCESS
-Xcos debug:   propertyUpdated( 58 , LINK , KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 58 , LINK , DESCRIPTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 58 , LINK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 58 , LINK , STYLE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 58 , LINK , CONTROL_POINTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 58 , LINK , THICK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 58 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 58 , LINK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 58 , LINK , SOURCE_PORT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 58 , LINK , DESTINATION_PORT ) : NO_CHANGES
-Xcos info:    objectCreated( 59 , LINK )
-Xcos info:    objectCloned( 47 , 59 , LINK )
-Xcos debug:   propertyUpdated( 59 , LINK , COLOR ) : SUCCESS
-Xcos debug:   propertyUpdated( 59 , LINK , KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 59 , LINK , DESCRIPTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 59 , LINK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 59 , LINK , STYLE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 59 , LINK , CONTROL_POINTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 59 , LINK , THICK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 59 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 59 , LINK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 59 , LINK , SOURCE_PORT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 59 , LINK , DESTINATION_PORT ) : NO_CHANGES
-Xcos trace:   objectReferenced( 48 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 50 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 53 , LINK ) : 1
-Xcos trace:   objectReferenced( 54 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 58 , LINK ) : 1
-Xcos trace:   objectReferenced( 59 , LINK ) : 1
-Xcos trace:   objectReferenced( 48 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 36 , BLOCK ) : 0
-Xcos debug:   propertyUpdated( 48 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   propertyUpdated( 48 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   objectReferenced( 50 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 38 , BLOCK ) : 0
-Xcos debug:   propertyUpdated( 50 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   propertyUpdated( 50 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   objectReferenced( 53 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 41 , LINK ) : 0
-Xcos debug:   propertyUpdated( 53 , LINK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   propertyUpdated( 53 , LINK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   objectReferenced( 54 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 42 , BLOCK ) : 0
-Xcos debug:   propertyUpdated( 54 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   propertyUpdated( 54 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   objectReferenced( 58 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 46 , LINK ) : 0
-Xcos debug:   propertyUpdated( 58 , LINK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   propertyUpdated( 58 , LINK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   objectReferenced( 59 , LINK ) : 2
-Xcos debug:   propertyUpdated( 59 , LINK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   propertyUpdated( 59 , LINK , PARENT_BLOCK ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 52 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos debug:   propertyUpdated( 53 , LINK , SOURCE_PORT ) : SUCCESS
-Xcos debug:   propertyUpdated( 55 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos debug:   propertyUpdated( 53 , LINK , DESTINATION_PORT ) : SUCCESS
-Xcos debug:   propertyUpdated( 56 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos debug:   propertyUpdated( 58 , LINK , SOURCE_PORT ) : SUCCESS
-Xcos debug:   propertyUpdated( 49 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos debug:   propertyUpdated( 58 , LINK , DESTINATION_PORT ) : SUCCESS
-Xcos debug:   propertyUpdated( 57 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos debug:   propertyUpdated( 59 , LINK , SOURCE_PORT ) : SUCCESS
-Xcos debug:   propertyUpdated( 51 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos debug:   propertyUpdated( 59 , LINK , DESTINATION_PORT ) : SUCCESS
-Xcos trace:   objectUnreferenced( 48 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 50 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 53 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 54 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 58 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 59 , LINK ) : 1
-Xcos debug:   propertyUpdated( 10 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 48 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 50 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 53 , LINK ) : 0
-Xcos trace:   objectUnreferenced( 54 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 58 , LINK ) : 0
-Xcos trace:   objectUnreferenced( 59 , LINK ) : 0
-Xcos trace:   propertyUpdated( 10 , DIAGRAM , CHILDREN ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 36 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 36 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 36 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 36 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 46 , LINK , DESTINATION_PORT ) : SUCCESS
-Xcos info:    objectDeleted( 37 , PORT )
-Xcos info:    objectDeleted( 36 , BLOCK )
-Xcos trace:   propertyUpdated( 10 , DIAGRAM , CHILDREN ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 38 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 38 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 38 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 38 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos info:    objectDeleted( 39 , PORT )
-Xcos trace:   propertyUpdated( 38 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 38 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 38 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 38 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos debug:   propertyUpdated( 41 , LINK , SOURCE_PORT ) : SUCCESS
-Xcos info:    objectDeleted( 40 , PORT )
-Xcos info:    objectDeleted( 38 , BLOCK )
-Xcos trace:   propertyUpdated( 10 , DIAGRAM , CHILDREN ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 43 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos info:    objectDeleted( 41 , LINK )
-Xcos trace:   propertyUpdated( 10 , DIAGRAM , CHILDREN ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 42 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 42 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 42 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 42 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos info:    objectDeleted( 43 , PORT )
-Xcos trace:   propertyUpdated( 42 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 42 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 42 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 42 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos debug:   propertyUpdated( 46 , LINK , SOURCE_PORT ) : SUCCESS
-Xcos info:    objectDeleted( 44 , PORT )
-Xcos trace:   propertyUpdated( 42 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 42 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 42 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 42 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos info:    objectDeleted( 45 , PORT )
-Xcos info:    objectDeleted( 42 , BLOCK )
-Xcos trace:   propertyUpdated( 10 , DIAGRAM , CHILDREN ) : NO_CHANGES
-Xcos info:    objectDeleted( 46 , LINK )
-Xcos info:    objectDeleted( 47 , LINK )
+Xcos trace:   propertyUpdated( 58 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos info:    objectCreated( 60 , BLOCK )
-Xcos trace:   objectReferenced( 60 , BLOCK ) : 1
-Xcos trace:   propertyUpdated( 60 , BLOCK , GEOMETRY ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , GEOMETRY ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , EXPRS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , DESCRIPTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , STYLE ) : NO_CHANGES
-Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 0
-Xcos trace:   objectReferenced( 60 , BLOCK ) : 1
-Xcos trace:   propertyUpdated( 60 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , STATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , DSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , ODSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , RPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , IPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , OPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+Xcos info:    objectCloned( 45 , 60 , BLOCK )
+Xcos debug:   propertyUpdated( 60 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
 Xcos trace:   propertyUpdated( 60 , BLOCK , DESCRIPTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , NZCROSS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , NMODE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , EQUATIONS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , UID ) : NO_CHANGES
-Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 0
-Xcos trace:   propertyUpdated( 60 , BLOCK , INTERFACE_FUNCTION ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 60 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-Xcos trace:   objectReferenced( 60 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 0
-Xcos trace:   objectReferenced( 60 , BLOCK ) : 1
-Xcos trace:   propertyUpdated( 60 , BLOCK , GEOMETRY ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 60 , BLOCK , GEOMETRY ) : SUCCESS
-Xcos trace:   propertyUpdated( 60 , BLOCK , EXPRS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , DESCRIPTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , STYLE ) : NO_CHANGES
-Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 0
-Xcos trace:   objectReferenced( 60 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 0
-Xcos trace:   objectReferenced( 60 , BLOCK ) : 1
-Xcos trace:   propertyUpdated( 60 , BLOCK , GEOMETRY ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , GEOMETRY ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , EXPRS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , DESCRIPTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , STYLE ) : NO_CHANGES
-Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 0
-Xcos trace:   objectReferenced( 60 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 0
-Xcos trace:   objectReferenced( 60 , BLOCK ) : 1
-Xcos trace:   propertyUpdated( 60 , BLOCK , GEOMETRY ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , GEOMETRY ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , EXPRS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-Xcos info:    objectCreated( 61 , PORT )
-Xcos debug:   propertyUpdated( 61 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos debug:   propertyUpdated( 61 , PORT , PORT_KIND ) : SUCCESS
-Xcos debug:   propertyUpdated( 60 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 60 , BLOCK , DESCRIPTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , STYLE ) : NO_CHANGES
-Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 0
-Xcos trace:   objectReferenced( 60 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 0
-Xcos trace:   objectReferenced( 60 , BLOCK ) : 1
 Xcos debug:   propertyUpdated( 60 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-Xcos trace:   propertyUpdated( 60 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 61 , PORT , DATATYPE ) : SUCCESS
-Xcos trace:   propertyUpdated( 60 , BLOCK , STATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , DSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , ODSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , RPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , IPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , OPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 61 , PORT , FIRING ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , DESCRIPTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , NZCROSS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , NMODE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , EQUATIONS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , UID ) : NO_CHANGES
-Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 0
-Xcos trace:   objectReferenced( 60 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 0
-Xcos trace:   objectReferenced( 60 , BLOCK ) : 1
-Xcos trace:   propertyUpdated( 60 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 61 , PORT , DATATYPE ) : SUCCESS
-Xcos trace:   propertyUpdated( 60 , BLOCK , STATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , DSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , ODSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , RPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , IPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , OPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 61 , PORT , FIRING ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , DESCRIPTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , NZCROSS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , NMODE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , EQUATIONS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , UID ) : NO_CHANGES
-Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 0
-Xcos trace:   objectReferenced( 60 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 0
-Xcos trace:   objectReferenced( 60 , BLOCK ) : 1
-Xcos trace:   propertyUpdated( 60 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 61 , PORT , DATATYPE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , STATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , DSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , ODSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , RPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , IPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , OPAR ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 60 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
-Xcos trace:   propertyUpdated( 61 , PORT , FIRING ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , DESCRIPTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , NZCROSS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , NMODE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , EQUATIONS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 60 , BLOCK , UID ) : NO_CHANGES
-Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 0
-Xcos trace:   objectReferenced( 60 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 0
-Xcos trace:   objectReferenced( 60 , BLOCK ) : 1
-Xcos trace:   propertyUpdated( 60 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 61 , PORT , DATATYPE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 60 , BLOCK , STYLE ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 60 , BLOCK , GEOMETRY ) : SUCCESS
+Xcos debug:   propertyUpdated( 60 , BLOCK , EXPRS ) : SUCCESS
 Xcos trace:   propertyUpdated( 60 , BLOCK , STATE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 60 , BLOCK , DSTATE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 60 , BLOCK , ODSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , RPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , IPAR ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 60 , BLOCK , RPAR ) : SUCCESS
 Xcos trace:   propertyUpdated( 60 , BLOCK , OPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 61 , PORT , FIRING ) : FAIL
+Xcos trace:   propertyUpdated( 60 , BLOCK , EQUATIONS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 60 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , DESCRIPTION ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 60 , BLOCK , NZCROSS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 60 , BLOCK , NMODE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , EQUATIONS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , UID ) : NO_CHANGES
-Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 0
-Xcos trace:   objectReferenced( 60 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 0
-Xcos trace:   objectReferenced( 60 , BLOCK ) : 1
-Xcos trace:   propertyUpdated( 60 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 61 , PORT , DATATYPE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , STATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , DSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , ODSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , RPAR ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 60 , BLOCK , IPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , OPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 60 , BLOCK , COLOR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 60 , BLOCK , CONTEXT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 60 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 60 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 60 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos info:    objectCreated( 61 , PORT )
+Xcos info:    objectCloned( 46 , 61 , PORT )
 Xcos trace:   propertyUpdated( 61 , PORT , FIRING ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , DESCRIPTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , NZCROSS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , NMODE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , EQUATIONS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , UID ) : NO_CHANGES
-Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 0
-Xcos trace:   objectReferenced( 60 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 0
-Xcos trace:   objectReferenced( 60 , BLOCK ) : 1
-Xcos trace:   propertyUpdated( 60 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 61 , PORT , DATATYPE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , STATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , DSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , ODSTATE ) : NO_CHANGES
-Xcos trace:   objectReferenced( 60 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 48 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 50 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 53 , LINK ) : 1
-Xcos trace:   objectReferenced( 54 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 58 , LINK ) : 1
-Xcos trace:   objectReferenced( 59 , LINK ) : 1
-Xcos info:    objectCreated( 62 , BLOCK )
-Xcos info:    objectCloned( 48 , 62 , BLOCK )
-Xcos trace:   propertyUpdated( 62 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 62 , BLOCK , DESCRIPTION ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 62 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-Xcos debug:   propertyUpdated( 62 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-Xcos debug:   propertyUpdated( 62 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
-Xcos trace:   propertyUpdated( 62 , BLOCK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 62 , BLOCK , STYLE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 62 , BLOCK , GEOMETRY ) : SUCCESS
-Xcos debug:   propertyUpdated( 62 , BLOCK , EXPRS ) : SUCCESS
-Xcos trace:   propertyUpdated( 62 , BLOCK , STATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 62 , BLOCK , DSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 62 , BLOCK , ODSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 62 , BLOCK , RPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 62 , BLOCK , OPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 62 , BLOCK , EQUATIONS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 62 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 62 , BLOCK , NZCROSS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 62 , BLOCK , NMODE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 62 , BLOCK , IPAR ) : SUCCESS
-Xcos trace:   propertyUpdated( 62 , BLOCK , COLOR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 62 , BLOCK , CONTEXT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 62 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 62 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 62 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos info:    objectCreated( 63 , PORT )
-Xcos info:    objectCloned( 49 , 63 , PORT )
-Xcos trace:   propertyUpdated( 63 , PORT , FIRING ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 63 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 63 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 63 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 63 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 63 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 63 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 63 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 63 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 62 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 62 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 62 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 63 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 62 , BLOCK , CHILDREN ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 61 , PORT , PORT_KIND ) : SUCCESS
+Xcos trace:   propertyUpdated( 61 , PORT , IMPLICIT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 61 , PORT , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 61 , PORT , STYLE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 61 , PORT , LABEL ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 61 , PORT , DATATYPE ) : SUCCESS
+Xcos debug:   propertyUpdated( 61 , PORT , SOURCE_BLOCK ) : SUCCESS
+Xcos trace:   propertyUpdated( 61 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 60 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos info:    objectCreated( 62 , PORT )
+Xcos info:    objectCloned( 47 , 62 , PORT )
+Xcos debug:   propertyUpdated( 62 , PORT , FIRING ) : SUCCESS
+Xcos debug:   propertyUpdated( 62 , PORT , PORT_KIND ) : SUCCESS
+Xcos trace:   propertyUpdated( 62 , PORT , IMPLICIT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 62 , PORT , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 62 , PORT , STYLE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 62 , PORT , LABEL ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 62 , PORT , DATATYPE ) : SUCCESS
+Xcos debug:   propertyUpdated( 62 , PORT , SOURCE_BLOCK ) : SUCCESS
+Xcos trace:   propertyUpdated( 62 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 60 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos debug:   propertyUpdated( 60 , BLOCK , PARENT_BLOCK ) : SUCCESS
+Xcos trace:   propertyUpdated( 62 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 61 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 57 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 59 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 60 , BLOCK , CHILDREN ) : NO_CHANGES
+Xcos info:    objectCreated( 63 , LINK )
+Xcos info:    objectCloned( 48 , 63 , LINK )
+Xcos debug:   propertyUpdated( 63 , LINK , COLOR ) : SUCCESS
+Xcos debug:   propertyUpdated( 63 , LINK , KIND ) : SUCCESS
+Xcos trace:   propertyUpdated( 63 , LINK , DESCRIPTION ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 63 , LINK , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 63 , LINK , STYLE ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 63 , LINK , CONTROL_POINTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 63 , LINK , THICK ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 63 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 63 , LINK , PARENT_BLOCK ) : SUCCESS
+Xcos debug:   propertyUpdated( 63 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos trace:   propertyUpdated( 63 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos info:    objectCreated( 64 , BLOCK )
-Xcos info:    objectCloned( 50 , 64 , BLOCK )
-Xcos debug:   propertyUpdated( 64 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
+Xcos info:    objectCloned( 49 , 64 , BLOCK )
+Xcos trace:   propertyUpdated( 64 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 64 , BLOCK , DESCRIPTION ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 64 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
 Xcos debug:   propertyUpdated( 64 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
@@ -1757,11 +1720,11 @@ Xcos debug:   propertyUpdated( 64 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
 Xcos trace:   propertyUpdated( 64 , BLOCK , UID ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 64 , BLOCK , STYLE ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 64 , BLOCK , GEOMETRY ) : SUCCESS
-Xcos debug:   propertyUpdated( 64 , BLOCK , EXPRS ) : SUCCESS
+Xcos trace:   propertyUpdated( 64 , BLOCK , EXPRS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 64 , BLOCK , STATE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 64 , BLOCK , DSTATE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 64 , BLOCK , ODSTATE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 64 , BLOCK , RPAR ) : SUCCESS
+Xcos trace:   propertyUpdated( 64 , BLOCK , RPAR ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 64 , BLOCK , OPAR ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 64 , BLOCK , EQUATIONS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 64 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
@@ -1774,7 +1737,7 @@ Xcos trace:   propertyUpdated( 64 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 64 , BLOCK , INPUTS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 64 , BLOCK , OUTPUTS ) : NO_CHANGES
 Xcos info:    objectCreated( 65 , PORT )
-Xcos info:    objectCloned( 51 , 65 , PORT )
+Xcos info:    objectCloned( 50 , 65 , PORT )
 Xcos trace:   propertyUpdated( 65 , PORT , FIRING ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 65 , PORT , PORT_KIND ) : SUCCESS
 Xcos trace:   propertyUpdated( 65 , PORT , IMPLICIT ) : NO_CHANGES
@@ -1783,11 +1746,11 @@ Xcos trace:   propertyUpdated( 65 , PORT , STYLE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 65 , PORT , LABEL ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 65 , PORT , DATATYPE ) : SUCCESS
 Xcos debug:   propertyUpdated( 65 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 65 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 65 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 64 , BLOCK , EVENT_INPUTS ) : SUCCESS
 Xcos info:    objectCreated( 66 , PORT )
-Xcos info:    objectCloned( 52 , 66 , PORT )
-Xcos debug:   propertyUpdated( 66 , PORT , FIRING ) : SUCCESS
+Xcos info:    objectCloned( 51 , 66 , PORT )
+Xcos trace:   propertyUpdated( 66 , PORT , FIRING ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 66 , PORT , PORT_KIND ) : SUCCESS
 Xcos trace:   propertyUpdated( 66 , PORT , IMPLICIT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 66 , PORT , UID ) : NO_CHANGES
@@ -1796,1095 +1759,295 @@ Xcos trace:   propertyUpdated( 66 , PORT , LABEL ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 66 , PORT , DATATYPE ) : SUCCESS
 Xcos debug:   propertyUpdated( 66 , PORT , SOURCE_BLOCK ) : SUCCESS
 Xcos trace:   propertyUpdated( 66 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos info:    objectCreated( 67 , PORT )
+Xcos info:    objectCloned( 52 , 67 , PORT )
+Xcos trace:   propertyUpdated( 67 , PORT , FIRING ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 67 , PORT , PORT_KIND ) : SUCCESS
+Xcos trace:   propertyUpdated( 67 , PORT , IMPLICIT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 67 , PORT , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 67 , PORT , STYLE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 67 , PORT , LABEL ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 67 , PORT , DATATYPE ) : SUCCESS
+Xcos debug:   propertyUpdated( 67 , PORT , SOURCE_BLOCK ) : SUCCESS
+Xcos trace:   propertyUpdated( 67 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 64 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 64 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 64 , BLOCK , PARENT_BLOCK ) : SUCCESS
+Xcos trace:   propertyUpdated( 67 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 66 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 65 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 63 , LINK , SOURCE_PORT ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 63 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos debug:   propertyUpdated( 62 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos trace:   propertyUpdated( 61 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 57 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 59 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 64 , BLOCK , CHILDREN ) : NO_CHANGES
-Xcos info:    objectCreated( 67 , LINK )
-Xcos info:    objectCloned( 53 , 67 , LINK )
-Xcos debug:   propertyUpdated( 67 , LINK , COLOR ) : SUCCESS
-Xcos debug:   propertyUpdated( 67 , LINK , KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 67 , LINK , DESCRIPTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 67 , LINK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 67 , LINK , STYLE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 67 , LINK , CONTROL_POINTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 67 , LINK , THICK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 67 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 67 , LINK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 67 , LINK , SOURCE_PORT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 67 , LINK , DESTINATION_PORT ) : NO_CHANGES
-Xcos info:    objectCreated( 68 , BLOCK )
-Xcos info:    objectCloned( 54 , 68 , BLOCK )
-Xcos trace:   propertyUpdated( 68 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 68 , BLOCK , DESCRIPTION ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 68 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-Xcos debug:   propertyUpdated( 68 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-Xcos debug:   propertyUpdated( 68 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
-Xcos trace:   propertyUpdated( 68 , BLOCK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 68 , BLOCK , STYLE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 68 , BLOCK , GEOMETRY ) : SUCCESS
-Xcos trace:   propertyUpdated( 68 , BLOCK , EXPRS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 68 , BLOCK , STATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 68 , BLOCK , DSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 68 , BLOCK , ODSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 68 , BLOCK , RPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 68 , BLOCK , OPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 68 , BLOCK , EQUATIONS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 68 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 68 , BLOCK , NZCROSS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 68 , BLOCK , NMODE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 68 , BLOCK , IPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 68 , BLOCK , COLOR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 68 , BLOCK , CONTEXT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 68 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 68 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 68 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos info:    objectCreated( 69 , PORT )
-Xcos info:    objectCloned( 55 , 69 , PORT )
-Xcos trace:   propertyUpdated( 69 , PORT , FIRING ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 69 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 69 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 69 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 69 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 69 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 69 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 69 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 69 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 68 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos info:    objectCreated( 70 , PORT )
-Xcos info:    objectCloned( 56 , 70 , PORT )
-Xcos trace:   propertyUpdated( 70 , PORT , FIRING ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 70 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 70 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 70 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 70 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 70 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 70 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 70 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 70 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos info:    objectCreated( 71 , PORT )
-Xcos info:    objectCloned( 57 , 71 , PORT )
-Xcos trace:   propertyUpdated( 71 , PORT , FIRING ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 71 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 71 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 71 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 71 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 71 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 71 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 71 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 71 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 68 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 68 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 70 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 71 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 69 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 68 , BLOCK , CHILDREN ) : NO_CHANGES
-Xcos info:    objectCreated( 72 , LINK )
-Xcos info:    objectCloned( 58 , 72 , LINK )
-Xcos debug:   propertyUpdated( 72 , LINK , COLOR ) : SUCCESS
-Xcos debug:   propertyUpdated( 72 , LINK , KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 72 , LINK , DESCRIPTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 72 , LINK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 72 , LINK , STYLE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 72 , LINK , CONTROL_POINTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 72 , LINK , THICK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 72 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 72 , LINK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 72 , LINK , SOURCE_PORT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 72 , LINK , DESTINATION_PORT ) : NO_CHANGES
-Xcos info:    objectCreated( 73 , LINK )
-Xcos info:    objectCloned( 59 , 73 , LINK )
-Xcos debug:   propertyUpdated( 73 , LINK , COLOR ) : SUCCESS
-Xcos debug:   propertyUpdated( 73 , LINK , KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 73 , LINK , DESCRIPTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 73 , LINK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 73 , LINK , STYLE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 73 , LINK , CONTROL_POINTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 73 , LINK , THICK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 73 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 73 , LINK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 73 , LINK , SOURCE_PORT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 73 , LINK , DESTINATION_PORT ) : NO_CHANGES
-Xcos trace:   objectReferenced( 62 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 64 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 67 , LINK ) : 1
-Xcos trace:   objectReferenced( 68 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 72 , LINK ) : 1
-Xcos trace:   objectReferenced( 73 , LINK ) : 1
-Xcos trace:   objectReferenced( 62 , BLOCK ) : 2
-Xcos trace:   propertyUpdated( 62 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 62 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 64 , BLOCK ) : 2
-Xcos trace:   propertyUpdated( 64 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 64 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 67 , LINK ) : 2
-Xcos trace:   propertyUpdated( 67 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 67 , LINK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 68 , BLOCK ) : 2
-Xcos trace:   propertyUpdated( 68 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 68 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 72 , LINK ) : 2
-Xcos trace:   propertyUpdated( 72 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 72 , LINK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 73 , LINK ) : 2
-Xcos trace:   propertyUpdated( 73 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 73 , LINK , PARENT_BLOCK ) : SUCCESS
+Xcos info:    objectCreated( 68 , LINK )
+Xcos info:    objectCloned( 53 , 68 , LINK )
+Xcos debug:   propertyUpdated( 68 , LINK , COLOR ) : SUCCESS
+Xcos debug:   propertyUpdated( 68 , LINK , KIND ) : SUCCESS
+Xcos trace:   propertyUpdated( 68 , LINK , DESCRIPTION ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 68 , LINK , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 68 , LINK , STYLE ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 68 , LINK , CONTROL_POINTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 68 , LINK , THICK ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 68 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 68 , LINK , PARENT_BLOCK ) : SUCCESS
+Xcos debug:   propertyUpdated( 68 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos debug:   propertyUpdated( 68 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos info:    objectCreated( 69 , LINK )
+Xcos info:    objectCloned( 54 , 69 , LINK )
+Xcos debug:   propertyUpdated( 69 , LINK , COLOR ) : SUCCESS
+Xcos debug:   propertyUpdated( 69 , LINK , KIND ) : SUCCESS
+Xcos trace:   propertyUpdated( 69 , LINK , DESCRIPTION ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 69 , LINK , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 69 , LINK , STYLE ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 69 , LINK , CONTROL_POINTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 69 , LINK , THICK ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 69 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 69 , LINK , PARENT_BLOCK ) : SUCCESS
+Xcos debug:   propertyUpdated( 69 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos debug:   propertyUpdated( 69 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos trace:   propertyUpdated( 69 , LINK , SOURCE_PORT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 69 , LINK , DESTINATION_PORT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 68 , LINK , SOURCE_PORT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 68 , LINK , DESTINATION_PORT ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 67 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 66 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos debug:   propertyUpdated( 67 , LINK , SOURCE_PORT ) : SUCCESS
-Xcos debug:   propertyUpdated( 69 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos debug:   propertyUpdated( 67 , LINK , DESTINATION_PORT ) : SUCCESS
-Xcos debug:   propertyUpdated( 70 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos debug:   propertyUpdated( 72 , LINK , SOURCE_PORT ) : SUCCESS
-Xcos debug:   propertyUpdated( 63 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos debug:   propertyUpdated( 72 , LINK , DESTINATION_PORT ) : SUCCESS
-Xcos debug:   propertyUpdated( 71 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos debug:   propertyUpdated( 73 , LINK , SOURCE_PORT ) : SUCCESS
-Xcos debug:   propertyUpdated( 65 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos debug:   propertyUpdated( 73 , LINK , DESTINATION_PORT ) : SUCCESS
-Xcos trace:   objectUnreferenced( 62 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 64 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 67 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 68 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 72 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 73 , LINK ) : 1
-Xcos debug:   propertyUpdated( 60 , BLOCK , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 62 , BLOCK ) : 0
+Xcos trace:   propertyUpdated( 65 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 63 , LINK , SOURCE_PORT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 63 , LINK , DESTINATION_PORT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 62 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 61 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos trace:   propertyUpdated( 57 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 59 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos debug:   propertyUpdated( 56 , BLOCK , CHILDREN ) : SUCCESS
+Xcos trace:   propertyUpdated( 69 , LINK , SOURCE_PORT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 69 , LINK , DESTINATION_PORT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 68 , LINK , SOURCE_PORT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 68 , LINK , DESTINATION_PORT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 67 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 66 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 65 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 63 , LINK , SOURCE_PORT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 63 , LINK , DESTINATION_PORT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 62 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 61 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 57 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 59 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 55 , DIAGRAM , CHILDREN ) : SUCCESS
+Xcos trace:   objectReferenced( 55 , DIAGRAM ) : 1
+Xcos trace:   objectUnreferenced( 55 , DIAGRAM ) : 0
+Xcos trace:   objectReferenced( 55 , DIAGRAM ) : 1
+Xcos trace:   propertyUpdated( 55 , DIAGRAM , TITLE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 55 , DIAGRAM , PATH ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 55 , DIAGRAM , PROPERTIES ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 55 , DIAGRAM , PROPERTIES ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 55 , DIAGRAM , CONTEXT ) : NO_CHANGES
+Xcos trace:   objectUnreferenced( 55 , DIAGRAM ) : 0
+assert_checkequal(dClone.objs(1).model.rpar.objs(3).from, [2 1 0]);
+Xcos trace:   objectReferenced( 56 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 56 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 56 , BLOCK ) : 3
+Xcos trace:   objectUnreferenced( 56 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 56 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 58 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 60 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 63 , LINK ) : 1
+Xcos trace:   objectReferenced( 64 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 68 , LINK ) : 1
+Xcos trace:   objectReferenced( 69 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 56 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 58 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 64 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 67 , LINK ) : 0
-Xcos trace:   objectUnreferenced( 68 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 72 , LINK ) : 0
-Xcos trace:   objectUnreferenced( 73 , LINK ) : 0
-Xcos trace:   objectUnreferenced( 48 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 50 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 53 , LINK ) : 0
-Xcos trace:   objectUnreferenced( 54 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 58 , LINK ) : 0
-Xcos trace:   objectUnreferenced( 59 , LINK ) : 0
-Xcos trace:   objectReferenced( 10 , DIAGRAM ) : 1
-Xcos trace:   objectUnreferenced( 10 , DIAGRAM ) : 0
-Xcos trace:   objectReferenced( 60 , BLOCK ) : 3
-Xcos debug:   propertyUpdated( 60 , BLOCK , DESCRIPTION ) : SUCCESS
-Xcos trace:   propertyUpdated( 60 , BLOCK , CONTEXT ) : NO_CHANGES
-Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 1
-Xcos trace:   propertyUpdated( 60 , BLOCK , IPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , OPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 61 , PORT , FIRING ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 60 , BLOCK , DESCRIPTION ) : SUCCESS
-Xcos trace:   propertyUpdated( 60 , BLOCK , NZCROSS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , NMODE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , EQUATIONS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 60 , BLOCK , UID ) : NO_CHANGES
+Xcos trace:   objectUnreferenced( 68 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 69 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 63 , LINK ) : 0
+assert_checkequal(dClone.objs(1).model.rpar.objs(3).to,   [4 1 1]);
+Xcos trace:   objectReferenced( 56 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 56 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 56 , BLOCK ) : 3
+Xcos trace:   objectUnreferenced( 56 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 56 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 58 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 60 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 63 , LINK ) : 1
+Xcos trace:   objectReferenced( 64 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 68 , LINK ) : 1
+Xcos trace:   objectReferenced( 69 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 56 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 58 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 0
-Xcos debug:   propertyUpdated( 48 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos debug:   propertyUpdated( 50 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos debug:   propertyUpdated( 53 , LINK , PARENT_DIAGRAM ) : SUCCESS
-Xcos debug:   propertyUpdated( 54 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos debug:   propertyUpdated( 58 , LINK , PARENT_DIAGRAM ) : SUCCESS
-Xcos debug:   propertyUpdated( 59 , LINK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   propertyUpdated( 48 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 48 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 48 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 48 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 58 , LINK , DESTINATION_PORT ) : SUCCESS
-Xcos info:    objectDeleted( 49 , PORT )
-Xcos info:    objectDeleted( 48 , BLOCK )
-Xcos trace:   propertyUpdated( 50 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 50 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 50 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 50 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 59 , LINK , DESTINATION_PORT ) : SUCCESS
-Xcos info:    objectDeleted( 51 , PORT )
-Xcos trace:   propertyUpdated( 50 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 50 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 50 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 50 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos trace:   objectUnreferenced( 64 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 68 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 69 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 63 , LINK ) : 0
+// Check that all the model items are freed
+clear
+Xcos debug:   propertyUpdated( 41 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+Xcos trace:   propertyUpdated( 41 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 41 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 41 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 41 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos info:    objectDeleted( 42 , PORT )
+Xcos debug:   propertyUpdated( 41 , BLOCK , CHILDREN ) : SUCCESS
+Xcos trace:   propertyUpdated( 43 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 43 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 43 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 43 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 53 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 44 , PORT )
+Xcos info:    objectDeleted( 43 , BLOCK )
+Xcos debug:   propertyUpdated( 41 , BLOCK , CHILDREN ) : SUCCESS
+Xcos trace:   propertyUpdated( 45 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 45 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 45 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 45 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 54 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 46 , PORT )
+Xcos trace:   propertyUpdated( 45 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 45 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 45 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 45 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos debug:   propertyUpdated( 48 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 47 , PORT )
+Xcos info:    objectDeleted( 45 , BLOCK )
+Xcos debug:   propertyUpdated( 41 , BLOCK , CHILDREN ) : SUCCESS
+Xcos debug:   propertyUpdated( 50 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos info:    objectDeleted( 48 , LINK )
+Xcos debug:   propertyUpdated( 41 , BLOCK , CHILDREN ) : SUCCESS
+Xcos trace:   propertyUpdated( 49 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 49 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 49 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 49 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 50 , PORT )
+Xcos trace:   propertyUpdated( 49 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 49 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 49 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 49 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
 Xcos debug:   propertyUpdated( 53 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 51 , PORT )
+Xcos trace:   propertyUpdated( 49 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 49 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 49 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 49 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos debug:   propertyUpdated( 54 , LINK , SOURCE_PORT ) : SUCCESS
 Xcos info:    objectDeleted( 52 , PORT )
-Xcos info:    objectDeleted( 50 , BLOCK )
-Xcos debug:   propertyUpdated( 55 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos info:    objectDeleted( 49 , BLOCK )
+Xcos debug:   propertyUpdated( 41 , BLOCK , CHILDREN ) : SUCCESS
 Xcos info:    objectDeleted( 53 , LINK )
-Xcos trace:   propertyUpdated( 54 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 54 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 54 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 54 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos info:    objectDeleted( 55 , PORT )
-Xcos trace:   propertyUpdated( 54 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 54 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 54 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 54 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos debug:   propertyUpdated( 58 , LINK , SOURCE_PORT ) : SUCCESS
-Xcos info:    objectDeleted( 56 , PORT )
-Xcos trace:   propertyUpdated( 54 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 54 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 54 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 54 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos debug:   propertyUpdated( 59 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos debug:   propertyUpdated( 41 , BLOCK , CHILDREN ) : SUCCESS
+Xcos info:    objectDeleted( 54 , LINK )
+Xcos info:    objectDeleted( 41 , BLOCK )
+Xcos info:    objectDeleted( 40 , DIAGRAM )
+Xcos debug:   propertyUpdated( 56 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+Xcos trace:   propertyUpdated( 56 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 56 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 56 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 56 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
 Xcos info:    objectDeleted( 57 , PORT )
-Xcos info:    objectDeleted( 54 , BLOCK )
-Xcos info:    objectDeleted( 58 , LINK )
-Xcos info:    objectDeleted( 59 , LINK )
-Xcos info:    objectDeleted( 10 , DIAGRAM )
-Xcos trace:   propertyUpdated( 1 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 1 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 1 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 1 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos info:    objectDeleted( 2 , PORT )
-Xcos trace:   propertyUpdated( 1 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 1 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 1 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 1 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos info:    objectDeleted( 3 , PORT )
-Xcos info:    objectDeleted( 1 , BLOCK )
-Xcos trace:   propertyUpdated( 4 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 4 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 4 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 4 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos info:    objectDeleted( 5 , PORT )
-Xcos info:    objectDeleted( 4 , BLOCK )
-Xcos trace:   propertyUpdated( 6 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 6 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 6 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 6 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos info:    objectDeleted( 7 , PORT )
-Xcos trace:   propertyUpdated( 6 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 6 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 6 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 6 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos info:    objectDeleted( 8 , PORT )
-Xcos trace:   propertyUpdated( 6 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 6 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 6 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 6 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos info:    objectDeleted( 9 , PORT )
-Xcos info:    objectDeleted( 6 , BLOCK )
-d = scicos_diagram();
-Xcos info:    objectCreated( 74 , DIAGRAM )
-Xcos trace:   objectReferenced( 74 , DIAGRAM ) : 1
-Xcos trace:   propertyUpdated( 74 , DIAGRAM , TITLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 74 , DIAGRAM , PATH ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 74 , DIAGRAM , PROPERTIES ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 74 , DIAGRAM , PROPERTIES ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 74 , DIAGRAM , CONTEXT ) : NO_CHANGES
-Xcos trace:   objectUnreferenced( 74 , DIAGRAM ) : 0
-Xcos trace:   propertyUpdated( 74 , DIAGRAM , CHILDREN ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 74 , DIAGRAM , VERSION_NUMBER ) : SUCCESS
-d.objs(1) = o;
-Xcos info:    objectCreated( 75 , BLOCK )
-Xcos info:    objectCloned( 60 , 75 , BLOCK )
-Xcos trace:   propertyUpdated( 75 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 75 , BLOCK , DESCRIPTION ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 75 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-Xcos debug:   propertyUpdated( 75 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-Xcos debug:   propertyUpdated( 75 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
-Xcos trace:   propertyUpdated( 75 , BLOCK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 75 , BLOCK , STYLE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 75 , BLOCK , GEOMETRY ) : SUCCESS
-Xcos trace:   propertyUpdated( 75 , BLOCK , EXPRS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 75 , BLOCK , STATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 75 , BLOCK , DSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 75 , BLOCK , ODSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 75 , BLOCK , RPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 75 , BLOCK , OPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 75 , BLOCK , EQUATIONS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 75 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 75 , BLOCK , NZCROSS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 75 , BLOCK , NMODE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 75 , BLOCK , IPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 75 , BLOCK , COLOR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 75 , BLOCK , CONTEXT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 75 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 75 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 75 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 75 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-Xcos info:    objectCreated( 76 , PORT )
-Xcos info:    objectCloned( 61 , 76 , PORT )
-Xcos trace:   propertyUpdated( 76 , PORT , FIRING ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 76 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 76 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 76 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 76 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 76 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 76 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 76 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 76 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 75 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 75 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos info:    objectCreated( 77 , BLOCK )
-Xcos info:    objectCloned( 62 , 77 , BLOCK )
-Xcos trace:   propertyUpdated( 77 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 77 , BLOCK , DESCRIPTION ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 77 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-Xcos debug:   propertyUpdated( 77 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-Xcos debug:   propertyUpdated( 77 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
-Xcos trace:   propertyUpdated( 77 , BLOCK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 77 , BLOCK , STYLE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 77 , BLOCK , GEOMETRY ) : SUCCESS
-Xcos debug:   propertyUpdated( 77 , BLOCK , EXPRS ) : SUCCESS
-Xcos trace:   propertyUpdated( 77 , BLOCK , STATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 77 , BLOCK , DSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 77 , BLOCK , ODSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 77 , BLOCK , RPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 77 , BLOCK , OPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 77 , BLOCK , EQUATIONS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 77 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 77 , BLOCK , NZCROSS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 77 , BLOCK , NMODE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 77 , BLOCK , IPAR ) : SUCCESS
-Xcos trace:   propertyUpdated( 77 , BLOCK , COLOR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 77 , BLOCK , CONTEXT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 77 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 77 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 77 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos info:    objectCreated( 78 , PORT )
-Xcos info:    objectCloned( 63 , 78 , PORT )
-Xcos trace:   propertyUpdated( 78 , PORT , FIRING ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 78 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 78 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 78 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 78 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 78 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 78 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 78 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 78 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 77 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 77 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 77 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 78 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 76 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 77 , BLOCK , CHILDREN ) : NO_CHANGES
-Xcos info:    objectCreated( 79 , BLOCK )
-Xcos info:    objectCloned( 64 , 79 , BLOCK )
-Xcos debug:   propertyUpdated( 79 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
-Xcos trace:   propertyUpdated( 79 , BLOCK , DESCRIPTION ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 79 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-Xcos debug:   propertyUpdated( 79 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-Xcos debug:   propertyUpdated( 79 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
-Xcos trace:   propertyUpdated( 79 , BLOCK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 79 , BLOCK , STYLE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 79 , BLOCK , GEOMETRY ) : SUCCESS
-Xcos debug:   propertyUpdated( 79 , BLOCK , EXPRS ) : SUCCESS
-Xcos trace:   propertyUpdated( 79 , BLOCK , STATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 79 , BLOCK , DSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 79 , BLOCK , ODSTATE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 79 , BLOCK , RPAR ) : SUCCESS
-Xcos trace:   propertyUpdated( 79 , BLOCK , OPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 79 , BLOCK , EQUATIONS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 79 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 79 , BLOCK , NZCROSS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 79 , BLOCK , NMODE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 79 , BLOCK , IPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 79 , BLOCK , COLOR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 79 , BLOCK , CONTEXT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 79 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 79 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 79 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos info:    objectCreated( 80 , PORT )
-Xcos info:    objectCloned( 65 , 80 , PORT )
-Xcos trace:   propertyUpdated( 80 , PORT , FIRING ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 80 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 80 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 80 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 80 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 80 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 80 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 80 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 80 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 79 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos info:    objectCreated( 81 , PORT )
-Xcos info:    objectCloned( 66 , 81 , PORT )
-Xcos debug:   propertyUpdated( 81 , PORT , FIRING ) : SUCCESS
-Xcos debug:   propertyUpdated( 81 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 81 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 81 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 81 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 81 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 81 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 81 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 81 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 79 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos debug:   propertyUpdated( 79 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 81 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 76 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 78 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 80 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 79 , BLOCK , CHILDREN ) : NO_CHANGES
-Xcos info:    objectCreated( 82 , LINK )
-Xcos info:    objectCloned( 67 , 82 , LINK )
-Xcos debug:   propertyUpdated( 82 , LINK , COLOR ) : SUCCESS
-Xcos debug:   propertyUpdated( 82 , LINK , KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 82 , LINK , DESCRIPTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 82 , LINK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 82 , LINK , STYLE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 82 , LINK , CONTROL_POINTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 82 , LINK , THICK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 82 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 82 , LINK , PARENT_BLOCK ) : SUCCESS
-Xcos debug:   propertyUpdated( 82 , LINK , SOURCE_PORT ) : SUCCESS
-Xcos trace:   propertyUpdated( 82 , LINK , DESTINATION_PORT ) : NO_CHANGES
-Xcos info:    objectCreated( 83 , BLOCK )
-Xcos info:    objectCloned( 68 , 83 , BLOCK )
-Xcos trace:   propertyUpdated( 83 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 83 , BLOCK , DESCRIPTION ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 83 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-Xcos debug:   propertyUpdated( 83 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-Xcos debug:   propertyUpdated( 83 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
-Xcos trace:   propertyUpdated( 83 , BLOCK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 83 , BLOCK , STYLE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 83 , BLOCK , GEOMETRY ) : SUCCESS
-Xcos trace:   propertyUpdated( 83 , BLOCK , EXPRS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 83 , BLOCK , STATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 83 , BLOCK , DSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 83 , BLOCK , ODSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 83 , BLOCK , RPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 83 , BLOCK , OPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 83 , BLOCK , EQUATIONS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 83 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 83 , BLOCK , NZCROSS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 83 , BLOCK , NMODE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 83 , BLOCK , IPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 83 , BLOCK , COLOR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 83 , BLOCK , CONTEXT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 83 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 83 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 83 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos info:    objectCreated( 84 , PORT )
-Xcos info:    objectCloned( 69 , 84 , PORT )
-Xcos trace:   propertyUpdated( 84 , PORT , FIRING ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 84 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 84 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 84 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 84 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 84 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 84 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 84 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos debug:   propertyUpdated( 84 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos debug:   propertyUpdated( 83 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos info:    objectCreated( 85 , PORT )
-Xcos info:    objectCloned( 70 , 85 , PORT )
-Xcos trace:   propertyUpdated( 85 , PORT , FIRING ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 85 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 85 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 85 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 85 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 85 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 85 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 85 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 85 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos info:    objectCreated( 86 , PORT )
-Xcos info:    objectCloned( 71 , 86 , PORT )
-Xcos trace:   propertyUpdated( 86 , PORT , FIRING ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 86 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 86 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 86 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 86 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 86 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 86 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 86 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 86 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 83 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos debug:   propertyUpdated( 83 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 86 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 85 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 81 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos trace:   propertyUpdated( 76 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 84 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 78 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 82 , LINK , SOURCE_PORT ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 82 , LINK , DESTINATION_PORT ) : SUCCESS
-Xcos trace:   propertyUpdated( 80 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 83 , BLOCK , CHILDREN ) : NO_CHANGES
-Xcos info:    objectCreated( 87 , LINK )
-Xcos info:    objectCloned( 72 , 87 , LINK )
-Xcos debug:   propertyUpdated( 87 , LINK , COLOR ) : SUCCESS
-Xcos debug:   propertyUpdated( 87 , LINK , KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 87 , LINK , DESCRIPTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 87 , LINK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 87 , LINK , STYLE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 87 , LINK , CONTROL_POINTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 87 , LINK , THICK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 87 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 87 , LINK , PARENT_BLOCK ) : SUCCESS
-Xcos debug:   propertyUpdated( 87 , LINK , SOURCE_PORT ) : SUCCESS
-Xcos debug:   propertyUpdated( 87 , LINK , DESTINATION_PORT ) : SUCCESS
-Xcos info:    objectCreated( 88 , LINK )
-Xcos info:    objectCloned( 73 , 88 , LINK )
-Xcos debug:   propertyUpdated( 88 , LINK , COLOR ) : SUCCESS
-Xcos debug:   propertyUpdated( 88 , LINK , KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 88 , LINK , DESCRIPTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 88 , LINK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 88 , LINK , STYLE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 88 , LINK , CONTROL_POINTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 88 , LINK , THICK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 88 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 88 , LINK , PARENT_BLOCK ) : SUCCESS
-Xcos debug:   propertyUpdated( 88 , LINK , SOURCE_PORT ) : SUCCESS
-Xcos debug:   propertyUpdated( 88 , LINK , DESTINATION_PORT ) : SUCCESS
-Xcos debug:   propertyUpdated( 86 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos debug:   propertyUpdated( 85 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos trace:   propertyUpdated( 81 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 76 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 88 , LINK , SOURCE_PORT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 88 , LINK , DESTINATION_PORT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 84 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 78 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos trace:   propertyUpdated( 82 , LINK , SOURCE_PORT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 82 , LINK , DESTINATION_PORT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 87 , LINK , SOURCE_PORT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 87 , LINK , DESTINATION_PORT ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 80 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos debug:   propertyUpdated( 75 , BLOCK , CHILDREN ) : SUCCESS
-Xcos trace:   objectReferenced( 75 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 75 , BLOCK ) : 2
-Xcos debug:   propertyUpdated( 75 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   propertyUpdated( 75 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   objectUnreferenced( 75 , BLOCK ) : 1
-Xcos debug:   propertyUpdated( 74 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 75 , BLOCK ) : 0
-assert_checkequal(d.objs(1).model.rpar.objs(3).from, [2 1 0]);
-Xcos trace:   objectReferenced( 75 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 75 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 75 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 75 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 75 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 77 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 79 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 82 , LINK ) : 1
-Xcos trace:   objectReferenced( 83 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 87 , LINK ) : 1
-Xcos trace:   objectReferenced( 88 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 75 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 77 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 79 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 83 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 87 , LINK ) : 0
-Xcos trace:   objectUnreferenced( 88 , LINK ) : 0
-Xcos trace:   objectUnreferenced( 82 , LINK ) : 0
-assert_checkequal(d.objs(1).model.rpar.objs(3).to,   [4 1 1]);
-Xcos trace:   objectReferenced( 75 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 75 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 75 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 75 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 75 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 77 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 79 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 82 , LINK ) : 1
-Xcos trace:   objectReferenced( 83 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 87 , LINK ) : 1
-Xcos trace:   objectReferenced( 88 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 75 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 77 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 79 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 83 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 87 , LINK ) : 0
-Xcos trace:   objectUnreferenced( 88 , LINK ) : 0
-Xcos trace:   objectUnreferenced( 82 , LINK ) : 0
-dClone = d;
-dClone.props.tol(6) = d.props.tol(6); // COW: effectively cloning
-Xcos trace:   objectReferenced( 74 , DIAGRAM ) : 1
-Xcos trace:   objectUnreferenced( 74 , DIAGRAM ) : 0
-Xcos info:    objectCreated( 89 , DIAGRAM )
-Xcos info:    objectCloned( 74 , 89 , DIAGRAM )
-Xcos trace:   propertyUpdated( 89 , DIAGRAM , DEBUG_LEVEL ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 89 , DIAGRAM , TITLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 89 , DIAGRAM , PATH ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 89 , DIAGRAM , VERSION_NUMBER ) : SUCCESS
-Xcos trace:   propertyUpdated( 89 , DIAGRAM , PROPERTIES ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 89 , DIAGRAM , COLOR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 89 , DIAGRAM , CONTEXT ) : NO_CHANGES
-Xcos info:    objectCreated( 90 , BLOCK )
-Xcos info:    objectCloned( 75 , 90 , BLOCK )
-Xcos trace:   propertyUpdated( 90 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 90 , BLOCK , DESCRIPTION ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 90 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-Xcos debug:   propertyUpdated( 90 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-Xcos debug:   propertyUpdated( 90 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
-Xcos trace:   propertyUpdated( 90 , BLOCK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 90 , BLOCK , STYLE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 90 , BLOCK , GEOMETRY ) : SUCCESS
-Xcos trace:   propertyUpdated( 90 , BLOCK , EXPRS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 90 , BLOCK , STATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 90 , BLOCK , DSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 90 , BLOCK , ODSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 90 , BLOCK , RPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 90 , BLOCK , OPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 90 , BLOCK , EQUATIONS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 90 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 90 , BLOCK , NZCROSS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 90 , BLOCK , NMODE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 90 , BLOCK , IPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 90 , BLOCK , COLOR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 90 , BLOCK , CONTEXT ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 90 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   propertyUpdated( 90 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 90 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 90 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-Xcos info:    objectCreated( 91 , PORT )
-Xcos info:    objectCloned( 76 , 91 , PORT )
-Xcos trace:   propertyUpdated( 91 , PORT , FIRING ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 91 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 91 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 91 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 91 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 91 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 91 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 91 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 91 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 90 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 90 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos info:    objectCreated( 92 , BLOCK )
-Xcos info:    objectCloned( 77 , 92 , BLOCK )
-Xcos trace:   propertyUpdated( 92 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 92 , BLOCK , DESCRIPTION ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 92 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-Xcos debug:   propertyUpdated( 92 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-Xcos debug:   propertyUpdated( 92 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
-Xcos trace:   propertyUpdated( 92 , BLOCK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 92 , BLOCK , STYLE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 92 , BLOCK , GEOMETRY ) : SUCCESS
-Xcos debug:   propertyUpdated( 92 , BLOCK , EXPRS ) : SUCCESS
-Xcos trace:   propertyUpdated( 92 , BLOCK , STATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 92 , BLOCK , DSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 92 , BLOCK , ODSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 92 , BLOCK , RPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 92 , BLOCK , OPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 92 , BLOCK , EQUATIONS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 92 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 92 , BLOCK , NZCROSS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 92 , BLOCK , NMODE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 92 , BLOCK , IPAR ) : SUCCESS
-Xcos trace:   propertyUpdated( 92 , BLOCK , COLOR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 92 , BLOCK , CONTEXT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 92 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 92 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 92 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos info:    objectCreated( 93 , PORT )
-Xcos info:    objectCloned( 78 , 93 , PORT )
-Xcos trace:   propertyUpdated( 93 , PORT , FIRING ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 93 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 93 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 93 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 93 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 93 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 93 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 93 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 93 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 92 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 92 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 92 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 93 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 91 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 92 , BLOCK , CHILDREN ) : NO_CHANGES
-Xcos info:    objectCreated( 94 , BLOCK )
-Xcos info:    objectCloned( 79 , 94 , BLOCK )
-Xcos debug:   propertyUpdated( 94 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
-Xcos trace:   propertyUpdated( 94 , BLOCK , DESCRIPTION ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 94 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-Xcos debug:   propertyUpdated( 94 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-Xcos debug:   propertyUpdated( 94 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
-Xcos trace:   propertyUpdated( 94 , BLOCK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 94 , BLOCK , STYLE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 94 , BLOCK , GEOMETRY ) : SUCCESS
-Xcos debug:   propertyUpdated( 94 , BLOCK , EXPRS ) : SUCCESS
-Xcos trace:   propertyUpdated( 94 , BLOCK , STATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 94 , BLOCK , DSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 94 , BLOCK , ODSTATE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 94 , BLOCK , RPAR ) : SUCCESS
-Xcos trace:   propertyUpdated( 94 , BLOCK , OPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 94 , BLOCK , EQUATIONS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 94 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 94 , BLOCK , NZCROSS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 94 , BLOCK , NMODE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 94 , BLOCK , IPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 94 , BLOCK , COLOR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 94 , BLOCK , CONTEXT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 94 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 94 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 94 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos info:    objectCreated( 95 , PORT )
-Xcos info:    objectCloned( 80 , 95 , PORT )
-Xcos trace:   propertyUpdated( 95 , PORT , FIRING ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 95 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 95 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 95 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 95 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 95 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 95 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 95 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 95 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 94 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos info:    objectCreated( 96 , PORT )
-Xcos info:    objectCloned( 81 , 96 , PORT )
-Xcos debug:   propertyUpdated( 96 , PORT , FIRING ) : SUCCESS
-Xcos debug:   propertyUpdated( 96 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 96 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 96 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 96 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 96 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 96 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 96 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 96 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 94 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos debug:   propertyUpdated( 94 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 96 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 95 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 91 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 93 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 94 , BLOCK , CHILDREN ) : NO_CHANGES
-Xcos info:    objectCreated( 97 , LINK )
-Xcos info:    objectCloned( 82 , 97 , LINK )
-Xcos debug:   propertyUpdated( 97 , LINK , COLOR ) : SUCCESS
-Xcos debug:   propertyUpdated( 97 , LINK , KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 97 , LINK , DESCRIPTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 97 , LINK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 97 , LINK , STYLE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 97 , LINK , CONTROL_POINTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 97 , LINK , THICK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 97 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 97 , LINK , PARENT_BLOCK ) : SUCCESS
-Xcos debug:   propertyUpdated( 97 , LINK , SOURCE_PORT ) : SUCCESS
-Xcos trace:   propertyUpdated( 97 , LINK , DESTINATION_PORT ) : NO_CHANGES
-Xcos info:    objectCreated( 98 , BLOCK )
-Xcos info:    objectCloned( 83 , 98 , BLOCK )
-Xcos trace:   propertyUpdated( 98 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 98 , BLOCK , DESCRIPTION ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 98 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-Xcos debug:   propertyUpdated( 98 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-Xcos debug:   propertyUpdated( 98 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
-Xcos trace:   propertyUpdated( 98 , BLOCK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 98 , BLOCK , STYLE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 98 , BLOCK , GEOMETRY ) : SUCCESS
-Xcos trace:   propertyUpdated( 98 , BLOCK , EXPRS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 98 , BLOCK , STATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 98 , BLOCK , DSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 98 , BLOCK , ODSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 98 , BLOCK , RPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 98 , BLOCK , OPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 98 , BLOCK , EQUATIONS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 98 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 98 , BLOCK , NZCROSS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 98 , BLOCK , NMODE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 98 , BLOCK , IPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 98 , BLOCK , COLOR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 98 , BLOCK , CONTEXT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 98 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 98 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 98 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos info:    objectCreated( 99 , PORT )
-Xcos info:    objectCloned( 84 , 99 , PORT )
-Xcos trace:   propertyUpdated( 99 , PORT , FIRING ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 99 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 99 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 99 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 99 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 99 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 99 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 99 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos debug:   propertyUpdated( 99 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos debug:   propertyUpdated( 98 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos info:    objectCreated( 100 , PORT )
-Xcos info:    objectCloned( 85 , 100 , PORT )
-Xcos trace:   propertyUpdated( 100 , PORT , FIRING ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 100 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 100 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 100 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 100 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 100 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 100 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 100 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 100 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos info:    objectCreated( 101 , PORT )
-Xcos info:    objectCloned( 86 , 101 , PORT )
-Xcos trace:   propertyUpdated( 101 , PORT , FIRING ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 101 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 101 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 101 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 101 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 101 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 101 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 101 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 101 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 98 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos debug:   propertyUpdated( 98 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 101 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 100 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 97 , LINK , SOURCE_PORT ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 97 , LINK , DESTINATION_PORT ) : SUCCESS
-Xcos debug:   propertyUpdated( 96 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos trace:   propertyUpdated( 99 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 95 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 91 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 93 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 98 , BLOCK , CHILDREN ) : NO_CHANGES
-Xcos info:    objectCreated( 102 , LINK )
-Xcos info:    objectCloned( 87 , 102 , LINK )
-Xcos debug:   propertyUpdated( 102 , LINK , COLOR ) : SUCCESS
-Xcos debug:   propertyUpdated( 102 , LINK , KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 102 , LINK , DESCRIPTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 102 , LINK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 102 , LINK , STYLE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 102 , LINK , CONTROL_POINTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 102 , LINK , THICK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 102 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 102 , LINK , PARENT_BLOCK ) : SUCCESS
-Xcos debug:   propertyUpdated( 102 , LINK , SOURCE_PORT ) : SUCCESS
-Xcos debug:   propertyUpdated( 102 , LINK , DESTINATION_PORT ) : SUCCESS
-Xcos info:    objectCreated( 103 , LINK )
-Xcos info:    objectCloned( 88 , 103 , LINK )
-Xcos debug:   propertyUpdated( 103 , LINK , COLOR ) : SUCCESS
-Xcos debug:   propertyUpdated( 103 , LINK , KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 103 , LINK , DESCRIPTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 103 , LINK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 103 , LINK , STYLE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 103 , LINK , CONTROL_POINTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 103 , LINK , THICK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 103 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 103 , LINK , PARENT_BLOCK ) : SUCCESS
-Xcos debug:   propertyUpdated( 103 , LINK , SOURCE_PORT ) : SUCCESS
-Xcos debug:   propertyUpdated( 103 , LINK , DESTINATION_PORT ) : SUCCESS
-Xcos trace:   propertyUpdated( 103 , LINK , SOURCE_PORT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 103 , LINK , DESTINATION_PORT ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 101 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos debug:   propertyUpdated( 100 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos trace:   propertyUpdated( 97 , LINK , SOURCE_PORT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 97 , LINK , DESTINATION_PORT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 96 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 99 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 95 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos trace:   propertyUpdated( 102 , LINK , SOURCE_PORT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 102 , LINK , DESTINATION_PORT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 91 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 93 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos debug:   propertyUpdated( 90 , BLOCK , CHILDREN ) : SUCCESS
-Xcos trace:   propertyUpdated( 103 , LINK , SOURCE_PORT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 103 , LINK , DESTINATION_PORT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 101 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 100 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 97 , LINK , SOURCE_PORT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 97 , LINK , DESTINATION_PORT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 96 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 99 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 95 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 102 , LINK , SOURCE_PORT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 102 , LINK , DESTINATION_PORT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 91 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 93 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 89 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectReferenced( 89 , DIAGRAM ) : 1
-Xcos trace:   objectUnreferenced( 89 , DIAGRAM ) : 0
-Xcos trace:   objectReferenced( 89 , DIAGRAM ) : 1
-Xcos trace:   propertyUpdated( 89 , DIAGRAM , TITLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 89 , DIAGRAM , PATH ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 89 , DIAGRAM , PROPERTIES ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 89 , DIAGRAM , PROPERTIES ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 89 , DIAGRAM , CONTEXT ) : NO_CHANGES
-Xcos trace:   objectUnreferenced( 89 , DIAGRAM ) : 0
-assert_checkequal(dClone.objs(1).model.rpar.objs(3).from, [2 1 0]);
-Xcos trace:   objectReferenced( 90 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 90 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 90 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 90 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 90 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 92 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 94 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 97 , LINK ) : 1
-Xcos trace:   objectReferenced( 98 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 102 , LINK ) : 1
-Xcos trace:   objectReferenced( 103 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 90 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 92 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 94 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 98 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 102 , LINK ) : 0
-Xcos trace:   objectUnreferenced( 103 , LINK ) : 0
-Xcos trace:   objectUnreferenced( 97 , LINK ) : 0
-assert_checkequal(dClone.objs(1).model.rpar.objs(3).to,   [4 1 1]);
-Xcos trace:   objectReferenced( 90 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 90 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 90 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 90 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 90 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 92 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 94 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 97 , LINK ) : 1
-Xcos trace:   objectReferenced( 98 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 102 , LINK ) : 1
-Xcos trace:   objectReferenced( 103 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 90 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 92 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 94 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 98 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 102 , LINK ) : 0
-Xcos trace:   objectUnreferenced( 103 , LINK ) : 0
-Xcos trace:   objectUnreferenced( 97 , LINK ) : 0
-// Check that all the model items are freed
-clear
-Xcos debug:   propertyUpdated( 75 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   propertyUpdated( 75 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 75 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 75 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 75 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos info:    objectDeleted( 76 , PORT )
-Xcos debug:   propertyUpdated( 75 , BLOCK , CHILDREN ) : SUCCESS
-Xcos trace:   propertyUpdated( 77 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 77 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 77 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 77 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 87 , LINK , DESTINATION_PORT ) : SUCCESS
-Xcos info:    objectDeleted( 78 , PORT )
-Xcos info:    objectDeleted( 77 , BLOCK )
-Xcos debug:   propertyUpdated( 75 , BLOCK , CHILDREN ) : SUCCESS
-Xcos trace:   propertyUpdated( 79 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 79 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 79 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 79 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 88 , LINK , DESTINATION_PORT ) : SUCCESS
-Xcos info:    objectDeleted( 80 , PORT )
-Xcos trace:   propertyUpdated( 79 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 79 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 79 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 79 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos debug:   propertyUpdated( 82 , LINK , SOURCE_PORT ) : SUCCESS
-Xcos info:    objectDeleted( 81 , PORT )
-Xcos info:    objectDeleted( 79 , BLOCK )
-Xcos debug:   propertyUpdated( 75 , BLOCK , CHILDREN ) : SUCCESS
-Xcos debug:   propertyUpdated( 84 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos info:    objectDeleted( 82 , LINK )
-Xcos debug:   propertyUpdated( 75 , BLOCK , CHILDREN ) : SUCCESS
-Xcos trace:   propertyUpdated( 83 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 83 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 83 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 83 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos info:    objectDeleted( 84 , PORT )
-Xcos trace:   propertyUpdated( 83 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 83 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 83 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 83 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos debug:   propertyUpdated( 87 , LINK , SOURCE_PORT ) : SUCCESS
-Xcos info:    objectDeleted( 85 , PORT )
-Xcos trace:   propertyUpdated( 83 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 83 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 83 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 83 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos debug:   propertyUpdated( 88 , LINK , SOURCE_PORT ) : SUCCESS
-Xcos info:    objectDeleted( 86 , PORT )
-Xcos info:    objectDeleted( 83 , BLOCK )
-Xcos debug:   propertyUpdated( 75 , BLOCK , CHILDREN ) : SUCCESS
-Xcos info:    objectDeleted( 87 , LINK )
-Xcos debug:   propertyUpdated( 75 , BLOCK , CHILDREN ) : SUCCESS
-Xcos info:    objectDeleted( 88 , LINK )
-Xcos info:    objectDeleted( 75 , BLOCK )
-Xcos info:    objectDeleted( 74 , DIAGRAM )
-Xcos debug:   propertyUpdated( 90 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   propertyUpdated( 90 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 90 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 90 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 90 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos info:    objectDeleted( 91 , PORT )
-Xcos debug:   propertyUpdated( 90 , BLOCK , CHILDREN ) : SUCCESS
-Xcos trace:   propertyUpdated( 92 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 92 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 92 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 92 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 102 , LINK , DESTINATION_PORT ) : SUCCESS
-Xcos info:    objectDeleted( 93 , PORT )
-Xcos info:    objectDeleted( 92 , BLOCK )
-Xcos debug:   propertyUpdated( 90 , BLOCK , CHILDREN ) : SUCCESS
-Xcos trace:   propertyUpdated( 94 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 94 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 94 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 94 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 103 , LINK , DESTINATION_PORT ) : SUCCESS
-Xcos info:    objectDeleted( 95 , PORT )
-Xcos trace:   propertyUpdated( 94 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 94 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 94 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 94 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos debug:   propertyUpdated( 97 , LINK , SOURCE_PORT ) : SUCCESS
-Xcos info:    objectDeleted( 96 , PORT )
-Xcos info:    objectDeleted( 94 , BLOCK )
-Xcos debug:   propertyUpdated( 90 , BLOCK , CHILDREN ) : SUCCESS
-Xcos debug:   propertyUpdated( 99 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos info:    objectDeleted( 97 , LINK )
-Xcos debug:   propertyUpdated( 90 , BLOCK , CHILDREN ) : SUCCESS
-Xcos trace:   propertyUpdated( 98 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 98 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 98 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 98 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos info:    objectDeleted( 99 , PORT )
-Xcos trace:   propertyUpdated( 98 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 98 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 98 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 98 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos debug:   propertyUpdated( 102 , LINK , SOURCE_PORT ) : SUCCESS
-Xcos info:    objectDeleted( 100 , PORT )
-Xcos trace:   propertyUpdated( 98 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 98 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 98 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 98 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos debug:   propertyUpdated( 103 , LINK , SOURCE_PORT ) : SUCCESS
-Xcos info:    objectDeleted( 101 , PORT )
-Xcos info:    objectDeleted( 98 , BLOCK )
-Xcos debug:   propertyUpdated( 90 , BLOCK , CHILDREN ) : SUCCESS
-Xcos info:    objectDeleted( 102 , LINK )
-Xcos debug:   propertyUpdated( 90 , BLOCK , CHILDREN ) : SUCCESS
-Xcos info:    objectDeleted( 103 , LINK )
-Xcos info:    objectDeleted( 90 , BLOCK )
-Xcos info:    objectDeleted( 89 , DIAGRAM )
+Xcos debug:   propertyUpdated( 56 , BLOCK , CHILDREN ) : SUCCESS
+Xcos trace:   propertyUpdated( 58 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 58 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 58 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 58 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 68 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 59 , PORT )
+Xcos info:    objectDeleted( 58 , BLOCK )
+Xcos debug:   propertyUpdated( 56 , BLOCK , CHILDREN ) : SUCCESS
+Xcos trace:   propertyUpdated( 60 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 60 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 60 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 60 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 69 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 61 , PORT )
 Xcos trace:   propertyUpdated( 60 , BLOCK , INPUTS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 60 , BLOCK , OUTPUTS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 60 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 60 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos info:    objectDeleted( 61 , PORT )
-Xcos debug:   propertyUpdated( 60 , BLOCK , CHILDREN ) : SUCCESS
-Xcos trace:   propertyUpdated( 62 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 62 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 62 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 62 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 72 , LINK , DESTINATION_PORT ) : SUCCESS
-Xcos info:    objectDeleted( 63 , PORT )
-Xcos info:    objectDeleted( 62 , BLOCK )
-Xcos debug:   propertyUpdated( 60 , BLOCK , CHILDREN ) : SUCCESS
+Xcos debug:   propertyUpdated( 63 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 62 , PORT )
+Xcos info:    objectDeleted( 60 , BLOCK )
+Xcos debug:   propertyUpdated( 56 , BLOCK , CHILDREN ) : SUCCESS
+Xcos debug:   propertyUpdated( 65 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos info:    objectDeleted( 63 , LINK )
+Xcos debug:   propertyUpdated( 56 , BLOCK , CHILDREN ) : SUCCESS
 Xcos trace:   propertyUpdated( 64 , BLOCK , INPUTS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 64 , BLOCK , OUTPUTS ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 64 , BLOCK , EVENT_INPUTS ) : SUCCESS
 Xcos trace:   propertyUpdated( 64 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 73 , LINK , DESTINATION_PORT ) : SUCCESS
 Xcos info:    objectDeleted( 65 , PORT )
 Xcos trace:   propertyUpdated( 64 , BLOCK , INPUTS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 64 , BLOCK , OUTPUTS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 64 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 64 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos debug:   propertyUpdated( 67 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos debug:   propertyUpdated( 68 , LINK , SOURCE_PORT ) : SUCCESS
 Xcos info:    objectDeleted( 66 , PORT )
+Xcos trace:   propertyUpdated( 64 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 64 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 64 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 64 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos debug:   propertyUpdated( 69 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 67 , PORT )
 Xcos info:    objectDeleted( 64 , BLOCK )
-Xcos debug:   propertyUpdated( 60 , BLOCK , CHILDREN ) : SUCCESS
-Xcos debug:   propertyUpdated( 69 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos info:    objectDeleted( 67 , LINK )
-Xcos debug:   propertyUpdated( 60 , BLOCK , CHILDREN ) : SUCCESS
-Xcos trace:   propertyUpdated( 68 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 68 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 68 , BLOCK , EVENT_INPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 68 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos info:    objectDeleted( 69 , PORT )
-Xcos trace:   propertyUpdated( 68 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 68 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 68 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 68 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos debug:   propertyUpdated( 72 , LINK , SOURCE_PORT ) : SUCCESS
-Xcos info:    objectDeleted( 70 , PORT )
-Xcos trace:   propertyUpdated( 68 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 68 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 68 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 68 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-Xcos debug:   propertyUpdated( 73 , LINK , SOURCE_PORT ) : SUCCESS
-Xcos info:    objectDeleted( 71 , PORT )
-Xcos info:    objectDeleted( 68 , BLOCK )
-Xcos debug:   propertyUpdated( 60 , BLOCK , CHILDREN ) : SUCCESS
-Xcos info:    objectDeleted( 72 , LINK )
-Xcos debug:   propertyUpdated( 60 , BLOCK , CHILDREN ) : SUCCESS
-Xcos info:    objectDeleted( 73 , LINK )
-Xcos info:    objectDeleted( 60 , BLOCK )
+Xcos debug:   propertyUpdated( 56 , BLOCK , CHILDREN ) : SUCCESS
+Xcos info:    objectDeleted( 68 , LINK )
+Xcos debug:   propertyUpdated( 56 , BLOCK , CHILDREN ) : SUCCESS
+Xcos info:    objectDeleted( 69 , LINK )
+Xcos info:    objectDeleted( 56 , BLOCK )
+Xcos info:    objectDeleted( 55 , DIAGRAM )
+Xcos trace:   propertyUpdated( 26 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 26 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 26 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos info:    objectDeleted( 27 , PORT )
+Xcos debug:   propertyUpdated( 26 , BLOCK , CHILDREN ) : SUCCESS
+Xcos trace:   propertyUpdated( 28 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 28 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 28 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 28 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 38 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 29 , PORT )
+Xcos info:    objectDeleted( 28 , BLOCK )
+Xcos debug:   propertyUpdated( 26 , BLOCK , CHILDREN ) : SUCCESS
+Xcos trace:   propertyUpdated( 30 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 30 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 30 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 30 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 39 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 31 , PORT )
+Xcos trace:   propertyUpdated( 30 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 30 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 30 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 30 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos debug:   propertyUpdated( 33 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 32 , PORT )
+Xcos info:    objectDeleted( 30 , BLOCK )
+Xcos debug:   propertyUpdated( 26 , BLOCK , CHILDREN ) : SUCCESS
+Xcos debug:   propertyUpdated( 35 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos info:    objectDeleted( 33 , LINK )
+Xcos debug:   propertyUpdated( 26 , BLOCK , CHILDREN ) : SUCCESS
+Xcos trace:   propertyUpdated( 34 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 34 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 34 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 34 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 35 , PORT )
+Xcos trace:   propertyUpdated( 34 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 34 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 34 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 34 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos debug:   propertyUpdated( 38 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 36 , PORT )
+Xcos trace:   propertyUpdated( 34 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 34 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 34 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 34 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos debug:   propertyUpdated( 39 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 37 , PORT )
+Xcos info:    objectDeleted( 34 , BLOCK )
+Xcos debug:   propertyUpdated( 26 , BLOCK , CHILDREN ) : SUCCESS
+Xcos info:    objectDeleted( 38 , LINK )
+Xcos debug:   propertyUpdated( 26 , BLOCK , CHILDREN ) : SUCCESS
+Xcos info:    objectDeleted( 39 , LINK )
+Xcos info:    objectDeleted( 26 , BLOCK )
index e878c8e..896313f 100644 (file)
@@ -84,132 +84,171 @@ Xcos trace:   propertyUpdated( 3 , BLOCK , EQUATIONS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 3 , BLOCK , UID ) : NO_CHANGES
 Xcos trace:   objectUnreferenced( 3 , BLOCK ) : 0
 Xcos trace:   propertyUpdated( 3 , BLOCK , INTERFACE_FUNCTION ) : NO_CHANGES
+b.graphics.pin = 0;
+Xcos trace:   objectReferenced( 3 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 3 , BLOCK ) : 0
+Xcos trace:   objectReferenced( 3 , BLOCK ) : 1
+Xcos trace:   propertyUpdated( 3 , BLOCK , GEOMETRY ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 3 , BLOCK , GEOMETRY ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 3 , BLOCK , EXPRS ) : NO_CHANGES
+Xcos info:    objectCreated( 4 , PORT )
+Xcos debug:   propertyUpdated( 4 , PORT , SOURCE_BLOCK ) : SUCCESS
+Xcos debug:   propertyUpdated( 4 , PORT , PORT_KIND ) : SUCCESS
+Xcos debug:   propertyUpdated( 3 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 3 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 3 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 3 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 3 , BLOCK , DESCRIPTION ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 4 , PORT , STYLE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 4 , PORT , LABEL ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 3 , BLOCK , STYLE ) : NO_CHANGES
+Xcos trace:   objectUnreferenced( 3 , BLOCK ) : 0
+b.graphics.pout = 0;
+Xcos trace:   objectReferenced( 3 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 3 , BLOCK ) : 0
+Xcos trace:   objectReferenced( 3 , BLOCK ) : 1
+Xcos trace:   propertyUpdated( 3 , BLOCK , GEOMETRY ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 3 , BLOCK , GEOMETRY ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 3 , BLOCK , EXPRS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 3 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos info:    objectCreated( 5 , PORT )
+Xcos debug:   propertyUpdated( 5 , PORT , SOURCE_BLOCK ) : SUCCESS
+Xcos debug:   propertyUpdated( 5 , PORT , PORT_KIND ) : SUCCESS
+Xcos debug:   propertyUpdated( 3 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 3 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 3 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 3 , BLOCK , DESCRIPTION ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 4 , PORT , IMPLICIT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 4 , PORT , STYLE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 5 , PORT , STYLE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 4 , PORT , LABEL ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 5 , PORT , LABEL ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 3 , BLOCK , STYLE ) : NO_CHANGES
+Xcos trace:   objectUnreferenced( 3 , BLOCK ) : 0
 l = scicos_link( from=[1 1 0],to=[1 1 1] ); // Connecting 'b' to itself (create two ports)
-Xcos info:    objectCreated( 4 , LINK )
-Xcos trace:   propertyUpdated( 4 , LINK , CONTROL_POINTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 4 , LINK , CONTROL_POINTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 4 , LINK , DESCRIPTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 4 , LINK , THICK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 4 , LINK , COLOR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 4 , LINK , KIND ) : NO_CHANGES
+Xcos info:    objectCreated( 6 , LINK )
+Xcos trace:   propertyUpdated( 6 , LINK , CONTROL_POINTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 6 , LINK , CONTROL_POINTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 6 , LINK , DESCRIPTION ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 6 , LINK , THICK ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 6 , LINK , COLOR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 6 , LINK , KIND ) : NO_CHANGES
 // Assembling the elements, making 'sb' a SuperBlock
 d.objs(1) = b;
-Xcos info:    objectCreated( 5 , BLOCK )
-Xcos info:    objectCloned( 3 , 5 , BLOCK )
-Xcos trace:   propertyUpdated( 5 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 5 , BLOCK , DESCRIPTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 5 , BLOCK , INTERFACE_FUNCTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 5 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 5 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 5 , BLOCK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 5 , BLOCK , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 5 , BLOCK , GEOMETRY ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 5 , BLOCK , EXPRS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 5 , BLOCK , STATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 5 , BLOCK , DSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 5 , BLOCK , ODSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 5 , BLOCK , RPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 5 , BLOCK , OPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 5 , BLOCK , EQUATIONS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 5 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 5 , BLOCK , NZCROSS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 5 , BLOCK , NMODE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 5 , BLOCK , IPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 5 , BLOCK , COLOR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 5 , BLOCK , CONTEXT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 5 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 5 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 5 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 5 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 5 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 5 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 5 , BLOCK , CHILDREN ) : NO_CHANGES
-Xcos trace:   objectReferenced( 5 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 5 , BLOCK ) : 2
-Xcos debug:   propertyUpdated( 5 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   propertyUpdated( 5 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   objectUnreferenced( 5 , BLOCK ) : 1
-Xcos debug:   propertyUpdated( 2 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 5 , BLOCK ) : 0
-d.objs(2) = l;
-Xcos trace:   objectReferenced( 5 , BLOCK ) : 1
-Xcos info:    objectCreated( 6 , BLOCK )
-Xcos info:    objectCloned( 5 , 6 , BLOCK )
-Xcos trace:   propertyUpdated( 6 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 6 , BLOCK , DESCRIPTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 6 , BLOCK , INTERFACE_FUNCTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 6 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 6 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 6 , BLOCK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 6 , BLOCK , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 6 , BLOCK , GEOMETRY ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 6 , BLOCK , EXPRS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 6 , BLOCK , STATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 6 , BLOCK , DSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 6 , BLOCK , ODSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 6 , BLOCK , RPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 6 , BLOCK , OPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 6 , BLOCK , EQUATIONS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 6 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 6 , BLOCK , NZCROSS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 6 , BLOCK , NMODE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 6 , BLOCK , IPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 6 , BLOCK , COLOR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 6 , BLOCK , CONTEXT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 6 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 6 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 6 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 6 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 6 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 6 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 6 , BLOCK , CHILDREN ) : NO_CHANGES
-Xcos info:    objectCreated( 7 , LINK )
-Xcos info:    objectCloned( 4 , 7 , LINK )
-Xcos trace:   propertyUpdated( 7 , LINK , COLOR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 7 , LINK , KIND ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 7 , LINK , DESCRIPTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 7 , LINK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 7 , LINK , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 7 , LINK , CONTROL_POINTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 7 , LINK , THICK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 7 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 7 , LINK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 7 , LINK , SOURCE_PORT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 7 , LINK , DESTINATION_PORT ) : NO_CHANGES
-Xcos trace:   objectReferenced( 6 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 7 , LINK ) : 1
-Xcos trace:   objectReferenced( 6 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 5 , BLOCK ) : 0
-Xcos debug:   propertyUpdated( 6 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   propertyUpdated( 6 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   objectReferenced( 7 , LINK ) : 2
-Xcos debug:   propertyUpdated( 7 , LINK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   propertyUpdated( 7 , LINK , PARENT_BLOCK ) : NO_CHANGES
+Xcos info:    objectCreated( 7 , BLOCK )
+Xcos info:    objectCloned( 3 , 7 , BLOCK )
+Xcos trace:   propertyUpdated( 7 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 7 , BLOCK , DESCRIPTION ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 7 , BLOCK , INTERFACE_FUNCTION ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 7 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 7 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 7 , BLOCK , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 7 , BLOCK , STYLE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 7 , BLOCK , GEOMETRY ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 7 , BLOCK , EXPRS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 7 , BLOCK , STATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 7 , BLOCK , DSTATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 7 , BLOCK , ODSTATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 7 , BLOCK , RPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 7 , BLOCK , OPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 7 , BLOCK , EQUATIONS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 7 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 7 , BLOCK , NZCROSS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 7 , BLOCK , NMODE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 7 , BLOCK , IPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 7 , BLOCK , COLOR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 7 , BLOCK , CONTEXT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 7 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos info:    objectCreated( 8 , PORT )
-Xcos trace:   propertyUpdated( 8 , PORT , IMPLICIT ) : NO_CHANGES
+Xcos info:    objectCloned( 4 , 8 , PORT )
+Xcos trace:   propertyUpdated( 8 , PORT , FIRING ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 8 , PORT , PORT_KIND ) : SUCCESS
+Xcos trace:   propertyUpdated( 8 , PORT , IMPLICIT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 8 , PORT , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 8 , PORT , STYLE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 8 , PORT , LABEL ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 8 , PORT , DATATYPE ) : SUCCESS
 Xcos debug:   propertyUpdated( 8 , PORT , SOURCE_BLOCK ) : SUCCESS
 Xcos trace:   propertyUpdated( 8 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 8 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 6 , BLOCK , OUTPUTS ) : SUCCESS
-Xcos debug:   propertyUpdated( 8 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos debug:   propertyUpdated( 7 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos debug:   propertyUpdated( 7 , BLOCK , INPUTS ) : SUCCESS
 Xcos info:    objectCreated( 9 , PORT )
-Xcos trace:   propertyUpdated( 9 , PORT , IMPLICIT ) : NO_CHANGES
+Xcos info:    objectCloned( 5 , 9 , PORT )
+Xcos trace:   propertyUpdated( 9 , PORT , FIRING ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 9 , PORT , PORT_KIND ) : SUCCESS
+Xcos trace:   propertyUpdated( 9 , PORT , IMPLICIT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 9 , PORT , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 9 , PORT , STYLE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 9 , PORT , LABEL ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 9 , PORT , DATATYPE ) : SUCCESS
 Xcos debug:   propertyUpdated( 9 , PORT , SOURCE_BLOCK ) : SUCCESS
 Xcos trace:   propertyUpdated( 9 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 9 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 6 , BLOCK , INPUTS ) : SUCCESS
+Xcos debug:   propertyUpdated( 7 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 7 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 7 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 7 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 9 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 8 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 7 , BLOCK , CHILDREN ) : NO_CHANGES
+Xcos trace:   objectReferenced( 7 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 7 , BLOCK ) : 2
+Xcos debug:   propertyUpdated( 7 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+Xcos trace:   propertyUpdated( 7 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
+Xcos trace:   objectUnreferenced( 7 , BLOCK ) : 1
+Xcos debug:   propertyUpdated( 2 , DIAGRAM , CHILDREN ) : SUCCESS
+Xcos trace:   objectUnreferenced( 7 , BLOCK ) : 0
+d.objs(2) = l;
+Xcos trace:   objectReferenced( 7 , BLOCK ) : 1
+Xcos info:    objectCreated( 10 , LINK )
+Xcos info:    objectCloned( 6 , 10 , LINK )
+Xcos trace:   propertyUpdated( 10 , LINK , COLOR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 10 , LINK , KIND ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 10 , LINK , DESCRIPTION ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 10 , LINK , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 10 , LINK , STYLE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 10 , LINK , CONTROL_POINTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 10 , LINK , THICK ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 10 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 10 , LINK , PARENT_BLOCK ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 10 , LINK , SOURCE_PORT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 10 , LINK , DESTINATION_PORT ) : NO_CHANGES
+Xcos trace:   objectReferenced( 10 , LINK ) : 1
+Xcos trace:   objectReferenced( 10 , LINK ) : 2
+Xcos debug:   propertyUpdated( 10 , LINK , PARENT_DIAGRAM ) : SUCCESS
+Xcos trace:   propertyUpdated( 10 , LINK , PARENT_BLOCK ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 9 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 9 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos debug:   propertyUpdated( 7 , LINK , DESTINATION_PORT ) : SUCCESS
-Xcos trace:   objectUnreferenced( 6 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 7 , LINK ) : 1
+Xcos debug:   propertyUpdated( 10 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos trace:   propertyUpdated( 8 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 8 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos debug:   propertyUpdated( 10 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos trace:   objectUnreferenced( 10 , LINK ) : 1
 Xcos debug:   propertyUpdated( 2 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 6 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 7 , LINK ) : 0
-Xcos trace:   propertyUpdated( 2 , DIAGRAM , CHILDREN ) : NO_CHANGES
-Xcos info:    objectDeleted( 5 , BLOCK )
+Xcos trace:   objectUnreferenced( 10 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 7 , BLOCK ) : 0
+assert_checkequal(d.objs(1).graphics.pout, 2);
+Xcos trace:   objectReferenced( 7 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 10 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 10 , LINK ) : 0
+Xcos trace:   objectReferenced( 7 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 7 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 7 , BLOCK ) : 0
+assert_checkequal(d.objs(1).graphics.pin,  2);
+Xcos trace:   objectReferenced( 7 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 10 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 10 , LINK ) : 0
+Xcos trace:   objectReferenced( 7 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 7 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 7 , BLOCK ) : 0
+assert_checkequal(d.objs(2).from, [1 1 0]);
+Xcos trace:   objectReferenced( 7 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 10 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 7 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 10 , LINK ) : 0
+assert_checkequal(d.objs(2).to,   [1 1 1]);
+Xcos trace:   objectReferenced( 7 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 10 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 7 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 10 , LINK ) : 0
 sb.model.rpar = d;
 Xcos trace:   objectReferenced( 1 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 1 , BLOCK ) : 0
@@ -220,44 +259,32 @@ Xcos trace:   propertyUpdated( 1 , BLOCK , STATE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 1 , BLOCK , DSTATE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 1 , BLOCK , ODSTATE ) : NO_CHANGES
 Xcos trace:   objectReferenced( 1 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 6 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 7 , LINK ) : 1
-Xcos info:    objectCreated( 10 , BLOCK )
-Xcos info:    objectCloned( 6 , 10 , BLOCK )
-Xcos trace:   propertyUpdated( 10 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 10 , BLOCK , DESCRIPTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 10 , BLOCK , INTERFACE_FUNCTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 10 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 10 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 10 , BLOCK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 10 , BLOCK , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 10 , BLOCK , GEOMETRY ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 10 , BLOCK , EXPRS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 10 , BLOCK , STATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 10 , BLOCK , DSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 10 , BLOCK , ODSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 10 , BLOCK , RPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 10 , BLOCK , OPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 10 , BLOCK , EQUATIONS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 10 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 10 , BLOCK , NZCROSS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 10 , BLOCK , NMODE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 10 , BLOCK , IPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 10 , BLOCK , COLOR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 10 , BLOCK , CONTEXT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 10 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos info:    objectCreated( 11 , PORT )
-Xcos info:    objectCloned( 9 , 11 , PORT )
-Xcos trace:   propertyUpdated( 11 , PORT , FIRING ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 11 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 11 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 11 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 11 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 11 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 11 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 11 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 11 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 10 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   objectReferenced( 7 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 10 , LINK ) : 1
+Xcos info:    objectCreated( 11 , BLOCK )
+Xcos info:    objectCloned( 7 , 11 , BLOCK )
+Xcos trace:   propertyUpdated( 11 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 11 , BLOCK , DESCRIPTION ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 11 , BLOCK , INTERFACE_FUNCTION ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 11 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 11 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 11 , BLOCK , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 11 , BLOCK , STYLE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 11 , BLOCK , GEOMETRY ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 11 , BLOCK , EXPRS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 11 , BLOCK , STATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 11 , BLOCK , DSTATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 11 , BLOCK , ODSTATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 11 , BLOCK , RPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 11 , BLOCK , OPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 11 , BLOCK , EQUATIONS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 11 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 11 , BLOCK , NZCROSS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 11 , BLOCK , NMODE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 11 , BLOCK , IPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 11 , BLOCK , COLOR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 11 , BLOCK , CONTEXT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 11 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos info:    objectCreated( 12 , PORT )
 Xcos info:    objectCloned( 8 , 12 , PORT )
 Xcos trace:   propertyUpdated( 12 , PORT , FIRING ) : NO_CHANGES
@@ -269,45 +296,55 @@ Xcos trace:   propertyUpdated( 12 , PORT , LABEL ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 12 , PORT , DATATYPE ) : SUCCESS
 Xcos debug:   propertyUpdated( 12 , PORT , SOURCE_BLOCK ) : SUCCESS
 Xcos trace:   propertyUpdated( 12 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 10 , BLOCK , OUTPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 10 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 10 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 10 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 11 , BLOCK , INPUTS ) : SUCCESS
+Xcos info:    objectCreated( 13 , PORT )
+Xcos info:    objectCloned( 9 , 13 , PORT )
+Xcos trace:   propertyUpdated( 13 , PORT , FIRING ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 13 , PORT , PORT_KIND ) : SUCCESS
+Xcos trace:   propertyUpdated( 13 , PORT , IMPLICIT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 13 , PORT , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 13 , PORT , STYLE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 13 , PORT , LABEL ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 13 , PORT , DATATYPE ) : SUCCESS
+Xcos debug:   propertyUpdated( 13 , PORT , SOURCE_BLOCK ) : SUCCESS
+Xcos trace:   propertyUpdated( 13 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 11 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 11 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 11 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 11 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 13 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 12 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 11 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 10 , BLOCK , CHILDREN ) : NO_CHANGES
-Xcos info:    objectCreated( 13 , LINK )
-Xcos info:    objectCloned( 7 , 13 , LINK )
-Xcos trace:   propertyUpdated( 13 , LINK , COLOR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 13 , LINK , KIND ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 13 , LINK , DESCRIPTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 13 , LINK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 13 , LINK , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 13 , LINK , CONTROL_POINTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 13 , LINK , THICK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 13 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 13 , LINK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 13 , LINK , SOURCE_PORT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 13 , LINK , DESTINATION_PORT ) : NO_CHANGES
-Xcos trace:   objectReferenced( 10 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 13 , LINK ) : 1
-Xcos trace:   objectReferenced( 10 , BLOCK ) : 2
-Xcos trace:   propertyUpdated( 10 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 10 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 13 , LINK ) : 2
-Xcos trace:   propertyUpdated( 13 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 13 , LINK , PARENT_BLOCK ) : SUCCESS
+Xcos trace:   propertyUpdated( 11 , BLOCK , CHILDREN ) : NO_CHANGES
+Xcos info:    objectCreated( 14 , LINK )
+Xcos info:    objectCloned( 10 , 14 , LINK )
+Xcos trace:   propertyUpdated( 14 , LINK , COLOR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 14 , LINK , KIND ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 14 , LINK , DESCRIPTION ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 14 , LINK , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 14 , LINK , STYLE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 14 , LINK , CONTROL_POINTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 14 , LINK , THICK ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 14 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 14 , LINK , PARENT_BLOCK ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 14 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos debug:   propertyUpdated( 14 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos trace:   objectReferenced( 11 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 14 , LINK ) : 1
+Xcos trace:   objectReferenced( 11 , BLOCK ) : 2
+Xcos trace:   propertyUpdated( 11 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 11 , BLOCK , PARENT_BLOCK ) : SUCCESS
+Xcos trace:   objectReferenced( 14 , LINK ) : 2
+Xcos trace:   propertyUpdated( 14 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 14 , LINK , PARENT_BLOCK ) : SUCCESS
 Xcos debug:   propertyUpdated( 12 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos debug:   propertyUpdated( 13 , LINK , SOURCE_PORT ) : SUCCESS
-Xcos debug:   propertyUpdated( 11 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos debug:   propertyUpdated( 13 , LINK , DESTINATION_PORT ) : SUCCESS
-Xcos trace:   objectUnreferenced( 10 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 13 , LINK ) : 1
+Xcos debug:   propertyUpdated( 13 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 14 , LINK ) : 1
 Xcos debug:   propertyUpdated( 1 , BLOCK , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 10 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 13 , LINK ) : 0
-Xcos trace:   objectUnreferenced( 6 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 7 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 14 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 7 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 10 , LINK ) : 0
 Xcos trace:   objectReferenced( 2 , DIAGRAM ) : 1
 Xcos trace:   objectUnreferenced( 2 , DIAGRAM ) : 0
 Xcos trace:   objectReferenced( 1 , BLOCK ) : 3
@@ -325,50 +362,61 @@ Xcos trace:   propertyUpdated( 1 , BLOCK , NMODE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 1 , BLOCK , EQUATIONS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 1 , BLOCK , UID ) : NO_CHANGES
 Xcos trace:   objectUnreferenced( 1 , BLOCK ) : 0
+assert_checkequal(sb.model.rpar.objs(1).graphics.pout, 2);
+Xcos trace:   objectReferenced( 1 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 1 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 1 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 11 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 14 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 1 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 14 , LINK ) : 0
+Xcos trace:   objectReferenced( 11 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 0
+assert_checkequal(sb.model.rpar.objs(1).graphics.pin,  2);
+Xcos trace:   objectReferenced( 1 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 1 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 1 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 11 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 14 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 1 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 14 , LINK ) : 0
+Xcos trace:   objectReferenced( 11 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 0
+assert_checkequal(sb.model.rpar.objs(2).from, [1 1 0]);
+Xcos trace:   objectReferenced( 1 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 1 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 1 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 11 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 14 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 1 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 14 , LINK ) : 0
+assert_checkequal(sb.model.rpar.objs(2).to,   [1 1 1]);
+Xcos trace:   objectReferenced( 1 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 1 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 1 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 11 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 14 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 1 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 14 , LINK ) : 0
 // Main diagram
 scs_m = scicos_diagram();
-Xcos info:    objectCreated( 14 , DIAGRAM )
-Xcos trace:   objectReferenced( 14 , DIAGRAM ) : 1
-Xcos trace:   propertyUpdated( 14 , DIAGRAM , TITLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 14 , DIAGRAM , PATH ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 14 , DIAGRAM , PROPERTIES ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 14 , DIAGRAM , PROPERTIES ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 14 , DIAGRAM , CONTEXT ) : NO_CHANGES
-Xcos trace:   objectUnreferenced( 14 , DIAGRAM ) : 0
-Xcos trace:   propertyUpdated( 14 , DIAGRAM , CHILDREN ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 14 , DIAGRAM , VERSION_NUMBER ) : SUCCESS
+Xcos info:    objectCreated( 15 , DIAGRAM )
+Xcos trace:   objectReferenced( 15 , DIAGRAM ) : 1
+Xcos trace:   propertyUpdated( 15 , DIAGRAM , TITLE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 15 , DIAGRAM , PATH ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 15 , DIAGRAM , PROPERTIES ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 15 , DIAGRAM , PROPERTIES ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 15 , DIAGRAM , CONTEXT ) : NO_CHANGES
+Xcos trace:   objectUnreferenced( 15 , DIAGRAM ) : 0
+Xcos trace:   propertyUpdated( 15 , DIAGRAM , CHILDREN ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 15 , DIAGRAM , VERSION_NUMBER ) : SUCCESS
 scs_m.objs(1) = sb;
-Xcos info:    objectCreated( 15 , BLOCK )
-Xcos info:    objectCloned( 1 , 15 , BLOCK )
-Xcos trace:   propertyUpdated( 15 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , DESCRIPTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , INTERFACE_FUNCTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , GEOMETRY ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , EXPRS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , STATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , DSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , ODSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , RPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , OPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , EQUATIONS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , NZCROSS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , NMODE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , IPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , COLOR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , CONTEXT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 15 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos info:    objectCreated( 16 , BLOCK )
-Xcos info:    objectCloned( 10 , 16 , BLOCK )
+Xcos info:    objectCloned( 1 , 16 , BLOCK )
 Xcos trace:   propertyUpdated( 16 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 16 , BLOCK , DESCRIPTION ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 16 , BLOCK , INTERFACE_FUNCTION ) : NO_CHANGES
@@ -391,18 +439,35 @@ Xcos trace:   propertyUpdated( 16 , BLOCK , IPAR ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 16 , BLOCK , COLOR ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 16 , BLOCK , CONTEXT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 16 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos info:    objectCreated( 17 , PORT )
-Xcos info:    objectCloned( 11 , 17 , PORT )
-Xcos trace:   propertyUpdated( 17 , PORT , FIRING ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 17 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 17 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 17 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 17 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 17 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 17 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 17 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 17 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 16 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 16 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 16 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 16 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 16 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 16 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
+Xcos info:    objectCreated( 17 , BLOCK )
+Xcos info:    objectCloned( 11 , 17 , BLOCK )
+Xcos trace:   propertyUpdated( 17 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 17 , BLOCK , DESCRIPTION ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 17 , BLOCK , INTERFACE_FUNCTION ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 17 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 17 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 17 , BLOCK , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 17 , BLOCK , STYLE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 17 , BLOCK , GEOMETRY ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 17 , BLOCK , EXPRS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 17 , BLOCK , STATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 17 , BLOCK , DSTATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 17 , BLOCK , ODSTATE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 17 , BLOCK , RPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 17 , BLOCK , OPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 17 , BLOCK , EQUATIONS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 17 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 17 , BLOCK , NZCROSS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 17 , BLOCK , NMODE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 17 , BLOCK , IPAR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 17 , BLOCK , COLOR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 17 , BLOCK , CONTEXT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 17 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos info:    objectCreated( 18 , PORT )
 Xcos info:    objectCloned( 12 , 18 , PORT )
 Xcos trace:   propertyUpdated( 18 , PORT , FIRING ) : NO_CHANGES
@@ -414,540 +479,401 @@ Xcos trace:   propertyUpdated( 18 , PORT , LABEL ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 18 , PORT , DATATYPE ) : SUCCESS
 Xcos debug:   propertyUpdated( 18 , PORT , SOURCE_BLOCK ) : SUCCESS
 Xcos trace:   propertyUpdated( 18 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 16 , BLOCK , OUTPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 16 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 16 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 16 , BLOCK , PARENT_BLOCK ) : SUCCESS
+Xcos debug:   propertyUpdated( 17 , BLOCK , INPUTS ) : SUCCESS
+Xcos info:    objectCreated( 19 , PORT )
+Xcos info:    objectCloned( 13 , 19 , PORT )
+Xcos trace:   propertyUpdated( 19 , PORT , FIRING ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 19 , PORT , PORT_KIND ) : SUCCESS
+Xcos trace:   propertyUpdated( 19 , PORT , IMPLICIT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 19 , PORT , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 19 , PORT , STYLE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 19 , PORT , LABEL ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 19 , PORT , DATATYPE ) : SUCCESS
+Xcos debug:   propertyUpdated( 19 , PORT , SOURCE_BLOCK ) : SUCCESS
+Xcos trace:   propertyUpdated( 19 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 17 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 17 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 17 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 17 , BLOCK , PARENT_BLOCK ) : SUCCESS
+Xcos trace:   propertyUpdated( 19 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 18 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 17 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 16 , BLOCK , CHILDREN ) : NO_CHANGES
-Xcos info:    objectCreated( 19 , LINK )
-Xcos info:    objectCloned( 13 , 19 , LINK )
-Xcos trace:   propertyUpdated( 19 , LINK , COLOR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 19 , LINK , KIND ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 19 , LINK , DESCRIPTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 19 , LINK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 19 , LINK , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 19 , LINK , CONTROL_POINTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 19 , LINK , THICK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 19 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 19 , LINK , PARENT_BLOCK ) : SUCCESS
-Xcos debug:   propertyUpdated( 19 , LINK , SOURCE_PORT ) : SUCCESS
-Xcos debug:   propertyUpdated( 19 , LINK , DESTINATION_PORT ) : SUCCESS
-Xcos trace:   propertyUpdated( 19 , LINK , SOURCE_PORT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 19 , LINK , DESTINATION_PORT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 17 , BLOCK , CHILDREN ) : NO_CHANGES
+Xcos info:    objectCreated( 20 , LINK )
+Xcos info:    objectCloned( 14 , 20 , LINK )
+Xcos trace:   propertyUpdated( 20 , LINK , COLOR ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 20 , LINK , KIND ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 20 , LINK , DESCRIPTION ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 20 , LINK , UID ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 20 , LINK , STYLE ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 20 , LINK , CONTROL_POINTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 20 , LINK , THICK ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 20 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 20 , LINK , PARENT_BLOCK ) : SUCCESS
+Xcos debug:   propertyUpdated( 20 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos debug:   propertyUpdated( 20 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos trace:   propertyUpdated( 20 , LINK , SOURCE_PORT ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 20 , LINK , DESTINATION_PORT ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 19 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 18 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos debug:   propertyUpdated( 17 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos debug:   propertyUpdated( 15 , BLOCK , CHILDREN ) : SUCCESS
-Xcos trace:   objectReferenced( 15 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 15 , BLOCK ) : 2
-Xcos debug:   propertyUpdated( 15 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   propertyUpdated( 15 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   objectUnreferenced( 15 , BLOCK ) : 1
-Xcos debug:   propertyUpdated( 14 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 15 , BLOCK ) : 0
-scs_m.objs(1).model.rpar // Checking 'sb' elements
-Xcos trace:   objectReferenced( 15 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 15 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 15 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 15 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 15 , BLOCK ) : 1
- ans  =
-Xcos trace:   objectReferenced( 15 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 15 , BLOCK ) : 1
-wpar = [600,450,0,0,600,450]
-title = ["";""]
-tol = [0.000001,0.000001,1.000D-10,100001,0,1,0]
-tf = 100000