From 74bc26c5e8e8e8ed708aa5d64765733ecf1af5ed Mon Sep 17 00:00:00 2001 From: Strolch GitHub Actions Build Date: Sun, 11 Jul 2021 18:37:40 +0000 Subject: [PATCH] [AUTO] New version of website --- publish/404.html | 1 + publish/api/index.html | 139 ++ publish/api/index.xml | 1 + publish/assets/images/Strolch-Bird-View.svg | 2 + .../Strolch-PLC-Architecture-Overview.png | Bin 0 -> 34401 bytes .../images/Strolch-PLC-Architecture.png | Bin 0 -> 39995 bytes publish/assets/images/Strolch-Plc-Example.png | Bin 0 -> 84635 bytes .../assets/images/Strolch-Squirrel-View.svg | 2 + publish/assets/images/git-seeklogo.com.svg | 9 + .../images/intellij-idea-seeklogo.com.svg | 54 + publish/assets/images/maven-seeklogo.com.svg | 110 ++ .../assets/images/strolch-model-example.png | Bin 0 -> 20086 bytes publish/assets/xsd/StrolchModel-1.6.xsd | 201 +++ publish/categories/index.html | 3 + publish/categories/index.xml | 1 + publish/css/atom-one-dark-reasonable.css | 77 ++ publish/css/auto-complete.css | 47 + publish/css/featherlight.min.css | 8 + publish/css/fontawesome-all.min.css | 1 + publish/css/hugo-easy-gallery.css | 159 +++ publish/css/hugo-theme.css | 254 ++++ publish/css/hybrid.css | 102 ++ publish/css/nucleus.css | 615 +++++++++ publish/css/perfect-scrollbar.min.css | 2 + publish/css/tags.css | 49 + publish/css/theme-blue.css | 128 ++ publish/css/theme-green.css | 128 ++ publish/css/theme-red.css | 128 ++ publish/css/theme.css | 1151 +++++++++++++++++ publish/development/index.html | 45 + publish/development/index.xml | 1 + publish/documentation/architecture/index.html | 19 + publish/documentation/components/index.html | 63 + publish/documentation/do-and-donts/index.html | 3 + publish/documentation/index.html | 6 + publish/documentation/index.xml | 25 + publish/documentation/model/index.html | 264 ++++ publish/documentation/observers/index.html | 46 + publish/documentation/policies/index.html | 68 + publish/documentation/priviles/index.html | 73 ++ publish/documentation/queries/index.html | 61 + publish/documentation/realms/index.html | 82 ++ publish/documentation/reports/index.html | 159 +++ .../runtime-configuration/index.html | 111 ++ publish/documentation/searches/index.html | 53 + .../services-and-commands/index.html | 78 ++ publish/documentation/transactions/index.html | 59 + publish/documentation/versioning/index.html | 39 + publish/download/index.html | 8 + publish/download/index.xml | 1 + publish/fonts/Inconsolata.eot | Bin 0 -> 35620 bytes publish/fonts/Inconsolata.svg | 1 + publish/fonts/Inconsolata.ttf | Bin 0 -> 63184 bytes publish/fonts/Inconsolata.woff | Bin 0 -> 38248 bytes .../Novecentosanswide-Normal-webfont.eot | Bin 0 -> 22446 bytes .../Novecentosanswide-Normal-webfont.svg | 1 + .../Novecentosanswide-Normal-webfont.ttf | Bin 0 -> 56884 bytes .../Novecentosanswide-Normal-webfont.woff | Bin 0 -> 24772 bytes .../Novecentosanswide-Normal-webfont.woff2 | Bin 0 -> 19760 bytes .../Novecentosanswide-UltraLight-webfont.eot | Bin 0 -> 21080 bytes .../Novecentosanswide-UltraLight-webfont.svg | 1 + .../Novecentosanswide-UltraLight-webfont.ttf | Bin 0 -> 55600 bytes .../Novecentosanswide-UltraLight-webfont.woff | Bin 0 -> 23476 bytes ...Novecentosanswide-UltraLight-webfont.woff2 | Bin 0 -> 18716 bytes publish/fonts/Work_Sans_200.eot | Bin 0 -> 24290 bytes publish/fonts/Work_Sans_200.svg | 1 + publish/fonts/Work_Sans_200.ttf | Bin 0 -> 49752 bytes publish/fonts/Work_Sans_200.woff | Bin 0 -> 25896 bytes publish/fonts/Work_Sans_200.woff2 | Bin 0 -> 21128 bytes publish/fonts/Work_Sans_300.eot | Bin 0 -> 24817 bytes publish/fonts/Work_Sans_300.svg | 1 + publish/fonts/Work_Sans_300.ttf | Bin 0 -> 50784 bytes publish/fonts/Work_Sans_300.woff | Bin 0 -> 26392 bytes publish/fonts/Work_Sans_300.woff2 | Bin 0 -> 21548 bytes publish/fonts/Work_Sans_500.eot | Bin 0 -> 26481 bytes publish/fonts/Work_Sans_500.svg | 1 + publish/fonts/Work_Sans_500.ttf | Bin 0 -> 54232 bytes publish/fonts/Work_Sans_500.woff | Bin 0 -> 27900 bytes publish/fonts/Work_Sans_500.woff2 | Bin 0 -> 22884 bytes publish/google052dbec2d053a4e1.html | 1 + publish/history/index.html | 5 + publish/history/index.xml | 1 + publish/images/clippy.svg | 1 + publish/images/favicon.png | Bin 0 -> 608 bytes publish/images/gopher-404.jpg | Bin 0 -> 206249 bytes publish/index.html | 28 + publish/index.json | 1 + publish/index.xml | 33 + publish/js/auto-complete.js | 3 + publish/js/clipboard.min.js | 7 + publish/js/featherlight.min.js | 9 + publish/js/highlight.pack.js | 6 + publish/js/hugo-learn.js | 94 ++ publish/js/jquery-3.3.1.min.js | 2 + publish/js/jquery.sticky.js | 288 +++++ publish/js/learn.js | 443 +++++++ publish/js/load-photoswipe.js | 80 ++ publish/js/lunr.min.js | 6 + publish/js/modernizr.custom-3.6.0.js | 3 + publish/js/perfect-scrollbar.jquery.min.js | 2 + publish/js/perfect-scrollbar.min.js | 2 + publish/js/search.js | 93 ++ publish/logo.png | Bin 0 -> 9804 bytes publish/mermaid/mermaid.js | 32 + publish/plc/architecture/index.html | 15 + publish/plc/example-set-up/index.html | 424 ++++++ publish/plc/index.html | 8 + publish/plc/index.xml | 4 + publish/sitemap.xml | 1 + publish/tags/index.html | 3 + publish/tags/index.xml | 1 + publish/tutorial/configuration/index.html | 719 ++++++++++ publish/tutorial/crud-book/index.html | 415 ++++++ publish/tutorial/index.html | 8 + publish/tutorial/index.xml | 6 + publish/tutorial/model/index.html | 120 ++ publish/webfonts/fa-brands-400.eot | Bin 0 -> 134396 bytes publish/webfonts/fa-brands-400.svg | 1 + publish/webfonts/fa-brands-400.ttf | Bin 0 -> 134160 bytes publish/webfonts/fa-brands-400.woff | Bin 0 -> 87048 bytes publish/webfonts/fa-brands-400.woff2 | Bin 0 -> 74288 bytes publish/webfonts/fa-regular-400.eot | Bin 0 -> 40308 bytes publish/webfonts/fa-regular-400.svg | 1 + publish/webfonts/fa-regular-400.ttf | Bin 0 -> 40080 bytes publish/webfonts/fa-regular-400.woff | Bin 0 -> 18164 bytes publish/webfonts/fa-regular-400.woff2 | Bin 0 -> 14872 bytes publish/webfonts/fa-solid-900.eot | Bin 0 -> 209012 bytes publish/webfonts/fa-solid-900.svg | 1 + publish/webfonts/fa-solid-900.ttf | Bin 0 -> 208792 bytes publish/webfonts/fa-solid-900.woff | Bin 0 -> 102224 bytes publish/webfonts/fa-solid-900.woff2 | Bin 0 -> 79100 bytes 131 files changed, 7509 insertions(+) create mode 100644 publish/404.html create mode 100644 publish/api/index.html create mode 100644 publish/api/index.xml create mode 100644 publish/assets/images/Strolch-Bird-View.svg create mode 100644 publish/assets/images/Strolch-PLC-Architecture-Overview.png create mode 100644 publish/assets/images/Strolch-PLC-Architecture.png create mode 100644 publish/assets/images/Strolch-Plc-Example.png create mode 100644 publish/assets/images/Strolch-Squirrel-View.svg create mode 100644 publish/assets/images/git-seeklogo.com.svg create mode 100644 publish/assets/images/intellij-idea-seeklogo.com.svg create mode 100644 publish/assets/images/maven-seeklogo.com.svg create mode 100644 publish/assets/images/strolch-model-example.png create mode 100644 publish/assets/xsd/StrolchModel-1.6.xsd create mode 100644 publish/categories/index.html create mode 100644 publish/categories/index.xml create mode 100644 publish/css/atom-one-dark-reasonable.css create mode 100644 publish/css/auto-complete.css create mode 100644 publish/css/featherlight.min.css create mode 100644 publish/css/fontawesome-all.min.css create mode 100644 publish/css/hugo-easy-gallery.css create mode 100644 publish/css/hugo-theme.css create mode 100644 publish/css/hybrid.css create mode 100644 publish/css/nucleus.css create mode 100644 publish/css/perfect-scrollbar.min.css create mode 100644 publish/css/tags.css create mode 100644 publish/css/theme-blue.css create mode 100644 publish/css/theme-green.css create mode 100644 publish/css/theme-red.css create mode 100644 publish/css/theme.css create mode 100644 publish/development/index.html create mode 100644 publish/development/index.xml create mode 100644 publish/documentation/architecture/index.html create mode 100644 publish/documentation/components/index.html create mode 100644 publish/documentation/do-and-donts/index.html create mode 100644 publish/documentation/index.html create mode 100644 publish/documentation/index.xml create mode 100644 publish/documentation/model/index.html create mode 100644 publish/documentation/observers/index.html create mode 100644 publish/documentation/policies/index.html create mode 100644 publish/documentation/priviles/index.html create mode 100644 publish/documentation/queries/index.html create mode 100644 publish/documentation/realms/index.html create mode 100644 publish/documentation/reports/index.html create mode 100644 publish/documentation/runtime-configuration/index.html create mode 100644 publish/documentation/searches/index.html create mode 100644 publish/documentation/services-and-commands/index.html create mode 100644 publish/documentation/transactions/index.html create mode 100644 publish/documentation/versioning/index.html create mode 100644 publish/download/index.html create mode 100644 publish/download/index.xml create mode 100644 publish/fonts/Inconsolata.eot create mode 100644 publish/fonts/Inconsolata.svg create mode 100644 publish/fonts/Inconsolata.ttf create mode 100644 publish/fonts/Inconsolata.woff create mode 100644 publish/fonts/Novecentosanswide-Normal-webfont.eot create mode 100644 publish/fonts/Novecentosanswide-Normal-webfont.svg create mode 100644 publish/fonts/Novecentosanswide-Normal-webfont.ttf create mode 100644 publish/fonts/Novecentosanswide-Normal-webfont.woff create mode 100644 publish/fonts/Novecentosanswide-Normal-webfont.woff2 create mode 100644 publish/fonts/Novecentosanswide-UltraLight-webfont.eot create mode 100644 publish/fonts/Novecentosanswide-UltraLight-webfont.svg create mode 100644 publish/fonts/Novecentosanswide-UltraLight-webfont.ttf create mode 100644 publish/fonts/Novecentosanswide-UltraLight-webfont.woff create mode 100644 publish/fonts/Novecentosanswide-UltraLight-webfont.woff2 create mode 100644 publish/fonts/Work_Sans_200.eot create mode 100644 publish/fonts/Work_Sans_200.svg create mode 100644 publish/fonts/Work_Sans_200.ttf create mode 100644 publish/fonts/Work_Sans_200.woff create mode 100644 publish/fonts/Work_Sans_200.woff2 create mode 100644 publish/fonts/Work_Sans_300.eot create mode 100644 publish/fonts/Work_Sans_300.svg create mode 100644 publish/fonts/Work_Sans_300.ttf create mode 100644 publish/fonts/Work_Sans_300.woff create mode 100644 publish/fonts/Work_Sans_300.woff2 create mode 100644 publish/fonts/Work_Sans_500.eot create mode 100644 publish/fonts/Work_Sans_500.svg create mode 100644 publish/fonts/Work_Sans_500.ttf create mode 100644 publish/fonts/Work_Sans_500.woff create mode 100644 publish/fonts/Work_Sans_500.woff2 create mode 100644 publish/google052dbec2d053a4e1.html create mode 100644 publish/history/index.html create mode 100644 publish/history/index.xml create mode 100644 publish/images/clippy.svg create mode 100644 publish/images/favicon.png create mode 100644 publish/images/gopher-404.jpg create mode 100644 publish/index.html create mode 100644 publish/index.json create mode 100644 publish/index.xml create mode 100644 publish/js/auto-complete.js create mode 100644 publish/js/clipboard.min.js create mode 100644 publish/js/featherlight.min.js create mode 100644 publish/js/highlight.pack.js create mode 100644 publish/js/hugo-learn.js create mode 100644 publish/js/jquery-3.3.1.min.js create mode 100755 publish/js/jquery.sticky.js create mode 100644 publish/js/learn.js create mode 100644 publish/js/load-photoswipe.js create mode 100644 publish/js/lunr.min.js create mode 100644 publish/js/modernizr.custom-3.6.0.js create mode 100644 publish/js/perfect-scrollbar.jquery.min.js create mode 100644 publish/js/perfect-scrollbar.min.js create mode 100644 publish/js/search.js create mode 100644 publish/logo.png create mode 100644 publish/mermaid/mermaid.js create mode 100644 publish/plc/architecture/index.html create mode 100644 publish/plc/example-set-up/index.html create mode 100644 publish/plc/index.html create mode 100644 publish/plc/index.xml create mode 100644 publish/sitemap.xml create mode 100644 publish/tags/index.html create mode 100644 publish/tags/index.xml create mode 100644 publish/tutorial/configuration/index.html create mode 100644 publish/tutorial/crud-book/index.html create mode 100644 publish/tutorial/index.html create mode 100644 publish/tutorial/index.xml create mode 100644 publish/tutorial/model/index.html create mode 100644 publish/webfonts/fa-brands-400.eot create mode 100644 publish/webfonts/fa-brands-400.svg create mode 100644 publish/webfonts/fa-brands-400.ttf create mode 100644 publish/webfonts/fa-brands-400.woff create mode 100644 publish/webfonts/fa-brands-400.woff2 create mode 100644 publish/webfonts/fa-regular-400.eot create mode 100644 publish/webfonts/fa-regular-400.svg create mode 100644 publish/webfonts/fa-regular-400.ttf create mode 100644 publish/webfonts/fa-regular-400.woff create mode 100644 publish/webfonts/fa-regular-400.woff2 create mode 100644 publish/webfonts/fa-solid-900.eot create mode 100644 publish/webfonts/fa-solid-900.svg create mode 100644 publish/webfonts/fa-solid-900.ttf create mode 100644 publish/webfonts/fa-solid-900.woff create mode 100644 publish/webfonts/fa-solid-900.woff2 diff --git a/publish/404.html b/publish/404.html new file mode 100644 index 0000000..c5a8fa0 --- /dev/null +++ b/publish/404.html @@ -0,0 +1 @@ +404 Page not found

Error

Woops. Looks like this page doesn't exist ¯\_(ツ)_/¯.

Go to homepage

Page not found!

\ No newline at end of file diff --git a/publish/api/index.html b/publish/api/index.html new file mode 100644 index 0000000..e1687b1 --- /dev/null +++ b/publish/api/index.html @@ -0,0 +1,139 @@ +API - Strolch

API

Overview

The Strolch API revolves around the StrolchTransaction object. The main +concept is to implement your use cases in Service implementations. You +open a transaction using the openTx(String)-method and then perform the +use case by adding your Command instances to the transaction.

Transactions are opened on a StrolchRealm. The realms are used to +separate mandates in a single runtime instance of Strolch. Each realm +has its own ResourceMap, OrderMap, ActivityMap instances from which the +TX retrieves the elements.

Model

The Strolch model is implemented in the project li.strolch.model.

The Strolch model consists of three root level elements: Resource, +Order and Activity. Each element has at least the following attributes:

  • Id → the element’s id
  • Name → the element’s name
  • Type → the element’s type

Each root element can have any number of ParameterBag instances on it, +which in turn can have any number of Parameters on it. Accessing these +objects is always done by their IDs. Strolch root elements are always +stored in the respective ElementMaps in their Strolch realm. Thus +accessing a certain parameter from a Resource would look like this:

try (StrolchTransaction tx = openTx(realmName)) {
+  Resource resource = tx.getResourceBy("TestType", "MyTestResource");
+  Date date = resource.getDate("@bag01", "@param6");
+  logger.info("@param6 date is " + date);
+}
+

XML Presentation of Strolch’s top level elements of Resources:

<!-- Resource instance -->
+<Resource Id="MyTestResource" Name="Test Name" Type="TestType">
+  <ParameterBag Id="@bag01" Name="Test Bag" Type="TestBag">
+    <Parameter Id="@param7" Name="StringList Param" Type="StringList" Value="Hello;World" />
+    <Parameter Id="@param6" Name="Date Param" Type="Date" Value="2012-11-30T18:12:05.628+01:00" />
+    <Parameter Id="@param5" Name="String Param" Type="String" Value="Strolch" />
+  </ParameterBag>
+  <ParameterBag Id="@bag02" Name="Test Bag" Type="TestBag">
+    <Parameter Id="@param4" Name="Long Param" Type="Long" Value="4453234566" />
+    <Parameter Id="@param3" Name="Integer Param" Type="Integer" Value="77" />
+    <Parameter Id="@param2" Name="Float Param" Type="Float" Value="44.3" />
+    <Parameter Id="@param1" Name="Boolean Param" Type="Boolean" Value="true" />
+  </ParameterBag>
+  <TimedState Id="@integerState" Name="Integer State" Type="IntegerState">
+    <Value Time="0" Value="1" />
+    <Value Time="1" Value="2" />
+    <Value Time="2" Value="3" />
+  </TimedState>
+</Resource>
+

XML Presentation of Strolch’s top level elements of Orders:

<!-- Order instance -->
+<Order Id="MyTestOrder" Name="Test Name" Type="TestType" Date="2013-11-20T07:42:57.699Z" State="CREATED">
+  <ParameterBag Id="@bag01" Name="Test Bag" Type="TestBag">
+    <Parameter Id="@param7" Name="StringList Param" Type="StringList" Value="Hello;World" />
+    <Parameter Id="@param6" Name="Date Param" Type="Date" Value="2012-11-30T18:12:05.628+01:00" />
+    <Parameter Id="@param5" Name="String Param" Type="String" Value="Strolch" />
+  </ParameterBag>
+  <ParameterBag Id="@bag02" Name="Test Bag" Type="TestBag">
+    <Parameter Id="@param4" Name="Long Param" Type="Long" Value="4453234566" />
+    <Parameter Id="@param3" Name="Integer Param" Type="Integer" Value="77" />
+    <Parameter Id="@param2" Name="Float Param" Type="Float" Value="44.3" />
+    <Parameter Id="@param1" Name="Boolean Param" Type="Boolean" Value="true" />
+  </ParameterBag>
+</Order>
+

XML Presentation of Strolch’s top level elements of Activities:

<!-- Activity instance -->
+<Activity Id="bicycleProduction" Name="Bicycle Production" Type="Series">
+
+    <Activity Id="componentProduction" Name="Production of components" Type="Series">
+
+        <Action Id="consumeGears" Name="Gears"
+                ResourceId="gears" ResourceType="Article" Type="Consume">
+            <ParameterBag Id="objectives" Name="Production goals" Type="Objectives">
+                <Parameter Id="quantity" Name="Quantity" Type="Float" Value="1" />
+                <Parameter Id="duration" Name="Duration" Type="Duration" Value="PT0S" />
+            </ParameterBag>
+        </Action>
+
+        <Activity Id="frameProduction" Name="Production frame" Type="Series">
+            <Action Id="produce" Name="Production frame"
+                    ResourceId="frameProduction" ResourceType="Machine" Type="Use">
+                <ParameterBag Id="objectives" Name="Production goals" Type="Objectives">
+                    <Parameter Id="quantity" Name="Quantity" Type="Float" Value="1" />
+                    <Parameter Id="duration" Name="Duration" Type="Duration" Value="PT5M" />
+                </ParameterBag>
+            </Action>
+            <Action Id="toStock" Name="Frame ToStock"
+                    ResourceId="frame" ResourceType="Article" Type="Produce">
+                <ParameterBag Id="objectives" Name="Production goals" Type="Objectives">
+                    <Parameter Id="quantity" Name="Quantity" Type="Float" Value="1" />
+                    <Parameter Id="duration" Name="Duration" Type="Duration" Value="PT1M" />
+                </ParameterBag>
+            </Action>
+        </Activity>
+
+        <Activity Id="brakeProduction" Type="Series" Name="Herstellen Bremsen" TimeOrdering="Series">
+            <Action Id="produce" Name="Production saddle"
+                    ResourceId="saddleProduction" ResourceType="Machine" Type="Use">
+                <ParameterBag Id="objectives" Name="Production goals" Type="Objectives">
+                    <Parameter Id="quantity" Name="Quantity" Type="Float" Value="1" />
+                    <Parameter Id="duration" Name="Duration" Type="Duration" Value="PT5M" />
+                </ParameterBag>
+            </Action>
+            <Action Id="toStock" Name="Saddle ToStock"
+                    ResourceId="frame" ResourceType="Article" Type="Produce">
+                <ParameterBag Id="objectives" Name="Production goals" Type="Objectives">
+                    <Parameter Id="quantity" Name="Quantity" Type="Float" Value="1" />
+                    <Parameter Id="duration" Name="Duration" Type="Duration" Value="PT1M" />
+                </ParameterBag>
+            </Action>
+        </Activity>
+
+    </Activity>
+
+    <Action Id="assembly" Name="Bicycle assemble"
+            ResourceId="bicycleAssembly" ResourceType="Assembly" Type="Use">
+        <ParameterBag Id="objectives" Name="Production goals" Type="Objectives">
+            <Parameter Id="quantity" Name="Quantity" Type="Float" Value="1" />
+            <Parameter Id="duration" Name="Duration" Type="Duration" Value="PT5M" />
+        </ParameterBag>
+    </Action>
+
+    <Action Id="toStock" Name="Bicycle to stock"
+            ResourceId="bicycle" ResourceType="Product" Type="Produce">
+        <ParameterBag Id="objectives" Name="Production goals" Type="Objectives">
+            <Parameter Id="quantity" Name="Quantity" Type="Float" Value="1" />
+            <Parameter Id="duration" Name="Duration" Type="Duration" Value="PT1M" />
+        </ParameterBag>
+    </Action>
+</Activity>
+

Realms

Strolch realms implement the multi-client capability which is thus baked right +into the Strolch runtime. When configuring a Strolch runtime, realms are +configured and for each realm the data store mode is set. Each realm has its +own persistence configuration and can thus run in one of the 4 modes that the +Strolch agent implements:

  • EMPTY +This is a transient data store mode, where no model changes are persisted, +but they are only kept in memory. When the Strolch agent is started, this +realm stays empty as no data is loaded.
  • TRANSIENT +This is the same as EMPTY, but with the difference that when the Strolch +agent is started, an XML file is parsed and the in memory realm is populated +with the elements parsed from that XML file.
  • CACHED +In this mode, all data is stored in memory, and any changes made are written +back to the persistence layer. This allows for fast in-memory quries, but +makes sure no data is lost when the agent is restarted.

Strolch Realms are also responsible for opening Transactions, as these are +bound to the persistence layer configured for this realm. At runtime, a realm +is then accessed from the ComponentContainer:

ComponentContainer container = getAgent().getContainer();
+StrolchRealm realm = container.getRealm(StrolchConstants.DEFAULT_REALM);
+try(StrolchTransaction tx = realm.openTx()) {
+  Resource resource = tx.getResourceBy("TestType", "MyTestResource");
+  ...
+}
+
\ No newline at end of file diff --git a/publish/api/index.xml b/publish/api/index.xml new file mode 100644 index 0000000..e95a209 --- /dev/null +++ b/publish/api/index.xml @@ -0,0 +1 @@ +API on Strolchhttps://strolch.li/api/Recent content in API on StrolchHugo -- gohugo.ioen-us \ No newline at end of file diff --git a/publish/assets/images/Strolch-Bird-View.svg b/publish/assets/images/Strolch-Bird-View.svg new file mode 100644 index 0000000..df7f1c5 --- /dev/null +++ b/publish/assets/images/Strolch-Bird-View.svg @@ -0,0 +1,2 @@ + +
Browser / Other
Browser / Other
Strolch Agent
Strolch Agent
REST API (JSON / XML)
REST API (JSON / XML)
JDBC (JSON / XML)
JDBC (JSON / XML)
Presentation
Presentation
Business
Business
Database
Database
External Systems
(Agents, ERP, etc.)
[Not supported by viewer]
Any API, preferred REST with JSON
Any API, preferred REST with JSON
System
System
\ No newline at end of file diff --git a/publish/assets/images/Strolch-PLC-Architecture-Overview.png b/publish/assets/images/Strolch-PLC-Architecture-Overview.png new file mode 100644 index 0000000000000000000000000000000000000000..67592f64a30164dfbeaff3c705c85784a6195a18 GIT binary patch literal 34401 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 DygzHQ literal 0 HcmV?d00001 diff --git a/publish/assets/images/Strolch-PLC-Architecture.png b/publish/assets/images/Strolch-PLC-Architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..8913eddb9768717fa1ab2c46fc5fcc343fdfa311 GIT binary patch literal 39995 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 literal 0 HcmV?d00001 diff --git a/publish/assets/images/Strolch-Squirrel-View.svg b/publish/assets/images/Strolch-Squirrel-View.svg new file mode 100644 index 0000000..b070992 --- /dev/null +++ b/publish/assets/images/Strolch-Squirrel-View.svg @@ -0,0 +1,2 @@ + +
Strolch Agent
Strolch Agent
Services
Services
Commands
Commands
REST Endpoints
REST Endpoints
DAOs
DAOs
ResourceMap
ResourceMap
ActivityMap
ActivityMap
OrderMap
OrderMap
Realm n
Realm n
Component X
Component X
Component Y
Component Y
Component Z
Component Z
Search API
Search API
Privileges
Privileges
Transactions
Transactions
Observers
Observers
Versioning
Versioning
Policies
Policies
Audits
Audits
\ No newline at end of file diff --git a/publish/assets/images/git-seeklogo.com.svg b/publish/assets/images/git-seeklogo.com.svg new file mode 100644 index 0000000..5cf773f --- /dev/null +++ b/publish/assets/images/git-seeklogo.com.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/publish/assets/images/intellij-idea-seeklogo.com.svg b/publish/assets/images/intellij-idea-seeklogo.com.svg new file mode 100644 index 0000000..5fc9145 --- /dev/null +++ b/publish/assets/images/intellij-idea-seeklogo.com.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/publish/assets/images/maven-seeklogo.com.svg b/publish/assets/images/maven-seeklogo.com.svg new file mode 100644 index 0000000..d8c6ef7 --- /dev/null +++ b/publish/assets/images/maven-seeklogo.com.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/publish/assets/images/strolch-model-example.png b/publish/assets/images/strolch-model-example.png new file mode 100644 index 0000000000000000000000000000000000000000..f88f79bc7a41fc2ce27ff8db06ac5431de7c9bef GIT binary patch literal 20086 zcma*O2RN1u-#>my*_D}$NXRN8DO<7$A$w)-J+q~<$xJp`*;_Ul84(h)ce3~9_dW0X zxu5s_zwh%N$N#vG)^%U5>m1+lS!aN}toUUdavT&2by-qEL;;1m;0}M!#KM5zg@zQk zP$>M3mrAM*3NM^*+SpkenOYd$ba1sXylLoSYJ@_${K}6rkI?vR=Xb78qJ3e4@eXD$ z)_P;te(cSRxV~ts;VY2}599eT!#?G8-}#<+e$=~s_DVdIzFPCcpmy%!JGV94jpmcZ z&BGh+o`RF%BV0PF!Wy5}I zU*dyWVZ+dfa|*HG`rGx%0Aet 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 + + + + This is Version 1.6.x of the StrolchModel XSD. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/publish/categories/index.html b/publish/categories/index.html new file mode 100644 index 0000000..a5e76c3 --- /dev/null +++ b/publish/categories/index.html @@ -0,0 +1,3 @@ +Categories - Strolch

category :: +Categories

    \ No newline at end of file diff --git a/publish/categories/index.xml b/publish/categories/index.xml new file mode 100644 index 0000000..98eb24f --- /dev/null +++ b/publish/categories/index.xml @@ -0,0 +1 @@ +Categories on Strolchhttps://strolch.li/categories/Recent content in Categories on StrolchHugo -- gohugo.ioen-us \ No newline at end of file diff --git a/publish/css/atom-one-dark-reasonable.css b/publish/css/atom-one-dark-reasonable.css new file mode 100644 index 0000000..fd41c99 --- /dev/null +++ b/publish/css/atom-one-dark-reasonable.css @@ -0,0 +1,77 @@ +/* + +Atom One Dark With support for ReasonML by Gidi Morris, based off work by Daniel Gamage + +Original One Dark Syntax theme from https://github.com/atom/one-dark-syntax + +*/ +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + line-height: 1.3em; + color: #abb2bf; + background: #282c34; + border-radius: 5px; +} +.hljs-keyword, .hljs-operator { + color: #F92672; +} +.hljs-pattern-match { + color: #F92672; +} +.hljs-pattern-match .hljs-constructor { + color: #61aeee; +} +.hljs-function { + color: #61aeee; +} +.hljs-function .hljs-params { + color: #A6E22E; +} +.hljs-function .hljs-params .hljs-typing { + color: #FD971F; +} +.hljs-module-access .hljs-module { + color: #7e57c2; +} +.hljs-constructor { + color: #e2b93d; +} +.hljs-constructor .hljs-string { + color: #9CCC65; +} +.hljs-comment, .hljs-quote { + color: #b18eb1; + font-style: italic; +} +.hljs-doctag, .hljs-formula { + color: #c678dd; +} +.hljs-section, .hljs-name, .hljs-selector-tag, .hljs-deletion, .hljs-subst { + color: #e06c75; +} +.hljs-literal { + color: #56b6c2; +} +.hljs-string, .hljs-regexp, .hljs-addition, .hljs-attribute, .hljs-meta-string { + color: #98c379; +} +.hljs-built_in, .hljs-class .hljs-title { + color: #e6c07b; +} +.hljs-attr, .hljs-variable, .hljs-template-variable, .hljs-type, .hljs-selector-class, .hljs-selector-attr, .hljs-selector-pseudo, .hljs-number { + color: #d19a66; +} +.hljs-symbol, .hljs-bullet, .hljs-link, .hljs-meta, .hljs-selector-id, .hljs-title { + color: #61aeee; +} +.hljs-emphasis { + font-style: italic; +} +.hljs-strong { + font-weight: bold; +} +.hljs-link { + text-decoration: underline; +} diff --git a/publish/css/auto-complete.css b/publish/css/auto-complete.css new file mode 100644 index 0000000..ac6979a --- /dev/null +++ b/publish/css/auto-complete.css @@ -0,0 +1,47 @@ +.autocomplete-suggestions { + text-align: left; + cursor: default; + border: 1px solid #ccc; + border-top: 0; + background: #fff; + box-shadow: -1px 1px 3px rgba(0,0,0,.1); + + /* core styles should not be changed */ + position: absolute; + display: none; + z-index: 9999; + max-height: 254px; + overflow: hidden; + overflow-y: auto; + box-sizing: border-box; + +} +.autocomplete-suggestion { + position: relative; + cursor: pointer; + padding: 7px; + line-height: 23px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + color: #333; +} + +.autocomplete-suggestion b { + font-weight: normal; + color: #1f8dd6; +} + +.autocomplete-suggestion.selected { + background: #333; + color: #fff; +} + +.autocomplete-suggestion:hover { + background: #444; + color: #fff; +} + +.autocomplete-suggestion > .context { + font-size: 12px; +} diff --git a/publish/css/featherlight.min.css b/publish/css/featherlight.min.css new file mode 100644 index 0000000..058487f --- /dev/null +++ b/publish/css/featherlight.min.css @@ -0,0 +1,8 @@ +/** + * Featherlight - ultra slim jQuery lightbox + * Version 1.7.13 - http://noelboss.github.io/featherlight/ + * + * Copyright 2018, Noël Raoul Bossart (http://www.noelboss.com) + * MIT Licensed. +**/ +html.with-featherlight{overflow:hidden}.featherlight{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:2147483647;text-align:center;white-space:nowrap;cursor:pointer;background:#333;background:rgba(0,0,0,0)}.featherlight:last-of-type{background:rgba(0,0,0,.8)}.featherlight:before{content:'';display:inline-block;height:100%;vertical-align:middle}.featherlight .featherlight-content{position:relative;text-align:left;vertical-align:middle;display:inline-block;overflow:auto;padding:25px 25px 0;border-bottom:25px solid transparent;margin-left:5%;margin-right:5%;max-height:95%;background:#fff;cursor:auto;white-space:normal}.featherlight .featherlight-inner{display:block}.featherlight link.featherlight-inner,.featherlight script.featherlight-inner,.featherlight style.featherlight-inner{display:none}.featherlight .featherlight-close-icon{position:absolute;z-index:9999;top:0;right:0;line-height:25px;width:25px;cursor:pointer;text-align:center;font-family:Arial,sans-serif;background:#fff;background:rgba(255,255,255,.3);color:#000;border:0;padding:0}.featherlight .featherlight-close-icon::-moz-focus-inner{border:0;padding:0}.featherlight .featherlight-image{width:100%}.featherlight-iframe .featherlight-content{border-bottom:0;padding:0;-webkit-overflow-scrolling:touch}.featherlight iframe{border:0}.featherlight *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@media only screen and (max-width:1024px){.featherlight .featherlight-content{margin-left:0;margin-right:0;max-height:98%;padding:10px 10px 0;border-bottom:10px solid transparent}}@media print{html.with-featherlight>*>:not(.featherlight){display:none}} \ No newline at end of file diff --git a/publish/css/fontawesome-all.min.css b/publish/css/fontawesome-all.min.css new file mode 100644 index 0000000..de56473 --- /dev/null +++ b/publish/css/fontawesome-all.min.css @@ -0,0 +1 @@ +.fa,.fab,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adobe:before{content:"\f778"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-balance-scale:before{content:"\f24e"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hanukiah:before{content:"\f6e6"}.fa-hashtag:before{content:"\f292"}.fa-hat-wizard:before{content:"\f6e8"}.fa-haykal:before{content:"\f666"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hot-tub:before{content:"\f593"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-icicles:before{content:"\f7ad"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-nintendo-switch:before{content:"\f418"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-carry:before{content:"\f4ce"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-volume:before{content:"\f2a0"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:normal;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:"Font Awesome 5 Free"}.fa,.fas{font-weight:900} \ No newline at end of file diff --git a/publish/css/hugo-easy-gallery.css b/publish/css/hugo-easy-gallery.css new file mode 100644 index 0000000..d78dfec --- /dev/null +++ b/publish/css/hugo-easy-gallery.css @@ -0,0 +1,159 @@ +/* +Put this file in /static/css/hugo-easy-gallery.css +Documentation and licence at https://github.com/liwenyip/hugo-easy-gallery/ +*/ + + +/* +Grid Layout Styles +*/ +.gallery { + overflow: hidden; + margin: 10px; + max-width: 768px; +} +.gallery .box { + float: left; + position: relative; + /* Default: 1 tile wide */ + width: 100%; + padding-bottom: 100%; +} +@media only screen and (min-width : 365px) { + /* Tablet view: 2 tiles */ + .gallery .box { + width: 50%; + padding-bottom: 50%; + } +} +@media only screen and (min-width : 480px) { + /* Small desktop / ipad view: 3 tiles */ + .gallery .box { + width: 33.3%; + padding-bottom: 33.3%; /* */ + } +} +@media only screen and (min-width : 9999px) { + /* Medium desktop: 4 tiles */ + .box { + width: 25%; + padding-bottom: 25%; + } +} + +/* +Transition styles +*/ +.gallery.hover-transition figure, +.gallery.hover-effect-zoom .img, +.gallery:not(.caption-effect-appear) figcaption, +.fancy-figure:not(.caption-effect-appear) figcaption { + -webkit-transition: all 0.3s ease-in-out; + -moz-transition: all 0.3s ease-in-out; + -o-transition: all 0.3s ease-in-out; + transition: all 0.3s ease-in-out; +} +/* +figure styles +*/ +figure { + position:relative; /* purely to allow absolution positioning of figcaption */ + overflow: hidden; +} +.gallery figure { + position: absolute; + left: 5px; + right: 5px; + top: 5px; + bottom: 5px; +} +.gallery.hover-effect-grow figure:hover { + transform: scale(1.05); +} +.gallery.hover-effect-shrink figure:hover { + transform: scale(0.95); +} +.gallery.hover-effect-slidedown figure:hover { + transform: translateY(5px); +} +.gallery.hover-effect-slideup figure:hover { + transform: translateY(-5px); +} + +/* +img / a styles +*/ + +.gallery .img { + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + background-size: cover; + background-position: 50% 50%; + background-repeat: no-repeat; +} +.gallery.hover-effect-zoom figure:hover .img { + transform: scale(1.05); +} +.gallery img { + display: none; /* only show the img if not inside a gallery */ +} +figure a { + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; +} + +/* +figcaption styles +*/ +.gallery figcaption, +.fancy-figure figcaption { + position: absolute; + bottom: 0; + left: 0; + right: 0; + background: #000; + color: #FFF; + text-align: center; + font-size: 75%; /* change this if you want bigger text */ + background: rgba(0, 0, 0, 0.5); + opacity: 1; + cursor: pointer; +} +.gallery.caption-position-none figcaption, +.fancy-figure.caption-position-none figcaption { + display: none; +} +.gallery.caption-position-center figcaption, +.fancy-figure.caption-position-center figcaption { + top: 0; + padding: 40% 5px; +} +.gallery.caption-position-bottom figcaption, +.fancy-figure.caption-position-bottom figcaption { + padding: 5px; +} +.gallery.caption-effect-fade figure:not(:hover) figcaption, +.gallery.caption-effect-appear figure:not(:hover) figcaption, +.fancy-figure.caption-effect-fade figure:not(:hover) figcaption, +.fancy-figure.caption-effect-appear figure:not(:hover) figcaption { + background: rgba(0, 0, 0, 0); + opacity: 0; +} +.gallery.caption-effect-slide.caption-position-bottom figure:not(:hover) figcaption, +.fancy-figure.caption-effect-slide.caption-position-bottom figure:not(:hover) figcaption { + margin-bottom: -100%; +} +.gallery.caption-effect-slide.caption-position-center figure:not(:hover) figcaption, +.fancy-figure.caption-effect-slide.caption-position-center figure:not(:hover) figcaption { + top: 100%; +} +figcaption p { + margin: auto; /* override style in theme */ +} + diff --git a/publish/css/hugo-theme.css b/publish/css/hugo-theme.css new file mode 100644 index 0000000..741cab1 --- /dev/null +++ b/publish/css/hugo-theme.css @@ -0,0 +1,254 @@ +/* Insert here special css for hugo theme, on top of any other imported css */ + + +/* Table of contents */ + +.progress ul { + list-style: none; + margin: 0; + padding: 0 5px; +} + +#TableOfContents { + font-size: 13px !important; + max-height: 85vh; + overflow: auto; + padding: 15px !important; +} + + +#TableOfContents > ul > li > ul > li > ul li { + margin-right: 8px; +} + +#TableOfContents > ul > li > a { + font-weight: bold; padding: 0 18px; margin: 0 2px; +} + +#TableOfContents > ul > li > ul > li > a { + font-weight: bold; +} + +#TableOfContents > ul > li > ul > li > ul > li > ul > li > ul > li { + display: none; +} + +body { + font-size: 16px !important; + color: #323232 !important; +} + +#body a.highlight, #body a.highlight:hover, #body a.highlight:focus { + text-decoration: none; + outline: none; + outline: 0; +} +#body a.highlight { + line-height: 1.1; + display: inline-block; +} +#body a.highlight:after { + display: block; + content: ""; + height: 1px; + width: 0%; + background-color: #0082a7; /*#CE3B2F*/ + -webkit-transition: width 0.5s ease; + -moz-transition: width 0.5s ease; + -ms-transition: width 0.5s ease; + transition: width 0.5s ease; +} +#body a.highlight:hover:after, #body a.highlight:focus:after { + width: 100%; +} +.progress { + position:absolute; + background-color: rgba(246, 246, 246, 0.97); + width: auto; + border: thin solid #ECECEC; + display:none; + z-index:200; +} + +#toc-menu { + border-right: thin solid #DAD8D8 !important; + padding-right: 1rem !important; + margin-right: 0.5rem !important; +} + +#sidebar-toggle-span { + border-right: thin solid #DAD8D8 !important; + padding-right: 0.5rem !important; + margin-right: 1rem !important; +} + +.btn { + display: inline-block !important; + padding: 6px 12px !important; + margin-bottom: 0 !important; + font-size: 14px !important; + font-weight: normal !important; + line-height: 1.42857143 !important; + text-align: center !important; + white-space: nowrap !important; + vertical-align: middle !important; + -ms-touch-action: manipulation !important; + touch-action: manipulation !important; + cursor: pointer !important; + -webkit-user-select: none !important; + -moz-user-select: none !important; + -ms-user-select: none !important; + user-select: none !important; + background-image: none !important; + border: 1px solid transparent !important; + border-radius: 4px !important; + -webkit-transition: all 0.15s !important; + -moz-transition: all 0.15s !important; + transition: all 0.15s !important; +} +.btn:focus { + /*outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px;*/ + outline: none !important; +} +.btn:hover, +.btn:focus { + color: #2b2b2b !important; + text-decoration: none !important; +} + +.btn-default { + color: #333 !important; + background-color: #fff !important; + border-color: #ccc !important; +} +.btn-default:hover, +.btn-default:focus, +.btn-default:active { + color: #fff !important; + background-color: #9e9e9e !important; + border-color: #9e9e9e !important; +} +.btn-default:active { + background-image: none !important; +} + +/* anchors */ +.anchor { + color: #00bdf3; + font-size: 0.5em; + cursor:pointer; + visibility:hidden; + margin-left: 0.5em; + position: absolute; + margin-top:0.1em; +} + +h2:hover .anchor, h3:hover .anchor, h4:hover .anchor, h5:hover .anchor, h6:hover .anchor { + visibility:visible; +} + +/* Redfines headers style */ + +h2, h3, h4, h5, h6 { + font-weight: 400; + line-height: 1.1; +} + +h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { + font-weight: inherit; +} + +h2 { + font-size: 2.5rem; + line-height: 110% !important; + margin: 2.5rem 0 1.5rem 0; +} + +h3 { + font-size: 2rem; + line-height: 110% !important; + margin: 2rem 0 1rem 0; +} + +h4 { + font-size: 1.5rem; + line-height: 110% !important; + margin: 1.5rem 0 0.75rem 0; +} + +h5 { + font-size: 1rem; + line-height: 110% !important; + margin: 1rem 0 0.2rem 0; +} + +h6 { + font-size: 0.5rem; + line-height: 110% !important; + margin: 0.5rem 0 0.2rem 0; +} + +p { + margin: 1rem 0; +} + +figcaption h4 { + font-weight: 300 !important; + opacity: .85; + font-size: 1em; + text-align: center; + margin-top: -1.5em; +} + +.select-style { + border: 0; + width: 150px; + border-radius: 0px; + overflow: hidden; + display: inline-flex; +} + +.select-style svg { + fill: #ccc; + width: 14px; + height: 14px; + pointer-events: none; + margin: auto; +} + +.select-style svg:hover { + fill: #e6e6e6; +} + +.select-style select { + padding: 0; + width: 130%; + border: none; + box-shadow: none; + background: transparent; + background-image: none; + -webkit-appearance: none; + margin: auto; + margin-left: 0px; + margin-right: -20px; +} + +.select-style select:focus { + outline: none; +} + +.select-style :hover { + cursor: pointer; +} + +@media only all and (max-width: 47.938em) { + #breadcrumbs .links, #top-github-link-text { + display: none; + } +} + +.is-sticky #top-bar { + box-shadow: -1px 2px 5px 1px rgba(0, 0, 0, 0.1); +} \ No newline at end of file diff --git a/publish/css/hybrid.css b/publish/css/hybrid.css new file mode 100644 index 0000000..29735a1 --- /dev/null +++ b/publish/css/hybrid.css @@ -0,0 +1,102 @@ +/* + +vim-hybrid theme by w0ng (https://github.com/w0ng/vim-hybrid) + +*/ + +/*background color*/ +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #1d1f21; +} + +/*selection color*/ +.hljs::selection, +.hljs span::selection { + background: #373b41; +} + +.hljs::-moz-selection, +.hljs span::-moz-selection { + background: #373b41; +} + +/*foreground color*/ +.hljs { + color: #c5c8c6; +} + +/*color: fg_yellow*/ +.hljs-title, +.hljs-name { + color: #f0c674; +} + +/*color: fg_comment*/ +.hljs-comment, +.hljs-meta, +.hljs-meta .hljs-keyword { + color: #707880; +} + +/*color: fg_red*/ +.hljs-number, +.hljs-symbol, +.hljs-literal, +.hljs-deletion, +.hljs-link { + color: #cc6666 +} + +/*color: fg_green*/ +.hljs-string, +.hljs-doctag, +.hljs-addition, +.hljs-regexp, +.hljs-selector-attr, +.hljs-selector-pseudo { + color: #b5bd68; +} + +/*color: fg_purple*/ +.hljs-attribute, +.hljs-code, +.hljs-selector-id { + color: #b294bb; +} + +/*color: fg_blue*/ +.hljs-keyword, +.hljs-selector-tag, +.hljs-bullet, +.hljs-tag { + color: #81a2be; +} + +/*color: fg_aqua*/ +.hljs-subst, +.hljs-variable, +.hljs-template-tag, +.hljs-template-variable { + color: #8abeb7; +} + +/*color: fg_orange*/ +.hljs-type, +.hljs-built_in, +.hljs-builtin-name, +.hljs-quote, +.hljs-section, +.hljs-selector-class { + color: #de935f; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/publish/css/nucleus.css b/publish/css/nucleus.css new file mode 100644 index 0000000..1897fc5 --- /dev/null +++ b/publish/css/nucleus.css @@ -0,0 +1,615 @@ +*, *::before, *::after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; } + +@-webkit-viewport { + width: device-width; } +@-moz-viewport { + width: device-width; } +@-ms-viewport { + width: device-width; } +@-o-viewport { + width: device-width; } +@viewport { + width: device-width; } +html { + font-size: 100%; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; } + +body { + margin: 0; } + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section, +summary { + display: block; } + +audio, +canvas, +progress, +video { + display: inline-block; + vertical-align: baseline; } + +audio:not([controls]) { + display: none; + height: 0; } + +[hidden], +template { + display: none; } + +a { + background: transparent; + text-decoration: none; } + +a:active, +a:hover { + outline: 0; } + +abbr[title] { + border-bottom: 1px dotted; } + +b, +strong { + font-weight: bold; } + +dfn { + font-style: italic; } + +mark { + background: #FFFF27; + color: #333; } + +sub, +sup { + font-size: 0.8rem; + line-height: 0; + position: relative; + vertical-align: baseline; } + +sup { + top: -0.5em; } + +sub { + bottom: -0.25em; } + +img { + border: 0; + max-width: 100%; } + +svg:not(:root) { + overflow: hidden; } + +figure { + margin: 1em 40px; } + +hr { + height: 0; } + +pre { + overflow: auto; } + +button, +input, +optgroup, +select, +textarea { + color: inherit; + font: inherit; + margin: 0; } + +button { + overflow: visible; } + +button, +select { + text-transform: none; } + +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; } + +button[disabled], +html input[disabled] { + cursor: default; } + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; } + +input { + line-height: normal; } + +input[type="checkbox"], +input[type="radio"] { + padding: 0; } + +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; } + +input[type="search"] { + -webkit-appearance: textfield; } + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; } + +legend { + border: 0; + padding: 0; } + +textarea { + overflow: auto; } + +optgroup { + font-weight: bold; } + +table { + border-collapse: collapse; + border-spacing: 0; + table-layout: fixed; + width: 100%; } + +tr, td, th { + vertical-align: middle; } + +th, td { + padding: 0.425rem 0; } + +th { + text-align: left; } + +.container { + width: 75em; + margin: 0 auto; + padding: 0; } + @media only all and (min-width: 60em) and (max-width: 74.938em) { + .container { + width: 60em; } } + @media only all and (min-width: 48em) and (max-width: 59.938em) { + .container { + width: 48em; } } + @media only all and (min-width: 30.063em) and (max-width: 47.938em) { + .container { + width: 30em; } } + @media only all and (max-width: 30em) { + .container { + width: 100%; } } + +.grid { + display: -webkit-box; + display: -moz-box; + display: box; + display: -webkit-flex; + display: -moz-flex; + display: -ms-flexbox; + display: flex; + -webkit-flex-flow: row; + -moz-flex-flow: row; + flex-flow: row; + list-style: none; + margin: 0; + padding: 0; } + @media only all and (max-width: 47.938em) { + .grid { + -webkit-flex-flow: row wrap; + -moz-flex-flow: row wrap; + flex-flow: row wrap; } } + +.block { + -webkit-box-flex: 1; + -moz-box-flex: 1; + box-flex: 1; + -webkit-flex: 1; + -moz-flex: 1; + -ms-flex: 1; + flex: 1; + min-width: 0; + min-height: 0; } + @media only all and (max-width: 47.938em) { + .block { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 100%; + -moz-flex: 0 100%; + -ms-flex: 0 100%; + flex: 0 100%; } } + +.content { + margin: 0.625rem; + padding: 0.938rem; } + +@media only all and (max-width: 47.938em) { + body [class*="size-"] { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 100%; + -moz-flex: 0 100%; + -ms-flex: 0 100%; + flex: 0 100%; } } + +.size-1-2 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 50%; + -moz-flex: 0 50%; + -ms-flex: 0 50%; + flex: 0 50%; } + +.size-1-3 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 33.33333%; + -moz-flex: 0 33.33333%; + -ms-flex: 0 33.33333%; + flex: 0 33.33333%; } + +.size-1-4 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 25%; + -moz-flex: 0 25%; + -ms-flex: 0 25%; + flex: 0 25%; } + +.size-1-5 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 20%; + -moz-flex: 0 20%; + -ms-flex: 0 20%; + flex: 0 20%; } + +.size-1-6 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 16.66667%; + -moz-flex: 0 16.66667%; + -ms-flex: 0 16.66667%; + flex: 0 16.66667%; } + +.size-1-7 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 14.28571%; + -moz-flex: 0 14.28571%; + -ms-flex: 0 14.28571%; + flex: 0 14.28571%; } + +.size-1-8 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 12.5%; + -moz-flex: 0 12.5%; + -ms-flex: 0 12.5%; + flex: 0 12.5%; } + +.size-1-9 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 11.11111%; + -moz-flex: 0 11.11111%; + -ms-flex: 0 11.11111%; + flex: 0 11.11111%; } + +.size-1-10 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 10%; + -moz-flex: 0 10%; + -ms-flex: 0 10%; + flex: 0 10%; } + +.size-1-11 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 9.09091%; + -moz-flex: 0 9.09091%; + -ms-flex: 0 9.09091%; + flex: 0 9.09091%; } + +.size-1-12 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 8.33333%; + -moz-flex: 0 8.33333%; + -ms-flex: 0 8.33333%; + flex: 0 8.33333%; } + +@media only all and (min-width: 48em) and (max-width: 59.938em) { + .size-tablet-1-2 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 50%; + -moz-flex: 0 50%; + -ms-flex: 0 50%; + flex: 0 50%; } + + .size-tablet-1-3 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 33.33333%; + -moz-flex: 0 33.33333%; + -ms-flex: 0 33.33333%; + flex: 0 33.33333%; } + + .size-tablet-1-4 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 25%; + -moz-flex: 0 25%; + -ms-flex: 0 25%; + flex: 0 25%; } + + .size-tablet-1-5 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 20%; + -moz-flex: 0 20%; + -ms-flex: 0 20%; + flex: 0 20%; } + + .size-tablet-1-6 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 16.66667%; + -moz-flex: 0 16.66667%; + -ms-flex: 0 16.66667%; + flex: 0 16.66667%; } + + .size-tablet-1-7 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 14.28571%; + -moz-flex: 0 14.28571%; + -ms-flex: 0 14.28571%; + flex: 0 14.28571%; } + + .size-tablet-1-8 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 12.5%; + -moz-flex: 0 12.5%; + -ms-flex: 0 12.5%; + flex: 0 12.5%; } + + .size-tablet-1-9 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 11.11111%; + -moz-flex: 0 11.11111%; + -ms-flex: 0 11.11111%; + flex: 0 11.11111%; } + + .size-tablet-1-10 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 10%; + -moz-flex: 0 10%; + -ms-flex: 0 10%; + flex: 0 10%; } + + .size-tablet-1-11 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 9.09091%; + -moz-flex: 0 9.09091%; + -ms-flex: 0 9.09091%; + flex: 0 9.09091%; } + + .size-tablet-1-12 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + -webkit-flex: 0 8.33333%; + -moz-flex: 0 8.33333%; + -ms-flex: 0 8.33333%; + flex: 0 8.33333%; } } +@media only all and (max-width: 47.938em) { + @supports not (flex-wrap: wrap) { + .grid { + display: block; + -webkit-box-lines: inherit; + -moz-box-lines: inherit; + box-lines: inherit; + -webkit-flex-wrap: inherit; + -moz-flex-wrap: inherit; + -ms-flex-wrap: inherit; + flex-wrap: inherit; } + + .block { + display: block; + -webkit-box-flex: inherit; + -moz-box-flex: inherit; + box-flex: inherit; + -webkit-flex: inherit; + -moz-flex: inherit; + -ms-flex: inherit; + flex: inherit; } } } +.first-block { + -webkit-box-ordinal-group: 0; + -webkit-order: -1; + -ms-flex-order: -1; + order: -1; } + +.last-block { + -webkit-box-ordinal-group: 2; + -webkit-order: 1; + -ms-flex-order: 1; + order: 1; } + +.fixed-blocks { + -webkit-flex-flow: row wrap; + -moz-flex-flow: row wrap; + flex-flow: row wrap; } + .fixed-blocks .block { + -webkit-box-flex: inherit; + -moz-box-flex: inherit; + box-flex: inherit; + -webkit-flex: inherit; + -moz-flex: inherit; + -ms-flex: inherit; + flex: inherit; + width: 25%; } + @media only all and (min-width: 60em) and (max-width: 74.938em) { + .fixed-blocks .block { + width: 33.33333%; } } + @media only all and (min-width: 48em) and (max-width: 59.938em) { + .fixed-blocks .block { + width: 50%; } } + @media only all and (max-width: 47.938em) { + .fixed-blocks .block { + width: 100%; } } + +body { + font-size: 1.05rem; + line-height: 1.7; } + +h1, h2, h3, h4, h5, h6 { + margin: 0.85rem 0 1.7rem 0; + text-rendering: optimizeLegibility; } + +h1 { + font-size: 3.25rem; } + +h2 { + font-size: 2.55rem; } + +h3 { + font-size: 2.15rem; } + +h4 { + font-size: 1.8rem; } + +h5 { + font-size: 1.4rem; } + +h6 { + font-size: 0.9rem; } + +p { + margin: 1.7rem 0; } + +ul, ol { + margin-top: 1.7rem; + margin-bottom: 1.7rem; } + ul ul, ul ol, ol ul, ol ol { + margin-top: 0; + margin-bottom: 0; } + +blockquote { + margin: 1.7rem 0; + padding-left: 0.85rem; } + +cite { + display: block; + font-size: 0.925rem; } + cite:before { + content: "\2014 \0020"; } + +pre { + margin: 1.7rem 0; + padding: 0.938rem; } + +code { + vertical-align: bottom; } + +small { + font-size: 0.925rem; } + +hr { + border-left: none; + border-right: none; + border-top: none; + margin: 1.7rem 0; } + +fieldset { + border: 0; + padding: 0.938rem; + margin: 0 0 1.7rem 0; } + +input, +label, +select { + display: block; } + +label { + margin-bottom: 0.425rem; } + label.required:after { + content: "*"; } + label abbr { + display: none; } + +textarea, input[type="email"], input[type="number"], input[type="password"], input[type="search"], input[type="tel"], input[type="text"], input[type="url"], input[type="color"], input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="month"], input[type="time"], input[type="week"], select[multiple=multiple] { + -webkit-transition: border-color; + -moz-transition: border-color; + transition: border-color; + border-radius: 0.1875rem; + margin-bottom: 0.85rem; + padding: 0.425rem 0.425rem; + width: 100%; } + textarea:focus, input[type="email"]:focus, input[type="number"]:focus, input[type="password"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="text"]:focus, input[type="url"]:focus, input[type="color"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="month"]:focus, input[type="time"]:focus, input[type="week"]:focus, select[multiple=multiple]:focus { + outline: none; } + +textarea { + resize: vertical; } + +input[type="checkbox"], input[type="radio"] { + display: inline; + margin-right: 0.425rem; } + +input[type="file"] { + width: 100%; } + +select { + width: auto; + max-width: 100%; + margin-bottom: 1.7rem; } + +button, +input[type="submit"] { + cursor: pointer; + user-select: none; + vertical-align: middle; + white-space: nowrap; + border: inherit; } diff --git a/publish/css/perfect-scrollbar.min.css b/publish/css/perfect-scrollbar.min.css new file mode 100644 index 0000000..ebd2cb4 --- /dev/null +++ b/publish/css/perfect-scrollbar.min.css @@ -0,0 +1,2 @@ +/* perfect-scrollbar v0.6.13 */ +.ps-container{-ms-touch-action:auto;touch-action:auto;overflow:hidden !important;-ms-overflow-style:none}@supports (-ms-overflow-style: none){.ps-container{overflow:auto !important}}@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none){.ps-container{overflow:auto !important}}.ps-container.ps-active-x>.ps-scrollbar-x-rail,.ps-container.ps-active-y>.ps-scrollbar-y-rail{display:block;background-color:transparent}.ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail{background-color:#eee;opacity:.9}.ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#999;height:11px}.ps-container.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail{background-color:#eee;opacity:.9}.ps-container.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#999;width:11px}.ps-container>.ps-scrollbar-x-rail{display:none;position:absolute;opacity:0;-webkit-transition:background-color .2s linear, opacity .2s linear;-o-transition:background-color .2s linear, opacity .2s linear;-moz-transition:background-color .2s linear, opacity .2s linear;transition:background-color .2s linear, opacity .2s linear;bottom:0px;height:15px}.ps-container>.ps-scrollbar-x-rail>.ps-scrollbar-x{position:absolute;background-color:#aaa;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, -webkit-border-radius .2s ease-in-out;transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, -webkit-border-radius .2s ease-in-out;-o-transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out;-moz-transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out, -moz-border-radius .2s ease-in-out;transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out;transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out, -webkit-border-radius .2s ease-in-out, -moz-border-radius .2s ease-in-out;bottom:2px;height:6px}.ps-container>.ps-scrollbar-x-rail:hover>.ps-scrollbar-x,.ps-container>.ps-scrollbar-x-rail:active>.ps-scrollbar-x{height:11px}.ps-container>.ps-scrollbar-y-rail{display:none;position:absolute;opacity:0;-webkit-transition:background-color .2s linear, opacity .2s linear;-o-transition:background-color .2s linear, opacity .2s linear;-moz-transition:background-color .2s linear, opacity .2s linear;transition:background-color .2s linear, opacity .2s linear;right:0;width:15px}.ps-container>.ps-scrollbar-y-rail>.ps-scrollbar-y{position:absolute;background-color:#aaa;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, -webkit-border-radius .2s ease-in-out;transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, -webkit-border-radius .2s ease-in-out;-o-transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out;-moz-transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out, -moz-border-radius .2s ease-in-out;transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out;transition:background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out, -webkit-border-radius .2s ease-in-out, -moz-border-radius .2s ease-in-out;right:2px;width:6px}.ps-container>.ps-scrollbar-y-rail:hover>.ps-scrollbar-y,.ps-container>.ps-scrollbar-y-rail:active>.ps-scrollbar-y{width:11px}.ps-container:hover.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail{background-color:#eee;opacity:.9}.ps-container:hover.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#999;height:11px}.ps-container:hover.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail{background-color:#eee;opacity:.9}.ps-container:hover.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#999;width:11px}.ps-container:hover>.ps-scrollbar-x-rail,.ps-container:hover>.ps-scrollbar-y-rail{opacity:.6}.ps-container:hover>.ps-scrollbar-x-rail:hover{background-color:#eee;opacity:.9}.ps-container:hover>.ps-scrollbar-x-rail:hover>.ps-scrollbar-x{background-color:#999}.ps-container:hover>.ps-scrollbar-y-rail:hover{background-color:#eee;opacity:.9}.ps-container:hover>.ps-scrollbar-y-rail:hover>.ps-scrollbar-y{background-color:#999} diff --git a/publish/css/tags.css b/publish/css/tags.css new file mode 100644 index 0000000..495d2f9 --- /dev/null +++ b/publish/css/tags.css @@ -0,0 +1,49 @@ +/* Tags */ + +#head-tags{ + margin-left:1em; + margin-top:1em; +} + +#body .tags a.tag-link { + display: inline-block; + line-height: 2em; + font-size: 0.8em; + position: relative; + margin: 0 16px 8px 0; + padding: 0 10px 0 12px; + background: #8451a1; + + -webkit-border-bottom-right-radius: 3px; + border-bottom-right-radius: 3px; + -webkit-border-top-right-radius: 3px; + border-top-right-radius: 3px; + + -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.2); + box-shadow: 0 1px 2px rgba(0,0,0,0.2); + color: #fff; +} + +#body .tags a.tag-link:before { + content: ""; + position: absolute; + top:0; + left: -1em; + width: 0; + height: 0; + border-color: transparent #8451a1 transparent transparent; + border-style: solid; + border-width: 1em 1em 1em 0; +} + +#body .tags a.tag-link:after { + content: ""; + position: absolute; + top: 10px; + left: 1px; + width: 5px; + height: 5px; + -webkit-border-radius: 50%; + border-radius: 100%; + background: #fff; +} diff --git a/publish/css/theme-blue.css b/publish/css/theme-blue.css new file mode 100644 index 0000000..1ee1423 --- /dev/null +++ b/publish/css/theme-blue.css @@ -0,0 +1,128 @@ + +:root{ + + --MAIN-TEXT-color:#323232; /* Color of text by default */ + --MAIN-TITLES-TEXT-color: #5e5e5e; /* Color of titles h2-h3-h4-h5 */ + --MAIN-LINK-color:#1C90F3; /* Color of links */ + --MAIN-LINK-HOVER-color:#167ad0; /* Color of hovered links */ + --MAIN-ANCHOR-color: #1C90F3; /* color of anchors on titles */ + + --MENU-HOME-LINK-color: #323232; /* Color of the home button text */ + --MENU-HOME-LINK-HOVER-color: #5e5e5e; /* Color of the hovered home button text */ + + --MENU-HEADER-BG-color:#1C90F3; /* Background color of menu header */ + --MENU-HEADER-BORDER-color:#33a1ff; /*Color of menu header border */ + + --MENU-SEARCH-BG-color:#167ad0; /* Search field background color (by default borders + icons) */ + --MENU-SEARCH-BOX-color: #33a1ff; /* Override search field border color */ + --MENU-SEARCH-BOX-ICONS-color: #a1d2fd; /* Override search field icons color */ + + --MENU-SECTIONS-ACTIVE-BG-color:#20272b; /* Background color of the active section and its childs */ + --MENU-SECTIONS-BG-color:#252c31; /* Background color of other sections */ + --MENU-SECTIONS-LINK-color: #ccc; /* Color of links in menu */ + --MENU-SECTIONS-LINK-HOVER-color: #e6e6e6; /* Color of links in menu, when hovered */ + --MENU-SECTION-ACTIVE-CATEGORY-color: #777; /* Color of active category text */ + --MENU-SECTION-ACTIVE-CATEGORY-BG-color: #fff; /* Color of background for the active category (only) */ + + --MENU-VISITED-color: #33a1ff; /* Color of 'page visited' icons in menu */ + --MENU-SECTION-HR-color: #20272b; /* Color of
    separator in menu */ + +} + +body { + color: var(--MAIN-TEXT-color) !important; +} + +textarea:focus, input[type="email"]:focus, input[type="number"]:focus, input[type="password"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="text"]:focus, input[type="url"]:focus, input[type="color"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="month"]:focus, input[type="time"]:focus, input[type="week"]:focus, select[multiple=multiple]:focus { + border-color: none; + box-shadow: none; +} + +h2, h3, h4, h5 { + color: var(--MAIN-TITLES-TEXT-color) !important; +} + +a { + color: var(--MAIN-LINK-color); +} + +.anchor { + color: var(--MAIN-ANCHOR-color); +} + +a:hover { + color: var(--MAIN-LINK-HOVER-color); +} + +#sidebar ul li.visited > a .read-icon { + color: var(--MENU-VISITED-color); +} + +#body a.highlight:after { + display: block; + content: ""; + height: 1px; + width: 0%; + -webkit-transition: width 0.5s ease; + -moz-transition: width 0.5s ease; + -ms-transition: width 0.5s ease; + transition: width 0.5s ease; + background-color: var(--MAIN-LINK-HOVER-color); +} +#sidebar { + background-color: var(--MENU-SECTIONS-BG-color); +} +#sidebar #header-wrapper { + background: var(--MENU-HEADER-BG-color); + color: var(--MENU-SEARCH-BOX-color); + border-color: var(--MENU-HEADER-BORDER-color); +} +#sidebar .searchbox { + border-color: var(--MENU-SEARCH-BOX-color); + background: var(--MENU-SEARCH-BG-color); +} +#sidebar ul.topics > li.parent, #sidebar ul.topics > li.active { + background: var(--MENU-SECTIONS-ACTIVE-BG-color); +} +#sidebar .searchbox * { + color: var(--MENU-SEARCH-BOX-ICONS-color); +} + +#sidebar a { + color: var(--MENU-SECTIONS-LINK-color); +} + +#sidebar a:hover { + color: var(--MENU-SECTIONS-LINK-HOVER-color); +} + +#sidebar ul li.active > a { + background: var(--MENU-SECTION-ACTIVE-CATEGORY-BG-color); + color: var(--MENU-SECTION-ACTIVE-CATEGORY-color) !important; +} + +#sidebar hr { + border-color: var(--MENU-SECTION-HR-color); +} + +#body .tags a.tag-link { + background-color: var(--MENU-HEADER-BG-color); +} + +#body .tags a.tag-link:before { + border-right-color: var(--MENU-HEADER-BG-color); +} + +#homelinks { + background: var(--MENU-HEADER-BG-color); + background-color: var(--MENU-HEADER-BORDER-color); + border-bottom-color: var(--MENU-HEADER-BORDER-color); +} + +#homelinks a { + color: var(--MENU-HOME-LINK-color); +} + +#homelinks a:hover { + color: var(--MENU-HOME-LINK-HOVERED-color); +} \ No newline at end of file diff --git a/publish/css/theme-green.css b/publish/css/theme-green.css new file mode 100644 index 0000000..c074679 --- /dev/null +++ b/publish/css/theme-green.css @@ -0,0 +1,128 @@ + +:root{ + + --MAIN-TEXT-color:#323232; /* Color of text by default */ + --MAIN-TITLES-TEXT-color: #5e5e5e; /* Color of titles h2-h3-h4-h5 */ + --MAIN-LINK-color:#599a3e; /* Color of links */ + --MAIN-LINK-HOVER-color:#3f6d2c; /* Color of hovered links */ + --MAIN-ANCHOR-color: #599a3e; /* color of anchors on titles */ + + --MENU-HOME-LINK-color: #323232; /* Color of the home button text */ + --MENU-HOME-LINK-HOVER-color: #5e5e5e; /* Color of the hovered home button text */ + + --MENU-HEADER-BG-color:#74b559; /* Background color of menu header */ + --MENU-HEADER-BORDER-color:#9cd484; /*Color of menu header border */ + + --MENU-SEARCH-BG-color:#599a3e; /* Search field background color (by default borders + icons) */ + --MENU-SEARCH-BOX-color: #84c767; /* Override search field border color */ + --MENU-SEARCH-BOX-ICONS-color: #c7f7c4; /* Override search field icons color */ + + --MENU-SECTIONS-ACTIVE-BG-color:#1b211c; /* Background color of the active section and its childs */ + --MENU-SECTIONS-BG-color:#222723; /* Background color of other sections */ + --MENU-SECTIONS-LINK-color: #ccc; /* Color of links in menu */ + --MENU-SECTIONS-LINK-HOVER-color: #e6e6e6; /* Color of links in menu, when hovered */ + --MENU-SECTION-ACTIVE-CATEGORY-color: #777; /* Color of active category text */ + --MENU-SECTION-ACTIVE-CATEGORY-BG-color: #fff; /* Color of background for the active category (only) */ + + --MENU-VISITED-color: #599a3e; /* Color of 'page visited' icons in menu */ + --MENU-SECTION-HR-color: #18211c; /* Color of
    separator in menu */ + +} + +body { + color: var(--MAIN-TEXT-color) !important; +} + +textarea:focus, input[type="email"]:focus, input[type="number"]:focus, input[type="password"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="text"]:focus, input[type="url"]:focus, input[type="color"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="month"]:focus, input[type="time"]:focus, input[type="week"]:focus, select[multiple=multiple]:focus { + border-color: none; + box-shadow: none; +} + +h2, h3, h4, h5 { + color: var(--MAIN-TITLES-TEXT-color) !important; +} + +a { + color: var(--MAIN-LINK-color); +} + +.anchor { + color: var(--MAIN-ANCHOR-color); +} + +a:hover { + color: var(--MAIN-LINK-HOVER-color); +} + +#sidebar ul li.visited > a .read-icon { + color: var(--MENU-VISITED-color); +} + +#body a.highlight:after { + display: block; + content: ""; + height: 1px; + width: 0%; + -webkit-transition: width 0.5s ease; + -moz-transition: width 0.5s ease; + -ms-transition: width 0.5s ease; + transition: width 0.5s ease; + background-color: var(--MAIN-LINK-HOVER-color); +} +#sidebar { + background-color: var(--MENU-SECTIONS-BG-color); +} +#sidebar #header-wrapper { + background: var(--MENU-HEADER-BG-color); + color: var(--MENU-SEARCH-BOX-color); + border-color: var(--MENU-HEADER-BORDER-color); +} +#sidebar .searchbox { + border-color: var(--MENU-SEARCH-BOX-color); + background: var(--MENU-SEARCH-BG-color); +} +#sidebar ul.topics > li.parent, #sidebar ul.topics > li.active { + background: var(--MENU-SECTIONS-ACTIVE-BG-color); +} +#sidebar .searchbox * { + color: var(--MENU-SEARCH-BOX-ICONS-color); +} + +#sidebar a { + color: var(--MENU-SECTIONS-LINK-color); +} + +#sidebar a:hover { + color: var(--MENU-SECTIONS-LINK-HOVER-color); +} + +#sidebar ul li.active > a { + background: var(--MENU-SECTION-ACTIVE-CATEGORY-BG-color); + color: var(--MENU-SECTION-ACTIVE-CATEGORY-color) !important; +} + +#sidebar hr { + border-color: var(--MENU-SECTION-HR-color); +} + +#body .tags a.tag-link { + background-color: var(--MENU-HEADER-BG-color); +} + +#body .tags a.tag-link:before { + border-right-color: var(--MENU-HEADER-BG-color); +} + +#homelinks { + background: var(--MENU-HEADER-BG-color); + background-color: var(--MENU-HEADER-BORDER-color); + border-bottom-color: var(--MENU-HEADER-BORDER-color); +} + +#homelinks a { + color: var(--MENU-HOME-LINK-color); +} + +#homelinks a:hover { + color: var(--MENU-HOME-LINK-HOVERED-color); +} \ No newline at end of file diff --git a/publish/css/theme-red.css b/publish/css/theme-red.css new file mode 100644 index 0000000..c5f2674 --- /dev/null +++ b/publish/css/theme-red.css @@ -0,0 +1,128 @@ + +:root{ + + --MAIN-TEXT-color:#323232; /* Color of text by default */ + --MAIN-TITLES-TEXT-color: #5e5e5e; /* Color of titles h2-h3-h4-h5 */ + --MAIN-LINK-color:#f31c1c; /* Color of links */ + --MAIN-LINK-HOVER-color:#d01616; /* Color of hovered links */ + --MAIN-ANCHOR-color: #f31c1c; /* color of anchors on titles */ + + --MENU-HOME-LINK-color: #ccc; /* Color of the home button text */ + --MENU-HOME-LINK-HOVER-color: #e6e6e6; /* Color of the hovered home button text */ + + --MENU-HEADER-BG-color:#dc1010; /* Background color of menu header */ + --MENU-HEADER-BORDER-color:#e23131; /*Color of menu header border */ + + --MENU-SEARCH-BG-color:#b90000; /* Search field background color (by default borders + icons) */ + --MENU-SEARCH-BOX-color: #ef2020; /* Override search field border color */ + --MENU-SEARCH-BOX-ICONS-color: #fda1a1; /* Override search field icons color */ + + --MENU-SECTIONS-ACTIVE-BG-color:#2b2020; /* Background color of the active section and its childs */ + --MENU-SECTIONS-BG-color:#312525; /* Background color of other sections */ + --MENU-SECTIONS-LINK-color: #ccc; /* Color of links in menu */ + --MENU-SECTIONS-LINK-HOVER-color: #e6e6e6; /* Color of links in menu, when hovered */ + --MENU-SECTION-ACTIVE-CATEGORY-color: #777; /* Color of active category text */ + --MENU-SECTION-ACTIVE-CATEGORY-BG-color: #fff; /* Color of background for the active category (only) */ + + --MENU-VISITED-color: #ff3333; /* Color of 'page visited' icons in menu */ + --MENU-SECTION-HR-color: #2b2020; /* Color of
    separator in menu */ + +} + +body { + color: var(--MAIN-TEXT-color) !important; +} + +textarea:focus, input[type="email"]:focus, input[type="number"]:focus, input[type="password"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="text"]:focus, input[type="url"]:focus, input[type="color"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="month"]:focus, input[type="time"]:focus, input[type="week"]:focus, select[multiple=multiple]:focus { + border-color: none; + box-shadow: none; +} + +h2, h3, h4, h5 { + color: var(--MAIN-TITLES-TEXT-color) !important; +} + +a { + color: var(--MAIN-LINK-color); +} + +.anchor { + color: var(--MAIN-ANCHOR-color); +} + +a:hover { + color: var(--MAIN-LINK-HOVER-color); +} + +#sidebar ul li.visited > a .read-icon { + color: var(--MENU-VISITED-color); +} + +#body a.highlight:after { + display: block; + content: ""; + height: 1px; + width: 0%; + -webkit-transition: width 0.5s ease; + -moz-transition: width 0.5s ease; + -ms-transition: width 0.5s ease; + transition: width 0.5s ease; + background-color: var(--MAIN-LINK-HOVER-color); +} +#sidebar { + background-color: var(--MENU-SECTIONS-BG-color); +} +#sidebar #header-wrapper { + background: var(--MENU-HEADER-BG-color); + color: var(--MENU-SEARCH-BOX-color); + border-color: var(--MENU-HEADER-BORDER-color); +} +#sidebar .searchbox { + border-color: var(--MENU-SEARCH-BOX-color); + background: var(--MENU-SEARCH-BG-color); +} +#sidebar ul.topics > li.parent, #sidebar ul.topics > li.active { + background: var(--MENU-SECTIONS-ACTIVE-BG-color); +} +#sidebar .searchbox * { + color: var(--MENU-SEARCH-BOX-ICONS-color); +} + +#sidebar a { + color: var(--MENU-SECTIONS-LINK-color); +} + +#sidebar a:hover { + color: var(--MENU-SECTIONS-LINK-HOVER-color); +} + +#sidebar ul li.active > a { + background: var(--MENU-SECTION-ACTIVE-CATEGORY-BG-color); + color: var(--MENU-SECTION-ACTIVE-CATEGORY-color) !important; +} + +#sidebar hr { + border-color: var(--MENU-SECTION-HR-color); +} + +#body .tags a.tag-link { + background-color: var(--MENU-HEADER-BG-color); +} + +#body .tags a.tag-link:before { + border-right-color: var(--MENU-HEADER-BG-color); +} + +#homelinks { + background: var(--MENU-HEADER-BG-color); + background-color: var(--MENU-HEADER-BORDER-color); + border-bottom-color: var(--MENU-HEADER-BORDER-color); +} + +#homelinks a { + color: var(--MENU-HOME-LINK-color); +} + +#homelinks a:hover { + color: var(--MENU-HOME-LINK-HOVERED-color); +} \ No newline at end of file diff --git a/publish/css/theme.css b/publish/css/theme.css new file mode 100644 index 0000000..7a2d0dd --- /dev/null +++ b/publish/css/theme.css @@ -0,0 +1,1151 @@ +@charset "UTF-8"; + +/* Tags */ +@import "tags.css"; + +#top-github-link, #body #breadcrumbs { + position: relative; + top: 50%; + -webkit-transform: translateY(-50%); + -moz-transform: translateY(-50%); + -o-transform: translateY(-50%); + -ms-transform: translateY(-50%); + transform: translateY(-50%); +} +.button, .button-secondary { + display: inline-block; + padding: 7px 12px; +} +.button:active, .button-secondary:active { + margin: 2px 0 -2px 0; +} +@font-face { + font-family: 'Novacento Sans Wide'; + src: url("../fonts/Novecentosanswide-UltraLight-webfont.eot"); + src: url("../fonts/Novecentosanswide-UltraLight-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/Novecentosanswide-UltraLight-webfont.woff2") format("woff2"), url("../fonts/Novecentosanswide-UltraLight-webfont.woff") format("woff"), url("../fonts/Novecentosanswide-UltraLight-webfont.ttf") format("truetype"), url("../fonts/Novecentosanswide-UltraLight-webfont.svg#novecento_sans_wideultralight") format("svg"); + font-style: normal; + font-weight: 200; +} +@font-face { + font-family: 'Work Sans'; + font-style: normal; + font-weight: 300; + src: url("../fonts/Work_Sans_300.eot?#iefix") format("embedded-opentype"), url("../fonts/Work_Sans_300.woff") format("woff"), url("../fonts/Work_Sans_300.woff2") format("woff2"), url("../fonts/Work_Sans_300.svg#WorkSans") format("svg"), url("../fonts/Work_Sans_300.ttf") format("truetype"); +} +@font-face { + font-family: 'Work Sans'; + font-style: normal; + font-weight: 500; + src: url("../fonts/Work_Sans_500.eot?#iefix") format("embedded-opentype"), url("../fonts/Work_Sans_500.woff") format("woff"), url("../fonts/Work_Sans_500.woff2") format("woff2"), url("../fonts/Work_Sans_500.svg#WorkSans") format("svg"), url("../fonts/Work_Sans_500.ttf") format("truetype"); +} +body { + background: #fff; + color: #777; +} +body #chapter h1 { + font-size: 3.5rem; +} +@media only all and (min-width: 48em) and (max-width: 59.938em) { + body #chapter h1 { + font-size: 3rem; + } +} +@media only all and (max-width: 47.938em) { + body #chapter h1 { + font-size: 2rem; + } +} +a { + color: #00bdf3; +} +a:hover { + color: #0082a7; +} +pre { + position: relative; + color: #ffffff; +} +.bg { + background: #fff; + border: 1px solid #eaeaea; +} +b, strong, label, th { + font-weight: 600; +} +.default-animation, #header #logo-svg, #header #logo-svg path, #sidebar, #sidebar ul, #body, #body .padding, #body .nav { + -webkit-transition: all 0.5s ease; + -moz-transition: all 0.5s ease; + transition: all 0.5s ease; +} +#grav-logo { + max-width: 60%; +} +#grav-logo path { + fill: #fff !important; +} +#sidebar { + font-weight: 300 !important; +} +fieldset { + border: 1px solid #ddd; +} +textarea, input[type="email"], input[type="number"], input[type="password"], input[type="search"], input[type="tel"], input[type="text"], input[type="url"], input[type="color"], input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="month"], input[type="time"], input[type="week"], select[multiple=multiple] { + background-color: white; + border: 1px solid #ddd; + box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.06); +} +textarea:hover, input[type="email"]:hover, input[type="number"]:hover, input[type="password"]:hover, input[type="search"]:hover, input[type="tel"]:hover, input[type="text"]:hover, input[type="url"]:hover, input[type="color"]:hover, input[type="date"]:hover, input[type="datetime"]:hover, input[type="datetime-local"]:hover, input[type="month"]:hover, input[type="time"]:hover, input[type="week"]:hover, select[multiple=multiple]:hover { + border-color: #c4c4c4; +} +textarea:focus, input[type="email"]:focus, input[type="number"]:focus, input[type="password"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="text"]:focus, input[type="url"]:focus, input[type="color"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="month"]:focus, input[type="time"]:focus, input[type="week"]:focus, select[multiple=multiple]:focus { + border-color: #00bdf3; + box-shadow: inset 0 1px 3px rgba(0,0,0,.06),0 0 5px rgba(0,169,218,.7) +} +#header-wrapper { + background: #8451a1; + color: #fff; + text-align: center; + border-bottom: 4px solid #9c6fb6; + padding: 1rem; +} +#header a { + display: inline-block; +} +#header #logo-svg { + width: 8rem; + height: 2rem; +} +#header #logo-svg path { + fill: #fff; +} +.searchbox { + margin-top: 1rem; + position: relative; + border: 1px solid #915eae; + background: #764890; + border-radius: 4px; +} +.searchbox label { + color: rgba(255, 255, 255, 0.8); + position: absolute; + left: 10px; + top: 3px; +} +.searchbox span { + color: rgba(255, 255, 255, 0.6); + position: absolute; + right: 10px; + top: 3px; + cursor: pointer; +} +.searchbox span:hover { + color: rgba(255, 255, 255, 0.9); +} +.searchbox input { + display: inline-block; + color: #fff; + width: 100%; + height: 30px; + background: transparent; + border: 0; + padding: 0 25px 0 30px; + margin: 0; + font-weight: 300; +} +.searchbox input::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.6); +} +.searchbox input::-moz-placeholder { + color: rgba(255, 255, 255, 0.6); +} +.searchbox input:-moz-placeholder { + color: rgba(255, 255, 255, 0.6); +} +.searchbox input:-ms-input-placeholder { + color: rgba(255, 255, 255, 0.6); +} +#sidebar-toggle-span { + display: none; +} +@media only all and (max-width: 47.938em) { + #sidebar-toggle-span { + display: inline; + } +} +#sidebar { + background-color: #322A38; + position: fixed; + top: 0; + width: 300px; + bottom: 0; + left: 0; + font-weight: 400; + font-size: 15px; +} +#sidebar a { + color: #ccc; +} +#sidebar a:hover { + color: #e6e6e6; +} +#sidebar a.subtitle { + color: rgba(204, 204, 204, 0.6); +} +#sidebar hr { + border-bottom: 1px solid #2a232f; +} +#sidebar a.padding { + padding: 0 1rem; +} +#sidebar h5 { + margin: 2rem 0 0; + position: relative; + line-height: 2; +} +#sidebar h5 a { + display: block; + margin-left: 0; + margin-right: 0; + padding-left: 1rem; + padding-right: 1rem; +} +#sidebar h5 i { + color: rgba(204, 204, 204, 0.6); + position: absolute; + right: 0.6rem; + top: 0.7rem; + font-size: 80%; +} +#sidebar h5.parent a { + background: #201b24; + color: #d9d9d9 !important; +} +#sidebar h5.active a { + background: #fff; + color: #777 !important; +} +#sidebar h5.active i { + color: #777 !important; +} +#sidebar h5 + ul.topics { + display: none; + margin-top: 0; +} +#sidebar h5.parent + ul.topics, #sidebar h5.active + ul.topics { + display: block; +} +#sidebar ul { + list-style: none; + padding: 0; + margin: 0; +} +#sidebar ul.searched a { + color: #999999; +} +#sidebar ul.searched .search-match a { + color: #e6e6e6; +} +#sidebar ul.searched .search-match a:hover { + color: white; +} +#sidebar ul.topics { + margin: 0 1rem; +} +#sidebar ul.topics.searched ul { + display: block; +} +#sidebar ul.topics ul { + display: none; + padding-bottom: 1rem; +} +#sidebar ul.topics ul ul { + padding-bottom: 0; +} +#sidebar ul.topics li.parent ul, #sidebar ul.topics > li.active ul { + display: block; +} +#sidebar ul.topics > li > a { + line-height: 2rem; + font-size: 1.1rem; +} +#sidebar ul.topics > li > a b { + opacity: 0.5; + font-weight: normal; +} +#sidebar ul.topics > li > a .fa { + margin-top: 9px; +} +#sidebar ul.topics > li.parent, #sidebar ul.topics > li.active { + background: #251f29; + margin-left: -1rem; + margin-right: -1rem; + padding-left: 1rem; + padding-right: 1rem; +} +#sidebar ul li.active > a { + background: #fff; + color: #777 !important; + margin-left: -1rem; + margin-right: -1rem; + padding-left: 1rem; + padding-right: 1rem; +} +#sidebar ul li { + padding: 0; +} +#sidebar ul li.visited + span { + margin-right: 16px; +} +#sidebar ul li a { + display: block; + padding: 2px 0; +} +#sidebar ul li a span { + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + display: block; +} +#sidebar ul li > a { + padding: 4px 0; +} +#sidebar ul li.visited > a .read-icon { + color: #9c6fb6; + display: inline; +} +#sidebar ul li li { + padding-left: 1rem; + text-indent: 0.2rem; +} +#main { + background: #f7f7f7; + margin: 0 0 1.563rem 0; +} +#body { + position: relative; + margin-left: 300px; + min-height: 100%; +} +#body img, #body .video-container { + margin: 3rem auto; + display: block; + text-align: center; +} +#body img.border, #body .video-container.border { + border: 2px solid #e6e6e6 !important; + padding: 2px; +} +#body img.shadow, #body .video-container.shadow { + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1); +} +#body img.inline { + display: inline !important; + margin: 0 !important; + vertical-align: bottom; +} +#body .bordered { + border: 1px solid #ccc; +} +#body .padding { + padding: 3rem 6rem; +} +@media only all and (max-width: 59.938em) { + #body .padding { + position: static; + padding: 15px 3rem; + } +} +@media only all and (max-width: 47.938em) { + #body .padding { + padding: 5px 1rem; + } +} +#body h1 + hr { + margin-top: -1.7rem; + margin-bottom: 3rem; +} +@media only all and (max-width: 59.938em) { + #body #navigation { + position: static; + margin-right: 0 !important; + width: 100%; + display: table; + } +} +#body .nav { + position: fixed; + top: 0; + bottom: 0; + width: 4rem; + font-size: 50px; + height: 100%; + cursor: pointer; + display: table; + text-align: center; +} +#body .nav > i { + display: table-cell; + vertical-align: middle; + text-align: center; +} +@media only all and (max-width: 59.938em) { + #body .nav { + display: table-cell; + position: static; + top: auto; + width: 50%; + text-align: center; + height: 100px; + line-height: 100px; + padding-top: 0; + } + #body .nav > i { + display: inline-block; + } +} +#body .nav:hover { + background: #F6F6F6; +} +#body .nav.nav-pref { + left: 0; +} +#body .nav.nav-next { + right: 0; +} +#body-inner { + margin-bottom: 5rem; +} +#chapter { + display: flex; + align-items: center; + justify-content: center; + height: 100%; + padding: 2rem 0; +} +#chapter #body-inner { + padding-bottom: 3rem; + max-width: 80%; +} +#chapter h3 { + font-family: "Work Sans", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; + font-weight: 300; + text-align: center; +} +#chapter h1 { + font-size: 5rem; + border-bottom: 4px solid #F0F2F4; +} +#chapter p { + text-align: center; + font-size: 1.2rem; +} +#footer { + padding: 3rem 1rem; + color: #b3b3b3; + font-size: 13px; +} +#footer p { + margin: 0; +} +body { + font-family: "Work Sans", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; + font-weight: 300; + line-height: 1.6; + font-size: 18px !important; +} +h2, h3, h4, h5, h6 { + font-family: "Work Sans", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; + text-rendering: optimizeLegibility; + color: #5e5e5e; + font-weight: 400; + letter-spacing: -1px; +} +h1 { + font-family: "Novacento Sans Wide", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; + text-align: center; + text-transform: uppercase; + color: #222; + font-weight: 200; +} +blockquote { + border-left: 10px solid #F0F2F4; +} +blockquote p { + font-size: 1.1rem; + color: #999; +} +blockquote cite { + display: block; + text-align: right; + color: #666; + font-size: 1.2rem; +} +div.notices { + margin: 2rem 0; + position: relative; +} +div.notices p { + padding: 15px; + display: block; + font-size: 1rem; + margin-top: 0rem; + margin-bottom: 0rem; + color: #666; +} +div.notices p:first-child:before { + position: absolute; + top: 2px; + color: #fff; + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f06a"; + left: 10px; +} +div.notices p:first-child:after { + position: absolute; + top: 2px; + color: #fff; + left: 2rem; +} +div.notices.info p { + border-top: 30px solid #F0B37E; + background: #FFF2DB; +} +div.notices.info p:first-child:after { + content: 'Info'; +} +div.notices.warning p { + border-top: 30px solid rgba(217, 83, 79, 0.8); + background: #FAE2E2; +} +div.notices.warning p:first-child:after { + content: 'Warning'; +} +div.notices.note p { + border-top: 30px solid #6AB0DE; + background: #E7F2FA; +} +div.notices.note p:first-child:after { + content: 'Note'; +} +div.notices.tip p { + border-top: 30px solid rgba(92, 184, 92, 0.8); + background: #E6F9E6; +} +div.notices.tip p:first-child:after { + content: 'Tip'; +} + +/* attachments shortcode */ + +section.attachments { + margin: 2rem 0; + position: relative; +} + +section.attachments label { + font-weight: 400; + padding-left: 0.5em; + padding-top: 0.2em; + padding-bottom: 0.2em; + margin: 0; +} + +section.attachments .attachments-files { + padding: 15px; + display: block; + font-size: 1rem; + margin-top: 0rem; + margin-bottom: 0rem; + color: #666; +} + +section.attachments.orange label { + color: #fff; + background: #F0B37E; +} + +section.attachments.orange .attachments-files { + background: #FFF2DB; +} + +section.attachments.green label { + color: #fff; + background: rgba(92, 184, 92, 0.8); +} + +section.attachments.green .attachments-files { + background: #E6F9E6; +} + +section.attachments.blue label { + color: #fff; + background: #6AB0DE; +} + +section.attachments.blue .attachments-files { + background: #E7F2FA; +} + +section.attachments.grey label { + color: #fff; + background: #505d65; +} + +section.attachments.grey .attachments-files { + background: #f4f4f4; +} + +/* Children shortcode */ + +/* Children shortcode */ +.children p { + font-size: small; + margin-top: 0px; + padding-top: 0px; + margin-bottom: 0px; + padding-bottom: 0px; +} +.children-li p { + font-size: small; + font-style: italic; + +} +.children-h2 p, .children-h3 p { + font-size: small; + margin-top: 0px; + padding-top: 0px; + margin-bottom: 0px; + padding-bottom: 0px; +} +.children h3,.children h2 { + margin-bottom: 0px; + margin-top: 5px; +} + +code, kbd, pre, samp { + font-family: "Consolas", menlo, monospace; + font-size: 92%; +} +code { + border-radius: 2px; + white-space: nowrap; + color: #5e5e5e; + background: #FFF7DD; + border: 1px solid #fbf0cb; + padding: 0px 2px; +} +code + .copy-to-clipboard { + margin-left: -1px; + border-left: 0 !important; + font-size: inherit !important; + vertical-align: middle; + height: 21px; + top: 0; +} +pre { + padding: 1rem; + margin: 2rem 0; + background: #282c34; + border: 0; + border-radius: 2px; + line-height: 1.15; +} +pre code { + color: whitesmoke; + background: inherit; + white-space: inherit; + border: 0; + padding: 0; + margin: 0; + font-size: 15px; +} +hr { + border-bottom: 4px solid #F0F2F4; +} +.page-title { + margin-top: -25px; + padding: 25px; + float: left; + clear: both; + background: #9c6fb6; + color: #fff; +} +#body a.anchor-link { + color: #ccc; +} +#body a.anchor-link:hover { + color: #9c6fb6; +} +#body-inner .tabs-wrapper.ui-theme-badges { + background: #1d1f21; +} +#body-inner .tabs-wrapper.ui-theme-badges .tabs-nav li { + font-size: 0.9rem; + text-transform: uppercase; +} +#body-inner .tabs-wrapper.ui-theme-badges .tabs-nav li a { + background: #35393c; +} +#body-inner .tabs-wrapper.ui-theme-badges .tabs-nav li.current a { + background: #4d5257; +} +#body-inner pre { + white-space: pre-wrap; +} +.tabs-wrapper pre { + margin: 1rem 0; + border: 0; + padding: 0; + background: inherit; +} +table { + border: 1px solid #eaeaea; + table-layout: auto; +} +th { + background: #f7f7f7; + padding: 0.5rem; +} +td { + padding: 0.5rem; + border: 1px solid #eaeaea; +} +.button { + background: #9c6fb6; + color: #fff; + box-shadow: 0 3px 0 #00a5d4; +} +.button:hover { + background: #00a5d4; + box-shadow: 0 3px 0 #008db6; + color: #fff; +} +.button:active { + box-shadow: 0 1px 0 #008db6; +} +.button-secondary { + background: #F8B450; + color: #fff; + box-shadow: 0 3px 0 #f7a733; +} +.button-secondary:hover { + background: #f7a733; + box-shadow: 0 3px 0 #f69b15; + color: #fff; +} +.button-secondary:active { + box-shadow: 0 1px 0 #f69b15; +} +.bullets { + margin: 1.7rem 0; + margin-left: -0.85rem; + margin-right: -0.85rem; + overflow: auto; +} +.bullet { + float: left; + padding: 0 0.85rem; +} +.two-column-bullet { + width: 50%; +} +@media only all and (max-width: 47.938em) { + .two-column-bullet { + width: 100%; + } +} +.three-column-bullet { + width: 33.33333%; +} +@media only all and (max-width: 47.938em) { + .three-column-bullet { + width: 100%; + } +} +.four-column-bullet { + width: 25%; +} +@media only all and (max-width: 47.938em) { + .four-column-bullet { + width: 100%; + } +} +.bullet-icon { + float: left; + background: #9c6fb6; + padding: 0.875rem; + width: 3.5rem; + height: 3.5rem; + border-radius: 50%; + color: #fff; + font-size: 1.75rem; + text-align: center; +} +.bullet-icon-1 { + background: #9c6fb6; +} +.bullet-icon-2 { + background: #00f3d8; +} +.bullet-icon-3 { + background: #e6f300; +} +.bullet-content { + margin-left: 4.55rem; +} +.tooltipped { + position: relative; +} +.tooltipped:after { + position: absolute; + z-index: 1000000; + display: none; + padding: 5px 8px; + font: normal normal 11px/1.5 "Work Sans", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; + color: #fff; + text-align: center; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-wrap: break-word; + white-space: pre; + pointer-events: none; + content: attr(aria-label); + background: rgba(0, 0, 0, 0.8); + border-radius: 3px; + -webkit-font-smoothing: subpixel-antialiased; +} +.tooltipped:before { + position: absolute; + z-index: 1000001; + display: none; + width: 0; + height: 0; + color: rgba(0, 0, 0, 0.8); + pointer-events: none; + content: ""; + border: 5px solid transparent; +} +.tooltipped:hover:before, .tooltipped:hover:after, .tooltipped:active:before, .tooltipped:active:after, .tooltipped:focus:before, .tooltipped:focus:after { + display: inline-block; + text-decoration: none; +} +.tooltipped-s:after, .tooltipped-se:after, .tooltipped-sw:after { + top: 100%; + right: 50%; + margin-top: 5px; +} +.tooltipped-s:before, .tooltipped-se:before, .tooltipped-sw:before { + top: auto; + right: 50%; + bottom: -5px; + margin-right: -5px; + border-bottom-color: rgba(0, 0, 0, 0.8); +} +.tooltipped-se:after { + right: auto; + left: 50%; + margin-left: -15px; +} +.tooltipped-sw:after { + margin-right: -15px; +} +.tooltipped-n:after, .tooltipped-ne:after, .tooltipped-nw:after { + right: 50%; + bottom: 100%; + margin-bottom: 5px; +} +.tooltipped-n:before, .tooltipped-ne:before, .tooltipped-nw:before { + top: -5px; + right: 50%; + bottom: auto; + margin-right: -5px; + border-top-color: rgba(0, 0, 0, 0.8); +} +.tooltipped-ne:after { + right: auto; + left: 50%; + margin-left: -15px; +} +.tooltipped-nw:after { + margin-right: -15px; +} +.tooltipped-s:after, .tooltipped-n:after { + transform: translateX(50%); +} +.tooltipped-w:after { + right: 100%; + bottom: 50%; + margin-right: 5px; + transform: translateY(50%); +} +.tooltipped-w:before { + top: 50%; + bottom: 50%; + left: -5px; + margin-top: -5px; + border-left-color: rgba(0, 0, 0, 0.8); +} +.tooltipped-e:after { + bottom: 50%; + left: 100%; + margin-left: 5px; + transform: translateY(50%); +} +.tooltipped-e:before { + top: 50%; + right: -5px; + bottom: 50%; + margin-top: -5px; + border-right-color: rgba(0, 0, 0, 0.8); +} +.highlightable { + padding: 1rem 0 1rem; + overflow: auto; + position: relative; +} +.hljs::selection, .hljs span::selection { + background: #b7b7b7; +} +.lightbox-active #body { + overflow: visible; +} +.lightbox-active #body .padding { + overflow: visible; +} +#github-contrib i { + vertical-align: middle; +} +.featherlight img { + margin: 0 !important; +} +.lifecycle #body-inner ul { + list-style: none; + margin: 0; + padding: 2rem 0 0; + position: relative; +} +.lifecycle #body-inner ol { + margin: 1rem 0 1rem 0; + padding: 2rem; + position: relative; +} +.lifecycle #body-inner ol li { + margin-left: 1rem; +} +.lifecycle #body-inner ol strong, .lifecycle #body-inner ol label, .lifecycle #body-inner ol th { + text-decoration: underline; +} +.lifecycle #body-inner ol ol { + margin-left: -1rem; +} +.lifecycle #body-inner h3[class*='level'] { + font-size: 20px; + position: absolute; + margin: 0; + padding: 4px 10px; + right: 0; + z-index: 1000; + color: #fff; + background: #1ABC9C; +} +.lifecycle #body-inner ol h3 { + margin-top: 1rem !important; + right: 2rem !important; +} +.lifecycle #body-inner .level-1 + ol { + background: #f6fefc; + border: 4px solid #1ABC9C; + color: #16A085; +} +.lifecycle #body-inner .level-1 + ol h3 { + background: #2ECC71; +} +.lifecycle #body-inner .level-2 + ol { + background: #f7fdf9; + border: 4px solid #2ECC71; + color: #27AE60; +} +.lifecycle #body-inner .level-2 + ol h3 { + background: #3498DB; +} +.lifecycle #body-inner .level-3 + ol { + background: #f3f9fd; + border: 4px solid #3498DB; + color: #2980B9; +} +.lifecycle #body-inner .level-3 + ol h3 { + background: #34495E; +} +.lifecycle #body-inner .level-4 + ol { + background: #e4eaf0; + border: 4px solid #34495E; + color: #2C3E50; +} +.lifecycle #body-inner .level-4 + ol h3 { + background: #34495E; +} +#top-bar { + background: #F6F6F6; + border-radius: 2px; + padding: 0 1rem; + height: 0; + min-height: 3rem; +} +#top-github-link { + position: relative; + z-index: 1; + float: right; + display: block; +} +#body #breadcrumbs { + height: auto; + margin-bottom: 0; + padding-left: 0; + line-height: 1.4; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + width: 70%; + display: inline-block; + float: left; +} +#body #breadcrumbs span { + padding: 0 0.1rem; +} +@media only all and (max-width: 59.938em) { + #sidebar { + width: 230px; + } + #body { + margin-left: 230px; + } +} +@media only all and (max-width: 47.938em) { + #sidebar { + width: 230px; + left: -230px; + } + #body { + margin-left: 0; + width: 100%; + } + .sidebar-hidden { + overflow: hidden; + } + .sidebar-hidden #sidebar { + left: 0; + } + .sidebar-hidden #body { + margin-left: 230px; + overflow: hidden; + } + .sidebar-hidden #overlay { + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + z-index: 10; + background: rgba(255, 255, 255, 0.5); + cursor: pointer; + } +} +.copy-to-clipboard { + background-image: url(../images/clippy.svg); + background-position: 50% 50%; + background-size: 16px 16px; + background-repeat: no-repeat; + width: 27px; + height: 1.45rem; + top: -1px; + display: inline-block; + vertical-align: middle; + position: relative; + color: #5e5e5e; + background-color: #FFF7DD; + margin-left: -.2rem; + cursor: pointer; + border-radius: 0 2px 2px 0; + margin-bottom: 1px; +} +.copy-to-clipboard:hover { + background-color: #E8E2CD; +} +pre .copy-to-clipboard { + position: absolute; + right: 4px; + top: 4px; + background-color: #C1C4C6; + color: #ccc; + border-radius: 2px; +} +pre .copy-to-clipboard:hover { + background-color: #00bdf3; + color: #fff; +} +.parent-element { + -webkit-transform-style: preserve-3d; + -moz-transform-style: preserve-3d; + transform-style: preserve-3d; +} + +#sidebar ul.topics > li > a .read-icon { + margin-top: 9px; +} + +#sidebar ul { + list-style: none; + padding: 0; + margin: 0; +} + +#sidebar #shortcuts li { + padding: 2px 0; + list-style: none; +} + +#sidebar ul li .read-icon { + display: none; + float: right; + font-size: 13px; + min-width: 16px; + margin: 4px 0 0 0; + text-align: right; +} +#sidebar ul li.visited > a .read-icon { + color: #00bdf3; + display: inline; +} + +#sidebar #shortcuts h3 { + font-family: "Novacento Sans Wide", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif; + color: white ; + margin-top:1rem; + padding-left: 1rem; +} + +#homelinks { + background-color: #9c6fb6; + color: #fff; + padding: 7px 0; + border-bottom: 4px solid #9c6fb6; +} + +#searchResults { + text-align: left; +} + +option { + color: initial; +} + +.fa-github, .fa-twitter, .fa-home { + margin-right: 10px; +} + +.fa-tags { + margin-right: 7px; +} diff --git a/publish/development/index.html b/publish/development/index.html new file mode 100644 index 0000000..fffde20 --- /dev/null +++ b/publish/development/index.html @@ -0,0 +1,45 @@ +Development - Strolch

    Development

    Prerequisites

    To start developing Strolch you need an installed:

    • Java JDK 11
    • Apache Maven 3.x

    Building Strolch

    Setting up Strolch is just a few lines:

    git clone https://github.com/4treesCH/strolch.git
    +cd strolch
    +mvn clean install -DskipTests
    +

    Note: To run the tests you will need to configure the PostgreSQL Databases. See +the README in the module.

    After running the Maven build, you will have a full build of all Strolch +projects. Now you can start modifying the projects, and add your own features, +or, far more interesting, start developing your projects using the Strolch +agent.

    Creating a Strolch App

    To create your own Strolch App, you can use Maven’s archetype generation. There +are two versions, one is a simple Java App which you can use to directly access +the Strolch runtime, and the second is to create a Java Web App, which is the +usual way to run Strolch runtimes.

    Note: you need to have installed Strolch to your local maven repo, otherwise the +archetype won’t be available.

    Creating a Java Strolch Web App

    The following shows the maven command to create the new maven project. Note that you should replace the placeholders in the brackets:

    mvn archetype:generate \
    +  -DarchetypeGroupId=li.strolch \
    +  -DarchetypeArtifactId=li.strolch.mvn.archetype.webapp \
    +  -DarchetypeVersion=1.6.0-SNAPSHOT \
    +  -DgroupId=<my.groupid> \
    +  -DartifactId=<my-artifactId> \
    +  -Dversion=<my.version> \
    +  -DappName="<my app name>"
    +

    Install the web dependencies

    The Strolch Web App uses NodeJS v11.x to build the web dependencies. Please +download the relevant platform’s package, unpack it, and add the bin directory +to your path variable.

    Once NodeJS is installed, then you can prepare the web dependencies:

    cd src/main/webapp/
    +npm install gulp -g
    +npm install
    +gulp
    +

    Note: Whenever the bower.json is changed then you should +again call npm install inside the webapp folder.

    Building the WAR

    Building the WAR uses the package maven goal, but to have the optimized WAR +use the release profile:

    mvn clean package -Prelease
    +

    Happy coding =))

    Creating a simple Java Strolch App

    The following shows the maven command to create the new maven project. Note that +you should replace the placeholders in the brackets:

    mvn archetype:generate \
    +  -DarchetypeGroupId=li.strolch \
    +  -DarchetypeArtifactId=li.strolch.mvn.archetype.main \
    +  -DarchetypeVersion=1.6.0-SNAPSHOT \
    +  -DgroupId=<my.groupid> \
    +  -DartifactId=<my-artifactId> \
    +  -Dversion=<my.version> \
    +  -DappName="<my app name>"
    +

    You change into the directory of the new project and then build the project by calling:

    cd <my-artifactId>
    +mvn clean package
    +
    +

    Start the program using:

    mvn exec:java
    +

    Happy coding =))

    Tools used

    The following tools are used to develop Strolch and Strolch-based projects:

    \ No newline at end of file diff --git a/publish/development/index.xml b/publish/development/index.xml new file mode 100644 index 0000000..c9abe54 --- /dev/null +++ b/publish/development/index.xml @@ -0,0 +1 @@ +Development on Strolchhttps://strolch.li/development/Recent content in Development on StrolchHugo -- gohugo.ioen-us \ No newline at end of file diff --git a/publish/documentation/architecture/index.html b/publish/documentation/architecture/index.html new file mode 100644 index 0000000..23b2069 --- /dev/null +++ b/publish/documentation/architecture/index.html @@ -0,0 +1,19 @@ +Architecture - Strolch

    Architecture

    Architecture

    Birds View

    A Strolch agent’s architecture can be seen as a simple three-tier architecture. +The presentation layer is mostly a web frontend, where the communication with +the agent is done via REST API calls.

    The agent itself implements the business logic using Services, Commands, +Queries etc.

    The agent can communicate with other 3rd systems using any API, where it is +preferred to use JSON over REST.

    The agent can use a standard RDBMS as a storage system, where currently DAOs +have been implemented only for PostgreSQL. Should it be required, then any +JDBC cabable RDBMS can be used, as no PostgreSQL specific SQL commands are used.

    The following diagram helps visualize this:

    Strolch Architecture Birds View

    Squirrel View

    The following diagram shows a more detailed view of the architecture of a +Strolch Agent:

    Strolch Architecture Squirrel View

    A Strolch agent consists of the following main parts:

    • REST Endpoints → expose an API to access the Strolch agent outside of the +Java VM
    • Services and Commands → implements business logic
    • Searches → implements specific queries against the Strolch model
    • Components → Implements additional logic, which is best implement as a +component. E.g. active components which have threads, etc.
    • Realms → implements multi-tenant capabilities

    In addition to the main parts, Strolch contains inherit capabilities, which +gives Strolch unique features when compared to other Java Frameworks:

    • Policies → Policies allow injecting different algorithms. All root elements +can store Policy definitions, so that a service can delegate to a Policy and +thus behave differently, depending on the element being accessed.
    • Transactions → Transactions handle locking/unlocking of objects, updating the +model and are the central API for the developer.
    • Privileges → Strolch is user agnostic and any action, i.e. Service, Query, +etc. is authorized against the authenticated user.
    • Observers → modifications to the model are propagated to listeners using the +observer pattern.
    • Audits → Every access (read, modify) of the model are audited
    • Versioning → modifications to objects are versioned and thus can be rolled +back at a later time.
    \ No newline at end of file diff --git a/publish/documentation/components/index.html b/publish/documentation/components/index.html new file mode 100644 index 0000000..65cf9fa --- /dev/null +++ b/publish/documentation/components/index.html @@ -0,0 +1,63 @@ +Components - Strolch

    Components

    Components

    A Strolch agent can be easily extended with arbitrary components. An agent +is basically a container for classes extending StrolchComponent with a life +cycle. These classes mostly implement an interface which describes the +operations that are supported by the component.

    The following represents a list of the most used components:

    • RealmHandler: li.strolch.agent.impl.DefaultRealmHandler
    • PrivilegeHandler: li.strolch.runtime.privilege.DefaultStrolchPrivilegeHandler
    • EnumHandler: li.strolch.runtime.query.enums.DefaultEnumHandler
    • PolicyHandler: li.strolch.policy.DefaultPolicyHandler
    • ServiceHandler: li.strolch.service.api.DefaultServiceHandler
    • StrolchSessionHandler: li.strolch.rest.DefaultStrolchSessionHandler
    • PersistenceHandler: multiple implementations
    • PostInitializer: project specific implementation
    • MailHandler: li.strolch.handler.mail.SmtpMailHandler

    A component has a life-cycle, which is governed by the Agent’s own life-cycle. +The life-cycle is as follows:

    setup -> initialize -> start <-> stop -> destroy
    +

    The setup step is used to instantiate the component, the initialize step is +used to validate configuration parameters, and the run step is used to start +the component, i.e. start threads, etc. The stop step stops these threads and +also allows the component to be started again. The destroy step destroys the +instance and makes it unusable anymore, i.e. shutdown of the agent.

    Each component has its own configuration parameters. A component is +registered in the StrolchConfiguration.xml file with a

    • name
    • api class name
    • implementation class name
    • configuration parameters
    • any required dependencies

    The dependencies is an important feature as the dependencies of a component +are always started before the actual component.

    By example of the MailHandler we shall show how a strolch component would +be implemented.

    First define an interface:

    public interface MailHandler {
    +    void sendMail(String subject, String text, String recipient);
    +}
    +

    Then implement a concrete MailHandler:

    public class SmtpMailHandler extends StrolchComponent implements MailHandler {
    +
    +  // instance fields with configuration properties to send the mail
    +
    +  public SmtpMailHandler(ComponentContainer container, String componentName) {
    +    super(container, componentName);
    +  }
    +
    +  @Override
    +  public void initialize(ComponentConfiguration configuration) throws Exception {
    +
    +    // store any properties needed from the configuration
    +
    +    super.initialize(configuration);
    +  }
    +
    +  @Override
    +  public void sendMail(String subject, String text, String recipient) {
    +
    +    // send the e-mail using SMTP, or store in stack to send by thread
    +  }
    +}
    +

    Now that the component is written, it must be registered on the component, so +that it is loaded when the agent is started. For this the +StrolchConfiguration.xml file must be modified to include a component +element:

    <StrolchConfiguration>
    +  <env id="dev">
    +    ...
    +    <Component>
    +      <name>MailHandler</name>
    +      <api>li.strolch.handler.mail.MailHandler</api>
    +      <impl>li.strolch.handler.mail.SmtpMailHandler</impl>
    +      <Properties>
    +        <username>test</username>
    +        <password>test</password>
    +        <hostName>localhost</hostName>
    +        ...
    +      </Properties>
    +    </Component>
    +    ...
    +  </env>
    +</StrolchConfiguration>
    +

    Now when the agent is started, the component can be retrieved and used. +E.g from inside a Service:

    MailHandler mailHandler = getComponent(MailHandler.class);
    +mailHandler.sendMail("My Subject", "Hello World", "test@test.ch");
    +
    \ No newline at end of file diff --git a/publish/documentation/do-and-donts/index.html b/publish/documentation/do-and-donts/index.html new file mode 100644 index 0000000..2533d00 --- /dev/null +++ b/publish/documentation/do-and-donts/index.html @@ -0,0 +1,3 @@ +Do and Don't - Strolch

    Do and Don't

    This page discusses things you should and shouldn’t do when using Strolch

    The following is a simple list of do’s and don’ts:

    • 1 Service per use-case, should mostly delegate to Commands.
    • Commands implement use-cases or parts of it, and are thus reusable.
    • Subclass ResourceSearch, OrderSearch and ActivitySearch when implementing use-case specific search - this allows privilege checking.
    • One Transaction at a time - no TX inside of another TX.
    • Commands are added to TXs and performed on close: tx.addCommand(Command) and then tx.commitOnClose()
    • Use tx.flush() if you need to perform first some work and then as late as possible call tx.commitOnClose()
    • Only access ElementMaps if really no other way, mostly use tx.get*By(), tx.findBy() and searches - if a specific get is missing, then add the method to StrolchTransaction and send a pull request!
    • Use tx.stream*() methods to iterate over all elements, if you don’t want to use a search.
    • Don’t write logic in REST API beans. Delegate to other services, making your code reusable!
    • Transform to JSON using the StrolchElementToJsonVisitor.
    • References between objects is done by adding a ParameterBag with the id relations to the object and then StringParameters with the value being the ID, the UOM set to the type of element being referenced and the Interpretation set to the class type being referenced.
    \ No newline at end of file diff --git a/publish/documentation/index.html b/publish/documentation/index.html new file mode 100644 index 0000000..d14333e --- /dev/null +++ b/publish/documentation/index.html @@ -0,0 +1,6 @@ +Documentation - Strolch

    Documentation

    Overview

    Strolch’s documentation has only just begun, but as more and more details of +the implementation in Strolch are fixed, more documentation can be created and +will be available here.

    Currently we have the following topics of discussion:

    \ No newline at end of file diff --git a/publish/documentation/index.xml b/publish/documentation/index.xml new file mode 100644 index 0000000..3a1d9b6 --- /dev/null +++ b/publish/documentation/index.xml @@ -0,0 +1,25 @@ +Documentation on Strolchhttps://strolch.li/documentation/Recent content in Documentation on StrolchHugo -- gohugo.ioen-usArchitecturehttps://strolch.li/documentation/architecture/Mon, 01 Jan 0001 00:00:00 +0000https://strolch.li/documentation/architecture/Architecture Birds View A Strolch agent&rsquo;s architecture can be seen as a simple three-tier architecture. The presentation layer is mostly a web frontend, where the communication with the agent is done via REST API calls. +The agent itself implements the business logic using Services, Commands, Queries etc. +The agent can communicate with other 3rd systems using any API, where it is preferred to use JSON over REST. +The agent can use a standard RDBMS as a storage system, where currently DAOs have been implemented only for PostgreSQL.Modelhttps://strolch.li/documentation/model/Mon, 01 Jan 0001 00:00:00 +0000https://strolch.li/documentation/model/Model Before we dive into the entire model, let&rsquo;s show an example and how it would be modelled in Strolch and use in Strolch: +A possible model would look as follows: +&lt;?xml version=&#34;1.0&#34; encoding=&#34;UTF-8&#34; ?&gt; &lt;StrolchModel xmlns=&#34;https://strolch.li/xsd/StrolchModel-1.6.xsd&#34;&gt; &lt;Resource Id=&#34;Product&#34; Name=&#34;Product Template&#34; Type=&#34;Template&#34;&gt; &lt;ParameterBag Id=&#34;parameters&#34; Name=&#34;Parameters&#34; Type=&#34;Parameters&#34;&gt; &lt;Parameter Id=&#34;description&#34; Name=&#34;Description&#34; Type=&#34;String&#34; Value=&#34;&#34;/&gt; &lt;Parameter Id=&#34;color&#34; Name=&#34;Color&#34; Type=&#34;String&#34; Value=&#34;&#34;/&gt; &lt;Parameter Id=&#34;form&#34; Name=&#34;Form&#34; Type=&#34;String&#34; Value=&#34;&#34;/&gt; &lt;/ParameterBag&gt; &lt;ParameterBag Id=&#34;relations&#34; Name=&#34;Relations&#34; Type=&#34;Relations&#34;&gt; &lt;Parameter Id=&#34;articles&#34; Name=&#34;Articles&#34; Type=&#34;StringList&#34; Interpretation=&#34;Resource-Ref&#34; Uom=&#34;Article&#34; Value=&#34;&#34;/&gt; &lt;/ParameterBag&gt; &lt;/Resource&gt; &lt;Resource Id=&#34;Article&#34; Name=&#34;Article Template&#34; Type=&#34;Template&#34;&gt; &lt;ParameterBag Id=&#34;parameters&#34; Name=&#34;Parameters&#34; Type=&#34;Parameters&#34;&gt; &lt;Parameter Id=&#34;description&#34; Name=&#34;Description&#34; Type=&#34;String&#34; Value=&#34;&#34;/&gt; &lt;Parameter Id=&#34;barcode&#34; Name=&#34;Barcode&#34; Type=&#34;String&#34; Value=&#34;&#34;/&gt; &lt;/ParameterBag&gt; &lt;ParameterBag Id=&#34;relations&#34; Name=&#34;Relations&#34; Type=&#34;Relations&#34;&gt; &lt;Parameter Id=&#34;product&#34; Name=&#34;Product&#34; Type=&#34;String&#34; Interpretation=&#34;Resource-Ref&#34; Uom=&#34;Product&#34; Value=&#34;&#34;/&gt; &lt;/ParameterBag&gt; &lt;/Resource&gt; &lt;Resource Id=&#34;Customer&#34; Name=&#34;Customer Template&#34; Type=&#34;Template&#34;&gt; &lt;ParameterBag Id=&#34;address&#34; Name=&#34;Address&#34; Type=&#34;Address&#34;&gt; &lt;Parameter Id=&#34;street&#34; Name=&#34;Street&#34; Type=&#34;String&#34; Value=&#34;&#34;/&gt; &lt;Parameter Id=&#34;zip&#34; Name=&#34;Zip&#34; Type=&#34;String&#34; Value=&#34;&#34;/&gt; &lt;Parameter Id=&#34;city&#34; Name=&#34;City&#34; Type=&#34;String&#34; Value=&#34;&#34;/&gt; &lt;Parameter Id=&#34;country&#34; Name=&#34;Country&#34; Type=&#34;String&#34; Value=&#34;&#34;/&gt; &lt;/ParameterBag&gt; &lt;/Resource&gt; &lt;Order Id=&#34;Order&#34; Name=&#34;Order&#34; Type=&#34;Template&#34;&gt; &lt;ParameterBag Id=&#34;quantities&#34; Name=&#34;Quantities per Article Id&#34; Type=&#34;Quantities&#34;&gt; &lt;Parameter Id=&#34;quantity&#34; Name=&#34;Quantity&#34; Type=&#34;Float&#34; Value=&#34;0&#34;/&gt; &lt;/ParameterBag&gt; &lt;ParameterBag Id=&#34;relations&#34; Name=&#34;Relations&#34; Type=&#34;Relations&#34;&gt; &lt;Parameter Id=&#34;articles&#34; Name=&#34;Articles&#34; Type=&#34;StringList&#34; Interpretation=&#34;Resource-Ref&#34; Uom=&#34;Article&#34; Value=&#34;&#34;/&gt; &lt;Parameter Id=&#34;customer&#34; Name=&#34;Customer&#34; Type=&#34;String&#34; Interpretation=&#34;Resource-Ref&#34; Uom=&#34;Customer&#34; Value=&#34;&#34;/&gt; &lt;/ParameterBag&gt; &lt;/Order&gt; &lt;/StrolchModel&gt; Let&rsquo;s go through this model:Do and Don'thttps://strolch.li/documentation/do-and-donts/Mon, 01 Jan 0001 00:00:00 +0000https://strolch.li/documentation/do-and-donts/This page discusses things you should and shouldn&rsquo;t do when using Strolch The following is a simple list of do&rsquo;s and don&rsquo;ts: +1 Service per use-case, should mostly delegate to Commands. Commands implement use-cases or parts of it, and are thus reusable. Subclass ResourceSearch, OrderSearch and ActivitySearch when implementing use-case specific search - this allows privilege checking. One Transaction at a time - no TX inside of another TX. Commands are added to TXs and performed on close: tx.Runtime Configurationhttps://strolch.li/documentation/runtime-configuration/Mon, 01 Jan 0001 00:00:00 +0000https://strolch.li/documentation/runtime-configuration/Runtime Configuration A Strolch runtime configuration comprises two parts: a configuration part, and a model part. The configuration are files located in the ..config/ folder, and the model are files located in the ../data folder. +In an absolute minimal configuration, the Strolch runtime requires the following folder structure: +../config/ ../StrolchConfiguration.xml → configures the Strolch agent ../PrivilegeConfig.xml → configures user management ../PrivilegeUsers.xml → contains the users in an XML based user management file .Realmshttps://strolch.li/documentation/realms/Mon, 01 Jan 0001 00:00:00 +0000https://strolch.li/documentation/realms/Realms Realms implement multi-tenant capabilities. A Strolch agent can have an arbitrary number of realms configured and each realm has its own persistence configuration, allowing to separate mandates completely. +A realm can run in one of the following modes: +EMPTY This is a transient data store mode, where no model changes are persisted - they are only kept in memory. When the Strolch agent is started, this realm is empty as no data is loaded.Componentshttps://strolch.li/documentation/components/Mon, 01 Jan 0001 00:00:00 +0000https://strolch.li/documentation/components/Components A Strolch agent can be easily extended with arbitrary components. An agent is basically a container for classes extending StrolchComponent with a life cycle. These classes mostly implement an interface which describes the operations that are supported by the component. +The following represents a list of the most used components: +RealmHandler: li.strolch.agent.impl.DefaultRealmHandler PrivilegeHandler: li.strolch.runtime.privilege.DefaultStrolchPrivilegeHandler EnumHandler: li.strolch.runtime.query.enums.DefaultEnumHandler PolicyHandler: li.strolch.policy.DefaultPolicyHandler ServiceHandler: li.strolch.service.api.DefaultServiceHandler StrolchSessionHandler: li.strolch.rest.DefaultStrolchSessionHandler PersistenceHandler: multiple implementations PostInitializer: project specific implementation MailHandler: li.Services and Commandshttps://strolch.li/documentation/services-and-commands/Mon, 01 Jan 0001 00:00:00 +0000https://strolch.li/documentation/services-and-commands/Services and Commands Services are written to implement a specific use-case. Commands are written to implement re-usable parts of a use-case. The use-case can be abstract e.g., AddResourceService or very specific e.g. CreatePatientService. +Should the use-case be re-usable in different scenarios, then commands should implement the logic, and the services should then execute the commands. E.g. The CreatePatientService would use a CreatePatientResourceCommand and then use an AddResourceCommand in a single transaction, so that the task of creating the actual Patient Resource can be re-used somewhere else.Searcheshttps://strolch.li/documentation/searches/Mon, 01 Jan 0001 00:00:00 +0000https://strolch.li/documentation/searches/Searches As is custom for every framework, querying, or searching, the model must be possible. Strolch searches are implemented using the StrolchSearch class and one of its concrete implementations: ResourceSearch, OrderSearch, ActivitySearch. +A Strolch element always has two identifiers: Type and Id. The type is important as it classifies an element. So if a car and a house would be modelled in Strolch, then those would both be a Resource, but one of type Car and the other of type House.Querieshttps://strolch.li/documentation/queries/Mon, 01 Jan 0001 00:00:00 +0000https://strolch.li/documentation/queries/Queries The Query API is deprecated and the search API should be used instead. +As is custom for every framework, querying the model must be possible. Strolch queries are implemented using the StrolchQuery interface and one of its concrete implementations: ResourceQuery, OrderQuery, ActivityQuery. +A Strolch element always has two identifiers: Type and Id. The type is important as it classifies an element. So if a car and a house would be modelled in Strolch, then those would both be a Resource, but one of type Car and the other of type House.Transactionshttps://strolch.li/documentation/transactions/Mon, 01 Jan 0001 00:00:00 +0000https://strolch.li/documentation/transactions/Transactions Strolch Transactions play a central role in a Strolch agent. A transaction is opened for a realm, and grants access to the model of the agent. Transactions are implemented as a Java try-with-resources by implementing the AutoCloseable interface. This makes it trivial to understand the scope of a transaction. +Transactions handle the following: +Opening and closing database connections Releasing locks to strolch elements, if tx.lock(StrolchRootElement) or tx.lock(Locator) was called Performing Commands by executing them in the added order, and validating them first.Policieshttps://strolch.li/documentation/policies/Mon, 01 Jan 0001 00:00:00 +0000https://strolch.li/documentation/policies/Policies Policies are an integral part when writing business logic in Strolch. In many cases it would suffice to write all such logic in Services and Commands, but as soon as behaviour can change, depending on the element being accessed, then this would quickly lead to many if/else blocks. +Since writing large if/else blocks is not maintanable in the long run, Strolch offers a different approach. All Strolch elements can store Policy definitions.Observershttps://strolch.li/documentation/observers/Mon, 01 Jan 0001 00:00:00 +0000https://strolch.li/documentation/observers/Observers All changes done in a Strolch transaction are recorded and then propagated to any registered observers. +The observer feature is opt-in and is configured for each realm. In the StrolchConfiguration.xml file enable observers by adding the enableObserverUpdates property per realm: +&lt;StrolchConfiguration&gt; &lt;env id=&#34;dev&#34;&gt; ... &lt;Component&gt; &lt;name&gt;RealmHandler&lt;/name&gt; &lt;api&gt;li.strolch.agent.api.RealmHandler&lt;/api&gt; &lt;impl&gt;li.strolch.agent.impl.DefaultRealmHandler&lt;/impl&gt; &lt;depends&gt;PrivilegeHandler&lt;/depends&gt; &lt;Properties&gt; &lt;realms&gt;defaultRealm, otherRealm&lt;/realms&gt; &lt;enableObserverUpdates&gt;true&lt;/enableObserverUpdates&gt; &lt;dataStoreMode&gt;TRANSIENT&lt;/dataStoreMode&gt; &lt;dataStoreFile&gt;StrolchModel.xml&lt;/dataStoreFile&gt; &lt;enableObserverUpdates.otherRealm&gt;true&lt;/enableObserverUpdates.otherRealm&gt; &lt;dataStoreMode.otherRealm&gt;TRANSIENT&lt;/dataStoreMode.otherRealm&gt; &lt;dataStoreFile.otherRealm&gt;StrolchModel.xml&lt;/dataStoreFile.otherRealm&gt; &lt;/Properties&gt; &lt;/Component&gt; &lt;/env&gt; ... &lt;/StrolchConfiguration&gt; Registering for updates is done by registering an Observer on the ObserverHandler of the realm itself:Versioninghttps://strolch.li/documentation/versioning/Mon, 01 Jan 0001 00:00:00 +0000https://strolch.li/documentation/versioning/Versioning One of Strolch&rsquo;s features that sets it apart from other frameworks, is that versioning is baked into Strolch&rsquo;s fabric. The feature is opt-in, as it is not required in all projects, but it only needs enabling, for all modifications to objects to be versioned, so that rollbacks can be done when needed. +The feature is enabled for each realm. In the StrolchConfiguration.xml file enable it by adding the enableVersioning propery per realm:Reportshttps://strolch.li/documentation/reports/Mon, 01 Jan 0001 00:00:00 +0000https://strolch.li/documentation/reports/Reports Since Strolch has a generic model, it was rather straight forward to create a simple API for writing reports. In Strolch a report is defined by using its own model, i.e. a Report is a Resource of type Report. +A report consists of the following parts: +policy definition, thus allowing extensions basic configuration like base object type, order direction, etc. column definitions joins ordering definition filters An example of a report is as follows:Privilegeshttps://strolch.li/documentation/priviles/Mon, 01 Jan 0001 00:00:00 +0000https://strolch.li/documentation/priviles/Privileges No framework is complete without user management and privilege validation. The basic form would be Users and Roles, and then validating that an authenticated user has a given role. In Strolch we go a step further: A User has roles assigned, and each role has a set of Privileges. The privileges can overlap, a validation is performed to make sure that the one role doesn&rsquo;t deny and another role allows a specific action. \ No newline at end of file diff --git a/publish/documentation/model/index.html b/publish/documentation/model/index.html new file mode 100644 index 0000000..d04c149 --- /dev/null +++ b/publish/documentation/model/index.html @@ -0,0 +1,264 @@ +Model - Strolch

    Model

    Model

    Before we dive into the entire model, let’s show an example and how it would +be modelled in Strolch and use in Strolch:

    Strolch model example

    A possible model would look as follows:

    <?xml version="1.0" encoding="UTF-8" ?>
    +<StrolchModel xmlns="https://strolch.li/xsd/StrolchModel-1.6.xsd">
    +
    +    <Resource Id="Product" Name="Product Template" Type="Template">
    +        <ParameterBag Id="parameters" Name="Parameters" Type="Parameters">
    +            <Parameter Id="description" Name="Description" Type="String" Value=""/>
    +            <Parameter Id="color" Name="Color" Type="String" Value=""/>
    +            <Parameter Id="form" Name="Form" Type="String" Value=""/>
    +        </ParameterBag>
    +        <ParameterBag Id="relations" Name="Relations" Type="Relations">
    +            <Parameter Id="articles" Name="Articles" Type="StringList" Interpretation="Resource-Ref" Uom="Article" Value=""/>
    +        </ParameterBag>
    +    </Resource>
    +
    +    <Resource Id="Article" Name="Article Template" Type="Template">
    +        <ParameterBag Id="parameters" Name="Parameters" Type="Parameters">
    +            <Parameter Id="description" Name="Description" Type="String" Value=""/>
    +            <Parameter Id="barcode" Name="Barcode" Type="String" Value=""/>
    +        </ParameterBag>
    +        <ParameterBag Id="relations" Name="Relations" Type="Relations">
    +            <Parameter Id="product" Name="Product" Type="String" Interpretation="Resource-Ref" Uom="Product" Value=""/>
    +        </ParameterBag>
    +    </Resource>
    +
    +    <Resource Id="Customer" Name="Customer Template" Type="Template">
    +        <ParameterBag Id="address" Name="Address" Type="Address">
    +            <Parameter Id="street" Name="Street" Type="String" Value=""/>
    +            <Parameter Id="zip" Name="Zip" Type="String" Value=""/>
    +            <Parameter Id="city" Name="City" Type="String" Value=""/>
    +            <Parameter Id="country" Name="Country" Type="String" Value=""/>
    +        </ParameterBag>
    +    </Resource>
    +
    +    <Order Id="Order" Name="Order" Type="Template">
    +        <ParameterBag Id="quantities" Name="Quantities per Article Id" Type="Quantities">
    +            <Parameter Id="quantity" Name="Quantity" Type="Float" Value="0"/>
    +        </ParameterBag>
    +        <ParameterBag Id="relations" Name="Relations" Type="Relations">
    +            <Parameter Id="articles" Name="Articles" Type="StringList" Interpretation="Resource-Ref" Uom="Article" Value=""/>
    +            <Parameter Id="customer" Name="Customer" Type="String" Interpretation="Resource-Ref" Uom="Customer" Value=""/>
    +        </ParameterBag>
    +    </Order>
    +
    +</StrolchModel>
    +

    Let’s go through this model:

    • In the above model we see that the id and name fields are always on the +element, and thus aren’t added as parameters. Further most elements have a +parameters ParameterBag, with one or more parameters, modelling the fields.
    • Note that in this example the Type of all the elements is Template. Strolch +has API support to create a clone of these elements, so that they have a +unique ID, and the proper type for persistence.
    • The Product element has three parameters: description, color and form. In +this case they are all of type String. Further the relations ParameterBag +defines the relationships, i.e. the product knows its articles. Note how +the relation is first defined in a relations ParameterBag and that the +Parameter has Interpretation=“Resource-Ref” Uom=“Product” attributes. +Strolch has API support for this, making it trivial to retrieve a dependency.
    • The Article element has two parameters description and barcode. Further it +has a reference to its Product.
    • The Order element doesn’t model the date and state fields as parameters, as +these are inherently part of an Order element. The Order does define two +references to customer and articles. A special case is the quantities +ParameterBag. This bag of parameters is used to store the per article +quantity for this order. With ParameterBags, you can eliminate the use of +simple aggregate classes, as is commonly used in object-oriented programming.
    • The Customer element models a address ParameterBag to store the address of +a customer. Using a separate bag allows for further more direct fields to +stored on the default parameters bag.

    Now that we have a basic understanding of te model, it is of far more interest +in how to create and interact with these elements at runtime. The following +listing will perform simple operations:

    try (StrolchTransaction tx = runtimeMock.openUserTx(certificate, false)) {
    +
    +    /*
    +     * create a new product
    +     */
    +    Resource dafalgan = tx.getResourceTemplate("Product", true);
    +    dafalgan.setName("Dafalgan 100mg");
    +    dafalgan.getParameter("description", true).setValue("Dafalgan is for pain.");
    +    dafalgan.getParameter("color", true).setValue("Yellow");
    +    dafalgan.getParameter("form", true).setValue("flat");
    +
    +    StringListParameter articlesP = dafalgan.getRelationsParam("articles", true);
    +
    +    /*
    +     * create articles
    +     */
    +    Resource dafalgan1 = tx.getResourceTemplate("Article", true);
    +    dafalgan1.setName("Dafalgan 100mg 10 pce");
    +    dafalgan1.getParameter("description", true).setValue("This is pack with 10 pieces.");
    +    dafalgan1.getParameter("barcode", true).setValue("654654");
    +
    +    Resource dafalgan2 = tx.getResourceTemplate("Article", true);
    +    dafalgan2.setName("Dafalgan 100mg 20 pce");
    +    dafalgan2.getParameter("description", true).setValue("This is pack with 20 pieces.");
    +    dafalgan2.getParameter("barcode", true).setValue("654655");
    +
    +    /*
    +     * add reference to product
    +     */
    +    dafalgan1.getRelationParam("product").setValue(dafalgan.getId());
    +    articlesP.addValue(dafalgan1.getId());
    +    dafalgan2.getRelationParam("product").setValue(dafalgan.getId());
    +    articlesP.addValue(dafalgan2.getId());
    +
    +    /*
    +     * create a new customer
    +     */
    +    Resource customer1 = tx.getResourceTemplate("Customer", true);
    +    customer1.setName("John Doe");
    +
    +    // set address
    +    ParameterBag addressBag = customer1.getParameterBag("address", true);
    +    addressBag.getParameter("street", true).setValue("Main Str. 1");
    +    addressBag.getParameter("zip", true).setValue("1234");
    +    addressBag.getParameter("city", true).setValue("Hometown");
    +    addressBag.getParameter("country", true).setValue("Switzerland");
    +
    +    /*
    +     * create a new order
    +     */
    +    Order order = tx.getOrderTemplate("Order", true);
    +    order.setName("Order for " + customer1.getName());
    +    order.setDate(LocalDate.of(2021, 2, 1));
    +    order.setState(State.PLANNED);
    +
    +    // store reference to customer
    +    order.getRelationParam("customer", true).setValue(customer1.getId());
    +
    +    StringListParameter orderArticlesP = order.getRelationsParam("articles", true);
    +    ParameterBag quantitiesBag = order.getParameterBag("quantities", true);
    +    FloatParameter quantityT = quantitiesBag.removeParameter("quantity");
    +
    +    // order quantity of 20 for Dafalgan 1
    +    FloatParameter q1P = quantityT.getClone();
    +    q1P.setId(dafalgan1.getId());
    +    q1P.setValue(20);
    +    quantitiesBag.addParameter(q1P);
    +    orderArticlesP.addValue(dafalgan1.getId());
    +
    +    // set order quantity of 10 for Dafalgan 2
    +    FloatParameter q2P = quantityT.getClone();
    +    orderArticlesP.addValue(dafalgan2.getId());
    +    q2P.setId(dafalgan2.getId());
    +    q2P.setValue(20);
    +    quantitiesBag.addParameter(q2P);
    +
    +    // keep IDs for later use
    +    dafalganId = dafalgan.getId();
    +    dafalgan1Id = dafalgan1.getId();
    +    dafalgan2Id = dafalgan2.getId();
    +    customerId = customer1.getId();
    +    orderId = order.getId();
    +
    +    /*
    +     * persist
    +     */
    +    tx.add(dafalgan);
    +    tx.add(dafalgan1);
    +    tx.add(dafalgan2);
    +    tx.add(customer1);
    +    tx.add(order);
    +
    +    // commit
    +    tx.commitOnClose();
    +}
    +
    try (StrolchTransaction tx = runtimeMock.openUserTx(certificate, true)) {
    +
    +    // get order
    +    Order order = tx.getOrderBy("Order", orderId, true);
    +    assertNotNull(orderId);
    +    assertEquals("Order for John Doe", order.getName());
    +
    +    // get customer
    +    Resource customer = tx.getResourceByRelation(order, "customer", true);
    +    assertNotNull(customer);
    +    assertEquals("John Doe", customer.getName());
    +
    +    // get articles
    +    List<Resource> articles = tx.getResourcesByRelation(order, "articles", true);
    +    assertEquals(2, articles.size());
    +
    +    // get products
    +    List<Resource> products = articles.stream().map(a -> tx.getResourceByRelation(a, "product", true))
    +            .distinct().collect(Collectors.toList());
    +    assertEquals(1, products.size());
    +
    +    // search for all orders in state PLANNED and with customer
    +    List<Order> orders = new OrderSearch().types("Order").stateIsIn(State.PLANNED)
    +            .where(ExpressionsSupport.relationParam("customer").isEqualTo(customerId)).search(tx).toList();
    +    assertEquals(1, orders.size());
    +}
    +

    Note: Checkout example-model.xml and SimpleModelTest.java for these examples.

    There is an XML Schema which defines the model in XML: StrolchModel-1.6.xsd

    Here is an example of all the possible elements in Strolch:

    <StrolchModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    +xmlns="https://strolch.li/xsd/StrolchModel-1.6.xsd"
    +xsi:schemaLocation="https://strolch.li/xsd/StrolchModel-1.6.xsd StrolchModel-1.6.xsd">
    +
    +  <IncludeFile file="Include1.xml"/>
    +
    +  <Order Id="@test1" Name="Test Order" Type="Order">
    +    <Version Version="0" CreatedBy="test" CreatedAt="2012-11-30T18:12:05.628+01:00" Deleted="false"/>
    +    <ParameterBag Id="@bag01" Name="Test Bag" Type="TestBag">
    +      <Parameter Id="@param1" Name="Boolean Param" Type="Boolean" Value="true"/>
    +    </ParameterBag>
    +    <ParameterBag Id="@bag01" Name="Test Bag" Type="TestBag">
    +      <Parameter Id="@param1" Name="Boolean Param" Type="Boolean" Value="true"/>
    +    </ParameterBag>
    +    <Policies>
    +      <Policy Type="PlanningPolicy" Value="key:SimplePlanning"/>
    +      <Policy Type="ConfirmationPolicy" Value="key:NoConfirmation"/>
    +    </Policies>
    +  </Order>
    +
    +  <Resource Id="MyTestResource" Name="Test Name" Type="TestType">
    +    <Version Version="0" CreatedBy="test" CreatedAt="2012-11-30T18:12:05.628+01:00" Deleted="false"/>
    +    <ParameterBag Id="@bag01" Name="Test Bag 01" Type="TestBag">
    +      <Parameter Id="@param1" Name="Boolean Param" Type="Boolean" Value="true"/>
    +    </ParameterBag>
    +    <ParameterBag Id="@bag02" Name="Test Bag 02" Type="TestBag">
    +      <Parameter Id="@param1" Name="Boolean Param" Type="Boolean" Value="true"/>
    +    </ParameterBag>
    +    <TimedState Id="@booleanState" Name="Boolean State" Type="Boolean">
    +      <Value Time="1970-01-01T00:02:00.000+01:00" Value="false"/>
    +    </TimedState>
    +    <Policies>
    +      <Policy Type="PlanningPolicy" Value="key:SimplePlanning"/>
    +      <Policy Type="ConfirmationPolicy" Value="key:NoConfirmation"/>
    +    </Policies>
    +  </Resource>
    +
    +  <Activity Id="activity_1" Name="Activity" Type="parentType" TimeOrdering="Series">
    +    <Version Version="0" CreatedBy="test" CreatedAt="2012-11-30T18:12:05.628+01:00" Deleted="false"/>
    +    <ParameterBag Id="@bag01" Name="Test Bag" Type="TestBag">
    +      <Parameter Id="@param1" Name="Boolean Param" Type="Boolean" Value="true"/>
    +    </ParameterBag>
    +    <Policies>
    +      <Policy Type="PlanningPolicy" Value="key:SimplePlanning"/>
    +      <Policy Type="ConfirmationPolicy" Value="key:NoConfirmation"/>
    +    </Policies>
    +    <Action Id="action_1" Name="Action 1" ResourceId="dummyId" ResourceType="dummyType" State="Created" Type="Use">
    +      <ParameterBag Id="@bag01" Name="Test Bag" Type="TestBag">
    +        <Parameter Id="@param1" Name="Boolean Param" Type="Boolean" Value="true"/>
    +      </ParameterBag>
    +      <Policies>
    +        <Policy Type="PlanningPolicy" Value="key:SimplePlanning"/>
    +        <Policy Type="ConfirmationPolicy" Value="key:NoConfirmation"/>
    +      </Policies>
    +      <ValueChange StateId="dummyId" Time="2012-11-30T18:12:05.628+01:00" Value="5" Type="Integer"/>
    +      <ValueChange StateId="dummyId" Time="2012-11-30T18:12:06.628+01:00" Value="6" Type="Integer"/>
    +    </Action>
    +    <Activity Id="child_activity" Name="Child Activity" Type="childType" TimeOrdering="Series">
    +      <ParameterBag Id="@bag01" Name="Test Bag" Type="TestBag">
    +        <Parameter Id="@param1" Name="Boolean Param" Type="Boolean" Value="true"/>
    +      </ParameterBag>
    +      <Policies>
    +        <Policy Type="PlanningPolicy" Value="key:SimplePlanning"/>
    +        <Policy Type="ConfirmationPolicy" Value="key:NoConfirmation"/>
    +      </Policies>
    +      <Action Id="action_2" Name="Action 2" ResourceId="dummyId" ResourceType="dummyType" State="Planned"
    +          Type="Use">
    +        <ValueChange StateId="dummyId" Time="2012-11-30T18:12:05.628+01:00" Value="5" Type="Integer"/>
    +        <ValueChange StateId="dummyId" Time="2012-11-30T18:12:06.628+01:00" Value="6" Type="Integer"/>
    +      </Action>
    +      <Action Id="action_3" Name="Action 3" ResourceId="dummyId" ResourceType="dummyType" State="Created"
    +          Type="Use"/>
    +    </Activity>
    +  </Activity>
    +
    +</StrolchModel>
    +
    \ No newline at end of file diff --git a/publish/documentation/observers/index.html b/publish/documentation/observers/index.html new file mode 100644 index 0000000..cfffcfe --- /dev/null +++ b/publish/documentation/observers/index.html @@ -0,0 +1,46 @@ +Observers - Strolch

    Observers

    Observers

    All changes done in a Strolch transaction are recorded and then propagated to +any registered observers.

    The observer feature is opt-in and is configured for each realm. In the +StrolchConfiguration.xml file enable observers by adding the +enableObserverUpdates property per realm:

    <StrolchConfiguration>
    +  <env id="dev">
    +    ...
    +    <Component>
    +      <name>RealmHandler</name>
    +      <api>li.strolch.agent.api.RealmHandler</api>
    +      <impl>li.strolch.agent.impl.DefaultRealmHandler</impl>
    +      <depends>PrivilegeHandler</depends>
    +      <Properties>
    +        <realms>defaultRealm, otherRealm</realms>
    +        <enableObserverUpdates>true</enableObserverUpdates>
    +        <dataStoreMode>TRANSIENT</dataStoreMode>
    +        <dataStoreFile>StrolchModel.xml</dataStoreFile>
    +        <enableObserverUpdates.otherRealm>true</enableObserverUpdates.otherRealm>
    +        <dataStoreMode.otherRealm>TRANSIENT</dataStoreMode.otherRealm>
    +        <dataStoreFile.otherRealm>StrolchModel.xml</dataStoreFile.otherRealm>
    +      </Properties>
    +    </Component>
    +  </env>
    +  ...
    +</StrolchConfiguration>
    +

    Registering for updates is done by registering an Observer on the +ObserverHandler of the realm itself:

    ObserverHandler observerHandler = container.getRealm(StrolchConstants.DEFAULT_REALM).getObserverHandler();
    +observerHandler.registerObserver(Tags.RESOURCE, new Observer() {
    +
    +  @Override
    +  public void update(String key, List<StrolchRootElement> elements) {
    +    logger.info(elements.size() + " resources were updated!");
    +  }
    +
    +  @Override
    +  public void remove(String key, List<StrolchRootElement> elements) {
    +    logger.info(elements.size() + " resources were removed!");
    +  }
    +
    +  @Override
    +  public void add(String key, List<StrolchRootElement> elements) {
    +    logger.info(elements.size() + " resources were added!");
    +  }
    +});
    +
    \ No newline at end of file diff --git a/publish/documentation/policies/index.html b/publish/documentation/policies/index.html new file mode 100644 index 0000000..91d5b42 --- /dev/null +++ b/publish/documentation/policies/index.html @@ -0,0 +1,68 @@ +Policies - Strolch

    Policies

    Policies

    Policies are an integral part when writing business logic in Strolch. In many +cases it would suffice to write all such logic in Services and Commands, but +as soon as behaviour can change, depending on the element being accessed, then +this would quickly lead to many if/else blocks.

    Since writing large if/else blocks is not maintanable in the long run, Strolch +offers a different approach. All Strolch elements can store Policy definitions. +This is a simple key/value store where the key defines the type of policy, and +the value references the policy to use.

    Currently there are two ways to reference a policy in Strolch, either via a key +which defines a further lookup in the PolicyHandler, or directly as the name +of the class to instantiate.

    Using policies in Strolch gives the additional possibility of easily changing +the behaviour at runtime, as a Service and/or Command would delegate the +behaviour to the currently configured policy on the releveant element.

    Policies are implemented by defining an abstract class and extends +StrolchPolicy. This abstract class then defines the API of the actual policy. A +concrete class then extends this abstract class and implements the concrete +methods.

    Policies are registered on Resources, Orders, Activities and Actions. The +following shows defining two policies on a Resource, a PlanningPolicy, an +ExecutionPolicy in XML:

    <Resource ...>
    +  ...
    +  <Policies>
    +    <Policy Type="PlanningPolicy" Value="key:SimplePlanning" />
    +    <Policy Type="ExecutionPolicy" Value="java:li.strolch.policytest.TestSimulatedExecutionPolicy" />
    +  </Policies>
    +</Resource>
    +

    Note how the PlanningPolicy has a value of key:SimplePlanning +and the ExecutionPolicy defines a reference to an actual class.

    To use the PolicyHandler, it must be configured in the StrolchConfiguration.xml +as follows:

    
    +<Component>
    +    <name>PolicyHandler</name>
    +    <api>li.strolch.policy.PolicyHandler</api>
    +    <impl>li.strolch.policy.DefaultPolicyHandler</impl>
    +    <Properties>
    +        <readPolicyFile>true</readPolicyFile>
    +        <policyConfigFile>StrolchPolicies.xml</policyConfigFile>
    +    </Properties>
    +</Component>
    +

    And this policy handler implementation requires a file where the lookups for the +policies is defined, e.g.:

    
    +<StrolchPolicies>
    +
    +    <PolicyType Type="PlanningPolicy"
    +                Api="li.strolch.policytest.TestPlanningPolicy">
    +        <Policy Key="SimplePlanning"
    +                Class="li.strolch.policytest.TestSimplePlanningPolicy"/>
    +    </PolicyType>
    +
    +    <PolicyType Type="ConfirmationPolicy"
    +                Api="li.strolch.policytest.TestConfirmationPolicy">
    +        <Policy Key="NoConfirmation"
    +                Class="li.strolch.policytest.TestNoConfirmationPolicy"/>
    +    </PolicyType>
    +
    +</StrolchPolicies>
    +

    Now at runtime we can access the policies:

    PolicyHandler policyHandler=getComponent(PolicyHandler.class);
    +
    +try(StrolchTransaction tx=openTx()){
    +    Resource res=tx.getResourceBy("TestType","MyTestResource");
    +    PolicyDefs policyDefs=res.getPolicyDefs();
    +    
    +    PolicyDef planningPolicyDef=policyDefs.getPolicyDef("PlanningPolicy");
    +    PlanningPolicy planningPolicy=policyHandler.getPolicy(planningPolicyDef,tx);
    +    planningPolicy.plan(...);
    +    
    +    PolicyDef executionPolicyDef=res.getPolicyDefs().getPolicyDef("ExecutionPolicy");
    +    ExecutionPolicy executionPolicy=policyHandler.getPolicy(executionPolicyDef,tx);
    +    executionPolicy.execute(...);
    +}
    +
    \ No newline at end of file diff --git a/publish/documentation/priviles/index.html b/publish/documentation/priviles/index.html new file mode 100644 index 0000000..af63623 --- /dev/null +++ b/publish/documentation/priviles/index.html @@ -0,0 +1,73 @@ +Privileges - Strolch

    Privileges

    Privileges

    No framework is complete without user management and privilege validation. The +basic form would be Users and Roles, and then validating that an authenticated +user has a given role. In Strolch we go a step further: A User has roles +assigned, and each role has a set of Privileges. The privileges can overlap, a +validation is performed to make sure that the one role doesn’t deny and another +role allows a specific action.

    As explained in +the Privilege Configuration section, +users are defined in the PrivilegeUsers.xml file, and roles are defined in the +PrivilegeRoles.xml file.

    Let’s assume the following user and role definition:

    <Users>
    +  <User userId="1" username="jill" password="$PBKDF2WithHmacSHA512,10000,256$61646d696e$cb69962946617da006a2f95776d78b49e5ec7941d2bdb2d25cdb05f957f64344">
    +    <Firstname>Jill</Firstname>
    +    <Lastname>Someone</Lastname>
    +    <State>ENABLED</State>
    +    <Locale>en-GB</Locale>
    +    <Roles>
    +      <Role>AppUser</Role>
    +    </Roles>
    +    <Properties>
    +      <Property name="realm" value="execution" />
    +    </Properties>
    +  </User>
    +</Users>
    +
    <Roles>
    +  <Role name="AppUser">
    +    <Privilege name="li.strolch.service.api.Service" policy="DefaultPrivilege">
    +      <AllAllowed>true</AllAllowed>
    +    </Privilege>
    +    <Privilege name="li.strolch.model.query.StrolchQuery" policy="DefaultPrivilege">
    +      <AllAllowed>true</AllAllowed>
    +    </Privilege>
    +    <Privilege name="li.strolch.search.StrolchSearch" policy="DefaultPrivilege">
    +      <AllAllowed>true</AllAllowed>
    +    </Privilege>
    +  </Role>
    +</Roles>
    +

    This configuration contains one user and one role. The user jill has the role +AppUser and the role AppUser has three privileges assigned.

    Note how the user’s password is configured similar to a unix password +definition: Using the dollar sign & first the hashing algorithm is configured ( +algorithm, iterations, key length), then the salt, followed by the password +hash.

    Note: The password can also still be saved using two separate fields: a salt and +password field. This configuration will be immediately changed to the unix form, +so won’t be described further here.

    Further a user always has a firstname and last name. Optionally a locale can be +set, otherwise the system locale is used. The user’s state must be defined as +one of NEW, ENABLED, DISABLED, EXPIRED or SYSTEM. A user can only +authenticate/login with the state ENABLED. A user can have any number of +properties, which can then be used at runtime. A user can also reference any +number of roles, the assigned privilege can overlap, a global configuration mode +defines how duplicate privileges are handled.

    Roles have a name and any number of Privilege definitions. A Privilege has a +name, which in many cases is the name of Java class/interface on which an action +is being invoked. The policy value defines which policy to use when evaluating +the privilege access. The privilege definition is defined in the +PrivilegeConfig.xml and is the name of a class to call for privilege validation.

    Further the privilege definitions can have a AllAllowed boolean flag, or any +number of Allow or Deny values. How these values are interpreted is defined in +the policy implementation. A policy takes three input parameters:

    • PrivilegeContext → supplied by privilege and gives access to the Certificate, +thus identifying the user for which privilege access is to be validated.
    • IPrivilege → Contains the privilege values: AllAllowed, Allow and Deny
    • Restrictable → An interface from which the privilege name is retrieved, and +the associated value. The value is an object, and is cast to the relevant +input in the concrete privilege policy.

    The following privilege policies are already implemented:

    • DefaultPrivilege → simple policy where the passed Restrictable is expected to +return a String value, which is compared with allow and deny values.
    • Internal: RoleAccessPrivilege → policy used for the internal privileges +PrivilegeGetRole, PrivilegeAddRole, PrivilegeModifyRole or PrivilegeModifyRole
    • Internal: UserAccessPrivilege → policy used for the internal privileges +PrivilegeGetUser, PrivilegeAddUser, PrivilegeRemoveUser, PrivilegeModifyUser, +PrivilegeAddRoleToUser, PrivilegeRemoveRoleFromUser, PrivilegeSetUserState, +PrivilegeSetUserLocale or PrivilegeSetUserPassword
    • Internal: UserAccessWithSameOrganisationPrivilege → Same as the +UserAccessPrivilege but expects the authenticated user to have a property +organisation and validates that the user being modified is in the same +organisation.
    • Internal: UsernameFromCertificatePrivilege → This policy expects a +Restrictable to return the certificate of another authenticated user and is +used when modifying an authenticated user, i.e. killing a session, or +modifying its current state, e.g. locale etc.
    • Internal: UsernameFromCertificateWithSameOrganisationPrivilege → Same as +UsernameFromCertificatePrivilege but expects the authenticated user to have a +property organisation and validates that the user being modified is in the +same organisation.

    Note: As a rule, the sequence is AllAllowed → Allow → Deny → default deny

    \ No newline at end of file diff --git a/publish/documentation/queries/index.html b/publish/documentation/queries/index.html new file mode 100644 index 0000000..09bc5a8 --- /dev/null +++ b/publish/documentation/queries/index.html @@ -0,0 +1,61 @@ +Queries - Strolch

    Queries

    Queries

    The Query API is deprecated and the search API should be used instead.

    As is custom for every framework, querying the model must be possible. Strolch +queries are implemented using the StrolchQuery interface and one of its concrete +implementations: ResourceQuery, OrderQuery, ActivityQuery.

    A Strolch element always has two identifiers: Type and Id. The type is important +as it classifies an element. So if a car and a house would be modelled in +Strolch, then those would both be a Resource, but one of type Car and the other +of type House. Both would have different parameters.

    Thus one of the inputs for every query is it’s type, which is defined as the +navigation. It is said that we navigate to the Cars, or Houses. Thus when +instantiating a ResourceQuery, pass the navigation to the type of Resource as +well. Same applies for Orders and Activities.

    Further input for a StrolchQuery are the selections. These selections get +translated into RDBMS WHERE clauses. Selections support boolean operations thus +allowing for complex querying.

    StrolchQueries also support Ordering and object transformation. Following +classes provide the most used scenarios:

    • OrderById
    • OrderByName
    • OrderByParameter
    • *ToDomVisitor
    • *ToSaxVisitor
    • *ToJsonVisitor
    • *ToFlatJsonVisitor

    Example: Query all resources of type Car:

    try (StrolchTransaction tx = openTx()) {
    +  ResourceQuery<Resource> query = ResourceQuery.query("Car");
    +  query.withAny();
    +  List<Resource> cars = tx.doQuery(query);
    +}
    +

    Example: Query all resources of type Car, order by Name and transform to JSON:

    try (StrolchTransaction tx = openTx()) {
    +  ResourceQuery<JsonObject> query = ResourceQuery.query("Car", new ResourceToJsonVisitor(),
    +      new OrderByName());
    +  query.withAny();
    +  List<JsonObject> cars = tx.doQuery(query);
    +}
    +

    the previous example can also be written as follows:

    try (StrolchTransaction tx = openTx()) {
    +  ResourceQuery<JsonObject> query = new ResourceQuery<>();
    +  query.setNavigation(new StrolchTypeNavigation("Car"));
    +  query.setResourceVisitor(new ResourceToJsonVisitor());
    +  query.withAny();
    +  List<JsonObject> cars = tx.doQuery(query);
    +}
    +

    Example: Query all resources of type Car with color blue:

    try (StrolchTransaction tx = openTx()) {
    +    ResourceQuery<Resource> query = ResourceQuery.query("Car");
    +    query.with(ParameterSelection.stringSelection("parameters", "color", "blue", StringMatchMode.es()));
    +    List<Resource> cars = tx.doQuery(query);
    +}
    +

    Example: Query all resources of type Car which are not blue:

    try (StrolchTransaction tx = openTx()) {
    +  ResourceQuery<Resource> query = ResourceQuery.query("Car");
    +  query.not(ParameterSelection.stringSelection("parameters", "color", "blue", StringMatchMode.es()));
    +  List<Resource> cars = tx.doQuery(query);
    +}
    +

    Example: Query all resources of type Car with color blue or yellow:

    try (StrolchTransaction tx = openTx()) {
    +  ResourceQuery<Resource> query = ResourceQuery.query("Car");
    +  query.or().with(
    +      ParameterSelection.stringSelection("parameters", "color", "blue", StringMatchMode.es()),
    +      ParameterSelection.stringSelection("parameters", "color", "yellow", StringMatchMode.es()));
    +  List<Resource> cars = tx.doQuery(query);
    +}
    +

    Example: Query all resources of type Car with color blue or yellow owned by Jill:

    try (StrolchTransaction tx = openTx()) {
    +  ResourceQuery<Resource> query = ResourceQuery.query("Car");
    +
    +  StringParameterSelection owner = ParameterSelection.stringSelection("parameters", "owner", "Jill", StringMatchMode.es());
    +  OrSelection colors = new OrSelection().with(
    +      ParameterSelection.stringSelection("parameters", "color", "blue", StringMatchMode.es()),
    +      ParameterSelection.stringSelection("parameters", "color", "yellow", StringMatchMode.es()));
    +
    +  query.and().with(owner, colors);
    +
    +  List<Resource> cars = tx.doQuery(query);
    +}
    +
    \ No newline at end of file diff --git a/publish/documentation/realms/index.html b/publish/documentation/realms/index.html new file mode 100644 index 0000000..c85c79b --- /dev/null +++ b/publish/documentation/realms/index.html @@ -0,0 +1,82 @@ +Realms - Strolch

    Realms

    Realms

    Realms implement multi-tenant capabilities. A Strolch agent can have an +arbitrary number of realms configured and each realm has its own persistence +configuration, allowing to separate mandates completely.

    A realm can run in one of the following modes:

    • EMPTY +This is a transient data store mode, where no model changes are +persisted - they are only kept in memory. When the Strolch agent is +started, this realm is empty as no data is loaded.
    • TRANSIENT +This is the same as EMPTY, but with the difference that when the Strolch +agent is started, a model file is parsed and the in-memory realm is +populated with the elements parsed from the model file.
    • CACHED +In this mode, all data is stored in-memory, and any changes made are +written back to the persistence layer. This allows for fast in-memory +qeuries, but makes sure no data is lost when the agent is restarted.

    Realms are mostly hidden from a developer as a StrolchTransaction exposes +all important operations needed to access Strolch objects. A developer will +however need to configure the realms for their specific project. If the +project only requires one realm, then the defaultRealm can be used, where the +developer only is required to configure the mode and any relevant model file.

    If the mode is CACHED, then the PersistenceHandler component is required to be +configured, so that the DAOs know how to access the underlying database.

    The configuration in the StrolchConfiguration.xml file is as follows:

    <StrolchConfiguration>
    +  <env id="dev">
    +    ...
    +    <Component>
    +      <name>RealmHandler</name>
    +      <api>li.strolch.agent.api.RealmHandler</api>
    +      <impl>li.strolch.agent.impl.DefaultRealmHandler</impl>
    +      <depends>PrivilegeHandler</depends>
    +      <!-- if CACHED: -->
    +      <!--depends>PersistenceHandler</depends-->
    +      <Properties>
    +        <dataStoreMode>EMPTY|TRANSIENT|CACHED</dataStoreMode>
    +        <dataStoreFile>StrolchModel.xml</dataStoreFile>
    +      </Properties>
    +    </Component>
    +    ...
    +  </env>
    +</StrolchConfiguration>
    +

    Multi-Realm

    A multi-realm configuration would be as follows.

    Note how the defaultRealm is still enabled, and has its configuration as +before. Further the PostgreSQL PersistenceHandler is configured to show how the +realms are connected to the persistence handler:

    <StrolchConfiguration>
    +  <env id="dev">
    +    ...
    +    <Component>
    +      <name>RealmHandler</name>
    +      <api>li.strolch.agent.api.RealmHandler</api>
    +      <impl>li.strolch.agent.impl.DefaultRealmHandler</impl>
    +      <depends>PrivilegeHandler</depends>
    +      <depends>PersistenceHandler</depends>
    +      <Properties>
    +        <realms>defaultRealm, cachedRealm</realms>
    +        <dataStoreMode>TRANSIENT</dataStoreMode>
    +        <dataStoreFile>DefaultRealm.xml</dataStoreFile>
    +        <dataStoreMode.cachedRealm>CACHED</dataStoreMode.cachedRealm>
    +        <dataStoreMode.emptyRealm>EMPTY</dataStoreMode.emptyRealm>
    +      </Properties>
    +    </Component>
    +
    +    <Component>
    +      <name>PersistenceHandler</name>
    +      <api>li.strolch.persistence.api.PersistenceHandler</api>
    +      <impl>li.strolch.persistence.postgresql.PostgreSqlPersistenceHandler</impl>
    +      <Properties>
    +        <allowSchemaCreation>true</allowSchemaCreation>
    +        <allowSchemaDrop>true</allowSchemaDrop>
    +
    +        <db.url.cachedRealm>jdbc:postgresql://localhost/testdb2</db.url.cachedRealm>
    +        <db.username.cachedRealm>testuser2</db.username.cachedRealm>
    +        <db.password.cachedRealm>test</db.password.cachedRealm>
    +        <db.pool.maximumPoolSize.cachedRealm>1</db.pool.maximumPoolSize.cachedRealm>
    +      </Properties>
    +    </Component>
    +    ...
    +  </env>
    +</StrolchConfiguration>
    +

    Access realm

    Accessing a realm is done in multiple ways. Important is to note, that a user +should use the StrolchTransaction object, instead of accessing the Realm directly.

    Opening a transaction is done from a Service by calling one of the +openTx()-methods. Nevertheless, the realm can be accessed as follows:

    ComponentContainer container = getAgent().getContainer();
    +StrolchRealm realm = container.getRealm(StrolchConstants.DEFAULT_REALM);
    +try(StrolchTransaction tx = realm.openTx()) {
    +  Resource resource = tx.getResourceBy("TestType", "MyTestResource");
    +  ...
    +}
    +
    \ No newline at end of file diff --git a/publish/documentation/reports/index.html b/publish/documentation/reports/index.html new file mode 100644 index 0000000..90a042e --- /dev/null +++ b/publish/documentation/reports/index.html @@ -0,0 +1,159 @@ +Reports - Strolch

    Reports

    Reports

    Since Strolch has a generic model, it was rather straight forward to create a +simple API for writing reports. In Strolch a report is defined by using its own +model, i.e. a Report is a Resource of type Report.

    A report consists of the following parts:

    • policy definition, thus allowing extensions
    • basic configuration like base object type, order direction, etc.
    • column definitions
    • joins
    • ordering definition
    • filters

    An example of a report is as follows:

    
    +<Resource Id="stockReport" Name="Stock Report" Type="Report">
    +
    +    <ParameterBag Id="parameters" Name="parameters" Type="Parameters">
    +        <Parameter Id="objectType" Index="20" Hidden="false" Name="Object Type"
    +                   Type="String" Interpretation="Resource-Ref" Uom="Player"
    +                   Value="Player"/>
    +        <Parameter Id="descending" Name="Descending order" Type="Boolean"
    +                   Value="true"/>
    +    </ParameterBag>
    +
    +    <ParameterBag Id="ordering" Name="Ordering" Type="Ordering">
    +        <Parameter Id="name" Name="Name" Type="String"
    +                   Interpretation="Resource-Ref" Uom="Player" Value="$name"/>
    +    </ParameterBag>
    +
    +    <ParameterBag Id="noTeamFilter" Name="Filter" Type="Filter">
    +        <Parameter Id="policy" Name="Filter Policy" Type="String"
    +                   Interpretation="ReportFilterPolicy" Uom="key:Equals"
    +                   Value="!"/>
    +        <Parameter Id="fieldRef" Name="Field reference" Type="String"
    +                   Interpretation="Resource-Ref" Uom="Slot"
    +                   Value="Bags/relations/team"/>
    +    </ParameterBag>
    +
    +    <ParameterBag Id="columns" Name="Display Columns" Type="Display">
    +        <Parameter Id="name" Name="Player" Type="String"
    +                   Interpretation="Resource-Ref" Uom="Player" Value="$name"/>
    +        <Parameter Id="birthDate" Name="Birth date" Type="String"
    +                   Interpretation="Resource-Ref" Uom="Player"
    +                   Value="Bags/parameters/birthDate"/>
    +        <Parameter Id="team" Name="Team" Type="String"
    +                   Interpretation="Resource-Ref" Uom="Team" Value="$name"/>
    +    </ParameterBag>
    +
    +    <ParameterBag Id="joins" Name="Joins" Type="Joins">
    +        <Parameter Id="Team" Index="10" Hidden="false" Name="Team" Type="String"
    +                   Interpretation="Resource-Ref" Uom="Team" Value="Player"/>
    +    </ParameterBag>
    +
    +    <Policies>
    +        <Policy Type="ReportPolicy"
    +                Value="java:li.strolch.report.policy.GenericReport"/>
    +    </Policies>
    +
    +</Resource>
    +

    This report

    • shows all Resources of type player (parameter objectType) → marks the object +type to be show in the filter criteria (default), and that its sorting index +is at 20.
    • orders the report by player’s name (parameter bag ordering)
    • filters out all players with no team assigned (parameter bag noTeamFilter)
    • defines three columns: Player, Birth date, Team (paramger bag columns)
    • joins in the resource of type Team
    • Uses the GenericReport class to generate the report

    GenericReport

    The default generic report implemented in Strolch has the following features and +options:

    Parameters

    The parameters bag can contain the following parameters:

    • objectType → the base type of object to get the input for the report. This +means that the Interpretation is set to one of:

      • Resource-Ref
      • Order-Ref
      • Activity-Ref

      and that the UOM and value of the parameter is set to the type of element with +which to retrieve the elements from the strolch model.

    • descending → boolean flag to define if sorting is in descending order

    • allowMissingColumns → flag to define if no exception should be thrown if a +column is missing

    • dateRangeSel → defines a lookup parameter to use as a date range selector. +This requires input when executing the report

    Note: that the attributes Hidden and Index define the +visibility and sorting index as filter criteria respectively.

    Lookups

    Many of the features of the generic report rely on looking up a value on the +referenced element. The following shows the ways that a lookup can be performed:

    • $id → lookup the ID of the element
    • $name → lookup the name of the element
    • $type → lookup the type of the element
    • $date → lookup the date of the element (only possible on Order +and Activity elements)
    • $state → lookup the state of the element (only possible on Order +and Activity elements)
    • Bags/<bag_id>/<param_id> → a lookup on the selected element by bag ID and +parameter ID
    • $search:<parent_ref_id>:Bags/<bag_id>/<param_id> → searches for a parameter +with the given bag and parameter, and if it does not exist, looks for the +parent with the given parent_ref_id on the element. This allows a recursive +search up a tree of elements which all have the same parameter referencing a +parent. relations bag

    Note: these definitions are set as the value of a +Parameter, and the Interpretation and UOM of the parameter is used to find the +element on which to perform the lookup. I.e. the following definition:

    <Parameter Id="name" Name="Player" Type="String" Interpretation="Resource-Ref" Uom="Player" Value="$name"/>
    +

    defines that we want to lookup the name of the resource of type Player.

    Ordering

    Ordering, i.e sorting is done by adding the parameter bag with the id ordering +and each parameter defines a column to order by. The sequence of the ordering is +defined by the index value assigned to each parameter.

    Filtering

    Filtering use additional Strolch Policies which implement the operator function. +I.e. performing an equals, etc. The following ReportFilterPolicy are available +and should be added in your StrolchPolicies.xml file:

    <StrolchPolicies>
    +  ...
    +  <PolicyType Type="ReportFilterPolicy" Api="li.strolch.report.policy.ReportFilterPolicy">
    +    <Policy Key="GreaterThan" Class="li.strolch.report.policy.GreaterThanReportFilter"/>
    +    <Policy Key="LessThan" Class="li.strolch.report.policy.LessThanReportFilter"/>
    +    <Policy Key="Equals" Class="li.strolch.report.policy.EqualsReportFilter"/>
    +    <Policy Key="Contains" Class="li.strolch.report.policy.ContainsReportFilter"/>
    +    <Policy Key="IsIn" Class="li.strolch.report.policy.IsInReportFilter"/>
    +    <Policy Key="ValueRef" Class="li.strolch.report.policy.ValueRefReportFilter"/>
    +  </PolicyType>
    +  ...
    +</StrolchPolicies>
    +

    From this we can see that we can perform a GreaterThan, LessThan and Equals +filtering. These filters can also be negated by prefixing the filter value with +an exclamation mark (!).

    A special case for the filter values are filters on dates. If you are filtering +on a date, then you can use the special operator now(). This filter will use the +current date and time and will add/subtract the ISO8601 period passed as an +argument to the operator.

    The following shows examples of these filters:

    <ParameterBag Id="minQtyFilter" Name="Filter" Type="Filter">
    +  <Parameter Id="policy" Name="Filter Policy" Type="String" Interpretation="ReportFilterPolicy" Uom="key:GreaterThan" Value="10"/>
    +  <Parameter Id="fieldRef" Name="Field reference" Type="String" Interpretation="Resource-Ref" Uom="Product" Value="Bags/parameters/quantity"/>
    +</ParameterBag>
    +
    +<ParameterBag Id="notEmptyFilter" Name="Filter" Type="Filter">
    +  <Parameter Id="policy" Name="Filter Policy" Type="String" Interpretation="ReportFilterPolicy" Uom="key:Equals" Value="!"/>
    +  <Parameter Id="fieldRef" Name="Field reference" Type="String" Interpretation="Resource-Ref" Uom="Team" Value="Bags/relations/team"/>
    +</ParameterBag>
    +
    +<ParameterBag Id="threeMonthsAgoFilter" Name="Filter" Type="Filter">
    +  <Parameter Id="policy" Name="Filter Policy" Type="String" Interpretation="ReportFilterPolicy" Uom="key:LessThan" Value="now(-P3M)"/>
    +  <Parameter Id="fieldRef" Name="Field reference" Type="String" Interpretation="Resource-Ref" Uom="FromStock" Value="$date"/>
    +</ParameterBag>
    +

    Note: One parameter defines which policy gets used and the key:<name> value +references a policy defined in the StrolchPolicies.xml file. Further the lookup +is defined in the fieldRef parameter.

    Joins

    To add columns from data which is not on the element denoted by the base object +type, we can join further elements. This is done by adding the parameter bag +joins and then each parameter references an element to join. The joining is done +as follows:

    • The Intepretation and UOM define which object we want to join, i.e. resource +of type foo
    • The value of the parameter defines the type of element on which to find the +reference
    • The join ordering is not relevant, as the tree is traversed accordingly
    • At least one join must reference the base object type
    • The lookup of the join is done by finding a parameter with any ID, which has +the same Interpretation and UOM as the join definition
    • The attributes Hidden and Index define the visibility and sorting index as +filter criteria respectively.

    Thus the following:

    <ParameterBag Id="joins" Name="Joins" Type="Joins">
    +  <Parameter Id="Team" Index="10" Hidden="false" Name="Team" Type="String" Interpretation="Resource-Ref" Uom="Team" Value="Player"/>
    +  <Parameter Id="Country" Index="5" Hidden="false" Name="Team" Type="String" Interpretation="Resource-Ref" Uom="Country" Value="Team"/>
    +</ParameterBag>
    +

    Performs two joins: First we join a resource of type Team by finding the +relevant parameter on the Player resource, and then we lookup a resource of type +Country on the previously joined Team resource.

    Execution of Reports

    To execute a reports, we must instantiate the Report and can then directly +generate a JsonObject stream, which we can then pipe to a browser, file, etc.:

    Stream<JsonObject> jsonObjectStream = new Report(tx, reportId).doReportAsJson();
    +

    If you prefer a CSV report:

    try (CSVPrinter csvP = new CSVPrinter(new OutputStreamWriter(out),
    +        CSVFormat.DEFAULT.withHeader(headers).withDelimiter(';'))) {
    +
    +  // do report without AsJson, and then iterating each row and sending to a CSV writer
    +  report.doReport().forEach(row -> {
    +    try {
    +      csvP.printRecord(row.valueStream().collect(Collectors.toList())); // add to CSV
    +    } catch (Exception e) {
    +      logger.error("Could not write CSV row", e);
    +    }
    +  });
    +}
    +

    Filter Criteria

    Predefining filters is a good start, but in some case you only want a portion of +the actual filtered data. For instance if you make a stock report, you might +only want one location. This information is dynamic and thus not stored on the +report definition.

    To perform these dynamic filterings, one would call the filter()-method on the +report, passing the type of element to be filtered, and to which element IDs to +reduce the report data to. The following reduces the report to only return the +rows with the product01 Product and location02 Location elements:

    new Report(tx, "stockReport")
    +        .filter("Product", "product01")
    +        .filter("Location", "location02")
    +        .doReportAsJson()
    +

    It is possible to find the possible filter criteria dynamically using the +generateFilterCriteria() method.

    Date Range Filtering

    The last option to filter dynamically is using a date range selector. Define the +dateRangeSel lookup parameter, and then set the date range on the instantiated +report:

    Model the report in XML:

    <ParameterBag Id="parameters" Name="parameters" Type="Parameters">
    +    ...
    +    <Parameter Id="dateRangeSel" Name="Date Range Selector" Type="String" Interpretation="Resource-Ref" Uom="Product" Value="Bags/parameters/expirationDate"/>
    +    ...
    +</ParameterBag>
    +

    And now call the report in Java:

    Date from = new Date(LocalDate.of(2016, 1, 1).toEpochDay() * 86400000);
    +Date to = new Date(LocalDate.of(2017, 1, 1).toEpochDay() * 86400000);
    +DateRange dateRange = new DateRange().from(from, true).to(to, false);
    +List<JsonObject> result = new Report(tx, "stockReport") //
    +    .filter("Product", "product01") //
    +    .dateRange(dateRange) //
    +    .doReportAsJson()
    +

    Note: See the GenericReportTest for examples.

    \ No newline at end of file diff --git a/publish/documentation/runtime-configuration/index.html b/publish/documentation/runtime-configuration/index.html new file mode 100644 index 0000000..917b068 --- /dev/null +++ b/publish/documentation/runtime-configuration/index.html @@ -0,0 +1,111 @@ +Runtime Configuration - Strolch

    Runtime Configuration

    Runtime Configuration

    A Strolch runtime configuration comprises two parts: a configuration part, and +a model part. The configuration are files located in the ..config/ folder, +and the model are files located in the ../data folder.

    In an absolute minimal configuration, the Strolch runtime requires the +following folder structure:

    • ../config/
      • ../StrolchConfiguration.xml → configures the Strolch agent
      • ../PrivilegeConfig.xml → configures user management
      • ../PrivilegeUsers.xml → contains the users in an XML based user management file
      • ../PrivilegeRoles.xml → contains the roles and privileges in an XML based user management

    StrolchConfiguration.xml

    The StrolchConfiguration.xml file configures the Strolch agent. The StrolchConfiguration.xml defines the following:

    • <StrolchConfiguration> root element
    • <env id="xxx"> different environments with the possibility of having a +global environment for configuration valid in multiple environments.
      • <Runtime> element which defines the agents name and a few other +properties e.g. locale and verbose:
      • <applicationName> the agent’s name
      • <Properties>
        • <locale> the agent’s internal locale for log messages etc.
        • <verbose> the logging level for some internal logging. (Logging is +mostly done using log4j over slf4j)
      • <Component> elements for each component used in the agent. A component +is configured by defining the following child elements:
        • <name> the name of the component, use when defining dependencies +between components. The name is mostly set to the simple name of the +interface of the component

        • <api> the full class name to the interface of the component. During +runtime this interface will be used to access the component e.g.:

          ServiceHandler svcHandler = agent.getContainer().getComponent(ServiceHandler.class);

        • <impl> the full class name of the concrete implementation of the +component. During initialization this class will be instantiated and +registered under the component name and interface. This class must +extend the class li.strolch.agent.api.StrolchComponent

        • <depends> any number of these elements, where the content is the name +of another component, on which this component depends. Depending +components are initialized and started after the component they depend +on and are stopped and destroyed before

        • <Properties>

        • <...> any number of properties which the component requires. The +element’s name will be the key with which the value can be accessed at +runtime.

    When a property is missing, and the component has a hard coded default value, then when the component is initialized, the use of the default value and its key is logged. This makes it easy to see which new properties can be configured. Should the component not define a default value, then the component will thrown an exception on initialization. In this case it can be a good moment to read the JavaDoc (or source code) for the component in question to see how it is configured.

    Privilege Configuration

    In Strolch authentication and authorization is baked in. To open a transaction, +and thus access the Strolch model, a Certificate object is required, which +means the user has been authenticated and possibly authorized.

    The PrivilegeConfig.xml defines the following:

    • <Privilege> root element
      • <Container> configures the individual Privilege components
        • <Parameters> base configuration properties for Privilege
        • <EncryptionHandler> configures the hashing algorithms and other +encryption specific configuration
        • <PersistenceHandler> configures the persistence of the roles and users
        • <UserChallengeHandler> configures a challenge handler so that a user +can reset their password. The default challenge handler is the +li.strolch.privilege.handler.MailUserChallengeHandler which sends a +challenge to the user’s defined e-mail address.
        • <SsoHandler> the SSO Handler is used to implement a SingleSignOn and +can be used to start a session using a LDAP token, etc. There is no +default implementation as this is project specific.
      • <Policies> configures the available privilege policies at runtime, the +name is referenced from the model file

    The PrivilegeUsers.xml and PrivilegeRoles.xml define the users and roles +and is used when in PrvilegeConfig.xml the PersistenceHandler is set to +ch.eitchnet.privilege.handler.XmlPersistenceHandler:

    • <Users> configures all users
      • <User> configures a specific user
        • <Firstname> configures a user’s first name
        • <Lastname> configure a user’s last name
        • <State> configures the user’s state, see li.strolch.privilege.model.UserState
        • <Locale> configure the user’s locale
        • <Roles> configures the user’s roles
          • <Role> adds a role to the user
          • <Properties> configures user specific properties. What properties +are used is not specified and is dependent on the concrete agent
            • <Property> defines a single property
      • <Roles> configures all roles
        • <Role> configures a specific role
          • <Privilege> configures a specific privilege for this role
            • <AllAllowed> if set to true, then defines that all values +associated with this privilege are allowed
            • <Allow> defines one allowed value for this privilege
            • <Deny> defines one denied value for this privilege

    Implementing a StrolchComponent

    Implementing a strolch component requires an interface, which defines the +component’s API and a concrete class which implements the interface and +extends the class StrolchComponent.

    The StrolchComponent class adds the state model to the class, which +transitions as follows:

    UNDEFINED => SETUP => INITIALIZED => STARTED <=> STOPPED => DESTROYED

    Components can switch between STARTED and STOPPED, but once DESTROYED no +further state change is possible. The component’s state is changed by changes +to the agent’s lifecycle.

    A component’s state is changed by a call to the appropriate method on the +component, override the methods as necessary. Note that it is good practice +that the initialize()-method is used to get all the configuration properties, +and that they should there be evaluated and that the method so return quickly. +The start()-method is called after the agent’s initialization and should be +where additional threads are started. Correctly implementing these methods +allows to quickly detect a wrongly configured agent, which might take longer +to start for whatever reason.

    The following shows a basic implementation of a component on the basis of a +post initializer (a component which performs some actions in its +start()-method which should be done after everything else is started in the +agent).

    public class SimplePostInitializer
    +        extends StrolchComponent
    +        implements PostInitializer {
    +
    +  public SimplePostInitializer(ComponentContainer container,
    +        String componentName) {
    +    super(container, componentName);
    +  }
    +
    +  @Override
    +  public void initialize(ComponentConfiguration configuration) {
    +    // do some initialization, validate configuration values, etc.
    +    // now call super, to update state
    +    super.initialize(configuration);
    +  }
    +
    +  @Override
    +  public void start() {
    +    // start any threads, or perform long running start work
    +    // now call super, to update state
    +    super.start();
    +  }
    +
    +  @Override
    +  public void stop() {
    +    // stop threads and timers, but be ready to start again
    +    // now call super, to update state
    +    super.stop();
    +  }
    +
    +  @Override
    +  public void destroy() {
    +    // destroy this component, release all resources and don't worry about
    +    // being called to start again now call super, to update state
    +    super.destroy();
    +  }
    +}
    +

    The new component would then be registered in the StrolchConfiguration.xml +as follows:

    <StrolchConfiguration>
    +  <env id="...">
    +    ...
    +    <Component>
    +      <name>SimplePostInitializer</name>
    +      <api>li.strolch.agent.api.PostInitializer</api>
    +      <impl>li.strolch.documentation.SimplePostInitializer</impl>
    +    </Component>
    +    ...
    +  </env>
    +</StrolchConfiguration>
    +

    And can be access at runtime using:

    PostInitializer postInitializer = getContainer().getComponent(PostInitializer.class);
    +

    Starting the agent

    When a Strolch runtime is started, then the root path to the runtime configuration must be passed. In Java this is done by calling:

    StrolchAgent agent = new StrolchAgent();
    +agent.setup(environment, rootPath);
    +agent.initialize();
    +agent.start();
    +

    In Servlet 3.0 applications one would implement the +javax.servlet.ServletContextListener interface, add the @WebListener +annotation to the class and in the contextInitialized()-method start Strolch:

    String realPath = sce.getServletContext().getRealPath("/WEB-INF");
    +String environment = StrolchEnvironment.getEnvironmentFromEnvProperties(pathF);
    +this.agent = new StrolchAgent();
    +this.agent.setup(environment, new File(realPath));
    +this.agent.initialize();
    +this.agent.start();
    +
    \ No newline at end of file diff --git a/publish/documentation/searches/index.html b/publish/documentation/searches/index.html new file mode 100644 index 0000000..0365047 --- /dev/null +++ b/publish/documentation/searches/index.html @@ -0,0 +1,53 @@ +Searches - Strolch

    Searches

    Searches

    As is custom for every framework, querying, or searching, the model must be +possible. Strolch searches are implemented using the StrolchSearch class and +one of its concrete implementations: ResourceSearch, OrderSearch, +ActivitySearch.

    A Strolch element always has two identifiers: Type and Id. The type is +important as it classifies an element. So if a car and a house would be modelled +in Strolch, then those would both be a Resource, but one of type Car +and the other of type House. Both would have different parameters. Thus when +searching for objects, the first thing to do is define the type of object being +searched.

    The Strolch search API is very expressive and offers multiple ways to perform +the same search. The search API consists of three components: The search +classes, the search expressions and the search predicates. The concept was taken +from the Apache Camel project.

    There are four main search classes:

    • RootElementSearch - search for any of Resource, Order or Activity elements
    • ResourceSearch - search for Resources
    • OrderSearch - search for Orders
    • ActivitySearch - search for Activities

    No search is useful without a where clause, which are called search +expressions. When writing a search, there are multiple ways to add such where +clauses. Either

    • override the define()-method in your sub class and add the where clauses by +calling the where() method, or
    • define special methods on the class e.g. byColor() which also calls the +where()-method to add a search expression, or
    • directly call the where()-method after instantiating a search.

    When extending the class, then the search expressions are available as methods +on the super class, otherwise you can statically import them from +ExpressionsSupport +.

    And of course a where clause needs operators, which are called search +predicates. Just as search expressions are available in sub classes, so are +search predicates and can also be statically imported through +PredicatesSupport +.

    Examples of search expressions with search predicates follow:

    ResourceSearch search=new ResourceSearch();
    +
    +// predicate either as parameter, or chained
    +search.where(id().isEqualTo("myId"));
    +search.where(id(isEqualTo("myId")));
    +
    +// negating
    +search.where(id(isEqualTo("myId")).not());
    +
    +search.where(param("bagId","paramId").isIn(Arrays.asList("red","blue","green")));
    +
    +search.where(paramNull("bagId","paramId")));
    +
    +// boolean operations
    +search.where(id(isEqualTo("myId")) //
    +		.or(name(isEqualTo("myName"))));
    +

    Note how the predicates can be chained to the search expression, or passed as a +parameter to the expression.

    In addition to using predefined search search expressions, one can also just +pass a lambda expression which performs a custom filter:

    personSearch.where(person -> person.getName().length() == 3);
    +

    See +the StrolchSearchTest +for many ways in which you can implement tests.

    Note that strolch searches requires privileges, thus when you +use a strolch search, add it to the role of the user in PrivilegeRoles.xml:

    
    +<Privilege name="li.strolch.search.StrolchSearch" policy="DefaultPrivilege">
    +    <Allow>internal
    +    </Allow> <!-- internal used for when the search is done in an internal service -->
    +    <Allow>li.strolch.bookshop.search.BookSearch</Allow>
    +</Privilege>
    +
    \ No newline at end of file diff --git a/publish/documentation/services-and-commands/index.html b/publish/documentation/services-and-commands/index.html new file mode 100644 index 0000000..8f612b4 --- /dev/null +++ b/publish/documentation/services-and-commands/index.html @@ -0,0 +1,78 @@ +Services and Commands - Strolch

    Services and Commands

    Services and Commands

    Services are written to implement a specific use-case. Commands are written to +implement re-usable parts of a use-case. The use-case can be abstract +e.g., AddResourceService or very specific e.g. CreatePatientService.

    Should the use-case be re-usable in different scenarios, then commands should +implement the logic, and the services should then execute the commands. E.g. +The CreatePatientService would use a CreatePatientResourceCommand and then +use an AddResourceCommand in a single transaction, so that the task of +creating the actual Patient Resource can be re-used somewhere else.

    Services extend the abstract class AbstractService and then implement the +method internalDoService(ServiceArgument). AbstractService defines generic +template arguments with which the concrete service can define a specific +input ServiceArgument class and output ServiceResult class.

    The AbstractService class has multiple helper methods:

    • openTx():StrolchTransaction - to open a transaction
    • runPrivileged() - to perform a SystemUserAction
    • getComponent():V - to retrieve a specific StrolchComponent

    there are more - check the JavaDocs.

    Commands extend the Command class and then implement the method doCommand(). +Commands have helper methods:

    • tx() - to get the current transaction
    • getPolicy() - to retrieve a StrolchPolicy instance
    • runPrivileged() - to perform a SystemUserAction

    there are more - check the JavaDocs.

    The following code snippets shows how a Service and Command are used to +perform the task of adding a new Order. Note how:

    • the Service opens the transaction
    • adds the command to the TX
    • calls tx.commitOnClose()
    • the command validates its input
    • locks the object
    • performs the work
    • and implements an undo

    AddOrderService:

    public class AddOrderService extends AbstractService<AddOrderService.AddOrderArg, ServiceResult> {
    +
    +  @Override
    +  protected ServiceResult getResultInstance() {
    +    return new ServiceResult();
    +  }
    +
    +  @Override
    +  protected ServiceResult internalDoService(AddOrderArg arg) {
    +
    +    try (StrolchTransaction tx = openTx(arg.realm)) {
    +      AddOrderCommand command = new AddOrderCommand(getContainer(), tx);
    +      command.setOrder(arg.order);
    +      tx.addCommand(command);
    +      tx.commitOnClose();
    +    }
    +
    +    return ServiceResult.success();
    +  }
    +
    +  public static class AddOrderArg extends ServiceArgument {
    +    public Order order;
    +  }
    +}
    +

    AddOrderCommand:

    public class AddOrderCommand extends Command {
    +
    +  private Order order;
    +
    +  public AddOrderCommand(ComponentContainer container, StrolchTransaction tx) {
    +    super(container, tx);
    +  }
    +
    +  public void setOrder(Order order) {
    +    this.order = order;
    +  }
    +
    +  @Override
    +  public void validate() {
    +    DBC.PRE.assertNotNull("Order may not be null!", this.order);
    +  }
    +
    +  @Override
    +  public void doCommand() {
    +
    +    tx().lock(this.order);
    +
    +    OrderMap orderMap = tx().getOrderMap();
    +    if (orderMap.hasElement(tx(), this.order.getType(), this.order.getId())) {
    +      String msg = MessageFormat.format("The Order {0} already exists!", this.order.getLocator());
    +      throw new StrolchException(msg);
    +    }
    +
    +    orderMap.add(tx(), this.order);
    +  }
    +
    +  @Override
    +  public void undo() {
    +    if (this.order != null && tx().isRollingBack()) {
    +      OrderMap orderMap = tx().getOrderMap();
    +      if (orderMap.hasElement(tx(), this.order.getType(), this.order.getId()))
    +        orderMap.remove(tx(), this.order);
    +    }
    +  }
    +}
    +
    \ No newline at end of file diff --git a/publish/documentation/transactions/index.html b/publish/documentation/transactions/index.html new file mode 100644 index 0000000..a890980 --- /dev/null +++ b/publish/documentation/transactions/index.html @@ -0,0 +1,59 @@ +Transactions - Strolch

    Transactions

    Transactions

    Strolch Transactions play a central role in a Strolch agent. A transaction is +opened for a realm, and grants access to the model of the agent. Transactions +are implemented as a Java try-with-resources by implementing +the AutoCloseable +interface. This makes it trivial to understand the scope of a transaction.

    Transactions handle the following:

    • Opening and closing database connections
    • Releasing locks to strolch elements, if tx.lock(StrolchRootElement) or +tx.lock(Locator) was called
    • Performing Commands by executing them in the added order, and validating them +first.
    • Exception handling
    • Auditing
    • Updating observers

    When a transaction is opened, it is by default read-only, i.e. does not perform +any commands when it is closed. Should the TX perform commands, then it is +important to call tx.commitOnClose(), but only at the end of the work, so that +exception handling can properly work if something goes wrong.

    StrolchTransaction offers a myriad of methods:

    • find element by its Locator
    • get methods for elements by type and id, or using a StringParameter or +StringListParameter references
    • methods to add, update or remove elements
    • assert privilege access
    • get a new element by its template
    • check if an element exists by type and id
    • get streams for elements
    • add commands for execution

    Transactions are opened by accessing the realm, but there are convenience +methods depending on the use-case:

    • In Services: by calling one of the openTx()-methods
    • In Commands: Transactions are already open, use method tx() to get instance.
    • REST API: RestfulStrolchComponent.openTx()

    Note: don’t open a new TX inside a TX for the same realm!

    Important is to always open the transaction as a try-with-resource block and to +define if the TX should commit, or not:

    try (StrolchTransaction tx = openTx(...)) {
    +
    +  // read lock our object
    +  Locator ferrariLoc = Resource.locatorFor("Car", "ferrari");
    +  tx.lock(ferrariLoc);
    +
    +  // find a car by locator
    +  Resource ferrari = tx.findElement(ferrariLoc);
    +
    +  // get a car by ID
    +  Resource opel = tx.getResourceBy("Car", "opel", true);
    +
    +  // modify ball
    +  opel.setName("Opel Corsa");
    +  tx.update(opel);
    +
    +  // get by string reference
    +  StringParameter ownerP = ferrari.getParameter("relations", "owner", true);
    +  Resource owner = tx.getResourceBy(ownerP, true);
    +
    +  // get by string list reference
    +  StringListParameter previousOwnersP = opel.getParameter("relations", "previousOwners", true);
    +  List<Resource> previousOwners = tx.getResourcesBy(previousOwnersP, true);
    +
    +  // check resource exists
    +  if (tx.hasResource("Car", "audi")) {
    +    Resource audi = tx.getResourceBy("Car", "audi", true);
    +
    +    // assert has privilege to remove a car
    +    tx.assertHasPrivilege(Operation.REMOVE, audi);
    +
    +    // remove the car
    +    tx.remove(audi);
    +  }
    +
    +  // iterate all cars
    +  tx.streamResources("Car").forEach(car -> {
    +  	logger.info("Car: " + car.getId());
    +  });
    +
    +  // commit if TX was changed
    +  if (tx.needsCommit())
    +    tx.commitOnClose();
    +}
    +
    \ No newline at end of file diff --git a/publish/documentation/versioning/index.html b/publish/documentation/versioning/index.html new file mode 100644 index 0000000..3602fc6 --- /dev/null +++ b/publish/documentation/versioning/index.html @@ -0,0 +1,39 @@ +Versioning - Strolch

    Versioning

    Versioning

    One of Strolch’s features that sets it apart from other frameworks, is that +versioning is baked into Strolch’s fabric. The feature is opt-in, as it is not +required in all projects, but it only needs enabling, for all modifications to +objects to be versioned, so that rollbacks can be done when needed.

    The feature is enabled for each realm. In the StrolchConfiguration.xml file +enable it by adding the enableVersioning propery per realm:

    <StrolchConfiguration>
    +  <env id="dev">
    +    ...
    +    <Component>
    +      <name>RealmHandler</name>
    +      <api>li.strolch.agent.api.RealmHandler</api>
    +      <impl>li.strolch.agent.impl.DefaultRealmHandler</impl>
    +      <depends>PrivilegeHandler</depends>
    +      <Properties>
    +        <realms>defaultRealm, otherRealm</realms>
    +        <enableVersioning>true</enableVersioning>
    +        <dataStoreMode>TRANSIENT</dataStoreMode>
    +        <dataStoreFile>StrolchModel.xml</dataStoreFile>
    +        <enableVersioning.otherRealm>true</enableVersioning.otherRealm>
    +        <dataStoreMode.otherRealm>TRANSIENT</dataStoreMode.otherRealm>
    +        <dataStoreFile.otherRealm>StrolchModel.xml</dataStoreFile.otherRealm>
    +      </Properties>
    +    </Component>
    +  </env>
    +  ...
    +</StrolchConfiguration>
    +

    Once versioning is enabled, versioning is handled automatically. The API for versioning is implemented on the ElementMaps.

    Example: Revert to previous version of a Resource:

    Resource res = tx.getResourceBy("TestType", "MyTestResource");
    +ResourceMap resourceMap = tx.getResourceMap();
    +Resource previousVersion = resourceMap.revertToVersion(tx, res);
    +// or
    +Resource previousVersion = resourceMap.revertToVersion(tx, "TestType", "MyTestResource", 1);
    +

    Example: Retrieve all versions of a Resource:

    List<Resource> versions = resourceMap.getVersionsFor(tx, "TestType", "MyTestResource");
    +

    Note: When reverting to a previous version, it is important to remember, that +any references on an element to other elements will also be restored. As long as +the relationship is to the same element, then this is not an issue, but should +the relationship have changed, then it this must be handled and the user +performing a revert be allowed to decided which element to reference in the +reverted version.

    \ No newline at end of file diff --git a/publish/download/index.html b/publish/download/index.html new file mode 100644 index 0000000..0e85800 --- /dev/null +++ b/publish/download/index.html @@ -0,0 +1,8 @@ +Download - Strolch

    Download

    Download

    Strolch is +on Maven central +, but if the latest version is not there, then build it locally. A guide can be +found on the development page.

    Strolch is also built on Jenkins, so you can see if the +latest version passes all tests.

    \ No newline at end of file diff --git a/publish/download/index.xml b/publish/download/index.xml new file mode 100644 index 0000000..b3be9fa --- /dev/null +++ b/publish/download/index.xml @@ -0,0 +1 @@ +Download on Strolchhttps://strolch.li/download/Recent content in Download on StrolchHugo -- gohugo.ioen-us \ No newline at end of file diff --git a/publish/fonts/Inconsolata.eot b/publish/fonts/Inconsolata.eot new file mode 100644 index 0000000000000000000000000000000000000000..0a705d653f6695115dbb13f56684ef17ea071502 GIT binary patch literal 35620 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 literal 0 HcmV?d00001 diff --git a/publish/fonts/Inconsolata.svg b/publish/fonts/Inconsolata.svg new file mode 100644 index 0000000..36775f0 --- /dev/null +++ b/publish/fonts/Inconsolata.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/publish/fonts/Inconsolata.ttf b/publish/fonts/Inconsolata.ttf new file mode 100644 index 0000000000000000000000000000000000000000..4b8a36d249a05a0fe1575dc3d96ef7079dba6b07 GIT binary patch literal 63184 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 literal 0 HcmV?d00001 diff --git a/publish/fonts/Inconsolata.woff b/publish/fonts/Inconsolata.woff new file mode 100644 index 0000000000000000000000000000000000000000..6f39625e58515fc078ae086db6ed81e777934359 GIT binary patch literal 38248 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 a0!Y+@i2njWb@~E8iFhCZ0O61}VE_O-Q=5qZ literal 0 HcmV?d00001 diff --git a/publish/fonts/Novecentosanswide-Normal-webfont.eot b/publish/fonts/Novecentosanswide-Normal-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..9984682fc9460f3484c1037ec3331535c3b64f7c GIT binary patch literal 22446 zcmbSyWl&r}*XGP%gS$&`cXxMpm%$~tYjAgWcXyZIZUcni!JVKXkU+9|-`)CZtM=b^ zSKs@b=RD_}>i*HyU3G7h9st0v3jl!rby&cE8XVkzUjQH=1qk@ZDXSy=Z{mNR=>P!v ze~jY1%g6sA{|9gbQ~@pkZ-6zx^51Xc4<0UiMJf7s(6@&VWbtp0h(|EqHcIQ{cD z{)PjbH`v{nH8kx7NphIsc=v`R8%`m)Qcq`492@ckutq#R(AjS6ll3 zYZm1H&l~^%Ni8|`|5=>>17HCC6#%Kv0ChEh+6vCXMZ%1)q3x`_rJrVW2(4vb8@CI$ z?9XbS$Z^n)5$t3>0vt*OxL!U5YS1uFYM4_YwmTX1BN`ko_-Ic}V_eV)TS;PhG8GDE zcxnHoj5SJkuD!r0NhJl&I8K^)cl%?JjBVsen)Wx~P=r{Fb>X_|8Vl^JC2P zH0jU>9W~kV1Q(M+JJeN+0i=`LLvepbN{Ow{PUJ<6xpv!?Q3f_yEIAv|-rzOu@ z2#EV|@G6}5P*V3AS9k~)WgfgpUj6|^-s5E^BF6mE>4`IKKX;NtZ!KWyApV1B>SuTq zWHn`_;gp%t7IHi7R8K4sb(~M@<7+TIAL4Q{bpKfK=|9C@x`!yqK2p`{cfjF+>Y3-5 z&)_CG6sd8}F_s8l2ww>UQ-o-95Iy)G0vUQ^1aA-msu}~WKy5{awyzH&I1_tg)z_!) zKVHg@y9`+6vF2jfoU7c=H~dl7$d>}L6Kf#zX~vZY8v(Xo2{XEq?#NYn$&5+HwHDV? zEmqd91=Q7SbSE9eW$=D%G~bX)QV?2y%F@ZWtH3HDOMXJ%wz4d1cPu{Mv!uH)qGBLg z5;polS4A+cWzJb%B?c1V)0xmEd-^q7A8VBApKY64ED2DoCr?7d4sB&HE71N;qxnUB z*xXPTzRL*1trd45Q@}OM=6Fx3Daxi`uj;vGutZu$^+a~8mdrYqmg*GVkEDpAD*igX zdCkG(hD?Ps&<rAt+~$&x_@{zm%i$tTP{x22jt8P07@49j5rPd- zn{bj$t1HAGDcy$wp4m^bnnywpS7?X7JExFU*<#iVqbe3bRQH4oLKyh4c1!^B_LQW8 z&o?X2Mz}1Fh%SI!lB{4ZbUsQ1)oAs)2(+G%z$_1~-u4iF`b7`j=khkVTv883-3nQ@ zl$z@!BsdC5O73%9mdmNJ%i8@ZS1SsdMsiCoJH*bmnIV15m+Q7qh`EmtnFouT$iJM0x&n?jD7GyvOH+X zvQENFVp53G8|Xe@#Vj)UJT$3L*7vz>f>~A4{1}WXPIC?6`D!Kg^sJ^E^V(%U1;qS- z4q1WCh`&xCuo<1+ILupL%=>gi=)}AvLfB@~F>Hk8U|txORt9^Br)XHUFAg^Y0E=tO z`DRYxjGUDL*Z8JfD+Ch7PAm0H3>>4n(rX>@N66-SAa|SW{Q_uqymkY3j;IrsK#ecw z`^c~P2wXK@x-^usJiJC45iF;!*RX_YI~k?Yv@3E0+gMp>`X5z3%yp27ywxHDS3S2O z+KIo_Q=~rw353l>A)r=D%bZJls-w@#t7Usxt5WJDjA0ok_*G$4=bsh8&?iAWi>IF| zGQot$fCfL<%}0$8G?IACzSZh!|NOMz%?ccVrG#c8HN|uyrU#$S>&}Kz8ziEfYF)Xy z(MziOmriG4pZr)0oFtbbbds_2>6~rFWKE)kUNsG-iF)puPHufmuBw$cpCmb3)tu&7 z1c7n~^`5c}s%X_KE@*l@pY|mMY4MkGyq?@sw-u3^o7!yRWk8~DoX(unNjiuoy6wxI zQ<3kF9+~Yo%e8U#*eC@RRUSw5t?5{xLvfl#M0s>Ps?dmC!n1Y(dIfjZlBVR8vt^YA zUh5DuHX{uU|MwtUliEV@YO9QulpNuBc1t2q@)h%)K_t9&0h^L9rFy>UGTmuH`#_R3 zN1u?qJ0wJI0_l!devbdRIzp*5$#pPfrl;Y3ah{q2&r0obBD5!^Kpw9-2YWdlj649a zkWlB-LzRG;Btni0X|DJ8k!;fehu~hpGZE!QO-i2qR#L*mk1f%p-pb^t_u$No1lE}H zE=Z$8RpAPDj;-2Y*wvcQi)2$V9Wx{^mq{2*+**<0+`95WWjg0D$_}#;JgVThY1|-W zR!pCqZLi_&>LWNLt$~@F{5;jTFc17Z>gcMEwhmpG(q-CQ?(6IeRF3-1W<{s;KH9*}#%wnz7*!rGM>b`|%hmE1tke`J zsFzBtAe<|;ji!p3IapM~IYgMRUh3ug+`A@X-cEYS_EG3Kh)#H6eFGfTUo{o9bDil+ z)Ej1B_vWnbHgfPtvZr-?!&x+^aPy2b0u{y^G5jA77p=eK zM@$XV?8-{z%i((Ws-<7D&(I5HjS0Zow`d9nBlrpj;i3?03ncB3^Tr$U>bQ{gm1@|p zstRen(`VCM>d3OPL0Y~|5+Tc#ksXXgPK-VnE%B^LA-hQlX-W0*Q{*QaIH_5bCb`;% zeW%Qt>W+Cm;;vOa?1VV8WO`i&DEnUg|Ic1N6D_P5Bfs3rkeENB(kj>7Ti9Z+s zJd*_06OjPtwsZya904~!axw9im_G4W~m zx1+hPL(~sIOsp+G@MHoM3HHQplt5oAJr9CpM^cr_G{M(=h*Gy0Dvs8P*U|)>>ewb! zm9D9Pm;dbO%8*+ItC1N&3-m=|{x&H)n+5N#$40)wBhS2Kd0L}tr+^XO`X+e@(kCOp z7=uT%g*lhkM#2?DZ!;Q9oTi8DZIz{hkg&QiEsxG?gJ!M+EwqonVyVE@h3b zP{5a8)y0I?UCYwZlxF6`Eea+sqRM7QZumv|E<^bb@l;as)fGyRA~t4T^d+U4>l?77 zKldbJ%8y8lEKi%67s#wGJAWw;9Z=JqW2uo4|5%A%DZ@l}SI!z(8hD6L$OAyBKpPDV zr6%OI#@xJAEp#+ac|a}%_ug_SH#0a!sD>C+_t!cCzC1$D!GsZ2csHjdhwxBjPv=~k zO)o12RA{0V3Nt4>?ua-QQk%`Q21XcA7H%*HPjziOJ;1nrP3%L%TS+4RMen`{5l$aa z2X>q)(YGyjSPW0rIGux#o}fN0POc)=HMeAtft;UF7I6WUwA~uuxIy92#^venZ{^w4 zA$l}E!fd^XgwwfSx>SxY=FW5W6=+%FB4k(-Vb~J@ngvVGsx3#LCa*=`Z2mx6uHMsmFLWhJ@n5@wF1NFQ~~Ioe8` zLTn|+IxZnsxe;d|pzFhN?p^QH!tYJh^hA0-+9UK8F{PB55e6ywKoZnmAsB{dZ-;)1 z-2EJ^`)z>RX>33V`MKjU4mI-OnYh(H&AX(zbix=7nKAmbibl^rl!qJ!j3jyMcX3T86h($XB;+;u5&JrGu@lj{i(+ESql#686lQ@KBlU8tH zD=|}Zg)$8U6V6cEP!KOta@8V}CoDwnhl1@C^@2XW#geF2Jc zvA~dUk#D`p&u3}5P=N|&U_j+e@Z=E2x-HB$9pses%UDB7^AsRaO<4GsDbq5#90tn3 zesGcelS^l%r&ULU{A_rrY3m+2h0KPZaXEHQqoPunnjd{nY$gX^_4>M0IZ~lxk#7D* zv5|VwLmuMomMfp1gz~H*VYL;umiX3VWi@!q-vyUM*EV{#vcq zn{HB8^1XT7l--m=L;N`tpF-oaqS9RrLy8-NH0#8SHXW5~a2T0KsNM8-D%tD1_((Jp zKziT3>=PfYBhL=JS7v<>450gb$oRslJ!6>6Ih%&B$%K@<1B``P%7Ayyu{#g;zoUb$>aWh;^l0&LKoalBN~mL9l@bsMdQ5<>!1eTlFpXMQBm||pvEEHm#DiR8tXO=`#UiBEeaa##k&Qyy|dO~?JI-yVL@7g z_p9`XU$VR;h*`1lI9%b~_R!Y K>>!LA~%cZf1#GGpy3P`^y+xN~^^I!hS#k*IUmO~{(GZHF6247l(miFIy{Kl$R;xx~B6h8_Y$$_+os}*LqbHFm z;X7h`nB&t*R5k;o87!`t3vm_!pd!dR zrG5I93&lDQ;Se-t_|BF^G2K$&_yR>Pw0b{rG;=RoGcv{q-AV{(m)c;W`EoWuN*y=O zT~XdCpDD&+-UPyr@6`r9i4e@6>!+ou6*49yt)?{6qiQ-Zh9My*F=0bvN1MB4d?6=0 zj~4oU9LguUsTt0!*_*~BZ)vGG2e{PB%v>W%LV@t3@`39t!|$2 zFjA)PLYe3MNNh^iXiUN4U3)Nj-N5z zcWzt~M^0)aUlT$E>(Rt+Ck#QMC|@+r6zGaZPCWu!*D}O{tCzU4&BFjmsM&9FQYBVY+ z2^%@Kw1(kKs5&S}HP3a;oz6lf2%75E4HA*eo|@Rgj5-^mST+0FPIaaAFbzaBV|{ne z9ocV6!rtg#^*VCkotT3pLoDq*ad;S{Mpf7pfH?9_E3EKZ!13=NM(v5Rcq8JdDzku&BNj4OT6T?bsGJ9Edr}2AHJN4vKnt*`X6@jL0}Kj;Q`r z(Udt~*+)!UQKOmnnQ4FNW<}R8L{!O~KFw>+vIQ#gSc*Uc2_K0CoY6iU_ZC%7Y+s?d zanGL-mgZt5c<35hIUvI$#|LqF*Q-eMB)vT)Zq`2L+4jl4?Qz{hDL7dd2^VA-}&NIMB z^63RoUgP?StgCQOE^Qsd>!CX>QNH)^)3$1LeEh&5Ps_S{zvr#}CVt45mTuuRq4d@n zn=gsivhY8>afycZ?0hmyYcOerm{4j zOrmjPO)<$Md$n4(>9@o-%@@{9Fr@hcmd-tlG5scwG*cD#`6Uxe>|HhgUQv0F>cMt> zI+Y9hn3o|+J_5_#PgaL~71qbIqx~30P?U%uhnYsM+?}RQf4Y`)zLL4R^f9IQb$+Dse$%GL2(u0MDzlS*mV5f3XdfK;y?}p}TP^A$>-PE95Ep!3RXVnf#f`*)vVc3Xe7IJymflQxPv1 zGKzTqAqlR89`F5z@1lO+c(Pf*55Eax9(3o4W7KVo>fVy0()Eh3rJlPPF=yG4pU8bt zHgHBd@~pq#{aviwaFi9PJg(SALOS*<#J2`_=0N^LHFP~rvW8ITuygoI9~Tx4>IV`Z z&rIQkUu%d2lS*)4A-bL1>tbo5=J21=XYx;xK(St@xU3!B=115_Jn(cZlPqS>%X8d= za6C}dQ_6EBQBXYIa#QtFI2o_HzN%5wZ%V{F*(NEjwo7s20D^qm96U?mNZ|rX@K?Rk z;u#5-!7ZyOuXsrShGesDS4{VnfOEO-s8-y<^RU-VbSP-!f$`2tQ;!EPMm7z@Q3nm$ z+t}(JF3SAAYl7{sgH1x~8xn%@EsC%+rR&sW4DWlq6T7j_S6=m@alZZJ9;@Ic^8-eO z-}fiUAtXL{X8h{zIQB>d)T*oP=bOYJWoj7QHnqRR{D=F}3t?;o+O-(hY4>PQ%y9bE zM)@e2!jI9NG6;c7WLwDQcZY^O(Xn1+yoocFw*As#EA5_wu`HWth%BRj?G}}MNv%6d zF6iR4s(S0sOU{2$i;u%(3$IvAd%;jOQs>CvAX4kIrSKCH7fje|TPo_D)d&O7k z4&F6=9@I8o?NoQ3Jm_eZ0h_?#B>M>6#Po2wo4BMUZOZaAj_U~O@5wQ#`;pXyd5W9r zxzVIAZCboLbs5hp6W_cm2L0@iy=H*hev*ATX0tCD}8hM&Vhs zp{F@MqpEXtr|9duPa6+mdNq@>T>d8IeeP1)w!FcY?o5LT=-6L`S=*q0DKN99qWd~f z-Dq7w3$GS7X52*8$_P{W%3AOcGOwr$uFf3HWoy6IgdFO@VfVQ?wzH6gpOR1N)r)^` zqch^Aoe<-$v2knZlvEFDSaWI?wwy?K1Y1|#p7K9nnRqPCmAl`+Z2BP@(1j=3Xe(GH z{tOy}-DmR?k<{;+8+U1nu${lQ%D2hmDyRnVj%kI9haBa(hN~ZC;@35PVMNBd*ZaV> z^cr?1RvV`-X`P@XG$=53&)qPG$QEF6TA{$gmAM>`_DiUhlB8lYuZa#&K&~NJVuPjm z`vVrYa8EDe&`U>SK;fi&IKB~O*e#@upv)F2s=lN{Pb`)e`7k-9hEyiK>yAJ4+m0O7 zW=O06gZuW-;feILd@;82bu6r+one(Zerad+;~ zE)=ujg^L_mV9|I*!HZ!g2>ZDy_}mX7K1a$*kIOOMzmYiMI6Y?V$2P9o3imMmbto{T z-m~5jHM{s7wIy&fWvevu?_Eu@xyf&E#7_oajkqAb2DN7{t0$>rsK3fhIA(?X9(W9Z zHotYjSAwnX3QO)j7g(^`k589V#!c_%{3H13+tCKizzDPRP=y?UL#qnGE1j~KRKrBO z1I>E>Fx1F5=UCV2y>K5Y8Uf?hiP$xG%p$?nS|QM zgzE-Y^Gd|mM>i!>jf>DFK9Vx0^yJzXHhg;)CJGN9JkLniGjwT3VqhjO3)`-1!^nkd zbk#se7*)W)nUT?*ENpGL@Xv3U@&hy%k3d?)m%ek7?ej!F?=1Pv4Ic~B3dG6JbWJCP z;ie2gg!HaorVtuKk}*@`Ojj)rOT#^-XP#E6E25u%l()uuqe7TN{!Ud>k8rE!)Vxlb ze#w8@%CeJUDkL~XRy{s z6+^LS;a*Nphl`Yb6F^^JwC6Hugaa~WtI~uyC8UJ?WseJ*a z1E&N*=}s;@Kbhq2r2O9K7HS2QsRYxz@X^naeRi*sDXf8`!Hjw#a6CmwEdE-U>YL49 zRnzq}J1`A-R;vA}XiucKOu;ju{>d;2v8;yXDZz`nI^tGd<*B^;r zyitIWpWKB-T62bljEk+O(me$epB@MJhs0xa#6N0m{knY0mS4 z9O&JuC<( zO41&^a8KpqN9ykv5C077V{votQhQ2#8LH;VXmAIjri{e z41PP06U^xx7fxf&;7kjMJR)l}N2?n=;sk-qhv2O(}$s zhC&TD^HUVzaybAL>&ZFhlTFPQWR|kN`E;))#(oJ!G>R*Hj+kiwmApwi1CfH0*l| zYH;+}9bij61*7RQPm%mutL8j#A}JQTOlSc$Y1DwXA9v#3qg9vvQ4T*n(Kyr11v8x+ z08wN9qiq*hq?8Mqqe6`7p>`%cth-Bl^bY1_Ov^fvl7lLbERL+^kdeWCF5Ev4ngmJ$ zrHDv?2{omEt&&2r`znEwv7ZW*Uj=Fd7}viwL};45 z#0`)*d4~Rx_zh<|e6Uu`3b%}NEbcBB4JsioP4jUp{<-+DEvX~u3DYHx8M`H!M*YU= z6AWI7Z``y;Qk^OA2eQ$6DuI1<~t1%b)wQ#GFb-KZBP0$3BZz`#P zg-IBmxGnZVgkq$HS&(yIzsFI(Nkl@RZCQ_ilh;?6*hEHYAv3oTlQ~3*n7!*C2GMVY zm~gX%5TY5Gk$JPDD$`?=KZ~FBTowI{9M#`xvs73$w<9f6r%Mj`*bz*YOoQmUucT71 z*m{SWGZ2A@vm_udhOm4NpGMYCo!e?&@CVk&5ZskVoEOqCOF!|1J=Qvtf{j|kYeO%i z4t?6S+H=ODE99%=iAAkDlb;~y?$0q;b$>@ldrnNzc&5yEimwi;y&tIHdUo zbyB>0UfdX5fhLV5@2@=%1S=!9iIFtfkPVM4`gmT7(~nN`^01(@HOW!xM{*W5N^1Y< zqf{PH->C{Ut^%U(`ScoIi05LMQYt385d~|9eC85rH&e?ph9z5N4G%aYnjAYK#O@hH z=KE^ptA=ewJxpptJ~L8hA8U?fZt|6sNolW-N8aUEvLLzQS#9|mI9Gfo{jN*z{h8ny z|67*5F`s)fDUv0Rf0eiEXcQVvpObk!W`rh;D5u8ctWRO}Q;7?&hfv5h+pq0RFQ83~+@1-D2b17w{Mb15ZIaPYiMk`$_&jPvf{4O& zP~F|mihidHVzTbjM4ieUyd;IGaxl#gG*PNtZf~_1u9}-G7p?IfWm1d+o4&MFgkOsa1?->jWSPg0Ytpzmpa} z5Uf^4l4yUoMQomuA;qHQR$(wYX^4iQymc01FIaI%qhNuXTTxHX6~WT=PTbw%t$bfoOQ6jXs0xC z1KQv^ndNH)Z-r zc11>%#NQo%vV+W}2phTel&Mq(rfO|6yD*#Zeu}Scaoar|N2t`3;{CC#%(Wg$4!f59 zVihTtL3k*F?OgOFiDTSQqJ>W#3ImGJx0fuvLu-HiI&Alw(GTmm^4*Br+U0$TyJ|T% z;t%giRKk{B!*7WR2N4>YYX|X?9>%{d+A8K3lU$S2vIk0Tav1ZH`xu6Fz1^z(gqnu#R*=@oZ#KIO^Gw23I; z78)2XjpD$To=`AP;v;M8nB-wQDvDznq2Bd^0O+Zfck6%8O<(wE>y-u+R+CX>8!!r0%m29I^;sSl4^~IGE`dHU-&4cZAQw0yEteTut6Sh=|nK^v< zBG^2)LDLDJP!~F@>ZQ!rZ(~(!sq|TZ*9ACgL}wsrOg^-*zp?6!NO!OvsK9mIPKAUx@hk_oIIi1GyyC|MqC;6R>ARMfzpOzF?3Akr0}Zd;0L*YglJe|(mj05{$e9HVgVN=yw}CB2Y?))o|(zMrIG$U+R*-m@2;63(Qn@%F5iR%kqOyTkIH?0g{-TuVg=e_W znP0$vCvr1qjSE`X&W)!?p*(Ju=nG)?etC8w9TL=Q^Tzi)7NOVYE-7Ubt0Ck82Y!U@ z`8p*htt#K#j_71pXt3M^@lYOdR(2Y%9U$wLJPpr__e%R!8XPkQi!4Qnl6iSvkSh#d z%64<*Z*5?A9m7fTM;XOFQxks!e9$}oWj2PJ#dS?mqj&z!Q5ML> zwt8`o9CIKnVI^Z|K_d0NaC{{dqleK_K4qHMOwG!vpMvpeEqQvsuR-3mcw?b)gryXg!#* zOzWZ!oGD^e4wmkc@s*v7A`rqRr;4Z(%00h^3e*CMDxM_Qgs1`QVbmE~Uasuyhe?}J zZLEAh5Ob&rae3a-t+a$;{Fc`lk0UtYSZ&Vku=qs;K?w)R;O}0$Svo4z6x;XrOc@eE zfNOTxfs{tgWmmp3+=*qjw82^6p6Y5!hH#2FRxkOzzhI&#=%z2qi9|L8jfQYcF=1Bw z&TOP+;0=y1GMGC^jR_ui%X9m>-z=6ivR8J%F|cX?pHWp>G8_{kQF@Vi*IGCZM-8>P zLU)SvoT;UhSbXwyYO!ELnH%un>v7p@{AhTWVZg{vvxhwO3t2<^YO0ewxXjt#aOHED zDE9h^FAp2{U(Bx^XM*RS^O)T@Qi>S}i_6|o@H`j@TL@vbwp!goOq@N2a%S2n&!xv4 zNWUA!_F#QI40D(2%FcgNJ*u_L>w*ZFVM%=_!QQPn^D++%^k(5nY`Zh4e=pi=LZ*<5 zTGt9U8sKZx77WgI(0^#P?1!?j!}K|2%v#I+GE-thNY6f%*%ZnTNokZfr3ywT5B_9e zfI_}zZ0L{XqWW{!LZ*%=<~LT6mvt3a=~CTd3KEV;WpLHkFjA>Rq}kK!`nXH(uSwZ+ zM_sza;z+#qVk9zR-L29;Z-o%eR-)O_QZy3l(vx0lA}9xtln76!l6W7%-^4U6 zi-Or6@r7yc!-^6%^?nEEBaS1-?#@Z`-EeSh-4X!&UGROQ|7P25#)>n>G|St-lB|Cr zYIHRL8w6cMQW!D~>A_0-O|4{lXiLF5`*!Xi1-79zjJ@M(207{zWNC- zv^X0Y1sPNqGGTZhm;9JX!9qt#2y+La4Y17CCk1UkNj|TdBMf+WW_x+6HNH<@x|#c~byA#}%1!oUD0o$$O7-^4B?!OXt!5EjBl_0CXdaA@ z@tpuu;~8cLm2b*H$Wp4VoUaYX>1uX>!?^MHLpUS z68B9JaNa?Bt6yV${QlMzgZPr;GMbJemR;Zb4HLWV(-I_;a~_L@f@V>^W}P^b=ZUGE zpAp5f`UA7Ai+L^?05S@aiM7L_FqX)i;+Rg~)a?!08*5uZy;E!43KuHHH54Qbp5G%Vk`-&rUYtvoQhad3iu@^42@gXiAPuUOpFV!~Q{+wpU{RF%r&aSd;}qj@*&#aGtf})3~!) zOO^Y%Aq`bTh{3rUJu|b{i5jw;uix0IL=QA}>uZ72uuDK$|0zN5q(Gx|dVkS<9M!J# z=UV?UXag)8YfX#5N&v$jzjeoOKrJAF)9y^G0qn?>)4KVr=l6~s&*7$!Wx^OYi+)B* zWQ?OlmRH54+fZUv;v=u;El)XAI+NoOtRbC9n)(Lv(owk6QlOcY3e=6T$_wf|B*xv3 zoF}XH#2YtGl2%eD$CJ$kG^eg9jX>I?>GiNHQH6fI7nRcErNvCkc5?{F8J*W;xl8oo zHa>HG$Zcu!fAZQMmabA`>Gf}+Qg4n;&xi>&P)E&fAt z!59f<@DSKX7&mZ6uVtL)_!KQlGGYJ$uRMbC&XSdBU$o3N3 z3gGzAr9KY}JY`Z>rLl7X;TG}uxql;jV;Xbh4ZeAqmFn%sHeLG;fyRXBrP{InK1HHZ zMRh1K+u(50S7Zj}>0JXVf=FlGVnU4k+TGO1jxLC?!Rx`j-^iyZ69B0_0=42^xm;7h zm7aMuu9ifwCGbp*S{t7wL zbR-HaRaq@5`2i_ot%~(;VYZWER!WK<-3TT$GFN^UNOTb51Wnq``>B77P(Pp}?IBN@ zJ70|`*7gm-GFFw}38Y$%DD{19(M*IPo`LqpWzh_XD+p1oxBxPN6^1G?$=BZR@J-=gmjXPGs*#Pui{D{n6r)Em+oQeyPIF9F1#5#* zDkpPTL(K|bizDF+G^wUHco4gr4+7sra?FeLNZsw(sTzL2(EdLYP zrIJ@0eZ3pC_CaB}dr>65KK=|=+a{7QXAVCQz0L(QOi%+>)W-Z&aPC|PM8y%=0}g&@ z4xyNs7vz-X#C|NrDY~6wP&hsW)Goq&xFFZ{581UPQ(7pOu*ZO{s`~EDJtN(hsaZr& z?)Mc#DaP2jeM=%n4aT^dj@DiPhxac5Lb5qh+>Kkmw91`xc)UxnQuEZ_h6=D8+TBH z`3xzAzoPsdD2WvT6cuYJ;0+BFDQseRA&ij#(hu|`2R++6?K&VSV_X4$QlO6LH9Vfj z$7UyWn4RTT@5d?w98X%l75h?~&~MaTaG{Py9K^Hx0`Zn(b+?4{)4zrAe%Fr837%lf zbMhCu!231Nh(m;Qdd(SBsj9;4@OLbB;5lhT`ZK!V zC3yGs5g||~={zn3N8`Fl1}VT~OL^owsyW$kdC02}LCVDX8d*(etx6^_t+fSog(MJr zsO$$@clqK#q|x_^I}xJ6NP*Pwv}smBMC_1AyF)jy=Pnw4iW5#1e zp)>gsdun4&jH&@u=)+?u9}S3HV<57>)0AtywU>~KMX&Xo^=CequAjkpI7{*v4l^c- z;K{#FhXCua*>E2=+%%l4jkIklOIqP`hw>~v?^IL2VV3zS!cbi=I6*F3%et~lv&vAV7JRJ`x{e@TnvJe8WFe3-SEwx!+N*+ucIMzk` zgjLgqDnA|HD!-=@H}5ppb~fr#JUBD|-j#K1|3lZaZyo5^O&T4LX%@;{dX&vk#1R`N zh>XVgqdMFGH-TJ=W1Ok(e&c2=gHVRSVI%v}x8=453nGnix(WUg8vCK|u+0Vt->`A} zg6omL&UF4MrUljJaTuK?p#6j?Xh1?tfUvVTJ{Q--41O%U5N51dF-^-Z+HA;Svv~Jj zl4OYZ{eapMDe27O(%z?-dnzMhvZ1MjAH<%q4MiZkw7e2j#e_0xRD(~>W)Pv`QVrprt|Jw-Uig`mo4 zIp%JDYyp_pNXd4i@N#VtnVI2Sl4c+qd$uSxLuq2nI_R*L+O^5sK7B*Wg{YgapfD;B zAukm2T1<3A1*mg!$IAHdNt$oS{xma8W{EuGb#{)-BDio zlqicqCo=B8>e3>Tg1UkVhEN-D+TlE>fow1c?1)vf38(U&8$71KRpq*-eLUN(2OTAe zk|i#bx#U&Il1f~kW6cGl<_V~Jf#hx;jg>^nj;fix`V#&8mR~?+PpfE0*t(n%WWm6~`;+E*EZdfe0VYRCE{(Nx zGW=2--iq1kZ(r5f#Bpr*=eBPi5@2#xrWm1FrZvwU|M)HSQ_>b5d@K#b$7}0>v5uCk z5XW{M-W6Fa)AUte)7m*OZx(CT_Yt{(%gNH8zBD)&Gz}sv&l$W?GwTJcmV0$Z9Xybh zup9^RTDjABf-R()P6d#psu$%*b~`h2KJd>Dhq0#?BkS-N3DA;^HJ9K!1m1i%qFi~& z5B}hF86kqJVA#SP)MWf~S39mq^UA^9OAIju<27&G7#rNZ*5e0V`g)_h zV(M~9yffO!&R&|y^Nug#piMy}9FD_3 zVQ^N#-$Ww5e=8tBQFm`k&gUmqAbVv#yN&%#T~|;dFBId^9=&|$Z6d8;yyY3}`5uG- zIQ{h#t9uMatn|ygd(7*Z=RR5{CU@mL+)hvIl|r{;sVNiL+_buT)HjBaymlWNVgV{S zhfPWHwDEqD@C)@Md9aKB51FW<2i|z)(=@rs!!X+x9wo#PpiUrTUdd7ST*|~GiF*e> zSBy)T$`@aEIJFzhaHmDjZ-E{Va+0EL2Y*RlzZMwU0)4X(tvH|C8kxsk9(qL+U6t6z z4Fwnc=BX7$Lw3XPJYz;~Y-fD* z+j(1kitP_+_}8MwSu5WO z^2idR+QchpV46%a#1=BA^2J{|A23Aw2+Vgj{b;ai_9y86NZ|7}Tg<6MCLozy1BLX`Hd^e?`!1}rtM9AK=;nKic&Y6YPb?%(9Xz0VkNEz2IQwg6sG7YsJI^KSi zx35;JTyiz-;u)S&J7f`G^n!4tCa89zN1_PG5+z|2M3Qqfro(bdgWJ($7c3kCTAXzd zrI4v9cx7WqBX6i#t@A$I(_%KAscsQK1tKg?ks{kf_Z!kPCDe!YBxPNyJNcL;`9H|h z`FL2z6=c%j9;o6oGVM)r*6K&oY!Z6lSulK}2|v#?2kD*zo?36=>+u|=Kco57-fd3K zwp=K{b;gdsciNTZ_dZ!0mEvmKYQXMs(|X~L>GZiCwG%fgvd`POb(Ra^uJ*Ds?+eCd zCJpaKdM?J1j0e~A4~E(J-beb==J#Y$M;-Z~Q}%q38#rkSXJ#i9_c4coGD3-n<^KKl zjiT5LZ2PO^D|HCQ52-gU=rSRNRw&mrFyJ<2N8k$Sj3}mund#|iT(Y#fNvF%rx->3@ zN=oxBxm{5UytS4k6P4vITXQc?z9IHEGLyC-!wuUTQ2R(;n^Ijekk{lgTBTNP%gxet zBtv->7)L7aT>LHE>@2pRSA5{);j3%ZFro&StGBjj zFkDyCNU)AFaVUKy_aTBTw;Q4G$6YNT;R$OpTK0@%yX;+G!8_p7m$65ag44%^`y5WH z4M&owgfwt&8VE~8=SX-}!ytFCORyZ3l$GB!58DcV1f2Sli_+PD;~plH1(KfK?kk?u zTq;%V0auWT+&Z_9(GrMm;Mr0yXbP-^PX0=`{jng1?hTbCYk*ZGB6rbG$Lm1^H*jpJ zD_jDkC&!xdSwdu0A!t^pUt=wCnA$bcFAfX5zgmC5%UVQ8DT_Y~hWV$7*<}hQbmj z>{*ScvJta}eO8)%u(e)KgoVMul}%k)3W1xjMTHR|cod0k*(oN~s%`^b^p%x>A(@)- zESi2267&oI179RkcD#z{zGVw*+!vK3TSYY)lg{J&dBOr^@%J_e5FjPL@2^2r03N1+ ziUfz0!?iuNG}1=QiW1q17Mt2Y zwHf*b(jC@TOezPczL*f6-ruqRt7CK#9*JB@-@};If$l?Av6ExvDe-fj_lVLHu9Kq? z643-ohk1&!N4li z&TS=jvRGp~Y$SZ4e8DFH2}NZTw05;-55x4!j4;+Rb=6tui<=nDa=Y@jb&Q)~-M6U5F& z6R{at)$O`GGTNM5ehuwW(5C#rCry@Mmuq9J-F{gsU*sai(hBFmMASA$_Ae9vX;X^GT3d&-_(NJcTikhlz!4U)ov^{%<9W4NQNaWZ|0}`!0 z>Q!>~)l^ulX+estcn~sua_r%z_?9fvFEtnmo`*>$vLFXaQ7l!SNUUL2n4?!sb?XQ* zH~ z`Z`}hPIvgjm{gMb4laNj4;?dpW;l=e)fs%Qbka>upA-(Pa&|cs2giL4kmDl}g?%5R z%wl5Yv;);rBPrq2!m^iDe%7z;_74TUx%H}qhK27ez90)|+*mfNl9dx3VuyvyLe5c$$F5E?1V(QOB z2FmL~sck(Jx=JIUO95p|l&S#Gw{e3)P(axbr)ER{e7Z4h1BQA*K3F5fJ@5c&Q_7y{ z0@f5LHiHdO4vY%-WxRcVJm|poXC&i02(&H)=JAuKo%C}1s~M>E9)5AhM8Nox_%IU)o43>t)?Y!Qwil-<{_!Un)8RG{k* zp&(p|dDAn?BPYl;MoTrFmjML{|rJm4OKd41$Yd0tQP1IAdJP`bZC3D#yT?| zBx_Z*8UAJsipY_@0s}%Igy=d)9g^z3AYqVy9XN%n^>aG)g- z1{%nB@K4uO2?!2XxQr)p^$NU6BL3#*~ch~8nZyxgwN<#4WyK1*4#lYPX2Mx zqG=H%++caQmSqi<;SqJ44{l(1W8bI9)8a3T60ze&q)GzO%mf9AB-mP^H#*_w9hzJq zDx8YK(R*DHXCYGJgQ;5BHfa=c&+9RPZ zyqNRFAC+s^%$*@UGvS$wEnE_L(AM&LYywXUdzb#8OCPcmDZpYw5cV8l@v)aHD%% z4z=G2gqQZ=U6#6vHA55KMV2v4nX5fmO@5MHRhw34oPQ_II~`_Cl2tAW9@4Q3`z?W^ zsa8!Wf!KDn%3dgaAg>!Z{^WwLwKgJph!ez-z;Fy5AcWop=B+Ex#;n40+8+bkd(*)6 za&p`o^v#>v8fI6PuJRqOl`(eFHDlms)49nx56cjfoCMT-C{Q7RfdOhKG&reXcrtjY zOHgwuHTHmsJU4}B4b^|73VRJmHWO~24wedQDRQE*D4Q3*@WfU~Xac)y%|9=q^PAcV z0bTQ}rG(MfLVCFnaBjjP0{ z?9Ty&rSyW(!xkJkcdZV^A6;SL!R0wz!}p8kMccvWvx2!DLP7|MU_?oa+%@fGZY;TB z!vYkh`Y5o?W258V86dc)n4FxB3YaEcR03G0)O(y%^Mg1Jo$-V;rkq&9Qpv)XwGf=-}GX4rrR{QB7t%a>xJbIRswb9}3e%;a( zff^75!J-ug(@CRKS~^^qKTT1Zs!)Ms6DXw}08M{vZ9gH=GwY$*TOqo)q6@r8Z-H_! zraqXWFZeO8oW-T#aT^jHrlx}dT!i>qeSX-)Mqz)X0DFKL9Yiz8m$|#NJvAmpU(PYB zBH2iNlBCe#BZpyfVHcr*#ETdX3kpAm0^C&-y77^98|$?-8Vly0I@J%3QT9K~+DHrar!GG|cCmWfz+g4fbf8QEzE zEFKS_FD+{XKd8p~e|j>r+BFvnh`UDGLKx!-Z{~!7p2cF2zHI$8qSbdq6a%-GGJ7dY zQ?pey6%||_HfLKk)tDVKAo_F2)k2ddmKpE*9R3*SEDR{sGA6q%L7UbAR&EYuu}Fg+iHm!&J31x z*9@D}w|`s6{L?vAsNg~U!kc+QPNbSZvvKw9fTWXu2>_0yeW}7UKnV}6jb-ABVT~C2 z|1c?NfD#Y$W~t&nQk_!HVvJS9trtefUA)TNIy9fKk?e%08A95I`g$~~m+6Zyh9o{p z)2a1SCQB_!fN#HunKcOdifT|ePL0O7xdzI##ms=UCDwz7f|JWs`cOy$9FQoZ>6|Y& z01U#_ex2Mq#fEwpWCGLF#wlJRM(6{+v4WVf=^5>Jv8TvWQqsGZF_!lYUZxzqE>Vda z6J=b5Sg{6PO*#x=!9#?UqgN?>9-Ek$pnWMv2JN2apqJ7h!SVHX-o=T^by&KB9E66N zfCy(&si4>^MDWi{X3)ok@Gm?#Y8Ph*69L&$ zVS3@_sHQm8O7=wWjQ|sjZHDRF_`tdd7V5SFXC}_(nG`x>p`EO5G`~mGlqud!;mZaP znsUTdot+vI7#FDgDWZ`>4mgP>Fzk0l)VUtXO_!3(oHK@MaS>&+-+$+pm30K3RI!xXh;JC48r2nj7S?wb~j z;f3AJ)^Iq?f}u=k2(0}P9T`Lss)%tQBZTY%79=L^wq1LJF~N}ldjfVt;yuF~rs-*^ zEkz}ne~BvFj&YFOhnq9ekO1#qa=Ry9;alas}R#4)RcvI7p&4oFV2u=RM+>d~{f>?7`EHdYnKO*p)lc+qTZr)<)tu6>)cb;Oga z$&s&k`9bMJA|=n+vH_&}O)SMFWt9bEL7rT&KzGdw+Df&}2bv{eXZWziLSxSQW+0Hu zJZn%^hYbst3)3V;YSYIru)#u$!1j7WfJ8lrn|M3{Kc&LKgyLuop=XDMM{a~Med`x( ziuBw8`Sfvsx(>S`h`IzIP!(Z!f6w7G{wKMw`Qr2^U9%EA^=+^~VS4@6|8tkXM&U%G zQcjN?B1PO>eJC>~^87WE2Eo{kKpsLUV+J9^5U3LL!;)+aaGc0+h4B`q$Y235D&+{w zSEM2(%7@h5ErEh8&ME>Z0l6q`ghPk$dzxR;DkRm~PTY-zp`I!Zfj$ymh|o(|tFMj5 z*)8#AH{0-X)jq1VgDG^@SsbA2zJ^}QCaa)y67vld(;Yv>s5QHS7)@`2^T+S% zp&k>!1m$5I9^~hCP4*I7++)=l?#tKTCgK4ohw~K%05^XhGDkP6jT>rM#+K|2U4V=i zU>FUk+q^fx>a@WWlQ=-%^)6A5Dp5=#-GuA>+=xo)j*-#c8tSIzL2Vfl(sK<4DG$mp z)8L`6v2(-y1u_B8^seR!++1?EQ@YE!{vO*|)$man(5Y>k-w192?~$&;fsePh*9i_# z71>K^LIS5F8z4u-Ur3~Yy2Q$mnVK+Z(ikR~Dclo(qy3{p98xf1tRpzs6d3^E=AtXD zPp6j#5Fw8c+10X0*hF;9OXC1A0R)r4tOu*Bo})$Sy?`bqaI~vcu~~PkL0G&rs%OZ? zE`1G5PRI^s14n3uP^I-l2K$&zQ-5*Bpps@O9bRJE zgJv4HeWN`XT1x+(6sI@~cQYr#QJ`B`IdvyQ0{QR6EOpJErou!E{e-MRVKGJbjYlVraGqwXx8>b?0xQ~|@RzDeF z4#Wx@viu|+9HQp^E6z$H0vYEVe9NB;FUwEOkqzOW`E)ol+vI*|;iUylz8Fm~hQ9^~ z5E>o$a43UOAQY(@6|uRQFDZbOAEr{#VswQbSRrNHSmP@W`z6F28K$M|b(RFKa>>F+ z(~&Tdaf)R-5R`3tCN=?*8IfYN*rQLyXLg#mH7ZKD9d3B+`kvcVpChV4W}tG7Qkq zKGAN*B=nmQ6lJJboNlu`7z{n*m5ZsT)!7;}9Wu>UiVyM>mG(c~__K+Uaz!Vs*E}`+ zsokWgW2373oKrI%+|RCeN1b}4&_vmiU1Y$~75_AMhCzlmfR-a^*=;Dx \ No newline at end of file diff --git a/publish/fonts/Novecentosanswide-Normal-webfont.ttf b/publish/fonts/Novecentosanswide-Normal-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..8cfb62dd59e199f956469a9bf7576af6264c6e95 GIT binary patch literal 56884 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 Lt2X1!TSfj2VF}Y^ literal 0 HcmV?d00001 diff --git a/publish/fonts/Novecentosanswide-Normal-webfont.woff b/publish/fonts/Novecentosanswide-Normal-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..d5c42907915e60c1975b42031480512706bb0e49 GIT binary patch literal 24772 zcmY&;V{m3&u=Nw$b}}(0wl%TMiEZ1qZQHh;iEZ0%71c;`TyJh>Hl|$h$u+|06?WbEbf0Wf3Bqv75*dg!wvq}_&*>7 zLIi+{%E>DJa0dVYEH(f@uN1h-KO?HBEC>L=|G0n%0|0RBa{+>AvWj$!007dD4UqkT zt`T{$vw@YK?GKmu6Cd=0J^mfsP6KC0LI42ezdh-Hz>Ty97Hw>6V)esG0RUjp004|- zkL?ksiJrqxEat|K59I#>(Ztft_=o$+g@Y0Ru>3G`^;kAF(lZ1A6cB%Wn0~+tVrg(^ z`a}M3|K&pP0}=>zkR4MiN7oX_N0l+Im@-{!vYfWK|hTn2HrLSxZnr=OAWcS+S|3qZ%UXgkQ;AXI|23J^D7li4(wl^yVi0%#Br5pi1DocRW8~GwpIVN3a`}rtq0(e zaLs1s?;j7iOQ%K@Qy)RDuqXJn4%6$rrUJ@I<9Q=&l4tH5jhZ7DCr#6){J`-ONnZB; zET!Q9?nwjFtc{V+`Svfw>jKU%CKdSm^$&1wJ|cuEq#e{FTI+#OR$E*1Xe#(Su*?pD zPo6I}h!y-9NqYTjKg zE6AQKuZ8a$pNw$O2bYVM+5Vy1!oNAEi_YR4IN^`N0_&6O z>Fb)sUIX{0+(;pjOL%l+{7i(gqKWnJceaKdU!_&5;*-+aIenI5=zd+X)wx8tR|VgB zzTm$=Euy-C=N zCes%@;aB^Wkp%E#qFN-^V?xfh0{+}rt#wJh1xq28xv?FO%y<4pWZsoCQaVaq6a zxq;JYt+{@)Wg>&bj5++q|kws6*Z0F z7e_`@jd3-l`{}649%kq_&c5VMCmnCe((gLh&o6bn_u;+?J25Jv_g$vsZ=8BF6?!o8 zVLVm3QsviJU7*Y4Q4FM*Qs!^ioMqNK?gP|d^oKk7*>54J)s;H-t=!?6V8G3?H(oPm zs6`SF&R6@iv4O!u5x#zt(5XWerS^O0OAecK6#a{lyU~7izxZmPnlUVL=#7mP6Q<3> zj<}S_(;;dK)ncT=Hmo>JyWV{6M$Df0QIDRca7#VB2T$fK-;sMF6vV`i$?$I)#%iKl zvSi?bjjnsan-7YQZKM?^#INJTyJY!w)fb3b~NN}V+<#KltYTDdTPbL%E7WMG}=eXHBhNX3d*so=uln-K9 z0w=U%HoxOO;r7V4Kj%8^s}7}Fvk#BakIG(lV7C{ITbo!&1ZSg{!a5!YW#x%-1d{NW ziwaO@uINDz{>k97v=}+vLa#lu8y{5L6E=gvJ=tLLw~+`17FPhr)Jtd2m2_=G9^6)k9^-0y$3 zlk^zpZ2DPA%m{Nj@M;1Pr3&sv3xO(ti*dUa@LCc*A7Q)+tJI{kj}~Uq)dtH?FxDG? z;2Ll)f)Dgk@4R3QxkKPBJ2fb16?3)fJf(Cf=mIqCa(-nr6^*boG6!bhh+o+LNt0-A zDFw$MHA{Iq2=Ge=fduDO`5{CFO}*{7U5nA9`zW}c(QBKBrH9JzR7-Y3)=Z`Fb81v7 zU%B{98B4lJEWpDydEJcF$`wG5_+rJW*!<79ZZ=^;+u>CeMl%5tZ5^Y*W)YbgW?fDt zOF-Ss9!O-R-I@XQ*(|;5@ZK;cC}Os30(u9tJ3}aRNB1Um#A;9!Knv&hLZ+b5%P>_9 zzS3=z;}*E=clT^aE&?MvN5v^ z?fhIPAnhVOxjsNo2_5=rZ%Z0WS6qiHx);c4Obh*dkWY5f|_H}bsm z&6&>BmpyP3$0fIjk+{Cc;&0%DqcPI%Jx}YU`*@$=i^qzoPUJ?$%@(bKqhQP6td7y= zz96|_qym*G`BYaIjq(bpvj?eeL7!V#_Gi-j420rG5@ka#youD2G;FK|_n$p2P5m{F zJ;$@oN?%d|Iw3W9QZt1y4*9MmZA%OHpfCEITxpRacfX@Lgti~kImG89t(>d&3eMi6 zPJ84dO1&yo4Qs04Ry#e*{2+KTFF@q(MIyVT)L!i^j;{^e?0Fb6razRGKL$23PfnLS zHm(a@oqtW=YPyy<3*l|s++RT{oHfxcpAgkmMIq$TUNw4M;)h-98?8}`Tj+>CJ8f=W zK1e3Kz{dvEAbrY?r9ttSguLy6Mw~T0e8unRfN6GwdD9%O83%2HM#ZREph}I`Y?;W! z9)4MEdQIX=WlfWK*1;5Q*Nl^OO!hcSCH}^;pE!$f$F_6>XxQO@6%Q0253?OjOnDAJ zsU)w4eW@@3Y}OJoj}5~`M&qy8FQ-qlUIOnnUwEoq>I0fT%I8JI#c97c=HmvXBjj~3 zb}Ok4uz-gY=xCF>0yI{nu*#3@eKoszekZoiMZMXf+k=9^wMS=x-0+u_GvutLx$-+p zOXLnXwdx?0@^`iRq38bfgjJme?tEbKjd%h^pM&vzePHaBtpS*y{L&@b%=ONMI3egg zQ}oRMKg~Ju0k>5|loMwIvc?8(HN}(*sQ4$SoTSv|5QtwRH%GzD3=PN9KCY6e1c?VH zIQA>AP>DjFD)FU|wHm`69f~LEMLUoK14OG4bf?G&P;=3QI!oo7f)DOmRGlLb0|-C0 z@Leq}Tke16hF0T02L%1-iVe0U*iFx5dAdxt@94d-(#O57{e4tz7G?3+^!1pUW8 z>Q{qEoJzq3>Pww5ifd704d@3gNEF&m`64K}6ZW!|!ac8X zPjNP6Iv0YC=vxmuOx8sYoUL$`q(j2`mEc7|L)u2XM$2)S^wY5*C--{p5K3e@d?RX> zR*ZE$j;mo<7q8X(_xY@Bz&8PDl(PVQ(2bpWi}LJu=;T}SWJPx1jV49o6{`7SmzZbw zH^?#_e(3-71}f6BiUO!SHQSx~RiSWZV)L=Vh(Z7y!9*nmUXmzOQ!yb(qCse)VP<{+ znl{pYe-J|@EKC7S6m{}2nw?&xq$;ge+etrK4?ho+%?(`Rkcx)XyobqA);q)TCYOya zfc_R2!ZtFpxB>FO0cXNAAmaSx5yqMd1b%8$tRFYC3+a!&D?QF1W7lv-4pw$a4&Jol zOtBa_<2i#w#f1Gtbw4TNl0k_$K8EMgHpOaJ`?e48HH^Rut)G%fn60BeO59N2+!}fM z=uvT=nt&e5DCRcR9E`!sY|H1(Y|lf;fKkXzSL7FQ!jDkB2d`2W_M3Z%)wwo;ZDoM# zVjrb@2M3zb-!DeOC&}%vVBd;kYP6NfXxk;Dc1E>7*P-{hpUGOo`RnfG4Xv9?XHFMH zcWe`#j@)VL9Eij;^{4PDPf?F%J5l9BlLxYLUG zt@mzw=UvZ%+UwvEhF^aL zBc9VS**>+8$I<^HHUy})_P^irzJBy>H$fxHsNX_4jW29 zA#NUCPxk<6VYj~j*MA$&>1X!#PWARL459Y*_U^#tVeMmbV}ba3f~%;2W9pjl1NZ3> z(Za&Rc7{t#7JqwTVWwg*bSmiTrozS>FzT*>6ry6f0;Y+ebAS4E16^HRV_#h?a1n6C zR*(Y*|5qAV2;WBd0N~gm5W`!>1%^uFmHwL?hSWO$Q_OihFj_DqFiJ2EFj6oUFfTCb zAlD$4aEb5lfPcGSXPUjW$$B^jh)OI0{=WW!{;*0-q*^Td-!JKrGR_g@~L zpYP8@0R;%~+$-<8(*aos%{*$)x~Bod5XH|3{Mus7x`qb67J7!j$WkZJzJE>hj0}!< z4)%_A5BD(;QIXM+&`?rh6XTQPk`h$qloV9tl@*s~7Uq^_7w6gNnHgCbSeROB8|$0v zni^be9qpa%oE)BS9`2rQAMX($VWHun;9z1xBg3P^q9SC)3{B0ft~1%KruxAml4<_7 zdme@>S1ebnw|MU#NozJ+Z8kYP;|KRAE=;Z)-QPD5BpEX_{?nz<*A)wCr7a29TaA7* zq~~gRlTi@5UjTui(`mE2KWn;#eMey6?sOrbQ1t#p7gAI;a1pi9@tHoLgiSF1mpx|t zA_gQ^4jc+3u^yc8Gh6xZ9QZ-L_)q$F`Wi$0{KkC803?H*Cq0<+W#2h|p6A~>Up_#$ zSg2`KK*uX^j;?D}DrPS8BB*$7V-m^nLFi5N`g_c3#3;>(y@7mbz1mPjvQ7POAQs>knm)V_t$aFeSN; zV$jfQL|(T;{lltmjY^69?}jj(d)y+-0lEkj94)|D?9btR?46#su*!wJ0QCy#y1LzV zO6Po6<}k43GNq1lE}S8iVrJ%V49Qa!OtwoyE@Urf;@#fMP%SnZ zAvG!;qRw$yiWVO+6_^mkx{KM`WXm1b8FzKW_juXdM|OP)Ehg~jlc}3l$TRO%EKqkP z0)!8>XVi%xD4@^G)hu+1E_;o1|Ku4(EpgrZx5j zEP{z;p%E1sC1>vR8FgCK5@&^bQ-uHu(kv+a`(wa(jH$osx|+1^;Vf!&8Y@v;C_l{e zoFU=_b24*St{Za|o6A7uO!XfaX1m;MkB9874QMu(c8PUA@8Of_Gbt%B4?R|vpaW7~ z={Bug3Qaz)0X~!$A`ASq(Uf$(;l6+t@9=}WCL__^2Hxh5_YbJEY!)PLv)(W8#t}s) z31B87W7K@KShaJtWFvc)f*n8&>#GQZSw^ofz>!CjNJ-h z_D5V@+HPt5+)Dj4TL3H*D!DK?!B+ueFiAmE|EOWXjVTQ&J9fehX1`xtFV)(I?!gs3WmJc zP>ak^*oFKUrr)-)OJG+w3}w#{L+lJHh6jV3a-i{IsTrs=@nNv}jZtRRI+@`GKV7~) zTjeMfK2LLNNus4B-+>TmB|e^)N=F!HnY~AvyjHi1J38p+!r;eM_o+T#l1o!OTJ#!t zu{BG%VKqy{a0UFrzk)N5kyUd0CFV^>S?-7KVl=j)AuXEPCoA|l1tN@vM}eTnf{CFb zxid6o@#j_uOmxhdYq{{K?~1n-&unVtpjkVTZJC9J*<;;@PlOd8(MRB!dxIT&INE8a z3=~a+JJ5Z2W)d%19vbR)bu>L(dE(7 z(&3`I_RB27d2!vmDZa8kd69G?Io4>5HNF>&ZFQLSU%fQ>0zWijEl@^stelV_0|pW*Kcs3b z7g7kQ(mkk1la&q{b2lF=ciy4T>XUMGuh0XiXwK2;ybfC97mAh6(8Fsgk8aHHMIK>tUizm&IDAhzTfPwXqI6B}NNr4}{Qz#}w z_O=|fCi|?utgH}>s4IH87dJEOxJY6azn;rKZnzjc<$kxW8oZ~cPc~cIHN+KN<5QVe z2W>_<#wYxDBrQ--0+9dd4tL3}t}AoyEMXxMvwyNlfca^zAO&{7^+3Aym#Qb5Y_=Cf zH{#EH+WUgcX*42SUZ;NDkdQNDaS}?5d{V6u^cJ@dbk~e{>HPO6wp3^u?2Bi&zK&ho z_BkbuZ3juoNo|D=E7x@mO;B5)oWB>j{sk9VtxX>C0LaHjB>VaKE#Cd}i%C{P7}jxP z&4>@~7v~7ayUd>J-q;u3&EmKHw)4xG$E#7G{K-MU3(kT2LLlx1F- zwsx(ga;}=!>iuVn%@sp$Ms?Vdex?lPu$e$GPyCXOujZR4<`blQtB*!OL@navnB1iQ zYOlE~j}7hsWId4dn6lcm6D6}L^yC_Rg!^$sN!aS^G#&pI!;xkA;WzAV&ujz$Sghzzi5wp;V7x;p&8 zG5{-IR!f8+C3wJw=jml1fwoiT>|mQ!XUTqS=&mD%?{;wLruLAr-KzJXIDsI}yB_vc z9@U9#J@c2C|13W%P0~vLnGMDND0Br{dyShqb2@q{Zhpy19ER zdz$9qpJgVtCDsheXLxdV-ZWQ>l+vJw!K2eHbt%BVI)6Y)6-F7AFtv=5yZCIZ>`Yua zp`5g<_|*`MH{$*m-W=~3v6gn&rbdP)sQcYybJBpbG$X*>weMG(oyev zWL3NFNtP?qgx~2iD^`bKbUj+WZ8@+{@yol=ZUvoCTRq6r`yIZtFn8oU=ndjEAiciY zgQJn{dcwIg0e-9(==p-oNYbqWlE~J$xYbzL<#@chd^7gF0*&h+T+X1)qI+=@bTNaJ zcrCe<`u*3y`Xcc}ps|Hm`wV#K4yM><%&x$CaQI5Sf)gH8l0vzOd9JX*F-Y@x0WQ5h zuYM5jS3NmZ6<-HM(zl)>ji-Ca6f=nT{DAC?FxAxxde5rfe zNK4q%v^Y)SPRI2!rNxGA_R(y;1QhfM8IpmZI-=x!AqPQTtX`=+<*xJ`T7bX!LYD@z zpQui3@>8S~I>Fo&82IipL8lM9!5W7{k#alW&)K)sPgVT1J4W_Fw4QM=^WRUktY2=; zC1gVNDG+adY05mX2i{iP@u0X8rv_TPvI!KC^Y!g|4T%$o@g}&iu`o$NK;QTZ zp;}?bx`+l$6vK&F?jnz=Blql=ygz?C@@)}+V?&J9uOGNr_uzSmY`q=Qt*%Y%grHye zqa~3OlM%y4yzfw|VWtJh|NhMMC%ZAGu5Tv|uVwHsP{h^U_OD`34_(axpU<1;cuiiL zM%aVFgF~hM+qrOZUs1biCNXD3*akLCbctiEd}KU0!{JAMPhW_-3^e1+*%!U60)y8sfDN z1m$Ke6XE9xJ8TQSq$?jp0SUgQ*8(3N z39)KBYw~`h@#=@x)2`*6LKq}l%SYGeNo4M!XTg2|HadeC-bR?E>sA&uC)EqD{-(GB zV{hUDTpV(86neFA=I|84AO|Z3)F;UM$8u9SVg1<}lV^L)3e#MJm3>8hS??@z_eI=r zzjvWUPxLmqfvh>|dF>p9T0=usm>XV;$+ns47gaM6tYbH@<63V9P}z{~W-7NCdm)GD zYE+~`;H3il=zS2sreb=ds{wg*TyU{)!5-Ykcv20w#c>eRJVx|J?a@Cf>fiA98S)hBzzv8%x(H8@_|k?916!bL7sYEd z&O0)=i~gygH$4+Q1fO&Ts)%9~_Q(VyJ_&FyOjFPWVLL#G0#pTj;8?%;^^_v8~#j4B7` zEZQduF;Dap)dzniBY4mxWs#BqR`^>I5>4_;$nUMh5F^exVjp5 zabn0!&pomY;BF~U2b;}WK($Sc<0mWg$hbYi=o$8WC8Yx@WW#wtZ`iV~jbO#^m2=u7 zB~JnVJjbCtVWXUh83DY1#%p%78iDlI@VSw@r_QSKf4Zj>9*ePY%RU))u8Eh&4jkr3 zh07U7b4!*=EmEPqK`VKrW?wsGu2Z`C|0xnmCR7vQ+;CTt2^S+;LA*@BeZ(ub>r~n! z%|;!&eDS!ma`kx4z_WqpmcTc9cZF#uu>4>^_W?~9I`ftSK}NKWyn+_v5-p7~F@^}x zPTI*xO|=TL>Fhohj`9B;qIY$8wxJRI#(6u(E`>L8-PgGt@G3c40OIKUXM~vi8yxxW z7v{SD!)oD{8M7`N3l20_gd3y^GohjbCDUHvTCX%Pl|7hNcteR-2B;0!K7X&xEZkS- z^gfj{1_+CSnJ}Q5d@tg60wGkQECUrtPmgK4kE7{A-JH{7@jYF;Zgcu<10M<64{hiF6s6Eixa7IEf@JuG=5)LHIDzF6>zs8E?Z?+J2 ze#3w8zFfBKFC2!w?v^vte&i*@WOy%wmOKr>NB=N!T)872L<+odPalWH4Hs}i^c*Vb z317qlqnTaG;~HOdu*%=Q>8!@$WZBX8^cw9*W`Kf*KxBX*w5gL@=p+Ym&Zs8_h!{}o zL;P7`qI87NaTU~#qQ%V*fMbO~hEVx~m2l5?46L878o&AsKFIYi%g@r%a50}9!qVH- z6rH4{8tP|sG@L)mE3P~4V|(f<3unxSS>iH0u05YbMX$cTY<1MvO9Bp$xjT(k!Qia4 zJ2=rMEMpR& zD!!(!HvrdIY-h0?b=DH&sumpUB?q{>3sOmts5Z%AjJ4(LpggYn)>c5H^$;ufg z$@~@zq7?{76rop=;HafJB%c;QK5XCHLY~HbI2gKWB)xaLoAY+jM6E+@3P?rjQ&w^6LzCAFE|znTyGNNcn&)Z*uDm%T__d`x(l`B>a?NprYN`v7zNH zsgzSq3OXHNShT{cqz}@Sjbbi2-tHzupM4k_$5AcSaWZ=LPl7C}UxOU4vN7zg5uCFR z?UNQ?qP5(HW*O3{{dwGwpM)W{ARY%6%cRVFAYBom10_!i^Xso9GJV4=YqydJcyHFI zM|knOzIVJ3w4B-8p4tqaxw$-vm%LT_#5kQnhgtL2NdA4xfu*VxU<|URw4H%`p$j<)N8KSvv z)2J0ZVK(Gl5PA3}j)vGtc^jej2t0N2(ewZe3SDntb_6Kj+~z1aLvx{YAxQw0umDIT zNGexCr|3N%^u~EuMLlG4X{%GvwBhKS!SzGmm z^C`$2w=n;E$m9B*C^QbW>XD#rZ@i$woE5I*wJYV8D;+kVyKW_o6T8^^_X!qS5jQWy zMIt4099DzkRAlrX^{{QuhxA?L2U#?&W6AIz7n8$ZQlFqDB9cR?h?py?(F#SXh6q_7 z)V$!!sb<`CrbNH`y>N+1(ZIxML|BNK7AY`H8G?FE{dWuT2)Jx_tEw-c84Bfr%2@UzXx6tQf_mW_X@;omxU zAonRmsdI!+hv2musdYV-*jk~okni)Sm^->w?%u)+8~nBoL043sg(5*K7m-KBRHP6O za>uq?UAKj>wlp7+FvV4%$0!^M(Uu8glnL~4wnwW>IeA>{o;ag>R6T#JB`84g`Q?K@ zGNBdK)D-utYf4W?@w=nN0L3{(MhCU5%F1zUJ0vQrS7+)bbp!C=p7tl#8#A8_1z5e) zAP&+kt_AT#Nthz#7cK~i^+4P(J6f5s8w{y2>^4--uo%qrI!w5P1m2zXN=b^_)-Ej- z{OaxRM96;n9Z+3gAdZH*nY3X+D1^{F+gN?Qgx^-INjn4Jb)pAN1)_g_K1XMTo^e|b zR_YL9yl`B)Ugqld>2|YJ@j1d-L}RGBb)hlfM*C)9JXO_>EXPk$7fgX+rCS64xKnO4 zg$Ns)1Khsvcbt}|bvQWPAJ?2@wWPB*8@$e6@3wDGbgzF?`rIQoqr(x9bLsh1G03E=lVYz$DrjMRY(+Z#;RO z_XR9nZ##bsr5w;U_fl7L$EzD;u4=G_lb+L@wnF)@pQ1_tDYl_1ZpIIYC^7V)Q-wngU^#iKSNw>y4P3~9M5M$C$<%k!UjF4!fAU-tvwr0&B}ao z8-$?I*rmz-$~rFXnbv!L7Ke$S@_Qt-Y!G8P`WF>;mYi+;iw<85|4Qk{mto`^%b>|6 z^UVO5V?p;O7Y(4^d|#lplYcWl0foi!z_i5jOo})Uygf7FgU0_^DCw1Ite-)6(nS4} zo{@i}ikv60?vi2pQ!q%TmS-*BJeS)WnlV=zQ-ezzqhHa{5SdBcfjh6HHdgZ~@v~A4wM7|TH=4&o< zc1GcY^p)XNC5a#fh{ste9o9aSBECEIcl<#uQyEZRAA<`L?J$FpvFBIn$L@o6v%Ubt zyP{!-NjQhL)61}n77JOytlFi!Y}^ENss+lVa%6e@A@VeGloxAiMM@Db8di}gczNz$ z!=6}~vXO=GR)H1`yGW6x)S@{4Ix5@H;nj?T3GPGsj^GvvUYKsfT`hgKNwEA$~ z3Qv$S;*JBOAr>Xj;ErRLDrhpBI0P?Hpe`XQlIO7*t@zy24Q94<%*XjdWqUjF2>LI_i zpdw+vxLR|WiD08?Z?Yog8`E-Mk2lJOTwxtqjp+i?#$+L6SHRogEGtQ}iO7;ZjFvo-DG^`*X{dDk)@PonAn%`eG;3fwc)uk7fWgT}@D|c7J>$apN z*H-6gBu)lZOj^=^T4nHKl$A%4Fn5U=hwRgOO(HnxWE@KNnUi%8Oh(MwR04<0lJjn& z&S^bP@+8S^py8eIQqyvBuGU^^9Zb*sBoTPndC$0gyq_{(qZ@x;syy>d(A6Cbo8~!2 z8Y>Dhw@)QaYk%LQ@ICgA1|8#Zc6!m3bqFQf;H^9ja4a78+w`?c4x1!1jhN(e(eQT2 ze0}MBhbI(T?`(C~AQXD3elSLM8G0J4|KcqO5bzAvN!EGaycW4Bdf6-i-wFU)@Y)7_ z#}~vXuT!tX&ft*6;A;C`Tp7#4;hJrvh{%)>0!qQ=XhOo~G+VrYhRd{-*+C`FaA#0= z8rr4vI-O(5fqLvm*sQa^P9D+GamAbI>t4HdU`bW^d#5^ zS~0biE6rj4*I;0kbTb)8%mb_!i{|_4Nqk35Ow7(|zXw|OK0u&gH;05tjYh66gGL@D zXC(PE9obb+euvmV1=KatJj)uuNwbl}*nR~q>ljf{IB8B}m$uu)>4_syJdDXUE7T{SNYgJt!UeyBflx|+?rr+> z(D{qnS@5CPJY7UO`J%K85{*Oh(z;_aPgpt(v6TQZ5mk?rL_X3IgsI*cdGH|bCB=_n zfC+uB-st8S4<<&~zIfvBB*g?~Y z$9SWB7@0sos|VImeR7z<JyUUr(m^$6gs z^9C4dg+TZ>r5KqZtB3oA#)YHBNLHW8NEWXqHJE!6h-Rxv&D5`2R9gbIM?e1tf zfTL!8mgKdz zz0hl9lFM1`Y865FEqiA0CW z!Uo||3+uuvcm6-!132N@q(!)98pqq@vr zKdPtqfyWE^i*_4g4_EFWH$j|!ut{0!NPM*09R1PgAh!VN5v5;fiR)JuNQEr~MXy5$ zUDpHsRbtQUDDefM%3}?Lo|cDqX96dllVq7IgdoCV)sg9BgY{+(IV}av@+qY*`$zMq zNgu3_M)NEsR6D!}SIhOVf;2K>43cJV}&o_*wg#39T8PzT*R61s>IDpua zYS*pEqB|m(nFFu`H0!KdX}BKBpkTJ*uwZg0DtzFt2z{csi7;_?q@MOMZL$+UxpDE< z$L?xDwL~a{W4pPT>z-&&XFi2By=50JM6J`*wmvgv zQWTW3%7|m>n0;ctEREwx%m-l`3Y3yz?&L}xc z4T%@VLxS=iiYhbhfhxIGiYuYtpcxP*w9H+GLCh`YOT^m4yAOEWpC|BRXK2L6g7 z2tXkQBfe~9z_yWK?z<*?(R{~=P}7~gTLPYCZ1uc<_2R9#{`fZmA+E2}O1iUzR7nTf z9QagyeY)B3+z%7zy@h?!VSAm;%ksVEd`Ia>NnTn9S!5u!2_CqpCLD-ZYBdBc!+x7; zFU?U|gs_C1k5vKOf_?#8N$O<|_s&s`o@Z~ka@B${pCvVj!zGq40^%qtcnh9F(6JG( zGSlDQc;hm^ocTuv&&GjkmC;rwtjf1qXhU^TS$|g-%`bVT`*G9j__}LHFfS&>e}Ya< z#cy`#1P{6YJT~f$7Ti|rWJ!On03tPy8HgjWy_sEkpf_(9z`h5YhdPpjJ|h>xu*9!r zY@pfrFem1a)Rf=yU`yh+Tvdy%y5zX1O63gfmC)(yh~Y+#YT0?QlYG^^neBa?{=}l$T)BR6p;fiszUX>Cg~x{7VvQyO zo>|vi6=Pk{ELAlCS%5Z1G6)bx85GNnF8B3tJ8RaLi=s*S3qdgqj5SmRTY%{Lpw}@W zlUI-07>(~L+UF2cN*0Yw&asIY;#-8q&vGk!po|n#+$GM&^;PP@zrEHd^wQUJZ=~k3 z-P`Lcr+sQI_4F>fv~egk=zt~Q>gP^YkvmnY&oY21@cGwF^^R7_A#I5!U8 zL#MV!{g|SX)UZ+Ai%vGPhN^)B1yk}E=XeVxz(Zvn8GGCPG{}G0yA#~-zN@OJsbl1G zeW0YX-9g;p996m16k+=IW=saY)AaP@H{Q23w%WZl-Yu+n-L5@ybQFE5;J8}$=J0nR z+Y+n>o){#19%zET34%#?oZr~2vkcV~WP36lsAlAHynKxH_Dcfx15wRVtbk^`#&lAe z$%EN|rNzAF`=~=C+H=k4Yc#v50SRyRkMYQ@mS*K=+wq!#)wV~aY{|Jt*mg>_FWm?4Q;sWagGNeNf)6S6XhbQ{qvGJD1q@i12#6_mgPTN9C)0Z*B{Dp! zXn$qwdeNHd$g`8b1Uy0-M)itBG;3#@ z2#y?IoUNHEgnq8XbOp_v5Sj{U#)nN;C^?hDrIYUfD|SWro?LskBAw47p537-^KO4i zFz_jQ)Eu!n+%VJ$F={ajpy9|N{DH>GfO-lM0>P2+{Q~dBsBhNPcXESKmhlTvqZa@rN+INf=?0pK1mY!INHnq*!3&Q5n=s6G`$*&3a@~)n>%0Yr zAN6tHt62W~d;lYTb=u6rA7@{;Bwr@kD7h!W*8rYJiY95`WMXur_99iemrCaeG z0_0uX_L6CXsmaGx=XJ>OJz<%|!u|yZG*Bxi6IM40{uv9be?FYwdWs*bswi^lSC>ph z4w%6FP5V%!GiRS_XmW6-fJyA5eJdj@TbBQ>mNPDCYk@gtQ|Nk+wt;iVI{b4buJ-qN zcEi+}`lRWrX3jv)&~eL~V@)nRqcOc4*y!DIYyMV>mjr^B~D(aF&XcRHTN#NAv{EHS-#3l3I zPU9{5q`=rA3CVTEFaaLvgQ7T2GP|91s-#=j6PHTgtN3h>t5XhdEpPQQMY=w|5h!bz zmC$6vgjxRiBkLD|H?7oUc163~Xo5j$LvCfIpUYZO_fkmFL}B+|+Hn<`qtNKUOCDIs z5?7MGiHYau&`(ZJk8SSdP`68eBYd_v2*Q$t!v~Tt#|FcVMPWOwtK;VOhidj!a!VqY zU?3#!&dd60j$NbX$^uwtR7*?reyI;F?43rG%`=<(5LD}|rsJaRk*LV4sN;a)$SbNS zt57Yh)197GlRn#d3aJa3sBU1F(cWW-j{oZJw?!1Qu8JN+KfVl0Z)vF`_Lu9Ay1iLK zI~drf9jaN6`OY4{Eu%fhMWBV+N|FFlQ^>Q!#1wb1;fAZdge6MRlSVA)_+Yg{u-S}oi+&4WDo)q+Dt)WI@295oBi-k99&GkS%- zn8{-GWjbk&6S|wuR|7&Zul6!N*EZ<>aX(y=!o`A3t%J2i#g|?W(Q&JHV-U52gIfO= zWd}l52r~N!Yq==FV#9ZH*D*Lisf3nM`e zs$A3~p`%ZH{{egBxDR|r4Q|OG${YTasCv(t5XG_}Y-ZeB7#26JPJJ@7FVtx?H)FTz zf?Y!{KG_c-==a8NC2gc$SlBvxeP4|I5DC7vJutWI?EHa-+%|+GOGJ*8pk~8Q+#0O3 zxKXFFv4BYI_kHqmyKIkjZ+PE=ueG|k2uosmQ$*;RIcqsj*+qHhx5CDxY&dav0K?TZr_u_z)ij5PQ!p^~6DawrpE{Ppa)X_n=-&AssCV?38 zpK+u{f3#>HQyM)MB$t+58!o(RS4DR<87|Eo2g%Dw;iMEoJ^F9-rR$**kuGkc59-P- z7oU7Vp#D!hFRv>!7EG@6ngMB!y|9s!GmQ3xd!xspSy)bRfkkYjhTXrz-^V}%6>`8I z+bIdvxQWaFi6sN#D`ntx8DT$^4R1s6EY<>!!cibaEn>osP4nGIvdU%bN2W^2A@FX% zb>NJ21&f8iqN-;+k|p8|<)5I&byA*jCB}^nt-o6v+Z*fii>orvznA1xH5Il0D*ruH z$Xy5eTI_+{ENYa!VFq>qHy!!A1IgLe2)Z}l_cae4aCaDY)Wk<(oXkZb!X)k$cS3Ip z5LHHeEcQn-;fq<6!LWud1Ka<@4M$iP>?CS5o~2;pOQ=w@jBy?@a7cvH1QU9Me8P~b zS+9G1eGHcEB-2LjHC&gI@E;U&9c%bg^IY1dHPs#71W;Gh?h>ZCCe09}!p2i3>Bp$7Y zWLeQ>-Zqjy1j;(DdjAgkuZ9j6&Dx#o(rWK`kjSolb-@C=X+6EQ+ zlXyG$t}~nkcHrTWC=4XsDrRJ>A2c%odzxTbKQ~DI(Y6f0rfoF3n|) zG@`kMk-Bzm)v`&o;O=qE8XtTnQ7pd4Lr3YEML;14+DZ)=y)`(B=R0kMPM@Qy!@~9a zzW@p#_1_n6&nG=a_ua^VT&M_8drfjI!vSL|Z3L{)a%k4H6#d1;CV<)Evf{GRFty6G zZ{A@ux=b!$g8>`Nj17^LdlJnwIW5JFx$2gd>YC=}8p-RGTprKSB}MFajpMOcMP=-U zLZ?(%C^-ukh8J;#)uM1;WVLM~MGKl6(DPcFO+r}E<7rwnq?RHXSSC*@55o%HV44 zk#9k2{rEVm;V(yG7zWVICl&SoY~%}epsPEX@hbcMN3+rpsLYVBGk zPHqOTtp7Y`y+4X>-4?m|k69}Y)J(3ezVO7h)ZCmp_h!&p2{5!h*{UFnhJvLQ2|BGX zo$6VI>2*5&1OSiTtOqC36>tUU^itRvW>DkEboaP253{%8g9ybA&%H`24kGjnX*v~H zQUG(}S82`wi6{RFKObPcVfXULk_pNVwafxIA!r1Vm08egGSMEhcbqpobJl2z*9){y za5;?if3n6Rryh%@7hx>mC_T%#2^e|LXo`JoEZX|}KI5I9=6N%`%W4|{PU*FJw{i;u zg-bE}`{hGJ<@?J=xlq-}%Bp>oCrU2?wfYGCmx})`+S`!D6Uqiv07OxAiLk){^i%*G zi-DfbGt4l3hW-5fXg-Y7U1sYrs(m>oh>xq26%a!SnBFa7n$D?rw;X0)oz`xF126hi6@kf9Xv1~KSR5Aem#(>-M)d@@k%t7Tm|ts(b23u z>Ct4WO%6VjG*yR%xrGMJbLzC=jG#iJ7&|oQ#R5 zso=*S+kJ8Wl((i3etXvym9NjK=;t2m=AJGmMZqgQvhEdArxn5YlsO*2K`N^5)FICeF2{&4D{)Z@x73C4Ye8%NV z^&O;Wpt@mGdd)K0af()lGIo^7bYw{yNHK#n`L_IRP=IYAx&$F9I;ebkl=Hkr5|$-W z8W1TY2%1UQCMV5MvhYsgDS06(QdH*iMQUkcJ!x4gY^FY;T$WFEN}LwXrXEco6<*IC!Z3;K2r!N6(QHQ^9Jj)uS)J&lmECqGhG5*hWxRsh&KtQ%CG{V;Wmy>M=&Ki@Z5F_xh3T z<3sI(yI(uHePVFoS0i|R*T^NuaN)(rhvf&BlNV>V-go?^`i-^cZvN8o7aL~f^A4}Z zKMWt0XOCWSaFyH=1leJI4@}oYTA{9LIzhX6aL9-$eK!S=aj+_)27p^)Nl&Wld|o32 zE(JBmpG|c`Pz8T(QA5PyImwylbg_UM^t(8}`2z0;)jpnXzyOtAJY{-Ls?QQd6jhsX z&*D}Ouy~SI62(G=6O;#w*7<&9>$d1ExFEe!MTg&7JTsLKWp2eL25Ih8(F7heK}WMV zCaMNZAtVj8j6wJ(x~XlXhgnMmLGFBd99bdI^=YE=?B#h&?F;LLV7!oM<+z|>l^YqB z(4!Uze&#f(en7CGlH_ov@s?ZM9C03SWKDj91OwYAmuQkuY^a;{$2eHlU4v+9dsgX< zP)&HMs4)n(J5<6Fy{y?@IjFKLM^twoIB@mV2M&ym9{S2x4w0IjFKqi9c~%Zwaiv;c z3w$Ueb;yTBrBzj=eNGT~b9ziqEkxRuq4uR_y~Jm|B%bQ3B`=tono=ezO5a08qtQ+P zx7B)d9y2Ld=L|0KE^rL8?Tkvona2B9hN3;M2H4E77%rhVjY;3UC7N)hGJ1(9Ykmm` z_DRa>f?L!I???JI5}av`aEGnL?jgqY_P`&3dXFRZee&Wv2VQiQN7OvgHQXak(zHOJXriXUt7ykwgh{F3L^i z5Yh!gZ_OtJME-$O(P3mcDd~(kDN9yPO0r1KR8C4v=cKafc)NW6{_>%#^9b2lwQqmb z$ilBqK@0gUcsT{A1lyA)18hnv5vANoqal?DNoStu>2sbN#xTs1&gCe#nW$To#L6VE zPIaC0e>vkPpNuL%abY1wg(Zb0eqZV?hgLI7oY}CACeFmH#2L%o=5P4B;X<3M-ZSbg z_S>}4Lho2!w+=bxYYT=vZ3Zd0@VET^*QopdrkXDcqCG>82Ve)vQ;SKb%GezsC#fhn z^A;XGeS$5s-lW6p^#;8`CdpyZnHBh^%TFk%a(PSqO{yM+8WUaK@($+Ir!1VzS)#f= z&cW_qQ3z2wct;sNp>#DC4ThE^+T-yAJOL-m3W_;dL8sDeOQC9!GES~*X<65@y2|6J z@~p`tcrDGDjjvTRW(%+6^F-<0T448>a-Ke4X35Q$*}<6Fopul+xYPzD2eR^IAxdJZ z6No0v$bx*qk6Ty2a{<0a{{BZF4Gr!b82IdGmByf(uqgjg&6SO@KB_2sB!xNY&qbRxlLSF%FUZBJ9Tz0_pN|a z-~<K= zE~Fizf5;k(oO-O>yxfhz^t(q=%w}WJTUxxw_`E1DXE|+N?!B_1;j;Z@Bjk1^FZVyG z-Zc*5aD?7w{G%uFg9`r&a`;C1piLPSS5Dq8{lZkz;&9MYcPA}hR8x0(<%^V(LBD--VaqcdZ&fU@OOQ3q6?CMhcI3IaL>EvAK z{pYqH&fVXe$=j7Pzo!cQ1H2wu(W+O{Dhi&~Azsi4JS|Jm2s+IU+7hQ0tg3ZDrhYx3 zKiwLoAXmZIn*8fh`I%E*<@{gG_DLtA_-v`Fq#bW|T6k|@*~PrVd-2q5aQHFBy(vul zJGbZb#gR9ui$i^#h2^L1k>iveIi@T0Om@lqqC5K*+D`aN=NGvpn&z;yb$IqGIh}J< zIps)x_uNu*lQYdNrDI*Z)ZCjWYH!S$oNDvp$+Ol@b=wO5&{BED{8qt&OkQ!x`G3LC zTYf8-0tLfm(_$i28kp?UoZ_2HNq_lL0+>qMxzlO8g0!n2T`Yd5db{(JjsGtX&2HjE z&yJ~hE1Awb@m_NOzMn7G^5NXAObfO=nZKJFbuSgW=tB`Sr66k{2U(Y1SMlP6XzqI0 zY9wj^Gda;*1GvJ$&Rt6`5X+Y>DWkWb1Thf{*bEEEC_TZ)TD1lNG?i!I3=YOP zHQ$p029I>uX2nPnt%bHii`isU4!m`_2j1>LJiulC#3O~Q`o(uYt$hBr`Uif9-NMr4 z|4NVik@`@T*&o9`pOckirCO3svKn-RWmz#+I*!tPo9P^D!6(SEim4py#Im&y9a_`f z(%L%y(4q0=%jBs>Y^-ZO`@qjO%s0s&)sv>7@yiZ9STf#SCp-FEVXJ$r&bH7&GhAEUUOcaO4`7;DTaTdi+VRS`MTJ< z$))$btX7R_mFQd@J1?JjCFg2l{9!p)Nqd@{t0j|j6*D>4#m$%1z^AqO4Va2oxws8e zjU~RrddNj~2RcM=Vb0HH^@-;H1kx%O*C3sZb$i5g0#Gb*J|dn`9=f(bdyuEDD{>M z=d#}b7)i6yPW9Yq(J4MVNnW&DFJ_L6BHp=0yLK@D#AsXo7ScMx6Wn9uJFt6xbU117 zU|v&*1$Lv22*rQ30cTnd-WQov?xx4u>?U#Q9vku0dyrnAdJD?D8>Qb&qoee7;Klj9 zAr{Yt0ygT!m1C`XdrNn^S^?2kj)Wb+jC)M3Er{Lo>TCB@`|#^ZWe)z-i60%gJW}M3 zUaol_w>_^JertFEe_ocqU?4?0wf}#C6G;r#SA^!j;lXruq*uA+>k^BzoOyAU%;GGc zba9QT#j#+o)R|hGmJ{WJQsot2{Nj~mh4_#X^DUfv@g}d&=iPKMcT_&g(RlCmbN2K2 zZhl`zCNEQavqJPv1CoOY<NQbkRXGcje0bI)X)OB{pnS%)$^^N&Mv4rjm;n-`so zU^Gwuitk`&R@x_dOwS}0FYpd_`lOyY!TSzz27DVkBd$qS>ZvcM9uS|V@iwS5-sT!U*Tjf` z9wR@<`izO5^k+j&F`tvHBXh0e5l%H531<9V=(dcJi+=?DXYnJ@%3-{uY)O&ryNU2+V4_l**EP8Ko zBH&GIjm5~76#YI*97GmWxwh1lvfiq^r3!g}<8nqVUAq+gmb1{u9+yb@`yl47gU+pk zxqry!2Ck&$?xu6Y&M33zZ%yJfTa})iGGWi@CRf&e@>aZ-?PJc`yR+8rKJ)D9?R}Iz zR<nZoy@~9`7_}uvy(d)-`|ORuWS>i-Sc`}e z@JXOujU3T%U`dDpVSV_Bp$917a)r9r#H?g-IlXZ3Djtjn3EfY_bb zmF`s911&gR)L2kZ`|Ys%{He`{#rg_dR%4&vGC6M_HuiU4>3!sD7=P_6Mc2$7k&?(3lvC+hsQ@ z-KXe%SIGC8z=+s&t-)5Es0A30clQYv4Tm{*Pq%!*uEZ{U(NzZxhLCm79&6ZOICK^6 zx!&Xzv|QZ{jq;zdy%C}R3!ZHPkpKVyc-muNWME)mW^kM+WjQ;Z-{vcWJo5{n2*U-( z2~05h|Ihzg%)6QA0l6FuU{L@}#0)+Fc-muNWME)k^j{1}zWo35|6k_a3_uYS@E8EI zw+KD}c-n1~O-NK>6o%jPT?%R#Xi9S-S($SgBN=ogN+L#3YBP&KL=xIGiwL1b5Jl)t zq84FANHK)%T)7B}B5KU}Q94$+> zSrzM7cet(C-fCZX0aYE;19e+fhahK*s)U-R^nr7Os-k_ipq8*jc^g*2KI;Hy@*%5s z`@#6DI_$OD>^u9vRq*r4-I_){4orlS;%JBB@SZs5REdo7JU%0EjQLLH&sEV9`H^e5 z%6c#B?dY3C<4{iZBx@(gdz>5|Yaq-i7roT>Fsr6;L%DEW`)y38JZH3ke>w4L*26G_ ze;eaT;+#dZ_wpQ0#SPJjYtm?yud8dQ?nl^_nO3-hgNxyayv`4^p(WvP=*9AwY(@Wg7MW7jl|O z)O)ZV??Dgo2EpsS0Z|e49%R>g&_MN-U-Y0123zS-rcwX@@VDjaJy;Jtuy@=+qXlxM z=1ES?x(ws?ivQsr{b*<}|Hdb{n{pnWK#6xiAO2FKCyUAdQ1bWf*mTM@IEv>Z9rn9+ zliq{J<-NwyHsx0Vu!5%{c-muNV9ienom6Q=`b9_Jj+BV1`* zlepG!-Qwos*5Pj9KF0lvM~5eeXB{seuO4p7V@Q3mD z@Lv-U60j4<5tt;%AgCtjAXp%{M(~u7h)|GFi_kWq55juF9l|SwuZXaSB#EpOc_gYJ znj_jKdQOZ52;Ib{h`kce5#J(yLn2I~MdE{`g=CauiR2^6KT<|gbyCNqWu%Ry6Qt{; z4@m!zF_Q_Cxg{GWrzF=RcS&AKK283Tf}X-0g(r$ZihYWwlsJ@Pl$w-QC|y$KQT9^a zqWne0Or=WYnyQ|vkLoJbCu(wPF>0&S-l!|6U(-;~NYPlOnWcG4%S5Y6n@ih8yFq)O zj)sn(PKnMuomaYQx=-|!^pfXE%*Lz^06vb1X#fBK00961 z0OJ5j00jU500002044x70CNBU0Gt z<2Y#~pi*jO=Fa^&_nhzi-dkhLt%*Bk!tlT1^Ag_DzKoW%ub7Wq`zpQf(dfjL>-2Tg z%xZgrW__ydOEmIC+m{RNEA+GNcg&I5)b>?c@sqZ%nLFlZZC|JMAKIS0^^N&k+wYoB zZV$A5!#ueCgSOu@-`)O8+wYsZQ{QU)19M~QM{WONZcf>~el-uKev|g^m(7QFuD#xl z2SGjPX0ez0-P9X~jlkQEla3#G&w^Gz@)Pecs5Rqm_S&qP$YdrkiRl_2Ezf*uD&{r* zzQRaqLKD-tXBMdU0sZF9irF=L)WcuJ-Zst5OdazFG(L~9ig`%S71NiuojO-A<>*g6fH|Tw6mdzy1YSSJm&6j6J z-vJ~^OoQGDC`-34>a##lx1UH?$ate z(gcqgT0YGPY5W+xFr^;7dH)9XWtjrgr=FNb0+lkO`911sQ9n~tm#(-e}7uC{wrNyFT(5b7J4 z8PSZG^qm4{){)o|ug__>U=JN|oSc6<6QP&@E7oHJcHRXo zmSh0xeZ?VEEoP9=YEssx@TUa4r8+B6DTG!HzSLHm;&0|Qmpr#i50bpXN|ygD8@KWc z`p2%7sutN}mZ4$Zt*sFx$B)d6s;XHA`w<6>Q{l&WfLfc*jIFA=}IKX!1HP7lzn)JnBl>XeYLBc`;twl%hx&T&U>5An^)aq))DoV(_)=FN+v^tPmqG_tLB8?1bVMn%^n$t4Jz@FNE z0A1S%lgBFSI~<=f=t*pjZLJ24G?aJ7VUqI3F6E1DLgYDG9_9CS%8dKwfU?Ot<+)|d zTczI?^>VAOcAlzrtt#*1@@Wee!?9cBN)YdIi~X!L-h(8JMe49!C5~f_Ivd!jk9d=4 z=1W|}*wCzCJx3&5BMN&Y$s|45dUB5M7xI``xsUi6!Ui(+Rhu1Cr+JwX6ttNlA_z}B z$M%cO4}nQeDFPpvMwMC3F)d`Cprp@KvjgkzNa=e{zMSs^SVnP|6&JTgbA_*wOV*1e zwn6n6HWDlPxsUeYof)FG&0~V?W3rqb^OR=YMdffn?Pu_>Q6y5-OP1e9V`L6ptm#s3 z2fSMi^Z0au^I|@dibL{^jmR@2v9t>uL$%8{QLHJ3HgnCWv`|G~=ts$F;Zkb9gRQCuqt|$L3YMfQY211ok=x>pR*62A&+{e&2M@4?J>-yA3U!2sNWyX_>JxR%34K_j?>Bj&XWoq{qb2pbt<)W+EeKAErig8E*e zvTp;=eU(e=p9WxKmy^3QM)=YwotX?PI0H+%B}1AewtF zGL)lEs`WotbrCXd(GK%!RdW0uss-^c>lKorc(?B%$uzPoOI3_$<5rH7avC*jr14NJ zg!Oj>n-n{cYP91jF{w5}>~ON)k_sf!jFQK@NP+UA0ikoi<#l-@Oix&vRrE{V9{4JrlR6ud*LZG;%mGK-^V$$Ni zuy8t^!x@I_uvBFTPSko_!&pk=&Kjw!oNJmNb7VSt7m&G|hS6$Ya{2gk#E#pw0jz9I z5o?{7>a7AJD>n_k=FV{^8##|!nzpvycYDmC^0YYZ;~d^c#gkyHr?-T$o^A45wensS zoMp?qPmdrpI~JQ9wee@88F&Ae;#MTk%BA7#IKs*M*wu`3#+Y?D%l&6oxOL66l1TJ6 zz}6Ik&I{b_?ws($J>ZgJEpsgOWURZMeimnJ4hwZ{UUy|Byo;y6^PxU_%K2^f%#&EL zHXJ>}oIi5BC`d1n#8)f)zkR%osMj;gq@TGl_twWWi*2Y2eh0Ym8d9I^UtT@L@2vT| zrCa+19vA2dq3ECMYZI;|FwLmLJdB&YSJiS{E^yZ^6Vl(zO zZS>x$@`jt%q27>gyIZk{?6Q1gCjX1_1U4a=pr`lt9;%UL%B2tKIgiXxMYX(0^J6{N z^z0erA2`UnZU6uPc-n2wN082U7zgmrkG0EMRiv`m(M)U%=4W`1t0V8UPF8?uL%`G zMHQu}BvqQqsz_H=hH9$IR6|X*)K*7b_0-ouLya`{g(jM6=1a}B&{8X3`C4mjwAD^~ z9dy)5XEAXJS-Qy9RgPTUbk{>qz4X>cUwQiJZ-9aF4Knz{r$Y_%jp0TZX_Rk`HpW=v zj5onVlT0?nRMSj1!%VY6iX%4L;ui<}W~)7RI_PMqWQUhF*&k9vn%%y4)vHk14~}`~ zAMYJ@!YwzPG}|0|&2`5-H{JHYUH9DgyZIh_=#f(j{B56So_MOzpZ>Dl0!0>DY>{F= zT4JdZrOK3BX1VYDVTDyzT5YX0E;?krbvD@Ojkhj2?I)K#_aamY>7i=K2-QOMkQr)( znxR&x9qNR-p`J6&y5MKmoO9lF+Z+$|{pw0+5E|N*TCiwkNnt##ytpV9iw#Jc7mJMM zeu>De$Zr3e_;3&zk4!{nMRtkIj_ewl6PX+NsV^^SJnD_d)8`izl$Xw%JFBcPxk}_G z&CX95SYEp1KiPJWFaQ7mc-mv|-obDpC}JZcV_)P3#+@7t91O_?8yQ%gHi6myK#5-Y$*? v21XW#j^vOCkdjCs*v!Mh$fLD`@qgd10n4z&Hn$hjz%2Y z=C^zBB&A@LM3lS5oQ@JkLJO)~SkX81zSG!?j?oMK#A*(A-Wt4=8)U*I4-ECD61&^$ zmCl<(x5&rJaC?327PAqvg~>MAFbu=EBSNPs;auaU8DCgDhB<7ueoz>?+Fnchb_f4V zi|H>+ahsT;GwIaiiLz7VA=uy3pPBm>1VY)3WJp3}Vsl%E`1y{fZT-C61(pgy5pl`m z2*qghP|*e(BQMIUGW*JlR?oPs_>n=7I@aUcK5Ym@aWE!0u_--FANOed1_CJ+f)xaZ zg5WSu4$FEx|Nr-_ea>x_hW#jlf&j~kD8YzktpOk5A$_(qt=U1aU>%Y}2%Y_@s6N5N z0FM8*bOx!+u%U90c+Kqz99+o-F0`dCZ(H9@{!Yv*77m9@MOlObq`O#}3P))^7IbS9lCZHZ|uT+!?U$e?H zkS;_L|5a{uJM`ow8G=Z2kZZ2yjIesyv&C-6ve5iUvwj zzQ*<#YS8&~+Skq~abVg15PgJ2^SQd}y2>*n$r_DGlATy`vWetm*RUijq`+?C;OP7y7I0nep?<;(cJt`P3buopSw2Nk1qgym$6X`i}H#JkoEu9w(PrI zSvPm$yK~0;U;371$#&M9jyvWgJcAXD$)LglQ&w02TL4%KSZVER`AtXRv9UbDC5KWV z>{RnEbiI0xs^u|t`qx}uQkb2;celG20GEA;4s3`TMd1|M!Sk*y%R+i7uD3%l93SZm z@h}NfIM?7A!vZ>#Wy@{p!9Y_gJs<>`qqBG7`&lJhvroh2==+5dO2|wmjPQgJLKxxm z<@Npp!zJS&zWlTYn`-tWbN2rsXa}fW!wN_sK*%CtCX9M_{|!O_Uf+iA1Mv1!?*`!g zy%$?;Q4?qkuyi6HL5MTID_hlcb!<9*VtOv{wy&8#6XaXhQ2xK=Xsj_y6DY8ci_LxJ zvZZOG2>*px zdsg{v^Lyg=pZ~+(4d~Re*IfT4{)2!_LX5XXKuXb@90TGke@8^S_Oh&Yj`q!*< zIbaKHg>A4McECY61c%`W+yb}4Z8rR$8Nqot=LM_<4+zlY>zxik?11gHo3esLlhc8} z6_T%mspyY2yRg>|d-R*OdL~naa!jR%=KcwXL{rD9Zo0_M{6d=l7K>n<{(-4z@R7hw zt|?+M0BQ9bAE$xm*rE#x9_yb4OOr~w_v|gHh^RYbV0dqOH@5=<|8l5NxalXvnl!(J zywwoeKj0$Ebr8P&-EoOuS>K%ED7_(M%QmdnOF@m9oEd4Vx!LS223bLQYk~8O zQXkJw7a1?(Cnx=IZLI@r2lV@KrWh9F<^)?;Y99C41h9X)qWrs@+hmX!WM-BVsaw_< zM?yj7eOfW#tu-qfyCVrSoU*=%F_$2V1go%$D!rbhc_5{=?FWm z$y%cO$uogBrLV>;0V5&ba-;Y%9W>g%w$ya40PO()W|O9vz;hb{9%@xt#>z@g92b}Y zU&6UnG+bC3h*nUQ&jXgxkdZEQ&v4g;DDAn7aU7ocG36QT%{02w6yX7<9Zf$vhNmWv zFYTZkP_n>)3#5rYCbIE;$@x%aDh)1|lXY}zlJDMAs1#9W!a-@|1iHp~o#lRe$ks%y zf}y$-oQ^C8u2XEy*ZcPB%QHtu2Mr{E60_yiXKu9TioH!h`x1VmOjeNnIIw5irms0l;sC-&hX4k#q{L@7nhiBE{ZWjpXJ&Ka$AePhyiiM z88TX#Mu7=7juOY=hmH*vkEhBQr0|OgB}w`~J8!TW>bZDKp61YdU&Y%f5=S^c`_<#K zMpI$t9jQiaD{YTImrz{DK$DF*+pF3wb);Q&=4`u$N*zbrdTTc~T-f46#;RVcdhv(~ z5WFg9D|{)c!sf|`XzAZky&}Eo7;XA)VB|kqljq2*vsf>d_|)bn+DB}Ju3BX|x%rCc)Acx?jrGw}k>NGMa%Wi&O}!gddo&@5_SxB-FF zw5fFtr4{t!ts+0p7Gr39mSm0RgLm~`sz%JzvI@;{d-0qjv=P9Au zg_RypA2SW$6BmGHzEcc8M&~KmEp&}gx<(vtL@c#&`I(rN5N$TRA1d*h-J2*`H%z;6 zM`@{7k!G=uA*JQHxPBS^I{M&T1M#pUW6b7|vKFnCioHQaWVDLUSVh2+3G& z*3~Z80>B%21g*W&o`5%I9yeRz>gSdlqO?|S%JT*$4ZRDNQ$7= zi~i)8-LD#B&|wSUgUdv+&=AfQn<1{pQTQypY)Ic4c^Pc1m*#?KqX<|10w~HoBp%|gytOxfwd3MLTAir>92NcWx^c;xDJyjptGGx;K7=dxwKLt_3!tayOTX#I77Yih3G)z&!P#+OAP*s*0pTJL z$S4CUQfNFYkGL5)U&kg`s(79^yMq=f)awz!@bM~8T|{w+CG#tsMl^y$DPI$iXdPCoEK@kF^#}V24Ght7?|S9P_^ho>`H8 zU8lMc&yqCbkPS~9xI-VK^Ky3o*y3vWdCA(mU`tn!RL8ie-e&GgKub=TFalJ7juQ5h zq_-7!cWLYzJuaJI4?Ar{OVUMNkj_M^j)O4@&|L+Mp)w?s9t}&?)H#mp%$ye=Al5P@ zRz!>I#2@@Ii`D&&Fjh+3(ugU&p%^PuD7)zRS zvgY&+6!%VjyV2w`%{EXi>SiVd<2APC#u~zFuHp!QrZ;XZrUb0eo2C}+QxhjW16LtK-P?N3)eh2;KVkbsl?ciRD0TDSUp30s!b@7OU|th?1M?2@ z{_}!KOem5HH_}u>CJ`O|(!E|4_T81Bl%*+ljSjCajv|%PY+-u|Nej^<8AG;Nh9;23 z4klzxKTKhu3-2BxM8ZW;u^~jqkC~BiaFbsUOC{#SmrX2}n445ShJwygsE9~0A0;?S zsZEHue!oNuV$)-&;!AvapAJYTowU+gr1hP&K_3tOoiJz{%=RvJ$T4Cky4Xo)u$;wl z9>)cwi^MJsBat=g@;t#>FQf6jt&eC2KDIo;QUUW0aX;ra2a= zbzBnR%;!@0`&V9jlB_*7;lri73B-FjAMp5aodZtfH?S0BOqk1GrEA25aA-s%3uodIF#N zVl^OO2(+&&82*_=2bSJ0ZV|um1%) z(7^=+h=l_UAnaZ96DV{CwyRE#5ogzfg|m&=-lY}Dn7b!ZjJOd) z040Nnzx(VQk})ux`_pJegX3Y3TpJKj6UyP$V7d{TGA?$-W-u;8?gB}mO-`+H#;7d1 z8E*Rfr|R#WUmi~*>cv20PYZx)ujdmhr9>v6!hFGKPAMrh zrKkL|BHiXs(~_SuVayo_+X%plqaR|MMNwA>f^uuDs!SAZxX)GA1LEOMsbp6 zc~Mri(#AGzH-0%tR4zIXgT>(qL=rilLZ#6eOctBN^ftnC{b9Nsdrb^Fd8yLRv0vv2>w!-tL>J9_Hm=`%3LX0Lg* zaC4(`Zb4;XZ1 z4ju$3zw}_xxwxXI*X&T(f;S?%r#ws$lQ$%dul}Z$AR!NsU|SXIfkFYi7u?J ziWLc5pd!H4^B2K-#(XAI(K73U3k9L^oam(iSxN?E#*36ZIFyG@Xd%Xv#@z@_0(1$a zyA#Mg1guKMI$m$JgXhH$2E;p8X?gRP*ht8=;^o(IG zeiT+5myg2)*TbwFIw3P49zwH5ohC|v2uKBQA?i>^0!42IxLO(FzbNdq3fc^H;7wP_ z9pGSU-cCJx&@7^B%%v6Q;i6)Vf(d2l;Q{0l9KK15-t!U?+!L4$xlRusLcoul{t>nD zWxmtkF{`T(JPGCz;O$|o#BZ49;QsB0M~Jt3@$Er~(zx3`@okDwfggV)@vqLH7~oq1 z;=wdj&NJlZKpPVa#%`>f%Ry-9B#VojlRE>&uW)k-C)Y6bX<~v-s!k^nW#m+i^iER& z#5M#Gi0Kieo<0u5n5wXZ!w6r3MzAHo5|9UFQ2Z^JO#=_&LRV2m9TRg`n>)!PK?U)u z#{;zt^adp7fr#@#%mpCfLXdI;ka0thb0bi2<5anYT+%-xUuIFl2gzfYx;h7>hCj*PwVd5VwV#(F&C{0i*TBlY7jNCgQba<(c(S z)n7!qGU2g^e<|8v&Oz&Yl&$d-NSW}AKlHeY&w>?Gq`>^3K~^A+N`Un56FeQ8_N@BX zJytvcEH|S`6|+Emd6t(@Ale)2o}gqVh-XPV1fya#>AYG^0FBCKUw1u|X%@v(mU{z9 z=!5ELeRahX0ze9(k0jm`CRZ;yKatkEd}>1DG_||DAS56dqM{)$wC}~A*lm_-uFD9s z@)UvzlIk>w&!mkr1l!1gERgl!9vJhvfwP>)nHWp+CFjniEV{dx1QBdpZ`5)($6)$O zN@$qn$_CUTX?`=IX?ZG}0Of|6VM+jc3Ga4atIDyGCyaebj6)0Hu=Qu2@GuinLbNmv zE(q6@91%r`7li4C+}LW}TyrMg%BqIQZ-uTWYhDkjyp$?xtxzkddgGqR(xa4%oX6a< z^oerJN5Rwz?5f85QR}I#rn+R+V+%XW?mE$kl`lW(7!YC@ZDT;Fb%kO@K^3jwoC1O^ zCiB>}OB5_ttl6e@we}3xb9d}oC0iQQ@M%Yj3nf+3(|fx!N8<^y3omdAfn z4n%$QO@KBwQJ0Vdqrs$DIHEim2(T$17}!+6dr&zTAx}FHVAD4k*bKk`W)4QmvknB< z>i$HV{Er6E zdbG!T4#V<+p}%Y&e;7d*dkas7qh`>>QHmJ_vE{?IWmSka3{CO11trc3s3Cfucu@i= zJdrrbvNqnb%R?w~Khb6w2fXYK%|%;?A(V;e@M4ZQ_KOIT_N}tPpTLAW!fc3yK_z!j zFPG+Z8Q$GO6X|WJGyW^nY;7961?nJ=jnj2t>aS*8R{fyRva{)6wp1TpZZ?mF z`+6(%$EMG(xHQA=y5R=+nwgPH4U__MIIT4Tn!K`1{HcsRR^H#I~w zKtPjhEEiCP2U0aF)vU(l=Ij$rcxH7;90ziU_BxjGJm_3Q9JgYM<5Y-I{Ch_2F?Yli z1Sx)^#pj?*JKHsHXQ2zC_il^E6F?|fy2s}nM7Op!4mN%=KLF`%U+kGhhZ-4tDFR|2 zn2FCnzG&;m+drTAbp?7QJWqv^yV2f2fd77m_kD7mSznCl5kY$668z*<W8Z`uh$%7)O$nZ1Jt~-i&Pl0 zpNV!8U7nEVMPc$zKgyalJ$nM_cG2y;ymN0=ijxdlLDU)K(rP`v)WV|YN&AUBk zK_a)gy*Za!8^0K>HGh@x1n<@Jz?4grYnz%YOMgT{OWWZsBEyNpClcj!f}HXB+fK7D zV+uInc*XQ8L5tKR>09BVOW|*MvlnDUwCb#!AibVghDBHkwa+B5x?3ZwjLWbVmZHY6 zz&h_-fvF&H$c)V>QoDo8HqK*%m~_wV*QPngAcL9U17Df1Ve6+uLrqP5t@6ly^@u%B zBm`CXVX9WG!GZ-;FGO7=Mm#}u*&!NxH=d9l4*4zjuoSIp_7sr}3s@EDZ_c*@634AS zaKKOOh4-%(qqvnMyURvZ1m$t&$>MX6&`L%V9>EbS%CT4+t3=4v)D6Nlds#rtVgSz9 zT&h#CFP{ZT+_t;A>^5vPuh~0Skea1w5ttTZIt<|2ljU3@`N(;Hi|t`XyVZWASj=d+ zOTZho+T8DdD{wrj^a$m4L+HpejaaCBxReO_hIQB938E{A>~eO!jMlz?o9%2J9sI;O z>0_S+Yi3#JZ&pr>Z2$P8qnrJ+>Kf$bT0}956DD7X7;i;@og>EIbh79X&ieDYOXoOQ z-AN;&*IbmL2gCd+ZrUK*;rqbNVd$H;Q9h|AgLIl4A*fu<(&w7nwDAnhnYwa>qRUyf zOr$*aLsJWTdZ9GDs!Eb#x5;&R!W>i{TiZlBlT+_FG%#5U#9$zL`CbL&LkRiMO6Km; zep+`vHV2chNK(awpaR#BQUS`SRKM8Lw*AQVkRo?wcp>_cH{C(o&p_ewI}br&tZI-9t(%R3c=t8=EV8V9Cxj%fDMQr+rbCBxIWi+E z)ol~sF|i~qCom1l1naPiA)T|sZQ2QRt*tTi0j8-0#$ErnM8O!=>i31a?Kev73SFJv z+ByhuOWlsy{vP?7F9!`_e;b!3Q-q?N)$hnFw@6jY8Gru#T35TKlw>ri^e84`RxE4_ zkI^hUzUT$IbR$cRZh$#$WWDB);E`o5!k^|drB(Yt9pdiIC{JzFq}MrtRsl@+_;7vI znud{y9?1B7H~}_W;n3XuZ!|o$d9Uyxq`zEaLvz8RIMg+u_?u{IuQ|KabU-|smEtRi@9swq*azMHM!0LyYlu}~^)vj) zr5G|6B#Ke*jcNXDQD~SxGVHC=j{yY*_;|l?x{tr5V>jneD`Z^dixQEaZe4}6tc_EQ zqO{diEF5h6)*9kuG*F$a3K{$|A)~#J%D(kgwyQNq8YOQQV1ZaidV{`Nqf~?Pb^9;m zsgTL|rs@a@H3I`>qun)EMvm8AGM*Ec!(^Z1HPlK)EVRW+zrKs))kyH_m+w>q?0*HH*`3aToAww6r_a1@}=9SoMAA+ z8AFej6@df_DNlm+(5Rx687e?i#3gJA>Xo3JXiBtI%o0kYsgR*ed;U|ec zoh0>AoMVN2Dmj*YK^$Wmgz=qyPn3|ehEXwaN^8#(UYLZL>PuD$DADmd%LLHl_*W>Z z5=Ed_sBr=cAs8piS(f)Ialcj%NPS-?2|LKp-CbFye$vRYM5MYl7EvWXu&cFa01I~V z9Feb!WW-}9iOD{1)&MC0R|2aNbylG=C6T*tSUnl*cYuUCZN8OSqOI6v?HJA{&cg+t z3~HTI)qX|&XC4u2^JCvFvS*i%SN`os<)D24R~Li$#9pGG93P{IXdKSFJe?bB-kbuE z^w22|C@`unkr-f8YTAXAf8#+f6=0KX7UG+(2Nh`u0SHbLR+#vgYK?&f3UtaCS%4A8 zQWPY}IM6N9FoDCr^cx0Bd7^d{Ff0>jWxgA>jt5HSzVa7?vUlBI+KyRjoR6PDUnel& zvAxW}K5v~($gvCB1hU6%e{A}|HAq);WTJmA7(S_cl>V|0x=*1E5*G?=s34^?4R~;S zuNBYVWEw1L|I5B|+^|%DNy0sOp6K(+5qM-_NU#xNas_04SM{$dOtkIfsa*v%Nr1yy zS<}&Z>0Y`ebk=BV-PN@5Eb6@nD<&3eariGwdeva$N%NO5h#y z?ZDgS$vs}*PaVW(Z;6);w3iQ+LnLL1wW7vnk`he34Enr_{9EN>u_dv_sM(a{Nae|v z&4=C|S|5c;$JQhk=;Q&KSj|MFbg>ws0q6|!oF6agQU9Lnqc3f+&ks_Q**uL}8mNua z421i1h#=6CI_klkc*H~(Wj>-ivNH_v680Z}11Gnh_NR_l1mu%J>8EA@ogK0`pMwYC zU}JmmAPmW*s+PMGCr zH+K^6p04nkD!lQN^r!RIB)BJ@&cD40jY`C;H|jUOC)yy<5j?D_Dqk=#zp5)0hr}Ci zZaN<%$j1D`jJzI|3=K(}DbZM}O4Tf$QAwTlfIt;`_`5`lD$`fT6Eoxu#YHBUDGYEx zR?F#hCYOc932+Q5BcJhap80*mf>3)RBrJWFSZA@S_*AZtKB`)oBKh6qF4hTj%Gb^K zLr-BzJ8mf>>IXpzx}e6cH#Iv-v`zX5QGC?6EI*$C@M-k@S<1mZIr(9rg$(%cf7i4U zD61K1V@kc#rZKiUt(Ml>(h{X@@NnM5Z{0FsFcsi)IZ{5Ajy(HI!mrx*y(2p-ozb6U z{ReDH&zN8EWi>}TqEH$77IFg1-M54y~J)inB z#7dA;Ib0c)fR~Z_Wn@Cdx5E4B?wV?isoiNQ@zj)ZC^d9J%hG}^zjmlNT#kyxWGOjp z4st+Cs)0jyJY?kdx~QoLp|qO2E)0Gu4k-7?MnFeoB!b7;8X_EMHv%Rf-cz4h04TJT` z`JTT=zr2keyO-g`YrPlu^xwF@Y2eD8zG8X3BrRVL@~l(euBn~X^z$ytJRxYK}v$Ke)Bg(q=K zUbrOL<@+0(*5A6Bc>7x4{OwMJP6a;}J7P*Cc1^BrZP~PGp>c^eN8$Z(+uaL;o9~<+ z{8J;}+P!&*zGX$zfUk1)S$fB7YdY@l?6&q6iv7YjHR?liYM>h z93HuIy?@>g%6sicJx?W{I?VYY5ITRE$p zji2^zSynyK*1%K03*25hd0oRyR(wrY{})Nxy7A>J$}Bqk(5i zqzRJ?>m8n@`E(FBmhuSrNStgENS;DK!={{43udE%yFj{#w9c{t#e*xp8 z0nz&aH$*%8w6@z-t=5;xBloH%j3c|dQ;MX9zg-%tU44Bh z>|bt5)xFWhJ(Z32#YVVU2}|x=BUdu>6ANy%ZOAt%g{hOtLUcvHtsSS2)*#91Tyx_O zO}eJ<6~sihcXIXeKEc?!HS2RG-PXpNV`sT1)0UURy~U#q`e)tPb?24dc?BtpD;cl6 zD>@ut$CM=7+w$Oo52uT&70TbC7}#HB^Q>8s<0=Dk)%r^7M*2UhxV zy9Pn1xUOekWrXt&b){#Ax()=Ync87#+fn|jCbTxB35(O=!WWmV|LoUqoi*Uv%GbXR zd@R&e*7sc=SUR~a+K={uha#dnoi1N?r*LXVJJ^r-K&*&dkd8wOmdWOS_)NC81bNq8 z;Wa|DpPaVKQFhS!QNL``B^F`X!1gIvTERhf&ww7yR*)6%UpaEs|1qjn6pXz#`#E&-h9V1MqW+y*8hdtbYb+Snr)dBvugPQec*@H6-x&+Pf|aAdUg+7q9^1LP^O`fct-9NB zy?%PFD^-ab02rHplKgax3t(@37I5tUDIb5~vi7Ch#E_Ke5E{Z=ysfmZbWd_>T&w`YPyamr99K;o_}WmAl$gX{p~i zYUeZbMmh4{EyWb)p#(imM|~0>APB<=?B4gcAB}(U?yJlI^mZS$DXEAgpH0|~5b`b> z_!qg?g=vnY6gX?^Bj3ME>cF5IJl?!Vg;oMm!#XMSHY`S0C6?3c>7B1`=;f#-``G&=X+=ff`ny}A2XiXi zi^2Nr^Kymo7dJ$o0u#OXPM)vRgSFYorLP<>GLB>QdN4fIZZm=^a}$eR#XiciKYT4O zGU!3}38}UiJy>}hOT9b3xxS^Q69jTjw)7W1r>^r#GwVurdOAU!HMi5#9H#61*S;ZS z)yJpFg@wzRMH@%4W&L&Nf@Qj=$vW_-Y_pWoRuz5UPY=9Em67Lun*4a{Niu*3hIgU! zGM-ZlpJmxUU!;1jnOh79d18B0qpPh|93VaN?SZ5=*XwO&m+$}q#`iKKK1&dH1mZ?R zdGDgVtkKl3#wl!)xsd1uqQa?>jpxvlo>`JrfbzE6(is z?W5oqUKu?lUOsEG64a=|7Mx82-Cw5`1Ulj!6(N1g>YQCe_7I1|Ar5G8#!Dqof`P#@ z+N<~59h}F>DTe^l`rKF|i<=*qO zsKb;BWPt)2G=Aq~VXiXG84YUAYk199X)P&+RE40OQTm8lEQBQ5RxfhoZaz6KYQnko z4qjN!2RXQ3e&}FV_o4mEmR^07IjfY)G&*Yy#`+o~vy=`~RgaTc3V_X$ z$yqu@;g@0ULiS=IHAT5zbpeZ{CACa@rdyI|Gg69-LQnMhcI`<#hrj#kE9RG&tp;7KrRJYm=M*fQ*^~x#IU@w0+8A(w|^g0bP8)P`r^Y5YNeO7?K|fWd=lSX5}VY$ z{s2(JQIN&y&R(gB6TRheH)CpnjXkmYQE9Vm)0JfqIkV-#=|1|mW zJe&W|OOAGjGxf81$-U^(QIi&y6o~=dP+G4G7D3l9HFUa^OA;W?4U}tsunh9y)iVpi zjL(E{Q7tvcxETM|HIZLZyVIIbX%5~)p!gs>@VuQy_!eNu^4j*1G zBfSX#o}Cq|X3Z#XC9q^JD3J)xIN4M@)hINjUl77LT3Z?>60-F0+3PtFx%cwg5$k%) z9z`@)?msZ7$DU5mb%MP27=6TdnY1dczS`_Cm5jDVJX#l-p+@2)-4ihAS{{(^_aA#n zgOX?Ye!OZ@QP6)%JDV|FgckhsNt=if&5%qfQw+IX;8p9+CJ=s?#d;=-9vrXnPcdt< zCkAnV@2EyJIq-USFy&BQ>MDE4xsaOsAy32%g&Yb=EJUOr{ST*E-eWrWDp553-8l<9 zVcbdd#rS|Qn)Z{Znyz_{bpM95E!EUo!u77{XG@YlIPtJbemDKQEsNdKm)6}C-F-}f zx@!;gY0(7=cyTkOysmmn;#QSY{708dV;b>p9&q zv#zC1t}41}SMecwZZ%qQ!NO0V-6Fd1nHVc&OIj&!P>XC7`!cpMD!N%U8mK}`V5>@L zXi!-B-qsCy9?xRu)wU@f&#F1xUn%eEcQ0(+U5{)s1Slq0RBD^uXbuY;uKX8o{hN{~ z(2arocYJhNH}^dMf5x3yHYk8s%^2_5^JyW^UTiZFMX@^V-86Mp+-}8gW-;ROFB{7I zX6?{lT6}^Ak(hep??PLAqBiY7FybTm@4TxW;gLulojqBBfND0GO-0?!21N@EY7=@A z2A@2S4jg76AhzNEEd_>FK8#qQ`OJU8(m6z{pCvyZlMO>L^y4g=+LsG(-#z%$=otwfn*kGbRrzErY=K^O6J|DYmtYkg4g_rH&?Z|6u}l zXhZ5%hU;|`@ziB_5?!3B{~qVUWenkF8@{_CK$kns|vdKXG>IV*DPRL)4>f9o+qL3X?!pR`z17 zM~J-;PSY7b9UA3au4K~-b|i230yy0Ck-qy(p>k*ZSZ8p(8- zN#CE&v)(AkrpngQ0KL8&TTk@{ZYEv69WXOO^8TQfc6y#hm0(;}TpVg*@%fjO<#<)+ z=SvB+Og!tigvQSE~Q@L*oh^qtGLdzUv`j@(agf33D6fxd?u9Pq=Pum7>A&u4H7x8=?(hGGdt(>5ZHY%W9`UxdySk$Ez2l?YljZ!e z|CZKd zmPI=oSE1#(pHF|pKT!sCf|fQ@^3i~dN9R}&gjB)kry+#9=;<@?%Z0??DVG41bs=$> zllvfd+z)W$f|v_;62H-?zdl!{*2H;2Q0*CQs458bx%6Xju8y2FYpJE%+#enE4>zX4 z8k@9*_MU2p4bMVFNOG8%D4WMoRp3!YDdey{5|(gL!qR=VqhLBgI}*JodC}4tvWp8t z7k7hz6mV}uBcgwLdeaL5kWbxWvPdW%aJ~%Hfz*w{LE#XoA(|51Knjb5rn=VMZ>NI`z zVtxT`t4j0omOtF0pfuqy*viE=JLM70bm6vJfRj|fvs#MFoW9jQo=r9P^T9Hje4BM4 zOcZ$Sl~RvF8g$wrRrADUk)=r-Nx>N<@V>?*{3yE%t31;;597vZ$pqSjV3f@e;0q+q zfOz||GP>nKJmjxl#B{!M){s#=m$~OaZ~8Y{d^fB|JdZKE2hKcG*UC*3 zjx0~+Gg6*iOu_|V2Pg2gtxNbQD~#EgQS7oLxe8w*GJ*Es>#*>r7rRRrLtmO2^Kuh0 z;1M9Hx>0%SD6Q640N6C?m(sD%-R?d((CSEjUq`!WLyt!gxcfw9!i|2-d{I_@D(0At?AjS}vDq z0@%o=$~iw1PcG=h(w#X4ZX0Wgm}(K7jRS7*zhGX)oAx&%tPbP7>}nvD>B`eb?U@8C zToIqr>mCRW7KAtDADUGDaKFd5kdd&FSv{K^vp1A+H1cxM5^4twOF!eY+_JN z>Q1!Ccs&S|Eyl0Dr3;)0KS>o*aL5;(0h^n}?V=+)%R==@;P!%HL5#f|ERui^Q&~k7 zY+>89L-sr-Zv+36DXqwXi+A1^Fft`uu*>`vcsOF=VPRVqJ~Zl^8Mm9c76aJ^XKvS( z7w(<9@E-a^I9ysEftAa-TJB@zU5$3tx^KE~?-jZ;UfA1n$Wr0ubn>GQ9`CO&&rX}( z8fFYJ8ZQQ-HXCq-JQfwe6K<;;^hb*vcxslkQeLWwJZw;pY=@w>LTZ!iB_t0FIQ0i% zw7?XJ;anudwH-e0vIsJ3Ou-0Ge{(FHklAXVX;G)COm0GBb3YGyrv$G)XxJ` zDi9&C_tK+ccPc&j3e9P+s>b#MF`{1RM{V;O|UULB$K>Fy?TU%(eaqzN8U3;J0+ z-Tt6BVL^rkP>{ymy$A0JO=&ZweTdZxmASz}P?GOO2tzo^Bk+L4@-)CR<=6P1{1Fx=G5 z1HvBQp8=(EAA9C1-Ffjgz^ABMU`MwYd?Pf`>?{;fhsF%YIyBY$$x!o*jD27cqh|-V zcQ;1K93?mi=he+xSbVsBFH5$J`o0|PkW?b5TVE||ck5oDqSafEuF8&|;Q=04LfC-s zke5`Qp#NbS(1KSL;N73_vHf{NB0?xUq5+y4eV>6jUfG2G9s>T}Hv)q;Knm0;x_WCH z+`O?VQOR?l>GAyQ=pOj!veY-`?VjY@rp%LQD5|gWb>#R4ymeexqEHpSQ4~ks8M@T2 z4nb8y!03tRS5al!8Zrx>aO~o}-R&K@>e?jn(27?D^I~T};>Et67JRyDRWr(B-bNM| zlxHlJU>6nL#nHeFdw$OGlw?5*CH+lLp&(URo%;zz_pH>ug-1--m_#7NNmGO2>D-e5 zSN-aRZ0S<8uepd}x4ItPjMH|C6mqAX7Z%6Hg($s=uAL)u>GThDDbvHkm%~aDM~H4s zc<5E6t+grd#{`cuK0+V4w7*5is3-s2AZxNR4~`O<#Xe=;NX|GtK?|bg(m*B!-jssC0o64*ZD_l7aspIK*r8>#S%w2a`7$~J7qy? z3bct=QCfb{9 zL!2o*{MTW2k$(!5bF0}6sop2SzXZ>$IHxUYc_1wGvT%*XUinPcYf%QZrkh_3)^=>r zHaB;O?2q-p?tNB(&ra&F->lktk$G31O;6jLR9A1Y$=Gm_GfWOa#slzGadoEHS@FXZsr6lZU4 z`u^tgn@>Oa@cHrj>hj|J?0DGk`mJH9k}~brZ#w=)I!QW}Cz|zh)0@vjE0N>&3(Hxc ze0omNwIp!|Jhr~L`9S!@rdw~Y;(o{vJi@*P!#irpA}x&sD)9!-+3N<;!v^%*fyd?3 zb`84;2J8Bit5$=jABq}m!Fo-E;ZYq0FBZaAK54(sBg_y+fs-$D{4*hTlEDss86G&P zq^2yerJe9*1WU5HSKv|n#v}!WYBSL~M%XDU%HsM*F1+YVPL4a?^@^d}yrM0NNSRoDPga&Twyl7xGUujv`Y=4Gqh&h~ zGtCE3q!MZLd~~_>pzw2dF3+^?=U>fuk+PX_V}vPxmJBaD7*8j zRWmZmG+cE($I7JwEduuIaDq~{(mOeFf_F9R@mUz;Cgtn$K9lOKrzz)7DML9e5tP7b z7M5EXTNRa{a_po@5QJ=S?N}8(`j>$P!hoeB9AEPil%|r(2v$oXs1(bH5Gj#Nbs3$5 zn{%uOv`o2)0dAd${ha_#Nkl__nXPA_zu9*{Q$vB8TE+uOIeA{#NI72Z=4pUrm>b%v zbwi%u5jKK3oJh@SS&PEIV+%~$TG}p+8nMtUkmaxJ9V0mD9-oTM zej%Q=Y*H6ox^*C#4djM(&0(5^Qd{o;BCkiw6^U~`QzU+Vj^vc7=(E9WiXiU0F)WWu zWpf2ql&9b4xhYJyYHSpx7gwG%SGA(a&Ry%b<|N#*mUU3r7fLTMdbH~$R=QvT+^@L_ zim+9SEOCNcnmy5{Nk#NGknz&3XqTuTN?8=ZDMra|c(asos>ZBXlyQ*-+0ub?#UPiS z*!mjf^Do$d$r*g!rGc1w;G-q(Y%E9cma@XGcyDsu$Mmgl4qmT3&y#}*$~UUB1L2rF?DQ8Za*>t7(_8j}lGVeMk|OYpBu>Wn1t zufleP6SU2y$wR-uh0X$g6rQVdosDhrQ02mPL`7G>?2iLFpPnwuoZzLITo9MXD598!Ds*VSkr^8!an2xs`pRlZ;U&fgzMa z68Vjei8HKq80(NKVkN+F>fcPBOT}>r6fRiO+P<261QVdGiQbQ#_(=raOfzeN}55Qw>fx$NTund5A1;= zA^k0^DDXQ}rlt;FxRpc`1kmGdfoW3PWGJ-yMs#oJ+=WhWBN6bd8=)+r|E_&BSo~N}MO!5n=A%#cs zg>-Gm6&iE2j9*23iH|e^+tU#~_gLyC9~1tb$-i2{Hlh}-mt9-#y4Y*tbL5PRxn3E) zyu6oN+!_#LxOhkiWeLVwT$8y$9j1(X4dZ=^%1!9-heeg{&SO1OJ)dgE9R=lT6}ZPl{Ky#=j@?O#2vqM00Edr=k4&HVszf|3pvN ze@@|_@6Eq2u5gcNO<_DM3k8<_RB>&3@29nFreRzbJ?L3_hd-EZd?u04#Fjp$YJ4We ze{wshqo$fSG`Zbhhgz~z<6eBf<*v6=p4#6*PHIA$kf>zy`J6ZLt*JTarwmkpfI{qF zHER{$_AB_#7vR?l6<$%b_?sB#^b7!%tt7;c7&1ZeXAbzc{5Q_df6H_#9DME3-ykZ2 zGhzjF4SinG^m_4{Ak-lNnIOD)3G*dq_UZM(GJ1ju?e>xRl&nn9#m$hfnCIJd<$^lD z_dESen`e~yjV^yPgpz$mpJEIYx7m}7 z1;`Ua8LSlQcHi@B>1zi?uSI6jw4SafIC3B1+$HJ`lCEG;moa9#GP=kLhW4??aeKhg z%q6SRbM5r4G>MB6KXKDR`c8@a0$c0=ITYz*lsp@7VQvF`{@}G=M_(B@;}@Fxg0AB^ zvY2ozAgZ0DJ_Xcm%qmW&+5FJx_Nn6CmC5w^k7nO=^gdu z2P`Z6iuo_;5msJv_Dkkd`bnmzqkBNDA6p;yL2(UqEBgcZ1zdtw`+z4vKahhEfIhAG zQVTQ)E?{TY!Jgt6aON=)`>Z&{1{m`V%BA!p038H;lY$12^g`oIU5kmP@kWvBx8ymN zKVY!dx4J(}iSd@N2r+dlN=yI^nIV7>;sO{j@yz&j2tQi-5}lK-0~*t_TmHnvH;1M+)dc`=vq=_ zg9AY;&~Z-i=)6G2v3uh;I5&3&%Z>zU0m}B9bPPBCD#Ipn} zN>-c|Cs3h!3qJ6uM-Fo72?MRswpSsdvCOQnlQ|1DN2E8n%YHmtM(^v zF1#kaX8cCY4?7_m@cYOO%5{JEeo zinTODf(~`NMV2Tf4Z2_l6-g_4pE?RM7y|+JDI%B!NlFsMor3Q(lUs@my9ugmjl2H zYIAN1CuUsUoZ02Wth{8B3^!+AyPiHWl((b~=B=MqGFaEhF-R$vD)Y#=s|!%`=tvEE zp-Dt3Qve!ihjT%04c;>u`G%sWPMlr-sL@1%DdXs!>NRDQ$BDu%j)^=8CQN{VZYyRA z`aRG=1PvqMhS+p%r&wVZPpeqka)F?*6FEmt(+NOm{YsWv#VYDMm}+-|m8K?^cM^Y@ zS!EPxxRvy=bkqhdYbaw@#2hu|!vqtegJG#Pt44A!c1WhMY_v7CWKz)h6ph6sj=RPoH4E>jJX z8=Z+I&G!#WkU+M(SHd9hgGdS1Qa4o?O|p*7E@hHp2B5QO$r|MTe1~|HWsL-ukVzI~ zW5ctVnHLJfG9W*&4N}V}b0vyK1Us>;Vwq4Ju@@p_g~(nW>X^^;`SFIO1WgG8ub)2m z=*a`H0s0dwzG|z;!m0ohsyiK}Yiu*~)@f)~egXwrB4HqUV&x^bm9Yt#s+G^c9^HF# zmOkv2YC;yn@(6e+77?{88EbrAPfS!Db4`ecaF7R6MT5XhD4?Ve* z1eOBOMkFr6&Z%=##RD>a9Q$Gw`d2h2vmVIVcZ^N$W6G(mlO@Z8-G*4KYtqT+cM!?f zDlRomiGFeQ8IKt^TiA%PuUsuhz^$AVWJkIr&~ua`2nL|Q4NEm@S^QgAmso5eaVgaq zPm5yPC}Hu;0R$)}tyHvDE%4u(u^ev9N5P<_NM?5Cjcnan$g7dN&3r=WcO#hnwknHb zpdltT7~!s)l&Y~6UcrC~*;Xvul2&XO%O8CqG}fIdNV&Kl#PN?TL%Z#mO%hK2KcsEl+~!y(^AmPjk5M za%CFFz=NsKA10r-cmhzy))^+Qnc2|r?`qlr7Mcu2r%#3!HG~j;9^{;#Q0MVb4}n!Q z85GOr*s3PX8J_rROYu2&ox)K{p$y592eehhTQ(YMg*Y#ZfXm23TkPyS;w59OMO}1$ zTk9_htj$(CESK;|>tLfVwU&)IM(eX18m{2ena9ce1eoEsw(jtg1}74t#-Jm3Np%rh z*5S`bz`Li-JXb$(-KYS!fbrdoYPa2ws<4JHEY>euWE$OXiNi#|z<;jqV=F;WJKkyB zvi4piA6lxnw;1U}u?sudeQX`te{R^*s|{w`58A9>Sh*KVUN6|?YKMDZKGMh{rN$B` zW7xJU4@3xoXnGV{df{2Q?klvM_7XK&p%_vC>War{@69qCpe$eVxCpRb@gv|wM#mNo zlGCDa`^?1D!sT9yXkoGEerWeA^;_2@EkSIyA6sgjrb2eF= znX+WdY0Q1DyX7lTs7SFArOK46Fg6Gn(Wc#5Yki@^GK=-w88qneN~={tM+{i1%VqCE z!hl_V^^4yO+v}$5_8DiqUK89l(G9oUcgJ1#d})%$9(ZU!g&(Z&?3Xw5p5klY>Q-s0 zX~5})L9@(Z{{1n}0`o1j$XBY=s8*|9ofC#MYS5(FH@qos!qE@2Irg)PvixsGfba6y|c-I4_q*_2KN&d zzV77Vgk_RX03VT~QNqFk`0zf0kLV-$$i93Z#YYvf`gut_4z|RHOqyEV>ayF)-Hs1C z2;x_cEcO#EaIu>OX^-K?v)~{?%U%c2|3RU}?t?%Zdsl|Q_;%nPi$vt_+a+{2ee6^0 z0)*KFj2&Qi;o!KVMO}}7P7v=Z_yiL;{Sl|gCa5&3jL&WA;8^l=y2Bh2af~O>|LwPl PrN01{BPHPXGwO`#%R7pr8Wxzk&ZbrUC%q{{*`; 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 dh{%}o=5WF?NX7>fM \ No newline at end of file diff --git a/publish/fonts/Novecentosanswide-UltraLight-webfont.ttf b/publish/fonts/Novecentosanswide-UltraLight-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..9ce9c7f99d47aa88905ee8c931e10aff278dfe9c GIT binary patch literal 55600 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 literal 0 HcmV?d00001 diff --git a/publish/fonts/Novecentosanswide-UltraLight-webfont.woff b/publish/fonts/Novecentosanswide-UltraLight-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..381650c98d2a6a0464d9e6d579b04c34e6631efb GIT binary patch literal 23476 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 literal 0 HcmV?d00001 diff --git a/publish/fonts/Novecentosanswide-UltraLight-webfont.woff2 b/publish/fonts/Novecentosanswide-UltraLight-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..7e659549bc11aa2c4968d6b22aab220fe25dd417 GIT binary patch literal 18716 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 LH=H;$pY{DTEzR!f literal 0 HcmV?d00001 diff --git a/publish/fonts/Work_Sans_200.eot b/publish/fonts/Work_Sans_200.eot new file mode 100644 index 0000000000000000000000000000000000000000..4052e4f94af5de71190ebe717c9c7e0645a3318d GIT binary patch literal 24290 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 literal 0 HcmV?d00001 diff --git a/publish/fonts/Work_Sans_200.svg b/publish/fonts/Work_Sans_200.svg new file mode 100644 index 0000000..0ffbd3a --- /dev/null +++ b/publish/fonts/Work_Sans_200.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/publish/fonts/Work_Sans_200.ttf b/publish/fonts/Work_Sans_200.ttf new file mode 100644 index 0000000000000000000000000000000000000000..68019e1ccdf13bd85696a6b5d957684ebcdd4fc2 GIT binary patch literal 49752 zcmb@v2YjSexj%l+`%X)rUNVzpCexD4q)ytV&ZhTd)3e#^CY#On%~oJxS(+4C6aiPM zu8N50Rqrf_0xGB%6;v)3kfI`ZE$9`l1<@<) z&vQ-~XN(!}pZw)PI`5$O%aZn_qCD?5hXtx+v7>t#OM7z1+~EVbugCi@$62>y@1@&6bM(?(jByuZi<+GabK5kLyEij-a1y^) z@5BwwyQ(hqcOSm{cJ4cJH22>si}Cv{fXBFZ|NPuB>*hBZ+uw%%jr-<~9+1AC{@?iS zLwon)+`a|tXDc=`cHIN$BYI%};Ugcs=dq76cKz#k{?-GB77mnqKX)hKEkpZ9nZzp4 z?ic%X%%>RV1H4bAQfXCMqd~7uwS`O`gU4_18Y=iL@dG^i z2kGRQy+i!1cskye1*p35HZ4nMp=d!WS4q4_%~j|`#pdwx{$81jSL$@SbX~f^V9;w) z?IFKM>*W#d4az~S%)cLhWK#~$aPy3u9oL!7*T4EI_3?M!SzQ%>1dxhe18!@g zm6=?l;ysKreh9;4hqPS7Bv~WPF_o&nSB;Sj$bISQ>H2g%dPJYP)a(%V)LSvZ;}lusg@8A zMr>;U=Jp{^=f}xEdX+3@Phx77q@Jg_V>pz#OHfN* zUY&v$Wl(`f15(rdPR!1tV7PCgnz04Y^sIICEc=I(D(<(C3INim5f3e%iH97Hb zda|=UbUc@!tM_OMb9|wYFQ-s*=D75*+nw!nyPffnLTk&|-LQ;ZEh|^B%N6WOOYbly z&w}Q&Knrcr^_Y51idr+5##1mGDSS?cnU|-SEcf@Oa;=t4fjrm%>(fIl=uLW)(SS#@ z1YH^o=^zQe#ZyIe>9K&*a0CrrS)Pqg#^ZP9^N;XH;@9$$_zzvi*Bp+w-5zyF~hiFsF)!;!5PoNiYuxY{ITENAp6$a0C81(L3hbP-(v*_&x zd&sRzwT4Uy1}DJbc#7yLDcWe&PZ3u021;+05sN{ zgmRqq1-t=|3L?U%@#c#e$CTT&G|d`|*-DdMW0M9>Y@NKmr~CTJXCltBFAN=RZ9O_P zbm|IM?rH}{YBrz-tdivCMjeYCcu*qx`+sMFIR`@q3!wQ3r2 z13+jrY+A--jrS%Y8|DO$#qT$0F;PB^R>4euAXpJPQ-Qa#$X#ko zHxy*&1^wkC$J@?@d3;)Jt;!3Q8?9!G(Vv%Fnxh*3@ch|>ki<+M#Z2p%frX=m0z?&r zt0M5kB!kLQQW#4yr0BCU&`|5sfPI-Vn}&!{@Qc?F;XnA)r#|}3Gq>G-`>hW?D4o3T z)cv1@#J%ogciwu(nNtj0fR{*Dqc06f8_1dD_jKl94bgRKE@?Q|N}QNhp4LI&_V=a` zu@k8Qii`}#G8`Fp8@e_bpd8W+245Tr=$U68 zQsCmPR$i}w7JtPW|1r%b(R?YOOJk+cFnBxN-#DwC&_xDaaQ%nyB%Hb+gEypu6g&=d3q*IV`Qz-DCwDmo`Vp9qQehb zokmM4Ml~grT?*If1T4^aTCLUyt&M-sIQrC7*Rr-*1;i_gvUzhA7^G+3eRvrV%)f#G z(lHQPLdPglkSBD^S{!vmTWMOLRk#dHor5Hzj1?q7V*^c@8R-c<1H{UP)TEkO1u2h0 z%e=4(PEs%x%U~ucAs3X8!V04S%r&GQpM(98oE~Lj@Iwli0{_VNFbN9q;`3^ndKZ6G zI!06f6_5bElVsH{$SN<3MjMR=Ndvn`1yxUqN)5R&2Vo^m)j>?Q+6<>lliyj>s+f(}A zygvTT_jL{`GHrA`DbzZ5R+c#ue6UgQK``nAd4NRtoJK7XHzt%0AX-iT9Cn-sM+BeJ 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 literal 0 HcmV?d00001 diff --git a/publish/fonts/Work_Sans_200.woff2 b/publish/fonts/Work_Sans_200.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..20c68a75c4268754b7d4b7135b61e5f3f390bc3b GIT binary patch literal 21128 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 literal 0 HcmV?d00001 diff --git a/publish/fonts/Work_Sans_300.eot b/publish/fonts/Work_Sans_300.eot new file mode 100644 index 0000000000000000000000000000000000000000..ace799382ae503d52310c1713cc8605577306443 GIT binary patch literal 24817 zcmagARa6{Y6D&Fd0}MX6ySuv$?k>TCySoJ+T!Op16Wk#{u)*CSSb_uymIMpA-+#~3 zc{|Q{*S9^q5PNs|Mq|MKV$#^)c>o; zwd+CutN%AB0q+3r055>^edBa0J)`8~{H5nXv#m0NekVFTmx$xz~RR zDZt=A#p^$(}=g@-dAFJ0<#@6~R_JA~(G0a(c>4roi`53AnEr;0>HdQoy; z(->1r-2KcXd}`vHvUgYLCmH%N6JJ`=sr3wWr1{u)FNA}8GU(%Uy<((0+q)M3WXW1( zZ+c6-1~^3E z-~HUIhq_Ty)Cda1I5@nb1T@patct1mv(n&Ir zjF(m2Y-wO&hf~plAz$tQd(U?J&U!IHiY*P!>Fi_0vFS3j-D_i(&|)R6^khrd*hN0x zGFs&1a4=Tu|iHDwwjKK@U$`Rqk|RsV&{KNfd%_YArWVJ3agdW!h_ zEo;E$bkvM%tzQ^EN@{#{4sT#eWl{m}>RhpmF6c*{Df|hfdq9Q)GLz*$T(qbLIH9gk zYIMc*n2FBhw-YW#)2+GNS{|hrQtiL+L$QjNJS|ULz#uM>H=nvdniZ{ij1VqF==MSym+azF)Q5P$bMP`BAAsPTQDP&0*CYpbAR??|n zJ*Y@Z$%-SoggB6S8fyex9fx6UzyyfCLQmVAx(*Lh8q9(S1c^sv(_GW&QQru%T6ipy zHq6x$Qs^Hb$ZGw4PXBB z?y2?~cEySc!#A5ZSHPQd{Ob;ar?2!-FY|*fYKuN*WRfXfPJw#ImhD_A>&0O*c(Tf9 zLQ807>Ba{K@1{(xjG1w5%=3^YIKo%pk^Ijkh-<(4ukT2sDH-y1F}KXqoH_q$=W@1+ zO!JvO3)8HH`n}p>g+iZXX=1?bcccYFhyf(!0Ov0 zNGM^9m1Byq-zSO#2c+1%`dm6n)H~Nn3QKPunO{WGkJHyf(zRC~;|^iG)95sFd-Ohq zW;g=b!Wj$gmrwR~x1jfp;-ziw*~8CQ=hma@6ah}Yr^ln61MG!5y7jeT3)vqVj76b# z;{_Ur@9WmcEl^}W`F4AFo(jml>3V%!3$RH)k1)-f7juX7qIY0I?MhL*P(~pvdwX6ByW@X7WA2GqEsQ#Y3Xg%Pq{@;m zwiPH#+|IZ>@z(70af_tt2Y*x|rqF%zZ%%H#>N{^1<&C)-^w!90;*QJli*WPNqI-b~ z>@0w+BMiX+m`DavTDWw1WVRE1ieOK{ILFULLxqaA_EJm3r17z^y1~z=-t%p1+FVv2 zbm^kpK0((5s9CRV9C_eQI;II2`W)+Gb|AE32Q_~-vcOxUsnbgGpM1))j3bh21mn0f zW(xR9ui;jy=;bb{>N)H+@2?qXjp2^bB>NotvRI z!Y3scc>05h-7HC4BIz*Puw!#`Hc{v8l$f zqqsX_esN%ZvF$ax`NY#QPMzLQQ&X`hAngI1UT#wrhoPN`+rNw(fPMFDRl#|_VJi7@~f}&BhWqXJW%VT>2m3f4uhlXQ>v4{E}$Qh}0 zom<)soH8PM1BHNi%l+4+yfCm(<*=P22)*d#mc&N`T*wS%Aj#n$X{cQ2srwJGQ_H2> zw$8-5Og;cy!nFXL!1edjF7efu1K}*e+TT7Wxzpa94w199RD41c(7$IYO$%_}kNJte zkOZF}Qq+u%1wDCCorgP^Sj$Wy8Y>}@Y=;^wBci){|JAEn(>lG*A4M8X*C?~$6Kp9U z6bho#YA8}(;#;S=-Tdi?BXYNZ)R4E=5Rg{Rn&SOJ#G|5YFJbySV3zbqNX4@zL1Jlz zGc+G|m2$zV*AYkN@p;0eeu^3)@j)-RX$jI>u6U;4`EH0HKTnefM zvjU*7atj7^RP7kCkw);Y!oNKZsF%^`g9J8@XX{>lOUxd$G;AtIX?1n!%WvHB9tF=m zLitqU9#2Ee8=dOL52cDIUp9X^4~q}*^52}AZ7JQJCGfRY8z_-5lUq_N{CNO2-rIEG zd`kI5EX@9*0fDO^s06#1hqi0GBil~J8_9_87bV1$Q;IBIu)Rd8iQbAVZd?lAuA>wn zA2=o#O{f&)8Oi^O2WGDKVLKw~3DZ@~i?F)37Bpdu6vIF_M*gzF7T|t5*;4w}+BC!k zq_V6Bex;bnB;ne^)k>m4kBz>$2qW*}hR#!u97vB(`v)yJnmFB9{2?Uz#ilNeHH;<8 zmX~@v?OlhSEZ(wjL_?LiU1>bXh+kaZv+ROuJ|MqmzLLWcq4gwmsYW>O;L0PGqD=8y z1j#^cL`)7%x<&zGL{fYf{ik>Tq(`!X>73a-T4eeu%ODExzod;`XugX{mKOxvHH5EO z5j-|_Vz0AIhNGAM1S5fmp*#c z>+LnrAzaAPY%t2W{D+b(h}vjLuT~Oc&7q~;DpOn`^#X7ezh<9$x=v;qZ_-!PH>aJr zLxE!SwZ}HfnN)Zh;-}doIkRoef^}oF68CW@X{D?9%x1|cD$Bl87TGqEqmQ`INg@3C?KMd>PjKJx?; zVxk4U(@OQenJz_Qt!pS-*1)r=CfrN=vA^9ZA^BmseFkY=qPbSBUiwE`R7Bk&- z?hkahnUq^nmYa-)RxCZkGa7G#W$iSf#qD^@!y;Kg-| zJxDfvwWh}h-j)q|c}J*5jkHwI)cMBglQu6 z6_k2nvdFoTDi1*`MLQI;6gD@u%wfn+h`?9T$eP#y1qigLhhuJyCZNU$;&7I7{G2Ml zryj~&DcLQLfaE7m6&o_qfJ;G4zpElWyOwIft@G_L`ta_`e|ulj)`wH5jQbGM(Iff3 zqgGtuh2dLK{NlmJ8q1STC=1Xt`^Dk+8n-6fRzZJnE%yw$7+L~yE$f_z{fj|_^0yocuM+YYq_Ald;SKUU-qm+p0Imo>53sv=`j$F}%aGvV-(5ygBu4unf z@=(Wp11)U7fK7{6kYcRu(>U&cWyu3lhSr)f#V2*R@4ikXv_~QHlcY8cr6WL5Y4mf; zV{T{^8t88=Lz1@TwKn5;>5-bdFdoNjr(D`;J(i?Fxvb_uLk}DMR;E`pob6>0u^NOT zBtHCPL85wFw{fGE1!3cxnE^8cH_#AJR4aQ%*ksyaB_O=$&7 zp`)Uu%mHmuFm4cu#8|k)Cike4du_;tl=8UP!V8jtA8$og(SucF^ko#?Vg8794LIin zdyl+j>*;y;OxoKyt?m0{q~^NsV-?KNtZntYX#E|eSA5!+E*}iUL5DwEeJ?`Q+kFo6 zq}Eq6T}x>ybK`1vl%90|n*%s&6R(wZ#8(d!r7KA=yGNc858C-MZnU9g+h`Y6Fx9%wsLXS0DHZ5Q!s!qZQC^grf1K22& zYTZ}Q(w7iAyphcauu3H|IbwuiU~pUB_(60UC~-^PwnQf&$beumKA2) zMH{K!GeuP%rUhAzal(}^NQtPb?Jgo1n5g!v!1x##pGqscGx=;7g16NUx^I7I_zf5|X5Ww{!v8(>J4|B9tt*QRF7HO7?ZG;UT*EsyHh5KxK%a9p~_;Ar&# zMp+}DWya{=c7G+mh$oYEC@K%C58xmt`d2e+huJUQn#C-GP5{5wohG$NVRhBlT<9HatMLQgmE#Dtltna9f z8GM$j0;V23)dT4p8`&Nd)8}0y=RqwvbF&cZz{#rttQdCUOlzOv&2UJt5*4|f5qeA~ zWVwOwlzQkzC&;i<#OO|IK7B8-)~V^>@bJ6ZJljox>Fsm*227bu-?0O~!|6>r5R1TH zGPNi3WdieFGY=S^{I8sCJWO*PZ7VmkZ5REfFyVqCr{2FwzyU`<>>gRVhinKJis*KR z`6E!=Fz8H5-?r9cm_s0Hb-{#^jql;X0@1&)=fY2cUcE=;7nn~!yv&_>ytb4wc_&AemWc8NgQA7GC@`H!gpp;MB}lmy1W~{* z3+u2Ij7_lmJVJXF5k4`aN1D#7!=0G~YILLS>L>~Pi7Zl(Bu@^fZuT`Nv|=`7g|cxn zJaNgw%09M4b5^M{1n@9P3b+3hmc3=M1Y$;LvF(K90^f-YR9;Mv?i*%iyw#RKUH;aD z=^VeI=h6$uZj~*thA=$n7#x&2Q7kf8_SfxsjpW4MwT#!><%zNpqUNfU*jXcw57T3p zu=?T#b|qzm2`+9&U#-ymb;|>hA(?%@c$>)X?W6iihTl|wNyU$AN}xVh95J!y72|v3 z9(G`%-dRFU@rU0WiU)u&?UkjMj@>s1>P&3vDx-=rmVQ|s#`0WRRS(u@wnET3u$6uocvoAxEsX4u;RuKqenwhv&Re!-L` za#(A_jOv|wBX&Y&n^+8sS?__XZ56P-sEbT_St-9u?1ly&D;)kHDZt0~RcLb%=l{0= zuR<>ECutOe=6A5PO#YR+=p(>{zK5~>%re;L2uJ+qT9dY^{z0DIZikFBN@M&n&$Mh7 z-N!c4eR zJ?mRI8h6+`|02jtOl$cpQO(Dg+7Qms-|yea0}2M5Xj}HN%u3nQXK%Th+<(8WXGvG- z&&Ac;b-E;4h+EBpze|@gX8}o*^o6Zvey@$2mIKf4W)+wkh%WWC_fvz)_w#QMe&E=i zm1>-B*Ht9x)xIrmt=X?|xG3?)jo9v&(P)U3dtuPBC4&myp`auo?~&% zny#5`vKfx3&{y4Lk5y|-Bxv=ARk4K{tCc}FmzjiGi5W|b*sd3dy#+L%8{|+IVKRlK zrQm$a?v9wJNCo#4&%uLxgv&ew7#>iF<)(i;QIHBN{xa-jnx_g>EXoo)YSC?b+SMq3 zcjmM;R` z%UHl$6d`eCTxV|Ft1z%vKLkEdkp5SeVobP+ZnHcx!!fus4qDU?olYZdtNaxULnt~W zM<-9a)pDu)2w4LC=@+)sx|XfMts5afl$0`gkcW+9D|Hi|nW6spjqlq=qjLJIj9_=+?3~t>eGp|^ z5BVI;$F0_c-U93bbwQE}{Pl5)e1BzU7lzaDAqo0wN~Z| z+ck>#nq1ET3`&DVoSELZ*DuppAT=VS&J3kCWl>2O@R%yg4Dk|#w|$tCzpGF<9c|ak z^kZ%^1o(AdeAJ2AJT|u1XTD}b35{R&V&_PWV$}rv+F9&l?3~k*#1)}4^FihKbkme} zQ-~r@1Ol-*2dS*<(ykbpjfyEcEP)?_b%t%NIh0I%=zRw3)O8x$Ews>4vF%)ywbR&F zW$6!`wVGTL)@dt=wboLpap9pYj}$ke&7C(!7AG5b4p4O-M9Qv~uG_CUV#_~pO`J^F zRmOL;XQ$1sWv|9PjYhD1>wm}F&tfOQ70Qh(>B1v=BdApkn%TISgC&jsAjNJ|5*ckf ziMwPw%?jF9uzj(ZkCsFD#z{bo)|2yXC+8cduE2Sidn;P(6WGY4n&dhtLWCX%=_q!f zj2l2()@14{szTb1QJq_w1r=ovX3C|2$$XevGA2 zusIt}csAu+AHX2-Ao*By*44`F9`uiZGRx}?D}`I$E$W(%G~R-+{I(wS=|IM_nefIe z#Ot14pD04_@6je(s?{-!Eb9G%1se|wtgy7a2zCpLAhiDE%ZLY}VF;(baG@JNzo^893)ZI%Z8N!T66nbQDk1(<_M*Q1TGQ^B?97EIbt1rDn5Zj#*sZ znWC+u7o=Svk;&N|yCzQG5*s2!&Cjd9rCKPrp`$JQp~Z4+Tu`9d)^?^rSLGh|j8tJ7 zx9O1&oFrW|O31_^D0QizmsOO*tP95i%#pL--HOr}&L{u%yd!d1rTy^>0L4SY08YwI zKRy}8HF*IEFq~3>2pu9C0=$;fJn2)`Xn-J@ssgd90^S6K$S%M@C@DF>bM=W9f9w=9w@d-{OWBnJpk2G;t01b#a= zs+=EO0{zEVR?DoTnSSpN=ZgEj_Qb4xP(a0@+mBBE*Wh-(0eA>(Vb7sW7*W71SL8oP zrk}>h6#$;;a;`_X6B)hB{Z0DLq%2-s)Z>&&^>ws60=IA-i~!$9AZfqN#?V6FWYe^U zZG2WU#OO+)Y=|!yXRE*bb{Y9*4#Hgp@SS@8GyoV3}9NhNi>JpWFePg!qN5U?SpdRerVL>bXqM_K& zjq^;!#@6{{#Qd>E+54+cQ&9MNzH(eyj$xnx+gxc4`^?d$xqxWmj{#1dlAphR$2fRP zpt0C`P*NldNEqGKIsuX!FSJW%J0|Vpv;cy6o3R(F;j2{fD5wbdu6M7FRXt|}RbkPb zuORwkPfp9u=1vhwA%Hhli!DpzH%DdAwTzLa_lF`hU=Pe5za6F#{~m`XVf@pfO+WZ7 ze{q`w0V+?6SqO1jL*$_}FRjeS1KK%Uu9|9SIe4@a;1l9L9q>Q|>UufZkEglb1fuc@ zQ{p}TN@LUK&aW3dz9dGaTDrQWV4w__%5aD7C@LU-gIwQ1t}q)jhUmGiv5I-ARl_^K zQX1F_Q?J@1fsT}sbWq)HMO`S3$=VVSeWsAxB=Kc`1LQ;k+Fr%?q=T9hzN6}O7Aa9$F z+!C)ET9flK(c|`D>wztYlFoRFC5V?<_+)7DL^!~Bv&V~cnf4xG1hfGk&PZ^+epM7y ztoMW{{qyYb<$MNYj5&B9sX6Q9=v_;*1L~IeoSj(yCQtqTF5>Fs5w=A9`$RYEUgqeh zgRy47XB&hV!%VsMk8nNSh*mij;(l%17@BEXP5BWykI zB^23l45=%f zQXEa@kvTHPC9M>&8`~zQ09>h;Tl#jdIR&zcDXcLkO|vu%pvB6Suy)-urcU)?{i^Q- z0Xy#tBz}Y(YAsNe`Ju#w$6t}|zz2C<>|Usu!P7(U`G{#tc&|9nXmG8>Z3~rKm%IWh z_i2U4gnpQQO!iZgL)hW-02gMhpiU>5)mGl9N9#S{Ik9A8ztm#s8do`8&%^Z>WRI*b z;a>n^R#=@0{c#zaWd6NeA)D68RSyDfUHv93c|ws$nFA`5`D2tiqsN=&_1^||w#`!& zjlGaqyNy*SA0OVqI_f$Z>Xhw50RB!n z+BQI+Sy^h#{gb0Yfp)ww8O)-!){tx1WkEjDnHsYExyq(NN!a9Fv5dX=%vW34sa>b* zAT1k3cIl%!8J9avTA4-UGPDnn*|%JqzY35%b({AclrLs__~lAwxJ3!l6~Qy98>uG}KQ~NU^1MiTwKt}kavplZAmt1S=DxpB^ zkgzb*)3KI6&sGYv=2Dq(y-vPT6MLLtC`WA(dqlY(=R~MpD?U=_FK6hjc+8PVKTebj zI8-(B>q*YPObO4lF}HCAdNQyF`kml+>RLqCQU~`s1WZo!{>-85d6HKSfc>4wl6ENW z(f0L5&mr?d(uWrJqz?uT z9D6sb2q(_}vqJ(y7g33i;?fCrTDchUQ=FqEC{j#u<9SRZlJxFH{`iM1lV7uM2Zc=d+Q7!A0z=-6a<%cNV^LiNq8VG2`#% zl$XSgo2Sn-YuuS6#5RFK57BXZLFaloL=&r;lGw{9Zm;P5&HSusoi32|EUc=a`g<5c zmfee(Q8z}(JAjk5+ejQ3K+5YBiJ>Qv8<_4j0DXm|b6LP$$^fR*%CI{};49|_2#7$c zjW@-WaIaQkKc)I_$aAvhoo|i1O}&rEk$$_B8u#i30Bc-)TbWz3CA|TjmzNhmhBL3> zE6iveoS$AdFBH%M{bC(K*>T|LF|IR!1EfonS%D!iVe@a9e)L)~unO~hti&iGi2%v! zPmAqil%1&Sk#0vN>#T9)uZGjj22%-oh)ID6GbmBSSQ2$=^F6#Aa27}6me>9oC7lFe`Tr;tGDq+&H!=+;4kFwX;Nks1b%CN5p$m-W!z$8f0;kDkAw^V zn)<1L_nTkP=rwk&sv5HEQg*;Q&QQ)UcrhC4Lrh*B?&kUbM$%npG?E6HK& zDiU1LI#AQV_)Y!=vo*}|>b>b#muK45<=Q<%;8!`EAV4ZoB7#GPlEwuHC4*`3(#Pn# zEe1ZhMe*{g!Lh|dcGBKdd^pL|#^dH8ft6^;&o4*t=XYH21pL22b{m_%)D zf6zUCq-jo)7ZYq5gG%K5vUk#UT^ZG_vIL`yI_f(B{{KFYu0|K*y6QW{cJRIbm#S|< z+ZU?gncLof--$qt(B3#B!Go_9&(-BBF?@PA;8xX~j{@iuqHvoZ>aNSSr>mw`yWw9M z6Jt7uGE5|C{IU7@7NUL26ON56_U*Ph4IJIyf!g^bq%w~bWiuOQ#FQ${TUqMja)UzL zP|GPFx221c232~N*g=T$+_p?ux2ad4!T-ofsErCqZ(B_9m({^;@|;-FEuGFEkR#p-dy3=REs~a&t<#vtC=a|@~`~QYku)seHeUC z!vzk;d1Vir_X+fIQ1=(ty{2YAlxy%@&tq5SJPGVOxXsm^Uiv24G8dUB>Fkt>ww}V{ z2$q>yV$5V$Zwv)neREaUCQA*bFRf=SQj%OO^O8O=`Q1)cMbabl=1tLIKT_My2%g%k zO>v(n&;?*+)`CB${vH)#<7ssWbd7Ubxue-pQ%3B{&8=W%YnE{t6ovG8bzDTDaZdd{ z>e_9wbF*6s`h*s57VSgVN8Xro!35TKt0#uMJhO zhX)%KrYb~IYgW~Oz^rGBP+Pu*@x{rPT}Bl@ww&ue899@dy|eI(H6^o%M0%gU4Abf- z-b=7$R_kiEJSajTa7!Rxh}SlOtJrq$5Z*RhhTlj#5_5%$Zz6-w43#`<9L~$N-+j5$Qu$euV3Q0KfW6+?3TBUI=%5LVyMAuRhIyu*#f=W z3qR5+HMaT|co863t#*g$5$qZ-0&{gr*XX5twSe%%(6+|HNSa)}sYY(+4}8~;n5h^V zO$62yNI%`p`sO;uSIEZtYgr7ZM{r6=kd&Y0 z2~hAdiMJ9jp((`Zx<&pHP3&(%24G!^Npy?bH+JG=iQhua&7?@FY?jfG=$x;n@fS|B zzLC}*+P}Ja80SeLb=+I0Kq?y?CrJisyXZrnw>1x5wr^K=)i zRY(wL5N!oqa#u}_#Hbov`|Z{4g40!DGnLJjVYzfJqQ`BdJ9#V@n7L&os^q{ zYjt*-O+Z}&#Y9J1OzdpP59~=bVmBta^2gOu)w|6@7BwQ9Zvo59`q52ty__;QETyQ3 z?7d~>ae6P7ZBB{<7_~qipa|VNjx0Y;szBmGCN?rC=fh`$^oo7dI2GVK@a9owB)cv= zA|(;)RoR2HV!B(I%rNA|i&)k?l(qEldQXPZm<2!KHke>0Fdl_k)Djt^w07eMA4I9; z{_}ACFYnGCUc53^xlH2Z^P*-dL;=NbHKJUaD6+d<;l^4RT{#~vnL8^kuAF#R=u_dW zkB$d?^jJ$uqTKEWx0W*J-)`s`J666j*OE8@+eY@=FKnJK3z4){t3LP8(f#tySF!c4 z@{0Fc=$V6^5k6qqa(9hQW+^sw;75C4QYG7xa^8LdZZ+K@z7S@|*` zU3`5?Z*ME;2Qe$-2#Vv#-weFzl6cKQ5YB4b;42_+-s<$R15G`%yIu}r*<5FNy8N&M zA3#h8^U4drl|BS2h_KTi`vna5wk z>WI?1fepH|D&GW6$Ye0D>`6tI=)W!J$K)l1MUoY89gA@fYD&IEJXj>KL_lYPso$Od zBA5T8!+w8QM)-;Eg1Wet$0@%%O=>&T_fT~7Y!?Zc199i%7sn+;KXd;3z%OQ+1pP+^ z;?+?y&a^k}PJ=cf4c4IES0UUmuO(X=?lXq|L z2=R9E{-S}SW(EXt^5E;y8*Aot6c)QG@3T06SGr1KL}R}HSS%b_r)m>M6GdDH_!pUF zW;hu9Ihr7#G7ih?Ry)3Kc&64`@iDnXp}GG)kNuJ_G9)wryOuYs1-kTDl+%LLj^U|R z)#x$vdNgnKPA35)C34{}3WaIHw9J#PkLz&D5%R}nB0mTHY`pj#o~g0Ym0}e9WBCus zhQX-N$bwx#M2AtLgyOWTl#MQ-W{NsVx6Az+t#e)PMt{5dKZ3YI`2*D=ZIq^LXW=z2 z7+=d$4si2mHn9bH6Jz*s#6K;^1Q@j~*vckJ`anoIxDNvAtmPusEaRXPf&z1po+CDb z8lBsT&Cl4;>7hT)a~h*R9e+1Vlza9HN}(=cJdl#Hd0pec&^TmpYAN4?CTAoWZl5vV z>l@Yxe=4nYgbPOrP4a#O29a6QgjS0kD9LQa47zVWv8q^Z4r2aI9Ict1XqqJAFt_t7BeBjiMjGxo&hO zcem_gPfQk*22wTgBgdlyYWqfOL?_4MT<5>d!GaKkgm` zqEfe&Myi_+TlS!dG-aiX9do;=3Hf1re>O(ebv^)YsxgqmR29dXb^ZL#Vai&vlv6yWMvdn6qEi9HKl+_AY1%LFp6PJeUvlk z1`no3*KuO1Y2_m3b`G&uJ4Hy8%6WzEbQ~bOkPP%CBQx#g*;qPTYj+@08j1Lub+p&P z-r#|jqL@mfh+s{|A{T{($-cfz)IRQ!*U|%orp0sbO_Db1*Bq?LLNaZRK4<4inN>dA zFDU%u-?IRAhOC?ghY$g+2VqK*%r2i6BhLD$gA#+!=vGWA{FCAN5c&#C=2AX|vFVYH z%-rRNm~!%;cQ1N_HECzXnb+HIYc6+^95|*i{nHst2?6o(*WlW@0@FY(Ni5d%l|{v_ za8tTgZT2*8RJ%zZn|5`%)i9pYXIJ-$L{?st`U&)3!53!4XSRZV&v8dX-bugoZ&|NS z<^~ZKD_&D2`8cG^Or+8KyY9TCYo&K`d%H&$`bl1~co}Y$ve|cX>AN(&JvZOa%|A)~ z^cY)QjEM0uHE>ik@5NKno~Iiy`i(lGY^-fh6p!jJlPa>%XFlpF8H6ZX%UP_bXJ0W| z2Csyo_Zl`N@G9Dxbo93iP@UtlOdX%?g&|m+{P}%Zs zF12$Itj2_99NZDPq-Mfu9{x z@>rC3e@LDgxWK>IkkYrAB&SiJ(!$2lD3uD0hck3y-#h%yI>Aj!!i1WF1S1kA$b_q} z8e24$OV#JT2$CIfKpj{s&K}&%)EF0fq`9pFl&Ht-J6|7fU1ngV#HD>l;5VI9w`=VakC}|{e z%Pbe&lM}U*L;sA2hWcRuRo@Xt@ZyzKwohI+af2IC+p&>KLKyDCb}VQt*rww$8q=XU z&vffF&kM8|$GO?HTM*FcRy>PRqDe4??h*96NOUK>O8mNEBe#&4h_BEum&S!d7+ui# z47PS}Dw#>Or*&GLo@yh8BFswucz?oW*lOTG;O+c4(R8n-k|sU-${a#Z4~*9_wQEvS z$ywDY(c3tr&r$H>&;bm}M%Ix_XVW+wWLxQxZ*PH+$JsOqj*sg(&`>4U1Y#WGR1Dk) zl(T9jKA-&hF0D?RKP!Voj8v~WdD{L25Rg>C@==v}QXh?szAFm+8{}f&075!khzi3@ zOg=O|vh_Xbi$&m~mq#-hu!}|+{u)z{X@V5ZZ_2{ztwcJtmUj723hr^RANM^$cUI8$cp6XKa7?RDGlrbk4u8!eV=xjj%t z*okIZpr*4n%~RBq`$Wlc=Qu?vL{ys35{~Y)7mBzo|NcG{*hJ3#DtAsngs(1hauU9u z%wiT2{-8qT0i=kAq9~oU*y0pX?ZDhRv;N>NhTjd()qiOgeX> zJ#V7eIyu2ImuW&8tSY5Aq)TJR_v45lhSG`aNRRM+lumfB>Wn~Ny08(R-E27@Iam_h zKXqoMm3`e>o0yr2N^u5Aw>;>T#cY|WXXGg4rp}C#SFQS9^hUWGf_ro)D-1yV-ip-h z*r#@?xOw;Mgm?gEEVW&T_LltROT2T6i=GTZ5i`3euO^+s3g@uODWifVyeyDEkuD7j z3qb{o9ubz5gZJR|ljd)N?h85-s=6^Q*hT7Z)*2PaEPa4PyDK4(!MMRncrRt&C{-Nr^a_SwSlm;-|AFult9hnLq}i?Cc8ih+UV&RY zq^Iud6;90IJ@`ou$pj9IAMIxGjqFBwgXGIBX3a+#ppD2%9;ewHYvOhJ-_6W=?c&(= z0m>&3|II zJH)(LekcoSM7|<;DraaOL0=-nI!}p zTGDWRrLHE&Cd3(=dFuJeW$SBUkrYEnNECf>O4vI6bwBf(@y2B4D97p*w_|?~>Ym9( z<)uYySrX=BE5?}HD77j0q-1<>J0^FLK6RSV>5nXICNZjmK5b+I6b;gxw znY5zPj_ZkULu_s6p&nrLHl`N8fmd;32N$*|?^#!^aM}BJ>}W9|_~OfVY8eFw*}RYb z8N6iGc>i%&v>Sfakc~d~V)4jDo)oGwUBrnMq|i@ z1)fx$oj2jme8lEtZ%6WWaiNz$&VuuaA0SV*ncd)ms-u=`wEIhMT)jq1dn0(d!-ZMJ zDAz9&{~S8WrgYR?p)(Ipq3KgtMA69MT?VFQx@@CMVrj(vLN2{ zl5K^~9nppuj}L#4rIQ%8ZMx=X+PQhZoa->Oytxb&l#Roa37k-3b}cVm+X7Rwt%U|V zbckS;dXO!495eShMxG?gtc{$HtVpzt|cM zVV!AOZ~PtBBZ(4vo&MAVWDbYc(H3@9h`8ZH696k*;LHi-I2rp}lFIiTmZ>MIx3NBM6(3xBjOX*(DPJ`*ov5$9pg#odV2z{XxV9ug zY?+r)6X^HD9Ueob)lr_J0JgFNK)(k}V&*uDz=1zheihYRd{OBxgh!(?kcekz;+HN0 z)InDv8EO_8d1V?&ytSPO({y(M2=r}M9>zkoTwuea*66bqk?XU%R3f#$K}qjXJ{rMq z2!nVq5nFKOs_1-2TLDODl(%cDmwQ8z`lAcuzh$rTx`!t0pYNrfobRP-|GD<7KsAf^QH5stQUS*s!OsTX8vP`eogGDKN%8-b3OwTxSu0BM4 zLJWQqST>M?1{rFCgOln9Z@p6rFg)Xou&59oM7sgH9O-_0#I`kjoVLfLOh`;jG&>+O=WXHz&Kb03SaGYt_oUCxVum74G#c< zY&6gqm$&O@-5lTW&q3)TnlgfR-V%@DLfgs9jn+QNf*Qh!=| z?Uj>p_*O?hOh?Q3?m&mJQ_BHgarb+=e#Srd$@`^U4xTD?5sIs09-d-0fTU$!BO{JI zRZdI4w@$gitge;V9mK1RZ@1qm7RCHutZe(MEDsDNcmAU|lfkEE@~?*h?E`fE358tF zm_GH+c9k}oll*{vuH7P`k*eP}tgIWO{G`ogO3N(VG68ZbIqV2Z^e-&Gk;mGgl4mJd zSB^e&82LP00{XccxUj@u^Q%8V8Xt5EhY*zpBnLo?p2Uyy*zj}f3g9vVQv z@cwjaoyLaU%}1Pfi|?(Yn8+ePX8c|ZaayU-k~tvULIH%Zut?Nu^=7)zcf1V-(U^WJXbJtOQIK3Qh|ur++`%2c1EVc z(yT_+RKWMwGu+l^6fzO;!+1f$o|>k7A02@**VrB}^CbSVj?PiOHpsKoS2w8(hXOMi zT*PlgC3hE#!%L|as@n%j^4m4{NA`~E!+g_F_V?F{5dmG`y*2xJSFnLpjZWtp6 zkI*Cg(-P?Ykr|Mf+srxsRBs;>BUbJR67}j752}8%8#`#Z;5$yHmT0oIV1ZAAJRVLO z`V0d}>Q4g{FcPP@cXQDNmzdt4zF59(E9)B}=S0{3h=!=4>*YDq{Vnqx0LDf=sJWs(@YS@YV>q z&>2L-UV-2$iWQj!m$Um$kBFrgu6)ls^>IAnd}GxMblvI#Qm37;DKbA%TV5ySQO=)e zcA7Qd&T%J1z@ocj`!v;q+A9TD0Y7DS%|Ez^yB%Lv8IcG)nz48ycwX&4{Bv8DU!KPs z`}h?QS(Tp5(CG*b-Gyq8SOg1qj2lEY8B-2ga;nk`ci8IyeWcMkEgw3+aNm4k(P`}% zN9=7-9w|?&@4-=;(Fo-JEjxw-FLohu!@VLk8c?}KKjt$)^YZqB($HE*>iArgOIl2d z3^`NF{4sJvEc<%zrlracyJP!78}ccpVPE6!^TUD-zItNd;u`u$hSiLf6l-!j3bDIW z?5a=ptBl^3F2XCzM*7nW6}4BbTU4Qfu+-S+m@tkg>@06xt#Mov3&Xr79_EPwvuUdcTfl^i31^F5-j`VLd!sq|WSNDj z>Hu!H%TVXR^p#c>bciU`7>#vR67maL_{CJu;ek@a4t$2nb6HGQ>A(}O@Y?B-A}LC! zF<6r{{A+NhD~2acbJiBc$M`ngg19o+1mbK3PO#;IG1UCkwZJqX{kbH80G{i&7}35E zi0XJ&l;EILWyAit{E>L=IyhazLTCmvjJsvZ4Ln#?U;8b*{iMB0vmY-Tx%UIYum0@w zIEBA^Onm&sHe8UwADP&JkscYrOW&2GuBs~>xlj%;)-ktPoMM~a&{J}Uk4iPQ5D=mM z#0O*(L&u2WD8gz&qqx6DATCbgWnc6zq`~_oSrK7xv{)s26AN2JcAg~|qi~{4;{88V z^Dy{yN!{^U#ABe52(GAVvT3G?GkL%E!-rgV&lKf*eipCE?mv2ebaCVJ{yhGEmsy(p zQHw#9i!Y8d{*D-E-}sZ7PXTaj_03NC?}?_otLS@W1bDql;~vdh9u(;N8wFBwIbswJ zz&zHj5nxm1;HGxl79a_Dw;u|h_*-y7(1t{GJRX7FF6(f(q$KGkC!s5IW$_n zG6MBO#6O~mf`7nnWE=XIy6ZdN4O0}%v_AYuyIna}izAaEoy=^0W>5?q7(~^4m-5YK zC3#3y-V`d5ou-nd(zpe_t1NSkfv>g1>i!zq%g$(p&zLqSl5bg5#5kYC zYbhVOGg=K2CETbc+K0hj9MC&3T`jaSjP(QYB_`?nhJc&qn1!3rKG8`6y+_Qg4*|IH z;V;3Q>#~+!#jJDfpq*;pFoo+U{dN<19{~{iU9e`|1HoFf^f&Hbs z_cMGw;X9J~s;e2qHmrjlbnM?|yS_>!OfGIzTA@YNtr310T{PR?t3Cz`LF`F2^cg&H@yBRj%vn^xZ@NKozDK}MU}z*+)=yt=b8Twq-gX` zUy^}=7B9zN-X1_)35v=fOku^}DZEZv=KZj0M3GcS^lp2L>qj(#iK0)@PV!!>bQ>Hm<7o}!0;5&IIjY=iheHiEyG5!? zAD3HX{N@XKRR2f+C~jjK3|B$K;=6lW_uQ$h&45h*D_0eL*)29`1z^ zQV5&~e{D&X5|6lko?<)vgQ)ATuNMeaYJ|WTpifoiBV-At7F$m`^=q>za{-rNV%n@E zT}d_+*q9^Tuu?e1;pB=6M?42`O1unN1&#M%j=8Texw6i*pn_4IH7M88;pDf|#JZ1$ zmk)nvK)8S>Zh@>m1_Tc6+aWpC!p>-aZ8#Z0k1wxA)La4-+$nB64J2t9@;>0?W?T4S zB6HSd!2=4%A^cwe0}OL>DqC$@Gm++b2cZ_4wF+zeW zkeHb*Ya4I)eRiZ>lpj+;VzR6+zPyMT6&-O(C0J=i{Xr;+NH`1NGD$-47VW>LzQO@t z*Wm%n6}c%l4vf*`xxIzZQ?L%r_3nf2k;xpQ!?^Krmw@{t<2kFg`$wH0leJoN$B1)P zR=s>%!yQ+Lbsd}>%eog+VA8FR zt0&?by<~Y9D-4A!8YmFPdn1~S$b=<^rOmcJ#1@zWuo}@KqAG!|f|Paxbe29dEg=s# zA`L|fF?M{xGB*M)j3~pFm>4k9E(ytI;CA}I4k!d9s*#1uL`Qm^Wo z@A$sT=_ffHvh9XKstS9rT?3eS00TUT@FM7B$+-=p%%fSL%k>#YS<4AXvY9i+l7r1) z2rJbiplyj1s4x2PB+91hhoAscIYXd|qXAvZxlFFZ7zH{eimL8BBZ>`Kn8yO$e4IHB z0@0F&uFPOwqKeKrw3lmpNgvIEClT8;VdumNrVElyW;V)}!ASnLofMl>79iS&x=e%2 zMr{W2vwsEAc!@mUT{7sg6=lM;blWvz2`5juDTrYlMG$##S-?$>;+^Jcc4At2GMzMK zBt5R+OUPqMLjSJgaP-ewG9uOl1rW_SQ({&-M;t!>Fds$M7)A?2R$x zBy31j;s@aiDT#qXZ8#K7M8Z%OP*F7jT$6n$wKpTx$p;*%J%&ks!1M?umNZB#{WBZ} z!yRs9Kk$zMIFfN7N=f#nG?m_YQGxOgqMgdT04&RE_Xm-XO5#Q78AKDQ_vD}Y2%Jw( zf%J~li~+MOXJf;)CZ4U7wtcp{Pet;doLA+jW4)X>IIOItp040f!9_He=!t1ypwDGZ^ZBK#q@^iw7G^U*d$-{#QE-)LNtkc(9U|6@2=rL_?P2GW4}HQnPLuNY__L5r70GUydJ3qxoe`|{#<>CUDp87f4|El-!3 z15;~>@Kq$3r6m0sDXhwHDka4WgxMjd!Hlsf$L~EHRe~)uNe0ooQJ=A+gFdn7_&nW7d4-K76 zg)I`h;0Q8F9WtcR>x2Lg0Sd}!hVX)7tHZFYSX59yIZSqg%3aTw9SM}n zY+_=WETK~ri16QsII<@s(Kyzlu$5n1G}LzfQNT)DXI|DN`eI$`OY_}T&GWAJ z1E8OOC@Is@mVx6Q5ooCxi8NsVk1L~4KDNJ+tK%Pap2f!Py0sy6)_mY#0636>T~C%p zYcCW7=c616wVZYo=ye_pvPrf={fj4xw}aW%ChKdkC^)s=G_AKW(a%jA0$tKLLC5Jv zhohAZDYM1+O^R1j=i^<)eL^d?=utCX_{Vt-{dzNE@qr%`}R53*TA4P+?k<&j8^ zlrzC4N*uku4LotfaByMNQbN&5;KoMlCBmF&d9P(V{Ck4q}1|C@ZpGCeR$rAO?9ad~c01OeYoJmQnp8;_C&=dt`04Z3YD- zmb8dks=H+Pswc5fz{gJy^L0Am=2mY7_ zGdXfDKy{Q#1Qwg~&ZnQ)I~ZwJQAuM3u(<=`f8Stk2CzVF%XA^#`2_rK}8e z9)_fgsgoU|l=R45-^&A?RGk7GU1NI&P|AftJmJ_)!7aG7K?C8?4pb zWmhpo@L{1LhGPkclQ!ViLtW>>vUCO=?PZ$kPV8u8v4c2|B93feOVf^>Ff4XPbcw_d zEV`RVBV~HBhu;YSw$Dj4%NyF6i(L!Tlvo@;=I&HTB!oV1q)|F?iDZHYqD{MFc5?|O zT8PMXb)mQ{P^HoqF}=($nQ~l*eRlQraI5)ICld z&y|3IRx2if#s-r{eGwGL7(N8F2)&g`3@m!VIk4Nnq$2wC2&z7 z0P`f#ZjjlmTU4BEYS@jVjg`v!EOtzmrzhkqOIs_3;8J%v@zik$jW#$Ng2u%QXNY!{ z+Tc=rW05l{8w7vyre2u@4TYAq<5UD&WJzJ%3{P{-soB_ID=2ZSm~T=_TJ6OH7`BYg zO2h>M69LkW!h&M?=e^&WD5J3p+CxCsR^4Dg6dUsv8|1 zPku0Q$^EwpJ1cr$mPF*c2k!`wseR4nk6E0I$`vcH+zTU-W@dCqYlC*G8Ve6X#e5&o zS|E}^nl+-*812`^;S~?u;Fsn@r0;ZX`J-?$rrL0hd7LCRciw`gJ%+;P+^TJS^?SWp zG^e-oFvKnSXH6bMosN zy;!oCF@)cUBkv23DSS3yW~Q;skS##(WRjhgxC&4l6wPA*JzSg1!-F44@zjMwI@Bi6 z4=@BEEFzgTVt_EKJ|Z);p$z$qn<*a?i$qHp-Ni9mso{}G#+L_gmR6h^<=MMYAU%CC zz)b)A@Vx;=YP9sjxQRc66u2B$Re8OOBkEuryXVC$o^ZXgKogz(WPvEURmj=GP_h6+ z!H!!X*?5HVQJ;nK5S{|qrTIcFumEVQE zM-!NYQmI<55jW&{Kn?6bJ)nbqYkBmf{BI8}g1lJFVW zCOBF8eMA|SAgr)F= z4FJ@7^hb4B{9&VGArm6@NGyP9^n{R6{*?r?)IN#;@1hmL00k#Yh}7_}l`26ohjSW< z!S$`!9x3_+97Gry65|-O53PH-=fg!d6 z7iT=WMEK!RneBLwW0E0!A++nkitI?mi0WP$#14`|J6og*X7-7X1w~LOd`J-@)`HS| zym!|L50Rip6ym_u2DzqWRQ9dq0q5~Xze^+vu(Rk1vT5C?TLhdl9#{;Z5TJO_%%p4< zE22E*EkoURIvqYWm+eY8ICETu@ng7Xlna8a0k;viGAOCI5D0CUP)tYspYfQlECew@ z013c5v|-Ots}!5?y{vU6BJ+%|msnf;t8K+ec(6PlgQe<3P-VqhOElm?`0lkV0S`?$ zniyKB4FXFH9AN-MU0tzlFxzlbz+2I%6T~%C6%ccDeaIWY_0LcaOOPulDQTis)7HW?Xqt;PKQr&M<=qId|cY(ujx5`wmQ;gtMs}Qx> zxTH+`m~MV(NzE>3Id0Z6A;ark zPY$}L;|y^AsB2%9eKqfc#%fN+4QvtUP)*W{kfOq7zgf(_|1Jr!jTP`rg0d~JK&gwb z2_m$biqkfV+y(pvEyC+Jg0MUFb1#M)bNB#njYil$0C*A{tkgkQ4UibZ>U|X-)6Ak0QFnpv|g;P>f)x=kjT5~e?vdO(zW)UZ7;XsW<@$~a)yg&dk zZ3?xA2#J&iwFlyso?wfC;hF4+>`!_O2}5;Uq~zAdj)yX- zn%gnyYIreg9u&@CB(TN$K%i(RDS zTE!%2NS+&_Audp#wZeH{9;{vrF*9cY>E6M32P_=vR18lz8|pW#U}TO`%?uWLw@Hs3 zl#2e;#@q1gKn4S=COP322WrFMNvtcxb3Z(=IwPT5fTL(GnT6iC&DV zE1wHsd{Gpwu22aO+Y(TaA^hZTX-m>3S5!64(|!^VR2>%97cM)0t_`CSg8W*tyf~oF zq_^V58z({a7~}SFWDuV20Z5xIkg4i4{pH^sCUcmPF6pa>$RT3V`GyRN$}tCr)~txC zC4B=%5H=JYrj+d=IQK;8lvol8wRFd3Cq=X+xSR`$h7MAq2NcWZzp+A`i5X&Gkb6bU z>y&OOEb4BFOIo9Im9}XELM3=O4O?~(o>`fJCBb;Q;;(c9Osg|X^@7vq#8TG zOIx&)sn}BTT+2Hac#n;u#KYtM@MnT5GuXwn}A$YHDcHB3c1c zl8QuZGY~agb7%P3qwq9bk)aYGImwiLK&}$7S*kzyL*D)jlYvu1p<4yk6pOy(WL*s} z(8XF4ZMq#P@H!v4jN`?dK(bIZI`0P<6gH~m$VPePTw5`Di6n^dm(CDJDIOy>5 zqnnXE8)oTGe-Tme?At*gfy~`4P#6;%QHr{?EXK?U-^E!0YO7EY7<>-{au(Qalmv?R zWq~j54+jHOKe<7j>?K;%j2;00bllXockjdL9an|4e?1!G(@e+!4J7~i!=5IV)A?0l zK-d#d5ZVJzEXZpkOcontEtpG9fdygSkZIRmvlU1T(nbxza4Cx!zz<2&RgngxEMs(V z2)>C;i5jvpE5hG>8p_*&@Z60=j};o1sMNfZQ{2Z9`dpjY2JavM1=|k|R7%AN3X3%% zyGil8}alcUKI)s#H@^=sg*pau4*g^g7nIZw-{P%VZ-3; zn~u;&FCtMWRDTkV7$8F$0wIGdhi*7X3d-im15n9h(O=Pw-9?D4i8R%uO^JELZ+Gs4 zAbRNw@<)g`T2iIVA`^shL*aGmK!(a@H&TFVN51k?($Es6#yLC3E9$RUE7v1v1z){5 zi=Q??#;%uv<>ALD03{V1(PYWS^QAmHByLed5E|+Y>P#)S5n;OPZ@CM@Jd{zGEiDKw z$Av91)W8O)&9W8_i@a5rvq3`&Xe5w{@*N0<7#NR0J^Gu}{&Mr5v3-fx)V?9j7e@y; zF~80HYcp9MQH={G)YbiF8FBtZcJZ&ED7 z!b`3qMrBxnlnOME3RYm?j8}M?T5RZ)4=pZX&G)P3oO3vz1I!%LBbruXA$pbG>*LqC zF`)@qGS0pRIVl}ts-UzqPD)I8EPF_&l7hv5Q5e*q_v+ItCWv*~(tPTL*|()#%DSe) z4h=Jo(<`pW){n5K?93mQiUwT1-6BR$AQNB&$+Q3yDr1e3`(W`Wk>P}#g}-J`zR^+b zM0L4rJ_HQatk#lUBdpoZN!ch#7it46YedGcf%fuZW7;f)n+RInX*Lq*Ud-k)SQ@n6 z)F@Ec9QbE|srdPPSS1b4~>zG0%giz)hMB8#pV5 z0I5N_b-Gi#M$3jpct*ZGJf4JzK0adrD7{5N^aEgedya#*$uL?J7#1u9v_P^OKv#&u z@kf*beo%hNETBER5<}K9?oM*U3+0+ZAJ;5gFCmJ5qX2Q*6C&W#i0K_X*l}q*rV)(9 zG>#BJA;44t5$BUg&#ku;Gyeu_qSRFIbxWekcgT~}V$k$dLnqED(^M!wPx)H3aB$}f z6r_%2M5Y+akOl@L$%U&BO0_gks)Zl2Nk!n>-r@?D29bFRK%gu}6f6bIJ1l|)0VI+1 z@M8_}?SzY*J>AtBa>|VGXInp-Qq^X6wdtQNY-gKKni8|6d#w>{s}NF%Exa@^LT5BR zOWTX5&u94r2L~($(+nq5-ce=15cxXmqgG$StY_MXMzn;2N(N$b#B)9DyX6oFbdM@l zWI%J!u`(!F1R-$(WHcb+odWVRwhn~yDpD}{uNwx#-NS>;e2qib6y#p=Dd7)ecq4}E ze|wbZv~}uvox(g3=x2==ovPr-Z+NBu3#azO&%#R#J+an@b!dJZcGud8}PNo zg9$gBbVlUhvmm7zGyJD?S!g6YyCIFNNKyA*L}0Vu8l^$t8QzFcW_cV3<^5No$ZmVRf@*s&1%j->>}wq)E%_D|Uhs z*&n&tn!qj|*`WX)tFACHuSlZdiBq2-{)Ea!7kTzi?!u(Dg|RRs={BRUod?YkVWHY& zF8k3fs*LPMAF=mz-;O&NtNJ=w{q@rXpb~5tGvSD`_ZwcVlQQlRDO}sHs \ No newline at end of file diff --git a/publish/fonts/Work_Sans_300.ttf b/publish/fonts/Work_Sans_300.ttf new file mode 100644 index 0000000000000000000000000000000000000000..35387c235791512188f3e9c2a51d5465e41d942b GIT binary patch literal 50784 zcmb@v34Ehfxj%l+`(|sKE=iiCZMtMn+bnI9w&_0UzArOvXWHp3U1x(~It#r>iz^@(g+B_S_j<2-fgcK!{=Uz7lQy#;+~4QlnKya!=DhED z&U2pqdCm#rj4=aVR4lKztGh>fNcsz7H(rmcwY_7bN&7XQtbE_W3)0Fi`aEo$m+-^$pz z)UJLPE@+u*J^FhDpWVCm9y${KN!o(oy}( z_}qf__H*X;F6H-!ssPWE=)<|Z@8F@2-SMqYF?RH?xc{Te2bPwPl^X%?H4|w62$NVC z?Y=MF%w(ozo|uzK5}U?X!-Fa=%Y2$~KEj7oDwS5HH5&5NnO48aVQ_d1E<>3ATVk2V z{wm#k;_Na0MnaFLnE=%`JWb28nLk#Z$yE{`P;(VJQL%YEe0Wgi;*mO?E?bvvFc|VQ znFW52L+j!Z?()e#msaM_CLY^R$92tISGRPqfEOHm<{9ec1h@BeC4L83ML+U|ILl%N z7LC>BaE*!&FwXb^43r(vat)JYjWo|xs^LL3#xf!g>GgVp9$iwey38U!cSR$nlY1Vl zXm4&fwRh={H=md|BLtT)4a;HqtToo8LEi?hRZ9vK5@%|5K*zOAR%zvVrdAIRYPd=@ zq8iH0&CSov2M|WUk&$Whn*fK^+5R0E~mz9N+Tz>Qeuw=gHd}) zqAu|>S4pwkU0mY&X^Olq%B*r!*40%ysxnVpA$`l`DlT?9ixa*i$*p2|>net|tWCi% zS1>H04U?Ba{kfQpu2?$=K$D@?%w_Qm%t!{G(_#MQX(r3VgPB~bWz!%MHo}JTARzKg zc_yO)x8@4^G#KE_T13nkwA6CX_+2Ow-0c(F-9V_{`Pp<1p6H)?ni!GMF!2v*kuE zD=0IY@+=06->%EF_)SUlnk|H7m&+8ct97{yCI!&J_eb&0B*x>ogfBN%hKJ(D` zCN^%I_?~q0=Eh%2*X?zvAST=zms89(rrWCZ(j05d`4*b-s8!l{-Q4DD1_rK~e!Qv1 zx->ShzpZuO;MlSyJic}Oww*g~8~?1er>FPI&6}_69qBU(2&x1GK?ZIJ21-j*pgbaUzsJOkV_Gdh1;Mbwz@a=A)M{6(6LAD=&M7~prB>B}(F zI>^F6tU{nr1?UyQCtwAYWn?gxVaUkK%|=75TLTtm%4`}UM!_*ILxey3r7s=(+0U-I z;f5>jx=XtGo?~}?1(Nr+k6(Y)M^8M#K;a-&=?3(r0jc72^|PK8vX)q*noAnawGt<` zm1lGiyu*VTMC?RrfFe7avFyU^0xP;U8JM1B84T`BsFf5fuDVDXJZ6IF_h01iG7`XQ zwNP&W1mI**=lIiR780uwi_t%W)SL+NA0+ni*2E7&A!4km#9K)`Hw&$k%bH^i=#R9G z%nlHzYr*L>W`(~Y__YeTNTfY;Rf4UdK}p^Vy_41--&EPrbkka&&^Pbie_Fq!YmBTj z79&lQ)O8RbPA#5!q8pjEgGJe`IjqKY*XL2Cm^ zIobN8o&j2ALuN|Nq(REtp=5rZ1}CYP-c>La8mI&fWUz{u7qbj`$LC;!q^5>=Sfc6A z06XB1><^QecNZw&Hk$M>|Gu;Xll}zeUdV~Jq;nyuTr3uAH5w!hEF%>ZJ*gl1$gqu^x^XdAzQ^Nr8HCAUaQQT8Qp}Pj#vsM&>*`!}(z)f5?cn6* ztNRD9*}QbAJ!IWGKCs;O;X{3k)i3kT#J3N&v?~H_Y(qhJFC^NvcQ$UV^T6y=M!zUH zz!!6aI6xqLPNSBH50mN!Fr`yIhb`y85y7jp7*6a8hxsST+~N&{fW$9(P&^x&7aZ6(S-2-tsr!3B5RaiTx(@gb1Mu_qbQy;t%4~$ncB|C^w;Ift{oxgN8MgJ7oxA50pEB8jV7)k{t!<``|f? zGmEM!`6Cm<;TO(2f9qJ0Ijg{O-TZd`HH9vuVLUraJX-_16Z0Sm%iHQ-+HOBBJaW@>{$ zg_$I&9WhAWL`Rqe^@-b(cR!80P0SH1&DFxnk@*05GsFNOMLfc6$j^r_Q|NcN3{jVi ze^z1ulQj}GMWm;zHT-X(zj00V;Ex>K{-Z(upGQvIAuS$B^4i5sY)Jwj>EGEX`;y$GVZuJ==(n4F}t{N^^uj5<8QkA5c8b9$SV1H+N zT*^vH*#(*GOeeb0!h={=q-@I06qeI5$fI1?be!q6KPsZsjw=`@=6OV zXqW>dh4eiU=9>7)k&@OEseiAF|Mc2{for#J6|cklTU+-J4FLw4HW@y0uBIa>KJs2; z`Q!V|!|$YH(pMp29n8uKZx!HZ~Qr6XXXW#Yb0(XHv1^l0J5c)cGh6Hx;qi}xcT6^&EOHJ zbRlI(>2!jb1Y4ctRf7FT2H|vOq>K=o4O*()=5v(caYbYZ!Wv2WmuYMkwpi;@Hn1k? zLo5E3iY0~}hc`@L+1GdF%=&X3{IiMcxHs{_=MEpmSDa&ZcMcWL6TMPDD z^$yZ}1OCPH&)<1(_}|B7W;T8nPQlL2n|CGt8zTD4L%lu2i5HR z1{OfaYIH2RBsYclVJg|XEmlHWj64U#AWmv3pqq~63m?XmO#mwX3vo*lLeg>Oh*7x5 z5&pF!=N~>64j+5?{=4s%EQ_<-7jKkqzBqBu$8Smen)G|yN-KEa7_)%`_QWzJL}8#c zRT9YG0azVOqe)G&TFqxD3bJvK-1U?LYKxWPBZa)SpQ$Y$nvNM5EBD$<(MOTRYxL-# zidArz#k{Y&sEXLqS|U&p!VV>UK;E^~)NC}Gd%dH(G@CB%R)M0`L_In@S6+gPV_&T==lEFMm>E^{vecN*qFY@8OuC9Jai6C@UJuqIu4joq`O5-oE0_$)Q2EaBlw5X7b$smMc zz*n$xPtZ-F&sdXHUtss?%k5EpgS}VZXWyisvhURIvY)3vV!v8{js27QPuRbpzsLTN z{u}lu^gpscuYb<|y8e&$;>ybEe~x;-GYqE$&tL6PJDU9LJ4#pW=L6dZAw zwGm0XC%n0-Vai}N_69r0H;zv{^Yp;haQ#AzXZ)&)@0i}$Fj?g;@)VSgB6{TKY<4Ko z!yk?<)K?+o#-YcVL>`}(*R|-nI4o}Ht@HDcuD&hOckR2ePB#}tP?j&XT$S;=EfU=1x5j-Ycr3&*MeCk!&m z`m9c);(VnXe0^4iPNNotPCf|{y1d%Oxx&#G-3Z#gDy=KP><7#hfH{MFegu}#5zIei zT)2oNDOszu2p@%bj0Qpth0?hL<_(uB5)!{Zv5~);7!HL3Qd1~!;&D8iqFX=2v#qQ) zR%3y^#Rsg=$NhlxlrSRLCKb+fK)M(ZOHGP8mlCIszzT3E;yfx{)4DX1Sm3WEhTeIH zZyy;7cr83M78@Bua4GR_DDls_mYN2&FR2}WC@^Vbh%^}is5tyAoWU2l9!zUP>}@t`RSl0{pTNwC}mqx z-prjMZ^TR|@jMjkPscM5{hk3!wuWd3Y-DTllz631&~hpz_MXETL)?<*o?$EqU?zG` z9}373y8A8(mMtVfF$=}~Mo>F~43IFr=#xQ|&ZV?S%6NAB90n_eHryh#=tIb9)n2l$ z*-Op6j-sYk+t=?QqiM&cuO<#DMw6~7(^**O<66ab8e7o*la~wA304{+d$La8O$(t@ z%KBqHW@J41K&G4lM&t)5Kt}kZWG4m427xlo3=Gqa8brYvD=jH1$jhM!FXfYyLLdu5 zfZ}{e#73c`Q&K%W21VgNX)9h%JcYnkNm@XPgoF|kO!S-*o03-kzH*a10qi;9Lm?{R zDJ(z~FGDA(nG(BYYDzD{_LCsUWLY%>n1xatQ4b;IQtm1@_}w0t$Q2{gs94O3AyXd} zMohjyGKKaWspPfvRN}FolJTygO_E35*6gYBT7LVDfw8t)OWW9v8J^9xbxQ{dx%J>P zUmNV~?kei6wKmjC<+1iid!{dIs&oC+TB4iD$`}OBy)3{6V|^7R#j;MFt(Oq1NF}^A z>;NMEOw#Hk5Ck&L@^;85fq9Has~yn}`Fy^BFCfN~%mO5{-yd*P9ZF*S1C31N%l{Xn zBdJoss@VG22+5Uzy-d!~O zTyKg^oIKYgn-IO#aA4y7CYv#uZm-AfBo8VRAr&E{h}V*N`wxZ?$pWeMkq?Ruk?DV5 zWUS(X;vWhww7gcqMKZ?8;rTO}tdl}^sp6w#qL_qdK`l!Iwitbol@HTN7Y1~%)~M8T zWWNi2I1EQwqe&S9wwMQejzHDpdj`f@Yt8FMmu95K)s*2`vG#CBlATl8Lop)3$tCQTfWtSYUotb$#?3rw||72F~uTlyV{3m`99qAC&Ngf64R zU@9?r=Fv*EkO9}9X~fBd<$I5sINZ)Yql`L-m>i`tDkBUC8MB$XpiwR)M_(yMq^K0Q zcDf9$ZjRiRq<;!&kdaDp+G5q|ja6!dZ+E5cftXNl5iV`|Ez>b05~FslU5uYHqv`VE zJ!hOhwwfqCed2{Qpp@z9h=5(9%s=rzvV`OZ@ghOk4@STSjBqLO0Da#=0;8R=SENRszNm865{c;!9FMWk#`N0Y+$ zlCZ+hUBv(ck8tR0!6OVjLLZV;QUqTGS)F8#Go`|XH7sJo3M-`Az%o%Oyr3A&hz;X@ zD}(C_P0sCG%0ve z-b}tkdI_OuShVJBS)!PyQY0uV;b2PCCF6f+RcJ7qJd~tIcwVXbLF_0!qeh8Up8{KR zM|y5;^9Jc90n1R=i5JuJZ2a!AS;bS3FA)FH2a7(eE%Tl1B*)5o4Ytdz7$|YWb;k6ehZ| z?R!nD7RSDa5I}lJupc5uiJFrXPb!>5eq=2ooJO924u%gQ;@(k@)shFphYEBFI6}bG zAc~k|N-hwDNFh5Mj5z`hKkh4Ym%Ck*J9zL}?`vKu8P0Y`wSxGBF-c_u6peRkeN^>k zL6$w@rIHpH-#}tSQsv0TGFL#h?r0d8{?4tv?dMf^EjtD_ErebjtGjmnKpT9(@=R}4 zd9b7Pkkb}u>Dp7=yl!%RB2mXn8q2p9=GIr1`ze1W#v{E7T}s8uuqXa&?dnUbSEa<- z)laQnmET>vy7mNB_Uctxx7t>tUA-!Od-bXom2@(}AlCz@0n|{pv5DAvFZ>p*D$1EQ zH$z8(sewWf8$r$(N&LA?okX&kYS5+zvoav!BqVf1Harpu1|w~e)?heTV|KeM+#Vg_w;nO zG!JJPqpg^ZmbT``XzQiRkIij*C^6>js|%Yl>H`&(ps{JtSh@59YQsv%+s=lcP01Z7 zC91_qPqM)3?+tQs~LCZ8cZmlNhwB1H7x=H28_>`Oh;-_fg0gox$we0 zo%3cn7`D#E*3Zvx8ktq8W=DA9=mi%XZEswbUP#32+Y;`BOG^j$Y;kYdgBf6rsDgO| z^HoTCCoh-uPI}fyD*vL`bWMVa%pEZtRmJjGws)nKn!2mE?f%fd!IQxr9M)E@)tLqhv#!~9!O`>~ zV0M8$Nw+q;Kp)L6GNqJ!Pi8UzHw+FjyQ$Q3YIaeClE?DgR0Jm?%DxmSLrz!?Qhl^; z6>3Qrl+E*=P_iwpgL^Ef^QtYcc)1=~#Ag zaj~!1TT$piuotyVYXx2;>8v1BU)1Z1Sgfc+u8%6!=a>Qhz_tqx?!BaWcW3upk*WIu z?dKb|_77AY$hdPsTAbRrxVTALxah|>+thkbumtTU6Q?9nk^&sVO3|>zVkx%R%p^<5usubVBumqT&_LzS zKcvJ#^}=}bq^YuaSO2~boxgX-p~SDZY51&qdic$}Ejz0NmS{8K{+i_{mu5EaAh}2! z^$#J1cPLU=vv!rFuyR$htX(B3tX!4z*RGNjR<5c%#3#tk@HtqBB5#%puQ-phWaR^F zqy_Tu*)%0s#*$ToNDAXGPfKelDE5wjbrCT_Sd64izY>p!7Z*o*>uouO-kN&;hCdPI zKlV@bthbe08tWm=T`LukRAY!jHM2gp6q`p>m^)zCl^Z3MM$ZvJfhZ&TQ2<+Pu ztI>2t^i}n$#(gtop318F`pf>bp|@wlhMu1Bw|2I-UDnvSxFyn78|?P>xA+?L*`Z>0 zILq7{8kn|LHwG$wp@D(TTD8w+cmK7cqoJX_z2U^$%|UlX&=aboIfCAmB=B243&tw3 zyo#J0#2rzH!&Ru}P^qTU%1!f`$&l|dDMq}={L-w59I%k?{MOy!(a!1(HQ{i<+&Z3^ zolZQ=>qbX|6Ag*iAk4o}*Fap*2P(Tmx)-tMT-Gxf4L`l!@gTRTFj#mIK6)nvj^h&c14a%!@k_!1Y@rmDB1~_99U%V(dV;|16oULHJ7UEv7<5L2Z?Pbb!X$9Q6w2`P*E)>`MRx0>qm7ygX(|CEJj}70H}NnYu3a(pH|6=I-<7EWum1A zh&Vtx3jL&%V5~8sVn))dEbk7FbX1R4;Wac?6AsD+^DVJiQ~p`&_{!|OuN-(YA% zB=Itx1SX=1SNR)@wM{LJ(RE1}Vbvr~mJP&&|6AEWz>sVh=_1(>lnNGN5Do-D?bt|w zgadzLslJiuRFOwyqhqxsJOXVrsW&AvAR)dwsZtiEN-`P))lXI2X%*aSD`OPeQlzg4 z(75<5mt3-MAC9TT#VI;?;=1$Czm5+7p{1ombO0K%M$Ce1E)vin7_@qoxL>&{Io7U{ zW>l`qWouVSGb&eAh~CL~?(d`mDF^w$64*JYUG+FEIVxyK71k`#(nGWX$#Ur+7${|O zleL|qw^GzBl=@1&g;qSnX!IC`wQWW5qhisBl1S2=auh{^n_SK?XM+Sq8Wl(A_8%GlnLKaaU`AeKIO+K_bT4z~9GHqBJk@%jup{Y|aW6HqUjP>M6C= zCmxd?-`~`JlBbk}4|3~N_)hlZ)||Kx3}3n@XC`C|PcAlF0KGpe9J%##bL$m1t|^lE zsr=={HzG|6bO+`#=l2s&HvxMYYuH=!L`cG{dLnB?Pf8j~_1?=9F{FDU(UU!qjIedK zog5KzHg|7V!^b2~guij3iMQ0Z(Hz6uOoY-r5k;5m5%8hP75YrdhA>3HT4)l$q7)fI z0Hs2lR#7#|N=o6CDV>TsFEsVI{lc@2HDTq7vs~|UHt3_yK7FrqO25guOTW{3 zM1P+18vWJIPv}4Cyhr~9=Qs2ZIe(;o!ug#3dFLPXuRBxqjFz;@J|&1J{2^g=lhLY_ zIJ)A?=8D`con6Bn>A4cagYFNhLcuBh-qb=q}_!Cmn7?UkbRD|#IXE; z2U(&8J8OlC!quyy8)U6+`2*e|s%X)--{Lg69gr-PEfdju&06f03Q_BnKt4%M(z6gQ z!p7H{`8T)KY>C;Mat-#T-tqZO6&1Y`BYm63!oO>u@_Tw~_$B)`G|beQ4Li3|MS(F4K;z`DoS!N3ub$-bO|aR5yL=@5|qCl5rjUnf~9GSCV>akN_7$j ziWRyBlas2GJPMTyzbI-ZABilEDBqjk#{>i`xwR?Vwb+ z*tKCkd^9>9;BO@K3v~@M(|jQD{hOiUc^R~%=uha*>(X?ma+P$aa#hit%2m>x%2h>o zp85pRog6Bdao8y!4pi$YHGiU3PZ@_ulW4F)Osp&7h{7W7%3u9?_~#AxKR|%uSjWGI z=QzN^COk*ad@*+xY7~gsD6&f^0lz2hEo4sBIIL<3o*`_-F6EyXEmmVt0PB<)I(_ z`@eJc#*UBr(huI%jNhe^|m9>rXK zOqt8StX-v9Q?4Q+3+Sj6_ZdK!P3tz{GT|Rk3X_J3)w_U?V(1_@)RBR=1bk5*)rz7% zZ4~+V8t$zfP5hmIJn{RM%{(hH@8i3hxZjufbSL)%np7pU274pG&47Jg!G8$oXzz&I1vuNIu0KtCo4zs zQC>ZUzY{j-m|rG+l;)`7qpaL5?S`Z;rOY4781WBF9T9?4BgusFf8pkmg$*c$d8@2) zEoCKOb`Mrj6jI%P(#2Tw0EE$?1nZ?< zPNxYf5gWf%%rM#AiVpk@V6~FW$k(XhKv5`Ikr}5cKr6EtO#Wo36^S2Y`JhW6L$xWR zhPPA|n>__K3*zBkTkCobeQ4^BKpz^j4YEg-lbw?@Ihyzte`Bhe@;oFb--4VhW=*ju zd0yDy0xGz$z+_a(eOL}l84pDH$YcP#NoNeF#mokw>2?ve5VIf|DR{tJmlB;6R0UUj znZ%_rB|UF%=`&jj#(MaVh19HA6QkB*JJwzZ-jnu8UChp~6N4F)Z9#MbF>ppifpKffa&B}IV>UREaDkwp{-^|5)EtZPmasuS@)t?^Ks+qeUftUwMt*Xz^B-xeVoj zrsy3W+3#sEWZG@vLoOOoDMr+b5ow_xt*kB!?b5N7kDKalQtW!8tP6#1K7)@-Sy-~xD1n^b^}`okbnc;xE;_VjZf?t# z`S~rGU;F&$zeY#!lQ-V@NjgB!(1Khq(aI`l(+nN*zOY3oZI3K!nhHb(IV#S`6pEr+ z4|%~T*M}v?mYVG9a|=b{@{N)`=#6*t;_w_2X4zgN0X(#A02czP4CTYrQo_f$0j6f)n$R2|LFhE6)K1 zf^|_W2Ui*H2Sm&qG(;-Jt?WG{3`3V0Yhvm+N>CgQEQW^ab6yfoJj9z~mn2%bQIbsV zM;>{^%kN8!^U$QD9(ba-|J&%Rgz!{^38H)ip$WDjD)N_s8i)m2O|-fpMas5-Q3~=X zVa15oyIn~<2?|V_86pn^YX-9?YaXMHSZRJw~=hg+>d~f30MG|jX z=6BR?Z<{-Gd%=}614GjTd>LEdWOo7^G4O;QGg%5b(;jOhJCEtbo()vzfy|Y9f#lKY z3t`L37%TIaReIgHx5Qlm2-6aP6b^~BNlBg&(V_YX0utoPCgVd_Z!HYv4zzS^31I}}*wWMVKkGGX=G;e zNX@W+>wt9Z>&Nc?>QHx4bH^92FAUW6yJ@nkXokg9V~SVK#>-*MvyxMwjn@DlmOd&u z1=SS<7E$kf_?0(>_xn5*?s&wLi5u1-#o+j_wz&Id(+Ch zauB%kvImv>`Ixx>e*QY%IV)Ltm$&hcV2ZIT6Zw|7D9msU0YicLH2K@@@d^1`A5E!` zl-kYLYR&bLh}q$dMAkLdR0iv$a@Am4tnaG9{GzWVUN7-gh6lan)zPZ#rmpV#@ug-i zc`%cD^xn;{g%r!DHFIlHOyrhew{xtgQU3e6f!j8EhVsWmsN_1-LF0qqwwC zIa=O5fC^R9m z;LZtMW=iR@I_R>`1tm*!X=zWcbZg=ux8_${T{^EWScqquP^aw&p3B*eSf0l%q23a* z5k>8IMbx4UxsVbx!+)h@k8-$*b|ZsljItp%5QP%IIJKP$Yb|pCAd10A-}q_pA{&zA z#rKLyi0OH$Ghlaxhg%!^aw_vCE5gA*q19LE_qjvb3VlylI@Vn6jbN8BFnn8e$TZ~l zI6ck^2bM#WHdy2d}Ux|$I1ATEzM;0!*H>=D z{Mc8%h1k~%mt+wz+b_>4=)-iH$ zbQj~Bh*U|taW;y(DHTjss$ig`oc~Z^VSYXieiPmc3UE%XkFd9RJ^$(lc$QMwtLO}l zlB|jf9Q>=b<>j?>K#q^Dyv^?A|9}L4jOFlqU@<)gj?OsF_(S|2+OQG*)vjF1?ndm| zNH#zQ28@CmwZwW;@KcE%24G|cKMkOs>?mS!pAS(Rp|7qj2~-xlf|9Jw%Pp{(Hk3Om z2h4@pZ6!RjAm3yI9DOTqOBbRKz`jq=sDyjR3IV%gf7v zMOkbqB{y`@Xfy^*o<~`1iRE0h(T!r)2|#Yplxu1=DXdQ1atn{0_>O{O!mY$QR%Y29 z{9WMIK=B_Ee2|pOkcInKQ~Xo3BY+_J?92$P$IQPl=ylTrmwJJ+rL z(JCV?0;*WOCXTvD6!twLapEw$T-pf#Md=mSl?Ch%;`s2jrI%k@8Yp`Z$CY1yu=D}` zmGAm~gg@VReUIYL_g$L#c3}N>%t{t3j9E^Z?i9U>=}yk`<;hWRNR1aGb*;S3e+CVd z&+JrhMup;H{V<-747-Y^P}z5bwo9RGA#jZZf!U13jdpXHtq^ybyyn#I8`!-GDlg5^ zO6M28?ZEdUyEje1z|9Ec?%%EzJX4r29osVUnexLQEg0@<=^pMa7~6c}fmILzqkm;DUb^%2=b#3|qnylJR1p~q!1qldG)~+urLNZ?v0xg$Muj7zFaZ!kx zlm#l{HGfY+wCmvaYWJ)G%0Ha~=fnduBX2{zRK)a92#@{cq~2AMry8|ng#^kH#n4OjCCJ_q6^J4T!Cs0Jub2QQ34pVc zgkgmsusK%+0sl0~Gz`5Uao;I20ic&b(w;3OtpR36O3*4JuwqU8Xf=dvk0M{$%6>_= z@+n}VAZ9*w*vc(xL}(@5iMJ))jUm*)+|0cz|HUumTK3oqT*{=(3n?;h5mjAW9 zb|r_Y$m>FrBCky=L)gOS1br~yUG$_4|L zh}Kz0XYrHEPd z>+&HEq?CyfP*KddIZhxP)y`w@vv5s~wx^5F*958~FCVTL5CF6W|LFEsv^Kp2C^oE2 zaXaQzE2KEBxj;{IV)#_7M6}Cb){!frg>0i>tO+~WAgOG=>{CxaEq(RfX9M!(0kpEN zOtDwRlbo?K%sZK=bGUvI!Q&BP?=ve1o+78OKK-drJ^h7%TuD!81V&1L5p17zf3}ua z`w>c^Tp^;EG(=vqZG3!N@zTP=lJwO0GynE)&y1IBeD&s!y|xke=C2H~|C72`jeA## z9%%7JZ(dkfEEcy*H^25V+)|Q!0Kmh#tG~-vbH~4;RS#%YzWUwA*9_v_E-L4?s~sI_=giu@yK5zkTIz{H0)X7q1CW%eg%JudD#nMI$mHO$Ge1_ zg>qdD-bb8qbw3EuGgLCLFHRtF;HGgljHQoQqN2fO3!pYN_C16xZiSLUnuuO^Uv*W( zHP<{PUinjxCI1LZ=!g9``d5>6M}d3L>nXDf8HJdG35)lmk)78x;2}H%PoTRaxcl$o zZg0#5^+~rYX4j<9W2n;sa2OB)MOKRf)LB4Q8 z9e<5CO5ecsmjrHJVmFEF^~mfsNngkHm&Ns$={h<>dv*`n8_A}?+F9@(Sx|lWF2(i) z9HjP|86{K+=?tqi6&)Qf_4|bxr7`3d6q)#I<#vC+xlj)~Dx)CZXhTncfPDcF&4xZZEHfR3(@nXfC&M6pJq-q{V#@(*?DN2yMqmvyi741% zSO7s=~EOMitAONb3d zln}$qcIsj4D2ZerSempf-cCwDIJ6ECBh$K+bqmtrf=kABUu~YAkfrgd{Hu3wI8+!g zZHbL9W2tBE3Pkd&xj)O_yCJs2bnoQ0iw{)V%8d5P!cE|Y%QDx316Vd zR@6Sjrcq=L%!Op)2{kHFD>hF+U5J_gac5uU{5j{$SN6diA5*Bsb?ZN|)IRZpv>u31hDsbY1x1}xIPKV$!P;@J*1A~j0gupE7CPt0LKIF%RX zW&vzThfSxjzMb~lR`I^f4654bRd&5Ik#vRxSzSLhMd5%Vj0pyUw4i*u32$NpZ<&ow z$Mi~lx<8<-SkS`pf)607(lJeNzCg;TO-GeiYGXHw#YxOJYoCqu_1A85Z1;M%JGRyK z4@S1yw|Oob9c`!h8W?)JeOr0OcKd8?e_v#qV_QY#cE|Qe?`@OaT@w>s-IIW`cI6JK zSb7^Zi2+n@VUGd?Sa>90vs!d28Jorv#nC1qu&ikxVD&)|o3feNFd~h#H#7`VN}C6R z!P;Q00n0%QrDCUK4>EyKOpHO<6^pF8)HI3JVYH>F&>a@5h%tJ723|6KfhCl^qpxdI zQ)I5)KeAL@Zdo7e+Sqh(&ObaA=&Cz+1}|JaHCzxI)A7t4dq+d{hOo4>r0VUm$JVJ6 zf5oN7p=~OtA9Ba13h zys!r&**sIqk}|Up3{No|?nL=o7Lr>jR?E>#*p)lA+R7Gd{XloI)q4hWI84IS{aCKs zhAmIp`rG=tIsja2bECoH@fxhyFh7@AS6L`XDgC6;XeE1I@G@N>X_w3-k~X$N`&04) z1`nnGkvkSiMnN}qy>0$jMPZ-6s-Y#~Z7$BX+HN`QERJkx9-7S!WDT_Rju(5?kAKN* zv^XNJnrfc-V$@`-E-rI9i?8nMFD|eAjrkT+z6I3p1M-9LMQuc57LM3A7+xCCWl1QpCRHy22dsF~)BR)eIrYf*m20NW?oxJ^$%3XIcC2gME}bXcj-fwqE``B`^9@x&9s#~*+E z&f=GvzF?Q^Uub%n7kg*i=bh)C@k;!H#IIv9?5=bbX&X3#{8#)+tXqKY0~~O)lr$hy zZ2}~03pBHejTzin{%aR|24N_K~x$I_Txt=~~rRff}soGJuV zU=$8tC|<#Joou~SD3!w+$OT5=Jt1@tsX;MX7-jHd=P1*mQg5Q*H&q3wRik20SX*9^ zC4aRFo)VDh;R+KhAWfR*&O4H}^?xKP`LoX@KS<>%zbSDdbZ^R;0EG{-ha>}!0|YH2 z`%nQ1xhGh-kQK6oJ@jR1IAtG-Et$waFeIAz<8<)LLvM>HV~kZIhZBT0)7-C-$VxP; z>pY%1NuQ|YpG$1v{mp-2Fa+vx z)JcV5^f&(S4U|pn#GYQ%%fIl9X!KGc;gx&Dn3vcA)Geqmr<(hb!N52m$Pqt-0LN0U zvAdmj-{ZXdZs$FBJ9+cnu6yor-7Q`LNBPP-0P@x(HBg4{A0)>zkW<%lZ8it- zXDnjl3={-QSpG`cTH2k7G9xIfvBe^%w?@Q&7^_<77Fwl-JJ6PH6Z^}IXb_9`QjUmd zD?Lk;cQT#joI+=6q&B3q%vm}OraX7@bhv6{q_<~uq?do9CNWx5D6-*o5&q`rXix9x zXfGKc5nPmRogW^an;#mUSD!dr+CSLRGBD86GMM<|!qCt>T`nJJrAw`3&Bj3nnPF2|WeQ zH%JsHG&876ROeB;06BT3Xac_}lGzXuVInCK~M}CBu=ESdcD(x`gM1B9=(R=c9GfzOb*xk2Qa^9^FlW8n1|W z)96ww=!64>@?%s{`>YmJHHZj<62LT~l@C}Gri|3+)O%u~;R~8(B4eAXTw`79*0)Sn z7PWY6HtaR%aQ=6_t!gk*S7n;AN9qQ~IyS9qb$H!1lNJ3{?Q_+w-Ja(4?QM;ls-upf zpntht)qPo5QrB0O)wh-R2P*<6zUp(gbZ!d`)<(NPwQk|X(4LVNs*QtKkg@kOZHK6q z7hozU3;2dP_HWO#HaBehu9Xh=Y=Q*$o@Ea|D`{{QsX}wbHKf4Ginmt3oa(i~9=?L(}Bk+@y4D;RV`^XnykOY1|49j)j9eYUUUHx3+fw^_;1xb50)kiObSQ&ikUeTai{d z&{R7t4Gw|Q%CR$t4f9ZAmE|6nyPQf%=$DL$ zdmt~!_ezQqWnW^2yI`xrPf#XOY}273Hv&9JZiB@t*_uLy)~e~28|%Er(bn!^=UC6k zOnGCdz*@Dr?S_b}{BX~RaxFYGyCJYNI6D-6xdU6HI?FqJTgxhZbpc19Bs0q$tqiVS zE*)LF+Sla|WoH@f-FVA1VXO^&neV|^X`L4|I{5%7ucYlsmD)ROKyroxxb&n!Dz!nh zdBfynSJ&jm&gzzy>gv|kYQ8+#(K#{E*)dtsR$bjj2Q;3YFQ6RZ1qgFw7NIYcI2k_x zOBV@HC`GC!$1h)?I0x0=*!q?K>^tA7{Y}jae1Q)o9^mICuEkUSA@%Z0C8|MwudF7g zeGxB3t+0gBVBGP=l`4J&Su!I-Zpeth0q-O0l?W8eT-+WC&3VKOl6MhJPN0vgnj6=C zaw^bfuy&TGep||3jb&k+T_|<(k0Jy90Y*gY#3EKczhz6+IgR_I&LcyRcj8eVlcp*$!jDSp z_=2nxl!hH%KxQB|guoZ@9g{XC2~J|8XP~$DG;zzDn?oTSB|cwCsn1s`>ly-q#>POP z!Qm~TizQwf!+K!%^Qg5hWY}2>wSDAGZpYlqC>6#}B=8}l+i7$=gl9>J6t1NPz9kqI zj7gLL@A6o6px9;3D>T>&wdLBXkc~cI!vt-)bY;ECl$+~tHzeQDC#|}>9KPHJ=qL&C zofdW;2<@4yr+`U(3!mHv(z}EGfxXFF_{aI(s0?V8E|y-A3uL>zQ@%z1h03DxsdlSw zQoXLuS68U()LYcosh?5*U1Qe_Xm)Gv)cjcUg4U@$U;7*FpLMOehjmY8)Mf0;_-l?H)UU${di7(&hDHGa-PYxNDMIdOp7~|Kj``k<&cS`~~y>SY|9cEc-1NS+2I+WVzGo zv7T%FdO?1{V!-Amk`*L|vc~|+Bf8 zU+2Hkf4l!Xfy{tC&=}|ooD(=6cq3RCYzj^V4+n1yej)h1;E#j94rPSOLxZ7Bp@q=C z(C0$0h5jq_UsaP;U#oUj-&V7+=I)x`hRegl;f3%8;je^$6#hfx!pP?$FV+^HoWMjws-ra{x-YuMIssNs_h&o)9k3aY>s*%v(fh2L+_ZFv)J z4^@`2pTBbM^UC{$uO%K%+^_nyd>1}ziEro+zDyXoKPK&GruRDJ+g4VjBWxF{7~910 zD9(S%^2D)-^HYyLT>B2%KFM|=KD0|NP~JIyKMJ37ahN3wb4&AR*Mjfs#q;QyyQCL! z-+LS??BF5|qRpmcyG!wY77I$Z<2}YK;L+LBjvdS@-^)s+dW_G`vc<8U`K4!Y&#A{} z6P0Ip2cM{r)oYTxUS&&GFiaC;rB zQ5q>adLzlwCqtKxlM}cnHBLR%+q$Zj_+j-shWkQN>(lP zunL@0G(RR8nOzzM4NR~Ydu8Qpxd^y@5_oS%-QN~g!lzIh_af@##;_`Y-su|7={oQq z=GQYj`vvmcUu8$w|3MYfi@^Q&fveY85BnYKkS>Ca{vvC~7_c=9;)=b9t9>8G|3Osg zdR8Xsz%cnMH?uM1%WLu6T2{u9FT-KwHLMXwzWhrzC|!(7gc{^5d)p&#D66+-TQEht$Z*`CY6*asi)N>>uol>_T=a zyB@p2d=z&JSt8%Hk_{vN*~G&uXRAIfqzk@C{c-qDl9vadotShK^vVF4c<0-I=K!@s z{44c`lBTsMOb%`u!Tj0Zk(53lkN(Hb#F{inBgB~*W=X~?Nho^HPwKpU=-z64uEh5$ z)ZT$Z*u`vx*YI)aap?u=MSH%z$X;r9+P(HBdzbx?{mV|H(~P_(J+YcKu}`DzhGbil zy}({9+BTlj78Se5ZX%?gXh{STC<%M{M>uYO`L>ro^YWgTyI+p}?zg{t8RMx$vmW*| zhIW+hz&nMbah&$Y+4tCw*bhKwe*?Ck01f_ijJ?7B$sPe6e4Tw3bR1`2W5?O! zuwk)nKe=_#Fd5*+d`1>C?VC`9Xn8TqVJ=j9dJu!Cgaz|gRE|gCDb;}oT97ZjmTko{ z$Qf8yTi7->i;(&rwv+9GS$~Kvv;Ej(VM$QxhcNG#vrE{Y*=6iT(CrQEBkX2W3VodU z*@xM$*{|4d!Ot(oS->7=lT+Q(c6+>hc8C4w!{x9YowCQr#-<$c*tE?a zZ=kb=>1q3MrP17Cyd0O3pX~8!`o5Z4J~}pK2M|Z+?D5R8saagH(|4J4R!?X3v$omk z>1kV>`=_T}aW*!!G(8=R%K>}0J+AW10U&kf*i>BY>WFJx9RPni&S!&hRlo(f?2E_M z^Bs2jM(LbhVKZ*G0mu}T zaoOXV>r%SNdXL-VZrp{NSBI87{Nf9WLCKI=3m`(=DKV`gR&4=>`0~vzWw_rs_Q= z@Hk^87f{?8XKnW(P9>rl1 zPB6E`t16GHxw(4^f{f;{CLKAae;p3k>jb>9dn8jlc*?UO>0Gs_skM_EH zA#tXl8z5UD7Vs-h=6oQv0iwzRF2jG(B%aafUpg9c+3hVy@vO$Ruk9h_8F3Y!iB|Ub zED4R+`lYTITe0CZF;M9BO01~9Tt7opk=0XoW7#H3|FL>S=IsqUgaaE8aK))I^1^sXeBzWQ+ zZuSTu@CtQBqH?V-5JeN=z>eP4-XsoOEkI4PxE$9(O4#i^u3qYlW~)V@j0TXzD4UoH z*;}As3F72MJZuf+8V^48B*r zu+{_V-ZC9J9^(1n!F8*bF`H|bW2=`%>(s3$wP_E;8~mwnPI_oZAl~Rd3K}9}ISS4^ ztz%3}C>}!podR7%fGO+}ak;=1A@GR;V;AHG6u~N`rpEjJq}Y2V!uWroKEfM`m=;%q z&5<_Wj_D+f-Gq!3QhR9p4#GTvm>kFIkb5y?v%;J(8Ni38P`nnr*!LdS`yqCDzA0XZ zHUoh;;@I&)!df@*YVUz=OyOxLK;#%71X_m!_d(R)WCSOiPDTUwadBk~C*sO_YSWFc zHc%Tn8K*XMGC^(VWRlvn<76YXp_5J2hEAra4V_F=n@*f;rZ#jkLv83}3$>w>t<h_|jbJwP8s z(}UuSnjR8o)b!lI{TV1AN?KqY{Gqclbvjn-wd5`8d;b ze0>V85PXhG`Vi9(>ei{MG%l4@rPd`cO=`OTZ*AuSpH*=s@VR+>$wwdrL-Z%`oN z5eP|mgg}5K(AobvbMN=v?@I!-``ek{+&gz3XJ*bhGjrzLnR`=iNV|&vx@l0>$mJKX zzUs&tB_bK4B+D7O+}skg8kTBC{jsk%?cWh)r`_|%)bXSKc%?io$^1ThjBc4W4tb6w zNbKwc{9pbezCSILCY_bvH~jDjE5L_* ze>UsBr#J&p#H#LFtZwgO)mq3q+1?zkD$rG52^x%id{bG)jwRJ#zEv}nmG2-{yk9~q zb2obzKNW)zJ zmwHbi{@>66+y+Kc1Wn-ZFW{jKgFaud)|Zw3d#ui10qXBrf6GdEJS*WEbfW#J?fYm0 zRzim zX2IzOZbYwe6K_i*?2^m$qFx8~B6s9}SlM1@FNgoZboDOqx_K9R7kL+Z-Mt>(C0h)o( z`R!ol4zx)RLB)qzwLgOP;Wy@ctQqb?n=l3newp?D-G==u=$?MSYW^#__Wv4MkR|5p z-esIB?CV|OUFm(o>*rnN^*1ZfqC98jpiSr&(~R`+^$N?-M>KLy@M`ZGZ-6(@`=mDr zUC$7-D4#~}@)-Ju&SoK+iQm!RyP!w;EuFptT-w!)^se=Ws4V}KQeh}DJsyUJi(r&kI_$j6d5(HxM*xi%I7|xF}1K@@aW;AJB%JU z<=ayx4jeRSaOcru$4xECk3DxAJ+7d5+|&oYIXVBKSYX%D;|ubO^QRO{i3N2YJ)wAP zX*^$tJ7ZBfpHqdM$yftqO)t-`nQQL72MBXU>J}7PU)Z!u^?sW=x$YAzoqKxEA2Nurv z@OP8|41Z9;$@#JzMpF6q%kx}cpl_zoD}IN6FM33BlC}eT816Tzqds%n7}IS+aX#bp zbLTX3r)B1)lcnF7CUcD$AN1H-!u5F!H0R4Ii_25 z%tc-M+qXN6K0@;0;Xu*VNgmYf>Bdo>L?( zhxeXg+c)jzv>&HEk@iB`>uK*}_oSUp@1H&d8oQ4P*3> zkVbYiV_PtyeVy^;UPgBrOPwC`$BZA3tM+xSnP=vk1&lQd&CARSOVH#lLks(^&ID^2 z>o=gsujGWyZnU!}&=1SW#i-q3a(U}B%x>pg*B-vk*=VNQYBR&unwj>fDZ?$aJIN;} zt)uoJDUXw~iInxEXd(8bS!$b2xjkam+g)a(-3w$kPMRTBzAx_C8uI;uQl2yUcAY7* z+suRH=RF}KebhY8S=s62n?dO_?G{RGG4qLEV5`g$?yGD$aGT93%5K7+$}ART-ik7B zbwk^mVo&g&#Sc4~DEG&>PvibS z_O$sK?&r8CaKFI)688-8&*I*+b!G)_C2keK?FM$}^;_P`;5?FCm4%Zh~V|fwPL59j8`D;lv{9m|`mJJhO|luAa6k)x1vo7E`-7 zz(j;PH&SAQUt%M;XaQCOv%E*&$hC{XU?Ui80fSP5J;*INaBzhA{6gmM9PXh zMXkySU(fSKYTQJRNTJLtkZW@3^Gk8%#I1*x8_AbWt{i6a0nFaDaC^`a;ecU=rY3Y zrsl`AzpesKIjPp$&7|BxEf2ya9@kv(J&aVt!CF3aSPDGHjXM-(6FA5u#R>XpBmMs% zDWsn^`S4^6*u|)}0Nz_jie=o_L)VSepcbw^0;M9v)DhD{o}7}J}_^Cg;nrM6MQNvL48lr zx-FDi2v*Ce={)E@pPIf%Nek&cFLQqdOtF&=jx7bd{O6glVZ;r$9|CnhP|Jb31&)YX z89T}e-AQOOq0R8kDJ^e-me&A8p=cp}r4+gR0`k-_J4MNN1gK3wZBeK)f|r8b>9k}9 zHJAykx!lWW|9q&i09-qK*HgpeW&`eGpl$M@Z3UW)U^1Va1mZ?|R2C3#0OAH9ZU*8G zAnpQU4edSvR8DF_nHMSHCHVSf@c#;7YZZD8qf``X^rTPbk~5!@N*J9=k;$i%YX-QT z32hz3S|A<;;sGFT0pd{~Vigb%0I`Ak)+k5bOC7&wKE+oqZp0OWks{oKIGM+aaZ_+5 zIKjp&?(B@QWz0-v%uHp>Ol8bWWz0-v%uL*golWd)VrLUOo7maJ&L(y?Z5U=JQsSeO zIEfM`G2iz*XQ@v@lc#V`@9ai4>G9>-}bS}xR--(3%*Rl{lBLi;AqQ81osdJy^% zp*7%1#u8=-Viv;tDbWM)tm)9J!wRr^BXSx2)c(dEw##sbtgP^Bpxy=cNjt;Nw|j}* zWLMjd?d#ZMb_ajPU1RszgZ5oQcVla8i#=l-u`S3I|Bzv>GjNM8YYAhH#&$iRw zjI=PGAAd72uDN9ZL zwg>l6vIH;GY;*ze%rWr1+pdHsePj27=Z*3}-<0bq`%%1&q~9b|aJ7(d!3$ULcP;~* z7CY7Mu|K24YVvHe&oWLM`-FYU&auoUwhZ2W)qdB$Ny-XRt+#)Hh8u`uf0X?*_&-hh zyP2JQ!@Plk%e59kXzRPyS=$rD(e_4g3I)mEV(XQb_26c^OCfjWbORS@@A0uwA*J~# z^bV)i+oQNMLAZ-`=@i02384&N$7@c=NqV(Xm3B4LpATs|;Y7H=r?y{~#^856Dp&|i za;Yv{`-0L$X(U*S<)Nna@Ue0l<X>LY+ zV%`@1rr+$cTa;#uz`r|2Lmj$B|VfFN*bqYf%371t78XKiZT?OY0N6-hk zo)P?jamI001m`e1PC7mfappNPomVvVY^QXY3jz?dcP)6^Vn1Y^s|I>)wY!4&w(s=y z4}%zTZVUW!x66YkV(9a&jX%~M14nz{!)IEjXg?(0rnt|grVTpww4E1;!LU*c8E9M+ za9n%5A4=Y?7oPFw)HqML#Bh#3wLXb&w{GMOqN!Bh6J4n+Iil zIYFuKA)k{ctVc|U?=Bb^^l3nCR{XnozOzv#M^>VXzNFyng0Tk z-<{Z-(71nzbANYZKP_@4`gx}Z}FBc-I<2Hp-yYMXXsAvqc zVpjJ3bwgLskvfHq>Ih>2DKVdTT%5csVNHuY%^F(X_{8leh;!OWNgp<%iwqmtpBWg* z5w;R8>812=TcyT*S(T>quIQgL{dkWPwgY^8^oZdlOR*&<;=+~#ZfFk%^6p1$9E;9( z6>*%J=AFU-#djBQE>_+?T+4b{tf+j4lE&b2{4ht^p1h~Jgm+~lc&lW1TR-v(-7hv-bEP+ga{6phwjs zTqY%RmT*JnpQAUkdKpTueV!hHmXTi9OphS`!x0Y1NC&X_a1Om%Y1zhjO}Dxu4E2y?b%G2w5Ne~pql}I z%*(;dAX3}e%T$?0WC%CwUJljL#ZT!jBwjgP$w0++Wo%}$e(~gqK5Bnfyirq~4Z^e0 z*>fbq51#A_>h4x7Rp>yob%Z6-!J_uf{_3$#as-l__<2fNrK%i!2)xR=SLI!oPSbt> zS8YQN!|DJY+YJ}jg8y3Ns%lm#`zc2x={?Ycd5BP@lFOe|s^Uc@F`buKX{-&E^HX?q zIS||mMarp${>LeMAKYC*-P|f|2fYg!o*4MrFXtSzkC#He>Ev6+-L2y)C}%%?_7@vCZEc{#N%U4I7 zT;}FnpORaVs8uG5$<6O8gjdOT01V6eb(ar+E0AbE>jrI)rfXzuSufP3zMJqjK$nAl zEwOqsqm@YR$E*-!4E7#I*j%X!!sHQXM&!3t}!4;FLyNW#>f33I9EbrhAUvID0(`sB)=*@vrK|i88K2( zKD;LXt{4$N6om%^8C^q;2lUjZ5C)*HFR@EZTPCsglA?7B67$(5q*2Ko+8u>HofG5R zdZOh^B|Hv0#EZwI2LwGtQ|V}HmonbbUx?c${2gAUOX%55BCTDi;8e=-$0Ny2Uui*N zloK{3JeINpq!$|7XOOL*eHUZEsIv10$*1GZG^%FxMdcg>4@sS+Q69ck!nq zf67Uyur)mOK{j^A<%wSnaUvDV4~(*qumdZ5hjLZM?WpqZWqy9y10>c_s2iad_%U+3 zIOK2b?F`L7N$?;zqn97u3wc`BGaU#W9FuFh5Y`oUVQeiGL6R5OOL;-~!9kF^pPv~( zGFhXgWGvunGWKK+qm1j}+{MTZ%{qdf4s-PRf&Ir)p>uO`#D48RHLQ9MBK7=JZw<~> zGO{{)4cfOs^;)Y%vS2o-VgwMGrhz%VjVp@#j!t;wE{n z4bAbV+{z%7b_Y~Q1?~aHFO}jX4%~=5hzlEdxPj2k31Nv(4Y9hv6_$s>IsSkAu4l$! zE0v^OwTx9UK7xahg%h>OJa1QesgxW*NYaEJ3#iE&3t2DGF!HKwof!Imd2-StZ_kz{ z^F{!b5hv6W+a3$h+3ccqNxde35Zr^7k&<;m*x1(z^SL-K&%%|v3CD$v|Ar&Phm6%{ z?J42hzW<6g!p<+~@^+G?Fvl-px1V93@e26-Ei8Wk!Dg`kZ#5(GT5L9Z0M{YuZNTQR zyL&f!KaYI?Y;Pm!$Zo4zYoe)a@Bpi+JqC zNMvDqo!`EUSW8pEM}M@V*CtrQ({<<-Icb3nuoB#_CN7om9^7+6GPLYG7rmxf!R@uA zF}NH*Of;ldvY-Dd_I>atJC!T@sT_Anyvj+w-m&NIs!f&0?n*OR0T|VY#*+A+%aL}) z%BcWx-I2&M)pgetj4kJ71|yRibjkyuK&i-#oU8vCEvIcrO?w%UME}%;R!TI2$vq~D zl(X7o)0g6-6Lm&&bck^%M{2-a$G9!hpFFiPvSV0ww6>t>_wWfP2p9IiW#SVI$X|jx z;x58wL5r)oiVUBnZv}*JhLCy~HWRJ(aB_^mc0k{KBQ4>B%#`shY-e`jlu)ZuY!18f ze+tc>lfu!G+ejnl+tz%X`FL!r9FC^~jd1xGD}~nk(d!WYhlY zowAZv_MsK^387b;?eJ)2@(yK>kPc8q^z`Y_NJbywH=&)Qn|!BB&Q=M<_>&?Oiz>yU zN-Iw(lcJR2gRka3(#rQLvN+o^iR&YrmdN7F#G_oNVLNdKV+Cc%xR|Ci$zT-RN*#7! zWxwT4>LFB$u;;SUr&WY;ayPM6*eq%$J2(w>=|_#JI~=`_ne`CVsV2m&*QE_noN%7w zD#t^@J!#4@>B=z?<&|{hm5A~RYc8Ot(vkz-HgfmX(mJ6HxP!glrR-mKoC<=)RZCDGuZ4`zg`q2+Gol^SKcXV=Gx_e~&~2hZdcUdv$Lu#7D7 zjS|_{FLUra*i;Qo(VBQ#2Wd|x=L6<}>G{|+P6@n3x`o&jB!qW?wh9~JT+ue*evEZr z_L6?_k?Hdk9UXmJewv zkyGCCW+j|A>8s~WhH5+HT#1wvp_eHq=(FIn6QfH;-d9KWHX}GX)7y-^^-ivLd?D|v zz0EzGbn0#H8zbR`oDS+u%^f7ct&HGuilwXGWgLq#?xXL~P;@_fztE4BuMXufrn%6I z{ZRQcOc&bTLrxl*S?9P;`SwIJXWUt@lM5z{HS^AK`?l^GE>EmQh)8O^fq|=Q*I=^ zF&1Fb2!Vxk*$Vr+s_9q0ssrX7YY*x(I9o<|Z`*fvt@;#)! z)Rw;xaR~e#cPE@Z@>o4jsxk6)P*M=X`2=k5Snlqc`+9QUL9C3^)Y%&;R~-LC;wq&K z^>H$SaOvIBGZS}K%!1RN<&@OZeoB#X1csca>H=@LuN}$1-!4NslkYTrhqI55F?T%4 zY1gM?CF!YIor|Q_{d^cQhIP|6^pC-n^G1nvxQ9AO`yQuu0q!s1S;i{q8!vD#)bm`@ z>pbQzsiC8he2*#q6rskFLi(snA*WEg=sC~Na>g?_+ZmkZyi-qY%9%}RZTuuuW~k*C zBImpBQwi_S(srGs$FD z;wmdD3IGE9gee99@xO6I?2x0RRVrK}otkGh=%0A&*YHR7KP>@p1kA3D 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 GCMlI(>g#O) literal 0 HcmV?d00001 diff --git a/publish/fonts/Work_Sans_300.woff2 b/publish/fonts/Work_Sans_300.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..f6e216d64de0aca0ecf31749708002145de48db8 GIT binary patch literal 21548 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 literal 0 HcmV?d00001 diff --git a/publish/fonts/Work_Sans_500.svg b/publish/fonts/Work_Sans_500.svg new file mode 100644 index 0000000..90a91c1 --- /dev/null +++ b/publish/fonts/Work_Sans_500.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/publish/fonts/Work_Sans_500.ttf b/publish/fonts/Work_Sans_500.ttf new file mode 100644 index 0000000000000000000000000000000000000000..5b8cc5342b5b0975b461e85213cbf54bf7e23e97 GIT binary patch literal 54232 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≷;p^qq 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 literal 0 HcmV?d00001 diff --git a/publish/fonts/Work_Sans_500.woff b/publish/fonts/Work_Sans_500.woff new file mode 100644 index 0000000000000000000000000000000000000000..df058514fbef579fe76aa47050c0249866c43912 GIT binary patch literal 27900 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 literal 0 HcmV?d00001 diff --git a/publish/fonts/Work_Sans_500.woff2 b/publish/fonts/Work_Sans_500.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b06c54df0b24e4661f1c9e3ac5fbcdd787ece4e0 GIT binary patch literal 22884 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 - Strolch

    History

    Overview

    Strolch is an open source component based software agent written in Java and can be compared, in a light sense, with the Java EE stack: Strolch takes care of persistence, implements Services for use cases, Commands as re-usable algorithms and has a parameterized data model.

    Strolch has an intrinsic understanding for mandates, which are called realms so that a single agent can be used to implement applications with multiple users/customers for instance in SaaS environments.

    The parameterized data model consists of three top level objects, Resources, Orders and Activities. These objects can have any number of ParameterBags which in turn can have any number of Parameters on them. This allows for a very dynamic modelling of data structures including modification at run time. Multiple ready to use Parameter types are already implemented which handle the primitive types in Java including ListParameters for collections of these primitive types.

    One of the main features of the Strolch agent, is that persistence is handled transparently and the user must not be worried about databases and the likes. Currently there are two implementations for persisting the Strolch model, a PostgreSQL and an XML file persistence. Currently both persistence layers persist the data by converting to XML and storing it into the database. The XML file persistence stores each object in its own file.

    The agent itself has a small memory footprint and requires very few components to start. For the agent to be useful it needs additional functionality which is implemented in StrolchComponents. Each component is registered via its Java interface on the agent and is bound to the life cycle of the agent. When the agent is started, these components can be retrieved and used to perform any number of functionalities. This is the preferred way to extend the Strolch agent. There are a number of components already implemented, e.g. the ServiceHandler which executes Services in a controlled fashion and can validate authorized access to these services.

    No software product is complete without a system for authentication and authorization. Strolch implements this by using the Privilege framework which has been written by Robert von Burg. The standard ServiceHandler detects the existence of the PrivilegeHandler and then validates that the user has authorization to perform the service. This framework is implemented as its own Strolch component, thus can be retrieved at any time during execution to perform fine grained and special authorization validation.

    Motivation

    A question often asked is why create Strolch. What are its benefits in contrast to using Java SE with an OR-Mapper like Hibernate, or using Java EE on JBoss or Glassfish? Especially since many of the features existing in those stacks needed to be re-created in Strolch.

    The first answer to this question is that those systems are often overly complicated and bloated. Java SE with Hibernate certainly is a viable option when it comes to being light-weightier but Hibernate, even though it is supposed to, often fails to truly help remove the need to really understand an RDBMS. Often enough Hibernate will just get in the way of the most important part of development: writing the business code. Being an OR-Mapper which is supposed to implement all the nitty-gritty details of an RDBMS system, Hibernate, and JPA for that matter, still often has the developer go back to understanding these details.

    Strolch tries a different approach to persistence. Instead of writing pojos/entities, Strolch’s model has the concept that each element’s attributes are part of a composition pattern: each attribute is its own object and thus can be dynamically changed at runtime, but also makes persistence of such an element generic. Instead of having fixed attributes for a concrete class, these parameters are stored in a map and are accessed through the parameter’s ID.

    Assigning an ID to an attribute for accessing of course brings its own downsides, i.e. the parameter might simply not be there, when being accessed. This is certainly an issue that the developer must handle, when implementing a project using Strolch, but allows the developer to not need to worry about persistence, as this is generically handled.

    Since the persistence is generically handled, and Strolch stays lightweight on its requirements at runtime, the developer can quickly get down to what is important for business value: Writing the business logic and the presentation layer. Here too Strolch tries to help the developer by bringing in concepts which are easy to follow: Use cases are implemented as Services, and re-usable business logic is put into Commands.

    There will be reasons against using Strolch, as there will be against using the Java EE stack, or an OR-Mapper or even the Java ecosystem for that fact. Important is to note, that the concepts behind Strolch are nothing new, but have been implemented in at least two previous proprietary products. Since those products are not accessible to the public, it was decided that a re-implementation might be of use to the programming community at large.

    Currently, there is at least one company using Strolch in a commercial project which helps drive Strolch’s development and further motivates its existence.

    Strolch is an open source project and licensed under the Apache License 2.0.

    ##Technology +Strolch is written in Java and is programmed against the JDK 8. Strolch runs on any JRE 8 compliant environment. Strolch is tested on the Oracle JRE 8.

    \ No newline at end of file diff --git a/publish/history/index.xml b/publish/history/index.xml new file mode 100644 index 0000000..8a3a7a4 --- /dev/null +++ b/publish/history/index.xml @@ -0,0 +1 @@ +History on Strolchhttps://strolch.li/history/Recent content in History on StrolchHugo -- gohugo.ioen-us \ No newline at end of file diff --git a/publish/images/clippy.svg b/publish/images/clippy.svg new file mode 100644 index 0000000..f455173 --- /dev/null +++ b/publish/images/clippy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/publish/images/favicon.png b/publish/images/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..df06e35d6285d95bc852059fe1e6ff1d1ea597b3 GIT binary patch literal 608 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10!Z^Su#P$FG|2J>mT)u2s zNl8gYdb*RNqracutXZ=T95`_H%$dI4-cO%CH8wOvM@4Pky!qL)XF&B^Zn7EywKJ9k z`2{mLJiCzw;v{*yyD)UH%6b4f>?NMQuI!I^#02!@PJKxV0Sf)_ba4!^IKB3=h#4>P7d**adabAK)j?jbTfr*F zGIkt1%e5o%yf=64#Qw+gB9!hQHg0X(dhJ%o`lik9`l?53UjLu@!hXp&t}d3fVIsgV zP%UwdC`m~yNwrEYN(E93Mh1o!x`sx&Mn)lqW>zLlU}1_o9J2L0Dh2cl@m%}>cp ztHiD0Usv&4paw~h4Z-_I&?sEVD literal 0 HcmV?d00001 diff --git a/publish/images/gopher-404.jpg b/publish/images/gopher-404.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2a5054389c8b7da11473ff7025bd417914ade520 GIT binary patch literal 206249 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≷m8<#U^E?B*kcN(*0xnUrMbZ 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 |DFQ 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

    %7R_4foj9yl;PL0M}m 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 JK<0cC|JgTYr4;}G literal 0 HcmV?d00001 diff --git a/publish/index.html b/publish/index.html new file mode 100644 index 0000000..c870003 --- /dev/null +++ b/publish/index.html @@ -0,0 +1,28 @@ +Strolch Overview - Strolch

    navigation

    Strolch Overview

    Strolch is framework for developing Software. It’s main features are:

    • Complete persisted data model:
      • Parameters and values by time
      • Resources, Orders with arbitrary parameter grouping
      • Activity/Action hierarchy with arbitrary depth
      • Policies for delegation
      • JSON as well as XML transformation
      • Locator API
    • Transactions with pessimistic locking and optional read-locking
    • Search API
    • Component based
    • Deeply integrated privilege handling
    • Fully in-memory
    • Persisted auditing, versioning, operations log
    • DAOs for file system or PostgreSQL, easily extended
    • Execution framework
    • Service / Command oriented
    • Reporting API configured by Resource objects
    • REST API for data access
    • WebComponents UI for
      • Inspector
      • Users
      • Roles
      • Operations Log
      • Login Screen
      • Jobs
    • runs on plain old Java SE

    Strolch Intro

    It is a different framework to Spring and other similar type of Java +frameworks, as the model is defined as an abstract model, where you +always have the same three types of objects: Resources, Orders and +Activities. The fields are mapped as Parameter objects, of which the +important primitives are available.

    The nice part about this framework is, that you can be up and ready in +a matter of minutes, and start building your project immediately in +that you open your favourite XML editor and start modelling your data.

    Once your data is defined, you write your business logic in the form +of Services, Commands and Searches. There are many predefined services +and commands to manipulate the object model, so that you write your own +services when you need to enforce special business rules.

    Through the use of Policy objects, you decouple algorithms from your +object model, so that at runtime you can change the behaviour, or +easily implement different behaviour depending on your use-case. For +instance you might have a simple billing service which performs a few +preparatory steps, and then calls the configured billing policy to +execute the billing depending on the customer, the warehouse, etc.

    And of course persistence is as simple as configuring the persistence +handler, pointing to your RDBMS and then setting the mode to CACHED. +For you as a developer there is no more thinking in terms of SQL etc., +as this is completely hidden from the developer. There is even a simple +file persistence layer if you are running IoT devices.

    The runtime can be just about anything. Usually it is run inside an +Apache Tomcat instance as a webapp, as a WEB UI has been required for +all current Strolch projects. You could just as well use a main class. +Accessing the Strolch Agent remotely is usually done through REST.

    Strolch is being actively developed, and customers constantly give us +reasons to improve and extend the framework. There is a Polymer +Inspector component which makes it easy to see and manipulate the +actual data. The new Search API makes it really easy to query your data.

    Yes, Strolch is different, but the concept has come out of the planning +and execution segment, and has been refined over the years until it has +become what it is today.

    API

    Check out the API page to see how to use Strolch.

    More to motivation etc.

    \ No newline at end of file diff --git a/publish/index.json b/publish/index.json new file mode 100644 index 0000000..5ac59db --- /dev/null +++ b/publish/index.json @@ -0,0 +1 @@ +[{"uri":"https://strolch.li/api/","title":"API","tags":[],"description":"","content":"Overview The Strolch API revolves around the StrolchTransaction object. The main concept is to implement your use cases in Service implementations. You open a transaction using the openTx(String)-method and then perform the use case by adding your Command instances to the transaction.\nTransactions are opened on a StrolchRealm. The realms are used to separate mandates in a single runtime instance of Strolch. Each realm has its own ResourceMap, OrderMap, ActivityMap instances from which the TX retrieves the elements.\nModel The Strolch model is implemented in the project li.strolch.model.\nThe Strolch model consists of three root level elements: Resource, Order and Activity. Each element has at least the following attributes:\n Id → the element\u0026rsquo;s id Name → the element\u0026rsquo;s name Type → the element\u0026rsquo;s type Each root element can have any number of ParameterBag instances on it, which in turn can have any number of Parameters on it. Accessing these objects is always done by their IDs. Strolch root elements are always stored in the respective ElementMaps in their Strolch realm. Thus accessing a certain parameter from a Resource would look like this:\ntry (StrolchTransaction tx = openTx(realmName)) { Resource resource = tx.getResourceBy(\u0026#34;TestType\u0026#34;, \u0026#34;MyTestResource\u0026#34;); Date date = resource.getDate(\u0026#34;@bag01\u0026#34;, \u0026#34;@param6\u0026#34;); logger.info(\u0026#34;@param6 date is \u0026#34; + date); } XML Presentation of Strolch\u0026rsquo;s top level elements of Resources:\n\u0026lt;!-- Resource instance --\u0026gt; \u0026lt;Resource Id=\u0026#34;MyTestResource\u0026#34; Name=\u0026#34;Test Name\u0026#34; Type=\u0026#34;TestType\u0026#34;\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;@bag01\u0026#34; Name=\u0026#34;Test Bag\u0026#34; Type=\u0026#34;TestBag\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;@param7\u0026#34; Name=\u0026#34;StringList Param\u0026#34; Type=\u0026#34;StringList\u0026#34; Value=\u0026#34;Hello;World\u0026#34; /\u0026gt; \u0026lt;Parameter Id=\u0026#34;@param6\u0026#34; Name=\u0026#34;Date Param\u0026#34; Type=\u0026#34;Date\u0026#34; Value=\u0026#34;2012-11-30T18:12:05.628+01:00\u0026#34; /\u0026gt; \u0026lt;Parameter Id=\u0026#34;@param5\u0026#34; Name=\u0026#34;String Param\u0026#34; Type=\u0026#34;String\u0026#34; Value=\u0026#34;Strolch\u0026#34; /\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;@bag02\u0026#34; Name=\u0026#34;Test Bag\u0026#34; Type=\u0026#34;TestBag\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;@param4\u0026#34; Name=\u0026#34;Long Param\u0026#34; Type=\u0026#34;Long\u0026#34; Value=\u0026#34;4453234566\u0026#34; /\u0026gt; \u0026lt;Parameter Id=\u0026#34;@param3\u0026#34; Name=\u0026#34;Integer Param\u0026#34; Type=\u0026#34;Integer\u0026#34; Value=\u0026#34;77\u0026#34; /\u0026gt; \u0026lt;Parameter Id=\u0026#34;@param2\u0026#34; Name=\u0026#34;Float Param\u0026#34; Type=\u0026#34;Float\u0026#34; Value=\u0026#34;44.3\u0026#34; /\u0026gt; \u0026lt;Parameter Id=\u0026#34;@param1\u0026#34; Name=\u0026#34;Boolean Param\u0026#34; Type=\u0026#34;Boolean\u0026#34; Value=\u0026#34;true\u0026#34; /\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;TimedState Id=\u0026#34;@integerState\u0026#34; Name=\u0026#34;Integer State\u0026#34; Type=\u0026#34;IntegerState\u0026#34;\u0026gt; \u0026lt;Value Time=\u0026#34;0\u0026#34; Value=\u0026#34;1\u0026#34; /\u0026gt; \u0026lt;Value Time=\u0026#34;1\u0026#34; Value=\u0026#34;2\u0026#34; /\u0026gt; \u0026lt;Value Time=\u0026#34;2\u0026#34; Value=\u0026#34;3\u0026#34; /\u0026gt; \u0026lt;/TimedState\u0026gt; \u0026lt;/Resource\u0026gt; XML Presentation of Strolch\u0026rsquo;s top level elements of Orders:\n\u0026lt;!-- Order instance --\u0026gt; \u0026lt;Order Id=\u0026#34;MyTestOrder\u0026#34; Name=\u0026#34;Test Name\u0026#34; Type=\u0026#34;TestType\u0026#34; Date=\u0026#34;2013-11-20T07:42:57.699Z\u0026#34; State=\u0026#34;CREATED\u0026#34;\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;@bag01\u0026#34; Name=\u0026#34;Test Bag\u0026#34; Type=\u0026#34;TestBag\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;@param7\u0026#34; Name=\u0026#34;StringList Param\u0026#34; Type=\u0026#34;StringList\u0026#34; Value=\u0026#34;Hello;World\u0026#34; /\u0026gt; \u0026lt;Parameter Id=\u0026#34;@param6\u0026#34; Name=\u0026#34;Date Param\u0026#34; Type=\u0026#34;Date\u0026#34; Value=\u0026#34;2012-11-30T18:12:05.628+01:00\u0026#34; /\u0026gt; \u0026lt;Parameter Id=\u0026#34;@param5\u0026#34; Name=\u0026#34;String Param\u0026#34; Type=\u0026#34;String\u0026#34; Value=\u0026#34;Strolch\u0026#34; /\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;@bag02\u0026#34; Name=\u0026#34;Test Bag\u0026#34; Type=\u0026#34;TestBag\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;@param4\u0026#34; Name=\u0026#34;Long Param\u0026#34; Type=\u0026#34;Long\u0026#34; Value=\u0026#34;4453234566\u0026#34; /\u0026gt; \u0026lt;Parameter Id=\u0026#34;@param3\u0026#34; Name=\u0026#34;Integer Param\u0026#34; Type=\u0026#34;Integer\u0026#34; Value=\u0026#34;77\u0026#34; /\u0026gt; \u0026lt;Parameter Id=\u0026#34;@param2\u0026#34; Name=\u0026#34;Float Param\u0026#34; Type=\u0026#34;Float\u0026#34; Value=\u0026#34;44.3\u0026#34; /\u0026gt; \u0026lt;Parameter Id=\u0026#34;@param1\u0026#34; Name=\u0026#34;Boolean Param\u0026#34; Type=\u0026#34;Boolean\u0026#34; Value=\u0026#34;true\u0026#34; /\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;/Order\u0026gt; XML Presentation of Strolch\u0026rsquo;s top level elements of Activities:\n\u0026lt;!-- Activity instance --\u0026gt; \u0026lt;Activity Id=\u0026#34;bicycleProduction\u0026#34; Name=\u0026#34;Bicycle Production\u0026#34; Type=\u0026#34;Series\u0026#34;\u0026gt; \u0026lt;Activity Id=\u0026#34;componentProduction\u0026#34; Name=\u0026#34;Production of components\u0026#34; Type=\u0026#34;Series\u0026#34;\u0026gt; \u0026lt;Action Id=\u0026#34;consumeGears\u0026#34; Name=\u0026#34;Gears\u0026#34; ResourceId=\u0026#34;gears\u0026#34; ResourceType=\u0026#34;Article\u0026#34; Type=\u0026#34;Consume\u0026#34;\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;objectives\u0026#34; Name=\u0026#34;Production goals\u0026#34; Type=\u0026#34;Objectives\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;quantity\u0026#34; Name=\u0026#34;Quantity\u0026#34; Type=\u0026#34;Float\u0026#34; Value=\u0026#34;1\u0026#34; /\u0026gt; \u0026lt;Parameter Id=\u0026#34;duration\u0026#34; Name=\u0026#34;Duration\u0026#34; Type=\u0026#34;Duration\u0026#34; Value=\u0026#34;PT0S\u0026#34; /\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;/Action\u0026gt; \u0026lt;Activity Id=\u0026#34;frameProduction\u0026#34; Name=\u0026#34;Production frame\u0026#34; Type=\u0026#34;Series\u0026#34;\u0026gt; \u0026lt;Action Id=\u0026#34;produce\u0026#34; Name=\u0026#34;Production frame\u0026#34; ResourceId=\u0026#34;frameProduction\u0026#34; ResourceType=\u0026#34;Machine\u0026#34; Type=\u0026#34;Use\u0026#34;\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;objectives\u0026#34; Name=\u0026#34;Production goals\u0026#34; Type=\u0026#34;Objectives\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;quantity\u0026#34; Name=\u0026#34;Quantity\u0026#34; Type=\u0026#34;Float\u0026#34; Value=\u0026#34;1\u0026#34; /\u0026gt; \u0026lt;Parameter Id=\u0026#34;duration\u0026#34; Name=\u0026#34;Duration\u0026#34; Type=\u0026#34;Duration\u0026#34; Value=\u0026#34;PT5M\u0026#34; /\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;/Action\u0026gt; \u0026lt;Action Id=\u0026#34;toStock\u0026#34; Name=\u0026#34;Frame ToStock\u0026#34; ResourceId=\u0026#34;frame\u0026#34; ResourceType=\u0026#34;Article\u0026#34; Type=\u0026#34;Produce\u0026#34;\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;objectives\u0026#34; Name=\u0026#34;Production goals\u0026#34; Type=\u0026#34;Objectives\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;quantity\u0026#34; Name=\u0026#34;Quantity\u0026#34; Type=\u0026#34;Float\u0026#34; Value=\u0026#34;1\u0026#34; /\u0026gt; \u0026lt;Parameter Id=\u0026#34;duration\u0026#34; Name=\u0026#34;Duration\u0026#34; Type=\u0026#34;Duration\u0026#34; Value=\u0026#34;PT1M\u0026#34; /\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;/Action\u0026gt; \u0026lt;/Activity\u0026gt; \u0026lt;Activity Id=\u0026#34;brakeProduction\u0026#34; Type=\u0026#34;Series\u0026#34; Name=\u0026#34;Herstellen Bremsen\u0026#34; TimeOrdering=\u0026#34;Series\u0026#34;\u0026gt; \u0026lt;Action Id=\u0026#34;produce\u0026#34; Name=\u0026#34;Production saddle\u0026#34; ResourceId=\u0026#34;saddleProduction\u0026#34; ResourceType=\u0026#34;Machine\u0026#34; Type=\u0026#34;Use\u0026#34;\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;objectives\u0026#34; Name=\u0026#34;Production goals\u0026#34; Type=\u0026#34;Objectives\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;quantity\u0026#34; Name=\u0026#34;Quantity\u0026#34; Type=\u0026#34;Float\u0026#34; Value=\u0026#34;1\u0026#34; /\u0026gt; \u0026lt;Parameter Id=\u0026#34;duration\u0026#34; Name=\u0026#34;Duration\u0026#34; Type=\u0026#34;Duration\u0026#34; Value=\u0026#34;PT5M\u0026#34; /\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;/Action\u0026gt; \u0026lt;Action Id=\u0026#34;toStock\u0026#34; Name=\u0026#34;Saddle ToStock\u0026#34; ResourceId=\u0026#34;frame\u0026#34; ResourceType=\u0026#34;Article\u0026#34; Type=\u0026#34;Produce\u0026#34;\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;objectives\u0026#34; Name=\u0026#34;Production goals\u0026#34; Type=\u0026#34;Objectives\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;quantity\u0026#34; Name=\u0026#34;Quantity\u0026#34; Type=\u0026#34;Float\u0026#34; Value=\u0026#34;1\u0026#34; /\u0026gt; \u0026lt;Parameter Id=\u0026#34;duration\u0026#34; Name=\u0026#34;Duration\u0026#34; Type=\u0026#34;Duration\u0026#34; Value=\u0026#34;PT1M\u0026#34; /\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;/Action\u0026gt; \u0026lt;/Activity\u0026gt; \u0026lt;/Activity\u0026gt; \u0026lt;Action Id=\u0026#34;assembly\u0026#34; Name=\u0026#34;Bicycle assemble\u0026#34; ResourceId=\u0026#34;bicycleAssembly\u0026#34; ResourceType=\u0026#34;Assembly\u0026#34; Type=\u0026#34;Use\u0026#34;\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;objectives\u0026#34; Name=\u0026#34;Production goals\u0026#34; Type=\u0026#34;Objectives\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;quantity\u0026#34; Name=\u0026#34;Quantity\u0026#34; Type=\u0026#34;Float\u0026#34; Value=\u0026#34;1\u0026#34; /\u0026gt; \u0026lt;Parameter Id=\u0026#34;duration\u0026#34; Name=\u0026#34;Duration\u0026#34; Type=\u0026#34;Duration\u0026#34; Value=\u0026#34;PT5M\u0026#34; /\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;/Action\u0026gt; \u0026lt;Action Id=\u0026#34;toStock\u0026#34; Name=\u0026#34;Bicycle to stock\u0026#34; ResourceId=\u0026#34;bicycle\u0026#34; ResourceType=\u0026#34;Product\u0026#34; Type=\u0026#34;Produce\u0026#34;\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;objectives\u0026#34; Name=\u0026#34;Production goals\u0026#34; Type=\u0026#34;Objectives\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;quantity\u0026#34; Name=\u0026#34;Quantity\u0026#34; Type=\u0026#34;Float\u0026#34; Value=\u0026#34;1\u0026#34; /\u0026gt; \u0026lt;Parameter Id=\u0026#34;duration\u0026#34; Name=\u0026#34;Duration\u0026#34; Type=\u0026#34;Duration\u0026#34; Value=\u0026#34;PT1M\u0026#34; /\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;/Action\u0026gt; \u0026lt;/Activity\u0026gt; Realms Strolch realms implement the multi-client capability which is thus baked right into the Strolch runtime. When configuring a Strolch runtime, realms are configured and for each realm the data store mode is set. Each realm has its own persistence configuration and can thus run in one of the 4 modes that the Strolch agent implements:\n EMPTY This is a transient data store mode, where no model changes are persisted, but they are only kept in memory. When the Strolch agent is started, this realm stays empty as no data is loaded. TRANSIENT This is the same as EMPTY, but with the difference that when the Strolch agent is started, an XML file is parsed and the in memory realm is populated with the elements parsed from that XML file. CACHED In this mode, all data is stored in memory, and any changes made are written back to the persistence layer. This allows for fast in-memory quries, but makes sure no data is lost when the agent is restarted. Strolch Realms are also responsible for opening Transactions, as these are bound to the persistence layer configured for this realm. At runtime, a realm is then accessed from the ComponentContainer:\nComponentContainer container = getAgent().getContainer(); StrolchRealm realm = container.getRealm(StrolchConstants.DEFAULT_REALM); try(StrolchTransaction tx = realm.openTx()) { Resource resource = tx.getResourceBy(\u0026#34;TestType\u0026#34;, \u0026#34;MyTestResource\u0026#34;); ... } "},{"uri":"https://strolch.li/documentation/architecture/","title":"Architecture","tags":[],"description":"","content":"Architecture Birds View A Strolch agent\u0026rsquo;s architecture can be seen as a simple three-tier architecture. The presentation layer is mostly a web frontend, where the communication with the agent is done via REST API calls.\nThe agent itself implements the business logic using Services, Commands, Queries etc.\nThe agent can communicate with other 3rd systems using any API, where it is preferred to use JSON over REST.\nThe agent can use a standard RDBMS as a storage system, where currently DAOs have been implemented only for PostgreSQL. Should it be required, then any JDBC cabable RDBMS can be used, as no PostgreSQL specific SQL commands are used.\nThe following diagram helps visualize this:\nSquirrel View The following diagram shows a more detailed view of the architecture of a Strolch Agent:\nA Strolch agent consists of the following main parts:\n REST Endpoints → expose an API to access the Strolch agent outside of the Java VM Services and Commands → implements business logic Searches → implements specific queries against the Strolch model Components → Implements additional logic, which is best implement as a component. E.g. active components which have threads, etc. Realms → implements multi-tenant capabilities In addition to the main parts, Strolch contains inherit capabilities, which gives Strolch unique features when compared to other Java Frameworks:\n Policies → Policies allow injecting different algorithms. All root elements can store Policy definitions, so that a service can delegate to a Policy and thus behave differently, depending on the element being accessed. Transactions → Transactions handle locking/unlocking of objects, updating the model and are the central API for the developer. Privileges → Strolch is user agnostic and any action, i.e. Service, Query, etc. is authorized against the authenticated user. Observers → modifications to the model are propagated to listeners using the observer pattern. Audits → Every access (read, modify) of the model are audited Versioning → modifications to objects are versioned and thus can be rolled back at a later time. "},{"uri":"https://strolch.li/tutorial/configuration/","title":"Configuration","tags":[],"description":"","content":"Configuration Let\u0026rsquo;s start by creating a new Apache Maven project. We\u0026rsquo;ll need a POM with the proper dependencies. We expect you to be familiar with Apache Maven, so we\u0026rsquo;ll just show you a working POM file:\npom.xml\n\u0026lt;?xml version=\u0026#34;1.0\u0026#34;?\u0026gt; \u0026lt;project xmlns=\u0026#34;http://maven.apache.org/POM/4.0.0\u0026#34; xmlns:xsi=\u0026#34;http://www.w3.org/2001/XMLSchema-instance\u0026#34; xsi:schemaLocation=\u0026#34;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\u0026#34;\u0026gt; \u0026lt;modelVersion\u0026gt;4.0.0\u0026lt;/modelVersion\u0026gt; \u0026lt;groupId\u0026gt;li.strolch\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;strolch-bookshop\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;0.1.0-SNAPSHOT\u0026lt;/version\u0026gt; \u0026lt;packaging\u0026gt;war\u0026lt;/packaging\u0026gt; \u0026lt;name\u0026gt;strolch-bookshop\u0026lt;/name\u0026gt; \u0026lt;description\u0026gt;Bookshop built on Strolch\u0026lt;/description\u0026gt; \u0026lt;inceptionYear\u0026gt;2017\u0026lt;/inceptionYear\u0026gt; \u0026lt;properties\u0026gt; \u0026lt;project.build.sourceEncoding\u0026gt;UTF-8\u0026lt;/project.build.sourceEncoding\u0026gt; \u0026lt;maven.build.timestamp.format\u0026gt;yyyy-MM-dd HH:mm:ss\u0026lt;/maven.build.timestamp.format\u0026gt; \u0026lt;buildTimestamp\u0026gt;${maven.build.timestamp}\u0026lt;/buildTimestamp\u0026gt; \u0026lt;jdk.version\u0026gt;1.8\u0026lt;/jdk.version\u0026gt; \u0026lt;jersey.version\u0026gt;2.25.1\u0026lt;/jersey.version\u0026gt; \u0026lt;slf4j.version\u0026gt;1.7.25\u0026lt;/slf4j.version\u0026gt; \u0026lt;logback.version\u0026gt;1.2.3\u0026lt;/logback.version\u0026gt; \u0026lt;petitparser.version\u0026gt;2.1.0\u0026lt;/petitparser.version\u0026gt; \u0026lt;hikaricp.version\u0026gt;2.7.1\u0026lt;/hikaricp.version\u0026gt; \u0026lt;postgresql.version\u0026gt;42.1.4\u0026lt;/postgresql.version\u0026gt; \u0026lt;gson.version\u0026gt;2.8.2\u0026lt;/gson.version\u0026gt; \u0026lt;annotation.version\u0026gt;1.3.1\u0026lt;/annotation.version\u0026gt; \u0026lt;javaxmail.version\u0026gt;1.6.0\u0026lt;/javaxmail.version\u0026gt; \u0026lt;serverlet.version\u0026gt;3.1.0\u0026lt;/serverlet.version\u0026gt; \u0026lt;jaxrs.api.version\u0026gt;2.1\u0026lt;/jaxrs.api.version\u0026gt; \u0026lt;junit.version\u0026gt;4.12\u0026lt;/junit.version\u0026gt; \u0026lt;hamcrest.version\u0026gt;1.3\u0026lt;/hamcrest.version\u0026gt; \u0026lt;mockito.version\u0026gt;2.0.8-beta\u0026lt;/mockito.version\u0026gt; \u0026lt;maven-compiler-plugin.version\u0026gt;3.7.0\u0026lt;/maven-compiler-plugin.version\u0026gt; \u0026lt;maven-source-plugin.version\u0026gt;3.0.1\u0026lt;/maven-source-plugin.version\u0026gt; \u0026lt;maven-jar-plugin.version\u0026gt;3.0.2\u0026lt;/maven-jar-plugin.version\u0026gt; \u0026lt;maven-war-plugin.version\u0026gt;3.1.0\u0026lt;/maven-war-plugin.version\u0026gt; \u0026lt;strolch.version\u0026gt;1.6.0-SNAPSHOT\u0026lt;/strolch.version\u0026gt; \u0026lt;warFinalName\u0026gt;bookshop\u0026lt;/warFinalName\u0026gt; \u0026lt;m2eclipse.wtp.contextRoot\u0026gt;${warFinalName}\u0026lt;/m2eclipse.wtp.contextRoot\u0026gt; \u0026lt;/properties\u0026gt; \u0026lt;dependencies\u0026gt; \u0026lt;!-- base --\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;org.slf4j\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;slf4j-api\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;${slf4j.version}\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;ch.qos.logback\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;logback-classic\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;${logback.version}\u0026lt;/version\u0026gt; \u0026lt;scope\u0026gt;runtime\u0026lt;/scope\u0026gt; \u0026lt;/dependency\u0026gt; \u0026lt;!-- strolch --\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;li.strolch\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;li.strolch.utils\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;${strolch.version}\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;li.strolch\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;li.strolch.privilege\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;${strolch.version}\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;li.strolch\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;li.strolch.model\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;${strolch.version}\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;li.strolch\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;li.strolch.agent\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;${strolch.version}\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;li.strolch\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;li.strolch.rest\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;${strolch.version}\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;li.strolch\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;li.strolch.service\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;${strolch.version}\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;li.strolch\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;li.strolch.testbase\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;${strolch.version}\u0026lt;/version\u0026gt; \u0026lt;scope\u0026gt;test\u0026lt;/scope\u0026gt; \u0026lt;/dependency\u0026gt; \u0026lt;!-- utils --\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.google.code.gson\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;gson\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;${gson.version}\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; \u0026lt;!-- web --\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;javax.servlet\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;javax.servlet-api\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;${serverlet.version}\u0026lt;/version\u0026gt; \u0026lt;scope\u0026gt;provided\u0026lt;/scope\u0026gt; \u0026lt;/dependency\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;javax.ws.rs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;javax.ws.rs-api\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;${jaxrs.api.version}\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;org.glassfish.jersey.core\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;jersey-common\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;${jersey.version}\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;org.glassfish.jersey.core\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;jersey-server\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;${jersey.version}\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;org.glassfish.jersey.containers\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;jersey-container-servlet\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;${jersey.version}\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; \u0026lt;!-- testing --\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;junit\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;junit\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;${junit.version}\u0026lt;/version\u0026gt; \u0026lt;scope\u0026gt;test\u0026lt;/scope\u0026gt; \u0026lt;/dependency\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;org.hamcrest\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;hamcrest-core\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;${hamcrest.version}\u0026lt;/version\u0026gt; \u0026lt;scope\u0026gt;test\u0026lt;/scope\u0026gt; \u0026lt;/dependency\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;org.hamcrest\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;hamcrest-library\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;${hamcrest.version}\u0026lt;/version\u0026gt; \u0026lt;scope\u0026gt;test\u0026lt;/scope\u0026gt; \u0026lt;/dependency\u0026gt; \u0026lt;/dependencies\u0026gt; \u0026lt;build\u0026gt; \u0026lt;resources\u0026gt; \u0026lt;!-- filter properties files, and copy the rest --\u0026gt; \u0026lt;resource\u0026gt; \u0026lt;directory\u0026gt;src/main/resources\u0026lt;/directory\u0026gt; \u0026lt;filtering\u0026gt;true\u0026lt;/filtering\u0026gt; \u0026lt;includes\u0026gt; \u0026lt;include\u0026gt;**/*.properties\u0026lt;/include\u0026gt; \u0026lt;/includes\u0026gt; \u0026lt;/resource\u0026gt; \u0026lt;resource\u0026gt; \u0026lt;directory\u0026gt;src/main/resources\u0026lt;/directory\u0026gt; \u0026lt;filtering\u0026gt;false\u0026lt;/filtering\u0026gt; \u0026lt;excludes\u0026gt; \u0026lt;exclude\u0026gt;**/*.properties\u0026lt;/exclude\u0026gt; \u0026lt;/excludes\u0026gt; \u0026lt;/resource\u0026gt; \u0026lt;/resources\u0026gt; \u0026lt;plugins\u0026gt; \u0026lt;plugin\u0026gt; \u0026lt;groupId\u0026gt;org.apache.maven.plugins\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;maven-compiler-plugin\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;${maven-compiler-plugin.version}\u0026lt;/version\u0026gt; \u0026lt;configuration\u0026gt; \u0026lt;source\u0026gt;${jdk.version}\u0026lt;/source\u0026gt; \u0026lt;target\u0026gt;${jdk.version}\u0026lt;/target\u0026gt; \u0026lt;/configuration\u0026gt; \u0026lt;/plugin\u0026gt; \u0026lt;plugin\u0026gt; \u0026lt;groupId\u0026gt;org.apache.maven.plugins\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;maven-war-plugin\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;${maven-war-plugin.version}\u0026lt;/version\u0026gt; \u0026lt;configuration\u0026gt; \u0026lt;failOnMissingWebXml\u0026gt;false\u0026lt;/failOnMissingWebXml\u0026gt; \u0026lt;warName\u0026gt;${warFinalName}\u0026lt;/warName\u0026gt; \u0026lt;/configuration\u0026gt; \u0026lt;/plugin\u0026gt; \u0026lt;/plugins\u0026gt; \u0026lt;/build\u0026gt; \u0026lt;profiles\u0026gt; \u0026lt;!-- active when building on eitch\u0026#39;s machines --\u0026gt; \u0026lt;profile\u0026gt; \u0026lt;id\u0026gt;m2e.eitchpc\u0026lt;/id\u0026gt; \u0026lt;activation\u0026gt; \u0026lt;property\u0026gt; \u0026lt;name\u0026gt;user.name\u0026lt;/name\u0026gt; \u0026lt;value\u0026gt;eitch\u0026lt;/value\u0026gt; \u0026lt;/property\u0026gt; \u0026lt;os\u0026gt; \u0026lt;family\u0026gt;unix\u0026lt;/family\u0026gt; \u0026lt;/os\u0026gt; \u0026lt;/activation\u0026gt; \u0026lt;properties\u0026gt; \u0026lt;strolch.env\u0026gt;dev.eitchpc\u0026lt;/strolch.env\u0026gt; \u0026lt;/properties\u0026gt; \u0026lt;/profile\u0026gt; \u0026lt;/profiles\u0026gt; \u0026lt;/project\u0026gt; Now we need the rest of the directory structure:\n../strolch-bookshop/ - src/main/java/ - li/strolch/bookshop/ - \u0026lt;!-- java classes --\u0026gt; - src/main/resources/ - ENV.properties - appVersion.properties - logback.xml - src/main/webapp/WEB-INF/ - StrolchBootstrap.xml - runtime - config/ - PrivilegeConfig.xml - PrivilegeRoles.xml - PrivilegeUsers.xml - StrolchConfiguration.xml - StrolchPolicies.xml - data/ - StrolchModel.xsd - defaultModel.xml - templates.xml - temp/ A few notes to the resource files:\n The ENV.properties file is filtered by maven and the environment to load is written in it using the environment variable strolch.env. The appVersion.properties file is also filtered by maven and allows to reflect on the version of this app at runtime. The logback.xml file configures logging using SLF4j and Logback. The StrolchBootstrap.xml file is used to configure Strolch\u0026rsquo;s environment and root directory. For a webapp it can be annoying to store Strolch\u0026rsquo;s configuration inside the webapp, which is why we can define an absolute path where the configuration is kept. In the following example we keep it in the root of the sources:\n\u0026lt;?xml version=\u0026#34;1.0\u0026#34; encoding=\u0026#34;UTF-8\u0026#34;?\u0026gt; \u0026lt;StrolchBootstrap\u0026gt; \u0026lt;env id=\u0026#34;dev.eitchpc\u0026#34; default=\u0026#34;true\u0026#34;\u0026gt; \u0026lt;root\u0026gt;/home/eitch/src/git/strolch-bookshop/runtime\u0026lt;/root\u0026gt; \u0026lt;environment\u0026gt;dev\u0026lt;/environment\u0026gt; \u0026lt;/env\u0026gt; \u0026lt;/StrolchBootstrap\u0026gt; Here we define two environments, but the both redefine the environment to dev. This is because we want this app to start on two different machines with different user home directories. See the profiles in the POM as to how these environments are activated using a environment property strolch.env.\nIn this next step we\u0026rsquo;ll create Strolch\u0026rsquo;s configuration at the location we defined in the StrolchBootstrap.xml file. Strolch\u0026rsquo;s configuration contains of three directories: config, data and temp. config contains static files which usually aren\u0026rsquo;t changed, data contains model files in XML format and temp is used at runtime for any temporary files, e.g. storing active sessions.\nThe configuration as well as the model has been described on Strolch\u0026rsquo;s documentation web page, we\u0026rsquo;ll just provide you with the files for the bookshop:\nPrivilegeConfig.xml\n\u0026lt;?xml version=\u0026#34;1.0\u0026#34; encoding=\u0026#34;UTF-8\u0026#34;?\u0026gt; \u0026lt;Privilege\u0026gt; \u0026lt;Container\u0026gt; \u0026lt;Parameters\u0026gt; \u0026lt;!-- parameters for the container itself --\u0026gt; \u0026lt;Parameter name=\u0026#34;secretKey\u0026#34; value=\u0026#34;45f251ce-d51f-4624-990a-8dcd5b181f0e\u0026#34;/\u0026gt; \u0026lt;Parameter name=\u0026#34;secretSalt\u0026#34; value=\u0026#34;4770a32d-1512-4891-9a63-362504932500\u0026#34;/\u0026gt; \u0026lt;Parameter name=\u0026#34;persistSessions\u0026#34; value=\u0026#34;true\u0026#34;/\u0026gt; \u0026lt;Parameter name=\u0026#34;autoPersistOnUserChangesData\u0026#34; value=\u0026#34;false\u0026#34;/\u0026gt; \u0026lt;Parameter name=\u0026#34;privilegeConflictResolution\u0026#34; value=\u0026#34;MERGE\u0026#34;/\u0026gt; \u0026lt;/Parameters\u0026gt; \u0026lt;EncryptionHandler class=\u0026#34;li.strolch.privilege.handler.DefaultEncryptionHandler\u0026#34;\u0026gt; \u0026lt;Parameters\u0026gt; \u0026lt;Parameter name=\u0026#34;hashAlgorithm\u0026#34; value=\u0026#34;PBKDF2WithHmacSHA512\u0026#34;/\u0026gt; \u0026lt;Parameter name=\u0026#34;hashIterations\u0026#34; value=\u0026#34;10000\u0026#34;/\u0026gt; \u0026lt;Parameter name=\u0026#34;hashKeyLength\u0026#34; value=\u0026#34;256\u0026#34;/\u0026gt; \u0026lt;/Parameters\u0026gt; \u0026lt;/EncryptionHandler\u0026gt; \u0026lt;PersistenceHandler class=\u0026#34;li.strolch.privilege.handler.XmlPersistenceHandler\u0026#34;\u0026gt; \u0026lt;Parameters\u0026gt; \u0026lt;Parameter name=\u0026#34;usersXmlFile\u0026#34; value=\u0026#34;PrivilegeUsers.xml\u0026#34;/\u0026gt; \u0026lt;Parameter name=\u0026#34;rolesXmlFile\u0026#34; value=\u0026#34;PrivilegeRoles.xml\u0026#34;/\u0026gt; \u0026lt;/Parameters\u0026gt; \u0026lt;/PersistenceHandler\u0026gt; \u0026lt;UserChallengeHandler class=\u0026#34;li.strolch.privilege.handler.MailUserChallengeHandler\u0026#34;\u0026gt; \u0026lt;/UserChallengeHandler\u0026gt; \u0026lt;/Container\u0026gt; \u0026lt;Policies\u0026gt; \u0026lt;Policy name=\u0026#34;DefaultPrivilege\u0026#34; class=\u0026#34;li.strolch.privilege.policy.DefaultPrivilege\u0026#34;/\u0026gt; \u0026lt;Policy name=\u0026#34;RoleAccessPrivilege\u0026#34; class=\u0026#34;li.strolch.privilege.policy.RoleAccessPrivilege\u0026#34;/\u0026gt; \u0026lt;Policy name=\u0026#34;UserAccessPrivilege\u0026#34; class=\u0026#34;li.strolch.privilege.policy.UserAccessPrivilege\u0026#34;/\u0026gt; \u0026lt;Policy name=\u0026#34;UserSessionAccessPrivilege\u0026#34; class=\u0026#34;li.strolch.privilege.policy.UsernameFromCertificatePrivilege\u0026#34;/\u0026gt; \u0026lt;/Policies\u0026gt; \u0026lt;/Privilege\u0026gt; PrivilegeRoles.xml\n\u0026lt;?xml version=\u0026#34;1.0\u0026#34; encoding=\u0026#34;UTF-8\u0026#34;?\u0026gt; \u0026lt;Roles\u0026gt; \u0026lt;Role name=\u0026#34;User\u0026#34;\u0026gt; \u0026lt;Privilege name=\u0026#34;li.strolch.service.api.Service\u0026#34; policy=\u0026#34;DefaultPrivilege\u0026#34;\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;li.strolch.search.StrolchSearch\u0026#34; policy=\u0026#34;DefaultPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;Allow\u0026gt;li.strolch.bookshop.search.BookSearch\u0026lt;/Allow\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;GetResource\u0026#34; policy=\u0026#34;ModelPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;GetOrder\u0026#34; policy=\u0026#34;ModelPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;GetActivity\u0026#34; policy=\u0026#34;ModelPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;AddResource\u0026#34; policy=\u0026#34;ModelPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;AddOrder\u0026#34; policy=\u0026#34;ModelPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;AddActivity\u0026#34; policy=\u0026#34;ModelPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;UpdateResource\u0026#34; policy=\u0026#34;ModelPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;UpdateOrder\u0026#34; policy=\u0026#34;ModelPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;UpdateActivity\u0026#34; policy=\u0026#34;ModelPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;RemoveResource\u0026#34; policy=\u0026#34;ModelPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;RemoveOrder\u0026#34; policy=\u0026#34;ModelPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;RemoveActivity\u0026#34; policy=\u0026#34;ModelPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;/Role\u0026gt; \u0026lt;Role name=\u0026#34;UserPrivileges\u0026#34;\u0026gt; \u0026lt;Privilege name=\u0026#34;PrivilegeSetUserLocale\u0026#34; policy=\u0026#34;UserAccessPrivilege\u0026#34; /\u0026gt; \u0026lt;Privilege name=\u0026#34;PrivilegeSetUserPassword\u0026#34; policy=\u0026#34;UserAccessPrivilege\u0026#34; /\u0026gt; \u0026lt;/Role\u0026gt; \u0026lt;!-- Internal --\u0026gt; \u0026lt;Role name=\u0026#34;StrolchAdmin\u0026#34;\u0026gt; \u0026lt;Privilege name=\u0026#34;li.strolch.service.api.Service\u0026#34; policy=\u0026#34;DefaultPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;li.strolch.search.StrolchSearch\u0026#34; policy=\u0026#34;DefaultPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;GetResource\u0026#34; policy=\u0026#34;ModelPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;GetOrder\u0026#34; policy=\u0026#34;ModelPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;GetActivity\u0026#34; policy=\u0026#34;ModelPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;AddResource\u0026#34; policy=\u0026#34;ModelPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;AddOrder\u0026#34; policy=\u0026#34;ModelPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;AddActivity\u0026#34; policy=\u0026#34;ModelPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;UpdateResource\u0026#34; policy=\u0026#34;ModelPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;UpdateOrder\u0026#34; policy=\u0026#34;ModelPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;UpdateActivity\u0026#34; policy=\u0026#34;ModelPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;RemoveResource\u0026#34; policy=\u0026#34;ModelPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;RemoveOrder\u0026#34; policy=\u0026#34;ModelPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;RemoveActivity\u0026#34; policy=\u0026#34;ModelPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;PrivilegeAddUser\u0026#34; policy=\u0026#34;UserAccessPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;PrivilegeSetUserPassword\u0026#34; policy=\u0026#34;UserAccessPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;/Role\u0026gt; \u0026lt;Role name=\u0026#34;agent\u0026#34;\u0026gt; \u0026lt;Privilege name=\u0026#34;li.strolch.privilege.handler.SystemAction\u0026#34; policy=\u0026#34;DefaultPrivilege\u0026#34;\u0026gt; \u0026lt;Allow\u0026gt;li.strolch.runtime.privilege.StrolchSystemAction\u0026lt;/Allow\u0026gt; \u0026lt;Allow\u0026gt;li.strolch.runtime.privilege.StrolchSystemActionWithResult\u0026lt;/Allow\u0026gt; \u0026lt;Allow\u0026gt;li.strolch.persistence.postgresql.PostgreSqlSchemaInitializer\u0026lt;/Allow\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;li.strolch.service.api.Service\u0026#34; policy=\u0026#34;DefaultPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;li.strolch.model.query.StrolchQuery\u0026#34; policy=\u0026#34;DefaultPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;li.strolch.search.StrolchSearch\u0026#34; policy=\u0026#34;DefaultPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;GetResource\u0026#34; policy=\u0026#34;ModelPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;GetOrder\u0026#34; policy=\u0026#34;ModelPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;GetActivity\u0026#34; policy=\u0026#34;ModelPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;AddResource\u0026#34; policy=\u0026#34;ModelPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;AddOrder\u0026#34; policy=\u0026#34;ModelPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;AddActivity\u0026#34; policy=\u0026#34;ModelPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;UpdateResource\u0026#34; policy=\u0026#34;ModelPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;UpdateOrder\u0026#34; policy=\u0026#34;ModelPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;UpdateActivity\u0026#34; policy=\u0026#34;ModelPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;RemoveResource\u0026#34; policy=\u0026#34;ModelPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;RemoveOrder\u0026#34; policy=\u0026#34;ModelPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;RemoveActivity\u0026#34; policy=\u0026#34;ModelPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;PrivilegeAction\u0026#34; policy=\u0026#34;DefaultPrivilege\u0026#34;\u0026gt; \u0026lt;Allow\u0026gt;Persist\u0026lt;/Allow\u0026gt; \u0026lt;Allow\u0026gt;PersistSessions\u0026lt;/Allow\u0026gt; \u0026lt;Allow\u0026gt;GetCertificates\u0026lt;/Allow\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;PrivilegeAddUser\u0026#34; policy=\u0026#34;UserAccessPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;PrivilegeModifyUser\u0026#34; policy=\u0026#34;UserAccessPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;PrivilegeGetUser\u0026#34; policy=\u0026#34;UserAccessPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;/Role\u0026gt; \u0026lt;/Roles\u0026gt; PrivilegeUsers.xml\n\u0026lt;?xml version=\u0026#34;1.0\u0026#34; encoding=\u0026#34;UTF-8\u0026#34;?\u0026gt; \u0026lt;Users\u0026gt; \u0026lt;User userId=\u0026#34;U10\u0026#34; username=\u0026#34;jill\u0026#34; password=\u0026#34;8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918\u0026#34;\u0026gt; \u0026lt;Firstname\u0026gt;Jill\u0026lt;/Firstname\u0026gt; \u0026lt;Lastname\u0026gt;Someone\u0026lt;/Lastname\u0026gt; \u0026lt;State\u0026gt;ENABLED\u0026lt;/State\u0026gt; \u0026lt;Locale\u0026gt;en-GB\u0026lt;/Locale\u0026gt; \u0026lt;Roles\u0026gt; \u0026lt;Role\u0026gt;User\u0026lt;/Role\u0026gt; \u0026lt;Role\u0026gt;UserPrivileges\u0026lt;/Role\u0026gt; \u0026lt;/Roles\u0026gt; \u0026lt;Properties\u0026gt; \u0026lt;Property name=\u0026#34;email\u0026#34; value=\u0026#34;eitch+jill@eitchnet.ch\u0026#34; /\u0026gt; \u0026lt;/Properties\u0026gt; \u0026lt;/User\u0026gt; \u0026lt;User userId=\u0026#34;U01\u0026#34; username=\u0026#34;admin\u0026#34; password=\u0026#34;8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918\u0026#34;\u0026gt; \u0026lt;Firstname\u0026gt;Jill\u0026lt;/Firstname\u0026gt; \u0026lt;Lastname\u0026gt;Someone\u0026lt;/Lastname\u0026gt; \u0026lt;State\u0026gt;ENABLED\u0026lt;/State\u0026gt; \u0026lt;Locale\u0026gt;en-GB\u0026lt;/Locale\u0026gt; \u0026lt;Roles\u0026gt; \u0026lt;Role\u0026gt;StrolchAdmin\u0026lt;/Role\u0026gt; \u0026lt;Role\u0026gt;UserPrivileges\u0026lt;/Role\u0026gt; \u0026lt;/Roles\u0026gt; \u0026lt;Properties\u0026gt; \u0026lt;Property name=\u0026#34;email\u0026#34; value=\u0026#34;eitch+admin@eitchnet.ch\u0026#34; /\u0026gt; \u0026lt;/Properties\u0026gt; \u0026lt;/User\u0026gt; \u0026lt;!-- Internal --\u0026gt; \u0026lt;User userId=\u0026#34;S01\u0026#34; username=\u0026#34;agent\u0026#34;\u0026gt; \u0026lt;State\u0026gt;SYSTEM\u0026lt;/State\u0026gt; \u0026lt;Roles\u0026gt; \u0026lt;Role\u0026gt;agent\u0026lt;/Role\u0026gt; \u0026lt;/Roles\u0026gt; \u0026lt;/User\u0026gt; \u0026lt;/Users\u0026gt; StrolchConfiguration.xml\n\u0026lt;?xml version=\u0026#34;1.0\u0026#34; encoding=\u0026#34;UTF-8\u0026#34;?\u0026gt; \u0026lt;StrolchConfiguration\u0026gt; \u0026lt;env id=\u0026#34;global\u0026#34;\u0026gt; \u0026lt;Runtime\u0026gt; \u0026lt;applicationName\u0026gt;Bookshop\u0026lt;/applicationName\u0026gt; \u0026lt;Properties\u0026gt; \u0026lt;locale\u0026gt;en\u0026lt;/locale\u0026gt; \u0026lt;verbose\u0026gt;true\u0026lt;/verbose\u0026gt; \u0026lt;/Properties\u0026gt; \u0026lt;/Runtime\u0026gt; \u0026lt;Component\u0026gt; \u0026lt;name\u0026gt;PrivilegeHandler\u0026lt;/name\u0026gt; \u0026lt;api\u0026gt;li.strolch.runtime.privilege.PrivilegeHandler\u0026lt;/api\u0026gt; \u0026lt;impl\u0026gt;li.strolch.runtime.privilege.DefaultStrolchPrivilegeHandler\u0026lt;/impl\u0026gt; \u0026lt;Properties\u0026gt; \u0026lt;privilegeConfigFile\u0026gt;PrivilegeConfig.xml\u0026lt;/privilegeConfigFile\u0026gt; \u0026lt;/Properties\u0026gt; \u0026lt;/Component\u0026gt; \u0026lt;Component\u0026gt; \u0026lt;name\u0026gt;RealmHandler\u0026lt;/name\u0026gt; \u0026lt;api\u0026gt;li.strolch.agent.api.RealmHandler\u0026lt;/api\u0026gt; \u0026lt;impl\u0026gt;li.strolch.agent.impl.DefaultRealmHandler\u0026lt;/impl\u0026gt; \u0026lt;depends\u0026gt;PrivilegeHandler\u0026lt;/depends\u0026gt; \u0026lt;Properties\u0026gt; \u0026lt;realms\u0026gt;defaultRealm\u0026lt;/realms\u0026gt; \u0026lt;dataStoreMode\u0026gt;TRANSIENT\u0026lt;/dataStoreMode\u0026gt; \u0026lt;dataStoreFile\u0026gt;defaultModel.xml\u0026lt;/dataStoreFile\u0026gt; \u0026lt;enableObserverUpdates\u0026gt;true\u0026lt;/enableObserverUpdates\u0026gt; \u0026lt;/Properties\u0026gt; \u0026lt;/Component\u0026gt; \u0026lt;Component\u0026gt; \u0026lt;name\u0026gt;ServiceHandler\u0026lt;/name\u0026gt; \u0026lt;api\u0026gt;li.strolch.service.api.ServiceHandler\u0026lt;/api\u0026gt; \u0026lt;impl\u0026gt;li.strolch.service.api.DefaultServiceHandler\u0026lt;/impl\u0026gt; \u0026lt;depends\u0026gt;RealmHandler\u0026lt;/depends\u0026gt; \u0026lt;depends\u0026gt;PrivilegeHandler\u0026lt;/depends\u0026gt; \u0026lt;Properties\u0026gt; \u0026lt;verbose\u0026gt;true\u0026lt;/verbose\u0026gt; \u0026lt;/Properties\u0026gt; \u0026lt;/Component\u0026gt; \u0026lt;Component\u0026gt; \u0026lt;name\u0026gt;PolicyHandler\u0026lt;/name\u0026gt; \u0026lt;api\u0026gt;li.strolch.policy.PolicyHandler\u0026lt;/api\u0026gt; \u0026lt;impl\u0026gt;li.strolch.policy.DefaultPolicyHandler\u0026lt;/impl\u0026gt; \u0026lt;Properties\u0026gt; \u0026lt;readPolicyFile\u0026gt;true\u0026lt;/readPolicyFile\u0026gt; \u0026lt;/Properties\u0026gt; \u0026lt;/Component\u0026gt; \u0026lt;Component\u0026gt; \u0026lt;name\u0026gt;ExecutionHandler\u0026lt;/name\u0026gt; \u0026lt;api\u0026gt;li.strolch.execution.ExecutionHandler\u0026lt;/api\u0026gt; \u0026lt;impl\u0026gt;li.strolch.execution.EventBasedExecutionHandler\u0026lt;/impl\u0026gt; \u0026lt;depends\u0026gt;RealmHandler\u0026lt;/depends\u0026gt; \u0026lt;depends\u0026gt;PrivilegeHandler\u0026lt;/depends\u0026gt; \u0026lt;/Component\u0026gt; \u0026lt;Component\u0026gt; \u0026lt;name\u0026gt;RestfulHandler\u0026lt;/name\u0026gt; \u0026lt;api\u0026gt;li.strolch.rest.RestfulStrolchComponent\u0026lt;/api\u0026gt; \u0026lt;impl\u0026gt;li.strolch.rest.RestfulStrolchComponent\u0026lt;/impl\u0026gt; \u0026lt;depends\u0026gt;SessionHandler\u0026lt;/depends\u0026gt; \u0026lt;Properties\u0026gt; \u0026lt;secureCookie\u0026gt;false\u0026lt;/secureCookie\u0026gt; \u0026lt;restLogging\u0026gt;false\u0026lt;/restLogging\u0026gt; \u0026lt;restLoggingEntity\u0026gt;false\u0026lt;/restLoggingEntity\u0026gt; \u0026lt;restTracing\u0026gt;ALL\u0026lt;/restTracing\u0026gt; \u0026lt;/Properties\u0026gt; \u0026lt;/Component\u0026gt; \u0026lt;Component\u0026gt; \u0026lt;name\u0026gt;SessionHandler\u0026lt;/name\u0026gt; \u0026lt;api\u0026gt;li.strolch.rest.StrolchSessionHandler\u0026lt;/api\u0026gt; \u0026lt;impl\u0026gt;li.strolch.rest.DefaultStrolchSessionHandler\u0026lt;/impl\u0026gt; \u0026lt;depends\u0026gt;PrivilegeHandler\u0026lt;/depends\u0026gt; \u0026lt;Properties\u0026gt; \u0026lt;session.ttl.minutes\u0026gt;30\u0026lt;/session.ttl.minutes\u0026gt; \u0026lt;session.reload\u0026gt;true\u0026lt;/session.reload\u0026gt; \u0026lt;/Properties\u0026gt; \u0026lt;/Component\u0026gt; \u0026lt;Component\u0026gt; \u0026lt;name\u0026gt;MailHandler\u0026lt;/name\u0026gt; \u0026lt;api\u0026gt;li.strolch.handler.mail.MailHandler\u0026lt;/api\u0026gt; \u0026lt;impl\u0026gt;li.strolch.handler.mail.SmtpMailHandler\u0026lt;/impl\u0026gt; \u0026lt;Properties\u0026gt; \u0026lt;fromAddr\u0026gt;relayer@eitchnet.ch\u0026lt;/fromAddr\u0026gt; \u0026lt;fromName\u0026gt;Susi\u0026lt;/fromName\u0026gt; \u0026lt;overrideRecipients\u0026gt;\u0026lt;![CDATA[IPSC Test \u0026lt;eitch@eitchnet.ch\u0026gt;]]\u0026gt;\u0026lt;/overrideRecipients\u0026gt; \u0026lt;recipientWhitelist\u0026gt;eitch@eitchnet.ch\u0026lt;/recipientWhitelist\u0026gt; \u0026lt;username\u0026gt;test\u0026lt;/username\u0026gt; \u0026lt;password\u0026gt;test\u0026lt;/password\u0026gt; \u0026lt;auth\u0026gt;true\u0026lt;/auth\u0026gt; \u0026lt;startTls\u0026gt;true\u0026lt;/startTls\u0026gt; \u0026lt;host\u0026gt;smtp.gmail.com\u0026lt;/host\u0026gt; \u0026lt;port\u0026gt;587\u0026lt;/port\u0026gt; \u0026lt;/Properties\u0026gt; \u0026lt;/Component\u0026gt; \u0026lt;/env\u0026gt; \u0026lt;env id=\u0026#34;dev\u0026#34;\u0026gt; \u0026lt;!-- overrides go here --\u0026gt; \u0026lt;/env\u0026gt; \u0026lt;/StrolchConfiguration\u0026gt; StrolchPolicies.xml\n\u0026lt;StrolchPolicies\u0026gt; \u0026lt;PolicyType Type=\u0026#34;ExecutionPolicy\u0026#34; Api=\u0026#34;li.strolch.execution.policy.ExecutionPolicy\u0026#34;\u0026gt; \u0026lt;Policy Key=\u0026#34;DurationExecution\u0026#34; Class=\u0026#34;li.strolch.execution.policy.DurationExecution\u0026#34; /\u0026gt; \u0026lt;Policy Key=\u0026#34;ReservationExection\u0026#34; Class=\u0026#34;li.strolch.execution.policy.ReservationExecution\u0026#34; /\u0026gt; \u0026lt;/PolicyType\u0026gt; \u0026lt;PolicyType Type=\u0026#34;ConfirmationPolicy\u0026#34; Api=\u0026#34;li.strolch.execution.policy.ConfirmationPolicy\u0026#34;\u0026gt; \u0026lt;Policy Key=\u0026#34;DefaultConfirmation\u0026#34; Class=\u0026#34;li.strolch.execution.policy.ConfirmationPolicy\u0026#34; /\u0026gt; \u0026lt;/PolicyType\u0026gt; \u0026lt;PolicyType Type=\u0026#34;ActivityArchivalPolicy\u0026#34; Api=\u0026#34;li.strolch.execution.policy.ActivityArchivalPolicy\u0026#34;\u0026gt; \u0026lt;Policy Key=\u0026#34;DefaultActivityArchival\u0026#34; Class=\u0026#34;li.strolch.execution.policy.ActivityArchivalPolicy\u0026#34; /\u0026gt; \u0026lt;/PolicyType\u0026gt; \u0026lt;/StrolchPolicies\u0026gt; A few notes on the configuration:\n Note how there are three users. Jill is a user with currently no privileges as it\u0026rsquo;s role definition is empty. Admin can do everything, and the agent user is a system user which can also do everything.\n There is one realm defined in the RealmHandler component which references the defaultModel.xml file in the data directory. This file then includes the currently still empty templates.xml file.\n We have defined a global environment, but are using the dev environment. The dev environment includes the definitions in the global environment.\n In PrivilegeConfig.xml we have enabled persistence of sessions, so you will be needing the unlimited JCE libraries for your JVM.\nWhen you restart the server, you don\u0026rsquo;t need to log back in, if your session is still alive.\n In PrivilegeRoles.xml there seems to be a lot of boilerplate. One thing about a highly configurable system is that sometimes the configuration is bigger. In this case we have opted to have the configuration shown and not use default values which you don\u0026rsquo;t see, so that privilege access is clearly seen.\n Your project is now ready to be imported into your favourite IDE. We have used both IntelliJ and Eclipse so this is up to you.\nNow that we have a configuration, it is time to have Strolch started when the WAR is deployed and started. In your IDE create a new class as follows:\nStartupListener.java\npackage li.strolch.bookshop.web; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import javax.servlet.annotation.WebListener; import java.io.InputStream; import li.strolch.agent.api.StrolchAgent; import li.strolch.agent.api.StrolchBootstrapper; import li.strolch.utils.helper.StringHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @WebListener public class StartupListener implements ServletContextListener { private static final Logger logger = LoggerFactory.getLogger(StartupListener.class); private static final String APP_NAME = \u0026#34;Bookshop\u0026#34;; private StrolchAgent agent; @Override public void contextInitialized(ServletContextEvent sce) { logger.info(\u0026#34;Starting \u0026#34; + APP_NAME + \u0026#34;...\u0026#34;); long start = System.currentTimeMillis(); try { String boostrapFileName = \u0026#34;/WEB-INF/\u0026#34; + StrolchBootstrapper.FILE_BOOTSTRAP; InputStream bootstrapFile = sce.getServletContext().getResourceAsStream(boostrapFileName); StrolchBootstrapper bootstrapper = new StrolchBootstrapper(StartupListener.class); this.agent = bootstrapper.setupByBoostrapFile(StartupListener.class, bootstrapFile); this.agent.initialize(); this.agent.start(); } catch (Throwable e) { logger.error(\u0026#34;Failed to start \u0026#34; + APP_NAME + \u0026#34; due to: \u0026#34; + e.getMessage(), e); throw e; } long took = System.currentTimeMillis() - start; logger.info(\u0026#34;Started \u0026#34; + APP_NAME + \u0026#34; in \u0026#34; + (StringHelper.formatMillisecondsDuration(took))); } @Override public void contextDestroyed(ServletContextEvent sce) { if (this.agent != null) { logger.info(\u0026#34;Destroying \u0026#34; + APP_NAME + \u0026#34;...\u0026#34;); try { this.agent.stop(); this.agent.destroy(); } catch (Throwable e) { logger.error(\u0026#34;Failed to stop \u0026#34; + APP_NAME + \u0026#34; due to: \u0026#34; + e.getMessage(), e); throw e; } } logger.info(\u0026#34;Destroyed \u0026#34; + APP_NAME); } } Now configure your IDE to start the web project, and then once it has started, you should see the following in the logs:\nBookshop:dev All 8 Strolch Components started. Took 44ms. Strolch is now ready to be used. Have fun =)) This log tells us the name of the app as defined in the StrolchConfiguration.xml file as well as which environment was loaded. Further we can see that 8 components were configured and started.\nThis concludes the initial setup of a new Strolch project. We can now go ahead and start building the business logic.\n"},{"uri":"https://strolch.li/history/","title":"History","tags":[],"description":"","content":"Overview Strolch is an open source component based software agent written in Java and can be compared, in a light sense, with the Java EE stack: Strolch takes care of persistence, implements Services for use cases, Commands as re-usable algorithms and has a parameterized data model.\nStrolch has an intrinsic understanding for mandates, which are called realms so that a single agent can be used to implement applications with multiple users/customers for instance in SaaS environments.\nThe parameterized data model consists of three top level objects, Resources, Orders and Activities. These objects can have any number of ParameterBags which in turn can have any number of Parameters on them. This allows for a very dynamic modelling of data structures including modification at run time. Multiple ready to use Parameter types are already implemented which handle the primitive types in Java including ListParameters for collections of these primitive types.\nOne of the main features of the Strolch agent, is that persistence is handled transparently and the user must not be worried about databases and the likes. Currently there are two implementations for persisting the Strolch model, a PostgreSQL and an XML file persistence. Currently both persistence layers persist the data by converting to XML and storing it into the database. The XML file persistence stores each object in its own file.\nThe agent itself has a small memory footprint and requires very few components to start. For the agent to be useful it needs additional functionality which is implemented in StrolchComponents. Each component is registered via its Java interface on the agent and is bound to the life cycle of the agent. When the agent is started, these components can be retrieved and used to perform any number of functionalities. This is the preferred way to extend the Strolch agent. There are a number of components already implemented, e.g. the ServiceHandler which executes Services in a controlled fashion and can validate authorized access to these services.\nNo software product is complete without a system for authentication and authorization. Strolch implements this by using the Privilege framework which has been written by Robert von Burg. The standard ServiceHandler detects the existence of the PrivilegeHandler and then validates that the user has authorization to perform the service. This framework is implemented as its own Strolch component, thus can be retrieved at any time during execution to perform fine grained and special authorization validation.\nMotivation A question often asked is why create Strolch. What are its benefits in contrast to using Java SE with an OR-Mapper like Hibernate, or using Java EE on JBoss or Glassfish? Especially since many of the features existing in those stacks needed to be re-created in Strolch.\nThe first answer to this question is that those systems are often overly complicated and bloated. Java SE with Hibernate certainly is a viable option when it comes to being light-weightier but Hibernate, even though it is supposed to, often fails to truly help remove the need to really understand an RDBMS. Often enough Hibernate will just get in the way of the most important part of development: writing the business code. Being an OR-Mapper which is supposed to implement all the nitty-gritty details of an RDBMS system, Hibernate, and JPA for that matter, still often has the developer go back to understanding these details.\nStrolch tries a different approach to persistence. Instead of writing pojos/entities, Strolch\u0026rsquo;s model has the concept that each element\u0026rsquo;s attributes are part of a composition pattern: each attribute is its own object and thus can be dynamically changed at runtime, but also makes persistence of such an element generic. Instead of having fixed attributes for a concrete class, these parameters are stored in a map and are accessed through the parameter\u0026rsquo;s ID.\nAssigning an ID to an attribute for accessing of course brings its own downsides, i.e. the parameter might simply not be there, when being accessed. This is certainly an issue that the developer must handle, when implementing a project using Strolch, but allows the developer to not need to worry about persistence, as this is generically handled.\nSince the persistence is generically handled, and Strolch stays lightweight on its requirements at runtime, the developer can quickly get down to what is important for business value: Writing the business logic and the presentation layer. Here too Strolch tries to help the developer by bringing in concepts which are easy to follow: Use cases are implemented as Services, and re-usable business logic is put into Commands.\nThere will be reasons against using Strolch, as there will be against using the Java EE stack, or an OR-Mapper or even the Java ecosystem for that fact. Important is to note, that the concepts behind Strolch are nothing new, but have been implemented in at least two previous proprietary products. Since those products are not accessible to the public, it was decided that a re-implementation might be of use to the programming community at large.\nCurrently, there is at least one company using Strolch in a commercial project which helps drive Strolch\u0026rsquo;s development and further motivates its existence.\nStrolch is an open source project and licensed under the Apache License 2.0.\n##Technology Strolch is written in Java and is programmed against the JDK 8. Strolch runs on any JRE 8 compliant environment. Strolch is tested on the Oracle JRE 8.\n"},{"uri":"https://strolch.li/documentation/","title":"Documentation","tags":[],"description":"","content":"Overview Strolch\u0026rsquo;s documentation has only just begun, but as more and more details of the implementation in Strolch are fixed, more documentation can be created and will be available here.\nCurrently we have the following topics of discussion:\n Architecture Model Do and Don\u0026#39;t Runtime Configuration Realms Components Services and Commands Searches Queries Transactions Policies Observers Versioning Reports Privileges "},{"uri":"https://strolch.li/documentation/model/","title":"Model","tags":[],"description":"","content":"Model Before we dive into the entire model, let\u0026rsquo;s show an example and how it would be modelled in Strolch and use in Strolch:\nA possible model would look as follows:\n\u0026lt;?xml version=\u0026#34;1.0\u0026#34; encoding=\u0026#34;UTF-8\u0026#34; ?\u0026gt; \u0026lt;StrolchModel xmlns=\u0026#34;https://strolch.li/xsd/StrolchModel-1.6.xsd\u0026#34;\u0026gt; \u0026lt;Resource Id=\u0026#34;Product\u0026#34; Name=\u0026#34;Product Template\u0026#34; Type=\u0026#34;Template\u0026#34;\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;parameters\u0026#34; Name=\u0026#34;Parameters\u0026#34; Type=\u0026#34;Parameters\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;description\u0026#34; Name=\u0026#34;Description\u0026#34; Type=\u0026#34;String\u0026#34; Value=\u0026#34;\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;color\u0026#34; Name=\u0026#34;Color\u0026#34; Type=\u0026#34;String\u0026#34; Value=\u0026#34;\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;form\u0026#34; Name=\u0026#34;Form\u0026#34; Type=\u0026#34;String\u0026#34; Value=\u0026#34;\u0026#34;/\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;relations\u0026#34; Name=\u0026#34;Relations\u0026#34; Type=\u0026#34;Relations\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;articles\u0026#34; Name=\u0026#34;Articles\u0026#34; Type=\u0026#34;StringList\u0026#34; Interpretation=\u0026#34;Resource-Ref\u0026#34; Uom=\u0026#34;Article\u0026#34; Value=\u0026#34;\u0026#34;/\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;/Resource\u0026gt; \u0026lt;Resource Id=\u0026#34;Article\u0026#34; Name=\u0026#34;Article Template\u0026#34; Type=\u0026#34;Template\u0026#34;\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;parameters\u0026#34; Name=\u0026#34;Parameters\u0026#34; Type=\u0026#34;Parameters\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;description\u0026#34; Name=\u0026#34;Description\u0026#34; Type=\u0026#34;String\u0026#34; Value=\u0026#34;\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;barcode\u0026#34; Name=\u0026#34;Barcode\u0026#34; Type=\u0026#34;String\u0026#34; Value=\u0026#34;\u0026#34;/\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;relations\u0026#34; Name=\u0026#34;Relations\u0026#34; Type=\u0026#34;Relations\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;product\u0026#34; Name=\u0026#34;Product\u0026#34; Type=\u0026#34;String\u0026#34; Interpretation=\u0026#34;Resource-Ref\u0026#34; Uom=\u0026#34;Product\u0026#34; Value=\u0026#34;\u0026#34;/\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;/Resource\u0026gt; \u0026lt;Resource Id=\u0026#34;Customer\u0026#34; Name=\u0026#34;Customer Template\u0026#34; Type=\u0026#34;Template\u0026#34;\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;address\u0026#34; Name=\u0026#34;Address\u0026#34; Type=\u0026#34;Address\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;street\u0026#34; Name=\u0026#34;Street\u0026#34; Type=\u0026#34;String\u0026#34; Value=\u0026#34;\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;zip\u0026#34; Name=\u0026#34;Zip\u0026#34; Type=\u0026#34;String\u0026#34; Value=\u0026#34;\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;city\u0026#34; Name=\u0026#34;City\u0026#34; Type=\u0026#34;String\u0026#34; Value=\u0026#34;\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;country\u0026#34; Name=\u0026#34;Country\u0026#34; Type=\u0026#34;String\u0026#34; Value=\u0026#34;\u0026#34;/\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;/Resource\u0026gt; \u0026lt;Order Id=\u0026#34;Order\u0026#34; Name=\u0026#34;Order\u0026#34; Type=\u0026#34;Template\u0026#34;\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;quantities\u0026#34; Name=\u0026#34;Quantities per Article Id\u0026#34; Type=\u0026#34;Quantities\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;quantity\u0026#34; Name=\u0026#34;Quantity\u0026#34; Type=\u0026#34;Float\u0026#34; Value=\u0026#34;0\u0026#34;/\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;relations\u0026#34; Name=\u0026#34;Relations\u0026#34; Type=\u0026#34;Relations\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;articles\u0026#34; Name=\u0026#34;Articles\u0026#34; Type=\u0026#34;StringList\u0026#34; Interpretation=\u0026#34;Resource-Ref\u0026#34; Uom=\u0026#34;Article\u0026#34; Value=\u0026#34;\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;customer\u0026#34; Name=\u0026#34;Customer\u0026#34; Type=\u0026#34;String\u0026#34; Interpretation=\u0026#34;Resource-Ref\u0026#34; Uom=\u0026#34;Customer\u0026#34; Value=\u0026#34;\u0026#34;/\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;/Order\u0026gt; \u0026lt;/StrolchModel\u0026gt; Let\u0026rsquo;s go through this model:\n In the above model we see that the id and name fields are always on the element, and thus aren\u0026rsquo;t added as parameters. Further most elements have a parameters ParameterBag, with one or more parameters, modelling the fields. Note that in this example the Type of all the elements is Template. Strolch has API support to create a clone of these elements, so that they have a unique ID, and the proper type for persistence. The Product element has three parameters: description, color and form. In this case they are all of type String. Further the relations ParameterBag defines the relationships, i.e. the product knows its articles. Note how the relation is first defined in a relations ParameterBag and that the Parameter has Interpretation=\u0026ldquo;Resource-Ref\u0026rdquo; Uom=\u0026ldquo;Product\u0026rdquo; attributes. Strolch has API support for this, making it trivial to retrieve a dependency. The Article element has two parameters description and barcode. Further it has a reference to its Product. The Order element doesn\u0026rsquo;t model the date and state fields as parameters, as these are inherently part of an Order element. The Order does define two references to customer and articles. A special case is the quantities ParameterBag. This bag of parameters is used to store the per article quantity for this order. With ParameterBags, you can eliminate the use of simple aggregate classes, as is commonly used in object-oriented programming. The Customer element models a address ParameterBag to store the address of a customer. Using a separate bag allows for further more direct fields to stored on the default parameters bag. Now that we have a basic understanding of te model, it is of far more interest in how to create and interact with these elements at runtime. The following listing will perform simple operations:\ntry (StrolchTransaction tx = runtimeMock.openUserTx(certificate, false)) { /* * create a new product */ Resource dafalgan = tx.getResourceTemplate(\u0026#34;Product\u0026#34;, true); dafalgan.setName(\u0026#34;Dafalgan 100mg\u0026#34;); dafalgan.getParameter(\u0026#34;description\u0026#34;, true).setValue(\u0026#34;Dafalgan is for pain.\u0026#34;); dafalgan.getParameter(\u0026#34;color\u0026#34;, true).setValue(\u0026#34;Yellow\u0026#34;); dafalgan.getParameter(\u0026#34;form\u0026#34;, true).setValue(\u0026#34;flat\u0026#34;); StringListParameter articlesP = dafalgan.getRelationsParam(\u0026#34;articles\u0026#34;, true); /* * create articles */ Resource dafalgan1 = tx.getResourceTemplate(\u0026#34;Article\u0026#34;, true); dafalgan1.setName(\u0026#34;Dafalgan 100mg 10 pce\u0026#34;); dafalgan1.getParameter(\u0026#34;description\u0026#34;, true).setValue(\u0026#34;This is pack with 10 pieces.\u0026#34;); dafalgan1.getParameter(\u0026#34;barcode\u0026#34;, true).setValue(\u0026#34;654654\u0026#34;); Resource dafalgan2 = tx.getResourceTemplate(\u0026#34;Article\u0026#34;, true); dafalgan2.setName(\u0026#34;Dafalgan 100mg 20 pce\u0026#34;); dafalgan2.getParameter(\u0026#34;description\u0026#34;, true).setValue(\u0026#34;This is pack with 20 pieces.\u0026#34;); dafalgan2.getParameter(\u0026#34;barcode\u0026#34;, true).setValue(\u0026#34;654655\u0026#34;); /* * add reference to product */ dafalgan1.getRelationParam(\u0026#34;product\u0026#34;).setValue(dafalgan.getId()); articlesP.addValue(dafalgan1.getId()); dafalgan2.getRelationParam(\u0026#34;product\u0026#34;).setValue(dafalgan.getId()); articlesP.addValue(dafalgan2.getId()); /* * create a new customer */ Resource customer1 = tx.getResourceTemplate(\u0026#34;Customer\u0026#34;, true); customer1.setName(\u0026#34;John Doe\u0026#34;); // set address ParameterBag addressBag = customer1.getParameterBag(\u0026#34;address\u0026#34;, true); addressBag.getParameter(\u0026#34;street\u0026#34;, true).setValue(\u0026#34;Main Str. 1\u0026#34;); addressBag.getParameter(\u0026#34;zip\u0026#34;, true).setValue(\u0026#34;1234\u0026#34;); addressBag.getParameter(\u0026#34;city\u0026#34;, true).setValue(\u0026#34;Hometown\u0026#34;); addressBag.getParameter(\u0026#34;country\u0026#34;, true).setValue(\u0026#34;Switzerland\u0026#34;); /* * create a new order */ Order order = tx.getOrderTemplate(\u0026#34;Order\u0026#34;, true); order.setName(\u0026#34;Order for \u0026#34; + customer1.getName()); order.setDate(LocalDate.of(2021, 2, 1)); order.setState(State.PLANNED); // store reference to customer order.getRelationParam(\u0026#34;customer\u0026#34;, true).setValue(customer1.getId()); StringListParameter orderArticlesP = order.getRelationsParam(\u0026#34;articles\u0026#34;, true); ParameterBag quantitiesBag = order.getParameterBag(\u0026#34;quantities\u0026#34;, true); FloatParameter quantityT = quantitiesBag.removeParameter(\u0026#34;quantity\u0026#34;); // order quantity of 20 for Dafalgan 1 FloatParameter q1P = quantityT.getClone(); q1P.setId(dafalgan1.getId()); q1P.setValue(20); quantitiesBag.addParameter(q1P); orderArticlesP.addValue(dafalgan1.getId()); // set order quantity of 10 for Dafalgan 2 FloatParameter q2P = quantityT.getClone(); orderArticlesP.addValue(dafalgan2.getId()); q2P.setId(dafalgan2.getId()); q2P.setValue(20); quantitiesBag.addParameter(q2P); // keep IDs for later use dafalganId = dafalgan.getId(); dafalgan1Id = dafalgan1.getId(); dafalgan2Id = dafalgan2.getId(); customerId = customer1.getId(); orderId = order.getId(); /* * persist */ tx.add(dafalgan); tx.add(dafalgan1); tx.add(dafalgan2); tx.add(customer1); tx.add(order); // commit tx.commitOnClose(); } try (StrolchTransaction tx = runtimeMock.openUserTx(certificate, true)) { // get order Order order = tx.getOrderBy(\u0026#34;Order\u0026#34;, orderId, true); assertNotNull(orderId); assertEquals(\u0026#34;Order for John Doe\u0026#34;, order.getName()); // get customer Resource customer = tx.getResourceByRelation(order, \u0026#34;customer\u0026#34;, true); assertNotNull(customer); assertEquals(\u0026#34;John Doe\u0026#34;, customer.getName()); // get articles List\u0026lt;Resource\u0026gt; articles = tx.getResourcesByRelation(order, \u0026#34;articles\u0026#34;, true); assertEquals(2, articles.size()); // get products List\u0026lt;Resource\u0026gt; products = articles.stream().map(a -\u0026gt; tx.getResourceByRelation(a, \u0026#34;product\u0026#34;, true)) .distinct().collect(Collectors.toList()); assertEquals(1, products.size()); // search for all orders in state PLANNED and with customer List\u0026lt;Order\u0026gt; orders = new OrderSearch().types(\u0026#34;Order\u0026#34;).stateIsIn(State.PLANNED) .where(ExpressionsSupport.relationParam(\u0026#34;customer\u0026#34;).isEqualTo(customerId)).search(tx).toList(); assertEquals(1, orders.size()); } Note: Checkout example-model.xml and SimpleModelTest.java for these examples.\n There is an XML Schema which defines the model in XML: StrolchModel-1.6.xsd\n Here is an example of all the possible elements in Strolch:\n\u0026lt;StrolchModel xmlns:xsi=\u0026#34;http://www.w3.org/2001/XMLSchema-instance\u0026#34; xmlns=\u0026#34;https://strolch.li/xsd/StrolchModel-1.6.xsd\u0026#34; xsi:schemaLocation=\u0026#34;https://strolch.li/xsd/StrolchModel-1.6.xsd StrolchModel-1.6.xsd\u0026#34;\u0026gt; \u0026lt;IncludeFile file=\u0026#34;Include1.xml\u0026#34;/\u0026gt; \u0026lt;Order Id=\u0026#34;@test1\u0026#34; Name=\u0026#34;Test Order\u0026#34; Type=\u0026#34;Order\u0026#34;\u0026gt; \u0026lt;Version Version=\u0026#34;0\u0026#34; CreatedBy=\u0026#34;test\u0026#34; CreatedAt=\u0026#34;2012-11-30T18:12:05.628+01:00\u0026#34; Deleted=\u0026#34;false\u0026#34;/\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;@bag01\u0026#34; Name=\u0026#34;Test Bag\u0026#34; Type=\u0026#34;TestBag\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;@param1\u0026#34; Name=\u0026#34;Boolean Param\u0026#34; Type=\u0026#34;Boolean\u0026#34; Value=\u0026#34;true\u0026#34;/\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;@bag01\u0026#34; Name=\u0026#34;Test Bag\u0026#34; Type=\u0026#34;TestBag\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;@param1\u0026#34; Name=\u0026#34;Boolean Param\u0026#34; Type=\u0026#34;Boolean\u0026#34; Value=\u0026#34;true\u0026#34;/\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;Policies\u0026gt; \u0026lt;Policy Type=\u0026#34;PlanningPolicy\u0026#34; Value=\u0026#34;key:SimplePlanning\u0026#34;/\u0026gt; \u0026lt;Policy Type=\u0026#34;ConfirmationPolicy\u0026#34; Value=\u0026#34;key:NoConfirmation\u0026#34;/\u0026gt; \u0026lt;/Policies\u0026gt; \u0026lt;/Order\u0026gt; \u0026lt;Resource Id=\u0026#34;MyTestResource\u0026#34; Name=\u0026#34;Test Name\u0026#34; Type=\u0026#34;TestType\u0026#34;\u0026gt; \u0026lt;Version Version=\u0026#34;0\u0026#34; CreatedBy=\u0026#34;test\u0026#34; CreatedAt=\u0026#34;2012-11-30T18:12:05.628+01:00\u0026#34; Deleted=\u0026#34;false\u0026#34;/\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;@bag01\u0026#34; Name=\u0026#34;Test Bag 01\u0026#34; Type=\u0026#34;TestBag\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;@param1\u0026#34; Name=\u0026#34;Boolean Param\u0026#34; Type=\u0026#34;Boolean\u0026#34; Value=\u0026#34;true\u0026#34;/\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;@bag02\u0026#34; Name=\u0026#34;Test Bag 02\u0026#34; Type=\u0026#34;TestBag\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;@param1\u0026#34; Name=\u0026#34;Boolean Param\u0026#34; Type=\u0026#34;Boolean\u0026#34; Value=\u0026#34;true\u0026#34;/\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;TimedState Id=\u0026#34;@booleanState\u0026#34; Name=\u0026#34;Boolean State\u0026#34; Type=\u0026#34;Boolean\u0026#34;\u0026gt; \u0026lt;Value Time=\u0026#34;1970-01-01T00:02:00.000+01:00\u0026#34; Value=\u0026#34;false\u0026#34;/\u0026gt; \u0026lt;/TimedState\u0026gt; \u0026lt;Policies\u0026gt; \u0026lt;Policy Type=\u0026#34;PlanningPolicy\u0026#34; Value=\u0026#34;key:SimplePlanning\u0026#34;/\u0026gt; \u0026lt;Policy Type=\u0026#34;ConfirmationPolicy\u0026#34; Value=\u0026#34;key:NoConfirmation\u0026#34;/\u0026gt; \u0026lt;/Policies\u0026gt; \u0026lt;/Resource\u0026gt; \u0026lt;Activity Id=\u0026#34;activity_1\u0026#34; Name=\u0026#34;Activity\u0026#34; Type=\u0026#34;parentType\u0026#34; TimeOrdering=\u0026#34;Series\u0026#34;\u0026gt; \u0026lt;Version Version=\u0026#34;0\u0026#34; CreatedBy=\u0026#34;test\u0026#34; CreatedAt=\u0026#34;2012-11-30T18:12:05.628+01:00\u0026#34; Deleted=\u0026#34;false\u0026#34;/\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;@bag01\u0026#34; Name=\u0026#34;Test Bag\u0026#34; Type=\u0026#34;TestBag\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;@param1\u0026#34; Name=\u0026#34;Boolean Param\u0026#34; Type=\u0026#34;Boolean\u0026#34; Value=\u0026#34;true\u0026#34;/\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;Policies\u0026gt; \u0026lt;Policy Type=\u0026#34;PlanningPolicy\u0026#34; Value=\u0026#34;key:SimplePlanning\u0026#34;/\u0026gt; \u0026lt;Policy Type=\u0026#34;ConfirmationPolicy\u0026#34; Value=\u0026#34;key:NoConfirmation\u0026#34;/\u0026gt; \u0026lt;/Policies\u0026gt; \u0026lt;Action Id=\u0026#34;action_1\u0026#34; Name=\u0026#34;Action 1\u0026#34; ResourceId=\u0026#34;dummyId\u0026#34; ResourceType=\u0026#34;dummyType\u0026#34; State=\u0026#34;Created\u0026#34; Type=\u0026#34;Use\u0026#34;\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;@bag01\u0026#34; Name=\u0026#34;Test Bag\u0026#34; Type=\u0026#34;TestBag\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;@param1\u0026#34; Name=\u0026#34;Boolean Param\u0026#34; Type=\u0026#34;Boolean\u0026#34; Value=\u0026#34;true\u0026#34;/\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;Policies\u0026gt; \u0026lt;Policy Type=\u0026#34;PlanningPolicy\u0026#34; Value=\u0026#34;key:SimplePlanning\u0026#34;/\u0026gt; \u0026lt;Policy Type=\u0026#34;ConfirmationPolicy\u0026#34; Value=\u0026#34;key:NoConfirmation\u0026#34;/\u0026gt; \u0026lt;/Policies\u0026gt; \u0026lt;ValueChange StateId=\u0026#34;dummyId\u0026#34; Time=\u0026#34;2012-11-30T18:12:05.628+01:00\u0026#34; Value=\u0026#34;5\u0026#34; Type=\u0026#34;Integer\u0026#34;/\u0026gt; \u0026lt;ValueChange StateId=\u0026#34;dummyId\u0026#34; Time=\u0026#34;2012-11-30T18:12:06.628+01:00\u0026#34; Value=\u0026#34;6\u0026#34; Type=\u0026#34;Integer\u0026#34;/\u0026gt; \u0026lt;/Action\u0026gt; \u0026lt;Activity Id=\u0026#34;child_activity\u0026#34; Name=\u0026#34;Child Activity\u0026#34; Type=\u0026#34;childType\u0026#34; TimeOrdering=\u0026#34;Series\u0026#34;\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;@bag01\u0026#34; Name=\u0026#34;Test Bag\u0026#34; Type=\u0026#34;TestBag\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;@param1\u0026#34; Name=\u0026#34;Boolean Param\u0026#34; Type=\u0026#34;Boolean\u0026#34; Value=\u0026#34;true\u0026#34;/\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;Policies\u0026gt; \u0026lt;Policy Type=\u0026#34;PlanningPolicy\u0026#34; Value=\u0026#34;key:SimplePlanning\u0026#34;/\u0026gt; \u0026lt;Policy Type=\u0026#34;ConfirmationPolicy\u0026#34; Value=\u0026#34;key:NoConfirmation\u0026#34;/\u0026gt; \u0026lt;/Policies\u0026gt; \u0026lt;Action Id=\u0026#34;action_2\u0026#34; Name=\u0026#34;Action 2\u0026#34; ResourceId=\u0026#34;dummyId\u0026#34; ResourceType=\u0026#34;dummyType\u0026#34; State=\u0026#34;Planned\u0026#34; Type=\u0026#34;Use\u0026#34;\u0026gt; \u0026lt;ValueChange StateId=\u0026#34;dummyId\u0026#34; Time=\u0026#34;2012-11-30T18:12:05.628+01:00\u0026#34; Value=\u0026#34;5\u0026#34; Type=\u0026#34;Integer\u0026#34;/\u0026gt; \u0026lt;ValueChange StateId=\u0026#34;dummyId\u0026#34; Time=\u0026#34;2012-11-30T18:12:06.628+01:00\u0026#34; Value=\u0026#34;6\u0026#34; Type=\u0026#34;Integer\u0026#34;/\u0026gt; \u0026lt;/Action\u0026gt; \u0026lt;Action Id=\u0026#34;action_3\u0026#34; Name=\u0026#34;Action 3\u0026#34; ResourceId=\u0026#34;dummyId\u0026#34; ResourceType=\u0026#34;dummyType\u0026#34; State=\u0026#34;Created\u0026#34; Type=\u0026#34;Use\u0026#34;/\u0026gt; \u0026lt;/Activity\u0026gt; \u0026lt;/Activity\u0026gt; \u0026lt;/StrolchModel\u0026gt; "},{"uri":"https://strolch.li/tutorial/model/","title":"Model","tags":[],"description":"","content":"Model Looking back at our functionality, we can list the following entities that need to be modelled (We\u0026rsquo;ll go into detail further down):\n Book → books can be orderd UserCart → we want to store the cart of the user Account → we need to know where to send the orders PurchaseOrder → we need to know what was ordered and keep track of its state FromStock → we want to use activities to implement the process of an order In Strolch we model entities by defining the element as a template. Thus in the templates.xml file we can add the templates with the following content:\nBook\n\u0026lt;Resource Id=\u0026#34;Book\u0026#34; Name=\u0026#34;Book Template\u0026#34; Type=\u0026#34;Template\u0026#34;\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;parameters\u0026#34; Name=\u0026#34;Parameters\u0026#34; Type=\u0026#34;Parameters\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;description\u0026#34; Name=\u0026#34;Description\u0026#34; Type=\u0026#34;String\u0026#34; Value=\u0026#34;\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;quantity\u0026#34; Name=\u0026#34;Quantity in Stock\u0026#34; Type=\u0026#34;Integer\u0026#34; Value=\u0026#34;0\u0026#34;/\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;/Resource\u0026gt; Account\n\u0026lt;Resource Id=\u0026#34;Account\u0026#34; Name=\u0026#34;Account Template\u0026#34; Type=\u0026#34;Template\u0026#34;\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;parameters\u0026#34; Name=\u0026#34;Parameters\u0026#34; Type=\u0026#34;Parameters\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;user\u0026#34; Name=\u0026#34;User\u0026#34; Type=\u0026#34;String\u0026#34; Value=\u0026#34;\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;firstName\u0026#34; Name=\u0026#34;First Name\u0026#34; Type=\u0026#34;String\u0026#34; Value=\u0026#34;\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;lastName\u0026#34; Name=\u0026#34;Last Name\u0026#34; Type=\u0026#34;String\u0026#34; Value=\u0026#34;\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;email\u0026#34; Name=\u0026#34;E-Mail\u0026#34; Type=\u0026#34;String\u0026#34; Value=\u0026#34;\u0026#34;/\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;ParameterBag Name=\u0026#34;Address\u0026#34; Id=\u0026#34;address\u0026#34; Type=\u0026#34;Address\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;phone\u0026#34; Name=\u0026#34;Telephone Number\u0026#34; Type=\u0026#34;String\u0026#34; Value=\u0026#34;\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;street\u0026#34; Name=\u0026#34;Street\u0026#34; Type=\u0026#34;String\u0026#34; Value=\u0026#34;\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;city\u0026#34; Name=\u0026#34;City\u0026#34; Type=\u0026#34;String\u0026#34; Value=\u0026#34;\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;zip\u0026#34; Name=\u0026#34;Postal Code\u0026#34; Type=\u0026#34;String\u0026#34; Value=\u0026#34;\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;country\u0026#34; Name=\u0026#34;Country\u0026#34; Type=\u0026#34;String\u0026#34; Value=\u0026#34;\u0026#34;/\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;/Resource\u0026gt; UserCart\n\u0026lt;Resource Id=\u0026#34;UserCart\u0026#34; Name=\u0026#34;UserCart Template\u0026#34; Type=\u0026#34;Template\u0026#34;\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;books\u0026#34; Name=\u0026#34;Books\u0026#34; Type=\u0026#34;Book\u0026#34;\u0026gt; \u0026lt;!-- Parameter Id=\u0026#34;bookId\u0026#34; Name=\u0026#34;Book reference\u0026#34; Type=\u0026#34;Float\u0026#34; Value=\u0026#34;0\u0026#34; / --\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;relations\u0026#34; Name=\u0026#34;Relations\u0026#34; Type=\u0026#34;Parameters\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;account\u0026#34; Name=\u0026#34;Account\u0026#34; Type=\u0026#34;String\u0026#34; Interpretation=\u0026#34;Resource-Ref\u0026#34; Uom=\u0026#34;Account\u0026#34; Value=\u0026#34;\u0026#34;/\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;/Resource\u0026gt; PurchaseOrder\n\u0026lt;Order Id=\u0026#34;PurchaseOrder\u0026#34; Name=\u0026#34;PurchaseOrder Template\u0026#34; Type=\u0026#34;Template\u0026#34; State=\u0026#34;Created\u0026#34;\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;books\u0026#34; Name=\u0026#34;Books\u0026#34; Type=\u0026#34;Book\u0026#34;\u0026gt; \u0026lt;!-- Parameter Id=\u0026#34;bookId\u0026#34; Name=\u0026#34;Book reference\u0026#34; Type=\u0026#34;Float\u0026#34; Value=\u0026#34;0\u0026#34; / --\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;relations\u0026#34; Name=\u0026#34;Relations\u0026#34; Type=\u0026#34;Parameters\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;account\u0026#34; Name=\u0026#34;Account\u0026#34; Type=\u0026#34;String\u0026#34; Interpretation=\u0026#34;Resource-Ref\u0026#34; Uom=\u0026#34;Account\u0026#34; Value=\u0026#34;\u0026#34;/\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;/Order\u0026gt; FromStock\n\u0026lt;Activity Id=\u0026#34;FromStock\u0026#34; Name=\u0026#34;From Stock Template\u0026#34; Type=\u0026#34;FromStock\u0026#34; TimeOrdering=\u0026#34;Series\u0026#34;\u0026gt; \u0026lt;ParameterBag Name=\u0026#34;objectives\u0026#34; Id=\u0026#34;Objectives\u0026#34; Type=\u0026#34;Objectives\u0026#34;\u0026gt; \u0026lt;Parameter Name=\u0026#34;Duration\u0026#34; Id=\u0026#34;duration\u0026#34; Value=\u0026#34;PT1MS\u0026#34; Type=\u0026#34;Duration\u0026#34;/\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;Action Id=\u0026#34;validate\u0026#34; Name=\u0026#34;Validation of order\u0026#34; Type=\u0026#34;Use\u0026#34; ResourceType=\u0026#34;Validation\u0026#34; ResourceId=\u0026#34;validation\u0026#34;/\u0026gt; \u0026lt;!-- for each book we do a consume, i.e. reduce the stock quantity --\u0026gt; \u0026lt;Action Id=\u0026#34;Consume\u0026#34; Name=\u0026#34;Consume Template for book\u0026#34; Type=\u0026#34;Template\u0026#34;\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;parameters\u0026#34; Name=\u0026#34;Parameters\u0026#34; Type=\u0026#34;Parameters\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;quantity\u0026#34; Name=\u0026#34;Quantity\u0026#34; Type=\u0026#34;Float\u0026#34; Value=\u0026#34;0\u0026#34;/\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;/Action\u0026gt; \u0026lt;Action Id=\u0026#34;package\u0026#34; Name=\u0026#34;Packaging of PurchaseOrder\u0026#34; Type=\u0026#34;Use\u0026#34; ResourceType=\u0026#34;Packaging\u0026#34; ResourceId=\u0026#34;packaging\u0026#34;/\u0026gt; \u0026lt;Action Id=\u0026#34;send\u0026#34; Name=\u0026#34;Sending of package\u0026#34; Type=\u0026#34;Use\u0026#34; ResourceType=\u0026#34;Sending\u0026#34; ResourceId=\u0026#34;sending\u0026#34;/\u0026gt; \u0026lt;/Activity\u0026gt; Let\u0026rsquo;s explain a few things:\n The Book entity is a Resource object and only contains the description and the current quantity in stock.\n The Account entity is a Resource and contains the address and further details of the user, and with the user parameter the username is defined, thus referencing the real user.\n The UserCart entity is a Resource and has a reference to the account Resource.\nNote how the reference is done using a StringParameter, where Interpretation, UOM and the value is set in a specific manner.\n The UserCart entity is a Resource and references books using a special ParameterBag with the type set to Book, the actual type of the book entity. Each Parameter is of type Float and the ID of the parameter is the ID of the book, and the value is the quantity that the user would like to purchase.\nThere will only be one cart per user/account.\n The PurchaseOrder entity is an Order object, and is basically a copy of the UserCart entity. This is the confirmed purchase order for the contents of a cart, and can then be used for reports on how much of which book was sold.\n The FromStock entity is an Activity object and defines the process we will go through when delivering a purchase to a user.\nNote how the activity has a ParameterBag objectives with a duration parameter. This defines for this activity how long each Action should execute. This can be overridden in each Action and can help to plan how much effort goes into the delivering of each PurchaseOrder.\n Further note how the activity has three special actions (validate, package and send) on which a ResourceType and ResourceId are defined. Actions are always performed on a Resource, as the referenced Resource defines the behaviour of the action through defined Policy objects.\n For each book which will be purchased, an Action will be created of type Consume. In the template this is defined by a template Action with the id Consume and will later be changed accordingly.\n Since we are referencing resources from actions in the activity, we need to add these as well, but not as templates. They can be added to the defaultModel.xml file:\n\u0026lt;Resource Id=\u0026#34;validation\u0026#34; Name=\u0026#34;Validation Resource\u0026#34; Type=\u0026#34;Validation\u0026#34;\u0026gt; \u0026lt;Policies\u0026gt; \u0026lt;Policy Type=\u0026#34;ExecutionPolicy\u0026#34; Value=\u0026#34;key:ValidationExecution\u0026#34; /\u0026gt; \u0026lt;Policy Type=\u0026#34;ConfirmationPolicy\u0026#34; Value=\u0026#34;key:DefaultConfirmation\u0026#34; /\u0026gt; \u0026lt;/Policies\u0026gt; \u0026lt;/Resource\u0026gt; \u0026lt;Resource Id=\u0026#34;packaging\u0026#34; Name=\u0026#34;Packaging Resource\u0026#34; Type=\u0026#34;Packaging\u0026#34;\u0026gt; \u0026lt;Policies\u0026gt; \u0026lt;Policy Type=\u0026#34;ExecutionPolicy\u0026#34; Value=\u0026#34;key:PackagingExecution\u0026#34; /\u0026gt; \u0026lt;Policy Type=\u0026#34;ConfirmationPolicy\u0026#34; Value=\u0026#34;key:DefaultConfirmation\u0026#34; /\u0026gt; \u0026lt;/Policies\u0026gt; \u0026lt;/Resource\u0026gt; \u0026lt;Resource Id=\u0026#34;sending\u0026#34; Name=\u0026#34;Sending Resource\u0026#34; Type=\u0026#34;Sending\u0026#34;\u0026gt; \u0026lt;Policies\u0026gt; \u0026lt;Policy Type=\u0026#34;ExecutionPolicy\u0026#34; Value=\u0026#34;key:SendingExecution\u0026#34; /\u0026gt; \u0026lt;Policy Type=\u0026#34;ConfirmationPolicy\u0026#34; Value=\u0026#34;key:DefaultConfirmation\u0026#34; /\u0026gt; \u0026lt;/Policies\u0026gt; \u0026lt;/Resource\u0026gt; What should now be noted by these three new Resources is that they have Policy definitions:\n ExecutionPolicy → defines how an action on this resource is executed by referencing an ExecutionPolicy implementation. ConfirmationPolicy → defines behaviour to be performed on every state change of an action being performed on this resource by referencing an ConfirmationPolicy implementation. Currently these resources reference policies which don\u0026rsquo;t exist. We will resolve this issue later, when we implement the execution of the activity.\nThis concludes the model definition. In the next step we\u0026rsquo;ll start creating services and commands for our model.\n"},{"uri":"https://strolch.li/plc/","title":"PLC","tags":[],"description":"","content":"Overview Using Strolch as a PLC has certain advantages and disadvantages. The following is a list of advantages:\n Same programming model and language for server and PLC PLC has the same privilege handling as in Strolch Simulating down to the PLC level is easily possible for easier testing of server logic Of course using the Java language as a PLC has its limitations, we have manage to use it for customers and are satisfied with the result. What follows is a description in how to set up your own Strolch based PLC.\nCheckout the code at GitHub\nCurrently, we have the following topics of discussion:\n Architecture Example Set-Up "},{"uri":"https://strolch.li/tutorial/crud-book/","title":"CRUD Book","tags":[],"description":"","content":"Preparation Since Books are central to the bookshop, we\u0026rsquo;ll first create the CRUD REST API for them. The API will be as follows:\nGET ../rest/books?query=,offset=,limit= GET ../rest/books/{id} POST ../rest/books PUT ../rest/books/{id} DELETE ../rest/books/{id} Thus corresponding with querying, getting, creating, updating and removing of books. So let\u0026rsquo;s go ahead and add these REST APIs to our project.\nOur project is using JAX-RS 2.0 as the API and Jersey 2.x as the implementation, thus first we need to configure JAX-RS. Thus create the following class:\n@ApplicationPath(\u0026#34;rest\u0026#34;) public class RestfulApplication extends ResourceConfig { public RestfulApplication() { // add strolch resources register(AuthenticationService.class); register(ModelQuery.class); register(Inspector.class); // add project resources by package name packages(BooksResource.class.getPackage().getName()); // filters register(AuthenticationRequestFilter.class, Priorities.AUTHENTICATION); register(AccessControlResponseFilter.class); register(AuthenticationResponseFilter.class); register(HttpCacheResponseFilter.class); // log exceptions and return them as plain text to the caller register(StrolchRestfulExceptionMapper.class); // the JSON generated is in UTF-8 register(CharsetResponseFilter.class); RestfulStrolchComponent restfulComponent = RestfulStrolchComponent.getInstance(); if (restfulComponent.isRestLogging()) { register(new LoggingFeature(java.util.logging.Logger.getLogger(LoggingFeature.DEFAULT_LOGGER_NAME), Level.SEVERE, LoggingFeature.Verbosity.PAYLOAD_ANY, Integer.MAX_VALUE)); property(ServerProperties.TRACING, \u0026#34;ALL\u0026#34;); property(ServerProperties.TRACING_THRESHOLD, \u0026#34;TRACE\u0026#34;); } } } As we add new resources they will be automatically since we register the entire package.\nNow add the books resource class:\n@Path(\u0026#34;books\u0026#34;) public class BooksResource { } Search The first service we\u0026rsquo;ll add is to query, or search for the existing books. The API defines three parameters, with which the result can be controlled. The method can be defined as follows:\n@Path(\u0026#34;books\u0026#34;) public class BooksResource { @GET @Produces(MediaType.APPLICATION_JSON) public Response query(@Context HttpServletRequest request, @QueryParam(\u0026#34;query\u0026#34;) String queryS, @QueryParam(\u0026#34;offset\u0026#34;) String offsetS, @QueryParam(\u0026#34;limit\u0026#34;) String limitS) { // TODO } } To fill this method we need a few things. First let\u0026rsquo;s define a constants class where we keep String constants which we used in the model file:\npublic class BookShopConstants { public static final String TYPE_BOOK = \u0026#34;Book\u0026#34;; } As this tutorial progresses, more and more constants will be added here. This class helps with two issues: Through the constants we can easily reason over where certain fields, and types are used and of course String literals in code are a rather bad thing.\nIn Strolch there are multiple way to access objects. The old way was using Queries, the new search API is much more fluent and easier to read and write. The search API, as well as the deprecated query API allows us to implement privilege validation and thus one should create corresponding classes for each type of search. Book entities are Resources, thus we will be creating a ResourceSearch. The search is for Resources of type Book thus the resulting search looks as follows:\npublic class BooksSearch\u0026lt;U\u0026gt; extends ResourceSearch\u0026lt;U\u0026gt; { public BookSearch() { types(TYPE_BOOK); } public BookSearch stringQuery(String value) { if (isEmpty(value)) return this; // split by spaces value = value.trim(); String[] values = value.split(\u0026#34; \u0026#34;); // add where clauses for id, name and description where(id().containsIgnoreCase(values) // .or(name().containsIgnoreCase(values)) // .or(param(BAG_PARAMETERS, PARAM_DESCRIPTION).containsIgnoreCase(values))); return this; } } Note how we added a special stringQuery(String)-method. This method defines where a search string entered by the user will be used to match a book. In this case for id, name and the description parameter.\nSo that our users can call this query, we must give them this as a privilege. This is done by adding the full class name to the PrivilegeRoles.xml file as follows:\n... \u0026lt;Role name=\u0026#34;User\u0026#34;\u0026gt; \u0026lt;Privilege name=\u0026#34;li.strolch.search.StrolchSearch\u0026#34; policy=\u0026#34;DefaultPrivilege\u0026#34;\u0026gt; \u0026lt;Allow\u0026gt;internal\u0026lt;/Allow\u0026gt; \u0026lt;Allow\u0026gt;li.strolch.bookshop.search.BookSearch\u0026lt;/Allow\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;/Role\u0026gt; ... Note: The internal allow value is a special privilege which is used internally when a service or something performs internal queries. This means that a service can perform a query for object to which the user might not have access, but without which the service could not be completed. We will use this in a later stage.\n Now we have all parts we need to implement the query method. The method will include opening a transaction, instantiating the search, executing the search, and returning the result:\n@Path(\u0026#34;books\u0026#34;) public class BooksResource { @GET @Produces(MediaType.APPLICATION_JSON) public Response query(@Context HttpServletRequest request, @QueryParam(\u0026#34;query\u0026#34;) String queryS, @QueryParam(\u0026#34;offset\u0026#34;) String offsetS, @QueryParam(\u0026#34;limit\u0026#34;) String limitS) { // this is an authenticated method call, thus we can get the certificate from the request: Certificate cert = (Certificate) request .getAttribute(StrolchRestfulConstants.STROLCH_CERTIFICATE); int offset = StringHelper.isNotEmpty(offsetS) ? Integer.parseInt(offsetS) : 0; int limit = StringHelper.isNotEmpty(limitS) ? Integer.parseInt(limitS) : 0; // open the TX with the certificate, using this class as context Paging\u0026lt;Resource\u0026gt; paging; try (StrolchTransaction tx = RestfulStrolchComponent.getInstance() .openTx(cert, getClass())) { // perform a book search paging = new BookSearch() // .stringQuery(queryS) // .search(tx) // .orderByName(false) // .toPaging(offset, limit); } ResourceVisitor\u0026lt;JsonObject\u0026gt; visitor = new StrolchRootElementToJsonVisitor() .flat().asResourceVisitor(); return ResponseUtil.toResponse(paging, e -\u0026gt; e.accept(visitor)); } } Note: We automatically transform the Resource objects to JSON using the StrolchElementToJsonVisitor. By calling the method .flat()-method we have a more compact JSON format. Paging is handled by a util class.\n The helper class ResponseUtil takes care of creating the JsonObject and the proper page. As a rule we use the format where we return two fields: msg is a dash if all is ok, otherwise an error message will be present. Data is always in the data field. This is just a personal taste, and can be changed to one\u0026rsquo;s own taste.\nGet We have all we need now to implement the GET method:\n@GET @Path(\u0026#34;{id}\u0026#34;) @Produces(MediaType.APPLICATION_JSON) public Response get(@Context HttpServletRequest request, @PathParam(\u0026#34;id\u0026#34;) String id) { // this is an authenticated method call, thus we can get the certificate from the request: Certificate cert = (Certificate) request.getAttribute(StrolchRestfulConstants.STROLCH_CERTIFICATE); // open the TX with the certificate, using this class as context try (StrolchTransaction tx = RestfulStrolchComponent.getInstance().openTx(cert, getClass())) { // get the book Resource book = tx.getResourceBy(BookShopConstants.TYPE_BOOK, id); if (book == null) return ResponseUtil.toResponse(Status.NOT_FOUND, \u0026#34;Book \u0026#34; + id + \u0026#34; does not exist!\u0026#34;); // transform to JSON JsonObject bookJ = book.accept(new StrolchRootElementToJsonVisitor().flat()); // return return ResponseUtil.toResponse(StrolchRestfulConstants.DATA, bookJ); } } Note how we simply retrieve the book as a Resource from the TX. This is a good moment to familiarize yourself with the API of the StrolchTransaction. There are methods to retrieve elements, and also perform searches. We will use more of these methods later.\n Further it can be noted that a simple retrieval isn\u0026rsquo;t validated against the user\u0026rsquo;s privileges, the user is authenticated, which is enough for the moment.\nCreate To create a new book we need to implement a Service. This service will be called CreateBookService. A Service always has a ServiceArgument and a ServiceResult. Our service will use the JsonServiceArgument and the JsonServiceResult. The implementation of the POST method is as follows:\n@POST @Produces(MediaType.APPLICATION_JSON) public Response create(@Context HttpServletRequest request, String data) { // this is an authenticated method call, thus we can get the certificate from the request: Certificate cert = (Certificate) request.getAttribute(StrolchRestfulConstants.STROLCH_CERTIFICATE); // parse data to JSON JsonObject jsonData = JsonParser.parseString(data).getAsJsonObject(); // instantiate the service with the argument CreateBookService svc = new CreateBookService(); JsonServiceArgument arg = svc.getArgumentInstance(); arg.jsonElement = jsonData; // perform the service ServiceHandler serviceHandler = RestfulStrolchComponent.getInstance().getServiceHandler(); JsonServiceResult result = serviceHandler.doService(cert, svc, arg); // return depending on the result state if (result.isOk()) return ResponseUtil.toResponse(StrolchRestfulConstants.DATA, result.getResult()); return ResponseUtil.toResponse(result); } Note: We return the created object again as JSON in its own data field.\n The service is implemented as follows:\npublic class CreateBookService extends AbstractService\u0026lt;JsonServiceArgument, JsonServiceResult\u0026gt; { @Override protected JsonServiceResult getResultInstance() { return new JsonServiceResult(); } @Override public JsonServiceArgument getArgumentInstance() { return new JsonServiceArgument(); } @Override protected JsonServiceResult internalDoService(JsonServiceArgument arg) throws Exception { // open a new transaction, using the realm from the argument, or the certificate Resource book; try (StrolchTransaction tx = openArgOrUserTx(arg)) { // get a new book \u0026#34;instance\u0026#34; from the template book = tx.getResourceTemplate(BookShopConstants.TYPE_BOOK); // map all values from the JSON object into the new book element book.accept(new FromFlatJsonVisitor(arg.jsonElement.getAsJsonObject()).ignoreBag(BAG_RELATIONS)); // save changes tx.add(book); // notify the TX that it should commit on close tx.commitOnClose(); } // map the return value to JSON JsonObject result = book.accept(new StrolchElementToJsonVisitor().flat()); // and return the result return new JsonServiceResult(result); } } Note: For the authenticated user to be able to perform this service, we must add it to their privileges:\n ... \u0026lt;Role name=\u0026#34;User\u0026#34;\u0026gt; ... \u0026lt;Privilege name=\u0026#34;li.strolch.service.api.Service\u0026#34; policy=\u0026#34;DefaultPrivilege\u0026#34;\u0026gt; \u0026lt;Allow\u0026gt;li.strolch.bookshop.service.CreateBookService\u0026lt;/Allow\u0026gt; \u0026lt;/Privilege\u0026gt; ... \u0026lt;/Role\u0026gt; ... Update Updating of a book is basically the same as the creation, we just use PUT, verify that the book exists and give the user the privilege.\nPUT Method:\n@PUT @Path(\u0026#34;{id}\u0026#34;) @Produces(MediaType.APPLICATION_JSON) public Response update(@Context HttpServletRequest request, @PathParam(\u0026#34;id\u0026#34;) String id, String data) { // this is an authenticated method call, thus we can get the certificate from the request: Certificate cert = (Certificate) request.getAttribute(StrolchRestfulConstants.STROLCH_CERTIFICATE); // parse data to JSON JsonObject jsonData = JsonParser.parseString(data).getAsJsonObject(); // instantiate the service with the argument UpdateBookService svc = new UpdateBookService(); JsonServiceArgument arg = svc.getArgumentInstance(); arg.objectId = id; arg.jsonElement = jsonData; // perform the service ServiceHandler serviceHandler = RestfulStrolchComponent.getInstance().getServiceHandler(); JsonServiceResult result = serviceHandler.doService(cert, svc, arg); // return depending on the result state if (result.isOk()) return ResponseUtil.toResponse(StrolchRestfulConstants.DATA, result.getResult()); return ResponseUtil.toResponse(result); } Update Service:\npublic class UpdateBookService extends AbstractService\u0026lt;JsonServiceArgument, JsonServiceResult\u0026gt; { @Override protected JsonServiceResult getResultInstance() { return new JsonServiceResult(); } @Override public JsonServiceArgument getArgumentInstance() { return new JsonServiceArgument(); } @Override protected JsonServiceResult internalDoService(JsonServiceArgument arg) throws Exception { // verify same book DBC.PRE.assertEquals(\u0026#34;ObjectId and given Id must be same!\u0026#34;, arg.objectId, arg.jsonElement.getAsJsonObject().get(Json.ID).getAsString()); // open a new transaction, using the realm from the argument, or the certificate Resource book; try (StrolchTransaction tx = openArgOrUserTx(arg)) { // get the existing book book = tx.getResourceBy(BookShopConstants.TYPE_BOOK, arg.objectId, true); // map all values from the JSON object into the new book element book.accept(new FromFlatJsonVisitor(arg.jsonElement.getAsJsonObject()).ignoreBag(BAG_RELATIONS)); // save changes tx.update(book); // notify the TX that it should commit on close tx.commitOnClose(); } // map the return value to JSON JsonObject result = book.accept(new StrolchElementToJsonVisitor().flat()); // and return the result return new JsonServiceResult(result); } } Privilege\n... \u0026lt;Role name=\u0026#34;User\u0026#34;\u0026gt; ... \u0026lt;Privilege name=\u0026#34;li.strolch.service.api.Service\u0026#34; policy=\u0026#34;DefaultPrivilege\u0026#34;\u0026gt; ... \u0026lt;Allow\u0026gt;li.strolch.bookshop.service.UpdateBookService\u0026lt;/Allow\u0026gt; ... \u0026lt;/Privilege\u0026gt; ... \u0026lt;/Role\u0026gt; ... Remove To remove a book, we need a DELETE method, a remove service and the associated privilege.\nDELETE Method:\n@DELETE @Path(\u0026#34;{id}\u0026#34;) @Produces(MediaType.APPLICATION_JSON) public Response update(@Context HttpServletRequest request, @PathParam(\u0026#34;id\u0026#34;) String id) { // this is an authenticated method call, thus we can get the certificate from the request: Certificate cert = (Certificate) request.getAttribute(StrolchRestfulConstants.STROLCH_CERTIFICATE); // instantiate the service with the argument RemoveBookService svc = new RemoveBookService(); StringServiceArgument arg = svc.getArgumentInstance(); arg.value = id; // perform the service ServiceHandler serviceHandler = RestfulStrolchComponent.getInstance().getServiceHandler(); ServiceResult result = serviceHandler.doService(cert, svc, arg); // return depending on the result state return ResponseUtil.toResponse(result); } Remove Service:\npublic class RemoveBookService extends AbstractService\u0026lt;StringServiceArgument, ServiceResult\u0026gt; { @Override protected ServiceResult getResultInstance() { return new ServiceResult(); } @Override public StringServiceArgument getArgumentInstance() { return new StringServiceArgument(); } @Override protected ServiceResult internalDoService(StringServiceArgument arg) throws Exception { // open a new transaction, using the realm from the argument, or the certificate try (StrolchTransaction tx = openArgOrUserTx(arg)) { // get the existing book Resource book = tx.getResourceBy(BookShopConstants.TYPE_BOOK, arg.value, true); // save changes tx.remove(book); // notify the TX that it should commit on close tx.commitOnClose(); } // and return the result return ServiceResult.success(); } } Privilege:\n... \u0026lt;Role name=\u0026#34;User\u0026#34;\u0026gt; ... \u0026lt;Privilege name=\u0026#34;li.strolch.service.api.Service\u0026#34; policy=\u0026#34;DefaultPrivilege\u0026#34;\u0026gt; ... \u0026lt;Allow\u0026gt;li.strolch.bookshop.service.RemoveBookService\u0026lt;/Allow\u0026gt; ... \u0026lt;/Privilege\u0026gt; ... \u0026lt;/Role\u0026gt; ... Notes One should now see a pattern emerge:\n The REST API delegates to the Services, or Searches, with the exception of the retrieval of a single object by id. Services should do initial validation of the input. Not much validation was done here, but more could be done. Commands are reusable objects to perform recurring work. Searches and Services are privileged actions for which a user must have the privilege to perform the action. The book services are quite simple, but as more requirements arise, it should be easy to implement them in the service layer. Thus should a service be required to be performed by an integration layer, then they can simply call the services, since the input is defined and validation is done there (i.e. NOT in the REST API).\nThis concludes the CRUD of books.\n"},{"uri":"https://strolch.li/documentation/do-and-donts/","title":"Do and Don't","tags":[],"description":"","content":"This page discusses things you should and shouldn\u0026rsquo;t do when using Strolch The following is a simple list of do\u0026rsquo;s and don\u0026rsquo;ts:\n 1 Service per use-case, should mostly delegate to Commands. Commands implement use-cases or parts of it, and are thus reusable. Subclass ResourceSearch, OrderSearch and ActivitySearch when implementing use-case specific search - this allows privilege checking. One Transaction at a time - no TX inside of another TX. Commands are added to TXs and performed on close: tx.addCommand(Command) and then tx.commitOnClose() Use tx.flush() if you need to perform first some work and then as late as possible call tx.commitOnClose() Only access ElementMaps if really no other way, mostly use tx.get*By(), tx.findBy() and searches - if a specific get is missing, then add the method to StrolchTransaction and send a pull request! Use tx.stream*() methods to iterate over all elements, if you don\u0026rsquo;t want to use a search. Don\u0026rsquo;t write logic in REST API beans. Delegate to other services, making your code reusable! Transform to JSON using the StrolchElementToJsonVisitor. References between objects is done by adding a ParameterBag with the id relations to the object and then StringParameters with the value being the ID, the UOM set to the type of element being referenced and the Interpretation set to the class type being referenced. "},{"uri":"https://strolch.li/documentation/runtime-configuration/","title":"Runtime Configuration","tags":[],"description":"","content":"Runtime Configuration A Strolch runtime configuration comprises two parts: a configuration part, and a model part. The configuration are files located in the ..config/ folder, and the model are files located in the ../data folder.\nIn an absolute minimal configuration, the Strolch runtime requires the following folder structure:\n ../config/ ../StrolchConfiguration.xml → configures the Strolch agent ../PrivilegeConfig.xml → configures user management ../PrivilegeUsers.xml → contains the users in an XML based user management file ../PrivilegeRoles.xml → contains the roles and privileges in an XML based user management StrolchConfiguration.xml The StrolchConfiguration.xml file configures the Strolch agent. The StrolchConfiguration.xml defines the following:\n \u0026lt;StrolchConfiguration\u0026gt; root element \u0026lt;env id=\u0026quot;xxx\u0026quot;\u0026gt; different environments with the possibility of having a global environment for configuration valid in multiple environments. \u0026lt;Runtime\u0026gt; element which defines the agents name and a few other properties e.g. locale and verbose: \u0026lt;applicationName\u0026gt; the agent\u0026rsquo;s name \u0026lt;Properties\u0026gt; \u0026lt;locale\u0026gt; the agent\u0026rsquo;s internal locale for log messages etc. \u0026lt;verbose\u0026gt; the logging level for some internal logging. (Logging is mostly done using log4j over slf4j) \u0026lt;Component\u0026gt; elements for each component used in the agent. A component is configured by defining the following child elements: \u0026lt;name\u0026gt; the name of the component, use when defining dependencies between components. The name is mostly set to the simple name of the interface of the component\n \u0026lt;api\u0026gt; the full class name to the interface of the component. During runtime this interface will be used to access the component e.g.:\nServiceHandler svcHandler = agent.getContainer().getComponent(ServiceHandler.class);\n \u0026lt;impl\u0026gt; the full class name of the concrete implementation of the component. During initialization this class will be instantiated and registered under the component name and interface. This class must extend the class li.strolch.agent.api.StrolchComponent\n \u0026lt;depends\u0026gt; any number of these elements, where the content is the name of another component, on which this component depends. Depending components are initialized and started after the component they depend on and are stopped and destroyed before\n \u0026lt;Properties\u0026gt;\n \u0026lt;...\u0026gt; any number of properties which the component requires. The element\u0026rsquo;s name will be the key with which the value can be accessed at runtime.\n When a property is missing, and the component has a hard coded default value, then when the component is initialized, the use of the default value and its key is logged. This makes it easy to see which new properties can be configured. Should the component not define a default value, then the component will thrown an exception on initialization. In this case it can be a good moment to read the JavaDoc (or source code) for the component in question to see how it is configured.\n Privilege Configuration In Strolch authentication and authorization is baked in. To open a transaction, and thus access the Strolch model, a Certificate object is required, which means the user has been authenticated and possibly authorized.\nThe PrivilegeConfig.xml defines the following:\n \u0026lt;Privilege\u0026gt; root element \u0026lt;Container\u0026gt; configures the individual Privilege components \u0026lt;Parameters\u0026gt; base configuration properties for Privilege \u0026lt;EncryptionHandler\u0026gt; configures the hashing algorithms and other encryption specific configuration \u0026lt;PersistenceHandler\u0026gt; configures the persistence of the roles and users \u0026lt;UserChallengeHandler\u0026gt; configures a challenge handler so that a user can reset their password. The default challenge handler is the li.strolch.privilege.handler.MailUserChallengeHandler which sends a challenge to the user\u0026rsquo;s defined e-mail address. \u0026lt;SsoHandler\u0026gt; the SSO Handler is used to implement a SingleSignOn and can be used to start a session using a LDAP token, etc. There is no default implementation as this is project specific. \u0026lt;Policies\u0026gt; configures the available privilege policies at runtime, the name is referenced from the model file The PrivilegeUsers.xml and PrivilegeRoles.xml define the users and roles and is used when in PrvilegeConfig.xml the PersistenceHandler is set to ch.eitchnet.privilege.handler.XmlPersistenceHandler:\n \u0026lt;Users\u0026gt; configures all users \u0026lt;User\u0026gt; configures a specific user \u0026lt;Firstname\u0026gt; configures a user\u0026rsquo;s first name \u0026lt;Lastname\u0026gt; configure a user\u0026rsquo;s last name \u0026lt;State\u0026gt; configures the user\u0026rsquo;s state, see li.strolch.privilege.model.UserState \u0026lt;Locale\u0026gt; configure the user\u0026rsquo;s locale \u0026lt;Roles\u0026gt; configures the user\u0026rsquo;s roles \u0026lt;Role\u0026gt; adds a role to the user \u0026lt;Properties\u0026gt; configures user specific properties. What properties are used is not specified and is dependent on the concrete agent \u0026lt;Property\u0026gt; defines a single property \u0026lt;Roles\u0026gt; configures all roles \u0026lt;Role\u0026gt; configures a specific role \u0026lt;Privilege\u0026gt; configures a specific privilege for this role \u0026lt;AllAllowed\u0026gt; if set to true, then defines that all values associated with this privilege are allowed \u0026lt;Allow\u0026gt; defines one allowed value for this privilege \u0026lt;Deny\u0026gt; defines one denied value for this privilege Implementing a StrolchComponent Implementing a strolch component requires an interface, which defines the component\u0026rsquo;s API and a concrete class which implements the interface and extends the class StrolchComponent.\nThe StrolchComponent class adds the state model to the class, which transitions as follows:\nUNDEFINED =\u0026gt; SETUP =\u0026gt; INITIALIZED =\u0026gt; STARTED \u0026lt;=\u0026gt; STOPPED =\u0026gt; DESTROYED\nComponents can switch between STARTED and STOPPED, but once DESTROYED no further state change is possible. The component\u0026rsquo;s state is changed by changes to the agent\u0026rsquo;s lifecycle.\nA component\u0026rsquo;s state is changed by a call to the appropriate method on the component, override the methods as necessary. Note that it is good practice that the initialize()-method is used to get all the configuration properties, and that they should there be evaluated and that the method so return quickly. The start()-method is called after the agent\u0026rsquo;s initialization and should be where additional threads are started. Correctly implementing these methods allows to quickly detect a wrongly configured agent, which might take longer to start for whatever reason.\nThe following shows a basic implementation of a component on the basis of a post initializer (a component which performs some actions in its start()-method which should be done after everything else is started in the agent).\npublic class SimplePostInitializer extends StrolchComponent implements PostInitializer { public SimplePostInitializer(ComponentContainer container, String componentName) { super(container, componentName); } @Override public void initialize(ComponentConfiguration configuration) { // do some initialization, validate configuration values, etc. // now call super, to update state super.initialize(configuration); } @Override public void start() { // start any threads, or perform long running start work // now call super, to update state super.start(); } @Override public void stop() { // stop threads and timers, but be ready to start again // now call super, to update state super.stop(); } @Override public void destroy() { // destroy this component, release all resources and don\u0026#39;t worry about // being called to start again now call super, to update state super.destroy(); } } The new component would then be registered in the StrolchConfiguration.xml as follows:\n\u0026lt;StrolchConfiguration\u0026gt; \u0026lt;env id=\u0026#34;...\u0026#34;\u0026gt; ... \u0026lt;Component\u0026gt; \u0026lt;name\u0026gt;SimplePostInitializer\u0026lt;/name\u0026gt; \u0026lt;api\u0026gt;li.strolch.agent.api.PostInitializer\u0026lt;/api\u0026gt; \u0026lt;impl\u0026gt;li.strolch.documentation.SimplePostInitializer\u0026lt;/impl\u0026gt; \u0026lt;/Component\u0026gt; ... \u0026lt;/env\u0026gt; \u0026lt;/StrolchConfiguration\u0026gt; And can be access at runtime using:\nPostInitializer postInitializer = getContainer().getComponent(PostInitializer.class); Starting the agent When a Strolch runtime is started, then the root path to the runtime configuration must be passed. In Java this is done by calling:\nStrolchAgent agent = new StrolchAgent(); agent.setup(environment, rootPath); agent.initialize(); agent.start(); In Servlet 3.0 applications one would implement the javax.servlet.ServletContextListener interface, add the @WebListener annotation to the class and in the contextInitialized()-method start Strolch:\nString realPath = sce.getServletContext().getRealPath(\u0026#34;/WEB-INF\u0026#34;); String environment = StrolchEnvironment.getEnvironmentFromEnvProperties(pathF); this.agent = new StrolchAgent(); this.agent.setup(environment, new File(realPath)); this.agent.initialize(); this.agent.start(); "},{"uri":"https://strolch.li/tutorial/","title":"Tutorial","tags":[],"description":"","content":"Let\u0026rsquo;s build a bookshop! In this tutorial we will build a book store using Strolch. This book store will be without a UI, but we will do everything using REST APIs, which should make it easy to add a UI later using whatever framework suits one most.\nThe book store will have the following features:\n The store owner can add, update and remove books The store owner can edit the stock quantity Users can view a list of books Users can add books to a virtual cart Users can create and verify an account using an e-mail address Users can submit an order for the books in their cart The store owner can see the orders by state (pending, preparing, sent) The store owner can update the state of an order (preparing, sent) Notify the user when the order is sent The code to the book can be downloaded from GitHub and will be updated as this tutorial is updated.\nThe tutorial consists of the following parts: Configuration Model CRUD Book "},{"uri":"https://strolch.li/plc/architecture/","title":"Architecture","tags":[],"description":"","content":"Architecture Overview The Strolch PLC architecture sees the Strolch Agent as the server, managing logical devices, i.e. multiple sensors and actors together and thus deciding on further steps. With this architecture multiple PLCs can be combined together in one agent for flow control.\nPLC Architecture On the agent side the two main classes are the PlcGwServerHandler and the PlcGwService\nThe PlcGwServerHandler handles connections from remote PLCs over WebSockets and sends the requests to these PLCs. A PlcGwService instance will be notified and can then decide on an action. In an execution model with Activities, the PlcNotificationListener interface can be implemented, or the PlcExecutionPolicy can be directly extended.\nOn the PLC side, the PlcGwClientHandler is optional if no agent is required. The PlcHandler initializes the model and connections. The Plc class is Strolch agnostic and manages the connections and notifies PlcListener instances on changes coming from the underlying connections. The PlcService implementations implement business logic, and can also be notified on updates from connections.\n"},{"uri":"https://strolch.li/documentation/realms/","title":"Realms","tags":[],"description":"","content":"Realms Realms implement multi-tenant capabilities. A Strolch agent can have an arbitrary number of realms configured and each realm has its own persistence configuration, allowing to separate mandates completely.\nA realm can run in one of the following modes:\n EMPTY This is a transient data store mode, where no model changes are persisted - they are only kept in memory. When the Strolch agent is started, this realm is empty as no data is loaded. TRANSIENT This is the same as EMPTY, but with the difference that when the Strolch agent is started, a model file is parsed and the in-memory realm is populated with the elements parsed from the model file. CACHED In this mode, all data is stored in-memory, and any changes made are written back to the persistence layer. This allows for fast in-memory qeuries, but makes sure no data is lost when the agent is restarted. Realms are mostly hidden from a developer as a StrolchTransaction exposes all important operations needed to access Strolch objects. A developer will however need to configure the realms for their specific project. If the project only requires one realm, then the defaultRealm can be used, where the developer only is required to configure the mode and any relevant model file.\nIf the mode is CACHED, then the PersistenceHandler component is required to be configured, so that the DAOs know how to access the underlying database.\nThe configuration in the StrolchConfiguration.xml file is as follows:\n\u0026lt;StrolchConfiguration\u0026gt; \u0026lt;env id=\u0026#34;dev\u0026#34;\u0026gt; ... \u0026lt;Component\u0026gt; \u0026lt;name\u0026gt;RealmHandler\u0026lt;/name\u0026gt; \u0026lt;api\u0026gt;li.strolch.agent.api.RealmHandler\u0026lt;/api\u0026gt; \u0026lt;impl\u0026gt;li.strolch.agent.impl.DefaultRealmHandler\u0026lt;/impl\u0026gt; \u0026lt;depends\u0026gt;PrivilegeHandler\u0026lt;/depends\u0026gt; \u0026lt;!-- if CACHED: --\u0026gt; \u0026lt;!--depends\u0026gt;PersistenceHandler\u0026lt;/depends--\u0026gt; \u0026lt;Properties\u0026gt; \u0026lt;dataStoreMode\u0026gt;EMPTY|TRANSIENT|CACHED\u0026lt;/dataStoreMode\u0026gt; \u0026lt;dataStoreFile\u0026gt;StrolchModel.xml\u0026lt;/dataStoreFile\u0026gt; \u0026lt;/Properties\u0026gt; \u0026lt;/Component\u0026gt; ... \u0026lt;/env\u0026gt; \u0026lt;/StrolchConfiguration\u0026gt; Multi-Realm A multi-realm configuration would be as follows.\nNote how the defaultRealm is still enabled, and has its configuration as before. Further the PostgreSQL PersistenceHandler is configured to show how the realms are connected to the persistence handler:\n \u0026lt;StrolchConfiguration\u0026gt; \u0026lt;env id=\u0026#34;dev\u0026#34;\u0026gt; ... \u0026lt;Component\u0026gt; \u0026lt;name\u0026gt;RealmHandler\u0026lt;/name\u0026gt; \u0026lt;api\u0026gt;li.strolch.agent.api.RealmHandler\u0026lt;/api\u0026gt; \u0026lt;impl\u0026gt;li.strolch.agent.impl.DefaultRealmHandler\u0026lt;/impl\u0026gt; \u0026lt;depends\u0026gt;PrivilegeHandler\u0026lt;/depends\u0026gt; \u0026lt;depends\u0026gt;PersistenceHandler\u0026lt;/depends\u0026gt; \u0026lt;Properties\u0026gt; \u0026lt;realms\u0026gt;defaultRealm, cachedRealm\u0026lt;/realms\u0026gt; \u0026lt;dataStoreMode\u0026gt;TRANSIENT\u0026lt;/dataStoreMode\u0026gt; \u0026lt;dataStoreFile\u0026gt;DefaultRealm.xml\u0026lt;/dataStoreFile\u0026gt; \u0026lt;dataStoreMode.cachedRealm\u0026gt;CACHED\u0026lt;/dataStoreMode.cachedRealm\u0026gt; \u0026lt;dataStoreMode.emptyRealm\u0026gt;EMPTY\u0026lt;/dataStoreMode.emptyRealm\u0026gt; \u0026lt;/Properties\u0026gt; \u0026lt;/Component\u0026gt; \u0026lt;Component\u0026gt; \u0026lt;name\u0026gt;PersistenceHandler\u0026lt;/name\u0026gt; \u0026lt;api\u0026gt;li.strolch.persistence.api.PersistenceHandler\u0026lt;/api\u0026gt; \u0026lt;impl\u0026gt;li.strolch.persistence.postgresql.PostgreSqlPersistenceHandler\u0026lt;/impl\u0026gt; \u0026lt;Properties\u0026gt; \u0026lt;allowSchemaCreation\u0026gt;true\u0026lt;/allowSchemaCreation\u0026gt; \u0026lt;allowSchemaDrop\u0026gt;true\u0026lt;/allowSchemaDrop\u0026gt; \u0026lt;db.url.cachedRealm\u0026gt;jdbc:postgresql://localhost/testdb2\u0026lt;/db.url.cachedRealm\u0026gt; \u0026lt;db.username.cachedRealm\u0026gt;testuser2\u0026lt;/db.username.cachedRealm\u0026gt; \u0026lt;db.password.cachedRealm\u0026gt;test\u0026lt;/db.password.cachedRealm\u0026gt; \u0026lt;db.pool.maximumPoolSize.cachedRealm\u0026gt;1\u0026lt;/db.pool.maximumPoolSize.cachedRealm\u0026gt; \u0026lt;/Properties\u0026gt; \u0026lt;/Component\u0026gt; ... \u0026lt;/env\u0026gt; \u0026lt;/StrolchConfiguration\u0026gt; Access realm Accessing a realm is done in multiple ways. Important is to note, that a user should use the StrolchTransaction object, instead of accessing the Realm directly.\nOpening a transaction is done from a Service by calling one of the openTx()-methods. Nevertheless, the realm can be accessed as follows:\nComponentContainer container = getAgent().getContainer(); StrolchRealm realm = container.getRealm(StrolchConstants.DEFAULT_REALM); try(StrolchTransaction tx = realm.openTx()) { Resource resource = tx.getResourceBy(\u0026#34;TestType\u0026#34;, \u0026#34;MyTestResource\u0026#34;); ... } "},{"uri":"https://strolch.li/documentation/components/","title":"Components","tags":[],"description":"","content":"Components A Strolch agent can be easily extended with arbitrary components. An agent is basically a container for classes extending StrolchComponent with a life cycle. These classes mostly implement an interface which describes the operations that are supported by the component.\nThe following represents a list of the most used components:\n RealmHandler: li.strolch.agent.impl.DefaultRealmHandler PrivilegeHandler: li.strolch.runtime.privilege.DefaultStrolchPrivilegeHandler EnumHandler: li.strolch.runtime.query.enums.DefaultEnumHandler PolicyHandler: li.strolch.policy.DefaultPolicyHandler ServiceHandler: li.strolch.service.api.DefaultServiceHandler StrolchSessionHandler: li.strolch.rest.DefaultStrolchSessionHandler PersistenceHandler: multiple implementations PostInitializer: project specific implementation MailHandler: li.strolch.handler.mail.SmtpMailHandler A component has a life-cycle, which is governed by the Agent\u0026rsquo;s own life-cycle. The life-cycle is as follows:\nsetup -\u0026gt; initialize -\u0026gt; start \u0026lt;-\u0026gt; stop -\u0026gt; destroy The setup step is used to instantiate the component, the initialize step is used to validate configuration parameters, and the run step is used to start the component, i.e. start threads, etc. The stop step stops these threads and also allows the component to be started again. The destroy step destroys the instance and makes it unusable anymore, i.e. shutdown of the agent.\nEach component has its own configuration parameters. A component is registered in the StrolchConfiguration.xml file with a\n name api class name implementation class name configuration parameters any required dependencies The dependencies is an important feature as the dependencies of a component are always started before the actual component.\nBy example of the MailHandler we shall show how a strolch component would be implemented.\nFirst define an interface:\npublic interface MailHandler { void sendMail(String subject, String text, String recipient); } Then implement a concrete MailHandler:\npublic class SmtpMailHandler extends StrolchComponent implements MailHandler { // instance fields with configuration properties to send the mail public SmtpMailHandler(ComponentContainer container, String componentName) { super(container, componentName); } @Override public void initialize(ComponentConfiguration configuration) throws Exception { // store any properties needed from the configuration super.initialize(configuration); } @Override public void sendMail(String subject, String text, String recipient) { // send the e-mail using SMTP, or store in stack to send by thread } } Now that the component is written, it must be registered on the component, so that it is loaded when the agent is started. For this the StrolchConfiguration.xml file must be modified to include a component element:\n\u0026lt;StrolchConfiguration\u0026gt; \u0026lt;env id=\u0026#34;dev\u0026#34;\u0026gt; ... \u0026lt;Component\u0026gt; \u0026lt;name\u0026gt;MailHandler\u0026lt;/name\u0026gt; \u0026lt;api\u0026gt;li.strolch.handler.mail.MailHandler\u0026lt;/api\u0026gt; \u0026lt;impl\u0026gt;li.strolch.handler.mail.SmtpMailHandler\u0026lt;/impl\u0026gt; \u0026lt;Properties\u0026gt; \u0026lt;username\u0026gt;test\u0026lt;/username\u0026gt; \u0026lt;password\u0026gt;test\u0026lt;/password\u0026gt; \u0026lt;hostName\u0026gt;localhost\u0026lt;/hostName\u0026gt; ... \u0026lt;/Properties\u0026gt; \u0026lt;/Component\u0026gt; ... \u0026lt;/env\u0026gt; \u0026lt;/StrolchConfiguration\u0026gt; Now when the agent is started, the component can be retrieved and used. E.g from inside a Service:\nMailHandler mailHandler = getComponent(MailHandler.class); mailHandler.sendMail(\u0026#34;My Subject\u0026#34;, \u0026#34;Hello World\u0026#34;, \u0026#34;test@test.ch\u0026#34;); "},{"uri":"https://strolch.li/documentation/services-and-commands/","title":"Services and Commands","tags":[],"description":"","content":"Services and Commands Services are written to implement a specific use-case. Commands are written to implement re-usable parts of a use-case. The use-case can be abstract e.g., AddResourceService or very specific e.g. CreatePatientService.\nShould the use-case be re-usable in different scenarios, then commands should implement the logic, and the services should then execute the commands. E.g. The CreatePatientService would use a CreatePatientResourceCommand and then use an AddResourceCommand in a single transaction, so that the task of creating the actual Patient Resource can be re-used somewhere else.\nServices extend the abstract class AbstractService and then implement the method internalDoService(ServiceArgument). AbstractService defines generic template arguments with which the concrete service can define a specific input ServiceArgument class and output ServiceResult class.\nThe AbstractService class has multiple helper methods:\n openTx():StrolchTransaction - to open a transaction runPrivileged() - to perform a SystemUserAction getComponent():V - to retrieve a specific StrolchComponent there are more - check the JavaDocs.\nCommands extend the Command class and then implement the method doCommand(). Commands have helper methods:\n tx() - to get the current transaction getPolicy() - to retrieve a StrolchPolicy instance runPrivileged() - to perform a SystemUserAction there are more - check the JavaDocs.\nThe following code snippets shows how a Service and Command are used to perform the task of adding a new Order. Note how:\n the Service opens the transaction adds the command to the TX calls tx.commitOnClose() the command validates its input locks the object performs the work and implements an undo AddOrderService:\npublic class AddOrderService extends AbstractService\u0026lt;AddOrderService.AddOrderArg, ServiceResult\u0026gt; { @Override protected ServiceResult getResultInstance() { return new ServiceResult(); } @Override protected ServiceResult internalDoService(AddOrderArg arg) { try (StrolchTransaction tx = openTx(arg.realm)) { AddOrderCommand command = new AddOrderCommand(getContainer(), tx); command.setOrder(arg.order); tx.addCommand(command); tx.commitOnClose(); } return ServiceResult.success(); } public static class AddOrderArg extends ServiceArgument { public Order order; } } AddOrderCommand:\npublic class AddOrderCommand extends Command { private Order order; public AddOrderCommand(ComponentContainer container, StrolchTransaction tx) { super(container, tx); } public void setOrder(Order order) { this.order = order; } @Override public void validate() { DBC.PRE.assertNotNull(\u0026#34;Order may not be null!\u0026#34;, this.order); } @Override public void doCommand() { tx().lock(this.order); OrderMap orderMap = tx().getOrderMap(); if (orderMap.hasElement(tx(), this.order.getType(), this.order.getId())) { String msg = MessageFormat.format(\u0026#34;The Order {0} already exists!\u0026#34;, this.order.getLocator()); throw new StrolchException(msg); } orderMap.add(tx(), this.order); } @Override public void undo() { if (this.order != null \u0026amp;\u0026amp; tx().isRollingBack()) { OrderMap orderMap = tx().getOrderMap(); if (orderMap.hasElement(tx(), this.order.getType(), this.order.getId())) orderMap.remove(tx(), this.order); } } } "},{"uri":"https://strolch.li/download/","title":"Download","tags":[],"description":"","content":"Download Strolch is on Maven central , but if the latest version is not there, then build it locally. A guide can be found on the development page.\nStrolch is also built on Jenkins, so you can see if the latest version passes all tests.\n"},{"uri":"https://strolch.li/documentation/searches/","title":"Searches","tags":[],"description":"","content":"Searches As is custom for every framework, querying, or searching, the model must be possible. Strolch searches are implemented using the StrolchSearch class and one of its concrete implementations: ResourceSearch, OrderSearch, ActivitySearch.\nA Strolch element always has two identifiers: Type and Id. The type is important as it classifies an element. So if a car and a house would be modelled in Strolch, then those would both be a Resource, but one of type Car and the other of type House. Both would have different parameters. Thus when searching for objects, the first thing to do is define the type of object being searched.\nThe Strolch search API is very expressive and offers multiple ways to perform the same search. The search API consists of three components: The search classes, the search expressions and the search predicates. The concept was taken from the Apache Camel project.\nThere are four main search classes:\n RootElementSearch - search for any of Resource, Order or Activity elements ResourceSearch - search for Resources OrderSearch - search for Orders ActivitySearch - search for Activities No search is useful without a where clause, which are called search expressions. When writing a search, there are multiple ways to add such where clauses. Either\n override the define()-method in your sub class and add the where clauses by calling the where() method, or define special methods on the class e.g. byColor() which also calls the where()-method to add a search expression, or directly call the where()-method after instantiating a search. When extending the class, then the search expressions are available as methods on the super class, otherwise you can statically import them from ExpressionsSupport .\nAnd of course a where clause needs operators, which are called search predicates. Just as search expressions are available in sub classes, so are search predicates and can also be statically imported through PredicatesSupport .\nExamples of search expressions with search predicates follow:\nResourceSearch search=new ResourceSearch(); // predicate either as parameter, or chained search.where(id().isEqualTo(\u0026#34;myId\u0026#34;)); search.where(id(isEqualTo(\u0026#34;myId\u0026#34;))); // negating search.where(id(isEqualTo(\u0026#34;myId\u0026#34;)).not()); search.where(param(\u0026#34;bagId\u0026#34;,\u0026#34;paramId\u0026#34;).isIn(Arrays.asList(\u0026#34;red\u0026#34;,\u0026#34;blue\u0026#34;,\u0026#34;green\u0026#34;))); search.where(paramNull(\u0026#34;bagId\u0026#34;,\u0026#34;paramId\u0026#34;))); // boolean operations search.where(id(isEqualTo(\u0026#34;myId\u0026#34;)) // \t.or(name(isEqualTo(\u0026#34;myName\u0026#34;)))); Note how the predicates can be chained to the search expression, or passed as a parameter to the expression.\nIn addition to using predefined search search expressions, one can also just pass a lambda expression which performs a custom filter:\npersonSearch.where(person -\u0026gt; person.getName().length() == 3); See the StrolchSearchTest for many ways in which you can implement tests.\nNote that strolch searches requires privileges, thus when you use a strolch search, add it to the role of the user in PrivilegeRoles.xml:\n \u0026lt;Privilege name=\u0026#34;li.strolch.search.StrolchSearch\u0026#34; policy=\u0026#34;DefaultPrivilege\u0026#34;\u0026gt; \u0026lt;Allow\u0026gt;internal \u0026lt;/Allow\u0026gt; \u0026lt;!-- internal used for when the search is done in an internal service --\u0026gt; \u0026lt;Allow\u0026gt;li.strolch.bookshop.search.BookSearch\u0026lt;/Allow\u0026gt; \u0026lt;/Privilege\u0026gt; "},{"uri":"https://strolch.li/documentation/queries/","title":"Queries","tags":[],"description":"","content":"Queries The Query API is deprecated and the search API should be used instead.\n As is custom for every framework, querying the model must be possible. Strolch queries are implemented using the StrolchQuery interface and one of its concrete implementations: ResourceQuery, OrderQuery, ActivityQuery.\nA Strolch element always has two identifiers: Type and Id. The type is important as it classifies an element. So if a car and a house would be modelled in Strolch, then those would both be a Resource, but one of type Car and the other of type House. Both would have different parameters.\nThus one of the inputs for every query is it\u0026rsquo;s type, which is defined as the navigation. It is said that we navigate to the Cars, or Houses. Thus when instantiating a ResourceQuery, pass the navigation to the type of Resource as well. Same applies for Orders and Activities.\nFurther input for a StrolchQuery are the selections. These selections get translated into RDBMS WHERE clauses. Selections support boolean operations thus allowing for complex querying.\nStrolchQueries also support Ordering and object transformation. Following classes provide the most used scenarios:\n OrderById OrderByName OrderByParameter *ToDomVisitor *ToSaxVisitor *ToJsonVisitor *ToFlatJsonVisitor Example: Query all resources of type Car:\ntry (StrolchTransaction tx = openTx()) { ResourceQuery\u0026lt;Resource\u0026gt; query = ResourceQuery.query(\u0026#34;Car\u0026#34;); query.withAny(); List\u0026lt;Resource\u0026gt; cars = tx.doQuery(query); } Example: Query all resources of type Car, order by Name and transform to JSON:\ntry (StrolchTransaction tx = openTx()) { ResourceQuery\u0026lt;JsonObject\u0026gt; query = ResourceQuery.query(\u0026#34;Car\u0026#34;, new ResourceToJsonVisitor(), new OrderByName()); query.withAny(); List\u0026lt;JsonObject\u0026gt; cars = tx.doQuery(query); } the previous example can also be written as follows:\ntry (StrolchTransaction tx = openTx()) { ResourceQuery\u0026lt;JsonObject\u0026gt; query = new ResourceQuery\u0026lt;\u0026gt;(); query.setNavigation(new StrolchTypeNavigation(\u0026#34;Car\u0026#34;)); query.setResourceVisitor(new ResourceToJsonVisitor()); query.withAny(); List\u0026lt;JsonObject\u0026gt; cars = tx.doQuery(query); } Example: Query all resources of type Car with color blue:\ntry (StrolchTransaction tx = openTx()) { ResourceQuery\u0026lt;Resource\u0026gt; query = ResourceQuery.query(\u0026#34;Car\u0026#34;); query.with(ParameterSelection.stringSelection(\u0026#34;parameters\u0026#34;, \u0026#34;color\u0026#34;, \u0026#34;blue\u0026#34;, StringMatchMode.es())); List\u0026lt;Resource\u0026gt; cars = tx.doQuery(query); } Example: Query all resources of type Car which are not blue:\ntry (StrolchTransaction tx = openTx()) { ResourceQuery\u0026lt;Resource\u0026gt; query = ResourceQuery.query(\u0026#34;Car\u0026#34;); query.not(ParameterSelection.stringSelection(\u0026#34;parameters\u0026#34;, \u0026#34;color\u0026#34;, \u0026#34;blue\u0026#34;, StringMatchMode.es())); List\u0026lt;Resource\u0026gt; cars = tx.doQuery(query); } Example: Query all resources of type Car with color blue or yellow:\ntry (StrolchTransaction tx = openTx()) { ResourceQuery\u0026lt;Resource\u0026gt; query = ResourceQuery.query(\u0026#34;Car\u0026#34;); query.or().with( ParameterSelection.stringSelection(\u0026#34;parameters\u0026#34;, \u0026#34;color\u0026#34;, \u0026#34;blue\u0026#34;, StringMatchMode.es()), ParameterSelection.stringSelection(\u0026#34;parameters\u0026#34;, \u0026#34;color\u0026#34;, \u0026#34;yellow\u0026#34;, StringMatchMode.es())); List\u0026lt;Resource\u0026gt; cars = tx.doQuery(query); } Example: Query all resources of type Car with color blue or yellow owned by Jill:\ntry (StrolchTransaction tx = openTx()) { ResourceQuery\u0026lt;Resource\u0026gt; query = ResourceQuery.query(\u0026#34;Car\u0026#34;); StringParameterSelection owner = ParameterSelection.stringSelection(\u0026#34;parameters\u0026#34;, \u0026#34;owner\u0026#34;, \u0026#34;Jill\u0026#34;, StringMatchMode.es()); OrSelection colors = new OrSelection().with( ParameterSelection.stringSelection(\u0026#34;parameters\u0026#34;, \u0026#34;color\u0026#34;, \u0026#34;blue\u0026#34;, StringMatchMode.es()), ParameterSelection.stringSelection(\u0026#34;parameters\u0026#34;, \u0026#34;color\u0026#34;, \u0026#34;yellow\u0026#34;, StringMatchMode.es())); query.and().with(owner, colors); List\u0026lt;Resource\u0026gt; cars = tx.doQuery(query); } "},{"uri":"https://strolch.li/development/","title":"Development","tags":[],"description":"","content":"Prerequisites To start developing Strolch you need an installed:\n Java JDK 11 Apache Maven 3.x Building Strolch Setting up Strolch is just a few lines:\ngit clone https://github.com/4treesCH/strolch.git cd strolch mvn clean install -DskipTests Note: To run the tests you will need to configure the PostgreSQL Databases. See the README in the module.\n After running the Maven build, you will have a full build of all Strolch projects. Now you can start modifying the projects, and add your own features, or, far more interesting, start developing your projects using the Strolch agent.\nCreating a Strolch App To create your own Strolch App, you can use Maven\u0026rsquo;s archetype generation. There are two versions, one is a simple Java App which you can use to directly access the Strolch runtime, and the second is to create a Java Web App, which is the usual way to run Strolch runtimes.\nNote: you need to have installed Strolch to your local maven repo, otherwise the archetype won\u0026rsquo;t be available.\n Creating a Java Strolch Web App The following shows the maven command to create the new maven project. Note that you should replace the placeholders in the brackets:\nmvn archetype:generate \\ -DarchetypeGroupId=li.strolch \\ -DarchetypeArtifactId=li.strolch.mvn.archetype.webapp \\ -DarchetypeVersion=1.6.0-SNAPSHOT \\ -DgroupId=\u0026lt;my.groupid\u0026gt; \\ -DartifactId=\u0026lt;my-artifactId\u0026gt; \\ -Dversion=\u0026lt;my.version\u0026gt; \\ -DappName=\u0026#34;\u0026lt;my app name\u0026gt;\u0026#34; Install the web dependencies The Strolch Web App uses NodeJS v11.x to build the web dependencies. Please download the relevant platform\u0026rsquo;s package, unpack it, and add the bin directory to your path variable.\nOnce NodeJS is installed, then you can prepare the web dependencies:\ncd src/main/webapp/ npm install gulp -g npm install gulp Note: Whenever the bower.json is changed then you should again call npm install inside the webapp folder.\n Building the WAR Building the WAR uses the package maven goal, but to have the optimized WAR use the release profile:\nmvn clean package -Prelease Happy coding =))\nCreating a simple Java Strolch App The following shows the maven command to create the new maven project. Note that you should replace the placeholders in the brackets:\nmvn archetype:generate \\ -DarchetypeGroupId=li.strolch \\ -DarchetypeArtifactId=li.strolch.mvn.archetype.main \\ -DarchetypeVersion=1.6.0-SNAPSHOT \\ -DgroupId=\u0026lt;my.groupid\u0026gt; \\ -DartifactId=\u0026lt;my-artifactId\u0026gt; \\ -Dversion=\u0026lt;my.version\u0026gt; \\ -DappName=\u0026#34;\u0026lt;my app name\u0026gt;\u0026#34; You change into the directory of the new project and then build the project by calling:\ncd \u0026lt;my-artifactId\u0026gt; mvn clean package Start the program using:\nmvn exec:java Happy coding =))\nTools used The following tools are used to develop Strolch and Strolch-based projects:\n IntelliJ Apache Maven Git SCM "},{"uri":"https://strolch.li/plc/example-set-up/","title":"Example Set-Up","tags":[],"description":"","content":"Example Set-Up This example setup describes the movement of containers over conveyors. The conveyors have motors which can be started and stopped by a GPIO output pin controlled on a Raspberry Pi and each conveyor has a light barrier to detect the occupancy of a container and the Raspberry Pi detects this on GPIO input pins.\nFurther at each conveyor location is a barcode reader to read the ID of a container.\nThe general idea is that the PLC notifies a Strolch agent of changes, and only turns conveyors on, when the agent gives the command. Thus the agent handles business logic and the PLC controls the I/Os.\nNew Project First create a new Strolch Web project using the Strolch Maven archetype Now add the following Maven dependencies: \u0026lt;project\u0026gt; \u0026lt;properties\u0026gt; \u0026lt;strolch.version\u0026gt;1.6.0-SNAPSHOT\u0026lt;/strolch.version\u0026gt; \u0026lt;strolch.plc.version\u0026gt;0.1.0-SNAPSHOT\u0026lt;/strolch.plc.version\u0026gt; \u0026lt;/properties\u0026gt; \u0026lt;dependencyManagement\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;li.strolch\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;li.strolch.bom\u0026lt;/artifactId\u0026gt; \u0026lt;type\u0026gt;pom\u0026lt;/type\u0026gt; \u0026lt;version\u0026gt;${strolch.version}\u0026lt;/version\u0026gt; \u0026lt;scope\u0026gt;import\u0026lt;/scope\u0026gt; \u0026lt;/dependency\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;li.strolch\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;strolch-plc-bom\u0026lt;/artifactId\u0026gt; \u0026lt;type\u0026gt;pom\u0026lt;/type\u0026gt; \u0026lt;version\u0026gt;${strolch.plc.version}\u0026lt;/version\u0026gt; \u0026lt;scope\u0026gt;import\u0026lt;/scope\u0026gt; \u0026lt;/dependency\u0026gt; \u0026lt;/dependencyManagement\u0026gt; \u0026lt;dependencies\u0026gt; \u0026lt;!-- PLC --\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;li.strolch\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;strolch-plc-core\u0026lt;/artifactId\u0026gt; \u0026lt;/dependency\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;li.strolch\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;strolch-plc-rest\u0026lt;/artifactId\u0026gt; \u0026lt;/dependency\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;li.strolch\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;strolch-plc-gw-client\u0026lt;/artifactId\u0026gt; \u0026lt;/dependency\u0026gt; \u0026lt;/dependencies\u0026gt; \u0026lt;/project\u0026gt; Add a bower dependency: \u0026quot;strolch-wc-plc\u0026quot;: \u0026quot;4treesCH/strolch-wc-plc#^0.3.4\u0026quot; to src/main/webapp/bower.json\nAfter adding the dependency, run gulp in the webapp directory. Gulp should have been installed through the instructions from the development page.\n Now we need to add the PLC web views to our new project. This is added in the src/main/webapp/app/src/c-app.html file. Add the following:\n \u0026lt;!-- HTML Imports --\u0026gt; \u0026lt;link rel=\u0026#34;import\u0026#34; href=\u0026#34;../bower_components/strolch-wc-plc/strolch-wc-plc-connections.html\u0026#34;\u0026gt; \u0026lt;link rel=\u0026#34;import\u0026#34; href=\u0026#34;../bower_components/strolch-wc-plc/strolch-wc-plc-logical-devices.html\u0026#34;\u0026gt; \u0026lt;!-- Change default-page to plcLogicalDevices --\u0026gt; \u0026lt;c-app-routing id=\u0026#34;appRouting\u0026#34; login-page=\u0026#34;login\u0026#34; default-page=\u0026#34;plcLogicalDevices\u0026#34; auth-valid=\u0026#34;[[authTokenValid]]\u0026#34; page=\u0026#34;{{page}}\u0026#34; route-tail=\u0026#34;{{routeTail}}\u0026#34; use-hash-as-path\u0026gt;\u0026lt;/c-app-routing\u0026gt; \u0026lt;!-- Add the new pages in the iron-pages element: --\u0026gt; \u0026lt;template is=\u0026#34;dom-if\u0026#34; if=\u0026#34;[[equal(page, \u0026#39;plcConnections\u0026#39;)]]\u0026#34; restamp\u0026gt; \u0026lt;strolch-wc-plc-connections id=\u0026#34;plcConnections\u0026#34; base-path=\u0026#34;../\u0026#34; base-rest-path=\u0026#34;[[baseRestPath]]\u0026#34; route=\u0026#34;{{subroute}}\u0026#34;\u0026gt;\u0026lt;/strolch-wc-plc-connections\u0026gt; \u0026lt;/template\u0026gt; \u0026lt;template is=\u0026#34;dom-if\u0026#34; if=\u0026#34;[[equal(page, \u0026#39;plcLogicalDevices\u0026#39;)]]\u0026#34; restamp\u0026gt; \u0026lt;strolch-wc-plc-logical-devices id=\u0026#34;plcLogicalDevices\u0026#34; base-path=\u0026#34;../\u0026#34; base-rest-path=\u0026#34;[[baseRestPath]]\u0026#34; base-ws-path=\u0026#34;[[baseWsPath]]\u0026#34; route=\u0026#34;{{subroute}}\u0026#34;\u0026gt;\u0026lt;/strolch-wc-plc-logical-devices\u0026gt; \u0026lt;/template\u0026gt; // add a new property to the WebSocket path for observing changes on the PLC wsObserverPath: { type: String, value: function () { return CustomWeb.baseWsPath + \u0026#34;/plc/observer\u0026#34;; } } Don\u0026rsquo;t forget to add the PLC Rest classes to your ResourceConfig @ApplicationPath(\u0026#34;rest\u0026#34;) public class RestfulApplication extends ResourceConfig { public RestfulApplication() { ... // strolch plc services packages(PlcConnectionsResource.class.getPackage().getName()); ... } } Now we need to configure the PLC\u0026rsquo;s runtime by modifying runtime/StrolchConfiguration.xml and adding the following: \u0026lt;StrolchConfiguration\u0026gt; \u0026lt;env id=\u0026#34;dev\u0026#34;\u0026gt; \u0026lt;!-- This component configures the PlcHandler by loading the PlcConnections, PlcAddresses and PlcTelegrams --\u0026gt; \u0026lt;Component\u0026gt; \u0026lt;name\u0026gt;PlcHandler\u0026lt;/name\u0026gt; \u0026lt;api\u0026gt;li.strolch.plc.core.PlcHandler\u0026lt;/api\u0026gt; \u0026lt;impl\u0026gt;li.strolch.plc.core.DefaultPlcHandler\u0026lt;/impl\u0026gt; \u0026lt;depends\u0026gt;RealmHandler\u0026lt;/depends\u0026gt; \u0026lt;Properties\u0026gt; \u0026lt;!-- The component handling the low level connections --\u0026gt; \u0026lt;plcClass\u0026gt;li.strolch.plc.core.hw.DefaultPlc\u0026lt;/plcClass\u0026gt; \u0026lt;/Properties\u0026gt; \u0026lt;/Component\u0026gt; \u0026lt;!-- This component handles registrations of the PlcServices, i.e. your PLC business logic --\u0026gt; \u0026lt;Component\u0026gt; \u0026lt;name\u0026gt;PlcServiceInitializer\u0026lt;/name\u0026gt; \u0026lt;api\u0026gt;li.strolch.plc.core.PlcServiceInitializer\u0026lt;/api\u0026gt; \u0026lt;impl\u0026gt;li.strolch.plc.example.CustomPlcServiceInitializer\u0026lt;/impl\u0026gt; \u0026lt;depends\u0026gt;PlcHandler\u0026lt;/depends\u0026gt; \u0026lt;Properties\u0026gt; \u0026lt;/Properties\u0026gt; \u0026lt;/Component\u0026gt; \u0026lt;!-- This component notifies a Strolch agent of changes on the PLC only if you have a Strolch server with a configured li.strolch.plc.gw.server.PlcServerWebSocketEndpoint ready to accept connections --\u0026gt; \u0026lt;Component\u0026gt; \u0026lt;name\u0026gt;PlcGwClientHandler\u0026lt;/name\u0026gt; \u0026lt;api\u0026gt;li.strolch.plc.gw.client.PlcGwClientHandler\u0026lt;/api\u0026gt; \u0026lt;impl\u0026gt;li.strolch.plc.gw.client.PlcGwClientHandler\u0026lt;/impl\u0026gt; \u0026lt;depends\u0026gt;PlcHandler\u0026lt;/depends\u0026gt; \u0026lt;depends\u0026gt;PlcServiceInitializer\u0026lt;/depends\u0026gt; \u0026lt;Properties\u0026gt; \u0026lt;plcId\u0026gt;plc-01\u0026lt;/plcId\u0026gt; \u0026lt;gwUsername\u0026gt;plc-01\u0026lt;/gwUsername\u0026gt; \u0026lt;gwPassword\u0026gt;plc-01\u0026lt;/gwPassword\u0026gt; \u0026lt;gwServerUrl\u0026gt;ws://localhost:8080/agent/websocket/strolch/plc \u0026lt;/gwServerUrl\u0026gt; \u0026lt;/Properties\u0026gt; \u0026lt;/Component\u0026gt; \u0026lt;/env\u0026gt; \u0026lt;/StrolchConfiguration\u0026gt; Now we add the custom classes we just declared. PlcServiceInitializer\nimport java.util.ArrayList; import java.util.List; import li.strolch.plc.example.services.*; import li.strolch.agent.api.ComponentContainer; import li.strolch.plc.core.PlcHandler; import li.strolch.plc.core.PlcService; import li.strolch.plc.core.PlcServiceInitializer; public class CustomPlcServiceInitializer extends PlcServiceInitializer { public CustomPlcServiceInitializer(ComponentContainer container, String componentName) { super(container, componentName); } @Override protected List\u0026lt;PlcService\u0026gt; getPlcServices(PlcHandler plcHandler) { ArrayList\u0026lt;PlcService\u0026gt; plcServices = new ArrayList\u0026lt;\u0026gt;(); StartupPlcService startupPlcService = new StartupPlcService(plcHandler); ConveyorPlcService conveyorPlcService = new ConveyorPlcService(plcHandler); plcServices.add(conveyorPlcService); plcServices.add(startupPlcService); return plcServices; } } PlcPostInitializer\nimport li.strolch.agent.api.ComponentContainer; import li.strolch.plc.core.PlcPostInitializer; public class CustomPostInitializer extends PlcPostInitializer { public CustomPostInitializer(ComponentContainer container, String componentName) { super(container, componentName); } // override the initialize(), start(), stop() and destroy() methods as needed } In the CustomPlcServiceInitializer we added two PlcServices, for which the code is missing. The following are simple examples: StartupPlcService\nimport li.strolch.persistence.api.StrolchTransaction; import li.strolch.plc.core.PlcHandler; import li.strolch.plc.core.PlcService; public class StartupPlcService extends PlcService { public static final String PLC = \u0026#34;PLC\u0026#34;; public static final String STARTED = \u0026#34;Started\u0026#34;; public static final String STOPPED = \u0026#34;Stopped\u0026#34;; public StartupPlcService(PlcHandler plcHandler) { super(plcHandler); } @Override public void start(StrolchTransaction tx) { send(PLC, STARTED); super.start(tx); } @Override public void stop() { send(PLC, STOPPED); super.stop(); } } ConveyorPlcService\nimport java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import li.strolch.plc.core.PlcHandler; import li.strolch.plc.core.PlcService; import li.strolch.plc.model.PlcAddress; public class ConveyorPlcService extends PlcService { public static final int BOX_TRANSFER_DURATION = 30; private static final String R_CONVEYOR_01 = \u0026#34;Conveyor01\u0026#34;; private static final String A_START_BUTTON = \u0026#34;StartButton\u0026#34;; private static final String T_MOTOR_ON = \u0026#34;MotorOn\u0026#34;; private static final String T_MOTOR_OFF = \u0026#34;MotorOff\u0026#34;; private static final String A_BOX_DETECTED = \u0026#34;BoxDetected\u0026#34;; private boolean motorOn; private ScheduledFuture\u0026lt;?\u0026gt; motorStopTask; public ConveyorPlcService(PlcHandler plcHandler) { super(plcHandler); } @Override public void handleNotification(PlcAddress address, Object value) { String resource = address.resource; String action = address.action; if (!resource.equals(\u0026#34;Conveyor01\u0026#34;)) throw new IllegalStateException(\u0026#34;Unexpected resource \u0026#34; + resource); boolean active = (boolean) value; if (action.equals(A_START_BUTTON)) { if (active) { logger.info(\u0026#34;Start button pressed. Starting motors...\u0026#34;); send(R_CONVEYOR_01, T_MOTOR_ON); this.motorOn = true; scheduleStopTask(); } } else if (action.equals(A_BOX_DETECTED)) { if (active \u0026amp;\u0026amp; this.motorOn) { logger.info(\u0026#34;Container detected, refreshing stop task...\u0026#34;); scheduleStopTask(); } } else { logger.info(\u0026#34;Unhandled notification \u0026#34; + address.toKeyAddress()); } } private void scheduleStopTask() { if (this.motorStopTask != null) this.motorStopTask.cancel(false); this.motorStopTask = schedule(this::stopMotor, BOX_TRANSFER_DURATION, TimeUnit.SECONDS); } private void stopMotor() { send(R_CONVEYOR_01, T_MOTOR_OFF); } @Override public void register() { this.plcHandler.register(R_CONVEYOR_01, A_START_BUTTON, this); this.plcHandler.register(R_CONVEYOR_01, A_BOX_DETECTED, this); super.register(); } @Override public void unregister() { this.plcHandler.unregister(R_CONVEYOR_01, A_START_BUTTON, this); this.plcHandler.unregister(R_CONVEYOR_01, A_BOX_DETECTED, this); super.unregister(); } } Now the last part is to add the model, i.e. PlcConnections, PlcAddresses and PlcTelegrams. To have less configuration files and make it easier to reconfigure at runtime, this data is stored in normal Strolch Resources.\nIn this example we will use simple Raspberry Pi GPIOs. For convenience, and also when sharing I/O definitions with external partners, it is easier to use a CSV file to define the I/Os and then use the PlcAddressGenerator to generate and validate the model.\nFor this purpose in this example, we will use one conveyor with 2 inputs and 1 output. The CSV file should have the following content:\n Description,Type,SubType,Device,Pin,Resource,Action1,Action2,Connection,DeviceId Material Flow,Group,,,,,,,,MaterialFlow Conveyor 1,Input,Pin,,4,Conveyor,Occupied,,raspiBcmGpioInput Conveyor 1,Input,Pin,,17,Conveyor,BoxDetected,,raspiBcmGpioInput Conveyor 1,Output,Pin,,18,Conveyor,MotorOn,MotorOff,raspiBcmGpioOutput The CSV headers are as follows:\n Description → a simple description for this PlcAddress Type → Group → Must be the first line and generates a PlcLogicalDevice, all succeeding lines are grouped to this device. Add additional to group further devices Input → defines a boolean input Output → defines a boolean output Virtual → defines a virtual address which has no corresponding hardware connection. Used for internal communication. DataLogicScanner → defines an address to read barcodes from a DataLogic Scanner. The actions must be left empty as the keys Barcode (address), On and Off (telegrams) will be generated. SubType → For Input and Output types → DevPin, DevPin0 → Generates the address as \u0026lt;Connection\u0026gt;.\u0026lt;Device\u0026gt;.\u0026lt;Pin\u0026gt;. DevPin0 decrements the Device and Pin values by one. Pin → Generates the address as \u0026lt;Connection\u0026gt;.\u0026lt;Pin\u0026gt;. For Virtual types → Boolean String Device → Device number Pin → The pin number on the device Resource → The resource ID with which to notify the agent Action1 → The action ID Action2 → The second action ID if required Connection → The ID of the PlcConnection with which this I/O is attached DeviceId → For type Group: Set the ID of this PlcLogicalDevice being generated When you use this file as input for the PlcAddressGenerator, then it will generate PlcLogicalDevice, PlcAddress and PlcTelegram elements:\n\u0026lt;StrolchModel\u0026gt; \u0026lt;Resource Id=\u0026#34;D_MaterialFlow\u0026#34; Name=\u0026#34;MaterialFlow\u0026#34; Type=\u0026#34;PlcLogicalDevice\u0026#34;\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;parameters\u0026#34; Name=\u0026#34;Parameters\u0026#34; Type=\u0026#34;Parameters\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;description\u0026#34; Name=\u0026#34;Description\u0026#34; Type=\u0026#34;String\u0026#34; Value=\u0026#34;Material Flow\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;group\u0026#34; Name=\u0026#34;Group\u0026#34; Type=\u0026#34;String\u0026#34; Value=\u0026#34;01 Material Flow\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;index\u0026#34; Name=\u0026#34;Index\u0026#34; Type=\u0026#34;Integer\u0026#34; Value=\u0026#34;10\u0026#34;/\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;relations\u0026#34; Name=\u0026#34;Relations\u0026#34; Type=\u0026#34;Relations\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;addresses\u0026#34; Name=\u0026#34;Addresses\u0026#34; Type=\u0026#34;StringList\u0026#34; Interpretation=\u0026#34;Resource-Ref\u0026#34; Uom=\u0026#34;PlcAddress\u0026#34; Value=\u0026#34;A_Conveyor-Occupied, A_Conveyor-BoxDetected, A_Conveyor-MotorOn\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;telegrams\u0026#34; Name=\u0026#34;Telegrams\u0026#34; Type=\u0026#34;StringList\u0026#34; Interpretation=\u0026#34;Resource-Ref\u0026#34; Uom=\u0026#34;PlcTelegram\u0026#34; Value=\u0026#34;T_Conveyor-MotorOn, T_Conveyor-MotorOff\u0026#34;/\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;/Resource\u0026gt; \u0026lt;Resource Id=\u0026#34;A_Conveyor-Occupied\u0026#34; Name=\u0026#34;Conveyor - Occupied\u0026#34; Type=\u0026#34;PlcAddress\u0026#34;\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;parameters\u0026#34; Name=\u0026#34;Parameters\u0026#34; Type=\u0026#34;Parameters\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;description\u0026#34; Name=\u0026#34;Description\u0026#34; Type=\u0026#34;String\u0026#34; Index=\u0026#34;5\u0026#34; Value=\u0026#34;Conveyor 1\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;address\u0026#34; Name=\u0026#34;HW Address\u0026#34; Type=\u0026#34;String\u0026#34; Interpretation=\u0026#34;PlcConnection\u0026#34; Index=\u0026#34;10\u0026#34; Value=\u0026#34;raspiBcmGpioInput.4\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;resource\u0026#34; Name=\u0026#34;Resource ID for PlcAddress\u0026#34; Type=\u0026#34;String\u0026#34; Index=\u0026#34;20\u0026#34; Value=\u0026#34;Conveyor\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;action\u0026#34; Name=\u0026#34;Action ID for PlcAddress\u0026#34; Type=\u0026#34;String\u0026#34; Index=\u0026#34;30\u0026#34; Value=\u0026#34;Occupied\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;index\u0026#34; Name=\u0026#34;Index\u0026#34; Type=\u0026#34;Integer\u0026#34; Index=\u0026#34;40\u0026#34; Value=\u0026#34;10\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;value\u0026#34; Name=\u0026#34;Value\u0026#34; Type=\u0026#34;Boolean\u0026#34; Index=\u0026#34;100\u0026#34; Value=\u0026#34;false\u0026#34;/\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;/Resource\u0026gt; \u0026lt;Resource Id=\u0026#34;T_Conveyor-MotorOn\u0026#34; Name=\u0026#34;Conveyor - MotorOn\u0026#34; Type=\u0026#34;PlcTelegram\u0026#34;\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;parameters\u0026#34; Name=\u0026#34;Parameters\u0026#34; Type=\u0026#34;Parameters\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;description\u0026#34; Name=\u0026#34;Description\u0026#34; Type=\u0026#34;String\u0026#34; Index=\u0026#34;5\u0026#34; Value=\u0026#34;Conveyor 1\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;address\u0026#34; Name=\u0026#34;HW Address\u0026#34; Type=\u0026#34;String\u0026#34; Interpretation=\u0026#34;PlcConnection\u0026#34; Index=\u0026#34;10\u0026#34; Value=\u0026#34;raspiBcmGpioOutput.18\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;resource\u0026#34; Name=\u0026#34;Resource ID for PlcAddress\u0026#34; Type=\u0026#34;String\u0026#34; Index=\u0026#34;20\u0026#34; Value=\u0026#34;Conveyor\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;action\u0026#34; Name=\u0026#34;Action ID for PlcAddress\u0026#34; Type=\u0026#34;String\u0026#34; Index=\u0026#34;30\u0026#34; Value=\u0026#34;MotorOn\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;index\u0026#34; Name=\u0026#34;Index\u0026#34; Type=\u0026#34;Integer\u0026#34; Index=\u0026#34;40\u0026#34; Value=\u0026#34;10\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;value\u0026#34; Name=\u0026#34;Value\u0026#34; Type=\u0026#34;Boolean\u0026#34; Index=\u0026#34;100\u0026#34; Value=\u0026#34;true\u0026#34;/\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;/Resource\u0026gt; \u0026lt;/StrolchModel\u0026gt; The PlcLogicalDevice references the PlcAddress and PlcTelegram objects, and is then used in the UI for grouping.\nThe PlcAddress is used to store the current value and defines the keys with which the agent will be notified\nThe PlcTelegram is used to store default values to send, for specific keys. E.g. The action On would send true, and Off would send false. This is semantics, and is defined in each project depending on the hardware.\n Copy the file plc-state.xml to your runtime and reference it by use of a \u0026lt;IncludeFile file=\u0026quot;plc-state.xml\u0026quot; /\u0026gt; element. Modify the PlcId to be the same as the one you defined in the StrolchConfiguration.xml.\n Now that we have a model, the PlcConnections are to be defined. In the previous example we used a Raspberry Pi\u0026rsquo;s GPIOs. This needs to be defined as a PlcConnection:\n \u0026lt;StrolchModel\u0026gt; \u0026lt;Resource Id=\u0026#34;raspiBcmGpioOutput\u0026#34; Name=\u0026#34;Raspi BCM GPIO Output\u0026#34; Type=\u0026#34;PlcConnection\u0026#34;\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;parameters\u0026#34; Name=\u0026#34;Parameters\u0026#34; Type=\u0026#34;Parameters\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;className\u0026#34; Name=\u0026#34;Connection Class\u0026#34; Type=\u0026#34;String\u0026#34; Value=\u0026#34;li.strolch.plc.core.hw.gpio.RaspiBcmGpioOutputConnection\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;state\u0026#34; Name=\u0026#34;Connection State\u0026#34; Type=\u0026#34;String\u0026#34; Interpretation=\u0026#34;Enumeration\u0026#34; Uom=\u0026#34;ConnectionState\u0026#34; Value=\u0026#34;Disconnected\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;stateMsg\u0026#34; Name=\u0026#34;Connection State Msg\u0026#34; Type=\u0026#34;String\u0026#34; Interpretation=\u0026#34;Enumeration\u0026#34; Uom=\u0026#34;ConnectionState\u0026#34; Value=\u0026#34;\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;inverted\u0026#34; Name=\u0026#34;Inverted\u0026#34; Type=\u0026#34;Boolean\u0026#34; Value=\u0026#34;false\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;bcmOutputPins\u0026#34; Name=\u0026#34;BCM Output Pins\u0026#34; Type=\u0026#34;IntegerList\u0026#34; Value=\u0026#34;27\u0026#34;/\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;/Resource\u0026gt; \u0026lt;Resource Id=\u0026#34;raspiBcmGpioInput\u0026#34; Name=\u0026#34;Raspi BCM GPIO Input\u0026#34; Type=\u0026#34;PlcConnection\u0026#34;\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;parameters\u0026#34; Name=\u0026#34;Parameters\u0026#34; Type=\u0026#34;Parameters\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;className\u0026#34; Name=\u0026#34;Connection Class\u0026#34; Type=\u0026#34;String\u0026#34; Value=\u0026#34;li.strolch.plc.core.hw.gpio.RaspiBcmGpioInputConnection\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;state\u0026#34; Name=\u0026#34;Connection State\u0026#34; Type=\u0026#34;String\u0026#34; Interpretation=\u0026#34;Enumeration\u0026#34; Uom=\u0026#34;ConnectionState\u0026#34; Value=\u0026#34;Disconnected\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;stateMsg\u0026#34; Name=\u0026#34;Connection State Msg\u0026#34; Type=\u0026#34;String\u0026#34; Interpretation=\u0026#34;Enumeration\u0026#34; Uom=\u0026#34;ConnectionState\u0026#34; Value=\u0026#34;\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;inverted\u0026#34; Name=\u0026#34;Inverted\u0026#34; Type=\u0026#34;Boolean\u0026#34; Value=\u0026#34;true\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;bcmInputPins\u0026#34; Name=\u0026#34;BCM Input Pins\u0026#34; Type=\u0026#34;IntegerList\u0026#34; Value=\u0026#34;4\u0026#34;/\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;/Resource\u0026gt; \u0026lt;/StrolchModel\u0026gt; See strolch-plc-example-connections.xml for further examples.\n"},{"uri":"https://strolch.li/documentation/transactions/","title":"Transactions","tags":[],"description":"","content":"Transactions Strolch Transactions play a central role in a Strolch agent. A transaction is opened for a realm, and grants access to the model of the agent. Transactions are implemented as a Java try-with-resources by implementing the AutoCloseable interface. This makes it trivial to understand the scope of a transaction.\nTransactions handle the following:\n Opening and closing database connections Releasing locks to strolch elements, if tx.lock(StrolchRootElement) or tx.lock(Locator) was called Performing Commands by executing them in the added order, and validating them first. Exception handling Auditing Updating observers When a transaction is opened, it is by default read-only, i.e. does not perform any commands when it is closed. Should the TX perform commands, then it is important to call tx.commitOnClose(), but only at the end of the work, so that exception handling can properly work if something goes wrong.\nStrolchTransaction offers a myriad of methods:\n find element by its Locator get methods for elements by type and id, or using a StringParameter or StringListParameter references methods to add, update or remove elements assert privilege access get a new element by its template check if an element exists by type and id get streams for elements add commands for execution Transactions are opened by accessing the realm, but there are convenience methods depending on the use-case:\n In Services: by calling one of the openTx()-methods In Commands: Transactions are already open, use method tx() to get instance. REST API: RestfulStrolchComponent.openTx() Note: don\u0026rsquo;t open a new TX inside a TX for the same realm!\n Important is to always open the transaction as a try-with-resource block and to define if the TX should commit, or not:\ntry (StrolchTransaction tx = openTx(...)) { // read lock our object Locator ferrariLoc = Resource.locatorFor(\u0026#34;Car\u0026#34;, \u0026#34;ferrari\u0026#34;); tx.lock(ferrariLoc); // find a car by locator Resource ferrari = tx.findElement(ferrariLoc); // get a car by ID Resource opel = tx.getResourceBy(\u0026#34;Car\u0026#34;, \u0026#34;opel\u0026#34;, true); // modify ball opel.setName(\u0026#34;Opel Corsa\u0026#34;); tx.update(opel); // get by string reference StringParameter ownerP = ferrari.getParameter(\u0026#34;relations\u0026#34;, \u0026#34;owner\u0026#34;, true); Resource owner = tx.getResourceBy(ownerP, true); // get by string list reference StringListParameter previousOwnersP = opel.getParameter(\u0026#34;relations\u0026#34;, \u0026#34;previousOwners\u0026#34;, true); List\u0026lt;Resource\u0026gt; previousOwners = tx.getResourcesBy(previousOwnersP, true); // check resource exists if (tx.hasResource(\u0026#34;Car\u0026#34;, \u0026#34;audi\u0026#34;)) { Resource audi = tx.getResourceBy(\u0026#34;Car\u0026#34;, \u0026#34;audi\u0026#34;, true); // assert has privilege to remove a car tx.assertHasPrivilege(Operation.REMOVE, audi); // remove the car tx.remove(audi); } // iterate all cars tx.streamResources(\u0026#34;Car\u0026#34;).forEach(car -\u0026gt; { logger.info(\u0026#34;Car: \u0026#34; + car.getId()); }); // commit if TX was changed if (tx.needsCommit()) tx.commitOnClose(); } "},{"uri":"https://strolch.li/documentation/policies/","title":"Policies","tags":[],"description":"","content":"Policies Policies are an integral part when writing business logic in Strolch. In many cases it would suffice to write all such logic in Services and Commands, but as soon as behaviour can change, depending on the element being accessed, then this would quickly lead to many if/else blocks.\nSince writing large if/else blocks is not maintanable in the long run, Strolch offers a different approach. All Strolch elements can store Policy definitions. This is a simple key/value store where the key defines the type of policy, and the value references the policy to use.\nCurrently there are two ways to reference a policy in Strolch, either via a key which defines a further lookup in the PolicyHandler, or directly as the name of the class to instantiate.\nUsing policies in Strolch gives the additional possibility of easily changing the behaviour at runtime, as a Service and/or Command would delegate the behaviour to the currently configured policy on the releveant element.\nPolicies are implemented by defining an abstract class and extends StrolchPolicy. This abstract class then defines the API of the actual policy. A concrete class then extends this abstract class and implements the concrete methods.\nPolicies are registered on Resources, Orders, Activities and Actions. The following shows defining two policies on a Resource, a PlanningPolicy, an ExecutionPolicy in XML:\n\u0026lt;Resource ...\u0026gt; ... \u0026lt;Policies\u0026gt; \u0026lt;Policy Type=\u0026#34;PlanningPolicy\u0026#34; Value=\u0026#34;key:SimplePlanning\u0026#34; /\u0026gt; \u0026lt;Policy Type=\u0026#34;ExecutionPolicy\u0026#34; Value=\u0026#34;java:li.strolch.policytest.TestSimulatedExecutionPolicy\u0026#34; /\u0026gt; \u0026lt;/Policies\u0026gt; \u0026lt;/Resource\u0026gt; Note how the PlanningPolicy has a value of key:SimplePlanning and the ExecutionPolicy defines a reference to an actual class.\n To use the PolicyHandler, it must be configured in the StrolchConfiguration.xml as follows:\n\u0026lt;Component\u0026gt; \u0026lt;name\u0026gt;PolicyHandler\u0026lt;/name\u0026gt; \u0026lt;api\u0026gt;li.strolch.policy.PolicyHandler\u0026lt;/api\u0026gt; \u0026lt;impl\u0026gt;li.strolch.policy.DefaultPolicyHandler\u0026lt;/impl\u0026gt; \u0026lt;Properties\u0026gt; \u0026lt;readPolicyFile\u0026gt;true\u0026lt;/readPolicyFile\u0026gt; \u0026lt;policyConfigFile\u0026gt;StrolchPolicies.xml\u0026lt;/policyConfigFile\u0026gt; \u0026lt;/Properties\u0026gt; \u0026lt;/Component\u0026gt; And this policy handler implementation requires a file where the lookups for the policies is defined, e.g.:\n\u0026lt;StrolchPolicies\u0026gt; \u0026lt;PolicyType Type=\u0026#34;PlanningPolicy\u0026#34; Api=\u0026#34;li.strolch.policytest.TestPlanningPolicy\u0026#34;\u0026gt; \u0026lt;Policy Key=\u0026#34;SimplePlanning\u0026#34; Class=\u0026#34;li.strolch.policytest.TestSimplePlanningPolicy\u0026#34;/\u0026gt; \u0026lt;/PolicyType\u0026gt; \u0026lt;PolicyType Type=\u0026#34;ConfirmationPolicy\u0026#34; Api=\u0026#34;li.strolch.policytest.TestConfirmationPolicy\u0026#34;\u0026gt; \u0026lt;Policy Key=\u0026#34;NoConfirmation\u0026#34; Class=\u0026#34;li.strolch.policytest.TestNoConfirmationPolicy\u0026#34;/\u0026gt; \u0026lt;/PolicyType\u0026gt; \u0026lt;/StrolchPolicies\u0026gt; Now at runtime we can access the policies:\nPolicyHandler policyHandler=getComponent(PolicyHandler.class); try(StrolchTransaction tx=openTx()){ Resource res=tx.getResourceBy(\u0026#34;TestType\u0026#34;,\u0026#34;MyTestResource\u0026#34;); PolicyDefs policyDefs=res.getPolicyDefs(); PolicyDef planningPolicyDef=policyDefs.getPolicyDef(\u0026#34;PlanningPolicy\u0026#34;); PlanningPolicy planningPolicy=policyHandler.getPolicy(planningPolicyDef,tx); planningPolicy.plan(...); PolicyDef executionPolicyDef=res.getPolicyDefs().getPolicyDef(\u0026#34;ExecutionPolicy\u0026#34;); ExecutionPolicy executionPolicy=policyHandler.getPolicy(executionPolicyDef,tx); executionPolicy.execute(...); } "},{"uri":"https://strolch.li/documentation/observers/","title":"Observers","tags":[],"description":"","content":"Observers All changes done in a Strolch transaction are recorded and then propagated to any registered observers.\nThe observer feature is opt-in and is configured for each realm. In the StrolchConfiguration.xml file enable observers by adding the enableObserverUpdates property per realm:\n\u0026lt;StrolchConfiguration\u0026gt; \u0026lt;env id=\u0026#34;dev\u0026#34;\u0026gt; ... \u0026lt;Component\u0026gt; \u0026lt;name\u0026gt;RealmHandler\u0026lt;/name\u0026gt; \u0026lt;api\u0026gt;li.strolch.agent.api.RealmHandler\u0026lt;/api\u0026gt; \u0026lt;impl\u0026gt;li.strolch.agent.impl.DefaultRealmHandler\u0026lt;/impl\u0026gt; \u0026lt;depends\u0026gt;PrivilegeHandler\u0026lt;/depends\u0026gt; \u0026lt;Properties\u0026gt; \u0026lt;realms\u0026gt;defaultRealm, otherRealm\u0026lt;/realms\u0026gt; \u0026lt;enableObserverUpdates\u0026gt;true\u0026lt;/enableObserverUpdates\u0026gt; \u0026lt;dataStoreMode\u0026gt;TRANSIENT\u0026lt;/dataStoreMode\u0026gt; \u0026lt;dataStoreFile\u0026gt;StrolchModel.xml\u0026lt;/dataStoreFile\u0026gt; \u0026lt;enableObserverUpdates.otherRealm\u0026gt;true\u0026lt;/enableObserverUpdates.otherRealm\u0026gt; \u0026lt;dataStoreMode.otherRealm\u0026gt;TRANSIENT\u0026lt;/dataStoreMode.otherRealm\u0026gt; \u0026lt;dataStoreFile.otherRealm\u0026gt;StrolchModel.xml\u0026lt;/dataStoreFile.otherRealm\u0026gt; \u0026lt;/Properties\u0026gt; \u0026lt;/Component\u0026gt; \u0026lt;/env\u0026gt; ... \u0026lt;/StrolchConfiguration\u0026gt; Registering for updates is done by registering an Observer on the ObserverHandler of the realm itself:\nObserverHandler observerHandler = container.getRealm(StrolchConstants.DEFAULT_REALM).getObserverHandler(); observerHandler.registerObserver(Tags.RESOURCE, new Observer() { @Override public void update(String key, List\u0026lt;StrolchRootElement\u0026gt; elements) { logger.info(elements.size() + \u0026#34; resources were updated!\u0026#34;); } @Override public void remove(String key, List\u0026lt;StrolchRootElement\u0026gt; elements) { logger.info(elements.size() + \u0026#34; resources were removed!\u0026#34;); } @Override public void add(String key, List\u0026lt;StrolchRootElement\u0026gt; elements) { logger.info(elements.size() + \u0026#34; resources were added!\u0026#34;); } }); "},{"uri":"https://strolch.li/documentation/versioning/","title":"Versioning","tags":[],"description":"","content":"Versioning One of Strolch\u0026rsquo;s features that sets it apart from other frameworks, is that versioning is baked into Strolch\u0026rsquo;s fabric. The feature is opt-in, as it is not required in all projects, but it only needs enabling, for all modifications to objects to be versioned, so that rollbacks can be done when needed.\nThe feature is enabled for each realm. In the StrolchConfiguration.xml file enable it by adding the enableVersioning propery per realm:\n\u0026lt;StrolchConfiguration\u0026gt; \u0026lt;env id=\u0026#34;dev\u0026#34;\u0026gt; ... \u0026lt;Component\u0026gt; \u0026lt;name\u0026gt;RealmHandler\u0026lt;/name\u0026gt; \u0026lt;api\u0026gt;li.strolch.agent.api.RealmHandler\u0026lt;/api\u0026gt; \u0026lt;impl\u0026gt;li.strolch.agent.impl.DefaultRealmHandler\u0026lt;/impl\u0026gt; \u0026lt;depends\u0026gt;PrivilegeHandler\u0026lt;/depends\u0026gt; \u0026lt;Properties\u0026gt; \u0026lt;realms\u0026gt;defaultRealm, otherRealm\u0026lt;/realms\u0026gt; \u0026lt;enableVersioning\u0026gt;true\u0026lt;/enableVersioning\u0026gt; \u0026lt;dataStoreMode\u0026gt;TRANSIENT\u0026lt;/dataStoreMode\u0026gt; \u0026lt;dataStoreFile\u0026gt;StrolchModel.xml\u0026lt;/dataStoreFile\u0026gt; \u0026lt;enableVersioning.otherRealm\u0026gt;true\u0026lt;/enableVersioning.otherRealm\u0026gt; \u0026lt;dataStoreMode.otherRealm\u0026gt;TRANSIENT\u0026lt;/dataStoreMode.otherRealm\u0026gt; \u0026lt;dataStoreFile.otherRealm\u0026gt;StrolchModel.xml\u0026lt;/dataStoreFile.otherRealm\u0026gt; \u0026lt;/Properties\u0026gt; \u0026lt;/Component\u0026gt; \u0026lt;/env\u0026gt; ... \u0026lt;/StrolchConfiguration\u0026gt; Once versioning is enabled, versioning is handled automatically. The API for versioning is implemented on the ElementMaps.\nExample: Revert to previous version of a Resource:\nResource res = tx.getResourceBy(\u0026#34;TestType\u0026#34;, \u0026#34;MyTestResource\u0026#34;); ResourceMap resourceMap = tx.getResourceMap(); Resource previousVersion = resourceMap.revertToVersion(tx, res); // or Resource previousVersion = resourceMap.revertToVersion(tx, \u0026#34;TestType\u0026#34;, \u0026#34;MyTestResource\u0026#34;, 1); Example: Retrieve all versions of a Resource:\nList\u0026lt;Resource\u0026gt; versions = resourceMap.getVersionsFor(tx, \u0026#34;TestType\u0026#34;, \u0026#34;MyTestResource\u0026#34;); Note: When reverting to a previous version, it is important to remember, that any references on an element to other elements will also be restored. As long as the relationship is to the same element, then this is not an issue, but should the relationship have changed, then it this must be handled and the user performing a revert be allowed to decided which element to reference in the reverted version.\n "},{"uri":"https://strolch.li/documentation/reports/","title":"Reports","tags":[],"description":"","content":"Reports Since Strolch has a generic model, it was rather straight forward to create a simple API for writing reports. In Strolch a report is defined by using its own model, i.e. a Report is a Resource of type Report.\nA report consists of the following parts:\n policy definition, thus allowing extensions basic configuration like base object type, order direction, etc. column definitions joins ordering definition filters An example of a report is as follows:\n\u0026lt;Resource Id=\u0026#34;stockReport\u0026#34; Name=\u0026#34;Stock Report\u0026#34; Type=\u0026#34;Report\u0026#34;\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;parameters\u0026#34; Name=\u0026#34;parameters\u0026#34; Type=\u0026#34;Parameters\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;objectType\u0026#34; Index=\u0026#34;20\u0026#34; Hidden=\u0026#34;false\u0026#34; Name=\u0026#34;Object Type\u0026#34; Type=\u0026#34;String\u0026#34; Interpretation=\u0026#34;Resource-Ref\u0026#34; Uom=\u0026#34;Player\u0026#34; Value=\u0026#34;Player\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;descending\u0026#34; Name=\u0026#34;Descending order\u0026#34; Type=\u0026#34;Boolean\u0026#34; Value=\u0026#34;true\u0026#34;/\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;ordering\u0026#34; Name=\u0026#34;Ordering\u0026#34; Type=\u0026#34;Ordering\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;name\u0026#34; Name=\u0026#34;Name\u0026#34; Type=\u0026#34;String\u0026#34; Interpretation=\u0026#34;Resource-Ref\u0026#34; Uom=\u0026#34;Player\u0026#34; Value=\u0026#34;$name\u0026#34;/\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;noTeamFilter\u0026#34; Name=\u0026#34;Filter\u0026#34; Type=\u0026#34;Filter\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;policy\u0026#34; Name=\u0026#34;Filter Policy\u0026#34; Type=\u0026#34;String\u0026#34; Interpretation=\u0026#34;ReportFilterPolicy\u0026#34; Uom=\u0026#34;key:Equals\u0026#34; Value=\u0026#34;!\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;fieldRef\u0026#34; Name=\u0026#34;Field reference\u0026#34; Type=\u0026#34;String\u0026#34; Interpretation=\u0026#34;Resource-Ref\u0026#34; Uom=\u0026#34;Slot\u0026#34; Value=\u0026#34;Bags/relations/team\u0026#34;/\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;columns\u0026#34; Name=\u0026#34;Display Columns\u0026#34; Type=\u0026#34;Display\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;name\u0026#34; Name=\u0026#34;Player\u0026#34; Type=\u0026#34;String\u0026#34; Interpretation=\u0026#34;Resource-Ref\u0026#34; Uom=\u0026#34;Player\u0026#34; Value=\u0026#34;$name\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;birthDate\u0026#34; Name=\u0026#34;Birth date\u0026#34; Type=\u0026#34;String\u0026#34; Interpretation=\u0026#34;Resource-Ref\u0026#34; Uom=\u0026#34;Player\u0026#34; Value=\u0026#34;Bags/parameters/birthDate\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;team\u0026#34; Name=\u0026#34;Team\u0026#34; Type=\u0026#34;String\u0026#34; Interpretation=\u0026#34;Resource-Ref\u0026#34; Uom=\u0026#34;Team\u0026#34; Value=\u0026#34;$name\u0026#34;/\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;joins\u0026#34; Name=\u0026#34;Joins\u0026#34; Type=\u0026#34;Joins\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;Team\u0026#34; Index=\u0026#34;10\u0026#34; Hidden=\u0026#34;false\u0026#34; Name=\u0026#34;Team\u0026#34; Type=\u0026#34;String\u0026#34; Interpretation=\u0026#34;Resource-Ref\u0026#34; Uom=\u0026#34;Team\u0026#34; Value=\u0026#34;Player\u0026#34;/\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;Policies\u0026gt; \u0026lt;Policy Type=\u0026#34;ReportPolicy\u0026#34; Value=\u0026#34;java:li.strolch.report.policy.GenericReport\u0026#34;/\u0026gt; \u0026lt;/Policies\u0026gt; \u0026lt;/Resource\u0026gt; This report\n shows all Resources of type player (parameter objectType) → marks the object type to be show in the filter criteria (default), and that its sorting index is at 20. orders the report by player\u0026rsquo;s name (parameter bag ordering) filters out all players with no team assigned (parameter bag noTeamFilter) defines three columns: Player, Birth date, Team (paramger bag columns) joins in the resource of type Team Uses the GenericReport class to generate the report GenericReport The default generic report implemented in Strolch has the following features and options:\nParameters The parameters bag can contain the following parameters:\n objectType → the base type of object to get the input for the report. This means that the Interpretation is set to one of:\n Resource-Ref Order-Ref Activity-Ref and that the UOM and value of the parameter is set to the type of element with which to retrieve the elements from the strolch model.\n descending → boolean flag to define if sorting is in descending order\n allowMissingColumns → flag to define if no exception should be thrown if a column is missing\n dateRangeSel → defines a lookup parameter to use as a date range selector. This requires input when executing the report\n Note: that the attributes Hidden and Index define the visibility and sorting index as filter criteria respectively.\n Lookups Many of the features of the generic report rely on looking up a value on the referenced element. The following shows the ways that a lookup can be performed:\n $id → lookup the ID of the element $name → lookup the name of the element $type → lookup the type of the element $date → lookup the date of the element (only possible on Order and Activity elements) $state → lookup the state of the element (only possible on Order and Activity elements) Bags/\u0026lt;bag_id\u0026gt;/\u0026lt;param_id\u0026gt; → a lookup on the selected element by bag ID and parameter ID $search:\u0026lt;parent_ref_id\u0026gt;:Bags/\u0026lt;bag_id\u0026gt;/\u0026lt;param_id\u0026gt; → searches for a parameter with the given bag and parameter, and if it does not exist, looks for the parent with the given parent_ref_id on the element. This allows a recursive search up a tree of elements which all have the same parameter referencing a parent. relations bag Note: these definitions are set as the value of a Parameter, and the Interpretation and UOM of the parameter is used to find the element on which to perform the lookup. I.e. the following definition:\n \u0026lt;Parameter Id=\u0026#34;name\u0026#34; Name=\u0026#34;Player\u0026#34; Type=\u0026#34;String\u0026#34; Interpretation=\u0026#34;Resource-Ref\u0026#34; Uom=\u0026#34;Player\u0026#34; Value=\u0026#34;$name\u0026#34;/\u0026gt; defines that we want to lookup the name of the resource of type Player.\nOrdering Ordering, i.e sorting is done by adding the parameter bag with the id ordering and each parameter defines a column to order by. The sequence of the ordering is defined by the index value assigned to each parameter.\nFiltering Filtering use additional Strolch Policies which implement the operator function. I.e. performing an equals, etc. The following ReportFilterPolicy are available and should be added in your StrolchPolicies.xml file:\n\u0026lt;StrolchPolicies\u0026gt; ... \u0026lt;PolicyType Type=\u0026#34;ReportFilterPolicy\u0026#34; Api=\u0026#34;li.strolch.report.policy.ReportFilterPolicy\u0026#34;\u0026gt; \u0026lt;Policy Key=\u0026#34;GreaterThan\u0026#34; Class=\u0026#34;li.strolch.report.policy.GreaterThanReportFilter\u0026#34;/\u0026gt; \u0026lt;Policy Key=\u0026#34;LessThan\u0026#34; Class=\u0026#34;li.strolch.report.policy.LessThanReportFilter\u0026#34;/\u0026gt; \u0026lt;Policy Key=\u0026#34;Equals\u0026#34; Class=\u0026#34;li.strolch.report.policy.EqualsReportFilter\u0026#34;/\u0026gt; \u0026lt;Policy Key=\u0026#34;Contains\u0026#34; Class=\u0026#34;li.strolch.report.policy.ContainsReportFilter\u0026#34;/\u0026gt; \u0026lt;Policy Key=\u0026#34;IsIn\u0026#34; Class=\u0026#34;li.strolch.report.policy.IsInReportFilter\u0026#34;/\u0026gt; \u0026lt;Policy Key=\u0026#34;ValueRef\u0026#34; Class=\u0026#34;li.strolch.report.policy.ValueRefReportFilter\u0026#34;/\u0026gt; \u0026lt;/PolicyType\u0026gt; ... \u0026lt;/StrolchPolicies\u0026gt; From this we can see that we can perform a GreaterThan, LessThan and Equals filtering. These filters can also be negated by prefixing the filter value with an exclamation mark (!).\nA special case for the filter values are filters on dates. If you are filtering on a date, then you can use the special operator now(). This filter will use the current date and time and will add/subtract the ISO8601 period passed as an argument to the operator.\nThe following shows examples of these filters:\n\u0026lt;ParameterBag Id=\u0026#34;minQtyFilter\u0026#34; Name=\u0026#34;Filter\u0026#34; Type=\u0026#34;Filter\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;policy\u0026#34; Name=\u0026#34;Filter Policy\u0026#34; Type=\u0026#34;String\u0026#34; Interpretation=\u0026#34;ReportFilterPolicy\u0026#34; Uom=\u0026#34;key:GreaterThan\u0026#34; Value=\u0026#34;10\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;fieldRef\u0026#34; Name=\u0026#34;Field reference\u0026#34; Type=\u0026#34;String\u0026#34; Interpretation=\u0026#34;Resource-Ref\u0026#34; Uom=\u0026#34;Product\u0026#34; Value=\u0026#34;Bags/parameters/quantity\u0026#34;/\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;notEmptyFilter\u0026#34; Name=\u0026#34;Filter\u0026#34; Type=\u0026#34;Filter\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;policy\u0026#34; Name=\u0026#34;Filter Policy\u0026#34; Type=\u0026#34;String\u0026#34; Interpretation=\u0026#34;ReportFilterPolicy\u0026#34; Uom=\u0026#34;key:Equals\u0026#34; Value=\u0026#34;!\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;fieldRef\u0026#34; Name=\u0026#34;Field reference\u0026#34; Type=\u0026#34;String\u0026#34; Interpretation=\u0026#34;Resource-Ref\u0026#34; Uom=\u0026#34;Team\u0026#34; Value=\u0026#34;Bags/relations/team\u0026#34;/\u0026gt; \u0026lt;/ParameterBag\u0026gt; \u0026lt;ParameterBag Id=\u0026#34;threeMonthsAgoFilter\u0026#34; Name=\u0026#34;Filter\u0026#34; Type=\u0026#34;Filter\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;policy\u0026#34; Name=\u0026#34;Filter Policy\u0026#34; Type=\u0026#34;String\u0026#34; Interpretation=\u0026#34;ReportFilterPolicy\u0026#34; Uom=\u0026#34;key:LessThan\u0026#34; Value=\u0026#34;now(-P3M)\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;fieldRef\u0026#34; Name=\u0026#34;Field reference\u0026#34; Type=\u0026#34;String\u0026#34; Interpretation=\u0026#34;Resource-Ref\u0026#34; Uom=\u0026#34;FromStock\u0026#34; Value=\u0026#34;$date\u0026#34;/\u0026gt; \u0026lt;/ParameterBag\u0026gt; Note: One parameter defines which policy gets used and the key:\u0026lt;name\u0026gt; value references a policy defined in the StrolchPolicies.xml file. Further the lookup is defined in the fieldRef parameter.\n Joins To add columns from data which is not on the element denoted by the base object type, we can join further elements. This is done by adding the parameter bag joins and then each parameter references an element to join. The joining is done as follows:\n The Intepretation and UOM define which object we want to join, i.e. resource of type foo The value of the parameter defines the type of element on which to find the reference The join ordering is not relevant, as the tree is traversed accordingly At least one join must reference the base object type The lookup of the join is done by finding a parameter with any ID, which has the same Interpretation and UOM as the join definition The attributes Hidden and Index define the visibility and sorting index as filter criteria respectively. Thus the following:\n\u0026lt;ParameterBag Id=\u0026#34;joins\u0026#34; Name=\u0026#34;Joins\u0026#34; Type=\u0026#34;Joins\u0026#34;\u0026gt; \u0026lt;Parameter Id=\u0026#34;Team\u0026#34; Index=\u0026#34;10\u0026#34; Hidden=\u0026#34;false\u0026#34; Name=\u0026#34;Team\u0026#34; Type=\u0026#34;String\u0026#34; Interpretation=\u0026#34;Resource-Ref\u0026#34; Uom=\u0026#34;Team\u0026#34; Value=\u0026#34;Player\u0026#34;/\u0026gt; \u0026lt;Parameter Id=\u0026#34;Country\u0026#34; Index=\u0026#34;5\u0026#34; Hidden=\u0026#34;false\u0026#34; Name=\u0026#34;Team\u0026#34; Type=\u0026#34;String\u0026#34; Interpretation=\u0026#34;Resource-Ref\u0026#34; Uom=\u0026#34;Country\u0026#34; Value=\u0026#34;Team\u0026#34;/\u0026gt; \u0026lt;/ParameterBag\u0026gt; Performs two joins: First we join a resource of type Team by finding the relevant parameter on the Player resource, and then we lookup a resource of type Country on the previously joined Team resource.\nExecution of Reports To execute a reports, we must instantiate the Report and can then directly generate a JsonObject stream, which we can then pipe to a browser, file, etc.:\nStream\u0026lt;JsonObject\u0026gt; jsonObjectStream = new Report(tx, reportId).doReportAsJson(); If you prefer a CSV report:\ntry (CSVPrinter csvP = new CSVPrinter(new OutputStreamWriter(out), CSVFormat.DEFAULT.withHeader(headers).withDelimiter(\u0026#39;;\u0026#39;))) { // do report without AsJson, and then iterating each row and sending to a CSV writer report.doReport().forEach(row -\u0026gt; { try { csvP.printRecord(row.valueStream().collect(Collectors.toList())); // add to CSV } catch (Exception e) { logger.error(\u0026#34;Could not write CSV row\u0026#34;, e); } }); } Filter Criteria Predefining filters is a good start, but in some case you only want a portion of the actual filtered data. For instance if you make a stock report, you might only want one location. This information is dynamic and thus not stored on the report definition.\nTo perform these dynamic filterings, one would call the filter()-method on the report, passing the type of element to be filtered, and to which element IDs to reduce the report data to. The following reduces the report to only return the rows with the product01 Product and location02 Location elements:\nnew Report(tx, \u0026#34;stockReport\u0026#34;) .filter(\u0026#34;Product\u0026#34;, \u0026#34;product01\u0026#34;) .filter(\u0026#34;Location\u0026#34;, \u0026#34;location02\u0026#34;) .doReportAsJson() It is possible to find the possible filter criteria dynamically using the generateFilterCriteria() method.\nDate Range Filtering The last option to filter dynamically is using a date range selector. Define the dateRangeSel lookup parameter, and then set the date range on the instantiated report:\nModel the report in XML:\n\u0026lt;ParameterBag Id=\u0026#34;parameters\u0026#34; Name=\u0026#34;parameters\u0026#34; Type=\u0026#34;Parameters\u0026#34;\u0026gt; ... \u0026lt;Parameter Id=\u0026#34;dateRangeSel\u0026#34; Name=\u0026#34;Date Range Selector\u0026#34; Type=\u0026#34;String\u0026#34; Interpretation=\u0026#34;Resource-Ref\u0026#34; Uom=\u0026#34;Product\u0026#34; Value=\u0026#34;Bags/parameters/expirationDate\u0026#34;/\u0026gt; ... \u0026lt;/ParameterBag\u0026gt; And now call the report in Java:\nDate from = new Date(LocalDate.of(2016, 1, 1).toEpochDay() * 86400000); Date to = new Date(LocalDate.of(2017, 1, 1).toEpochDay() * 86400000); DateRange dateRange = new DateRange().from(from, true).to(to, false); List\u0026lt;JsonObject\u0026gt; result = new Report(tx, \u0026#34;stockReport\u0026#34;) // .filter(\u0026#34;Product\u0026#34;, \u0026#34;product01\u0026#34;) // .dateRange(dateRange) // .doReportAsJson() Note: See the GenericReportTest for examples.\n "},{"uri":"https://strolch.li/documentation/priviles/","title":"Privileges","tags":[],"description":"","content":"Privileges No framework is complete without user management and privilege validation. The basic form would be Users and Roles, and then validating that an authenticated user has a given role. In Strolch we go a step further: A User has roles assigned, and each role has a set of Privileges. The privileges can overlap, a validation is performed to make sure that the one role doesn\u0026rsquo;t deny and another role allows a specific action.\nAs explained in the Privilege Configuration section, users are defined in the PrivilegeUsers.xml file, and roles are defined in the PrivilegeRoles.xml file.\nLet\u0026rsquo;s assume the following user and role definition:\n\u0026lt;Users\u0026gt; \u0026lt;User userId=\u0026#34;1\u0026#34; username=\u0026#34;jill\u0026#34; password=\u0026#34;$PBKDF2WithHmacSHA512,10000,256$61646d696e$cb69962946617da006a2f95776d78b49e5ec7941d2bdb2d25cdb05f957f64344\u0026#34;\u0026gt; \u0026lt;Firstname\u0026gt;Jill\u0026lt;/Firstname\u0026gt; \u0026lt;Lastname\u0026gt;Someone\u0026lt;/Lastname\u0026gt; \u0026lt;State\u0026gt;ENABLED\u0026lt;/State\u0026gt; \u0026lt;Locale\u0026gt;en-GB\u0026lt;/Locale\u0026gt; \u0026lt;Roles\u0026gt; \u0026lt;Role\u0026gt;AppUser\u0026lt;/Role\u0026gt; \u0026lt;/Roles\u0026gt; \u0026lt;Properties\u0026gt; \u0026lt;Property name=\u0026#34;realm\u0026#34; value=\u0026#34;execution\u0026#34; /\u0026gt; \u0026lt;/Properties\u0026gt; \u0026lt;/User\u0026gt; \u0026lt;/Users\u0026gt; \u0026lt;Roles\u0026gt; \u0026lt;Role name=\u0026#34;AppUser\u0026#34;\u0026gt; \u0026lt;Privilege name=\u0026#34;li.strolch.service.api.Service\u0026#34; policy=\u0026#34;DefaultPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;li.strolch.model.query.StrolchQuery\u0026#34; policy=\u0026#34;DefaultPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;Privilege name=\u0026#34;li.strolch.search.StrolchSearch\u0026#34; policy=\u0026#34;DefaultPrivilege\u0026#34;\u0026gt; \u0026lt;AllAllowed\u0026gt;true\u0026lt;/AllAllowed\u0026gt; \u0026lt;/Privilege\u0026gt; \u0026lt;/Role\u0026gt; \u0026lt;/Roles\u0026gt; This configuration contains one user and one role. The user jill has the role AppUser and the role AppUser has three privileges assigned.\nNote how the user\u0026rsquo;s password is configured similar to a unix password definition: Using the dollar sign \u0026amp; first the hashing algorithm is configured ( algorithm, iterations, key length), then the salt, followed by the password hash.\nNote: The password can also still be saved using two separate fields: a salt and password field. This configuration will be immediately changed to the unix form, so won\u0026rsquo;t be described further here.\n Further a user always has a firstname and last name. Optionally a locale can be set, otherwise the system locale is used. The user\u0026rsquo;s state must be defined as one of NEW, ENABLED, DISABLED, EXPIRED or SYSTEM. A user can only authenticate/login with the state ENABLED. A user can have any number of properties, which can then be used at runtime. A user can also reference any number of roles, the assigned privilege can overlap, a global configuration mode defines how duplicate privileges are handled.\nRoles have a name and any number of Privilege definitions. A Privilege has a name, which in many cases is the name of Java class/interface on which an action is being invoked. The policy value defines which policy to use when evaluating the privilege access. The privilege definition is defined in the PrivilegeConfig.xml and is the name of a class to call for privilege validation.\nFurther the privilege definitions can have a AllAllowed boolean flag, or any number of Allow or Deny values. How these values are interpreted is defined in the policy implementation. A policy takes three input parameters:\n PrivilegeContext → supplied by privilege and gives access to the Certificate, thus identifying the user for which privilege access is to be validated. IPrivilege → Contains the privilege values: AllAllowed, Allow and Deny Restrictable → An interface from which the privilege name is retrieved, and the associated value. The value is an object, and is cast to the relevant input in the concrete privilege policy. The following privilege policies are already implemented:\n DefaultPrivilege → simple policy where the passed Restrictable is expected to return a String value, which is compared with allow and deny values. Internal: RoleAccessPrivilege → policy used for the internal privileges PrivilegeGetRole, PrivilegeAddRole, PrivilegeModifyRole or PrivilegeModifyRole Internal: UserAccessPrivilege → policy used for the internal privileges PrivilegeGetUser, PrivilegeAddUser, PrivilegeRemoveUser, PrivilegeModifyUser, PrivilegeAddRoleToUser, PrivilegeRemoveRoleFromUser, PrivilegeSetUserState, PrivilegeSetUserLocale or PrivilegeSetUserPassword Internal: UserAccessWithSameOrganisationPrivilege → Same as the UserAccessPrivilege but expects the authenticated user to have a property organisation and validates that the user being modified is in the same organisation. Internal: UsernameFromCertificatePrivilege → This policy expects a Restrictable to return the certificate of another authenticated user and is used when modifying an authenticated user, i.e. killing a session, or modifying its current state, e.g. locale etc. Internal: UsernameFromCertificateWithSameOrganisationPrivilege → Same as UsernameFromCertificatePrivilege but expects the authenticated user to have a property organisation and validates that the user being modified is in the same organisation. Note: As a rule, the sequence is AllAllowed → Allow → Deny → default deny\n "},{"uri":"https://strolch.li/categories/","title":"Categories","tags":[],"description":"","content":""},{"uri":"https://strolch.li/","title":"Strolch Overview","tags":[],"description":"","content":"Strolch Overview Strolch is framework for developing Software. It\u0026rsquo;s main features are:\n Complete persisted data model: Parameters and values by time Resources, Orders with arbitrary parameter grouping Activity/Action hierarchy with arbitrary depth Policies for delegation JSON as well as XML transformation Locator API Transactions with pessimistic locking and optional read-locking Search API Component based Deeply integrated privilege handling Fully in-memory Persisted auditing, versioning, operations log DAOs for file system or PostgreSQL, easily extended Execution framework Service / Command oriented Reporting API configured by Resource objects REST API for data access WebComponents UI for Inspector Users Roles Operations Log Login Screen Jobs runs on plain old Java SE Strolch Intro It is a different framework to Spring and other similar type of Java frameworks, as the model is defined as an abstract model, where you always have the same three types of objects: Resources, Orders and Activities. The fields are mapped as Parameter objects, of which the important primitives are available.\nThe nice part about this framework is, that you can be up and ready in a matter of minutes, and start building your project immediately in that you open your favourite XML editor and start modelling your data.\nOnce your data is defined, you write your business logic in the form of Services, Commands and Searches. There are many predefined services and commands to manipulate the object model, so that you write your own services when you need to enforce special business rules.\nThrough the use of Policy objects, you decouple algorithms from your object model, so that at runtime you can change the behaviour, or easily implement different behaviour depending on your use-case. For instance you might have a simple billing service which performs a few preparatory steps, and then calls the configured billing policy to execute the billing depending on the customer, the warehouse, etc.\nAnd of course persistence is as simple as configuring the persistence handler, pointing to your RDBMS and then setting the mode to CACHED. For you as a developer there is no more thinking in terms of SQL etc., as this is completely hidden from the developer. There is even a simple file persistence layer if you are running IoT devices.\nThe runtime can be just about anything. Usually it is run inside an Apache Tomcat instance as a webapp, as a WEB UI has been required for all current Strolch projects. You could just as well use a main class. Accessing the Strolch Agent remotely is usually done through REST.\nStrolch is being actively developed, and customers constantly give us reasons to improve and extend the framework. There is a Polymer Inspector component which makes it easy to see and manipulate the actual data. The new Search API makes it really easy to query your data.\nYes, Strolch is different, but the concept has come out of the planning and execution segment, and has been refined over the years until it has become what it is today.\nAPI Check out the API page to see how to use Strolch.\nMore to motivation etc.\n"},{"uri":"https://strolch.li/tags/","title":"Tags","tags":[],"description":"","content":""}] \ No newline at end of file diff --git a/publish/index.xml b/publish/index.xml new file mode 100644 index 0000000..a3f734e --- /dev/null +++ b/publish/index.xml @@ -0,0 +1,33 @@ +Strolch Overview on Strolchhttps://strolch.li/Recent content in Strolch Overview on StrolchHugo -- gohugo.ioen-usArchitecturehttps://strolch.li/documentation/architecture/Mon, 01 Jan 0001 00:00:00 +0000https://strolch.li/documentation/architecture/Architecture Birds View A Strolch agent&rsquo;s architecture can be seen as a simple three-tier architecture. The presentation layer is mostly a web frontend, where the communication with the agent is done via REST API calls. +The agent itself implements the business logic using Services, Commands, Queries etc. +The agent can communicate with other 3rd systems using any API, where it is preferred to use JSON over REST. +The agent can use a standard RDBMS as a storage system, where currently DAOs have been implemented only for PostgreSQL.Configurationhttps://strolch.li/tutorial/configuration/Mon, 01 Jan 0001 00:00:00 +0000https://strolch.li/tutorial/configuration/Configuration Let&rsquo;s start by creating a new Apache Maven project. We&rsquo;ll need a POM with the proper dependencies. We expect you to be familiar with Apache Maven, so we&rsquo;ll just show you a working POM file: +pom.xml +&lt;?xml version=&#34;1.0&#34;?&gt; &lt;project xmlns=&#34;http://maven.apache.org/POM/4.0.0&#34; xmlns:xsi=&#34;http://www.w3.org/2001/XMLSchema-instance&#34; xsi:schemaLocation=&#34;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd&#34;&gt; &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt; &lt;groupId&gt;li.strolch&lt;/groupId&gt; &lt;artifactId&gt;strolch-bookshop&lt;/artifactId&gt; &lt;version&gt;0.1.0-SNAPSHOT&lt;/version&gt; &lt;packaging&gt;war&lt;/packaging&gt; &lt;name&gt;strolch-bookshop&lt;/name&gt; &lt;description&gt;Bookshop built on Strolch&lt;/description&gt; &lt;inceptionYear&gt;2017&lt;/inceptionYear&gt; &lt;properties&gt; &lt;project.build.sourceEncoding&gt;UTF-8&lt;/project.build.sourceEncoding&gt; &lt;maven.build.timestamp.format&gt;yyyy-MM-dd HH:mm:ss&lt;/maven.build.timestamp.format&gt; &lt;buildTimestamp&gt;${maven.build.timestamp}&lt;/buildTimestamp&gt; &lt;jdk.version&gt;1.8&lt;/jdk.version&gt; &lt;jersey.version&gt;2.25.1&lt;/jersey.version&gt; &lt;slf4j.version&gt;1.7.25&lt;/slf4j.version&gt; &lt;logback.version&gt;1.2.3&lt;/logback.version&gt; &lt;petitparser.version&gt;2.1.0&lt;/petitparser.version&gt; &lt;hikaricp.version&gt;2.7.1&lt;/hikaricp.version&gt; &lt;postgresql.version&gt;42.1.4&lt;/postgresql.version&gt; &lt;gson.version&gt;2.8.2&lt;/gson.version&gt; &lt;annotation.version&gt;1.3.1&lt;/annotation.version&gt; &lt;javaxmail.version&gt;1.6.0&lt;/javaxmail.version&gt; &lt;serverlet.Modelhttps://strolch.li/documentation/model/Mon, 01 Jan 0001 00:00:00 +0000https://strolch.li/documentation/model/Model Before we dive into the entire model, let&rsquo;s show an example and how it would be modelled in Strolch and use in Strolch: +A possible model would look as follows: +&lt;?xml version=&#34;1.0&#34; encoding=&#34;UTF-8&#34; ?&gt; &lt;StrolchModel xmlns=&#34;https://strolch.li/xsd/StrolchModel-1.6.xsd&#34;&gt; &lt;Resource Id=&#34;Product&#34; Name=&#34;Product Template&#34; Type=&#34;Template&#34;&gt; &lt;ParameterBag Id=&#34;parameters&#34; Name=&#34;Parameters&#34; Type=&#34;Parameters&#34;&gt; &lt;Parameter Id=&#34;description&#34; Name=&#34;Description&#34; Type=&#34;String&#34; Value=&#34;&#34;/&gt; &lt;Parameter Id=&#34;color&#34; Name=&#34;Color&#34; Type=&#34;String&#34; Value=&#34;&#34;/&gt; &lt;Parameter Id=&#34;form&#34; Name=&#34;Form&#34; Type=&#34;String&#34; Value=&#34;&#34;/&gt; &lt;/ParameterBag&gt; &lt;ParameterBag Id=&#34;relations&#34; Name=&#34;Relations&#34; Type=&#34;Relations&#34;&gt; &lt;Parameter Id=&#34;articles&#34; Name=&#34;Articles&#34; Type=&#34;StringList&#34; Interpretation=&#34;Resource-Ref&#34; Uom=&#34;Article&#34; Value=&#34;&#34;/&gt; &lt;/ParameterBag&gt; &lt;/Resource&gt; &lt;Resource Id=&#34;Article&#34; Name=&#34;Article Template&#34; Type=&#34;Template&#34;&gt; &lt;ParameterBag Id=&#34;parameters&#34; Name=&#34;Parameters&#34; Type=&#34;Parameters&#34;&gt; &lt;Parameter Id=&#34;description&#34; Name=&#34;Description&#34; Type=&#34;String&#34; Value=&#34;&#34;/&gt; &lt;Parameter Id=&#34;barcode&#34; Name=&#34;Barcode&#34; Type=&#34;String&#34; Value=&#34;&#34;/&gt; &lt;/ParameterBag&gt; &lt;ParameterBag Id=&#34;relations&#34; Name=&#34;Relations&#34; Type=&#34;Relations&#34;&gt; &lt;Parameter Id=&#34;product&#34; Name=&#34;Product&#34; Type=&#34;String&#34; Interpretation=&#34;Resource-Ref&#34; Uom=&#34;Product&#34; Value=&#34;&#34;/&gt; &lt;/ParameterBag&gt; &lt;/Resource&gt; &lt;Resource Id=&#34;Customer&#34; Name=&#34;Customer Template&#34; Type=&#34;Template&#34;&gt; &lt;ParameterBag Id=&#34;address&#34; Name=&#34;Address&#34; Type=&#34;Address&#34;&gt; &lt;Parameter Id=&#34;street&#34; Name=&#34;Street&#34; Type=&#34;String&#34; Value=&#34;&#34;/&gt; &lt;Parameter Id=&#34;zip&#34; Name=&#34;Zip&#34; Type=&#34;String&#34; Value=&#34;&#34;/&gt; &lt;Parameter Id=&#34;city&#34; Name=&#34;City&#34; Type=&#34;String&#34; Value=&#34;&#34;/&gt; &lt;Parameter Id=&#34;country&#34; Name=&#34;Country&#34; Type=&#34;String&#34; Value=&#34;&#34;/&gt; &lt;/ParameterBag&gt; &lt;/Resource&gt; &lt;Order Id=&#34;Order&#34; Name=&#34;Order&#34; Type=&#34;Template&#34;&gt; &lt;ParameterBag Id=&#34;quantities&#34; Name=&#34;Quantities per Article Id&#34; Type=&#34;Quantities&#34;&gt; &lt;Parameter Id=&#34;quantity&#34; Name=&#34;Quantity&#34; Type=&#34;Float&#34; Value=&#34;0&#34;/&gt; &lt;/ParameterBag&gt; &lt;ParameterBag Id=&#34;relations&#34; Name=&#34;Relations&#34; Type=&#34;Relations&#34;&gt; &lt;Parameter Id=&#34;articles&#34; Name=&#34;Articles&#34; Type=&#34;StringList&#34; Interpretation=&#34;Resource-Ref&#34; Uom=&#34;Article&#34; Value=&#34;&#34;/&gt; &lt;Parameter Id=&#34;customer&#34; Name=&#34;Customer&#34; Type=&#34;String&#34; Interpretation=&#34;Resource-Ref&#34; Uom=&#34;Customer&#34; Value=&#34;&#34;/&gt; &lt;/ParameterBag&gt; &lt;/Order&gt; &lt;/StrolchModel&gt; Let&rsquo;s go through this model:Modelhttps://strolch.li/tutorial/model/Mon, 01 Jan 0001 00:00:00 +0000https://strolch.li/tutorial/model/Model Looking back at our functionality, we can list the following entities that need to be modelled (We&rsquo;ll go into detail further down): +Book → books can be orderd UserCart → we want to store the cart of the user Account → we need to know where to send the orders PurchaseOrder → we need to know what was ordered and keep track of its state FromStock → we want to use activities to implement the process of an order In Strolch we model entities by defining the element as a template.CRUD Bookhttps://strolch.li/tutorial/crud-book/Mon, 01 Jan 0001 00:00:00 +0000https://strolch.li/tutorial/crud-book/Preparation Since Books are central to the bookshop, we&rsquo;ll first create the CRUD REST API for them. The API will be as follows: +GET ../rest/books?query=,offset=,limit= GET ../rest/books/{id} POST ../rest/books PUT ../rest/books/{id} DELETE ../rest/books/{id} Thus corresponding with querying, getting, creating, updating and removing of books. So let&rsquo;s go ahead and add these REST APIs to our project. +Our project is using JAX-RS 2.0 as the API and Jersey 2.x as the implementation, thus first we need to configure JAX-RS.Do and Don'thttps://strolch.li/documentation/do-and-donts/Mon, 01 Jan 0001 00:00:00 +0000https://strolch.li/documentation/do-and-donts/This page discusses things you should and shouldn&rsquo;t do when using Strolch The following is a simple list of do&rsquo;s and don&rsquo;ts: +1 Service per use-case, should mostly delegate to Commands. Commands implement use-cases or parts of it, and are thus reusable. Subclass ResourceSearch, OrderSearch and ActivitySearch when implementing use-case specific search - this allows privilege checking. One Transaction at a time - no TX inside of another TX. Commands are added to TXs and performed on close: tx.Runtime Configurationhttps://strolch.li/documentation/runtime-configuration/Mon, 01 Jan 0001 00:00:00 +0000https://strolch.li/documentation/runtime-configuration/Runtime Configuration A Strolch runtime configuration comprises two parts: a configuration part, and a model part. The configuration are files located in the ..config/ folder, and the model are files located in the ../data folder. +In an absolute minimal configuration, the Strolch runtime requires the following folder structure: +../config/ ../StrolchConfiguration.xml → configures the Strolch agent ../PrivilegeConfig.xml → configures user management ../PrivilegeUsers.xml → contains the users in an XML based user management file .Architecturehttps://strolch.li/plc/architecture/Mon, 01 Jan 0001 00:00:00 +0000https://strolch.li/plc/architecture/Architecture Overview The Strolch PLC architecture sees the Strolch Agent as the server, managing logical devices, i.e. multiple sensors and actors together and thus deciding on further steps. With this architecture multiple PLCs can be combined together in one agent for flow control. +PLC Architecture On the agent side the two main classes are the PlcGwServerHandler and the PlcGwService +The PlcGwServerHandler handles connections from remote PLCs over WebSockets and sends the requests to these PLCs.Realmshttps://strolch.li/documentation/realms/Mon, 01 Jan 0001 00:00:00 +0000https://strolch.li/documentation/realms/Realms Realms implement multi-tenant capabilities. A Strolch agent can have an arbitrary number of realms configured and each realm has its own persistence configuration, allowing to separate mandates completely. +A realm can run in one of the following modes: +EMPTY This is a transient data store mode, where no model changes are persisted - they are only kept in memory. When the Strolch agent is started, this realm is empty as no data is loaded.Componentshttps://strolch.li/documentation/components/Mon, 01 Jan 0001 00:00:00 +0000https://strolch.li/documentation/components/Components A Strolch agent can be easily extended with arbitrary components. An agent is basically a container for classes extending StrolchComponent with a life cycle. These classes mostly implement an interface which describes the operations that are supported by the component. +The following represents a list of the most used components: +RealmHandler: li.strolch.agent.impl.DefaultRealmHandler PrivilegeHandler: li.strolch.runtime.privilege.DefaultStrolchPrivilegeHandler EnumHandler: li.strolch.runtime.query.enums.DefaultEnumHandler PolicyHandler: li.strolch.policy.DefaultPolicyHandler ServiceHandler: li.strolch.service.api.DefaultServiceHandler StrolchSessionHandler: li.strolch.rest.DefaultStrolchSessionHandler PersistenceHandler: multiple implementations PostInitializer: project specific implementation MailHandler: li.Services and Commandshttps://strolch.li/documentation/services-and-commands/Mon, 01 Jan 0001 00:00:00 +0000https://strolch.li/documentation/services-and-commands/Services and Commands Services are written to implement a specific use-case. Commands are written to implement re-usable parts of a use-case. The use-case can be abstract e.g., AddResourceService or very specific e.g. CreatePatientService. +Should the use-case be re-usable in different scenarios, then commands should implement the logic, and the services should then execute the commands. E.g. The CreatePatientService would use a CreatePatientResourceCommand and then use an AddResourceCommand in a single transaction, so that the task of creating the actual Patient Resource can be re-used somewhere else.Searcheshttps://strolch.li/documentation/searches/Mon, 01 Jan 0001 00:00:00 +0000https://strolch.li/documentation/searches/Searches As is custom for every framework, querying, or searching, the model must be possible. Strolch searches are implemented using the StrolchSearch class and one of its concrete implementations: ResourceSearch, OrderSearch, ActivitySearch. +A Strolch element always has two identifiers: Type and Id. The type is important as it classifies an element. So if a car and a house would be modelled in Strolch, then those would both be a Resource, but one of type Car and the other of type House.Querieshttps://strolch.li/documentation/queries/Mon, 01 Jan 0001 00:00:00 +0000https://strolch.li/documentation/queries/Queries The Query API is deprecated and the search API should be used instead. +As is custom for every framework, querying the model must be possible. Strolch queries are implemented using the StrolchQuery interface and one of its concrete implementations: ResourceQuery, OrderQuery, ActivityQuery. +A Strolch element always has two identifiers: Type and Id. The type is important as it classifies an element. So if a car and a house would be modelled in Strolch, then those would both be a Resource, but one of type Car and the other of type House.Example Set-Uphttps://strolch.li/plc/example-set-up/Mon, 01 Jan 0001 00:00:00 +0000https://strolch.li/plc/example-set-up/Example Set-Up This example setup describes the movement of containers over conveyors. The conveyors have motors which can be started and stopped by a GPIO output pin controlled on a Raspberry Pi and each conveyor has a light barrier to detect the occupancy of a container and the Raspberry Pi detects this on GPIO input pins. +Further at each conveyor location is a barcode reader to read the ID of a container.Transactionshttps://strolch.li/documentation/transactions/Mon, 01 Jan 0001 00:00:00 +0000https://strolch.li/documentation/transactions/Transactions Strolch Transactions play a central role in a Strolch agent. A transaction is opened for a realm, and grants access to the model of the agent. Transactions are implemented as a Java try-with-resources by implementing the AutoCloseable interface. This makes it trivial to understand the scope of a transaction. +Transactions handle the following: +Opening and closing database connections Releasing locks to strolch elements, if tx.lock(StrolchRootElement) or tx.lock(Locator) was called Performing Commands by executing them in the added order, and validating them first.Policieshttps://strolch.li/documentation/policies/Mon, 01 Jan 0001 00:00:00 +0000https://strolch.li/documentation/policies/Policies Policies are an integral part when writing business logic in Strolch. In many cases it would suffice to write all such logic in Services and Commands, but as soon as behaviour can change, depending on the element being accessed, then this would quickly lead to many if/else blocks. +Since writing large if/else blocks is not maintanable in the long run, Strolch offers a different approach. All Strolch elements can store Policy definitions.Observershttps://strolch.li/documentation/observers/Mon, 01 Jan 0001 00:00:00 +0000https://strolch.li/documentation/observers/Observers All changes done in a Strolch transaction are recorded and then propagated to any registered observers. +The observer feature is opt-in and is configured for each realm. In the StrolchConfiguration.xml file enable observers by adding the enableObserverUpdates property per realm: +&lt;StrolchConfiguration&gt; &lt;env id=&#34;dev&#34;&gt; ... &lt;Component&gt; &lt;name&gt;RealmHandler&lt;/name&gt; &lt;api&gt;li.strolch.agent.api.RealmHandler&lt;/api&gt; &lt;impl&gt;li.strolch.agent.impl.DefaultRealmHandler&lt;/impl&gt; &lt;depends&gt;PrivilegeHandler&lt;/depends&gt; &lt;Properties&gt; &lt;realms&gt;defaultRealm, otherRealm&lt;/realms&gt; &lt;enableObserverUpdates&gt;true&lt;/enableObserverUpdates&gt; &lt;dataStoreMode&gt;TRANSIENT&lt;/dataStoreMode&gt; &lt;dataStoreFile&gt;StrolchModel.xml&lt;/dataStoreFile&gt; &lt;enableObserverUpdates.otherRealm&gt;true&lt;/enableObserverUpdates.otherRealm&gt; &lt;dataStoreMode.otherRealm&gt;TRANSIENT&lt;/dataStoreMode.otherRealm&gt; &lt;dataStoreFile.otherRealm&gt;StrolchModel.xml&lt;/dataStoreFile.otherRealm&gt; &lt;/Properties&gt; &lt;/Component&gt; &lt;/env&gt; ... &lt;/StrolchConfiguration&gt; Registering for updates is done by registering an Observer on the ObserverHandler of the realm itself:Versioninghttps://strolch.li/documentation/versioning/Mon, 01 Jan 0001 00:00:00 +0000https://strolch.li/documentation/versioning/Versioning One of Strolch&rsquo;s features that sets it apart from other frameworks, is that versioning is baked into Strolch&rsquo;s fabric. The feature is opt-in, as it is not required in all projects, but it only needs enabling, for all modifications to objects to be versioned, so that rollbacks can be done when needed. +The feature is enabled for each realm. In the StrolchConfiguration.xml file enable it by adding the enableVersioning propery per realm:Reportshttps://strolch.li/documentation/reports/Mon, 01 Jan 0001 00:00:00 +0000https://strolch.li/documentation/reports/Reports Since Strolch has a generic model, it was rather straight forward to create a simple API for writing reports. In Strolch a report is defined by using its own model, i.e. a Report is a Resource of type Report. +A report consists of the following parts: +policy definition, thus allowing extensions basic configuration like base object type, order direction, etc. column definitions joins ordering definition filters An example of a report is as follows:Privilegeshttps://strolch.li/documentation/priviles/Mon, 01 Jan 0001 00:00:00 +0000https://strolch.li/documentation/priviles/Privileges No framework is complete without user management and privilege validation. The basic form would be Users and Roles, and then validating that an authenticated user has a given role. In Strolch we go a step further: A User has roles assigned, and each role has a set of Privileges. The privileges can overlap, a validation is performed to make sure that the one role doesn&rsquo;t deny and another role allows a specific action. \ No newline at end of file diff --git a/publish/js/auto-complete.js b/publish/js/auto-complete.js new file mode 100644 index 0000000..0b46054 --- /dev/null +++ b/publish/js/auto-complete.js @@ -0,0 +1,3 @@ +// JavaScript autoComplete v1.0.4 +// https://github.com/Pixabay/JavaScript-autoComplete +var autoComplete=function(){function e(e){function t(e,t){return e.classList?e.classList.contains(t):new RegExp("\\b"+t+"\\b").test(e.className)}function o(e,t,o){e.attachEvent?e.attachEvent("on"+t,o):e.addEventListener(t,o)}function s(e,t,o){e.detachEvent?e.detachEvent("on"+t,o):e.removeEventListener(t,o)}function n(e,s,n,l){o(l||document,s,function(o){for(var s,l=o.target||o.srcElement;l&&!(s=t(l,e));)l=l.parentElement;s&&n.call(l,o)})}if(document.querySelector){var l={selector:0,source:0,minChars:3,delay:150,offsetLeft:0,offsetTop:1,cache:1,menuClass:"",renderItem:function(e,t){t=t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&");var o=new RegExp("("+t.split(" ").join("|")+")","gi");return'
    '+e.replace(o,"$1")+"
    "},onSelect:function(){}};for(var c in e)e.hasOwnProperty(c)&&(l[c]=e[c]);for(var a="object"==typeof l.selector?[l.selector]:document.querySelectorAll(l.selector),u=0;u0?i.sc.scrollTop=n+i.sc.suggestionHeight+s-i.sc.maxHeight:0>n&&(i.sc.scrollTop=n+s)}else i.sc.scrollTop=0},o(window,"resize",i.updateSC),document.body.appendChild(i.sc),n("autocomplete-suggestion","mouseleave",function(){var e=i.sc.querySelector(".autocomplete-suggestion.selected");e&&setTimeout(function(){e.className=e.className.replace("selected","")},20)},i.sc),n("autocomplete-suggestion","mouseover",function(){var e=i.sc.querySelector(".autocomplete-suggestion.selected");e&&(e.className=e.className.replace("selected","")),this.className+=" selected"},i.sc),n("autocomplete-suggestion","mousedown",function(e){if(t(this,"autocomplete-suggestion")){var o=this.getAttribute("data-val");i.value=o,l.onSelect(e,o,this),i.sc.style.display="none"}},i.sc),i.blurHandler=function(){try{var e=document.querySelector(".autocomplete-suggestions:hover")}catch(t){var e=0}e?i!==document.activeElement&&setTimeout(function(){i.focus()},20):(i.last_val=i.value,i.sc.style.display="none",setTimeout(function(){i.sc.style.display="none"},350))},o(i,"blur",i.blurHandler);var r=function(e){var t=i.value;if(i.cache[t]=e,e.length&&t.length>=l.minChars){for(var o="",s=0;st||t>40)&&13!=t&&27!=t){var o=i.value;if(o.length>=l.minChars){if(o!=i.last_val){if(i.last_val=o,clearTimeout(i.timer),l.cache){if(o in i.cache)return void r(i.cache[o]);for(var s=1;s https://github.com/noelboss/featherlight/issues/317 +!function(u){"use strict";if(void 0!==u)if(u.fn.jquery.match(/-ajax/))"console"in window&&window.console.info("Featherlight needs regular jQuery, not the slim version.");else{var r=[],i=function(t){return r=u.grep(r,function(e){return e!==t&&0','
    ','",'
    '+n.loading+"
    ","
    ",""].join("")),o="."+n.namespace+"-close"+(n.otherClose?","+n.otherClose:"");return n.$instance=i.clone().addClass(n.variant),n.$instance.on(n.closeTrigger+"."+n.namespace,function(e){if(!e.isDefaultPrevented()){var t=u(e.target);("background"===n.closeOnClick&&t.is("."+n.namespace)||"anywhere"===n.closeOnClick||t.closest(o).length)&&(n.close(e),e.preventDefault())}}),this},getContent:function(){if(!1!==this.persist&&this.$content)return this.$content;var t=this,e=this.constructor.contentFilters,n=function(e){return t.$currentTarget&&t.$currentTarget.attr(e)},r=n(t.targetAttr),i=t.target||r||"",o=e[t.type];if(!o&&i in e&&(o=e[i],i=t.target&&r),i=i||n("href")||"",!o)for(var a in e)t[a]&&(o=e[a],i=t[a]);if(!o){var s=i;if(i=null,u.each(t.contentFilters,function(){return(o=e[this]).test&&(i=o.test(s)),!i&&o.regex&&s.match&&s.match(o.regex)&&(i=s),!i}),!i)return"console"in window&&window.console.error("Featherlight: no content filter found "+(s?' for "'+s+'"':" (no target specified)")),!1}return o.process.call(t,i)},setContent:function(e){return this.$instance.removeClass(this.namespace+"-loading"),this.$instance.toggleClass(this.namespace+"-iframe",e.is("iframe")),this.$instance.find("."+this.namespace+"-inner").not(e).slice(1).remove().end().replaceWith(u.contains(this.$instance[0],e[0])?"":e),this.$content=e.addClass(this.namespace+"-inner"),this},open:function(t){var n=this;if(n.$instance.hide().appendTo(n.root),!(t&&t.isDefaultPrevented()||!1===n.beforeOpen(t))){t&&t.preventDefault();var e=n.getContent();if(e)return r.push(n),s(!0),n.$instance.fadeIn(n.openSpeed),n.beforeContent(t),u.when(e).always(function(e){n.setContent(e),n.afterContent(t)}).then(n.$instance.promise()).done(function(){n.afterOpen(t)})}return n.$instance.detach(),u.Deferred().reject().promise()},close:function(e){var t=this,n=u.Deferred();return!1===t.beforeClose(e)?n.reject():(0===i(t).length&&s(!1),t.$instance.fadeOut(t.closeSpeed,function(){t.$instance.detach(),t.afterClose(e),n.resolve()})),n.promise()},resize:function(e,t){if(e&&t&&(this.$content.css("width","").css("height",""),this.$content.parent().width()');return n.onload=function(){r.naturalWidth=n.width,r.naturalHeight=n.height,t.resolve(r)},n.onerror=function(){t.reject(r)},n.src=e,t.promise()}},html:{regex:/^\s*<[\w!][^<]*>/,process:function(e){return u(e)}},ajax:{regex:/./,process:function(e){var n=u.Deferred(),r=u("
    ").load(e,function(e,t){"error"!==t&&n.resolve(r.contents()),n.fail()});return n.promise()}},iframe:{process:function(e){var t=new u.Deferred,n=u("