diff --git a/200.html b/200.html
index 9d6126e..7580533 100644
--- a/200.html
+++ b/200.html
@@ -26,6 +26,6 @@
     We started to capture this information in a simple payload specification and just like in the introducing language example where you can use phrases via phone, letter or in person, the payload is meant to be sent over different protocols (REST, MQTT, AMQP). This payload is the Production Performance Management Protocol (<i>PPMP</i>).
     <div class="card is-pulled-left"><div class="card-image"><figure class="image"><img src="images/eclipse-426x100.png" alt="Eclipse logo" title="Eclipse logo"></figure></div></div><p>
     In order to, first, leverage the Eclipse IoT stack in Industry 4.0 scenarios and, second, build a lively community around the specification, we consider the Eclipse iot working group as the premier place to host Unide. 
-    </div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"default",data:[{}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_default.2114b4fdc743f1b2e00e.js"></script><script defer src="/unide/files/pages_index.7d76ce931d19b81f54ec.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"default",data:[{}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_default.19e29c13ea8f8ffe3260.js"></script><script defer src="/unide/files/pages_index.922f1427ed81a1db7207.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/article/index.html b/article/index.html
index 67ec8d7..5465d9e 100644
--- a/article/index.html
+++ b/article/index.html
@@ -60,6 +60,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_article.dfd7fcb83848670d21b1.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2016/9/12/Unide-proposal-online/index.html b/blog/2016/9/12/Unide-proposal-online/index.html
index 7dcf58a..10b1b45 100644
--- a/blog/2016/9/12/Unide-proposal-online/index.html
+++ b/blog/2016/9/12/Unide-proposal-online/index.html
@@ -76,6 +76,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"Unide-proposal-online",content:'<p>We\'re happy to announce, that the proposal for our new Eclipse Project is online! You can find it at <a href="https://projects.eclipse.org/proposals/unide">https://projects.eclipse.org/proposals/unide</a>. For further discussions, there\'s the <a href="https://www.eclipse.org/forums/index.php/t/1080186/">forum post</a> as well.<br>\nNow, it\'s time to study all details about Eclipse processes and <a href="https://eclipse.org/legal/eplfaq.php#3RDPARTY">license regulations</a>.</p>\n<div class="card">\n\t<header class="card-header is-primary">\n\t\t<p class="card-header-title"><i class="fa fa-pencil">&nbsp;</i>Did you know?</p>\n\t</header>\n\t<div class="card-content">\n\t\t<div class="content">\n\t\t\tThe projects name is derived from <b>un</b>derstand <b>i</b>ndustry <b>de</b>vices. Other ideas like <b>co</b>nnect <b>i</b>ndustry <b>ma</b>chines turned out to have meanings in foreign languages or being trademarked already.\n\t\t</div>\n\t</div>\n</div>\n',url:"/blog/2016/9/12/Unide-proposal-online",title:"Unide proposal online",date:"2016-09-12T09:26:37.000Z",tags:["project start"],next:{url:"/blog/2016/9/16/Project-approved",title:"Eclipse Project approved"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"Unide-proposal-online",content:'<p>We\'re happy to announce, that the proposal for our new Eclipse Project is online! You can find it at <a href="https://projects.eclipse.org/proposals/unide">https://projects.eclipse.org/proposals/unide</a>. For further discussions, there\'s the <a href="https://www.eclipse.org/forums/index.php/t/1080186/">forum post</a> as well.<br>\nNow, it\'s time to study all details about Eclipse processes and <a href="https://eclipse.org/legal/eplfaq.php#3RDPARTY">license regulations</a>.</p>\n<div class="card">\n\t<header class="card-header is-primary">\n\t\t<p class="card-header-title"><i class="fa fa-pencil">&nbsp;</i>Did you know?</p>\n\t</header>\n\t<div class="card-content">\n\t\t<div class="content">\n\t\t\tThe projects name is derived from <b>un</b>derstand <b>i</b>ndustry <b>de</b>vices. Other ideas like <b>co</b>nnect <b>i</b>ndustry <b>ma</b>chines turned out to have meanings in foreign languages or being trademarked already.\n\t\t</div>\n\t</div>\n</div>\n',url:"/blog/2016/9/12/Unide-proposal-online",title:"Unide proposal online",date:"2016-09-12T09:26:37.000Z",tags:["project start"],next:{url:"/blog/2016/9/16/Project-approved",title:"Eclipse Project approved"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_article.dfd7fcb83848670d21b1.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2016/9/12/index.html b/blog/2016/9/12/index.html
index a11a11f..566aae0 100644
--- a/blog/2016/9/12/index.html
+++ b/blog/2016/9/12/index.html
@@ -66,6 +66,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2016/9/12/Unide-proposal-online",title:"Unide proposal online",date:"2016-09-12T09:26:37.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2016/9/12/Unide-proposal-online",title:"Unide proposal online",date:"2016-09-12T09:26:37.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_blog.e921111d8f479ba5a1cd.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2016/9/16/Project-approved/index.html b/blog/2016/9/16/Project-approved/index.html
index 12828e1..24f1b19 100644
--- a/blog/2016/9/16/Project-approved/index.html
+++ b/blog/2016/9/16/Project-approved/index.html
@@ -73,6 +73,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"Project-approved",content:'<p>Unide proposal has been approved to be an Eclipse Project! You can now find all relevant information at <a href="https://projects.eclipse.org/projects/iot.unide">https://projects.eclipse.org/projects/iot.unide</a>.</p>\n<p>There\'s still some paperwork pending, but it looks promising! Next steps are</p>\n<ul>\n<li>creating a proper homepage with relevant information and the PPMP specification</li>\n<li>license checking of initial commitment code.</li>\n<li>getting in touch with Eclipse community</li>\n<li>making plans for the upcoming months</li>\n</ul>\n<p>If you are interested in industry 4.0, IoT stack in manufacturing or you are building industry machines and want to find out more about the possiblities with PPMP, let us know: <a href="mailto:unide-inbox@eclipse.org?subject=Interested%20in%20contributing">unide-inbox@eclipse.org</a></p>\n',url:"/blog/2016/9/16/Project-approved",title:"Eclipse Project approved",date:"2016-09-16T12:16:37.000Z",tags:["project start"],prev:{url:"/blog/2016/9/12/Unide-proposal-online",title:"Unide proposal online"},next:{url:"/blog/2016/9/21/Official-launch",title:"Official launch"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"Project-approved",content:'<p>Unide proposal has been approved to be an Eclipse Project! You can now find all relevant information at <a href="https://projects.eclipse.org/projects/iot.unide">https://projects.eclipse.org/projects/iot.unide</a>.</p>\n<p>There\'s still some paperwork pending, but it looks promising! Next steps are</p>\n<ul>\n<li>creating a proper homepage with relevant information and the PPMP specification</li>\n<li>license checking of initial commitment code.</li>\n<li>getting in touch with Eclipse community</li>\n<li>making plans for the upcoming months</li>\n</ul>\n<p>If you are interested in industry 4.0, IoT stack in manufacturing or you are building industry machines and want to find out more about the possiblities with PPMP, let us know: <a href="mailto:unide-inbox@eclipse.org?subject=Interested%20in%20contributing">unide-inbox@eclipse.org</a></p>\n',url:"/blog/2016/9/16/Project-approved",title:"Eclipse Project approved",date:"2016-09-16T12:16:37.000Z",tags:["project start"],prev:{url:"/blog/2016/9/12/Unide-proposal-online",title:"Unide proposal online"},next:{url:"/blog/2016/9/21/Official-launch",title:"Official launch"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_article.dfd7fcb83848670d21b1.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2016/9/16/index.html b/blog/2016/9/16/index.html
index 712f84e..54a08ef 100644
--- a/blog/2016/9/16/index.html
+++ b/blog/2016/9/16/index.html
@@ -66,6 +66,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2016/9/16/Project-approved",title:"Eclipse Project approved",date:"2016-09-16T12:16:37.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2016/9/16/Project-approved",title:"Eclipse Project approved",date:"2016-09-16T12:16:37.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_blog.e921111d8f479ba5a1cd.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2016/9/21/Official-launch/index.html b/blog/2016/9/21/Official-launch/index.html
index 974b3c9..4c357dc 100644
--- a/blog/2016/9/21/Official-launch/index.html
+++ b/blog/2016/9/21/Official-launch/index.html
@@ -72,6 +72,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"Official-launch",content:'<p>Today, we officially launch Unide. In the last days, we have redesigned the logo, published Blog posts and started work on the initial (code) contributions.<br>\nIt even seems like good timing, since there was a <a href="http://m.heise.de/newsticker/meldung/Umfrage-Unternehmen-fordern-offene-Plattform-fuer-die-Industrie-4-0-3327135.html">survey in Germany about open platforms &amp; standards in industry 4.0</a>, basically asking for something like Unide/PPMP.</p>\n<h3>the logo</h3>\n<p>Unide and PPMP\'s goal is to enable you to connect machines and receive their measurements / alerts. The logo represents that. It has you (&quot;<em>U</em>&quot;) highlighted and connects to rings. As a side note, we found that the words almost look like <em>you-nice</em>.</p>\n<h3>blog entries</h3>\n<p>If you are interested in further readings, check out the post at <a href="http://blog.bosch-si.com">blog.bosch-si.com</a>.</p>\n<h3>initial contributions</h3>\n<p>We are working on creating the initial contributions for Unide. Since there are a few legal aspects we have to consider, stay tuned. The code will be published to our <a href="https://github.com/eclipse/unide">github repository</a>.</p>\n',url:"/blog/2016/9/21/Official-launch",title:"Official launch",date:"2016-09-21T09:47:43.000Z",tags:["project start"],prev:{url:"/blog/2016/9/16/Project-approved",title:"Eclipse Project approved"},next:{url:"/blog/2016/9/27/News-coverage",title:"News Coverage"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"Official-launch",content:'<p>Today, we officially launch Unide. In the last days, we have redesigned the logo, published Blog posts and started work on the initial (code) contributions.<br>\nIt even seems like good timing, since there was a <a href="http://m.heise.de/newsticker/meldung/Umfrage-Unternehmen-fordern-offene-Plattform-fuer-die-Industrie-4-0-3327135.html">survey in Germany about open platforms &amp; standards in industry 4.0</a>, basically asking for something like Unide/PPMP.</p>\n<h3>the logo</h3>\n<p>Unide and PPMP\'s goal is to enable you to connect machines and receive their measurements / alerts. The logo represents that. It has you (&quot;<em>U</em>&quot;) highlighted and connects to rings. As a side note, we found that the words almost look like <em>you-nice</em>.</p>\n<h3>blog entries</h3>\n<p>If you are interested in further readings, check out the post at <a href="http://blog.bosch-si.com">blog.bosch-si.com</a>.</p>\n<h3>initial contributions</h3>\n<p>We are working on creating the initial contributions for Unide. Since there are a few legal aspects we have to consider, stay tuned. The code will be published to our <a href="https://github.com/eclipse/unide">github repository</a>.</p>\n',url:"/blog/2016/9/21/Official-launch",title:"Official launch",date:"2016-09-21T09:47:43.000Z",tags:["project start"],prev:{url:"/blog/2016/9/16/Project-approved",title:"Eclipse Project approved"},next:{url:"/blog/2016/9/27/News-coverage",title:"News Coverage"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_article.dfd7fcb83848670d21b1.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2016/9/21/index.html b/blog/2016/9/21/index.html
index c3b80e3..5ca99a8 100644
--- a/blog/2016/9/21/index.html
+++ b/blog/2016/9/21/index.html
@@ -66,6 +66,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2016/9/21/Official-launch",title:"Official launch",date:"2016-09-21T09:47:43.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2016/9/21/Official-launch",title:"Official launch",date:"2016-09-21T09:47:43.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_blog.e921111d8f479ba5a1cd.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2016/9/27/News-coverage/index.html b/blog/2016/9/27/News-coverage/index.html
index 0fc8429..34592af 100644
--- a/blog/2016/9/27/News-coverage/index.html
+++ b/blog/2016/9/27/News-coverage/index.html
@@ -71,6 +71,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"News-coverage",content:'<p>After the <a href="/unide/2016/09/21/Official%20launch/">Official launch</a> of unide and PPMP, there was some media coverage about the project.</p>\n<p>Triggered by a statement by <a href="http://www.bosch.com/en/com/bosch_group/board_management/dr_rer_nat_volkmar_denner/volkmar-denner.html">Bosch CEO Volkmar Denner</a> on <em><a href="http://www.bosch-presse.de/pressportal/en/bosch-initiates-new-machine-language-for-industry-4-0-65216.html">&quot;initiating new machine language for Industry 4.0&quot;</a></em>, twitter, blogs and magazines mention PPMP, e.g.:</p>\n<ul>\n<li><a href="https://www.elektormagazine.com/news/free-ppmp-from-bosch-makes-industry-4-0-open-for-all">electormagazine</a></li>\n<li><a href="http://www.computer-automation.de/feldebene/vernetzung/artikel/134233/">computer-automation</a> (de)</li>\n</ul>\n<p>Looking forward to spreading the word further.</p>\n',url:"/blog/2016/9/27/News-coverage",title:"News Coverage",date:"2016-09-27T09:14:27.000Z",tags:["media"],prev:{url:"/blog/2016/9/21/Official-launch",title:"Official launch"},next:{url:"/blog/2017/3/23/Unide-at-BCX",title:"Unide at Bosch Hackaton"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"News-coverage",content:'<p>After the <a href="/unide/2016/09/21/Official%20launch/">Official launch</a> of unide and PPMP, there was some media coverage about the project.</p>\n<p>Triggered by a statement by <a href="http://www.bosch.com/en/com/bosch_group/board_management/dr_rer_nat_volkmar_denner/volkmar-denner.html">Bosch CEO Volkmar Denner</a> on <em><a href="http://www.bosch-presse.de/pressportal/en/bosch-initiates-new-machine-language-for-industry-4-0-65216.html">&quot;initiating new machine language for Industry 4.0&quot;</a></em>, twitter, blogs and magazines mention PPMP, e.g.:</p>\n<ul>\n<li><a href="https://www.elektormagazine.com/news/free-ppmp-from-bosch-makes-industry-4-0-open-for-all">electormagazine</a></li>\n<li><a href="http://www.computer-automation.de/feldebene/vernetzung/artikel/134233/">computer-automation</a> (de)</li>\n</ul>\n<p>Looking forward to spreading the word further.</p>\n',url:"/blog/2016/9/27/News-coverage",title:"News Coverage",date:"2016-09-27T09:14:27.000Z",tags:["media"],prev:{url:"/blog/2016/9/21/Official-launch",title:"Official launch"},next:{url:"/blog/2017/3/23/Unide-at-BCX",title:"Unide at Bosch Hackaton"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_article.dfd7fcb83848670d21b1.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2016/9/27/index.html b/blog/2016/9/27/index.html
index b8c8963..ab47d18 100644
--- a/blog/2016/9/27/index.html
+++ b/blog/2016/9/27/index.html
@@ -66,6 +66,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2016/9/27/News-coverage",title:"News Coverage",date:"2016-09-27T09:14:27.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2016/9/27/News-coverage",title:"News Coverage",date:"2016-09-27T09:14:27.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_blog.e921111d8f479ba5a1cd.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2016/9/index.html b/blog/2016/9/index.html
index 1ca92c8..807a262 100644
--- a/blog/2016/9/index.html
+++ b/blog/2016/9/index.html
@@ -78,6 +78,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2016/9/27/News-coverage",title:"News Coverage",date:"2016-09-27T09:14:27.000Z"},{url:"/blog/2016/9/21/Official-launch",title:"Official launch",date:"2016-09-21T09:47:43.000Z"},{url:"/blog/2016/9/16/Project-approved",title:"Eclipse Project approved",date:"2016-09-16T12:16:37.000Z"},{url:"/blog/2016/9/12/Unide-proposal-online",title:"Unide proposal online",date:"2016-09-12T09:26:37.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2016/9/27/News-coverage",title:"News Coverage",date:"2016-09-27T09:14:27.000Z"},{url:"/blog/2016/9/21/Official-launch",title:"Official launch",date:"2016-09-21T09:47:43.000Z"},{url:"/blog/2016/9/16/Project-approved",title:"Eclipse Project approved",date:"2016-09-16T12:16:37.000Z"},{url:"/blog/2016/9/12/Unide-proposal-online",title:"Unide proposal online",date:"2016-09-12T09:26:37.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_blog.e921111d8f479ba5a1cd.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2016/index.html b/blog/2016/index.html
index 59985c5..c61b693 100644
--- a/blog/2016/index.html
+++ b/blog/2016/index.html
@@ -78,6 +78,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2016/9/27/News-coverage",title:"News Coverage",date:"2016-09-27T09:14:27.000Z"},{url:"/blog/2016/9/21/Official-launch",title:"Official launch",date:"2016-09-21T09:47:43.000Z"},{url:"/blog/2016/9/16/Project-approved",title:"Eclipse Project approved",date:"2016-09-16T12:16:37.000Z"},{url:"/blog/2016/9/12/Unide-proposal-online",title:"Unide proposal online",date:"2016-09-12T09:26:37.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2016/9/27/News-coverage",title:"News Coverage",date:"2016-09-27T09:14:27.000Z"},{url:"/blog/2016/9/21/Official-launch",title:"Official launch",date:"2016-09-21T09:47:43.000Z"},{url:"/blog/2016/9/16/Project-approved",title:"Eclipse Project approved",date:"2016-09-16T12:16:37.000Z"},{url:"/blog/2016/9/12/Unide-proposal-online",title:"Unide proposal online",date:"2016-09-12T09:26:37.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_blog.e921111d8f479ba5a1cd.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2017/10/19/i40-testbed-started/index.html b/blog/2017/10/19/i40-testbed-started/index.html
index 5348408..78a1a98 100644
--- a/blog/2017/10/19/i40-testbed-started/index.html
+++ b/blog/2017/10/19/i40-testbed-started/index.html
@@ -67,6 +67,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"i40-testbed-started",content:'<p>The Eclipse IoT Working group has started another testbed around Production Performance Management. Together with other Eclipse projects but also manufacturing companies, we aim to showcase and test the software in real life scenarios.<br>\n<a href="https://www.contact-software.com">Contact Software</a>, <a href="https://www.eurotech.com">Eurotech</a> and <a href="https://www.eclipse.org/4diac/">Eclipse 4diac</a> provide bindings to actual machines, Unide and PPMP will be used for structuring and normalizing the information, <a href="https://projects.eclipse.org/projects/iot.hono">Ecipse Hono</a> and other provide the advanced infrastructure and <a href="https://www.influxdata.com/">influx data</a> persists the data.<br>\nYou can find more information in the <a href="https://eclipse.org/org/press-release/20171019_industry40_testbed.php">Press Release</a> or the <a href="https://iot.eclipse.org/testbeds/production-performance-management/#">homepage of the testbed</a>.</p>\n',url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed",date:"2017-10-19T00:00:00.000Z",tags:["testbed"],prev:{url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published"},next:{url:"/blog/2018/1/26/New-website",title:"Updated Website"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"i40-testbed-started",content:'<p>The Eclipse IoT Working group has started another testbed around Production Performance Management. Together with other Eclipse projects but also manufacturing companies, we aim to showcase and test the software in real life scenarios.<br>\n<a href="https://www.contact-software.com">Contact Software</a>, <a href="https://www.eurotech.com">Eurotech</a> and <a href="https://www.eclipse.org/4diac/">Eclipse 4diac</a> provide bindings to actual machines, Unide and PPMP will be used for structuring and normalizing the information, <a href="https://projects.eclipse.org/projects/iot.hono">Ecipse Hono</a> and other provide the advanced infrastructure and <a href="https://www.influxdata.com/">influx data</a> persists the data.<br>\nYou can find more information in the <a href="https://eclipse.org/org/press-release/20171019_industry40_testbed.php">Press Release</a> or the <a href="https://iot.eclipse.org/testbeds/production-performance-management/#">homepage of the testbed</a>.</p>\n',url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed",date:"2017-10-19T00:00:00.000Z",tags:["testbed"],prev:{url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published"},next:{url:"/blog/2018/1/26/New-website",title:"Updated Website"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_article.dfd7fcb83848670d21b1.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2017/10/19/index.html b/blog/2017/10/19/index.html
index f70cc47..49ce11f 100644
--- a/blog/2017/10/19/index.html
+++ b/blog/2017/10/19/index.html
@@ -66,6 +66,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed",date:"2017-10-19T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed",date:"2017-10-19T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_blog.e921111d8f479ba5a1cd.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2017/10/6/DZone-article-published/index.html b/blog/2017/10/6/DZone-article-published/index.html
index fa4ac35..19429a5 100644
--- a/blog/2017/10/6/DZone-article-published/index.html
+++ b/blog/2017/10/6/DZone-article-published/index.html
@@ -66,6 +66,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"DZone-article-published",content:'<p>A new article about PPMP and the Eclipse Unide project was published at <a href="https://dzone.com/articles/eclipse-unide-a-way-to-establish-an-open-industry">DZone</a>!<br>\nIt explains how to use the <a href="https://www.eclipse.org/unide/2017/06/29/Validator-Online/">PPMP validator</a>, gives an overview of the InfluxDB / Grafana visualisation and how this setup can be used in an Eclipse Testbed.</p>\n',url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published",date:"2017-10-06T00:00:00.000Z",tags:["media"],prev:{url:"/blog/2017/6/29/Validator-Online",title:"First PPMP-Validator Online"},next:{url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"DZone-article-published",content:'<p>A new article about PPMP and the Eclipse Unide project was published at <a href="https://dzone.com/articles/eclipse-unide-a-way-to-establish-an-open-industry">DZone</a>!<br>\nIt explains how to use the <a href="https://www.eclipse.org/unide/2017/06/29/Validator-Online/">PPMP validator</a>, gives an overview of the InfluxDB / Grafana visualisation and how this setup can be used in an Eclipse Testbed.</p>\n',url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published",date:"2017-10-06T00:00:00.000Z",tags:["media"],prev:{url:"/blog/2017/6/29/Validator-Online",title:"First PPMP-Validator Online"},next:{url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_article.dfd7fcb83848670d21b1.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2017/10/6/index.html b/blog/2017/10/6/index.html
index 44992ea..e83e819 100644
--- a/blog/2017/10/6/index.html
+++ b/blog/2017/10/6/index.html
@@ -66,6 +66,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published",date:"2017-10-06T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published",date:"2017-10-06T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_blog.e921111d8f479ba5a1cd.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2017/10/index.html b/blog/2017/10/index.html
index 04191c9..b33830d 100644
--- a/blog/2017/10/index.html
+++ b/blog/2017/10/index.html
@@ -70,6 +70,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed",date:"2017-10-19T00:00:00.000Z"},{url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published",date:"2017-10-06T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed",date:"2017-10-19T00:00:00.000Z"},{url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published",date:"2017-10-06T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_blog.e921111d8f479ba5a1cd.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2017/3/23/Unide-at-BCX/index.html b/blog/2017/3/23/Unide-at-BCX/index.html
index 1a1ed5c..ccc916d 100644
--- a/blog/2017/3/23/Unide-at-BCX/index.html
+++ b/blog/2017/3/23/Unide-at-BCX/index.html
@@ -74,6 +74,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"Unide-at-BCX",content:'<p>Unide and PPMP were used in <a href="http://bcw.bosch-si.com/berlin/bcw-hackathon/?refresh=1">Bosch Connected Experience Hackaton</a> by students and developers to connect sensors to backend solutions in just two days!<br>\nThey even took a professional video:</p>\n<center>\n<iframe width="400" height="300" src="https://www.youtube.com/embed/Pq88mIx-lnQ?ecver=1" frameborder="0" allowfullscreen></iframe>\n</center>\n<p>Also in the same conference, Bosch CEO Dr. Volkmar Denner <a href="http://bcw.bosch-si.com/berlin/bcw-hackathon/?refresh=1">refered to PPMP again</a>:</p>\n<blockquote>\n\t<p>On a more practical level, the product performance management protocol, or PPMP, is being tried out at the Bosch plant in Homburg, Germany, as part of a joint Industrie 4.0 and IIC testbed. Bosch itself developed the PPMP, which is available to all at no cost. It allows small and medium-sized enterprises to transmit data from their sensors quickly, simply, and securely to the production systems of large companies. This helps remove some of the obstacles preventing entry into connected manufacturing. This first practical experience will be used to further refine the new protocol – work which will be done by Eclipse, an open-source community. Once again, we see that openness is our life blood.</p>\n\t<footer>Dr. Volkmar Denner, Bosch CEO</footer>\n</blockquote>\n',url:"/blog/2017/3/23/Unide-at-BCX",title:"Unide at Bosch Hackaton",date:"2017-03-23T17:00:00.000Z",tags:["media"],prev:{url:"/blog/2016/9/27/News-coverage",title:"News Coverage"},next:{url:"/blog/2017/6/1/New-process-message-spec",title:"New PPMP-Specification for processes"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"Unide-at-BCX",content:'<p>Unide and PPMP were used in <a href="http://bcw.bosch-si.com/berlin/bcw-hackathon/?refresh=1">Bosch Connected Experience Hackaton</a> by students and developers to connect sensors to backend solutions in just two days!<br>\nThey even took a professional video:</p>\n<center>\n<iframe width="400" height="300" src="https://www.youtube.com/embed/Pq88mIx-lnQ?ecver=1" frameborder="0" allowfullscreen></iframe>\n</center>\n<p>Also in the same conference, Bosch CEO Dr. Volkmar Denner <a href="http://bcw.bosch-si.com/berlin/bcw-hackathon/?refresh=1">refered to PPMP again</a>:</p>\n<blockquote>\n\t<p>On a more practical level, the product performance management protocol, or PPMP, is being tried out at the Bosch plant in Homburg, Germany, as part of a joint Industrie 4.0 and IIC testbed. Bosch itself developed the PPMP, which is available to all at no cost. It allows small and medium-sized enterprises to transmit data from their sensors quickly, simply, and securely to the production systems of large companies. This helps remove some of the obstacles preventing entry into connected manufacturing. This first practical experience will be used to further refine the new protocol – work which will be done by Eclipse, an open-source community. Once again, we see that openness is our life blood.</p>\n\t<footer>Dr. Volkmar Denner, Bosch CEO</footer>\n</blockquote>\n',url:"/blog/2017/3/23/Unide-at-BCX",title:"Unide at Bosch Hackaton",date:"2017-03-23T17:00:00.000Z",tags:["media"],prev:{url:"/blog/2016/9/27/News-coverage",title:"News Coverage"},next:{url:"/blog/2017/6/1/New-process-message-spec",title:"New PPMP-Specification for processes"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_article.dfd7fcb83848670d21b1.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2017/3/23/index.html b/blog/2017/3/23/index.html
index a799075..e61d7c0 100644
--- a/blog/2017/3/23/index.html
+++ b/blog/2017/3/23/index.html
@@ -66,6 +66,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/3/23/Unide-at-BCX",title:"Unide at Bosch Hackaton",date:"2017-03-23T17:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/3/23/Unide-at-BCX",title:"Unide at Bosch Hackaton",date:"2017-03-23T17:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_blog.e921111d8f479ba5a1cd.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2017/3/index.html b/blog/2017/3/index.html
index f7c3ddc..9143f48 100644
--- a/blog/2017/3/index.html
+++ b/blog/2017/3/index.html
@@ -66,6 +66,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/3/23/Unide-at-BCX",title:"Unide at Bosch Hackaton",date:"2017-03-23T17:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/3/23/Unide-at-BCX",title:"Unide at Bosch Hackaton",date:"2017-03-23T17:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_blog.e921111d8f479ba5a1cd.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2017/6/1/New-process-message-spec/index.html b/blog/2017/6/1/New-process-message-spec/index.html
index 7753845..a112000 100644
--- a/blog/2017/6/1/New-process-message-spec/index.html
+++ b/blog/2017/6/1/New-process-message-spec/index.html
@@ -65,6 +65,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"New-process-message-spec",content:'<p>We’re happy to announce, that the process message specification is online! You can find it at <a href="http://www.eclipse.org/unide/specification">http://www.eclipse.org/unide/specification</a>. With this type of messages you have a standard format for sending data out of discrete and possibly complex processes. <img src="/unide/images/processPayload.png" alt="alt text"></p>\n',url:"/blog/2017/6/1/New-process-message-spec",title:"New PPMP-Specification for processes",date:"2017-06-01T00:00:00.000Z",tags:["process message"],prev:{url:"/blog/2017/3/23/Unide-at-BCX",title:"Unide at Bosch Hackaton"},next:{url:"/blog/2017/6/29/Validator-Online",title:"First PPMP-Validator Online"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"New-process-message-spec",content:'<p>We’re happy to announce, that the process message specification is online! You can find it at <a href="http://www.eclipse.org/unide/specification">http://www.eclipse.org/unide/specification</a>. With this type of messages you have a standard format for sending data out of discrete and possibly complex processes. <img src="/unide/images/processPayload.png" alt="alt text"></p>\n',url:"/blog/2017/6/1/New-process-message-spec",title:"New PPMP-Specification for processes",date:"2017-06-01T00:00:00.000Z",tags:["process message"],prev:{url:"/blog/2017/3/23/Unide-at-BCX",title:"Unide at Bosch Hackaton"},next:{url:"/blog/2017/6/29/Validator-Online",title:"First PPMP-Validator Online"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_article.dfd7fcb83848670d21b1.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2017/6/1/index.html b/blog/2017/6/1/index.html
index 3233d6c..851e335 100644
--- a/blog/2017/6/1/index.html
+++ b/blog/2017/6/1/index.html
@@ -66,6 +66,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/6/1/New-process-message-spec",title:"New PPMP-Specification for processes",date:"2017-06-01T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/6/1/New-process-message-spec",title:"New PPMP-Specification for processes",date:"2017-06-01T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_blog.e921111d8f479ba5a1cd.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2017/6/29/Validator-Online/index.html b/blog/2017/6/29/Validator-Online/index.html
index ed38773..a6fc7f5 100644
--- a/blog/2017/6/29/Validator-Online/index.html
+++ b/blog/2017/6/29/Validator-Online/index.html
@@ -73,6 +73,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"Validator-Online",content:"<p>Our first PPMP-Validator as a HTTP-server is online!</p>\n<p>What we already contribtuted as sourcecode to the Unide-project we've also installed on an eclipse sandbox server. Now you are able to validate your PPMP-messages through the internet without running the server on your local machine. The intention is to make the latest specification validator accessible to everyone at anytime.</p>\n<p>You can reach the server by sending POST-requests to the following endpoints:</p>\n<pre>\n<a>http://unide.eclipse.org/rest/v2/message?validate=true</a>\n<a>http://unide.eclipse.org/rest/v2/measurement?validate=true</a>\n<a>http://unide.eclipse.org/rest/v2/process?validate=true</a>\n</pre>\n<p>Further functions of the sandbox server will be also visualization and storaging of incoming PPMP-messages.</p>\n",url:"/blog/2017/6/29/Validator-Online",title:"First PPMP-Validator Online",date:"2017-06-29T00:00:00.000Z",tags:["validator"],prev:{url:"/blog/2017/6/1/New-process-message-spec",title:"New PPMP-Specification for processes"},next:{url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"Validator-Online",content:"<p>Our first PPMP-Validator as a HTTP-server is online!</p>\n<p>What we already contribtuted as sourcecode to the Unide-project we've also installed on an eclipse sandbox server. Now you are able to validate your PPMP-messages through the internet without running the server on your local machine. The intention is to make the latest specification validator accessible to everyone at anytime.</p>\n<p>You can reach the server by sending POST-requests to the following endpoints:</p>\n<pre>\n<a>http://unide.eclipse.org/rest/v2/message?validate=true</a>\n<a>http://unide.eclipse.org/rest/v2/measurement?validate=true</a>\n<a>http://unide.eclipse.org/rest/v2/process?validate=true</a>\n</pre>\n<p>Further functions of the sandbox server will be also visualization and storaging of incoming PPMP-messages.</p>\n",url:"/blog/2017/6/29/Validator-Online",title:"First PPMP-Validator Online",date:"2017-06-29T00:00:00.000Z",tags:["validator"],prev:{url:"/blog/2017/6/1/New-process-message-spec",title:"New PPMP-Specification for processes"},next:{url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_article.dfd7fcb83848670d21b1.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2017/6/29/index.html b/blog/2017/6/29/index.html
index 4e0a5e6..ff1c3eb 100644
--- a/blog/2017/6/29/index.html
+++ b/blog/2017/6/29/index.html
@@ -66,6 +66,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/6/29/Validator-Online",title:"First PPMP-Validator Online",date:"2017-06-29T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/6/29/Validator-Online",title:"First PPMP-Validator Online",date:"2017-06-29T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_blog.e921111d8f479ba5a1cd.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2017/6/index.html b/blog/2017/6/index.html
index dec01b9..a76df0f 100644
--- a/blog/2017/6/index.html
+++ b/blog/2017/6/index.html
@@ -70,6 +70,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/6/29/Validator-Online",title:"First PPMP-Validator Online",date:"2017-06-29T00:00:00.000Z"},{url:"/blog/2017/6/1/New-process-message-spec",title:"New PPMP-Specification for processes",date:"2017-06-01T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/6/29/Validator-Online",title:"First PPMP-Validator Online",date:"2017-06-29T00:00:00.000Z"},{url:"/blog/2017/6/1/New-process-message-spec",title:"New PPMP-Specification for processes",date:"2017-06-01T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_blog.e921111d8f479ba5a1cd.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2017/index.html b/blog/2017/index.html
index 384f2d2..198bae8 100644
--- a/blog/2017/index.html
+++ b/blog/2017/index.html
@@ -82,6 +82,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed",date:"2017-10-19T00:00:00.000Z"},{url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published",date:"2017-10-06T00:00:00.000Z"},{url:"/blog/2017/6/29/Validator-Online",title:"First PPMP-Validator Online",date:"2017-06-29T00:00:00.000Z"},{url:"/blog/2017/6/1/New-process-message-spec",title:"New PPMP-Specification for processes",date:"2017-06-01T00:00:00.000Z"},{url:"/blog/2017/3/23/Unide-at-BCX",title:"Unide at Bosch Hackaton",date:"2017-03-23T17:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed",date:"2017-10-19T00:00:00.000Z"},{url:"/blog/2017/10/6/DZone-article-published",title:"DZone article published",date:"2017-10-06T00:00:00.000Z"},{url:"/blog/2017/6/29/Validator-Online",title:"First PPMP-Validator Online",date:"2017-06-29T00:00:00.000Z"},{url:"/blog/2017/6/1/New-process-message-spec",title:"New PPMP-Specification for processes",date:"2017-06-01T00:00:00.000Z"},{url:"/blog/2017/3/23/Unide-at-BCX",title:"Unide at Bosch Hackaton",date:"2017-03-23T17:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_blog.e921111d8f479ba5a1cd.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2018/1/26/New-website/index.html b/blog/2018/1/26/New-website/index.html
index 0c25362..79cba05 100644
--- a/blog/2018/1/26/New-website/index.html
+++ b/blog/2018/1/26/New-website/index.html
@@ -66,6 +66,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"New-website",content:'<p>It turned out that even with multiple reviews, it is possible to have small mistakes in the PPMP documentation. In order to avoid such contradictions between diagrams, specification, json-schema and eventual implementation, we decided to rework the project structure and fixed <a href="https://github.com/eclipse/unide/issues/21">the JSON Schemas</a>. The corresponding uml diagrams are generated with <a href="http://plantuml.com/">plantuml</a>. For even better understandibility, the attributes are sorted lexicographically.</p>\n<p>Although the website has the same look, it is completely reworked as a <a href="https://en.wikipedia.org/wiki/Single-page_application">single-page application</a> to generate the specification directly from the json-schema. Instead of using <a href="https://hexo.io/">hexo</a> it is now based on <a href="https://nuxtjs.org/">nuxt.js</a>. <a href="https://vuejs.org/">Vue.js</a> as a basis for nuxt is also used in the <a href="https://github.com/eclipse/unide/tree/master/clients/binsa">new PPMP client application called binsa</a>.</p>\n',url:"/blog/2018/1/26/New-website",title:"Updated Website",date:"2018-01-26T00:00:00.000Z",tags:["media"],prev:{url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed"},next:{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"New-website",content:'<p>It turned out that even with multiple reviews, it is possible to have small mistakes in the PPMP documentation. In order to avoid such contradictions between diagrams, specification, json-schema and eventual implementation, we decided to rework the project structure and fixed <a href="https://github.com/eclipse/unide/issues/21">the JSON Schemas</a>. The corresponding uml diagrams are generated with <a href="http://plantuml.com/">plantuml</a>. For even better understandibility, the attributes are sorted lexicographically.</p>\n<p>Although the website has the same look, it is completely reworked as a <a href="https://en.wikipedia.org/wiki/Single-page_application">single-page application</a> to generate the specification directly from the json-schema. Instead of using <a href="https://hexo.io/">hexo</a> it is now based on <a href="https://nuxtjs.org/">nuxt.js</a>. <a href="https://vuejs.org/">Vue.js</a> as a basis for nuxt is also used in the <a href="https://github.com/eclipse/unide/tree/master/clients/binsa">new PPMP client application called binsa</a>.</p>\n',url:"/blog/2018/1/26/New-website",title:"Updated Website",date:"2018-01-26T00:00:00.000Z",tags:["media"],prev:{url:"/blog/2017/10/19/i40-testbed-started",title:"Unide is part of Industry 4.0 Testbed"},next:{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_article.dfd7fcb83848670d21b1.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2018/1/26/index.html b/blog/2018/1/26/index.html
index c619dd4..f72901b 100644
--- a/blog/2018/1/26/index.html
+++ b/blog/2018/1/26/index.html
@@ -66,6 +66,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/1/26/New-website",title:"Updated Website",date:"2018-01-26T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/1/26/New-website",title:"Updated Website",date:"2018-01-26T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_blog.e921111d8f479ba5a1cd.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2018/1/index.html b/blog/2018/1/index.html
index 2390a6e..9f5b93a 100644
--- a/blog/2018/1/index.html
+++ b/blog/2018/1/index.html
@@ -66,6 +66,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/1/26/New-website",title:"Updated Website",date:"2018-01-26T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/1/26/New-website",title:"Updated Website",date:"2018-01-26T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_blog.e921111d8f479ba5a1cd.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2018/2/11/Transform-PPMP-with-camel/index.html b/blog/2018/2/11/Transform-PPMP-with-camel/index.html
index b8943b9..d4509b5 100644
--- a/blog/2018/2/11/Transform-PPMP-with-camel/index.html
+++ b/blog/2018/2/11/Transform-PPMP-with-camel/index.html
@@ -702,6 +702,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"Transform-PPMP-with-camel",content:'<p>The Production Performance Management Protocol (PPMP) is a simple structure to send out machine data. Unide, as its hosting project, is supposed to provide exemplary implementations.</p>\n<p>We have already published <a href="https://github.com/eclipse/unide/tree/master/servers/rest">a REST server</a>, <a href="https://github.com/eclipse/unide.java">java-</a> and <a href="https://github.com/eclipse/unide.python">python-</a> bindings and an <a href="https://github.com/eclipse/unide/tree/master/clients/binsa">html5-client</a>. But how are these implementations used in real life?</p>\n<h1>The Challenge</h1>\n<div class="card figure">\n\t<div class="card-image">\n\t\t<figure class="image">\n\t\t\t<img alt="Welding robots" title="BMW plant, spot welding" src="/unide/images/blog/Transform-PPMP-with-camel-welding.jpg"></img>\n\t\t</figure>\n\t</div>\n\t<div class="card-content">\n\t\tBMW plant in Leipzig, Germany: Spot welding <a href="https://creativecommons.org/licenses/by-sa/2.0/de/deed.en">(CC BY-SA 2.0 DE)</a>\n\t</div>\n</div>\n<p>In the automotive industry, <a href="https://en.wikipedia.org/wiki/Spot_welding">welding spots</a> are crucial for the quality of a car and the security of the passenger. In modern production lines, hundreds of welding spots have to be precisely set in a single shift. In order to reduce product rework, scrap, destructible tests and machine downtime, the quality should be monitored consistently. That\'s what special welding controller in machines do. Unfortunately, this data is often only used locally, for a short period of time and in proprietary formats. Just enough to determine the immediate process outcome. In that case, further opportunities of analysing the information are not taken. With the continuous increase in complexity, price and time pressure, the demand for further processing and optimization grows. The data could be used to prevent or even predict maintenance or just store the data in long time archives in case of legal disputes.</p>\n<p>One prerequisite for such connectivity is the hardware and its connectivity. Older generations of welding controllers can only be accessed with proprietary stacks (like the <a href="https://www.boschrexroth.com/en/xc/products/product-groups/welding-technology/controllers-with-power-section/mf-system-psi6000/index">PSI 6000</a>) whereas newer generations (like the <a href="https://www.boschrexroth.com/en/xc/company/press/index2-29696">PRC 7000</a>) are much more flexible in terms of networking and communication. In general, there are two aspects that make up the communication: the transport protocol and the structure of the payload. This is similar to our daily life: if you want to chat with your friends, you need to use the same messenger or communication technology (phone, email) and you need speak the same language (English, German etc.).</p>\n<p>In the following sections, let\'s assume we need to transform the transport protocol as well as the payload. The data is generated by a welding controller and should be passed to <a href="https://unide.eclipse.org">the unide REST server</a> for persisting it in a dedicated timeseries database.</p>\n<h1>The Approach</h1>\n<p>We want to find a way to receive the data, transform it into PPMP and store it into a database in our <a href="https://unide.eclipse.org">REST Server</a>.</p>\n<p>First, we need to understand which interfaces the controller has, which communication protocol is used, and how the payload would be interpreted. In the case of the PSI 6000, it was configured to publish the quality data to a <a href="https://de.wikipedia.org/wiki/MQTT">mqtt</a> message broker (here: <a href="https://mosquitto.org/">Eclipse mosquitto</a>). We don\'t have an extensive documentation of the payload, but we can look at samples of it (some Curve data shortened at the end):</p>\n<pre class="language-json"><code class="language-json"><span class="token punctuation">{</span>\n  <span class="token property">"Name"</span><span class="token operator">:</span> <span class="token string">"WeldLog/UIR Testrack 24/"</span><span class="token punctuation">,</span>\n  <span class="token property">"WeldTimer"</span><span class="token operator">:</span> <span class="token string">"UIR Testrack 24"</span><span class="token punctuation">,</span>\n  <span class="token property">"TimeStamp"</span><span class="token operator">:</span> <span class="token string">"2018-01-17T10:41:00.0008436+01:00"</span><span class="token punctuation">,</span>\n  <span class="token property">"OutputFormat"</span><span class="token operator">:</span> <span class="token string">"JSON"</span><span class="token punctuation">,</span>\n  <span class="token property">"Message"</span><span class="token operator">:</span> <span class="token punctuation">{</span>\n    <span class="token property">"WeldLog"</span><span class="token operator">:</span> <span class="token punctuation">{</span>\n      <span class="token property">"protRecord_ID"</span><span class="token operator">:</span> <span class="token number">734827</span><span class="token punctuation">,</span>\n      <span class="token property">"dateTime"</span><span class="token operator">:</span> <span class="token string">"2018-01-15T16:52:32.09"</span><span class="token punctuation">,</span>\n      <span class="token property">"timerName"</span><span class="token operator">:</span> <span class="token string">"UIR Testrack 24"</span><span class="token punctuation">,</span>\n      <span class="token property">"progNo"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"spotName"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span>\n      <span class="token property">"wear"</span><span class="token operator">:</span> <span class="token number">8312480</span><span class="token punctuation">,</span>\n      <span class="token property">"wearPerCent"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"monitorState"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regulationState"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"measureState"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"powerState"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"sequenceState"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"sequenceStateAdd"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"sequenceRepeat"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"monitorMode"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>\n      <span class="token property">"iDemandStd"</span><span class="token operator">:</span> <span class="token number">3</span><span class="token punctuation">,</span>\n      <span class="token property">"ilsts"</span><span class="token operator">:</span> <span class="token number">13.14</span><span class="token punctuation">,</span>\n      <span class="token property">"regulationStd"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"iDemand1"</span><span class="token operator">:</span> <span class="token number">3</span><span class="token punctuation">,</span>\n      <span class="token property">"iActual1"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regulation1"</span><span class="token operator">:</span> <span class="token number">4</span><span class="token punctuation">,</span>\n      <span class="token property">"iDemand2"</span><span class="token operator">:</span> <span class="token number">3</span><span class="token punctuation">,</span>\n      <span class="token property">"iActual2"</span><span class="token operator">:</span> <span class="token number">13.16</span><span class="token punctuation">,</span>\n      <span class="token property">"regulation2"</span><span class="token operator">:</span> <span class="token number">4</span><span class="token punctuation">,</span>\n      <span class="token property">"iDemand3"</span><span class="token operator">:</span> <span class="token number">3</span><span class="token punctuation">,</span>\n      <span class="token property">"iActual3"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regulation3"</span><span class="token operator">:</span> <span class="token number">4</span><span class="token punctuation">,</span>\n      <span class="token property">"phaStd"</span><span class="token operator">:</span> <span class="token number">24.96</span><span class="token punctuation">,</span>\n      <span class="token property">"pha1"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"pha2"</span><span class="token operator">:</span> <span class="token number">24.64</span><span class="token punctuation">,</span>\n      <span class="token property">"pha3"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"t_iDemandStd"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"tActualStd"</span><span class="token operator">:</span> <span class="token number">878</span><span class="token punctuation">,</span>\n      <span class="token property">"partIdentString"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span>\n      <span class="token property">"tipDressCounter"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"electrodeNo"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"sgForceSetPoint"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgSheetThicknessSetPoint"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgSagGpSetPoint"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgSpotWithSg"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgMotorCurrent"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgMotorTemp"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgForce"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgSheetThickness"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgSagGp"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgSagGc"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"regUsrUspJunction"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regUsrUspMax"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regSpotDiaActual"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regSpotDiaMinDemand"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regSplashTime"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"nuggetDiameter"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"usp"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"normingTime"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regulationStartTime"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"returnToConstantCurrent"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"declineUsp"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"offsetUsp"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"currentFactor"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"triggerTime"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"xqrMeasuringActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"xqrRegulationActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"xqrMonitoringActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"xqrWeldTimeProlongationActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"voltageActualValue"</span><span class="token operator">:</span> <span class="token number">0.03</span><span class="token punctuation">,</span>\n      <span class="token property">"voltageRefValue"</span><span class="token operator">:</span> <span class="token number">0.03</span><span class="token punctuation">,</span>\n      <span class="token property">"currentActualValue"</span><span class="token operator">:</span> <span class="token number">13.17</span><span class="token punctuation">,</span>\n      <span class="token property">"currentReferenceValue"</span><span class="token operator">:</span> <span class="token number">13.95</span><span class="token punctuation">,</span>\n      <span class="token property">"weldTimeActualValue"</span><span class="token operator">:</span> <span class="token number">876</span><span class="token punctuation">,</span>\n      <span class="token property">"weldTimeRefValue"</span><span class="token operator">:</span> <span class="token number">760</span><span class="token punctuation">,</span>\n      <span class="token property">"energyActualValue"</span><span class="token operator">:</span> <span class="token number">395.1261</span><span class="token punctuation">,</span>\n      <span class="token property">"energyRefValue"</span><span class="token operator">:</span> <span class="token number">342</span><span class="token punctuation">,</span>\n      <span class="token property">"powerActualValue"</span><span class="token operator">:</span> <span class="token number">395.133</span><span class="token punctuation">,</span>\n      <span class="token property">"powerRefValue"</span><span class="token operator">:</span> <span class="token number">449.35</span><span class="token punctuation">,</span>\n      <span class="token property">"resistanceActualValue"</span><span class="token operator">:</span> <span class="token number">2</span><span class="token punctuation">,</span>\n      <span class="token property">"resistanceRefValue"</span><span class="token operator">:</span> <span class="token number">2</span><span class="token punctuation">,</span>\n      <span class="token property">"pulseWidthActualValue"</span><span class="token operator">:</span> <span class="token number">25.02</span><span class="token punctuation">,</span>\n      <span class="token property">"pulseWidthRefValue"</span><span class="token operator">:</span> <span class="token number">26.19</span><span class="token punctuation">,</span>\n      <span class="token property">"stabilisationFactorActValue"</span><span class="token operator">:</span> <span class="token number">55</span><span class="token punctuation">,</span>\n      <span class="token property">"stabilisationFactorRefValue"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"thresholdStabilisationFactor"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"wldEffectStabilisationFactor"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"uipActualValue"</span><span class="token operator">:</span> <span class="token number">126</span><span class="token punctuation">,</span>\n      <span class="token property">"uipRefValue"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"uirExpulsionTime"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"uirMeasuringActive"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>\n      <span class="token property">"uirRegulationActive"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>\n      <span class="token property">"uirMonitoringActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"uirWeldTimeProlongationActive"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>\n      <span class="token property">"uirQStoppRefCntValue"</span><span class="token operator">:</span> <span class="token number">9</span><span class="token punctuation">,</span>\n      <span class="token property">"uirQStoppActCntValue"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"uirUipUpperTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"uirUipLowerTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"uirUipCondTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"uirPsfLowerTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"uirPsfCondTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_1"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_2"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_3"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_4"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_5"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP32_6"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_7"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_8"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_9"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_10"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_11"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP32_12"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_13"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_14"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_15"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_16"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_17"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP32_18"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"uipMonCondUpperTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfActualValue"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfRefValue"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfMonUpperTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfMonLowerTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfMonCondUpperTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfMonCondLowerTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfMeasuringActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"xqrModeOff"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"reweldActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"weldspotRefIdent"</span><span class="token operator">:</span> <span class="token string">"UIR_PART"</span><span class="token punctuation">,</span>\n      <span class="token property">"sg_Torque_Gp"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sg_Force_Corr"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sg_Weldspot_Geo_Wear"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sg_Wear_Length"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sg_Beam_UpArching"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"CurrentCurve"</span><span class="token operator">:</span> <span class="token punctuation">[</span>\n        <span class="token number">11621</span><span class="token punctuation">,</span>\n        <span class="token number">15434</span><span class="token punctuation">,</span>\n        ...\n      <span class="token punctuation">]</span><span class="token punctuation">,</span>\n      <span class="token property">"VoltageCurve"</span><span class="token operator">:</span> <span class="token punctuation">[</span>\n        <span class="token number">39</span><span class="token punctuation">,</span>\n        <span class="token number">29</span><span class="token punctuation">,</span>\n        ...\n      <span class="token punctuation">]</span><span class="token punctuation">,</span>\n      <span class="token property">"ForceCurve"</span><span class="token operator">:</span> <span class="token punctuation">[</span>\n        <span class="token number">49</span><span class="token punctuation">,</span>\n        <span class="token number">49</span><span class="token punctuation">,</span>\n        ...\n      <span class="token punctuation">]</span>\n    <span class="token punctuation">}</span>\n  <span class="token punctuation">}</span>\n<span class="token punctuation">}</span>\n</code></pre>\n<p>That\'s already very detailed, but it\'s unclear which device / welding spot the data comes from and what the timing of the curves was. Let\'s get some more structure in with PPMP!</p>\n<p>In PPMP, we have the option to differentiate between discrete manufacturing data (MES - part produced) by using the <a href="/unide/specification/measurement-message">measurement-message</a> and detailed process data by using the <a href="https://www.eclipse.org/unide/specification/process-message">process-message</a>. In the welding payload, that\'s all combined in one message. So we also want to split this payload into two.</p>\n<h2>Introducing Apache Camel</h2>\n<div class="card figure is-pulled-left">\n\t<div class="card-image">\n\t\t<figure class="image">\n\t\t\t<img alt="Apache Camel" title="Apache Camel" src="/unide/images/blog/Transform-PPMP-with-camel-camel.png"></img>\n\t\t</figure>\n\t</div>\n\t<div class="card-content">\n\t\tApache Camel, <a href="https://www.apache.org/licenses/LICENSE-2.0">(Apache&nbsp;License&nbsp;2.0)</a>\n\t</div>\n</div>\n<p><a href="https://en.wikipedia.org/wiki/Apache_Camel">Apache Camel</a> is a java-based Open Source framework, that can transform and route data. It supports most of the <a href="https://en.wikipedia.org/wiki/Enterprise_Integration_Patterns">Enterprise Integration Patterns</a> and hundreds(!) of <a href="http://camel.apache.org/components.html">connectors / components</a>. Think of it as an extensive transformation and workflow automation engine. In fact, it\'s so powerful and versatile, that it unfortunately doesn\'t come with a visual user interface or a plug-and-play installer. Luckily, for everyone who doesn\'t happen to be a java expert, there\'s also an xml configuration (via <a href="https://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/html/xsd-configuration.html">spring xml</a>). And that\'s mostly all we need!</p>\n<h2>Transforming the Communication Protocol</h2>\n<p>We will use Spring XML to configure Apache Camel. The workflow in Camel are called <code>&lt;routes&gt;</code>. So let\'s create a route that transforms our mqtt to REST protocol:</p>\n<pre class="language-xml"><code class="language-xml"><span class="token prolog">&lt;?xml version="1.0" encoding="UTF-8"?></span>\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>beans</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.springframework.org/schema/beans<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xmlns:</span>xsi</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.w3.org/2001/XMLSchema-instance<span class="token punctuation">"</span></span> <span class="token attr-name"><span class="token namespace">xmlns:</span>camel</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://camel.apache.org/schema/spring<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xmlns:</span>util</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.springframework.org/schema/util<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xsi:</span>schemaLocation</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.springframework.org/schema/util\n\thttp://www.springframework.org/schema/util/spring-util.xsd \n\thttp://www.springframework.org/schema/beans\n    http://www.springframework.org/schema/beans/spring-beans.xsd\n    http://camel.apache.org/schema/spring\n    http://camel.apache.org/schema/spring/camel-spring.xsd<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>camelContext</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://camel.apache.org/schema/spring<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>route</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>from</span>\n\t\t\t\t<span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>mqtt://psi6000?host=tcp://192.168.123.135:1883<span class="token entity" title="&amp;">&amp;amp;</span>subscribeTopicName=PSI6000//PROCESS/PPMP/PROCESS<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>to</span>\n\t\t\t\t<span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>jetty:http://unide.eclipse.org:8080/rest/v2/measurement?bridgeEndpoint=true<span class="token entity" title="&amp;">&amp;amp;</span>throwExceptionOnFailure=true<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>route</span><span class="token punctuation">></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>camelContext</span><span class="token punctuation">></span></span>\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>beans</span><span class="token punctuation">></span></span>\n</code></pre>\n<p>That\'s it! A <code>&lt;route&gt;</code> that reads<code>&lt;from&gt;</code> mqtt and forwards <code>&lt;to&gt;</code> http. Not so difficult, is it? We could use many of the other <a href="http://camel.apache.org/components.html">connectors / components</a> in the example above as well to transform from/to different protocols.</p>\n<p>But wait! The welding payload above was not PPMP. So we also need to normalize the payload.</p>\n<h2>Normalizing the Payload</h2>\n<p>Now that we can easily convert protocols, let\'s address the structure of the payload. Overall, we want to have a workflow that looks as described in the diagram below:</p>\n<div class="card figure">\n\t<div class="card-image">\n\t\t<figure class="image">\n\t\t\t<img alt="data workflow" title="data workflow" src="/unide/images/blog/Transform-PPMP-with-camel-1.svg"></img>\n\t\t</figure>\n\t</div>\n\t<div class="card-content">\n\t\tWorkflow to extract the data from controller, convert it and send the data to the cloud application\n\t</div>\n</div>\n<p>The extra steps here are:</p>\n<ol>\n<li>transform the PSI 6000 JSON String payload to a java object</li>\n<li>transform the PSI 6000 java object to two PPMP-java objects (<a href="/unide/specification/measurement-message">measurement-message</a> and <a href="https://www.eclipse.org/unide/specification/process-message">process-message</a>)</li>\n<li>split up the two PPMP objects</li>\n<li>route the objects individually</li>\n<li>transform each PPMP object back to a String</li>\n</ol>\n<h3>Create the PSI 6000 Java Object</h3>\n<p>Luckily, there are helpers for transforming json (or xml) to plain old java objects (POJOs). We are using <a href="http://www.jsonschema2pojo.org/">jsonschema2pojo</a> to convert the above json sample to POJOs with Jackson 2.x annotation. I name the resulting data type class <code>PSI6000DataType</code> and organize it in the package <code>org.eclipse.iot.unide.integrators</code>. Based on the given testdata, jsonschema2pojo cannot fully deduct all attribute types correctly. In order to allow floating point values, we would rename all <code>Integer</code> and <code>Object</code> types to <code>Number</code> in the WeldLog.java file. Also in the same file, we would change the type of the <code>dateTime</code> field from String to <code>LocalDateTime</code> to be more accurate:</p>\n<pre class="language-java"><code class="language-java"><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>\n<span class="token annotation punctuation">@JsonProperty</span><span class="token punctuation">(</span><span class="token string">"dateTime"</span><span class="token punctuation">)</span>\n<span class="token annotation punctuation">@JsonSerialize</span><span class="token punctuation">(</span>using <span class="token operator">=</span> LocalDateTimeSerializer<span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">)</span>\n<span class="token annotation punctuation">@JsonDeserialize</span><span class="token punctuation">(</span>using <span class="token operator">=</span> LocalDateTimeDeserializer<span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">)</span>\n<span class="token keyword">private</span> LocalDateTime dateTime<span class="token punctuation">;</span>\n<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>\n</code></pre>\n<p>For that, we also need to include the respective imports:</p>\n<pre class="language-java"><code class="language-java"><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>\n<span class="token keyword">import</span> com<span class="token punctuation">.</span>fasterxml<span class="token punctuation">.</span>jackson<span class="token punctuation">.</span>databind<span class="token punctuation">.</span>annotation<span class="token punctuation">.</span>JsonDeserialize<span class="token punctuation">;</span>\n<span class="token keyword">import</span> com<span class="token punctuation">.</span>fasterxml<span class="token punctuation">.</span>jackson<span class="token punctuation">.</span>databind<span class="token punctuation">.</span>annotation<span class="token punctuation">.</span>JsonSerialize<span class="token punctuation">;</span>\n<span class="token keyword">import</span> com<span class="token punctuation">.</span>fasterxml<span class="token punctuation">.</span>jackson<span class="token punctuation">.</span>datatype<span class="token punctuation">.</span>jsr310<span class="token punctuation">.</span>deser<span class="token punctuation">.</span>LocalDateTimeDeserializer<span class="token punctuation">;</span>\n<span class="token keyword">import</span> com<span class="token punctuation">.</span>fasterxml<span class="token punctuation">.</span>jackson<span class="token punctuation">.</span>datatype<span class="token punctuation">.</span>jsr310<span class="token punctuation">.</span>ser<span class="token punctuation">.</span>LocalDateTimeSerializer<span class="token punctuation">;</span>\n<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>\n</code></pre>\n<p>and adjust the getter (<code>getDateTime()</code>), setter (<code>setDateTime()</code>) and the type in the constructor (<code>public WeldLog(...)</code>) accordingly.</p>\n<p>Camel will be able to transform (&quot;<em>unmarshal</em>&quot;) this datatype from a string to a POJO after adding the definition to the above Spring XML:</p>\n<pre class="language-xml"><code class="language-xml">...\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>camelContext</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://camel.apache.org/schema/spring<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>dataFormats</span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>psi6000<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.integrators.PSI6000DataType<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>dataFormats</span><span class="token punctuation">></span></span>\n\t...\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>camelContext</span><span class="token punctuation">></span></span>\n</code></pre>\n<h3>Use unide.java binding for PPMP Java Objects</h3>\n<p>For eventually transforming the PPMP objects back to String (&quot;<em>marshal</em>&quot;), we can make use of the <a href="https://github.com/eclipse/unide.java">unide PPMP java binding</a>. Just adjust the dataFormats section of the Spring XML so that it reads:</p>\n<pre class="language-xml"><code class="language-xml">...\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>camelContext</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://camel.apache.org/schema/spring<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>dataFormats</span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>psi6000<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.integrators.PSI6000DataType<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>ppmpMeasurementMessage<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.ppmp.measurements.MeasurementsWrapper<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">moduleClassNames</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>com.fasterxml.jackson.datatype.jsr310.JavaTimeModule<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">disableFeatures</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>WRITE_DATES_AS_TIMESTAMPS<span class="token punctuation">"</span></span> \n\t\t\t<span class="token attr-name">include</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>NON_NULL<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>ppmpProcessMessage<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.ppmp.process.ProcessWrapper<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">moduleClassNames</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>com.fasterxml.jackson.datatype.jsr310.JavaTimeModule<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">disableFeatures</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>WRITE_DATES_AS_TIMESTAMPS<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">include</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>NON_NULL<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>dataFormats</span><span class="token punctuation">></span></span>\n\t...\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>camelContext</span><span class="token punctuation">></span></span>\n</code></pre>\n<h3>Create the Workflow</h3>\n<p>In order to better structure data flow, we use multiple <code>&lt;route&gt;</code>-s: one for retrieving the data and two more after the split of the payload. They are connected via the virtual camel protocol &quot;<em>direct</em>&quot;. In the following Spring XML, you can also find some <code>&lt;log&gt;</code> points and additional steps to set http header (<code>&lt;setHeader&gt;</code>) for posting to the unide server:</p>\n<pre class="language-xml"><code class="language-xml"><span class="token prolog">&lt;?xml version="1.0" encoding="UTF-8"?></span>\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>beans</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.springframework.org/schema/beans<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xmlns:</span>xsi</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.w3.org/2001/XMLSchema-instance<span class="token punctuation">"</span></span> <span class="token attr-name"><span class="token namespace">xmlns:</span>camel</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://camel.apache.org/schema/spring<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xmlns:</span>util</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.springframework.org/schema/util<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xsi:</span>schemaLocation</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.springframework.org/schema/util\n\thttp://www.springframework.org/schema/util/spring-util.xsd \n\thttp://www.springframework.org/schema/beans\n    http://www.springframework.org/schema/beans/spring-beans.xsd\n    http://camel.apache.org/schema/spring\n    http://camel.apache.org/schema/spring/camel-spring.xsd<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>bean</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>psi6000-to-ppmp<span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.integrators.PSI6000<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>bean</span><span class="token punctuation">></span></span>\n\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>camelContext</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://camel.apache.org/schema/spring<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>dataFormats</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>psi6000<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.integrators.PSI6000DataType<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>ppmpMeasurementMessage<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.ppmp.measurements.MeasurementsWrapper<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">moduleClassNames</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>com.fasterxml.jackson.datatype.jsr310.JavaTimeModule<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">disableFeatures</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>WRITE_DATES_AS_TIMESTAMPS<span class="token punctuation">"</span></span> <span class="token attr-name">include</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>NON_NULL<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>ppmpProcessMessage<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.ppmp.process.ProcessWrapper<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">moduleClassNames</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>com.fasterxml.jackson.datatype.jsr310.JavaTimeModule<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">disableFeatures</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>WRITE_DATES_AS_TIMESTAMPS<span class="token punctuation">"</span></span> <span class="token attr-name">include</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>NON_NULL<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>dataFormats</span><span class="token punctuation">></span></span>\n\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>route</span> <span class="token attr-name">autoStartup</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>true<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>from</span>\n\t\t\t\t<span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>mqtt://psi6000?host=tcp://192.168.123.135:1883<span class="token entity" title="&amp;">&amp;amp;</span>subscribeTopicName=PSI6000//PROCESS/PPMP/PROCESS<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>unmarshal</span> <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>psi6000<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>bean</span> <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>psi6000-to-ppmp<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setHeader</span> <span class="token attr-name">headerName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Content-Type<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>constant</span><span class="token punctuation">></span></span>application/json; charset=utf-8<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>constant</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setHeader</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setHeader</span> <span class="token attr-name">headerName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>CamelHttpMethod<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>constant</span><span class="token punctuation">></span></span>POST<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>constant</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setHeader</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>multicast</span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>to</span> <span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>direct:measurement<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>to</span> <span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>direct:process<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>multicast</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>done<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setBody</span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>simple</span><span class="token punctuation">></span></span>{"result": true }<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>simple</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setBody</span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>route</span><span class="token punctuation">></span></span>\n\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>route</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>from</span> <span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>direct:measurement<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setBody</span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>simple</span><span class="token punctuation">></span></span>${body[0]}<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>simple</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setBody</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>deviceId measurement: ${body.device.deviceID}<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>marshal</span> <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>ppmpMeasurementMessage<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>sending measurement<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setHeader</span> <span class="token attr-name">headerName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Content-Length<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>simple</span><span class="token punctuation">></span></span>body.length<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>simple</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setHeader</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>to</span>\n\t\t\t\t<span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>jetty:http://unide.eclipse.org:8080/rest/v2/measurement?bridgeEndpoint=true<span class="token entity" title="&amp;">&amp;amp;</span>throwExceptionOnFailure=true<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>measurement sent<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>route</span><span class="token punctuation">></span></span>\n\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>route</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>from</span> <span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>direct:process<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setBody</span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>simple</span><span class="token punctuation">></span></span>${body[1]}<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>simple</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setBody</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>deviceId process: ${body.device.deviceID}<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>marshal</span> <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>ppmpProcessMessage<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>sending process<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setHeader</span> <span class="token attr-name">headerName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Content-Length<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>simple</span><span class="token punctuation">></span></span>body.length<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>simple</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setHeader</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>to</span>\n\t\t\t\t<span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>jetty:http://unide.eclipse.org:8080/rest/v2/process?bridgeEndpoint=true<span class="token entity" title="&amp;">&amp;amp;</span>throwExceptionOnFailure=true<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>process sent<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>route</span><span class="token punctuation">></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>camelContext</span><span class="token punctuation">></span></span>\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>beans</span><span class="token punctuation">></span></span>\n</code></pre>\n<p>You might have noticed that we have not yet discussed one important item in this workflow: how do we actually transform the payload from one format to another?</p>\n<h3>Transforming from PSI 6000 POJO to PPMP POJOs</h3>\n<p>One thing that we\'ll hardwire as java code is the transformation from the source to the target structure. The same functionality could be achieved with scripting components (e.g. <a href="http://camel.apache.org/groovy.html">groovy</a>, but that would be less powerful and worse performance. Since we don\'t expect the format to change but mostly the workflow or endpoints, implementing a java bean is not too much effort. Here\'s how:<br>\nApache Camel offers a <code>Processor</code> interface that can be used to override the <code>process()</code> function. This function receives the complete message (<code>exchange</code>) and can modify it in any way. Since we have created the PSI 6000 Java Object already and want to produce PPMP java objects, the logic is mostly about creating the child objects and wiring the suitable getter to corresponding setter.</p>\n<pre class="language-java"><code class="language-java"><span class="token keyword">package</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>integrators<span class="token punctuation">;</span>\n\n<span class="token keyword">import</span> java<span class="token punctuation">.</span>time<span class="token punctuation">.</span>OffsetDateTime<span class="token punctuation">;</span>\n<span class="token keyword">import</span> java<span class="token punctuation">.</span>time<span class="token punctuation">.</span>ZoneOffset<span class="token punctuation">;</span>\n<span class="token keyword">import</span> java<span class="token punctuation">.</span>util<span class="token punctuation">.</span>Arrays<span class="token punctuation">;</span>\n<span class="token keyword">import</span> java<span class="token punctuation">.</span>util<span class="token punctuation">.</span>LinkedList<span class="token punctuation">;</span>\n<span class="token keyword">import</span> java<span class="token punctuation">.</span>util<span class="token punctuation">.</span>List<span class="token punctuation">;</span>\n\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>apache<span class="token punctuation">.</span>camel<span class="token punctuation">.</span>Exchange<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>apache<span class="token punctuation">.</span>camel<span class="token punctuation">.</span>Message<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>apache<span class="token punctuation">.</span>camel<span class="token punctuation">.</span>Processor<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>commons<span class="token punctuation">.</span>Device<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>commons<span class="token punctuation">.</span>MetaData<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>MeasurementsWrapper<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Process<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>ProcessWrapper<span class="token punctuation">;</span>\n\n<span class="token keyword">import</span> com<span class="token punctuation">.</span>fasterxml<span class="token punctuation">.</span>jackson<span class="token punctuation">.</span>core<span class="token punctuation">.</span>JsonProcessingException<span class="token punctuation">;</span>\n\n<span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">PSI6000</span> <span class="token keyword">implements</span> <span class="token class-name">Processor</span> <span class="token punctuation">{</span>\n\n\t<span class="token keyword">public</span> <span class="token function">PSI6000</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span><span class="token punctuation">}</span>\n\n\t<span class="token keyword">private</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>SeriesMap <span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>\n\t\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>SeriesMap map<span class="token punctuation">,</span> String name<span class="token punctuation">,</span> Number value<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\t<span class="token keyword">if</span> <span class="token punctuation">(</span>value <span class="token operator">!=</span> null<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\t\tmap<span class="token punctuation">.</span><span class="token function">setSeriesValue</span><span class="token punctuation">(</span>name<span class="token punctuation">,</span> Arrays<span class="token punctuation">.</span><span class="token function">asList</span><span class="token punctuation">(</span>value<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token punctuation">}</span>\n\t\t<span class="token keyword">return</span> map<span class="token punctuation">;</span>\n\t<span class="token punctuation">}</span>\n\n\t<span class="token annotation punctuation">@Override</span>\n\t<span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">process</span><span class="token punctuation">(</span>Exchange exchange<span class="token punctuation">)</span> <span class="token keyword">throws</span> JsonProcessingException<span class="token punctuation">,</span> Exception <span class="token punctuation">{</span>\n\t\tMessage msg <span class="token operator">=</span> exchange<span class="token punctuation">.</span><span class="token function">getIn</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tPSI6000DataType doc <span class="token operator">=</span> msg<span class="token punctuation">.</span><span class="token function">getBody</span><span class="token punctuation">(</span>PSI6000DataType<span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\tObject <span class="token punctuation">[</span><span class="token punctuation">]</span>bundle <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Object</span><span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span><span class="token punctuation">;</span>\n\t\tbundle<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span>       <span class="token operator">=</span> <span class="token function">transformMeasurement</span><span class="token punctuation">(</span>doc<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tbundle<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span>       <span class="token operator">=</span> <span class="token function">transformProcess</span><span class="token punctuation">(</span>doc<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tmsg<span class="token punctuation">.</span><span class="token function">setBody</span><span class="token punctuation">(</span>bundle<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\texchange<span class="token punctuation">.</span><span class="token function">setOut</span><span class="token punctuation">(</span>msg<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t<span class="token punctuation">}</span>\n\n\t<span class="token keyword">private</span> <span class="token keyword">void</span> <span class="token function">setSpotName</span><span class="token punctuation">(</span>Device device<span class="token punctuation">,</span> WeldLog wl<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\tString spotName <span class="token operator">=</span> wl<span class="token punctuation">.</span><span class="token function">getSpotName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token keyword">if</span> <span class="token punctuation">(</span>spotName <span class="token operator">!=</span> null <span class="token operator">&amp;&amp;</span> spotName<span class="token punctuation">.</span><span class="token function">length</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">></span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\t\tMetaData md <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">MetaData</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\tmd<span class="token punctuation">.</span><span class="token function">setMetaDataValue</span><span class="token punctuation">(</span><span class="token string">"spotName"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSpotName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\tdevice<span class="token punctuation">.</span><span class="token function">setMetaData</span><span class="token punctuation">(</span>md<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token punctuation">}</span>\n\t<span class="token punctuation">}</span>\n\n\t<span class="token keyword">private</span> ProcessWrapper <span class="token function">transformProcess</span><span class="token punctuation">(</span>PSI6000DataType doc<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\tProcessWrapper wrapper <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ProcessWrapper</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tWeldLog wl <span class="token operator">=</span> doc<span class="token punctuation">.</span><span class="token function">getMessage</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getWeldLog</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tOffsetDateTime odt <span class="token operator">=</span> OffsetDateTime<span class="token punctuation">.</span><span class="token function">of</span><span class="token punctuation">(</span>wl<span class="token punctuation">.</span><span class="token function">getDateTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> ZoneOffset<span class="token punctuation">.</span>UTC<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">// device</span>\n\t\tDevice device <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Device</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tdevice<span class="token punctuation">.</span><span class="token function">setDeviceID</span><span class="token punctuation">(</span>doc<span class="token punctuation">.</span><span class="token function">getMessage</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getWeldLog</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getTimerName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">setSpotName</span><span class="token punctuation">(</span>device<span class="token punctuation">,</span> wl<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\twrapper<span class="token punctuation">.</span><span class="token function">setDevice</span><span class="token punctuation">(</span>device<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">// part</span>\n\t\tString partId <span class="token operator">=</span> wl<span class="token punctuation">.</span><span class="token function">getPartIdentString</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token keyword">if</span> <span class="token punctuation">(</span>partId <span class="token operator">!=</span> null <span class="token operator">&amp;&amp;</span> partId<span class="token punctuation">.</span><span class="token function">length</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">></span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Part part <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Part</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\tpart<span class="token punctuation">.</span><span class="token function">setPartID</span><span class="token punctuation">(</span>partId<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\twrapper<span class="token punctuation">.</span><span class="token function">setPart</span><span class="token punctuation">(</span>part<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token punctuation">}</span>\n\n\t\t<span class="token comment">// process</span>\n\t\tProcess process <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Process</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tprocess<span class="token punctuation">.</span><span class="token function">setTimestamp</span><span class="token punctuation">(</span>odt<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tprocess<span class="token punctuation">.</span><span class="token function">setExternalProcessId</span><span class="token punctuation">(</span>String<span class="token punctuation">.</span><span class="token function">valueOf</span><span class="token punctuation">(</span>wl<span class="token punctuation">.</span><span class="token function">getProtRecordID</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\twrapper<span class="token punctuation">.</span><span class="token function">setProcess</span><span class="token punctuation">(</span>process<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">// measurements</span>\n\t\tList<span class="token operator">&lt;</span>org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Measurements<span class="token operator">></span> measurements <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">LinkedList</span><span class="token operator">&lt;</span>org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Measurements<span class="token operator">></span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Measurements measurement <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Measurements</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\n\t\tmeasurement<span class="token punctuation">.</span><span class="token function">setTimestamp</span><span class="token punctuation">(</span>odt<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">//values</span>\n\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>SeriesMap seriesMap <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>SeriesMap</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tseriesMap<span class="token punctuation">.</span><span class="token function">setSeriesValue</span><span class="token punctuation">(</span><span class="token string">"curentCurve"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getCurrentCurve</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tseriesMap<span class="token punctuation">.</span><span class="token function">setSeriesValue</span><span class="token punctuation">(</span><span class="token string">"voltageCurve"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getVoltageCurve</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tseriesMap<span class="token punctuation">.</span><span class="token function">setSeriesValue</span><span class="token punctuation">(</span><span class="token string">"forceCurve"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getForceCurve</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\n\t\tmeasurement<span class="token punctuation">.</span><span class="token function">setSeriesMap</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tmeasurements<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span>measurement<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\twrapper<span class="token punctuation">.</span><span class="token function">setMeasurements</span><span class="token punctuation">(</span>measurements<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\n\t\t<span class="token keyword">return</span> wrapper<span class="token punctuation">;</span>\n\t<span class="token punctuation">}</span>\n\n\t<span class="token keyword">private</span> MeasurementsWrapper <span class="token function">transformMeasurement</span><span class="token punctuation">(</span>PSI6000DataType doc<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\tMeasurementsWrapper wrapper <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">MeasurementsWrapper</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tWeldLog wl <span class="token operator">=</span> doc<span class="token punctuation">.</span><span class="token function">getMessage</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getWeldLog</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">// device</span>\n\t\tDevice device <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Device</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tdevice<span class="token punctuation">.</span><span class="token function">setDeviceID</span><span class="token punctuation">(</span>doc<span class="token punctuation">.</span><span class="token function">getMessage</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getWeldLog</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getTimerName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">setSpotName</span><span class="token punctuation">(</span>device<span class="token punctuation">,</span> wl<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\twrapper<span class="token punctuation">.</span><span class="token function">setDevice</span><span class="token punctuation">(</span>device<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">// part</span>\n\t\tString partId <span class="token operator">=</span> wl<span class="token punctuation">.</span><span class="token function">getPartIdentString</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token keyword">if</span> <span class="token punctuation">(</span>partId <span class="token operator">!=</span> null <span class="token operator">&amp;&amp;</span> partId<span class="token punctuation">.</span><span class="token function">length</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">></span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>Part part <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>Part</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\tpart<span class="token punctuation">.</span><span class="token function">setPartID</span><span class="token punctuation">(</span>partId<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\twrapper<span class="token punctuation">.</span><span class="token function">setPart</span><span class="token punctuation">(</span>part<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token punctuation">}</span>\n\n\t\t<span class="token comment">// measurements</span>\n\t\tList<span class="token operator">&lt;</span>org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>Measurements<span class="token operator">></span> measurements <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">LinkedList</span><span class="token operator">&lt;</span>org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>Measurements<span class="token operator">></span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>Measurements measurement <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>Measurements</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\tmeasurement<span class="token punctuation">.</span><span class="token function">setTimestamp</span><span class="token punctuation">(</span>OffsetDateTime<span class="token punctuation">.</span><span class="token function">of</span><span class="token punctuation">(</span>wl<span class="token punctuation">.</span><span class="token function">getDateTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> ZoneOffset<span class="token punctuation">.</span>UTC<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">// values</span>\n\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>SeriesMap seriesMap <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>SeriesMap</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tseriesMap<span class="token punctuation">.</span><span class="token function">setSeriesValue</span><span class="token punctuation">(</span><span class="token string">"$_time"</span><span class="token punctuation">,</span> Arrays<span class="token punctuation">.</span><span class="token function">asList</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"wear"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWear</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"wearPerCent"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWearPerCent</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"monitorState"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getMonitorState</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regulationState"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegulationState</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"measureState"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getMeasureState</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"powerState"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPowerState</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sequenceState"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSequenceState</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sequenceStateAdd"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSequenceStateAdd</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sequenceRepeat"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSequenceRepeat</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"monitorMode"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getMonitorMode</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iDemandStd"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIDemandStd</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"ilsts"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIlsts</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regulationStd"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegulationStd</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iDemand1"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIDemand1</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iActual1"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIActual1</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regulation1"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegulation1</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iDemand2"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIDemand2</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iActual2"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIActual2</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regulation2"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegulation2</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iDemand3"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIDemand3</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iActual3"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIActual3</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regulation3"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegulation3</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"phaStd"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPhaStd</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"pha1"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPha1</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"pha2"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPha2</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"pha3"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPha3</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"t_iDemandStd"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIDemandStd</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"tActualStd"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getTActualStd</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token comment">// addMeasurementPoint(seriesMap, "partIdentString",</span>\n\t\t<span class="token comment">// wl.getPartIdentString());</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"tipDressCounter"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getTipDressCounter</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"electrodeNo"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getElectrodeNo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgForceSetPoint"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgForceSetPoint</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgSheetThicknessSetPoint"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgSheetThicknessSetPoint</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgSagGpSetPoint"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgSagGpSetPoint</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgSpotWithSg"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgSpotWithSg</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgMotorCurrent"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgMotorCurrent</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgMotorTemp"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgMotorTemp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgForce"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgForce</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgSheetThickness"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgSheetThickness</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgSagGp"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgSagGp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgSagGc"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgSagGc</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regUsrUspJunction"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegUsrUspJunction</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regUsrUspMax"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegUsrUspMax</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regSpotDiaActual"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegSpotDiaActual</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regSpotDiaMinDemand"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegSpotDiaMinDemand</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regSplashTime"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegSplashTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"nuggetDiameter"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getNuggetDiameter</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"usp"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUsp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"normingTime"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getNormingTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regulationStartTime"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegulationStartTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"returnToConstantCurrent"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getReturnToConstantCurrent</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"declineUsp"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getDeclineUsp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"offsetUsp"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getOffsetUsp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"currentFactor"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getCurrentFactor</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"triggerTime"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getTriggerTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"xqrMeasuringActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getXqrMeasuringActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"xqrRegulationActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getXqrRegulationActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"xqrMonitoringActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getXqrMonitoringActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"xqrWeldTimeProlongationActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getXqrWeldTimeProlongationActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"voltageActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getVoltageActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"voltageRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getVoltageRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"currentActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getCurrentActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"currentReferenceValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getCurrentReferenceValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldTimeActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldTimeActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldTimeRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldTimeRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"energyActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getEnergyActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"energyRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getEnergyRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"powerActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPowerActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"powerRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPowerRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"resistanceActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getResistanceActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"resistanceRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getResistanceRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"pulseWidthActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPulseWidthActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"pulseWidthRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPulseWidthRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"stabilisationFactorActValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getStabilisationFactorActValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"stabilisationFactorRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getStabilisationFactorRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"thresholdStabilisationFactor"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getThresholdStabilisationFactor</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"wldEffectStabilisationFactor"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWldEffectStabilisationFactor</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uipActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUipActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uipRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUipRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirExpulsionTime"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirExpulsionTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirMeasuringActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirMeasuringActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirRegulationActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirRegulationActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirMonitoringActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirMonitoringActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirWeldTimeProlongationActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirWeldTimeProlongationActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirQStoppRefCntValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirQStoppRefCntValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirQStoppActCntValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirQStoppActCntValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirUipUpperTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirUipUpperTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirUipLowerTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirUipLowerTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirUipCondTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirUipCondTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirPsfLowerTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirPsfLowerTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirPsfCondTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirPsfCondTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_1"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP161</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_2"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP162</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_3"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP163</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_4"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP164</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_5"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP165</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP32_6"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP326</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_7"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP167</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_8"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP168</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_9"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP169</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_10"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1610</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_11"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1611</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP32_12"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP3212</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_13"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1613</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_14"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1614</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_15"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1615</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_16"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1616</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_17"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1617</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP32_18"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP3218</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uipMonCondUpperTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUipMonCondUpperTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfMonUpperTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfMonUpperTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfMonLowerTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfMonLowerTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfMonCondUpperTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfMonCondUpperTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfMonCondLowerTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfMonCondLowerTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfMeasuringActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfMeasuringActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"xqrModeOff"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getXqrModeOff</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"reweldActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getReweldActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token comment">// addMeasurementPoint(seriesMap, "weldspotRefIdent",</span>\n\t\t<span class="token comment">// wl.getWeldspotRefIdent());</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sg_Torque_Gp"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgTorqueGp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sg_Force_Corr"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgForceCorr</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sg_Weldspot_Geo_Wear"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgWeldspotGeoWear</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sg_Wear_Length"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgWearLength</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sg_Beam_UpArching"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgBeamUpArching</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\tmeasurement<span class="token punctuation">.</span><span class="token function">setSeriesMap</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tmeasurements<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span>measurement<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\twrapper<span class="token punctuation">.</span><span class="token function">setMeasurements</span><span class="token punctuation">(</span>measurements<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token keyword">return</span> wrapper<span class="token punctuation">;</span>\n\t<span class="token punctuation">}</span>\n<span class="token punctuation">}</span>\n</code></pre>\n<h1>Summary</h1>\n<p>It takes a while to understand the involved software components. Yet, once the set up is running, it gets much easier to adapt it to another Use Case. And another. The pattern of wiring protocols and transforming the payload is very similar. The involved frameworks are powerful enough to support many Use Cases. This article is supposed to show that there are simple possibilities to transform transport protocols and payloads, so that you can focus on addressing functional challenges.</p>\n',url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:"2018-02-11T00:00:00.000Z",tags:["use cases"],prev:{url:"/blog/2018/1/26/New-website",title:"Updated Website"},next:{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"Transform-PPMP-with-camel",content:'<p>The Production Performance Management Protocol (PPMP) is a simple structure to send out machine data. Unide, as its hosting project, is supposed to provide exemplary implementations.</p>\n<p>We have already published <a href="https://github.com/eclipse/unide/tree/master/servers/rest">a REST server</a>, <a href="https://github.com/eclipse/unide.java">java-</a> and <a href="https://github.com/eclipse/unide.python">python-</a> bindings and an <a href="https://github.com/eclipse/unide/tree/master/clients/binsa">html5-client</a>. But how are these implementations used in real life?</p>\n<h1>The Challenge</h1>\n<div class="card figure">\n\t<div class="card-image">\n\t\t<figure class="image">\n\t\t\t<img alt="Welding robots" title="BMW plant, spot welding" src="/unide/images/blog/Transform-PPMP-with-camel-welding.jpg"></img>\n\t\t</figure>\n\t</div>\n\t<div class="card-content">\n\t\tBMW plant in Leipzig, Germany: Spot welding <a href="https://creativecommons.org/licenses/by-sa/2.0/de/deed.en">(CC BY-SA 2.0 DE)</a>\n\t</div>\n</div>\n<p>In the automotive industry, <a href="https://en.wikipedia.org/wiki/Spot_welding">welding spots</a> are crucial for the quality of a car and the security of the passenger. In modern production lines, hundreds of welding spots have to be precisely set in a single shift. In order to reduce product rework, scrap, destructible tests and machine downtime, the quality should be monitored consistently. That\'s what special welding controller in machines do. Unfortunately, this data is often only used locally, for a short period of time and in proprietary formats. Just enough to determine the immediate process outcome. In that case, further opportunities of analysing the information are not taken. With the continuous increase in complexity, price and time pressure, the demand for further processing and optimization grows. The data could be used to prevent or even predict maintenance or just store the data in long time archives in case of legal disputes.</p>\n<p>One prerequisite for such connectivity is the hardware and its connectivity. Older generations of welding controllers can only be accessed with proprietary stacks (like the <a href="https://www.boschrexroth.com/en/xc/products/product-groups/welding-technology/controllers-with-power-section/mf-system-psi6000/index">PSI 6000</a>) whereas newer generations (like the <a href="https://www.boschrexroth.com/en/xc/company/press/index2-29696">PRC 7000</a>) are much more flexible in terms of networking and communication. In general, there are two aspects that make up the communication: the transport protocol and the structure of the payload. This is similar to our daily life: if you want to chat with your friends, you need to use the same messenger or communication technology (phone, email) and you need speak the same language (English, German etc.).</p>\n<p>In the following sections, let\'s assume we need to transform the transport protocol as well as the payload. The data is generated by a welding controller and should be passed to <a href="https://unide.eclipse.org">the unide REST server</a> for persisting it in a dedicated timeseries database.</p>\n<h1>The Approach</h1>\n<p>We want to find a way to receive the data, transform it into PPMP and store it into a database in our <a href="https://unide.eclipse.org">REST Server</a>.</p>\n<p>First, we need to understand which interfaces the controller has, which communication protocol is used, and how the payload would be interpreted. In the case of the PSI 6000, it was configured to publish the quality data to a <a href="https://de.wikipedia.org/wiki/MQTT">mqtt</a> message broker (here: <a href="https://mosquitto.org/">Eclipse mosquitto</a>). We don\'t have an extensive documentation of the payload, but we can look at samples of it (some Curve data shortened at the end):</p>\n<pre class="language-json"><code class="language-json"><span class="token punctuation">{</span>\n  <span class="token property">"Name"</span><span class="token operator">:</span> <span class="token string">"WeldLog/UIR Testrack 24/"</span><span class="token punctuation">,</span>\n  <span class="token property">"WeldTimer"</span><span class="token operator">:</span> <span class="token string">"UIR Testrack 24"</span><span class="token punctuation">,</span>\n  <span class="token property">"TimeStamp"</span><span class="token operator">:</span> <span class="token string">"2018-01-17T10:41:00.0008436+01:00"</span><span class="token punctuation">,</span>\n  <span class="token property">"OutputFormat"</span><span class="token operator">:</span> <span class="token string">"JSON"</span><span class="token punctuation">,</span>\n  <span class="token property">"Message"</span><span class="token operator">:</span> <span class="token punctuation">{</span>\n    <span class="token property">"WeldLog"</span><span class="token operator">:</span> <span class="token punctuation">{</span>\n      <span class="token property">"protRecord_ID"</span><span class="token operator">:</span> <span class="token number">734827</span><span class="token punctuation">,</span>\n      <span class="token property">"dateTime"</span><span class="token operator">:</span> <span class="token string">"2018-01-15T16:52:32.09"</span><span class="token punctuation">,</span>\n      <span class="token property">"timerName"</span><span class="token operator">:</span> <span class="token string">"UIR Testrack 24"</span><span class="token punctuation">,</span>\n      <span class="token property">"progNo"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"spotName"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span>\n      <span class="token property">"wear"</span><span class="token operator">:</span> <span class="token number">8312480</span><span class="token punctuation">,</span>\n      <span class="token property">"wearPerCent"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"monitorState"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regulationState"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"measureState"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"powerState"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"sequenceState"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"sequenceStateAdd"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"sequenceRepeat"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"monitorMode"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>\n      <span class="token property">"iDemandStd"</span><span class="token operator">:</span> <span class="token number">3</span><span class="token punctuation">,</span>\n      <span class="token property">"ilsts"</span><span class="token operator">:</span> <span class="token number">13.14</span><span class="token punctuation">,</span>\n      <span class="token property">"regulationStd"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"iDemand1"</span><span class="token operator">:</span> <span class="token number">3</span><span class="token punctuation">,</span>\n      <span class="token property">"iActual1"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regulation1"</span><span class="token operator">:</span> <span class="token number">4</span><span class="token punctuation">,</span>\n      <span class="token property">"iDemand2"</span><span class="token operator">:</span> <span class="token number">3</span><span class="token punctuation">,</span>\n      <span class="token property">"iActual2"</span><span class="token operator">:</span> <span class="token number">13.16</span><span class="token punctuation">,</span>\n      <span class="token property">"regulation2"</span><span class="token operator">:</span> <span class="token number">4</span><span class="token punctuation">,</span>\n      <span class="token property">"iDemand3"</span><span class="token operator">:</span> <span class="token number">3</span><span class="token punctuation">,</span>\n      <span class="token property">"iActual3"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regulation3"</span><span class="token operator">:</span> <span class="token number">4</span><span class="token punctuation">,</span>\n      <span class="token property">"phaStd"</span><span class="token operator">:</span> <span class="token number">24.96</span><span class="token punctuation">,</span>\n      <span class="token property">"pha1"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"pha2"</span><span class="token operator">:</span> <span class="token number">24.64</span><span class="token punctuation">,</span>\n      <span class="token property">"pha3"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"t_iDemandStd"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"tActualStd"</span><span class="token operator">:</span> <span class="token number">878</span><span class="token punctuation">,</span>\n      <span class="token property">"partIdentString"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span>\n      <span class="token property">"tipDressCounter"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"electrodeNo"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"sgForceSetPoint"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgSheetThicknessSetPoint"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgSagGpSetPoint"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgSpotWithSg"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgMotorCurrent"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgMotorTemp"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgForce"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgSheetThickness"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgSagGp"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sgSagGc"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"regUsrUspJunction"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regUsrUspMax"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regSpotDiaActual"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regSpotDiaMinDemand"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regSplashTime"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"nuggetDiameter"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"usp"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"normingTime"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"regulationStartTime"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"returnToConstantCurrent"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"declineUsp"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"offsetUsp"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"currentFactor"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"triggerTime"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"xqrMeasuringActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"xqrRegulationActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"xqrMonitoringActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"xqrWeldTimeProlongationActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"voltageActualValue"</span><span class="token operator">:</span> <span class="token number">0.03</span><span class="token punctuation">,</span>\n      <span class="token property">"voltageRefValue"</span><span class="token operator">:</span> <span class="token number">0.03</span><span class="token punctuation">,</span>\n      <span class="token property">"currentActualValue"</span><span class="token operator">:</span> <span class="token number">13.17</span><span class="token punctuation">,</span>\n      <span class="token property">"currentReferenceValue"</span><span class="token operator">:</span> <span class="token number">13.95</span><span class="token punctuation">,</span>\n      <span class="token property">"weldTimeActualValue"</span><span class="token operator">:</span> <span class="token number">876</span><span class="token punctuation">,</span>\n      <span class="token property">"weldTimeRefValue"</span><span class="token operator">:</span> <span class="token number">760</span><span class="token punctuation">,</span>\n      <span class="token property">"energyActualValue"</span><span class="token operator">:</span> <span class="token number">395.1261</span><span class="token punctuation">,</span>\n      <span class="token property">"energyRefValue"</span><span class="token operator">:</span> <span class="token number">342</span><span class="token punctuation">,</span>\n      <span class="token property">"powerActualValue"</span><span class="token operator">:</span> <span class="token number">395.133</span><span class="token punctuation">,</span>\n      <span class="token property">"powerRefValue"</span><span class="token operator">:</span> <span class="token number">449.35</span><span class="token punctuation">,</span>\n      <span class="token property">"resistanceActualValue"</span><span class="token operator">:</span> <span class="token number">2</span><span class="token punctuation">,</span>\n      <span class="token property">"resistanceRefValue"</span><span class="token operator">:</span> <span class="token number">2</span><span class="token punctuation">,</span>\n      <span class="token property">"pulseWidthActualValue"</span><span class="token operator">:</span> <span class="token number">25.02</span><span class="token punctuation">,</span>\n      <span class="token property">"pulseWidthRefValue"</span><span class="token operator">:</span> <span class="token number">26.19</span><span class="token punctuation">,</span>\n      <span class="token property">"stabilisationFactorActValue"</span><span class="token operator">:</span> <span class="token number">55</span><span class="token punctuation">,</span>\n      <span class="token property">"stabilisationFactorRefValue"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"thresholdStabilisationFactor"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"wldEffectStabilisationFactor"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"uipActualValue"</span><span class="token operator">:</span> <span class="token number">126</span><span class="token punctuation">,</span>\n      <span class="token property">"uipRefValue"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"uirExpulsionTime"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"uirMeasuringActive"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>\n      <span class="token property">"uirRegulationActive"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>\n      <span class="token property">"uirMonitoringActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"uirWeldTimeProlongationActive"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>\n      <span class="token property">"uirQStoppRefCntValue"</span><span class="token operator">:</span> <span class="token number">9</span><span class="token punctuation">,</span>\n      <span class="token property">"uirQStoppActCntValue"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"uirUipUpperTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"uirUipLowerTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"uirUipCondTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"uirPsfLowerTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"uirPsfCondTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_1"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_2"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_3"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_4"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_5"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP32_6"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_7"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_8"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_9"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_10"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_11"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP32_12"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_13"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_14"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_15"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_16"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP16_17"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"weldSpotCustDataP32_18"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"uipMonCondUpperTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfActualValue"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfRefValue"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfMonUpperTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfMonLowerTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfMonCondUpperTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfMonCondLowerTol"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>\n      <span class="token property">"fqfMeasuringActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"xqrModeOff"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"reweldActive"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>\n      <span class="token property">"weldspotRefIdent"</span><span class="token operator">:</span> <span class="token string">"UIR_PART"</span><span class="token punctuation">,</span>\n      <span class="token property">"sg_Torque_Gp"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sg_Force_Corr"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sg_Weldspot_Geo_Wear"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sg_Wear_Length"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"sg_Beam_UpArching"</span><span class="token operator">:</span> <span class="token null">null</span><span class="token punctuation">,</span>\n      <span class="token property">"CurrentCurve"</span><span class="token operator">:</span> <span class="token punctuation">[</span>\n        <span class="token number">11621</span><span class="token punctuation">,</span>\n        <span class="token number">15434</span><span class="token punctuation">,</span>\n        ...\n      <span class="token punctuation">]</span><span class="token punctuation">,</span>\n      <span class="token property">"VoltageCurve"</span><span class="token operator">:</span> <span class="token punctuation">[</span>\n        <span class="token number">39</span><span class="token punctuation">,</span>\n        <span class="token number">29</span><span class="token punctuation">,</span>\n        ...\n      <span class="token punctuation">]</span><span class="token punctuation">,</span>\n      <span class="token property">"ForceCurve"</span><span class="token operator">:</span> <span class="token punctuation">[</span>\n        <span class="token number">49</span><span class="token punctuation">,</span>\n        <span class="token number">49</span><span class="token punctuation">,</span>\n        ...\n      <span class="token punctuation">]</span>\n    <span class="token punctuation">}</span>\n  <span class="token punctuation">}</span>\n<span class="token punctuation">}</span>\n</code></pre>\n<p>That\'s already very detailed, but it\'s unclear which device / welding spot the data comes from and what the timing of the curves was. Let\'s get some more structure in with PPMP!</p>\n<p>In PPMP, we have the option to differentiate between discrete manufacturing data (MES - part produced) by using the <a href="/unide/specification/measurement-message">measurement-message</a> and detailed process data by using the <a href="https://www.eclipse.org/unide/specification/process-message">process-message</a>. In the welding payload, that\'s all combined in one message. So we also want to split this payload into two.</p>\n<h2>Introducing Apache Camel</h2>\n<div class="card figure is-pulled-left">\n\t<div class="card-image">\n\t\t<figure class="image">\n\t\t\t<img alt="Apache Camel" title="Apache Camel" src="/unide/images/blog/Transform-PPMP-with-camel-camel.png"></img>\n\t\t</figure>\n\t</div>\n\t<div class="card-content">\n\t\tApache Camel, <a href="https://www.apache.org/licenses/LICENSE-2.0">(Apache&nbsp;License&nbsp;2.0)</a>\n\t</div>\n</div>\n<p><a href="https://en.wikipedia.org/wiki/Apache_Camel">Apache Camel</a> is a java-based Open Source framework, that can transform and route data. It supports most of the <a href="https://en.wikipedia.org/wiki/Enterprise_Integration_Patterns">Enterprise Integration Patterns</a> and hundreds(!) of <a href="http://camel.apache.org/components.html">connectors / components</a>. Think of it as an extensive transformation and workflow automation engine. In fact, it\'s so powerful and versatile, that it unfortunately doesn\'t come with a visual user interface or a plug-and-play installer. Luckily, for everyone who doesn\'t happen to be a java expert, there\'s also an xml configuration (via <a href="https://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/html/xsd-configuration.html">spring xml</a>). And that\'s mostly all we need!</p>\n<h2>Transforming the Communication Protocol</h2>\n<p>We will use Spring XML to configure Apache Camel. The workflow in Camel are called <code>&lt;routes&gt;</code>. So let\'s create a route that transforms our mqtt to REST protocol:</p>\n<pre class="language-xml"><code class="language-xml"><span class="token prolog">&lt;?xml version="1.0" encoding="UTF-8"?></span>\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>beans</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.springframework.org/schema/beans<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xmlns:</span>xsi</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.w3.org/2001/XMLSchema-instance<span class="token punctuation">"</span></span> <span class="token attr-name"><span class="token namespace">xmlns:</span>camel</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://camel.apache.org/schema/spring<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xmlns:</span>util</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.springframework.org/schema/util<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xsi:</span>schemaLocation</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.springframework.org/schema/util\n\thttp://www.springframework.org/schema/util/spring-util.xsd \n\thttp://www.springframework.org/schema/beans\n    http://www.springframework.org/schema/beans/spring-beans.xsd\n    http://camel.apache.org/schema/spring\n    http://camel.apache.org/schema/spring/camel-spring.xsd<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>camelContext</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://camel.apache.org/schema/spring<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>route</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>from</span>\n\t\t\t\t<span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>mqtt://psi6000?host=tcp://192.168.123.135:1883<span class="token entity" title="&amp;">&amp;amp;</span>subscribeTopicName=PSI6000//PROCESS/PPMP/PROCESS<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>to</span>\n\t\t\t\t<span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>jetty:http://unide.eclipse.org:8080/rest/v2/measurement?bridgeEndpoint=true<span class="token entity" title="&amp;">&amp;amp;</span>throwExceptionOnFailure=true<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>route</span><span class="token punctuation">></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>camelContext</span><span class="token punctuation">></span></span>\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>beans</span><span class="token punctuation">></span></span>\n</code></pre>\n<p>That\'s it! A <code>&lt;route&gt;</code> that reads<code>&lt;from&gt;</code> mqtt and forwards <code>&lt;to&gt;</code> http. Not so difficult, is it? We could use many of the other <a href="http://camel.apache.org/components.html">connectors / components</a> in the example above as well to transform from/to different protocols.</p>\n<p>But wait! The welding payload above was not PPMP. So we also need to normalize the payload.</p>\n<h2>Normalizing the Payload</h2>\n<p>Now that we can easily convert protocols, let\'s address the structure of the payload. Overall, we want to have a workflow that looks as described in the diagram below:</p>\n<div class="card figure">\n\t<div class="card-image">\n\t\t<figure class="image">\n\t\t\t<img alt="data workflow" title="data workflow" src="/unide/images/blog/Transform-PPMP-with-camel-1.svg"></img>\n\t\t</figure>\n\t</div>\n\t<div class="card-content">\n\t\tWorkflow to extract the data from controller, convert it and send the data to the cloud application\n\t</div>\n</div>\n<p>The extra steps here are:</p>\n<ol>\n<li>transform the PSI 6000 JSON String payload to a java object</li>\n<li>transform the PSI 6000 java object to two PPMP-java objects (<a href="/unide/specification/measurement-message">measurement-message</a> and <a href="https://www.eclipse.org/unide/specification/process-message">process-message</a>)</li>\n<li>split up the two PPMP objects</li>\n<li>route the objects individually</li>\n<li>transform each PPMP object back to a String</li>\n</ol>\n<h3>Create the PSI 6000 Java Object</h3>\n<p>Luckily, there are helpers for transforming json (or xml) to plain old java objects (POJOs). We are using <a href="http://www.jsonschema2pojo.org/">jsonschema2pojo</a> to convert the above json sample to POJOs with Jackson 2.x annotation. I name the resulting data type class <code>PSI6000DataType</code> and organize it in the package <code>org.eclipse.iot.unide.integrators</code>. Based on the given testdata, jsonschema2pojo cannot fully deduct all attribute types correctly. In order to allow floating point values, we would rename all <code>Integer</code> and <code>Object</code> types to <code>Number</code> in the WeldLog.java file. Also in the same file, we would change the type of the <code>dateTime</code> field from String to <code>LocalDateTime</code> to be more accurate:</p>\n<pre class="language-java"><code class="language-java"><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>\n<span class="token annotation punctuation">@JsonProperty</span><span class="token punctuation">(</span><span class="token string">"dateTime"</span><span class="token punctuation">)</span>\n<span class="token annotation punctuation">@JsonSerialize</span><span class="token punctuation">(</span>using <span class="token operator">=</span> LocalDateTimeSerializer<span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">)</span>\n<span class="token annotation punctuation">@JsonDeserialize</span><span class="token punctuation">(</span>using <span class="token operator">=</span> LocalDateTimeDeserializer<span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">)</span>\n<span class="token keyword">private</span> LocalDateTime dateTime<span class="token punctuation">;</span>\n<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>\n</code></pre>\n<p>For that, we also need to include the respective imports:</p>\n<pre class="language-java"><code class="language-java"><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>\n<span class="token keyword">import</span> com<span class="token punctuation">.</span>fasterxml<span class="token punctuation">.</span>jackson<span class="token punctuation">.</span>databind<span class="token punctuation">.</span>annotation<span class="token punctuation">.</span>JsonDeserialize<span class="token punctuation">;</span>\n<span class="token keyword">import</span> com<span class="token punctuation">.</span>fasterxml<span class="token punctuation">.</span>jackson<span class="token punctuation">.</span>databind<span class="token punctuation">.</span>annotation<span class="token punctuation">.</span>JsonSerialize<span class="token punctuation">;</span>\n<span class="token keyword">import</span> com<span class="token punctuation">.</span>fasterxml<span class="token punctuation">.</span>jackson<span class="token punctuation">.</span>datatype<span class="token punctuation">.</span>jsr310<span class="token punctuation">.</span>deser<span class="token punctuation">.</span>LocalDateTimeDeserializer<span class="token punctuation">;</span>\n<span class="token keyword">import</span> com<span class="token punctuation">.</span>fasterxml<span class="token punctuation">.</span>jackson<span class="token punctuation">.</span>datatype<span class="token punctuation">.</span>jsr310<span class="token punctuation">.</span>ser<span class="token punctuation">.</span>LocalDateTimeSerializer<span class="token punctuation">;</span>\n<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>\n</code></pre>\n<p>and adjust the getter (<code>getDateTime()</code>), setter (<code>setDateTime()</code>) and the type in the constructor (<code>public WeldLog(...)</code>) accordingly.</p>\n<p>Camel will be able to transform (&quot;<em>unmarshal</em>&quot;) this datatype from a string to a POJO after adding the definition to the above Spring XML:</p>\n<pre class="language-xml"><code class="language-xml">...\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>camelContext</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://camel.apache.org/schema/spring<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>dataFormats</span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>psi6000<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.integrators.PSI6000DataType<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>dataFormats</span><span class="token punctuation">></span></span>\n\t...\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>camelContext</span><span class="token punctuation">></span></span>\n</code></pre>\n<h3>Use unide.java binding for PPMP Java Objects</h3>\n<p>For eventually transforming the PPMP objects back to String (&quot;<em>marshal</em>&quot;), we can make use of the <a href="https://github.com/eclipse/unide.java">unide PPMP java binding</a>. Just adjust the dataFormats section of the Spring XML so that it reads:</p>\n<pre class="language-xml"><code class="language-xml">...\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>camelContext</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://camel.apache.org/schema/spring<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>dataFormats</span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>psi6000<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.integrators.PSI6000DataType<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>ppmpMeasurementMessage<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.ppmp.measurements.MeasurementsWrapper<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">moduleClassNames</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>com.fasterxml.jackson.datatype.jsr310.JavaTimeModule<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">disableFeatures</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>WRITE_DATES_AS_TIMESTAMPS<span class="token punctuation">"</span></span> \n\t\t\t<span class="token attr-name">include</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>NON_NULL<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>ppmpProcessMessage<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.ppmp.process.ProcessWrapper<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">moduleClassNames</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>com.fasterxml.jackson.datatype.jsr310.JavaTimeModule<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">disableFeatures</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>WRITE_DATES_AS_TIMESTAMPS<span class="token punctuation">"</span></span>\n\t\t\t<span class="token attr-name">include</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>NON_NULL<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>dataFormats</span><span class="token punctuation">></span></span>\n\t...\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>camelContext</span><span class="token punctuation">></span></span>\n</code></pre>\n<h3>Create the Workflow</h3>\n<p>In order to better structure data flow, we use multiple <code>&lt;route&gt;</code>-s: one for retrieving the data and two more after the split of the payload. They are connected via the virtual camel protocol &quot;<em>direct</em>&quot;. In the following Spring XML, you can also find some <code>&lt;log&gt;</code> points and additional steps to set http header (<code>&lt;setHeader&gt;</code>) for posting to the unide server:</p>\n<pre class="language-xml"><code class="language-xml"><span class="token prolog">&lt;?xml version="1.0" encoding="UTF-8"?></span>\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>beans</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.springframework.org/schema/beans<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xmlns:</span>xsi</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.w3.org/2001/XMLSchema-instance<span class="token punctuation">"</span></span> <span class="token attr-name"><span class="token namespace">xmlns:</span>camel</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://camel.apache.org/schema/spring<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xmlns:</span>util</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.springframework.org/schema/util<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xsi:</span>schemaLocation</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.springframework.org/schema/util\n\thttp://www.springframework.org/schema/util/spring-util.xsd \n\thttp://www.springframework.org/schema/beans\n    http://www.springframework.org/schema/beans/spring-beans.xsd\n    http://camel.apache.org/schema/spring\n    http://camel.apache.org/schema/spring/camel-spring.xsd<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>bean</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>psi6000-to-ppmp<span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.integrators.PSI6000<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>bean</span><span class="token punctuation">></span></span>\n\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>camelContext</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://camel.apache.org/schema/spring<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>dataFormats</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>psi6000<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.integrators.PSI6000DataType<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>ppmpMeasurementMessage<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.ppmp.measurements.MeasurementsWrapper<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">moduleClassNames</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>com.fasterxml.jackson.datatype.jsr310.JavaTimeModule<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">disableFeatures</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>WRITE_DATES_AS_TIMESTAMPS<span class="token punctuation">"</span></span> <span class="token attr-name">include</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>NON_NULL<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>json</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>ppmpProcessMessage<span class="token punctuation">"</span></span> <span class="token attr-name">library</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Jackson<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">unmarshalTypeName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>org.eclipse.iot.unide.ppmp.process.ProcessWrapper<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">moduleClassNames</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>com.fasterxml.jackson.datatype.jsr310.JavaTimeModule<span class="token punctuation">"</span></span>\n\t\t\t\t<span class="token attr-name">disableFeatures</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>WRITE_DATES_AS_TIMESTAMPS<span class="token punctuation">"</span></span> <span class="token attr-name">include</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>NON_NULL<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>dataFormats</span><span class="token punctuation">></span></span>\n\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>route</span> <span class="token attr-name">autoStartup</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>true<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>from</span>\n\t\t\t\t<span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>mqtt://psi6000?host=tcp://192.168.123.135:1883<span class="token entity" title="&amp;">&amp;amp;</span>subscribeTopicName=PSI6000//PROCESS/PPMP/PROCESS<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>unmarshal</span> <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>psi6000<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>bean</span> <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>psi6000-to-ppmp<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setHeader</span> <span class="token attr-name">headerName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Content-Type<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>constant</span><span class="token punctuation">></span></span>application/json; charset=utf-8<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>constant</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setHeader</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setHeader</span> <span class="token attr-name">headerName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>CamelHttpMethod<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>constant</span><span class="token punctuation">></span></span>POST<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>constant</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setHeader</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>multicast</span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>to</span> <span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>direct:measurement<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>to</span> <span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>direct:process<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>multicast</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>done<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setBody</span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>simple</span><span class="token punctuation">></span></span>{"result": true }<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>simple</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setBody</span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>route</span><span class="token punctuation">></span></span>\n\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>route</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>from</span> <span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>direct:measurement<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setBody</span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>simple</span><span class="token punctuation">></span></span>${body[0]}<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>simple</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setBody</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>deviceId measurement: ${body.device.deviceID}<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>marshal</span> <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>ppmpMeasurementMessage<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>sending measurement<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setHeader</span> <span class="token attr-name">headerName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Content-Length<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>simple</span><span class="token punctuation">></span></span>body.length<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>simple</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setHeader</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>to</span>\n\t\t\t\t<span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>jetty:http://unide.eclipse.org:8080/rest/v2/measurement?bridgeEndpoint=true<span class="token entity" title="&amp;">&amp;amp;</span>throwExceptionOnFailure=true<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>measurement sent<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>route</span><span class="token punctuation">></span></span>\n\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>route</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>from</span> <span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>direct:process<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setBody</span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>simple</span><span class="token punctuation">></span></span>${body[1]}<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>simple</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setBody</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>deviceId process: ${body.device.deviceID}<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>marshal</span> <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>ppmpProcessMessage<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>sending process<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setHeader</span> <span class="token attr-name">headerName</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>Content-Length<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>simple</span><span class="token punctuation">></span></span>body.length<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>simple</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setHeader</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>to</span>\n\t\t\t\t<span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>jetty:http://unide.eclipse.org:8080/rest/v2/process?bridgeEndpoint=true<span class="token entity" title="&amp;">&amp;amp;</span>throwExceptionOnFailure=true<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>log</span> <span class="token attr-name">message</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>process sent<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>route</span><span class="token punctuation">></span></span>\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>camelContext</span><span class="token punctuation">></span></span>\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>beans</span><span class="token punctuation">></span></span>\n</code></pre>\n<p>You might have noticed that we have not yet discussed one important item in this workflow: how do we actually transform the payload from one format to another?</p>\n<h3>Transforming from PSI 6000 POJO to PPMP POJOs</h3>\n<p>One thing that we\'ll hardwire as java code is the transformation from the source to the target structure. The same functionality could be achieved with scripting components (e.g. <a href="http://camel.apache.org/groovy.html">groovy</a>, but that would be less powerful and worse performance. Since we don\'t expect the format to change but mostly the workflow or endpoints, implementing a java bean is not too much effort. Here\'s how:<br>\nApache Camel offers a <code>Processor</code> interface that can be used to override the <code>process()</code> function. This function receives the complete message (<code>exchange</code>) and can modify it in any way. Since we have created the PSI 6000 Java Object already and want to produce PPMP java objects, the logic is mostly about creating the child objects and wiring the suitable getter to corresponding setter.</p>\n<pre class="language-java"><code class="language-java"><span class="token keyword">package</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>integrators<span class="token punctuation">;</span>\n\n<span class="token keyword">import</span> java<span class="token punctuation">.</span>time<span class="token punctuation">.</span>OffsetDateTime<span class="token punctuation">;</span>\n<span class="token keyword">import</span> java<span class="token punctuation">.</span>time<span class="token punctuation">.</span>ZoneOffset<span class="token punctuation">;</span>\n<span class="token keyword">import</span> java<span class="token punctuation">.</span>util<span class="token punctuation">.</span>Arrays<span class="token punctuation">;</span>\n<span class="token keyword">import</span> java<span class="token punctuation">.</span>util<span class="token punctuation">.</span>LinkedList<span class="token punctuation">;</span>\n<span class="token keyword">import</span> java<span class="token punctuation">.</span>util<span class="token punctuation">.</span>List<span class="token punctuation">;</span>\n\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>apache<span class="token punctuation">.</span>camel<span class="token punctuation">.</span>Exchange<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>apache<span class="token punctuation">.</span>camel<span class="token punctuation">.</span>Message<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>apache<span class="token punctuation">.</span>camel<span class="token punctuation">.</span>Processor<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>commons<span class="token punctuation">.</span>Device<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>commons<span class="token punctuation">.</span>MetaData<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>MeasurementsWrapper<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Process<span class="token punctuation">;</span>\n<span class="token keyword">import</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>ProcessWrapper<span class="token punctuation">;</span>\n\n<span class="token keyword">import</span> com<span class="token punctuation">.</span>fasterxml<span class="token punctuation">.</span>jackson<span class="token punctuation">.</span>core<span class="token punctuation">.</span>JsonProcessingException<span class="token punctuation">;</span>\n\n<span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">PSI6000</span> <span class="token keyword">implements</span> <span class="token class-name">Processor</span> <span class="token punctuation">{</span>\n\n\t<span class="token keyword">public</span> <span class="token function">PSI6000</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span><span class="token punctuation">}</span>\n\n\t<span class="token keyword">private</span> org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>SeriesMap <span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>\n\t\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>SeriesMap map<span class="token punctuation">,</span> String name<span class="token punctuation">,</span> Number value<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\t<span class="token keyword">if</span> <span class="token punctuation">(</span>value <span class="token operator">!=</span> null<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\t\tmap<span class="token punctuation">.</span><span class="token function">setSeriesValue</span><span class="token punctuation">(</span>name<span class="token punctuation">,</span> Arrays<span class="token punctuation">.</span><span class="token function">asList</span><span class="token punctuation">(</span>value<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token punctuation">}</span>\n\t\t<span class="token keyword">return</span> map<span class="token punctuation">;</span>\n\t<span class="token punctuation">}</span>\n\n\t<span class="token annotation punctuation">@Override</span>\n\t<span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">process</span><span class="token punctuation">(</span>Exchange exchange<span class="token punctuation">)</span> <span class="token keyword">throws</span> JsonProcessingException<span class="token punctuation">,</span> Exception <span class="token punctuation">{</span>\n\t\tMessage msg <span class="token operator">=</span> exchange<span class="token punctuation">.</span><span class="token function">getIn</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tPSI6000DataType doc <span class="token operator">=</span> msg<span class="token punctuation">.</span><span class="token function">getBody</span><span class="token punctuation">(</span>PSI6000DataType<span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\tObject <span class="token punctuation">[</span><span class="token punctuation">]</span>bundle <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Object</span><span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span><span class="token punctuation">;</span>\n\t\tbundle<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span>       <span class="token operator">=</span> <span class="token function">transformMeasurement</span><span class="token punctuation">(</span>doc<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tbundle<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span>       <span class="token operator">=</span> <span class="token function">transformProcess</span><span class="token punctuation">(</span>doc<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tmsg<span class="token punctuation">.</span><span class="token function">setBody</span><span class="token punctuation">(</span>bundle<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\texchange<span class="token punctuation">.</span><span class="token function">setOut</span><span class="token punctuation">(</span>msg<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t<span class="token punctuation">}</span>\n\n\t<span class="token keyword">private</span> <span class="token keyword">void</span> <span class="token function">setSpotName</span><span class="token punctuation">(</span>Device device<span class="token punctuation">,</span> WeldLog wl<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\tString spotName <span class="token operator">=</span> wl<span class="token punctuation">.</span><span class="token function">getSpotName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token keyword">if</span> <span class="token punctuation">(</span>spotName <span class="token operator">!=</span> null <span class="token operator">&amp;&amp;</span> spotName<span class="token punctuation">.</span><span class="token function">length</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">></span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\t\tMetaData md <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">MetaData</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\tmd<span class="token punctuation">.</span><span class="token function">setMetaDataValue</span><span class="token punctuation">(</span><span class="token string">"spotName"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSpotName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\tdevice<span class="token punctuation">.</span><span class="token function">setMetaData</span><span class="token punctuation">(</span>md<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token punctuation">}</span>\n\t<span class="token punctuation">}</span>\n\n\t<span class="token keyword">private</span> ProcessWrapper <span class="token function">transformProcess</span><span class="token punctuation">(</span>PSI6000DataType doc<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\tProcessWrapper wrapper <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ProcessWrapper</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tWeldLog wl <span class="token operator">=</span> doc<span class="token punctuation">.</span><span class="token function">getMessage</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getWeldLog</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tOffsetDateTime odt <span class="token operator">=</span> OffsetDateTime<span class="token punctuation">.</span><span class="token function">of</span><span class="token punctuation">(</span>wl<span class="token punctuation">.</span><span class="token function">getDateTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> ZoneOffset<span class="token punctuation">.</span>UTC<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">// device</span>\n\t\tDevice device <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Device</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tdevice<span class="token punctuation">.</span><span class="token function">setDeviceID</span><span class="token punctuation">(</span>doc<span class="token punctuation">.</span><span class="token function">getMessage</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getWeldLog</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getTimerName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">setSpotName</span><span class="token punctuation">(</span>device<span class="token punctuation">,</span> wl<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\twrapper<span class="token punctuation">.</span><span class="token function">setDevice</span><span class="token punctuation">(</span>device<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">// part</span>\n\t\tString partId <span class="token operator">=</span> wl<span class="token punctuation">.</span><span class="token function">getPartIdentString</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token keyword">if</span> <span class="token punctuation">(</span>partId <span class="token operator">!=</span> null <span class="token operator">&amp;&amp;</span> partId<span class="token punctuation">.</span><span class="token function">length</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">></span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Part part <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Part</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\tpart<span class="token punctuation">.</span><span class="token function">setPartID</span><span class="token punctuation">(</span>partId<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\twrapper<span class="token punctuation">.</span><span class="token function">setPart</span><span class="token punctuation">(</span>part<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token punctuation">}</span>\n\n\t\t<span class="token comment">// process</span>\n\t\tProcess process <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Process</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tprocess<span class="token punctuation">.</span><span class="token function">setTimestamp</span><span class="token punctuation">(</span>odt<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tprocess<span class="token punctuation">.</span><span class="token function">setExternalProcessId</span><span class="token punctuation">(</span>String<span class="token punctuation">.</span><span class="token function">valueOf</span><span class="token punctuation">(</span>wl<span class="token punctuation">.</span><span class="token function">getProtRecordID</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\twrapper<span class="token punctuation">.</span><span class="token function">setProcess</span><span class="token punctuation">(</span>process<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">// measurements</span>\n\t\tList<span class="token operator">&lt;</span>org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Measurements<span class="token operator">></span> measurements <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">LinkedList</span><span class="token operator">&lt;</span>org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Measurements<span class="token operator">></span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Measurements measurement <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>Measurements</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\n\t\tmeasurement<span class="token punctuation">.</span><span class="token function">setTimestamp</span><span class="token punctuation">(</span>odt<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">//values</span>\n\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>SeriesMap seriesMap <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>process<span class="token punctuation">.</span>SeriesMap</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tseriesMap<span class="token punctuation">.</span><span class="token function">setSeriesValue</span><span class="token punctuation">(</span><span class="token string">"curentCurve"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getCurrentCurve</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tseriesMap<span class="token punctuation">.</span><span class="token function">setSeriesValue</span><span class="token punctuation">(</span><span class="token string">"voltageCurve"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getVoltageCurve</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tseriesMap<span class="token punctuation">.</span><span class="token function">setSeriesValue</span><span class="token punctuation">(</span><span class="token string">"forceCurve"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getForceCurve</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\n\t\tmeasurement<span class="token punctuation">.</span><span class="token function">setSeriesMap</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tmeasurements<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span>measurement<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\twrapper<span class="token punctuation">.</span><span class="token function">setMeasurements</span><span class="token punctuation">(</span>measurements<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\n\t\t<span class="token keyword">return</span> wrapper<span class="token punctuation">;</span>\n\t<span class="token punctuation">}</span>\n\n\t<span class="token keyword">private</span> MeasurementsWrapper <span class="token function">transformMeasurement</span><span class="token punctuation">(</span>PSI6000DataType doc<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\tMeasurementsWrapper wrapper <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">MeasurementsWrapper</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tWeldLog wl <span class="token operator">=</span> doc<span class="token punctuation">.</span><span class="token function">getMessage</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getWeldLog</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">// device</span>\n\t\tDevice device <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Device</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tdevice<span class="token punctuation">.</span><span class="token function">setDeviceID</span><span class="token punctuation">(</span>doc<span class="token punctuation">.</span><span class="token function">getMessage</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getWeldLog</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getTimerName</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">setSpotName</span><span class="token punctuation">(</span>device<span class="token punctuation">,</span> wl<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\twrapper<span class="token punctuation">.</span><span class="token function">setDevice</span><span class="token punctuation">(</span>device<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">// part</span>\n\t\tString partId <span class="token operator">=</span> wl<span class="token punctuation">.</span><span class="token function">getPartIdentString</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token keyword">if</span> <span class="token punctuation">(</span>partId <span class="token operator">!=</span> null <span class="token operator">&amp;&amp;</span> partId<span class="token punctuation">.</span><span class="token function">length</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">></span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>\n\t\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>Part part <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>Part</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\tpart<span class="token punctuation">.</span><span class="token function">setPartID</span><span class="token punctuation">(</span>partId<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t\twrapper<span class="token punctuation">.</span><span class="token function">setPart</span><span class="token punctuation">(</span>part<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token punctuation">}</span>\n\n\t\t<span class="token comment">// measurements</span>\n\t\tList<span class="token operator">&lt;</span>org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>Measurements<span class="token operator">></span> measurements <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">LinkedList</span><span class="token operator">&lt;</span>org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>Measurements<span class="token operator">></span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>Measurements measurement <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>Measurements</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\tmeasurement<span class="token punctuation">.</span><span class="token function">setTimestamp</span><span class="token punctuation">(</span>OffsetDateTime<span class="token punctuation">.</span><span class="token function">of</span><span class="token punctuation">(</span>wl<span class="token punctuation">.</span><span class="token function">getDateTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> ZoneOffset<span class="token punctuation">.</span>UTC<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token comment">// values</span>\n\t\torg<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>SeriesMap seriesMap <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">org<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>iot<span class="token punctuation">.</span>unide<span class="token punctuation">.</span>ppmp<span class="token punctuation">.</span>measurements<span class="token punctuation">.</span>SeriesMap</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tseriesMap<span class="token punctuation">.</span><span class="token function">setSeriesValue</span><span class="token punctuation">(</span><span class="token string">"$_time"</span><span class="token punctuation">,</span> Arrays<span class="token punctuation">.</span><span class="token function">asList</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"wear"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWear</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"wearPerCent"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWearPerCent</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"monitorState"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getMonitorState</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regulationState"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegulationState</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"measureState"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getMeasureState</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"powerState"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPowerState</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sequenceState"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSequenceState</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sequenceStateAdd"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSequenceStateAdd</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sequenceRepeat"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSequenceRepeat</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"monitorMode"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getMonitorMode</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iDemandStd"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIDemandStd</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"ilsts"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIlsts</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regulationStd"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegulationStd</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iDemand1"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIDemand1</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iActual1"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIActual1</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regulation1"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegulation1</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iDemand2"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIDemand2</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iActual2"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIActual2</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regulation2"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegulation2</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iDemand3"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIDemand3</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"iActual3"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIActual3</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regulation3"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegulation3</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"phaStd"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPhaStd</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"pha1"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPha1</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"pha2"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPha2</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"pha3"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPha3</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"t_iDemandStd"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getIDemandStd</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"tActualStd"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getTActualStd</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token comment">// addMeasurementPoint(seriesMap, "partIdentString",</span>\n\t\t<span class="token comment">// wl.getPartIdentString());</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"tipDressCounter"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getTipDressCounter</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"electrodeNo"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getElectrodeNo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgForceSetPoint"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgForceSetPoint</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgSheetThicknessSetPoint"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgSheetThicknessSetPoint</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgSagGpSetPoint"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgSagGpSetPoint</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgSpotWithSg"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgSpotWithSg</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgMotorCurrent"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgMotorCurrent</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgMotorTemp"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgMotorTemp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgForce"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgForce</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgSheetThickness"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgSheetThickness</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgSagGp"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgSagGp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sgSagGc"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgSagGc</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regUsrUspJunction"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegUsrUspJunction</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regUsrUspMax"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegUsrUspMax</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regSpotDiaActual"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegSpotDiaActual</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regSpotDiaMinDemand"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegSpotDiaMinDemand</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regSplashTime"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegSplashTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"nuggetDiameter"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getNuggetDiameter</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"usp"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUsp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"normingTime"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getNormingTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"regulationStartTime"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getRegulationStartTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"returnToConstantCurrent"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getReturnToConstantCurrent</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"declineUsp"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getDeclineUsp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"offsetUsp"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getOffsetUsp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"currentFactor"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getCurrentFactor</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"triggerTime"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getTriggerTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"xqrMeasuringActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getXqrMeasuringActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"xqrRegulationActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getXqrRegulationActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"xqrMonitoringActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getXqrMonitoringActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"xqrWeldTimeProlongationActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getXqrWeldTimeProlongationActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"voltageActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getVoltageActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"voltageRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getVoltageRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"currentActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getCurrentActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"currentReferenceValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getCurrentReferenceValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldTimeActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldTimeActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldTimeRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldTimeRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"energyActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getEnergyActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"energyRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getEnergyRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"powerActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPowerActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"powerRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPowerRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"resistanceActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getResistanceActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"resistanceRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getResistanceRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"pulseWidthActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPulseWidthActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"pulseWidthRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getPulseWidthRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"stabilisationFactorActValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getStabilisationFactorActValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"stabilisationFactorRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getStabilisationFactorRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"thresholdStabilisationFactor"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getThresholdStabilisationFactor</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"wldEffectStabilisationFactor"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWldEffectStabilisationFactor</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uipActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUipActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uipRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUipRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirExpulsionTime"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirExpulsionTime</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirMeasuringActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirMeasuringActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirRegulationActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirRegulationActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirMonitoringActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirMonitoringActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirWeldTimeProlongationActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirWeldTimeProlongationActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirQStoppRefCntValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirQStoppRefCntValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirQStoppActCntValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirQStoppActCntValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirUipUpperTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirUipUpperTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirUipLowerTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirUipLowerTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirUipCondTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirUipCondTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirPsfLowerTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirPsfLowerTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uirPsfCondTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUirPsfCondTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_1"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP161</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_2"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP162</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_3"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP163</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_4"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP164</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_5"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP165</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP32_6"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP326</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_7"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP167</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_8"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP168</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_9"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP169</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_10"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1610</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_11"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1611</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP32_12"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP3212</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_13"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1613</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_14"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1614</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_15"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1615</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_16"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1616</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP16_17"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP1617</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"weldSpotCustDataP32_18"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getWeldSpotCustDataP3218</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"uipMonCondUpperTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getUipMonCondUpperTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfActualValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfActualValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfRefValue"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfRefValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfMonUpperTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfMonUpperTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfMonLowerTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfMonLowerTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfMonCondUpperTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfMonCondUpperTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfMonCondLowerTol"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfMonCondLowerTol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"fqfMeasuringActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getFqfMeasuringActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"xqrModeOff"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getXqrModeOff</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"reweldActive"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getReweldActive</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token comment">// addMeasurementPoint(seriesMap, "weldspotRefIdent",</span>\n\t\t<span class="token comment">// wl.getWeldspotRefIdent());</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sg_Torque_Gp"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgTorqueGp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sg_Force_Corr"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgForceCorr</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sg_Weldspot_Geo_Wear"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgWeldspotGeoWear</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sg_Wear_Length"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgWearLength</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\t<span class="token function">addMeasurementPoint</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">,</span> <span class="token string">"sg_Beam_UpArching"</span><span class="token punctuation">,</span> wl<span class="token punctuation">.</span><span class="token function">getSgBeamUpArching</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\tmeasurement<span class="token punctuation">.</span><span class="token function">setSeriesMap</span><span class="token punctuation">(</span>seriesMap<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\tmeasurements<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span>measurement<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\t\twrapper<span class="token punctuation">.</span><span class="token function">setMeasurements</span><span class="token punctuation">(</span>measurements<span class="token punctuation">)</span><span class="token punctuation">;</span>\n\n\t\t<span class="token keyword">return</span> wrapper<span class="token punctuation">;</span>\n\t<span class="token punctuation">}</span>\n<span class="token punctuation">}</span>\n</code></pre>\n<h1>Summary</h1>\n<p>It takes a while to understand the involved software components. Yet, once the set up is running, it gets much easier to adapt it to another Use Case. And another. The pattern of wiring protocols and transforming the payload is very similar. The involved frameworks are powerful enough to support many Use Cases. This article is supposed to show that there are simple possibilities to transform transport protocols and payloads, so that you can focus on addressing functional challenges.</p>\n',url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:"2018-02-11T00:00:00.000Z",tags:["use cases"],prev:{url:"/blog/2018/1/26/New-website",title:"Updated Website"},next:{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_article.dfd7fcb83848670d21b1.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2018/2/11/index.html b/blog/2018/2/11/index.html
index 2e7b68b..03d278f 100644
--- a/blog/2018/2/11/index.html
+++ b/blog/2018/2/11/index.html
@@ -66,6 +66,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:"2018-02-11T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:"2018-02-11T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_blog.e921111d8f479ba5a1cd.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2018/2/13/grinding-machine-scenario/index.html b/blog/2018/2/13/grinding-machine-scenario/index.html
index 983d698..bae375a 100644
--- a/blog/2018/2/13/grinding-machine-scenario/index.html
+++ b/blog/2018/2/13/grinding-machine-scenario/index.html
@@ -188,6 +188,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"grinding-machine-scenario",content:'<h2>Abstract</h2>\n<p>In this blog post we present a real world condition monitoring scenario used in<br>\nthe <a href="https://iot.eclipse.org/testbeds/production-performance-management/#">Eclipse Production Performance Management Testbed</a>, where Unide and<br>\nPPMP plays a crucial role. Moreover, we also provide a code repository and<br>\ninstructions so that you can recreate the scenario in your own computer and<br>\nlearn about its components and the communication with each other.</p>\n<h2>Introduction</h2>\n<p>In the context of the <a href="https://iot.eclipse.org/testbeds/production-performance-management/#">Eclipse Production Performance Management Testbed</a>, a<br>\nreal world condition monitoring scenario has been recreated, in which a<br>\ngrinding machine is being continuously monitored allowing to have real time<br>\nhealth checks and prevent unexpected failures.</p>\n<p>This scenario consists of the following building blocks: device, gateway,<br>\nbackend. The communication between them happens seamlessly thanks to the<br>\nProduction Performance management Protocol (PPMP).</p>\n<ul>\n<li>\n<p>The device, i.e. the grinding machine, has been retrofitted with an<br>\nacceleration sensor attached to one of its critical components. The data<br>\nprovided by this sensor is routed to the gateway in the form of a <a href="https://www.eclipse.org/unide/specification/measurement-message#messageDetail">PPMP<br>\nMeasurement Message</a>.</p>\n</li>\n<li>\n<p>The gateway receives the raw acceleration measurements, calculates some<br>\nstatistical characteristics and and applies some machine learning techniques<br>\nto them in order to evaluate the condition of the grinding machine. Then both<br>\nthe statistical values and the condition are routed to the backend, again in<br>\nthe form of a PPMP Measurement Message.</p>\n</li>\n<li>\n<p>The backend, usually in the cloud, is any component that &quot;speaks PPMP&quot; and<br>\nperforms meaningful operations on the incoming messages. Most frequently it<br>\nis responsible for storing the arriving data and making it available to apps<br>\nthat want to consume it. Common responsibilities of these apps are the<br>\nrepresentation or display of the data (e.g. dashboards), or workflows<br>\nmanagement (e.g. the grinding machine is in bad condition and an inspection<br>\nmust be carried out).</p>\n<p>The backend can be swapped effortless with any entity adhering to PPMP standard.<br>\nIn the Eclipse PPM Testbed at least two different backends have been used:</p>\n<ul>\n<li>One directly based on <a href="https://github.com/eclipse/unide">Unide</a></li>\n<li>One based on <a href="https://www.contact-software.com/en/products/elements-for-iot/">CONTACT Elements for IoT</a>.</li>\n</ul>\n</li>\n</ul>\n<h2>Hands-on demonstration</h2>\n<p>In order to make this scenario more hands-on and interesting, within the<br>\n<a href="https://github.com/eclipselabs/eclipseiot-testbed-productionperformancemanagement">Production Performance Management Testbed repository</a> project in Github, we<br>\nhave set up a <a href="https://github.com/eclipselabs/eclipseiot-testbed-productionperformancemanagement/tree/master/grinding-machine">subproject for the grinding machine scenario</a>. There you can<br>\nfind a thorough description and code to simulate the device and the gateway,<br>\nand route messages to a given backend. The only requirements are git and conda<br>\n(the easiest way to get conda is to <a href="https://conda.io/miniconda.html">install miniconda</a>).</p>\n<p>So, let\'s get started! First of all, open your terminal and clone the<br>\nrepository:</p>\n<pre class="language-bash"><code class="language-bash">$ <span class="token function">git</span> clone https://github.com/eclipselabs/eclipseiot-testbed-productionperformancemanagement eclipse-testbed-ppm\n$ <span class="token function">cd</span> eclipse-testbed-ppm/grinding-machine\n</code></pre>\n<p>Then move to the grinding machine subproject directory:</p>\n<pre class="language-bash"><code class="language-bash">$ <span class="token function">cd</span> eclipse-testbed-ppm/grinding-machine\n</code></pre>\n<p>In that folder you will see two subfolders. The first one<br>\n<code>unide-grinding-machine</code> contains a Python program that simulates grinding<br>\nmachine and the second one <code>unide-grinding-machine-gateway</code> simulates the<br>\ngateway.</p>\n<h3>Grinding Machine simulator</h3>\n<p>Let\'s start with the first component. First <code>cd</code> to <code>unide-grinding-machine</code><br>\nand then create the conda environment:</p>\n<pre class="language-bash"><code class="language-bash">$ conda <span class="token function">env</span> create --prefix<span class="token operator">=</span>env\n</code></pre>\n<p>And then in order to use this environment, we need to activate it.</p>\n<pre class="language-bash"><code class="language-bash">$ <span class="token function">source</span> activate <span class="token function">env</span>    <span class="token comment"># or in windows: activate env </span>\n</code></pre>\n<p>Run <code>unide-grinding-machine -h</code> to get familiar with the CLI. With this<br>\nexecutable we can generate some machine grinding data, and (for the moment)<br>\nprint messages to the console. To do so, run <code>unide-grinding-machine send random</code> and you should get a large message on the console. This is the PPMP<br>\nmessage ought to be sent to the gateway.</p>\n<p>We don\'t have a gateway so far, but don\'t worry, we will get to that in a<br>\nminute. Don\'t close this console!</p>\n<h3>Gateway simulator</h3>\n<p>Open a new console, and similarly to the previous point, first <code>cd</code> to<br>\n<code>unide-grinding-machine-gateway</code>, create the environment (<code>conda env create --prefix=env</code>) and activate it (<code>source activate env</code>).</p>\n<p>The run the command <code>unide-grinding-machine-gateway -h</code> to test that everything<br>\nis in place. You should get the CLI documentation.</p>\n<p>Now, let\'s fire up the gateway by calling <code>unide-grinding-machine-gateway start_server</code>, and a message like this should show up:</p>\n<pre class="language-bash"><code class="language-bash">Running <span class="token operator">&lt;</span>unide_grinding_machine_gateway.server.App object at 0x<span class="token punctuation">..</span><span class="token punctuation">..</span>.<span class="token operator">></span>\nListening on http://127.0.0.1:5000\nPress Ctrl-C to stop<span class="token punctuation">..</span>.\n</code></pre>\n<p>We are getting closer. Leave the gateway running.</p>\n<h3>Communication Device-Gateway</h3>\n<p>Let\'s go back to the previous console where we had the <code>unide-grinding-machine</code><br>\nenvironment and  call again the <code>unide-grinding-machine</code> program, but this time<br>\npassing the as an argument where the gateway is listening to messages.</p>\n<pre class="language-bash"><code class="language-bash">$ unide-grinding-machine send random --endpoint<span class="token operator">=</span>http://127.0.0.1:5000\n</code></pre>\n<p>If you take peek at the gateway output, you should see new information printed<br>\nout, which is a PPMP message containing the result of the classification<br>\nalgorithms applied to the device data we just sent to it.</p>\n<p>We are getting somewhere! But still, it is not extremely useful to print some<br>\ncharacters into a console, is it?</p>\n<h3>Communication Device-Gateway-Backend</h3>\n<p>There is only a small but relevant point missing: the routing from the gateway<br>\nto the backend. We need a backend and the Unide project provides a service that<br>\ncan be used as a playground for these purposes. So let\'s restart the gateway,<br>\nthis time passing the Unide endpoint:</p>\n<pre class="language-bash"><code class="language-bash">$ unide-grinding-machine-gateway start_server --endpoint<span class="token operator">=</span>https://unide.eclipse.org/rest/v2\n</code></pre>\n<p>Now we can use the <code>unide-grinding-machine</code> to send raw data to the gateway<br>\nwhich in turn sends its results to the backend.  In order to be able to<br>\nidentify this data later, we are going to define a proper device ID (argument<br>\n<code>--device-id</code>), and also tell it to send data once each 10 seconds (argument<br>\n<code>--period</code>):</p>\n<pre class="language-bash"><code class="language-bash">$ unide-grinding-machine send random --endpoint<span class="token operator">=</span>http://127.0.0.1:5000 --device-id<span class="token operator">=</span>IoT-000028--3 --period<span class="token operator">=</span>10\n</code></pre>\n<p>Once started, a continuous flow of data is pumped through each component until<br>\nit reaches the backend, allowing us to use the applications that consume this<br>\ndata. For instance, the basic backend provided by Unide offers a <a href="https://grafana.com/">Grafana</a> based<br>\ndashboard that offers live monitoring of the statistical values calculated in the<br>\ngateway:</p>\n<p><img src="/unide/images/blog/grinding-machine-grafana-dashboard.png" alt="Grafana based dashboard monitoring grinding machine"></p>\n<p>If instead of that we use the the <a href="https://www.contact-software.com/en/products/elements-for-iot/">CONTACT Elements for IoT</a> based backend,<br>\nwe can see a different and richer dashboard: charts, 3D models, list of<br>\nmaintenance events, device master data and the Activity Stream, a place where<br>\ndifferent parties can exchange information related to the grinding machine:</p>\n<p><img src="/unide/images/blog/grinding-machine-ce4iot-dashboard.png" alt="CONTACT Elements for IoT Dashboard"></p>\n',url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:"2018-02-13T00:00:00.000Z",tags:["use cases"],prev:{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel"},next:{url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"grinding-machine-scenario",content:'<h2>Abstract</h2>\n<p>In this blog post we present a real world condition monitoring scenario used in<br>\nthe <a href="https://iot.eclipse.org/testbeds/production-performance-management/#">Eclipse Production Performance Management Testbed</a>, where Unide and<br>\nPPMP plays a crucial role. Moreover, we also provide a code repository and<br>\ninstructions so that you can recreate the scenario in your own computer and<br>\nlearn about its components and the communication with each other.</p>\n<h2>Introduction</h2>\n<p>In the context of the <a href="https://iot.eclipse.org/testbeds/production-performance-management/#">Eclipse Production Performance Management Testbed</a>, a<br>\nreal world condition monitoring scenario has been recreated, in which a<br>\ngrinding machine is being continuously monitored allowing to have real time<br>\nhealth checks and prevent unexpected failures.</p>\n<p>This scenario consists of the following building blocks: device, gateway,<br>\nbackend. The communication between them happens seamlessly thanks to the<br>\nProduction Performance management Protocol (PPMP).</p>\n<ul>\n<li>\n<p>The device, i.e. the grinding machine, has been retrofitted with an<br>\nacceleration sensor attached to one of its critical components. The data<br>\nprovided by this sensor is routed to the gateway in the form of a <a href="https://www.eclipse.org/unide/specification/measurement-message#messageDetail">PPMP<br>\nMeasurement Message</a>.</p>\n</li>\n<li>\n<p>The gateway receives the raw acceleration measurements, calculates some<br>\nstatistical characteristics and and applies some machine learning techniques<br>\nto them in order to evaluate the condition of the grinding machine. Then both<br>\nthe statistical values and the condition are routed to the backend, again in<br>\nthe form of a PPMP Measurement Message.</p>\n</li>\n<li>\n<p>The backend, usually in the cloud, is any component that &quot;speaks PPMP&quot; and<br>\nperforms meaningful operations on the incoming messages. Most frequently it<br>\nis responsible for storing the arriving data and making it available to apps<br>\nthat want to consume it. Common responsibilities of these apps are the<br>\nrepresentation or display of the data (e.g. dashboards), or workflows<br>\nmanagement (e.g. the grinding machine is in bad condition and an inspection<br>\nmust be carried out).</p>\n<p>The backend can be swapped effortless with any entity adhering to PPMP standard.<br>\nIn the Eclipse PPM Testbed at least two different backends have been used:</p>\n<ul>\n<li>One directly based on <a href="https://github.com/eclipse/unide">Unide</a></li>\n<li>One based on <a href="https://www.contact-software.com/en/products/elements-for-iot/">CONTACT Elements for IoT</a>.</li>\n</ul>\n</li>\n</ul>\n<h2>Hands-on demonstration</h2>\n<p>In order to make this scenario more hands-on and interesting, within the<br>\n<a href="https://github.com/eclipselabs/eclipseiot-testbed-productionperformancemanagement">Production Performance Management Testbed repository</a> project in Github, we<br>\nhave set up a <a href="https://github.com/eclipselabs/eclipseiot-testbed-productionperformancemanagement/tree/master/grinding-machine">subproject for the grinding machine scenario</a>. There you can<br>\nfind a thorough description and code to simulate the device and the gateway,<br>\nand route messages to a given backend. The only requirements are git and conda<br>\n(the easiest way to get conda is to <a href="https://conda.io/miniconda.html">install miniconda</a>).</p>\n<p>So, let\'s get started! First of all, open your terminal and clone the<br>\nrepository:</p>\n<pre class="language-bash"><code class="language-bash">$ <span class="token function">git</span> clone https://github.com/eclipselabs/eclipseiot-testbed-productionperformancemanagement eclipse-testbed-ppm\n$ <span class="token function">cd</span> eclipse-testbed-ppm/grinding-machine\n</code></pre>\n<p>Then move to the grinding machine subproject directory:</p>\n<pre class="language-bash"><code class="language-bash">$ <span class="token function">cd</span> eclipse-testbed-ppm/grinding-machine\n</code></pre>\n<p>In that folder you will see two subfolders. The first one<br>\n<code>unide-grinding-machine</code> contains a Python program that simulates grinding<br>\nmachine and the second one <code>unide-grinding-machine-gateway</code> simulates the<br>\ngateway.</p>\n<h3>Grinding Machine simulator</h3>\n<p>Let\'s start with the first component. First <code>cd</code> to <code>unide-grinding-machine</code><br>\nand then create the conda environment:</p>\n<pre class="language-bash"><code class="language-bash">$ conda <span class="token function">env</span> create --prefix<span class="token operator">=</span>env\n</code></pre>\n<p>And then in order to use this environment, we need to activate it.</p>\n<pre class="language-bash"><code class="language-bash">$ <span class="token function">source</span> activate <span class="token function">env</span>    <span class="token comment"># or in windows: activate env </span>\n</code></pre>\n<p>Run <code>unide-grinding-machine -h</code> to get familiar with the CLI. With this<br>\nexecutable we can generate some machine grinding data, and (for the moment)<br>\nprint messages to the console. To do so, run <code>unide-grinding-machine send random</code> and you should get a large message on the console. This is the PPMP<br>\nmessage ought to be sent to the gateway.</p>\n<p>We don\'t have a gateway so far, but don\'t worry, we will get to that in a<br>\nminute. Don\'t close this console!</p>\n<h3>Gateway simulator</h3>\n<p>Open a new console, and similarly to the previous point, first <code>cd</code> to<br>\n<code>unide-grinding-machine-gateway</code>, create the environment (<code>conda env create --prefix=env</code>) and activate it (<code>source activate env</code>).</p>\n<p>The run the command <code>unide-grinding-machine-gateway -h</code> to test that everything<br>\nis in place. You should get the CLI documentation.</p>\n<p>Now, let\'s fire up the gateway by calling <code>unide-grinding-machine-gateway start_server</code>, and a message like this should show up:</p>\n<pre class="language-bash"><code class="language-bash">Running <span class="token operator">&lt;</span>unide_grinding_machine_gateway.server.App object at 0x<span class="token punctuation">..</span><span class="token punctuation">..</span>.<span class="token operator">></span>\nListening on http://127.0.0.1:5000\nPress Ctrl-C to stop<span class="token punctuation">..</span>.\n</code></pre>\n<p>We are getting closer. Leave the gateway running.</p>\n<h3>Communication Device-Gateway</h3>\n<p>Let\'s go back to the previous console where we had the <code>unide-grinding-machine</code><br>\nenvironment and  call again the <code>unide-grinding-machine</code> program, but this time<br>\npassing the as an argument where the gateway is listening to messages.</p>\n<pre class="language-bash"><code class="language-bash">$ unide-grinding-machine send random --endpoint<span class="token operator">=</span>http://127.0.0.1:5000\n</code></pre>\n<p>If you take peek at the gateway output, you should see new information printed<br>\nout, which is a PPMP message containing the result of the classification<br>\nalgorithms applied to the device data we just sent to it.</p>\n<p>We are getting somewhere! But still, it is not extremely useful to print some<br>\ncharacters into a console, is it?</p>\n<h3>Communication Device-Gateway-Backend</h3>\n<p>There is only a small but relevant point missing: the routing from the gateway<br>\nto the backend. We need a backend and the Unide project provides a service that<br>\ncan be used as a playground for these purposes. So let\'s restart the gateway,<br>\nthis time passing the Unide endpoint:</p>\n<pre class="language-bash"><code class="language-bash">$ unide-grinding-machine-gateway start_server --endpoint<span class="token operator">=</span>https://unide.eclipse.org/rest/v2\n</code></pre>\n<p>Now we can use the <code>unide-grinding-machine</code> to send raw data to the gateway<br>\nwhich in turn sends its results to the backend.  In order to be able to<br>\nidentify this data later, we are going to define a proper device ID (argument<br>\n<code>--device-id</code>), and also tell it to send data once each 10 seconds (argument<br>\n<code>--period</code>):</p>\n<pre class="language-bash"><code class="language-bash">$ unide-grinding-machine send random --endpoint<span class="token operator">=</span>http://127.0.0.1:5000 --device-id<span class="token operator">=</span>IoT-000028--3 --period<span class="token operator">=</span>10\n</code></pre>\n<p>Once started, a continuous flow of data is pumped through each component until<br>\nit reaches the backend, allowing us to use the applications that consume this<br>\ndata. For instance, the basic backend provided by Unide offers a <a href="https://grafana.com/">Grafana</a> based<br>\ndashboard that offers live monitoring of the statistical values calculated in the<br>\ngateway:</p>\n<p><img src="/unide/images/blog/grinding-machine-grafana-dashboard.png" alt="Grafana based dashboard monitoring grinding machine"></p>\n<p>If instead of that we use the the <a href="https://www.contact-software.com/en/products/elements-for-iot/">CONTACT Elements for IoT</a> based backend,<br>\nwe can see a different and richer dashboard: charts, 3D models, list of<br>\nmaintenance events, device master data and the Activity Stream, a place where<br>\ndifferent parties can exchange information related to the grinding machine:</p>\n<p><img src="/unide/images/blog/grinding-machine-ce4iot-dashboard.png" alt="CONTACT Elements for IoT Dashboard"></p>\n',url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:"2018-02-13T00:00:00.000Z",tags:["use cases"],prev:{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel"},next:{url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_article.dfd7fcb83848670d21b1.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2018/2/13/index.html b/blog/2018/2/13/index.html
index 9043fa1..9540ae7 100644
--- a/blog/2018/2/13/index.html
+++ b/blog/2018/2/13/index.html
@@ -66,6 +66,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:"2018-02-13T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:"2018-02-13T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_blog.e921111d8f479ba5a1cd.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2018/2/index.html b/blog/2018/2/index.html
index b166cc3..ed352d7 100644
--- a/blog/2018/2/index.html
+++ b/blog/2018/2/index.html
@@ -70,6 +70,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:"2018-02-13T00:00:00.000Z"},{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:"2018-02-11T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:"2018-02-13T00:00:00.000Z"},{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:"2018-02-11T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_blog.e921111d8f479ba5a1cd.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2018/3/26/Release-0.2.0/index.html b/blog/2018/3/26/Release-0.2.0/index.html
index b19944a..4777a77 100644
--- a/blog/2018/3/26/Release-0.2.0/index.html
+++ b/blog/2018/3/26/Release-0.2.0/index.html
@@ -194,6 +194,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"Release-0.2.0",content:'<p>Finally, the second version (0.2.0) of the Eclipse unide project is released! The <a href="http://unide.eclipse.org">REST Server on the Testserver</a> has been updated as well.</p>\n<h1>Quick start</h1>\n<h2>Binsa chrome app</h2>\n<p>Download the binsa chrome app from <a href="http://download.eclipse.org/unide/binsa.crx">download page</a>. Open your chrome browser at <a href="chrome://extensions">chrome://extensions</a> and drag the binsa.crx file onto the page. You should be able to see your new chrome app in <a href="chrome://apps">chrome://apps</a></p>\n<h2>REST Server</h2>\n<p>Download the REST server file from <a href="https://repo.eclipse.org/content/repositories/unide-releases/org/eclipse/iot/unide/ppmp/ppmp-server/0.2.0/ppmp-server-0.2.0.jar">repo.eclipse.org</a>, create a simple configuration file (e.g. application_conf.json):</p>\n<pre class="language-json"><code class="language-json"><span class="token punctuation">{</span>\n  <span class="token property">"http.port"</span><span class="token operator">:</span> <span class="token number">8090</span><span class="token punctuation">,</span>\n  <span class="token property">"persistence.enable"</span><span class="token operator">:</span> <span class="token boolean">false</span>\n<span class="token punctuation">}</span>\n\n</code></pre>\n<p>and start the server</p>\n<pre class="language-bash"><code class="language-bash">java -jar ppmp-server-0.2.0.jar -conf application_conf.json\n</code></pre>\n<p>Point your browser to <a href="http://localhost:8090">http://localhost:8090</a> and see the servers documentation running on your local server! At this point, PPMP validation (via HTTP POST to <code>/rest/v2/validate</code>) is enabled, but no persistence.</p>\n<p>If you want to send data to the server, a quick way is via <a href="https://www.getpostman.com/">Postman App</a>, which is available as native app or <a href="https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=en">Chrome app</a>. Once installed and started, you can easily use the &quot;Import &gt; Import From Link&quot; feature to get the prepared <a href="https://raw.githubusercontent.com/eclipse/unide/f4d349bc4a0096d3f99e14cf5f8b9f53a5145fdd/servers/rest/assets/postman/unide.postman_collection.json">unide.postman_collection.json</a> and the corresponding <a href="https://raw.githubusercontent.com/eclipse/unide/f4d349bc4a0096d3f99e14cf5f8b9f53a5145fdd/servers/rest/assets/postman/unide.postman_environment.json">unide.postman_environment</a>. You should now have Machine/Measurement/Process messages and requests prepared in the Collections tab. In order to send, you could extend the URL with &quot;/validate&quot; and hit &quot;Send&quot; button. If you get the response</p>\n<blockquote>\n<p>Ppmp Message of type \'xy\' is valid</p>\n</blockquote>\n<p>the unide REST server works as expected!</p>\n<h1>Persistence</h1>\n<h2>Influx DB</h2>\n<p><a href="https://portal.influxdata.com/downloads">Download</a> the InfluxDB Time-Series Data Storage and unzip or install it on your system. By default, it opens an http port at 8086. In order to make use of it, the configuration file should be modified, e.g. to:</p>\n<pre class="language-json"><code class="language-json"><span class="token punctuation">{</span>\n  <span class="token property">"http.port"</span><span class="token operator">:</span> <span class="token number">8090</span><span class="token punctuation">,</span>\n  <span class="token property">"persistence.enable"</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>\n  <span class="token property">"persistence.system"</span><span class="token operator">:</span> <span class="token string">"influxDb"</span><span class="token punctuation">,</span>\n  <span class="token property">"influxDb.url"</span><span class="token operator">:</span> <span class="token string">"http://localhost:8086"</span><span class="token punctuation">,</span>\n  <span class="token property">"influxDb.user"</span><span class="token operator">:</span> <span class="token string">"root"</span><span class="token punctuation">,</span>\n  <span class="token property">"influxDb.password"</span><span class="token operator">:</span> <span class="token string">"root"</span>\n<span class="token punctuation">}</span>\n</code></pre>\n<p>After starting the database and the unide REST server, it should be possible to send POST requests to <code>http://localhost:8090/rest/v2</code>. This path receives all message types. To query the database after, use:<br>\n<a href="http://localhost:8086/query?pretty=true&amp;u=root&amp;p=root&amp;db=Measurements&amp;q=SELECT%20*%20FROM%20%22ppmp_measurements%22">http://localhost:8086/query?pretty=true&amp;u=root&amp;p=root&amp;db=Measurements&amp;q=SELECT * FROM &quot;ppmp_measurements&quot;</a> or the other databases that are documented on the <a href="http://localhost:8090/#influxdb_schema_design">running server instance</a>, respectively.</p>\n<h2>SQL (timescale, h2)</h2>\n<p>Download the appropriate jdbc driver, e.g. <a href="http://repo1.maven.org/maven2/com/h2database/h2/1.4.197/h2-1.4.197.jar">h2-*.jar</a>, modify the configuration file, e.g. for h2:</p>\n<pre class="language-json"><code class="language-json"><span class="token punctuation">{</span>\n  <span class="token property">"http.port"</span><span class="token operator">:</span> <span class="token number">8090</span><span class="token punctuation">,</span>\n  <span class="token property">"persistence.enable"</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>\n  <span class="token property">"persistence.system"</span><span class="token operator">:</span> <span class="token string">"sql"</span><span class="token punctuation">,</span>\n  <span class="token property">"sqlDb.driver"</span><span class="token operator">:</span> <span class="token string">"org.h2.Driver"</span><span class="token punctuation">,</span>\n  <span class="token property">"sqlDb.url"</span><span class="token operator">:</span> <span class="token string">"jdbc:h2:./test"</span><span class="token punctuation">,</span>\n  <span class="token property">"sqlDb.user"</span><span class="token operator">:</span> <span class="token string">"sa"</span><span class="token punctuation">,</span>\n  <span class="token property">"sqlDb.password"</span><span class="token operator">:</span> <span class="token string">""</span>\n<span class="token punctuation">}</span>\n</code></pre>\n<p>Start the PPMP Server with the jdbc dependency on the classpath, e.g.:</p>\n<pre class="language-bash"><code class="language-bash">java -cp <span class="token string">"h2-1.4.197.jar;ppmp-server-0.2.0.jar"</span> io.vertx.core.Launcher org.eclipse.iot.unide.server.MainVerticle -conf application.conf\n</code></pre>\n<p>Now, all the data send to the REST server is persisted in the file <code>test.mv.db</code>.<br>\nFor concurrent db actions (reading while writing), use the h2 tcp server instead. h2 is not recommended for production use!</p>\n<h1>Background</h1>\n<h2>Download</h2>\n<p>Available artifacts for download:</p>\n<ul>\n<li><a href="https://repo.eclipse.org/content/repositories/unide-releases/org/eclipse/iot/unide/ppmp/ppmp-schema/2.0.0/">PPMP Schema v2</a></li>\n<li><a href="https://repo.eclipse.org/content/repositories/unide-releases/org/eclipse/iot/unide/ppmp/ppmp-java-binding/0.2.0/">PPMP java Binding</a></li>\n<li><a href="https://pypi.python.org/packages/d5/af/c90911d1da56a1ed0238338ba01068d43b8cd0137e9ca52b0f52a279f73e/unide_python-0.2.0-py2.py3-none-any.whl#md5=ca67bcd536b3a4015f72f5fa53d36543">PPMP Python Binding</a></li>\n<li><a href="https://repo.eclipse.org/content/repositories/unide-releases/org/eclipse/iot/unide/ppmp/ppmp-server/0.2.0/">PPMP Server</a></li>\n<li><a href="http://download.eclipse.org/unide/binsa.crx">binsa client chrome app</a></li>\n</ul>\n<p>Source code:</p>\n<ul>\n<li><a href="https://github.com/eclipse/unide/releases/tag/v0.2.0">unide</a></li>\n<li><a href="https://github.com/eclipse/unide.java/releases/tag/v0.2.0">java binding</a></li>\n<li><a href="https://github.com/eclipse/unide.python/releases/tag/v0.2.0">python binding</a></li>\n</ul>\n<h2>Release notes</h2>\n<h3>REST Server improvements (refactoring &amp; persistence)</h3>\n<ul>\n<li>Added persistence to timeseries/postgres db</li>\n<li>Outfactored schema files</li>\n<li>Adjusted maven file</li>\n<li>Added unit tests</li>\n<li>Added documentation &amp; java docs</li>\n<li>Adjusted error handling</li>\n<li>Removed unused code</li>\n<li>Added postman collections</li>\n<li>Added grafana configuration file</li>\n</ul>\n<h3>New HTML5 simulation client</h3>\n<ul>\n<li>Progressive Webapp runs as website (see <a href="https://unide.eclipse.org/binsa">https://unide.eclipse.org/binsa</a>), browser app, native client (via <a href="https://nwjs.io/">nw.js</a>) or app (via <a href="https://cordova.apache.org/">Apache cordova</a>)</li>\n</ul>\n<h3>PPMP JSON Schema files</h3>\n<ul>\n<li>Introduced separate bundle for schemas</li>\n<li>general fixes\n<ul>\n<li>make schema draft-06 compliant</li>\n<li>added \'id\' and \'descriptions\' where applicable</li>\n<li>added \'type\' and \'default\' for enums</li>\n<li>added \'required\' fields where necessary</li>\n<li>made \'additionalProperties\': true explicit for \'metaData\'</li>\n<li>sorted the properties for improved readability</li>\n</ul>\n</li>\n<li>message_schema fixes\n<ul>\n<li>added minItems: 1 to messages</li>\n</ul>\n</li>\n<li>measurement_schema fixes\n<ul>\n<li>completed \'limits\' specification</li>\n<li>added \'patternProperties\' and minProperties detail to \'series\'</li>\n<li>added minItems: 1 to measurements</li>\n</ul>\n</li>\n<li>process_schema fixes\n<ul>\n<li>made \'id\' and \'name\' of a \'program\' mandatory</li>\n<li>fixed \'shutoffValues\', having properties not items</li>\n<li>fixed \'limits\', having properties not items and number values rather than object values as limits</li>\n<li>fixed \'specialValues\' to be an array of specialValue items with \'name\' for indicating the nature, rather than one single object with its keys indicating the nature. Offering optional \'$_time\' tag to be consistent with measurements.</li>\n<li>completed \'series\' definition</li>\n</ul>\n</li>\n</ul>\n<h3>Website</h3>\n<ul>\n<li>Autogenerating PPMP specification from JSON schemas to avoid discrepancies</li>\n<li>Generating UML schemas with plantuml</li>\n<li>Using similar HTML5 stack as simulation client for SPA website</li>\n</ul>\n<h3>Other</h3>\n<ul>\n<li>java and new python bindings in separate github repositories</li>\n</ul>\n',url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released",date:"2018-03-26T10:39:00.000Z",tags:["releases"],prev:{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed"},next:{url:"/blog/2018/9/4/Template-for-PPMP-transformation",title:"PPMP Use Cases: Template for PPMP transformation"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"Release-0.2.0",content:'<p>Finally, the second version (0.2.0) of the Eclipse unide project is released! The <a href="http://unide.eclipse.org">REST Server on the Testserver</a> has been updated as well.</p>\n<h1>Quick start</h1>\n<h2>Binsa chrome app</h2>\n<p>Download the binsa chrome app from <a href="http://download.eclipse.org/unide/binsa.crx">download page</a>. Open your chrome browser at <a href="chrome://extensions">chrome://extensions</a> and drag the binsa.crx file onto the page. You should be able to see your new chrome app in <a href="chrome://apps">chrome://apps</a></p>\n<h2>REST Server</h2>\n<p>Download the REST server file from <a href="https://repo.eclipse.org/content/repositories/unide-releases/org/eclipse/iot/unide/ppmp/ppmp-server/0.2.0/ppmp-server-0.2.0.jar">repo.eclipse.org</a>, create a simple configuration file (e.g. application_conf.json):</p>\n<pre class="language-json"><code class="language-json"><span class="token punctuation">{</span>\n  <span class="token property">"http.port"</span><span class="token operator">:</span> <span class="token number">8090</span><span class="token punctuation">,</span>\n  <span class="token property">"persistence.enable"</span><span class="token operator">:</span> <span class="token boolean">false</span>\n<span class="token punctuation">}</span>\n\n</code></pre>\n<p>and start the server</p>\n<pre class="language-bash"><code class="language-bash">java -jar ppmp-server-0.2.0.jar -conf application_conf.json\n</code></pre>\n<p>Point your browser to <a href="http://localhost:8090">http://localhost:8090</a> and see the servers documentation running on your local server! At this point, PPMP validation (via HTTP POST to <code>/rest/v2/validate</code>) is enabled, but no persistence.</p>\n<p>If you want to send data to the server, a quick way is via <a href="https://www.getpostman.com/">Postman App</a>, which is available as native app or <a href="https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=en">Chrome app</a>. Once installed and started, you can easily use the &quot;Import &gt; Import From Link&quot; feature to get the prepared <a href="https://raw.githubusercontent.com/eclipse/unide/f4d349bc4a0096d3f99e14cf5f8b9f53a5145fdd/servers/rest/assets/postman/unide.postman_collection.json">unide.postman_collection.json</a> and the corresponding <a href="https://raw.githubusercontent.com/eclipse/unide/f4d349bc4a0096d3f99e14cf5f8b9f53a5145fdd/servers/rest/assets/postman/unide.postman_environment.json">unide.postman_environment</a>. You should now have Machine/Measurement/Process messages and requests prepared in the Collections tab. In order to send, you could extend the URL with &quot;/validate&quot; and hit &quot;Send&quot; button. If you get the response</p>\n<blockquote>\n<p>Ppmp Message of type \'xy\' is valid</p>\n</blockquote>\n<p>the unide REST server works as expected!</p>\n<h1>Persistence</h1>\n<h2>Influx DB</h2>\n<p><a href="https://portal.influxdata.com/downloads">Download</a> the InfluxDB Time-Series Data Storage and unzip or install it on your system. By default, it opens an http port at 8086. In order to make use of it, the configuration file should be modified, e.g. to:</p>\n<pre class="language-json"><code class="language-json"><span class="token punctuation">{</span>\n  <span class="token property">"http.port"</span><span class="token operator">:</span> <span class="token number">8090</span><span class="token punctuation">,</span>\n  <span class="token property">"persistence.enable"</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>\n  <span class="token property">"persistence.system"</span><span class="token operator">:</span> <span class="token string">"influxDb"</span><span class="token punctuation">,</span>\n  <span class="token property">"influxDb.url"</span><span class="token operator">:</span> <span class="token string">"http://localhost:8086"</span><span class="token punctuation">,</span>\n  <span class="token property">"influxDb.user"</span><span class="token operator">:</span> <span class="token string">"root"</span><span class="token punctuation">,</span>\n  <span class="token property">"influxDb.password"</span><span class="token operator">:</span> <span class="token string">"root"</span>\n<span class="token punctuation">}</span>\n</code></pre>\n<p>After starting the database and the unide REST server, it should be possible to send POST requests to <code>http://localhost:8090/rest/v2</code>. This path receives all message types. To query the database after, use:<br>\n<a href="http://localhost:8086/query?pretty=true&amp;u=root&amp;p=root&amp;db=Measurements&amp;q=SELECT%20*%20FROM%20%22ppmp_measurements%22">http://localhost:8086/query?pretty=true&amp;u=root&amp;p=root&amp;db=Measurements&amp;q=SELECT * FROM &quot;ppmp_measurements&quot;</a> or the other databases that are documented on the <a href="http://localhost:8090/#influxdb_schema_design">running server instance</a>, respectively.</p>\n<h2>SQL (timescale, h2)</h2>\n<p>Download the appropriate jdbc driver, e.g. <a href="http://repo1.maven.org/maven2/com/h2database/h2/1.4.197/h2-1.4.197.jar">h2-*.jar</a>, modify the configuration file, e.g. for h2:</p>\n<pre class="language-json"><code class="language-json"><span class="token punctuation">{</span>\n  <span class="token property">"http.port"</span><span class="token operator">:</span> <span class="token number">8090</span><span class="token punctuation">,</span>\n  <span class="token property">"persistence.enable"</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>\n  <span class="token property">"persistence.system"</span><span class="token operator">:</span> <span class="token string">"sql"</span><span class="token punctuation">,</span>\n  <span class="token property">"sqlDb.driver"</span><span class="token operator">:</span> <span class="token string">"org.h2.Driver"</span><span class="token punctuation">,</span>\n  <span class="token property">"sqlDb.url"</span><span class="token operator">:</span> <span class="token string">"jdbc:h2:./test"</span><span class="token punctuation">,</span>\n  <span class="token property">"sqlDb.user"</span><span class="token operator">:</span> <span class="token string">"sa"</span><span class="token punctuation">,</span>\n  <span class="token property">"sqlDb.password"</span><span class="token operator">:</span> <span class="token string">""</span>\n<span class="token punctuation">}</span>\n</code></pre>\n<p>Start the PPMP Server with the jdbc dependency on the classpath, e.g.:</p>\n<pre class="language-bash"><code class="language-bash">java -cp <span class="token string">"h2-1.4.197.jar;ppmp-server-0.2.0.jar"</span> io.vertx.core.Launcher org.eclipse.iot.unide.server.MainVerticle -conf application.conf\n</code></pre>\n<p>Now, all the data send to the REST server is persisted in the file <code>test.mv.db</code>.<br>\nFor concurrent db actions (reading while writing), use the h2 tcp server instead. h2 is not recommended for production use!</p>\n<h1>Background</h1>\n<h2>Download</h2>\n<p>Available artifacts for download:</p>\n<ul>\n<li><a href="https://repo.eclipse.org/content/repositories/unide-releases/org/eclipse/iot/unide/ppmp/ppmp-schema/2.0.0/">PPMP Schema v2</a></li>\n<li><a href="https://repo.eclipse.org/content/repositories/unide-releases/org/eclipse/iot/unide/ppmp/ppmp-java-binding/0.2.0/">PPMP java Binding</a></li>\n<li><a href="https://pypi.python.org/packages/d5/af/c90911d1da56a1ed0238338ba01068d43b8cd0137e9ca52b0f52a279f73e/unide_python-0.2.0-py2.py3-none-any.whl#md5=ca67bcd536b3a4015f72f5fa53d36543">PPMP Python Binding</a></li>\n<li><a href="https://repo.eclipse.org/content/repositories/unide-releases/org/eclipse/iot/unide/ppmp/ppmp-server/0.2.0/">PPMP Server</a></li>\n<li><a href="http://download.eclipse.org/unide/binsa.crx">binsa client chrome app</a></li>\n</ul>\n<p>Source code:</p>\n<ul>\n<li><a href="https://github.com/eclipse/unide/releases/tag/v0.2.0">unide</a></li>\n<li><a href="https://github.com/eclipse/unide.java/releases/tag/v0.2.0">java binding</a></li>\n<li><a href="https://github.com/eclipse/unide.python/releases/tag/v0.2.0">python binding</a></li>\n</ul>\n<h2>Release notes</h2>\n<h3>REST Server improvements (refactoring &amp; persistence)</h3>\n<ul>\n<li>Added persistence to timeseries/postgres db</li>\n<li>Outfactored schema files</li>\n<li>Adjusted maven file</li>\n<li>Added unit tests</li>\n<li>Added documentation &amp; java docs</li>\n<li>Adjusted error handling</li>\n<li>Removed unused code</li>\n<li>Added postman collections</li>\n<li>Added grafana configuration file</li>\n</ul>\n<h3>New HTML5 simulation client</h3>\n<ul>\n<li>Progressive Webapp runs as website (see <a href="https://unide.eclipse.org/binsa">https://unide.eclipse.org/binsa</a>), browser app, native client (via <a href="https://nwjs.io/">nw.js</a>) or app (via <a href="https://cordova.apache.org/">Apache cordova</a>)</li>\n</ul>\n<h3>PPMP JSON Schema files</h3>\n<ul>\n<li>Introduced separate bundle for schemas</li>\n<li>general fixes\n<ul>\n<li>make schema draft-06 compliant</li>\n<li>added \'id\' and \'descriptions\' where applicable</li>\n<li>added \'type\' and \'default\' for enums</li>\n<li>added \'required\' fields where necessary</li>\n<li>made \'additionalProperties\': true explicit for \'metaData\'</li>\n<li>sorted the properties for improved readability</li>\n</ul>\n</li>\n<li>message_schema fixes\n<ul>\n<li>added minItems: 1 to messages</li>\n</ul>\n</li>\n<li>measurement_schema fixes\n<ul>\n<li>completed \'limits\' specification</li>\n<li>added \'patternProperties\' and minProperties detail to \'series\'</li>\n<li>added minItems: 1 to measurements</li>\n</ul>\n</li>\n<li>process_schema fixes\n<ul>\n<li>made \'id\' and \'name\' of a \'program\' mandatory</li>\n<li>fixed \'shutoffValues\', having properties not items</li>\n<li>fixed \'limits\', having properties not items and number values rather than object values as limits</li>\n<li>fixed \'specialValues\' to be an array of specialValue items with \'name\' for indicating the nature, rather than one single object with its keys indicating the nature. Offering optional \'$_time\' tag to be consistent with measurements.</li>\n<li>completed \'series\' definition</li>\n</ul>\n</li>\n</ul>\n<h3>Website</h3>\n<ul>\n<li>Autogenerating PPMP specification from JSON schemas to avoid discrepancies</li>\n<li>Generating UML schemas with plantuml</li>\n<li>Using similar HTML5 stack as simulation client for SPA website</li>\n</ul>\n<h3>Other</h3>\n<ul>\n<li>java and new python bindings in separate github repositories</li>\n</ul>\n',url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released",date:"2018-03-26T10:39:00.000Z",tags:["releases"],prev:{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed"},next:{url:"/blog/2018/9/4/Template-for-PPMP-transformation",title:"PPMP Use Cases: Template for PPMP transformation"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_article.dfd7fcb83848670d21b1.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2018/3/26/index.html b/blog/2018/3/26/index.html
index facd7d7..ff2b226 100644
--- a/blog/2018/3/26/index.html
+++ b/blog/2018/3/26/index.html
@@ -66,6 +66,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released",date:"2018-03-26T10:39:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released",date:"2018-03-26T10:39:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_blog.e921111d8f479ba5a1cd.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2018/3/index.html b/blog/2018/3/index.html
index 8342138..883513e 100644
--- a/blog/2018/3/index.html
+++ b/blog/2018/3/index.html
@@ -66,6 +66,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released",date:"2018-03-26T10:39:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released",date:"2018-03-26T10:39:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_blog.e921111d8f479ba5a1cd.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2018/9/4/Template-for-PPMP-transformation/index.html b/blog/2018/9/4/Template-for-PPMP-transformation/index.html
index 03f871b..10b0b30 100644
--- a/blog/2018/9/4/Template-for-PPMP-transformation/index.html
+++ b/blog/2018/9/4/Template-for-PPMP-transformation/index.html
@@ -229,6 +229,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"Template-for-PPMP-transformation",content:'<h1>Quick start</h1>\n<p>In <a href="https://www.eclipse.org/unide/blog/2018/2/11/Transform-PPMP-with-camel/">a previous blog post</a>, I have already introduced Apache Camel as a tool to transform to PPMP. In this post, I want to dive a little deeper to get you started with your own transformation.<br>\nYou can find corresponding source code with some transformation examples <a href="https://github.com/eclipselabs/eclipseiot-testbed-productionperformancemanagement/tree/master/camel-integrator">in the repository of the Eclipse PPM Testbed</a>. After download or checkout of the project, you can easily package everything necessary for an installation via <a href="https://maven.apache.org/">Apache Maven</a> and java 8+:</p>\n<pre class="language-bash"><code class="language-bash"><span class="token function">git</span> clone https://github.com/eclipselabs/eclipseiot-testbed-productionperformancemanagement.git\n<span class="token function">cd</span> eclipseiot-testbed-productionperformancemanagement\n<span class="token function">cd</span> camel-integrator\nmvn package\n</code></pre>\n<p>After successful build, you should get a zip file at <code>target/camel-integrator-*-assembly.zip</code> with the following content</p>\n<ul>\n<li><code>bin</code><br>\nThe IntegratorStarter* files for Windows and Linux can be used to start the integrator manually. WinServiceInstaller.bat und WinServiceUninstaller.bat can be executed with Admin permissions in Windows to register/unregister this java application as Windows Service called &quot;Integrator Service&quot;.</li>\n<li><code>conf</code><br>\nThis is where the main configuration file <code>application-context.xml</code>, further included spring xml configurations, as well as the configuration for logging <code>log4j.properties</code> and a key-value-file for quick configuration <code>application.properties</code> can be found. After modification of any of them, the integrator should be restarted.</li>\n<li><code>lib</code><br>\nContains all java dependencies and their dependencies as individual jar files</li>\n<li><code>log</code><br>\nAfter the first start, you will find an additional directory that contains the logs of every execution, as defined in the <code>conf/log4j.properties</code> file.</li>\n</ul>\n<p>So this <code>camel-integrator-*-assembly.zip</code> is all you need, ready to being shipped and installed in your target system.</p>\n<h1>How can I modify this?</h1>\n<p>In the <code>conf</code> folder of the output or <code>src/main/resources</code> src folder, you\'ll find multiple examples on how to use Apache Camel with Production Performance Management Protocol. Most of the examples are based on <a href="https://github.com/apache/camel/blob/master/components/camel-spring/src/main/docs/spring.adoc">spring xml</a>.<br>\nThe most important terms to understand them are:</p>\n<table>\n<thead>\n<tr>\n<th>xml tag</th>\n<th>meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>bean</td>\n<td>additional functionality, coded as java class / function</td>\n</tr>\n<tr>\n<td>camelContext</td>\n<td>the main, camel specific configurations</td>\n</tr>\n<tr>\n<td>route</td>\n<td>describes the data flow as process</td>\n</tr>\n<tr>\n<td>from / to</td>\n<td>entry / exit points for the data flow. This is also, were external systems are accessed via <a href="https://github.com/apache/camel/tree/camel-2.21.0/components">components</a></td>\n</tr>\n<tr>\n<td>onException</td>\n<td>error handling for the data flow</td>\n</tr>\n<tr>\n<td>pipeline, multicast, ...</td>\n<td>routing of data via <a href="http://camel.apache.org/enterprise-integration-patterns.html">Enterprise Integration pattern</a></td>\n</tr>\n</tbody>\n</table>\n<p>Among others, you\'ll find:</p>\n<div class="card figure is-pulled-right">\n\t<div class="card-image">\n\t\t<figure class="image">\n\t\t\t<img alt="html log file" title="html log file" src="/unide/images/blog/Transform-PPMP-with-camel-2-logfile.png"></img>\n\t\t</figure>\n\t</div>\n\t<div class="card-content">\n\t\thtml logfile before transformation to PPMP\n\t</div>\n</div>\n<ul>\n<li><code>application-context.xml</code><br>\nMain entry file to start camel routes. It contains a general PPMP validation REST endpoint that reuses the route from <code>ppmp-validate-context.xml</code></li>\n<li><code>mqtt-context.xml</code><br>\nA simple example of converting transport protocol (mqtt to REST), without looking at the payload</li>\n<li><code>ppmp-splitAndRewrite-context.xml</code><br>\nShows how to receive (PPMP-) payload via different REST paths (/rest or /ppm), and each forwarding to two seperate endpoints (/rest and /ppm)\n<ul>\n<li><code>ppmpRewrite.xml</code> and <code>ppmRewrite.xml</code><br>\nmapping examples to rewrite the urls</li>\n</ul>\n</li>\n<li><code>ppmp-validate-context.xml</code><br>\nA simple validation route for PPMP messages that can be reused in many other routes.</li>\n<li><code>psi6000-transform-context.xml</code><br>\nA more advanced example of converting a psi6000 JSON format, converting it to plain old java object (POJO), transforming that to PPMP POJOs (using <a href="https://github.com/eclipse/unide.java">unide.java</a>) and forwarding these to actual REST endpoints</li>\n<li><code>kistler.xml</code><br>\nThis example takes html files with a structure similar to the test file in <a href="https://github.com/eclipselabs/eclipseiot-testbed-productionperformancemanagement/blob/master/camel-integrator/src/test/data/00000855.html"><code>src/test/data/00000855.html</code></a>, cleans the html structure, retrieves the relevant parts via <a href="https://en.wikipedia.org/wiki/XPath">XPath</a> and creates a PPMP process message out of that</li>\n<li><code>application.properties</code><br>\nContains key/value pairs that can be used in the camel context configurations.</li>\n<li><code>log4j.properties</code><br>\nThe configuration for logging. For testing purposes, the log4j.properties in /src/test/resources is used.</li>\n</ul>\n<p>In order to get familiar with these transformations, I suggest you:</p>\n<ul>\n<li>open the <code>application-context.xml</code> in your favorite editor</li>\n<li>remove the <code>&lt;import .../&gt;</code> statements</li>\n<li>add your own <code>&lt;route&gt;...&lt;/route&gt;</code>, maybe as simple as<pre class="language-xml"><code class="language-xml">  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>route</span><span class="token punctuation">></span></span>\n  \t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>from</span> <span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>jetty:http://0.0.0.0:9090/<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n  \t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setBody</span><span class="token punctuation">></span></span>\n  \t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>simple</span><span class="token punctuation">></span></span>hello world!<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>simple</span><span class="token punctuation">></span></span>\n  \t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setBody</span><span class="token punctuation">></span></span>\n  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>route</span><span class="token punctuation">></span></span>\n</code></pre>\n</li>\n<li>start a run directly (with bundling to a zip file) with:<pre class="language-bash"><code class="language-bash">  mvn exec:java\n</code></pre>\n</li>\n<li>and review the result. With the example above, just open the url <a href="http://localhost:9090">http://localhost:9090</a> and see the <code>hello world!</code> in your browser</li>\n</ul>\n<p>If you prefer a visual model of these camel xml definitions, you could also make use of <a href="https://tools.jboss.org/features/fusetools.html">JBoss Fuse Tooling</a> which is available for <a href="https://projects.eclipse.org/releases/oxygen">Eclipse Workbench 4.3+</a> through <a href="https://marketplace.eclipse.org/content/jboss-tools">the Marketplace</a>. Be aware that this might cause additional overhead.</p>\n<div class="card figure">\n\t<div class="card-image">\n\t\t<figure class="image">\n\t\t\t<img alt="JBoss Tools" title="JBoss Tools for Eclipse Workbench" src="/unide/images/blog/Transform-PPMP-with-camel-2-eclipse.png"></img>\n\t\t</figure>\n\t</div>\n\t<div class="card-content">\n\t\tJBoss Tools for Eclipse Workbench\n\t</div>\n</div>\n<p>If you want to make use of any other of the (as of camel 2.21.0) <a href="https://github.com/apache/camel/tree/camel-2.21.0/components">281+ components</a>, you should add the respective maven dependency to the <code>pom.xml</code>. For example:</p>\n<pre class="language-xml"><code class="language-xml"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>project</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://maven.apache.org/POM/4.0.0<span class="token punctuation">"</span></span> <span class="token attr-name"><span class="token namespace">xmlns:</span>xsi</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.w3.org/2001/XMLSchema-instance<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xsi:</span>schemaLocation</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t...\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>dependencies</span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>dependency</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>groupId</span><span class="token punctuation">></span></span>org.apache.camel<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>groupId</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>artifactId</span><span class="token punctuation">></span></span>camel-amqp<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>artifactId</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>version</span><span class="token punctuation">></span></span>${camel.version}<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>version</span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>dependency</span><span class="token punctuation">></span></span>\n\t...\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>dependencies</span><span class="token punctuation">></span></span>\n\t...\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>project</span><span class="token punctuation">></span></span>\n</code></pre>\n<h1>Testing</h1>\n<p>Testing is an important part of the development cycle, especially for the core components that have to work reliably in a production environment.<br>\nThe project includes example tests in the <code>src/test</code> folder:</p>\n<ul>\n<li><code>java</code><br>\ncontains the actual java unit tests that make use of <a href="https://github.com/apache/camel/blob/61a58836da57bab38ce719cbd1effd36253687a4/docs/user-manual/en/spring-testing.adoc"><code>CamelSpringTestSupport</code></a> to wire xml CamelContext configuration, test data and expected results together</li>\n<li><code>resources</code><br>\ncontains the spring xml configuration that is used by the java test classes and resamble the actual configurations from <code>src/main/resources</code></li>\n<li><code>data</code><br>\ncontains testdata for the data flows and the transformation</li>\n</ul>\n<p>Tests can easily be run from within an IDE (eclipse, visual code studio etc.) or via commandline</p>\n<pre class="language-bash"><code class="language-bash">mvn <span class="token function">test</span>\n</code></pre>\n<p>You will see the output of the test runs. If it looks like this, it works as expected:</p>\n<pre class="language-bash"><code class="language-bash">Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.846 sec\n\nResults <span class="token keyword">:</span>\n\nTests run: 3, Failures: 0, Errors: 0, Skipped: 0\n\n<span class="token punctuation">[</span>INFO<span class="token punctuation">]</span> ------------------------------------------------------------------------\n<span class="token punctuation">[</span>INFO<span class="token punctuation">]</span> BUILD SUCCESS\n<span class="token punctuation">[</span>INFO<span class="token punctuation">]</span> ------------------------------------------------------------------------\n<span class="token punctuation">[</span>INFO<span class="token punctuation">]</span> Total time: 32.267 s\n<span class="token punctuation">[</span>INFO<span class="token punctuation">]</span> Finished at: 2018-04-09T15:25:25+02:00\n<span class="token punctuation">[</span>INFO<span class="token punctuation">]</span> Final Memory: 25M/85M\n<span class="token punctuation">[</span>INFO<span class="token punctuation">]</span> ------------------------------------------------------------------------\n</code></pre>\n<h1>Summary</h1>\n<p>The provided camel project template facilitates the creation of simple connectors. You can download it, modify or extend it, package the integrator to a zip file and deploy it on a target server. The included scripts help registering the integrator as an operating system service to run 24/7.</p>\n',url:"/blog/2018/9/4/Template-for-PPMP-transformation",title:"PPMP Use Cases: Template for PPMP transformation",date:"2018-09-04T00:00:00.000Z",tags:["use cases"],prev:{url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_article.841e1aa4e71e21120e8c.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{post:{name:"Template-for-PPMP-transformation",content:'<h1>Quick start</h1>\n<p>In <a href="https://www.eclipse.org/unide/blog/2018/2/11/Transform-PPMP-with-camel/">a previous blog post</a>, I have already introduced Apache Camel as a tool to transform to PPMP. In this post, I want to dive a little deeper to get you started with your own transformation.<br>\nYou can find corresponding source code with some transformation examples <a href="https://github.com/eclipselabs/eclipseiot-testbed-productionperformancemanagement/tree/master/camel-integrator">in the repository of the Eclipse PPM Testbed</a>. After download or checkout of the project, you can easily package everything necessary for an installation via <a href="https://maven.apache.org/">Apache Maven</a> and java 8+:</p>\n<pre class="language-bash"><code class="language-bash"><span class="token function">git</span> clone https://github.com/eclipselabs/eclipseiot-testbed-productionperformancemanagement.git\n<span class="token function">cd</span> eclipseiot-testbed-productionperformancemanagement\n<span class="token function">cd</span> camel-integrator\nmvn package\n</code></pre>\n<p>After successful build, you should get a zip file at <code>target/camel-integrator-*-assembly.zip</code> with the following content</p>\n<ul>\n<li><code>bin</code><br>\nThe IntegratorStarter* files for Windows and Linux can be used to start the integrator manually. WinServiceInstaller.bat und WinServiceUninstaller.bat can be executed with Admin permissions in Windows to register/unregister this java application as Windows Service called &quot;Integrator Service&quot;.</li>\n<li><code>conf</code><br>\nThis is where the main configuration file <code>application-context.xml</code>, further included spring xml configurations, as well as the configuration for logging <code>log4j.properties</code> and a key-value-file for quick configuration <code>application.properties</code> can be found. After modification of any of them, the integrator should be restarted.</li>\n<li><code>lib</code><br>\nContains all java dependencies and their dependencies as individual jar files</li>\n<li><code>log</code><br>\nAfter the first start, you will find an additional directory that contains the logs of every execution, as defined in the <code>conf/log4j.properties</code> file.</li>\n</ul>\n<p>So this <code>camel-integrator-*-assembly.zip</code> is all you need, ready to being shipped and installed in your target system.</p>\n<h1>How can I modify this?</h1>\n<p>In the <code>conf</code> folder of the output or <code>src/main/resources</code> src folder, you\'ll find multiple examples on how to use Apache Camel with Production Performance Management Protocol. Most of the examples are based on <a href="https://github.com/apache/camel/blob/master/components/camel-spring/src/main/docs/spring.adoc">spring xml</a>.<br>\nThe most important terms to understand them are:</p>\n<table>\n<thead>\n<tr>\n<th>xml tag</th>\n<th>meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>bean</td>\n<td>additional functionality, coded as java class / function</td>\n</tr>\n<tr>\n<td>camelContext</td>\n<td>the main, camel specific configurations</td>\n</tr>\n<tr>\n<td>route</td>\n<td>describes the data flow as process</td>\n</tr>\n<tr>\n<td>from / to</td>\n<td>entry / exit points for the data flow. This is also, were external systems are accessed via <a href="https://github.com/apache/camel/tree/camel-2.21.0/components">components</a></td>\n</tr>\n<tr>\n<td>onException</td>\n<td>error handling for the data flow</td>\n</tr>\n<tr>\n<td>pipeline, multicast, ...</td>\n<td>routing of data via <a href="http://camel.apache.org/enterprise-integration-patterns.html">Enterprise Integration pattern</a></td>\n</tr>\n</tbody>\n</table>\n<p>Among others, you\'ll find:</p>\n<div class="card figure is-pulled-right">\n\t<div class="card-image">\n\t\t<figure class="image">\n\t\t\t<img alt="html log file" title="html log file" src="/unide/images/blog/Transform-PPMP-with-camel-2-logfile.png"></img>\n\t\t</figure>\n\t</div>\n\t<div class="card-content">\n\t\thtml logfile before transformation to PPMP\n\t</div>\n</div>\n<ul>\n<li><code>application-context.xml</code><br>\nMain entry file to start camel routes. It contains a general PPMP validation REST endpoint that reuses the route from <code>ppmp-validate-context.xml</code></li>\n<li><code>mqtt-context.xml</code><br>\nA simple example of converting transport protocol (mqtt to REST), without looking at the payload</li>\n<li><code>ppmp-splitAndRewrite-context.xml</code><br>\nShows how to receive (PPMP-) payload via different REST paths (/rest or /ppm), and each forwarding to two seperate endpoints (/rest and /ppm)\n<ul>\n<li><code>ppmpRewrite.xml</code> and <code>ppmRewrite.xml</code><br>\nmapping examples to rewrite the urls</li>\n</ul>\n</li>\n<li><code>ppmp-validate-context.xml</code><br>\nA simple validation route for PPMP messages that can be reused in many other routes.</li>\n<li><code>psi6000-transform-context.xml</code><br>\nA more advanced example of converting a psi6000 JSON format, converting it to plain old java object (POJO), transforming that to PPMP POJOs (using <a href="https://github.com/eclipse/unide.java">unide.java</a>) and forwarding these to actual REST endpoints</li>\n<li><code>kistler.xml</code><br>\nThis example takes html files with a structure similar to the test file in <a href="https://github.com/eclipselabs/eclipseiot-testbed-productionperformancemanagement/blob/master/camel-integrator/src/test/data/00000855.html"><code>src/test/data/00000855.html</code></a>, cleans the html structure, retrieves the relevant parts via <a href="https://en.wikipedia.org/wiki/XPath">XPath</a> and creates a PPMP process message out of that</li>\n<li><code>application.properties</code><br>\nContains key/value pairs that can be used in the camel context configurations.</li>\n<li><code>log4j.properties</code><br>\nThe configuration for logging. For testing purposes, the log4j.properties in /src/test/resources is used.</li>\n</ul>\n<p>In order to get familiar with these transformations, I suggest you:</p>\n<ul>\n<li>open the <code>application-context.xml</code> in your favorite editor</li>\n<li>remove the <code>&lt;import .../&gt;</code> statements</li>\n<li>add your own <code>&lt;route&gt;...&lt;/route&gt;</code>, maybe as simple as<pre class="language-xml"><code class="language-xml">  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>route</span><span class="token punctuation">></span></span>\n  \t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>from</span> <span class="token attr-name">uri</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>jetty:http://0.0.0.0:9090/<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n  \t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>setBody</span><span class="token punctuation">></span></span>\n  \t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>simple</span><span class="token punctuation">></span></span>hello world!<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>simple</span><span class="token punctuation">></span></span>\n  \t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>setBody</span><span class="token punctuation">></span></span>\n  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>route</span><span class="token punctuation">></span></span>\n</code></pre>\n</li>\n<li>start a run directly (with bundling to a zip file) with:<pre class="language-bash"><code class="language-bash">  mvn exec:java\n</code></pre>\n</li>\n<li>and review the result. With the example above, just open the url <a href="http://localhost:9090">http://localhost:9090</a> and see the <code>hello world!</code> in your browser</li>\n</ul>\n<p>If you prefer a visual model of these camel xml definitions, you could also make use of <a href="https://tools.jboss.org/features/fusetools.html">JBoss Fuse Tooling</a> which is available for <a href="https://projects.eclipse.org/releases/oxygen">Eclipse Workbench 4.3+</a> through <a href="https://marketplace.eclipse.org/content/jboss-tools">the Marketplace</a>. Be aware that this might cause additional overhead.</p>\n<div class="card figure">\n\t<div class="card-image">\n\t\t<figure class="image">\n\t\t\t<img alt="JBoss Tools" title="JBoss Tools for Eclipse Workbench" src="/unide/images/blog/Transform-PPMP-with-camel-2-eclipse.png"></img>\n\t\t</figure>\n\t</div>\n\t<div class="card-content">\n\t\tJBoss Tools for Eclipse Workbench\n\t</div>\n</div>\n<p>If you want to make use of any other of the (as of camel 2.21.0) <a href="https://github.com/apache/camel/tree/camel-2.21.0/components">281+ components</a>, you should add the respective maven dependency to the <code>pom.xml</code>. For example:</p>\n<pre class="language-xml"><code class="language-xml"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>project</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://maven.apache.org/POM/4.0.0<span class="token punctuation">"</span></span> <span class="token attr-name"><span class="token namespace">xmlns:</span>xsi</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://www.w3.org/2001/XMLSchema-instance<span class="token punctuation">"</span></span>\n\t<span class="token attr-name"><span class="token namespace">xsi:</span>schemaLocation</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n\t...\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>dependencies</span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>dependency</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>groupId</span><span class="token punctuation">></span></span>org.apache.camel<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>groupId</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>artifactId</span><span class="token punctuation">></span></span>camel-amqp<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>artifactId</span><span class="token punctuation">></span></span>\n\t\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>version</span><span class="token punctuation">></span></span>${camel.version}<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>version</span><span class="token punctuation">></span></span>\n\t\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>dependency</span><span class="token punctuation">></span></span>\n\t...\n\t<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>dependencies</span><span class="token punctuation">></span></span>\n\t...\n<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>project</span><span class="token punctuation">></span></span>\n</code></pre>\n<h1>Testing</h1>\n<p>Testing is an important part of the development cycle, especially for the core components that have to work reliably in a production environment.<br>\nThe project includes example tests in the <code>src/test</code> folder:</p>\n<ul>\n<li><code>java</code><br>\ncontains the actual java unit tests that make use of <a href="https://github.com/apache/camel/blob/61a58836da57bab38ce719cbd1effd36253687a4/docs/user-manual/en/spring-testing.adoc"><code>CamelSpringTestSupport</code></a> to wire xml CamelContext configuration, test data and expected results together</li>\n<li><code>resources</code><br>\ncontains the spring xml configuration that is used by the java test classes and resamble the actual configurations from <code>src/main/resources</code></li>\n<li><code>data</code><br>\ncontains testdata for the data flows and the transformation</li>\n</ul>\n<p>Tests can easily be run from within an IDE (eclipse, visual code studio etc.) or via commandline</p>\n<pre class="language-bash"><code class="language-bash">mvn <span class="token function">test</span>\n</code></pre>\n<p>You will see the output of the test runs. If it looks like this, it works as expected:</p>\n<pre class="language-bash"><code class="language-bash">Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.846 sec\n\nResults <span class="token keyword">:</span>\n\nTests run: 3, Failures: 0, Errors: 0, Skipped: 0\n\n<span class="token punctuation">[</span>INFO<span class="token punctuation">]</span> ------------------------------------------------------------------------\n<span class="token punctuation">[</span>INFO<span class="token punctuation">]</span> BUILD SUCCESS\n<span class="token punctuation">[</span>INFO<span class="token punctuation">]</span> ------------------------------------------------------------------------\n<span class="token punctuation">[</span>INFO<span class="token punctuation">]</span> Total time: 32.267 s\n<span class="token punctuation">[</span>INFO<span class="token punctuation">]</span> Finished at: 2018-04-09T15:25:25+02:00\n<span class="token punctuation">[</span>INFO<span class="token punctuation">]</span> Final Memory: 25M/85M\n<span class="token punctuation">[</span>INFO<span class="token punctuation">]</span> ------------------------------------------------------------------------\n</code></pre>\n<h1>Summary</h1>\n<p>The provided camel project template facilitates the creation of simple connectors. You can download it, modify or extend it, package the integrator to a zip file and deploy it on a target server. The included scripts help registering the integrator as an operating system service to run 24/7.</p>\n',url:"/blog/2018/9/4/Template-for-PPMP-transformation",title:"PPMP Use Cases: Template for PPMP transformation",date:"2018-09-04T00:00:00.000Z",tags:["use cases"],prev:{url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released"}}}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_article.dfd7fcb83848670d21b1.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2018/9/4/index.html b/blog/2018/9/4/index.html
index 1e8b3cc..6dd1391 100644
--- a/blog/2018/9/4/index.html
+++ b/blog/2018/9/4/index.html
@@ -66,6 +66,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/9/4/Template-for-PPMP-transformation",title:"PPMP Use Cases: Template for PPMP transformation",date:"2018-09-04T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/9/4/Template-for-PPMP-transformation",title:"PPMP Use Cases: Template for PPMP transformation",date:"2018-09-04T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_blog.e921111d8f479ba5a1cd.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2018/9/index.html b/blog/2018/9/index.html
index e61be63..0c7bbaf 100644
--- a/blog/2018/9/index.html
+++ b/blog/2018/9/index.html
@@ -66,6 +66,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/9/4/Template-for-PPMP-transformation",title:"PPMP Use Cases: Template for PPMP transformation",date:"2018-09-04T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/9/4/Template-for-PPMP-transformation",title:"PPMP Use Cases: Template for PPMP transformation",date:"2018-09-04T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_blog.e921111d8f479ba5a1cd.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/2018/index.html b/blog/2018/index.html
index b898af9..42dc60a 100644
--- a/blog/2018/index.html
+++ b/blog/2018/index.html
@@ -82,6 +82,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/9/4/Template-for-PPMP-transformation",title:"PPMP Use Cases: Template for PPMP transformation",date:"2018-09-04T00:00:00.000Z"},{url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released",date:"2018-03-26T10:39:00.000Z"},{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:"2018-02-13T00:00:00.000Z"},{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:"2018-02-11T00:00:00.000Z"},{url:"/blog/2018/1/26/New-website",title:"Updated Website",date:"2018-01-26T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/9/4/Template-for-PPMP-transformation",title:"PPMP Use Cases: Template for PPMP transformation",date:"2018-09-04T00:00:00.000Z"},{url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released",date:"2018-03-26T10:39:00.000Z"},{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:"2018-02-13T00:00:00.000Z"},{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:"2018-02-11T00:00:00.000Z"},{url:"/blog/2018/1/26/New-website",title:"Updated Website",date:"2018-01-26T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_blog.e921111d8f479ba5a1cd.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/blog/index.html b/blog/index.html
index 707c38c..d055c37 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -82,6 +82,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/9/4/Template-for-PPMP-transformation",title:"PPMP Use Cases: Template for PPMP transformation",date:"2018-09-04T00:00:00.000Z"},{url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released",date:"2018-03-26T10:39:00.000Z"},{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:"2018-02-13T00:00:00.000Z"},{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:"2018-02-11T00:00:00.000Z"},{url:"/blog/2018/1/26/New-website",title:"Updated Website",date:"2018-01-26T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_blog.d6903346e5cdc54871a0.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{list:[{url:"/blog/2018/9/4/Template-for-PPMP-transformation",title:"PPMP Use Cases: Template for PPMP transformation",date:"2018-09-04T00:00:00.000Z"},{url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released",date:"2018-03-26T10:39:00.000Z"},{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:"2018-02-13T00:00:00.000Z"},{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:"2018-02-11T00:00:00.000Z"},{url:"/blog/2018/1/26/New-website",title:"Updated Website",date:"2018-01-26T00:00:00.000Z"}]}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_blog.e921111d8f479ba5a1cd.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/faq/index.html b/faq/index.html
index 2521b3a..5688427 100644
--- a/faq/index.html
+++ b/faq/index.html
@@ -78,6 +78,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_faq.af7b946e7573917bdb35.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_faq.ddd0c6c0a2a46ba04afd.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/files/14.343dcebd5ec0bf01fc33.js b/files/17.68457182c4872d1a7c24.js
similarity index 90%
rename from files/14.343dcebd5ec0bf01fc33.js
rename to files/17.68457182c4872d1a7c24.js
index dd637c4..767c720 100644
--- a/files/14.343dcebd5ec0bf01fc33.js
+++ b/files/17.68457182c4872d1a7c24.js
@@ -1 +1 @@
-webpackJsonp([14],{b4ia:function(e,t){e.exports=[{url:"/blog/2018/1/26/New-website",title:"Updated Website",date:"2018-01-26T00:00:00.000Z"},{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:"2018-02-11T00:00:00.000Z"},{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:"2018-02-13T00:00:00.000Z"},{url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released",date:"2018-03-26T10:39:00.000Z"},{url:"/blog/2018/9/4/Template-for-PPMP-transformation",title:"PPMP Use Cases: Template for PPMP transformation",date:"2018-09-04T00:00:00.000Z"}]}});
\ No newline at end of file
+webpackJsonp([17],{b4ia:function(e,t){e.exports=[{url:"/blog/2018/1/26/New-website",title:"Updated Website",date:"2018-01-26T00:00:00.000Z"},{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:"2018-02-11T00:00:00.000Z"},{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:"2018-02-13T00:00:00.000Z"},{url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released",date:"2018-03-26T10:39:00.000Z"},{url:"/blog/2018/9/4/Template-for-PPMP-transformation",title:"PPMP Use Cases: Template for PPMP transformation",date:"2018-09-04T00:00:00.000Z"}]}});
\ No newline at end of file
diff --git a/files/18.6ecc186b3a92e328a757.js b/files/18.6ecc186b3a92e328a757.js
new file mode 100644
index 0000000..b74f9a6
--- /dev/null
+++ b/files/18.6ecc186b3a92e328a757.js
@@ -0,0 +1 @@
+webpackJsonp([18],{uwRd:function(e,t){e.exports={type:"object",properties:{"content-spec":{type:"string",default:"urn:spec://eclipse.org/unide/process-message#v3",description:"Defines what the format version is"},device:{type:"object",description:"Contains information about the device",properties:{id:{type:"string",description:"The unique identification of the device. As this is used to identify a device independently from time or location the id itself must be stable and unique. Recommended is to use a universally unique identifier (UUID).",maxLength:36},mode:{type:"string",description:"The operational mode indicates the functional state of the device. This is not restrictected to enum, since it is dependent on the machine, process or use case. Examples are 'auto', 'manual', 'test', 'wait', 'maintenance', 'run', 'stop', 'other' or 'unknown'"},state:{type:"string",enum:["OK","INFO","WARN","ERROR","UNKNOWN"],default:"UNKNOWN",description:"The state describes the technical condition of a device."}},required:["id"]},process:{type:"object",description:"Contains information about the process. If the process JSON object is set, then all information in measurements are process phases",properties:{externalId:{type:"string",description:"The process id identifies the process as part of long living process. The process id can be used to connect multiple processes in a manufacturing chain. The id has to be set and tracked by the different devices in the chain.",maxLength:36},program:{type:"object",description:"Contains information about the program that was used in the process.",properties:{id:{type:"string",description:"The program identifier",maxLength:36},lastChangedDate:{type:"string",format:"date-time",description:"The date when the program was last changed"},name:{type:"string",description:"The name of the program",maxLength:256}},required:["id"]},result:{type:"string",enum:["OK","NOK","UNKNOWN"],description:"Information if the result was ok or not. This is only required if part information should be saved.",default:"UNKNOWN"},shutoffPhase:{type:"string",description:"The id of the phase that led to stop the process. The shutOffPhase is the phase of the process in which either pre-defined parameters are met to successfully finish the process or an error that stopped the process. That is not necessarily the last phase. The shutOffPhase should be sent when the last process phase is sent."},ts:{type:"string",format:"date-time",description:"Start time of the process"}},required:["ts"]},measurements:{allOf:[{type:"array",minItems:1,items:{type:"object",properties:{code:{type:"string",description:"The code is an addendum to the result which allows to pass information in the case the result was NOK. The value often stems from the integrated system e.g. a PLC code",maxLength:128},context:{type:"object",description:"Provides additional information about the data provided in the series element. An entry in the context applies to the element in the series with the same key.",patternProperties:{"^[^$]+":{type:"object",description:"The key shall be the name of a measurement point (element of series element). The value is a structure of additional context information.",properties:{accuracy:{oneOf:[{type:"number",description:"A constant that describes the accuracy of the corresponding measurement as absolute value"},{type:"array",description:"An array of accuracy values. The items of the array correspond to the respective measurements at the same position.",items:{type:"number"}}]},limits:{description:"Provides information about the limit for data provided in the series element. The limit corresponds to the measurement point (see also series element) with the same key. The value is a structure of upper/lower limits and applies to numeric values only.",type:"object",oneOf:[{type:"object",description:"A constant limit for all corresponding measurements",properties:{lowerError:{description:"Indicates an error if this limit is underrun",type:"number"},lowerWarn:{description:"Indicates a warning if this limit is underrun",type:"number"},target:{description:"Indicates the intented target value of the measurement",type:"number"},upperError:{description:"Indicates an error if this limit is exceeded",type:"number"},upperWarn:{description:"Indicates a warning if this limit is exceeded",type:"number"}}},{type:"object",description:"An array of limit values. The items of the array correspond to the respective measurements at the same position.",properties:{lowerError:{description:"Indicates an error if these limits is underrun. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},lowerWarn:{description:"Indicates a warning if these limits is underrun. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},target:{description:"Indicates the intented target values. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},upperError:{description:"Indicates an error if these limits is exceeded. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},upperWarn:{description:"Indicates a warning if these limits is exceeded. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}}}}]},offset:{description:"The offset applies to numeric data type only.",oneOf:[{type:"number",description:"Describes the offset of the corresponding measurement as absolute value"},{type:"array",description:"An array of offset values. The items of the array correspond to the respective measurements at the same position.",items:{type:"number"}}]},type:{type:"string",description:"The data type of the corresponding measurement value.",enum:["BASE64","BOOLEAN","NUMBER","OTHER","REF","STRING"],default:"NUMBER"},unit:{type:"string",description:"Describes the unit of the corresponding measurement. It is recommended to use symbols as defined in https://tools.ietf.org/html/draft-ietf-core-senml-14#section-12.1"}},minProperties:1}},required:[]},result:{type:"string",enum:["OK","NOK","UNKNOWN"],description:"Information if the result was ok or not. This is only required if part information should be saved.",default:"UNKNOWN"},series:{type:"object",description:"The series data collected for the measurements. Every entry matches a Measurement Point of the Device Type. In the case of a time series, one column contains the time offsets.",properties:{time:{type:"array",description:"The time offset in milliseconds (positive values in ascending order starting with 0) to the 'ts' field of the measurement",items:{type:"integer"}}},patternProperties:{"^[^$]+":{type:"array",items:{type:"number"}}},required:["time"],minProperties:2},ts:{format:"date-time",type:"string",description:"Start time of the the data measurment in  ISO 8601 format"}},required:["ts","series"]}},{type:"array",items:{type:"object",properties:{name:{type:"string",description:"The name of the process phase",maxLength:256},phase:{type:"string",description:"The id of the process phase",maxLength:256},specialValues:{type:"array",items:{type:"object",description:"Provides information about special or interesting values during the process phase.",properties:{time:{type:"integer",description:"The time offset in milliseconds to the 'ts' field of the measurement"},name:{type:"string",description:"Indicates the type of the specialValue (e.g. 'shutoff', endanzug', 'turningPoint' etc.)"},value:{type:"object",description:"Contains the actual (multidimensional) value of interest. Similarly to series, every entry matches a Measurement Point of the device",patternProperties:{"^[^$]+":{type:"number"}},minProperties:1}},required:["value"]}}}}}]}},required:["content-spec","device","process","measurements"]}}});
\ No newline at end of file
diff --git a/files/19.19d62025503672303cb1.js b/files/19.19d62025503672303cb1.js
new file mode 100644
index 0000000..79555cc
--- /dev/null
+++ b/files/19.19d62025503672303cb1.js
@@ -0,0 +1 @@
+webpackJsonp([19],{"1SJ2":function(e,t){e.exports={type:"object",properties:{"content-spec":{type:"string",default:"urn:spec://eclipse.org/unide/machine-message#v3",description:"Defines what the format version is"},device:{type:"object",description:"Contains information about the device",properties:{id:{type:"string",description:"The unique identification of the device. As this is used to identify a device independently from time or location the id itself must be stable and unique. Recommended is to use a universally unique identifier (UUID).",maxLength:36},mode:{type:"string",description:"The operational mode indicates the functional state of the device. This is not restrictected to enum, since it is dependent on the machine, process or use case. Examples are 'auto', 'manual', 'test', 'wait', 'maintenance', 'run', 'stop', 'other' or 'unknown'"},state:{type:"string",enum:["OK","INFO","WARN","ERROR","UNKNOWN"],default:"UNKNOWN",description:"The state describes the technical condition of a device."}},required:["id"]},messages:{minItems:1,type:"array",items:{type:"object",description:"Collection of messages",properties:{code:{type:"string",description:"The code is an addendum to the result which allows to pass information in the case the result was NOK. The value often stems from the integrated system e.g. a PLC code",maxLength:128},description:{type:"string",description:"The description is used to describe the purpose of the message, e.g. the problem",maxLength:2e3},hint:{type:"string",description:"In case a problem is reported, the hint can be used to point out a possible solution",maxLength:2e3},origin:{type:"string",description:"The origin of the message if not the device identified by deviceID in the header element. Could be used to identify a subsystem or a particular sensor/part of the device where the message actually relates to."},severity:{type:"string",description:"Severity of the message",enum:["HIGH","MEDIUM","LOW","UNKNOWN"],default:"UNKNOWN"},title:{type:"string",description:"Title of the message. If title not set the code will be stored as fallback",maxLength:1e3},ts:{format:"date-time",type:"string",description:"Start time of the the data measurment in  ISO 8601 format"},type:{type:"string",description:"The type of message. Default is DEVICE but can be set to TECHNICAL_INFO indicating a problem with the integration of the actual device. Allowed values: DEVICE, TECHNICAL_INFO",enum:["DEVICE","TECHNICAL_INFO"],default:"DEVICE"}},required:["ts","code"]}}},required:["content-spec","device","messages"]}}});
\ No newline at end of file
diff --git a/files/20.37fc16cab226c391edef.js b/files/20.37fc16cab226c391edef.js
new file mode 100644
index 0000000..b0bd3df
--- /dev/null
+++ b/files/20.37fc16cab226c391edef.js
@@ -0,0 +1 @@
+webpackJsonp([20],{PpY5:function(e,t){e.exports={type:"object",properties:{"content-spec":{type:"string",default:"urn:spec://eclipse.org/unide/machine-message#v3",description:"Defines what the format version is"},device:{type:"object",description:"Contains information about the device",properties:{id:{type:"string",description:"The unique identification of the device. As this is used to identify a device independently from time or location the id itself must be stable and unique. Recommended is to use a universally unique identifier (UUID).",maxLength:36},mode:{type:"string",description:"The operational mode indicates the functional state of the device. This is not restrictected to enum, since it is dependent on the machine, process or use case. Examples are 'auto', 'manual', 'test', 'wait', 'maintenance', 'run', 'stop', 'other' or 'unknown'"},state:{type:"string",enum:["OK","INFO","WARN","ERROR","UNKNOWN"],default:"UNKNOWN",description:"The state describes the technical condition of a device."}},required:["id"]},part:{type:"object",properties:{code:{type:"string",description:"The code is an addendum to the result which allows to pass information in the case the result was NOK. The value often stems from the integrated system e.g. a PLC code",maxLength:128},id:{type:"string",description:"Identifies a part. This id comes from a 3rd party system and thus we have no guarantees if this is unique or not.",maxLength:256},type:{type:"string",enum:["SINGLE","BATCH"],description:"Describes the type of the part. Type SINGLE means a single item is processed. Type BATCH means multiple items of the same type are processed.",default:"SINGLE"},typeId:{type:"string",description:"Identifies a part type",maxLength:256},result:{type:"string",enum:["OK","NOK","UNKNOWN"],description:"Information if the result was ok or not. This is only required if part information should be saved.",default:"UNKNOWN"}},required:["id"]},measurements:{type:"array",minItems:1,items:{type:"object",properties:{code:{type:"string",description:"The code is an addendum to the result which allows to pass information in the case the result was NOK. The value often stems from the integrated system e.g. a PLC code",maxLength:128},context:{type:"object",description:"Provides additional information about the data provided in the series element. An entry in the context applies to the element in the series with the same key.",patternProperties:{"^[^$]+":{type:"object",description:"The key shall be the name of a measurement point (element of series element). The value is a structure of additional context information.",properties:{accuracy:{oneOf:[{type:"number",description:"A constant that describes the accuracy of the corresponding measurement as absolute value"},{type:"array",description:"An array of accuracy values. The items of the array correspond to the respective measurements at the same position.",items:{type:"number"}}]},limits:{description:"Provides information about the limit for data provided in the series element. The limit corresponds to the measurement point (see also series element) with the same key. The value is a structure of upper/lower limits and applies to numeric values only.",type:"object",oneOf:[{type:"object",description:"A constant limit for all corresponding measurements",properties:{lowerError:{description:"Indicates an error if this limit is underrun",type:"number"},lowerWarn:{description:"Indicates a warning if this limit is underrun",type:"number"},target:{description:"Indicates the intented target value of the measurement",type:"number"},upperError:{description:"Indicates an error if this limit is exceeded",type:"number"},upperWarn:{description:"Indicates a warning if this limit is exceeded",type:"number"}}},{type:"object",description:"An array of limit values. The items of the array correspond to the respective measurements at the same position.",properties:{lowerError:{description:"Indicates an error if these limits is underrun. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},lowerWarn:{description:"Indicates a warning if these limits is underrun. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},target:{description:"Indicates the intented target values. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},upperError:{description:"Indicates an error if these limits is exceeded. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},upperWarn:{description:"Indicates a warning if these limits is exceeded. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}}}}]},offset:{description:"The offset applies to numeric data type only.",oneOf:[{type:"number",description:"Describes the offset of the corresponding measurement as absolute value"},{type:"array",description:"An array of offset values. The items of the array correspond to the respective measurements at the same position.",items:{type:"number"}}]},type:{type:"string",description:"The data type of the corresponding measurement value.",enum:["BASE64","BOOLEAN","NUMBER","OTHER","REF","STRING"],default:"NUMBER"},unit:{type:"string",description:"Describes the unit of the corresponding measurement. It is recommended to use symbols as defined in https://tools.ietf.org/html/draft-ietf-core-senml-14#section-12.1"}},minProperties:1}},required:[]},result:{type:"string",enum:["OK","NOK","UNKNOWN"],description:"Information if the result was ok or not. This is only required if part information should be saved.",default:"UNKNOWN"},series:{type:"object",description:"The series data collected for the measurements. Every entry matches a Measurement Point of the Device Type. In the case of a time series, one column contains the time offsets.",properties:{time:{type:"array",description:"The time offset in milliseconds (positive values in ascending order starting with 0) to the 'ts' field of the measurement",items:{type:"integer"}}},patternProperties:{"^[^$]+":{type:"array",items:{type:"number"}}},required:["time"],minProperties:2},ts:{format:"date-time",type:"string",description:"Start time of the the data measurment in  ISO 8601 format"}},required:["ts","series"]}}},required:["content-spec","device","measurements"]}}});
\ No newline at end of file
diff --git a/files/15.d771450e0496b312779c.js b/files/21.884f5e26a6cd4054e141.js
similarity index 99%
rename from files/15.d771450e0496b312779c.js
rename to files/21.884f5e26a6cd4054e141.js
index 31bf951..cc5e21a 100644
--- a/files/15.d771450e0496b312779c.js
+++ b/files/21.884f5e26a6cd4054e141.js
@@ -1 +1 @@
-webpackJsonp([15],{rRyJ:function(e,t){e.exports={definitions:{device:{type:"object",description:"Contains information about the device",properties:{deviceID:{type:"string",description:"The unique ID of the device. As this is used to identify a device independently from time or location the ID itself must be stable and unique. The recommendation is to use a universally unique identifier (UUID).",maxLength:36},metaData:{type:"object",properties:{},additionalProperties:!0,description:"Additional key-value pairs in a JSON structure format. Key and value must be strings"},operationalStatus:{type:"string",description:"The operationalStatus describes the status of a device. It is a string matching a definition in the Production Performance Manager"}},additionalProperties:!1,required:["deviceID"]},limit:{description:"Provides information about limits for data provided in the series element. The limits is an JSON object where the key is the name of a Measurement Point (see also series element) and the value is a structure of upper/lower limits",type:"object",patternProperties:{"^[^$]+":{oneOf:[{type:"object",description:"A constant limit for all corresponding measurements",properties:{lowerError:{description:"Indicates an error if this limit is underrun",type:"number"},lowerWarn:{description:"Indicates a warning if this limit is underrun",type:"number"},target:{description:"Indicates the intented target value of the measurement",type:"number"},upperError:{description:"Indicates an error if this limit is exceeded",type:"number"},upperWarn:{description:"Indicates a warning if this limit is exceeded",type:"number"}},additionalProperties:!1},{type:"object",description:"An array of limit values. The items of the array correspond to the respective measurements at the same position.",properties:{lowerError:{description:"Indicates an error if these limits is underrun. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},lowerWarn:{description:"Indicates a warning if these limits is underrun. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},target:{description:"Indicates the intented target values. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},upperError:{description:"Indicates an error if these limits is exceeded. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},upperWarn:{description:"Indicates a warning if these limits is exceeded. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}}},additionalProperties:!1}]}}}},type:"object",properties:{"content-spec":{type:"string",default:"urn:spec://eclipse.org/unide/process-message#v2",description:"Defines what the format version is"},device:{type:"object",description:"Contains information about the device",properties:{deviceID:{type:"string",description:"The unique ID of the device. As this is used to identify a device independently from time or location the ID itself must be stable and unique. The recommendation is to use a universally unique identifier (UUID).",maxLength:36},metaData:{type:"object",properties:{},additionalProperties:!0,description:"Additional key-value pairs in a JSON structure format. Key and value must be strings"},operationalStatus:{type:"string",description:"The operationalStatus describes the status of a device. It is a string matching a definition in the Production Performance Manager"}},additionalProperties:!1,required:["deviceID"]},part:{type:"object",properties:{code:{type:"string",description:"The code is an addendum to the result which allows to pass information in the case the result was NOK. The value often stems from the integrated system e.g. a PLC code",maxLength:36},metaData:{type:"object",properties:{},additionalProperties:!0,description:"Additional key-value pairs in a JSON structure format. Key and value must be strings"},partID:{type:"string",description:"Identifies a part. This ID comes from a 3rd party system and thus we have no guarantees if this is unique or not.",maxLength:256},partTypeID:{type:"string",description:"Identifies a part type",maxLength:256},result:{type:"string",enum:["OK","NOK","UNKNOWN"],description:"Information if the result was ok or not. This is only required if part information should be saved.",default:"UNKNOWN"},type:{type:"string",enum:["SINGLE","BATCH"],description:"Describes the type of the part. Type SINGLE means a single item is processed. Type BATCH means multiple items of the same type are processed.",default:"SINGLE"}},required:[],additionalProperties:!1},process:{type:"object",description:"Contains information about the process. If the process JSON object is set, then all information in measurements are process phases",properties:{externalProcessId:{type:"string",description:"The process Id identifies the process as part of long living process. The process Id can be used to connect multiple processes in a manufacturing chain. The Id has to be set and tracked by the different devices in the chain.",maxLength:36},metaData:{type:"object",properties:{},additionalProperties:!0,description:"Additional key-value pairs in a JSON structure format. Key and value must be strings"},program:{type:"object",description:"Contains information about the program that was used in the process.",properties:{id:{type:"string",description:"The ID of the program",maxLength:36},lastChangedDate:{type:"string",format:"date-time",description:"The date when the program was last changed"},name:{type:"string",description:"The name of the program",maxLength:256}},additionalProperties:!1,required:["id"]},result:{type:"string",enum:["OK","NOK","UNKNOWN"],description:"Information if the result was ok or not. This is only required if part information should be saved.",default:"UNKNOWN"},shutoffPhase:{type:"string",description:"The ID of the phase that led to stop the process. The shutOffPhase is the phase of the process in which either pre-defined parameters are met to successfully finish the process or an error that stopped the process. That is not necessarily the last phase. The shutOffPhase should be sent when the last process phase is sent."},shutoffValues:{type:"object",description:"The shutoff values contain the values of the process that stopped the process. The shutoffValues is a JSON object where the key is the name of a Measurement Point (see also series element) and the value is a structure of different upper/lower limits and the actual value as described below.",patternProperties:{"^[^$]+":{type:"object",properties:{lowerError:{type:"number",description:"Indicates an error if this limit is underrun"},lowerWarn:{type:"number",description:"Indicates a warning if this limit is underrun"},target:{type:"number",description:"Indicates the intented target value of the measurement"},ts:{type:"string",format:"date-time",description:"Time of the measured value"},upperWarn:{type:"number",description:"Indicates a warning if this limit is exceeded"},upperError:{type:"number",description:"Indicates an error if this limit is exceeded"},value:{type:"number",description:"The final value of the process"}},additionalProperties:!1,required:["value"]}}},ts:{type:"string",format:"date-time",description:"Start time of the process"}},additionalProperties:!1,required:["ts"]},measurements:{type:"array",items:{type:"object",description:"Contains the different phases of the process. Each phase represents an execution step in the process and contains information about that specific execution step. All phases should be sorted by the timestamp of the phase.",properties:{code:{type:"string",description:"The code is an addendum to the result which allows to pass information in the case the result was NOK. The value often stems from the integrated system e.g. a PLC code",maxLength:36},limits:{description:"Provides information about limits for data provided in the series element. The limits is an JSON object where the key is the name of a Measurement Point (see also series element) and the value is a structure of upper/lower limits",type:"object",patternProperties:{"^[^$]+":{oneOf:[{type:"object",description:"A constant limit for all corresponding measurements",properties:{lowerError:{description:"Indicates an error if this limit is underrun",type:"number"},lowerWarn:{description:"Indicates a warning if this limit is underrun",type:"number"},target:{description:"Indicates the intented target value of the measurement",type:"number"},upperError:{description:"Indicates an error if this limit is exceeded",type:"number"},upperWarn:{description:"Indicates a warning if this limit is exceeded",type:"number"}},additionalProperties:!1},{type:"object",description:"An array of limit values. The items of the array correspond to the respective measurements at the same position.",properties:{lowerError:{description:"Indicates an error if these limits is underrun. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},lowerWarn:{description:"Indicates a warning if these limits is underrun. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},target:{description:"Indicates the intented target values. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},upperError:{description:"Indicates an error if these limits is exceeded. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},upperWarn:{description:"Indicates a warning if these limits is exceeded. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}}},additionalProperties:!1}]}}},name:{type:"string",description:"The name of the process phase",maxLength:256},phase:{type:"string",description:"The id of the process phase",maxLength:256},result:{type:"string",enum:["OK","NOK","UNKNOWN"],description:"Information if the result was ok or not. This is only required if part information should be saved.",default:"UNKNOWN"},specialValues:{type:"array",items:{type:"object",description:"Provides information about special or interesting values during the process phase.",properties:{$_time:{type:"integer",description:"The time offset in milliseconds to the 'ts' field of the measurement"},name:{type:"string",description:"indicates the type of the specialValue (e.g. 'endanzug', 'turningPoint' etc.)"},value:{type:"object",description:"Contains the actual (multidimensional) value of interest. Similarly to series, every entry matches a Measurement Point of the device",patternProperties:{"^[^$]+":{type:"number"}},minProperties:1}},additionalProperties:!1,required:["value"]}},series:{type:"object",description:"The series data collected for the measurements. Every entry matches a Measurement Point of the device. In the case of a time series, one column contains the time offset in milliseconds (positive values in ascending order starting with 0). In this case the value is the keyword $_time. The maximum size for the measurement value is 10 positions before the decimal point. The decimal places are truncated to 2 in the historical data.",properties:{$_time:{type:"array",description:"The time offset in milliseconds (positive values in ascending order starting with 0) to the 'ts' field of the measurement",items:{type:"integer"}}},patternProperties:{"^[^$]+":{type:"array",items:{type:"number"}}},additionalProperties:!1},ts:{type:"string",format:"date-time",description:"Start time of the the data measurment in  ISO 8601 format"}},additionalProperties:!1,required:["ts","series"]}}},required:["content-spec","device","process","measurements"]}}});
\ No newline at end of file
+webpackJsonp([21],{rRyJ:function(e,t){e.exports={definitions:{device:{type:"object",description:"Contains information about the device",properties:{deviceID:{type:"string",description:"The unique ID of the device. As this is used to identify a device independently from time or location the ID itself must be stable and unique. The recommendation is to use a universally unique identifier (UUID).",maxLength:36},metaData:{type:"object",properties:{},additionalProperties:!0,description:"Additional key-value pairs in a JSON structure format. Key and value must be strings"},operationalStatus:{type:"string",description:"The operationalStatus describes the status of a device. It is a string matching a definition in the Production Performance Manager"}},additionalProperties:!1,required:["deviceID"]},limit:{description:"Provides information about limits for data provided in the series element. The limits is an JSON object where the key is the name of a Measurement Point (see also series element) and the value is a structure of upper/lower limits",type:"object",patternProperties:{"^[^$]+":{oneOf:[{type:"object",description:"A constant limit for all corresponding measurements",properties:{lowerError:{description:"Indicates an error if this limit is underrun",type:"number"},lowerWarn:{description:"Indicates a warning if this limit is underrun",type:"number"},target:{description:"Indicates the intented target value of the measurement",type:"number"},upperError:{description:"Indicates an error if this limit is exceeded",type:"number"},upperWarn:{description:"Indicates a warning if this limit is exceeded",type:"number"}},additionalProperties:!1},{type:"object",description:"An array of limit values. The items of the array correspond to the respective measurements at the same position.",properties:{lowerError:{description:"Indicates an error if these limits is underrun. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},lowerWarn:{description:"Indicates a warning if these limits is underrun. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},target:{description:"Indicates the intented target values. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},upperError:{description:"Indicates an error if these limits is exceeded. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},upperWarn:{description:"Indicates a warning if these limits is exceeded. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}}},additionalProperties:!1}]}}}},type:"object",properties:{"content-spec":{type:"string",default:"urn:spec://eclipse.org/unide/process-message#v2",description:"Defines what the format version is"},device:{type:"object",description:"Contains information about the device",properties:{deviceID:{type:"string",description:"The unique ID of the device. As this is used to identify a device independently from time or location the ID itself must be stable and unique. The recommendation is to use a universally unique identifier (UUID).",maxLength:36},metaData:{type:"object",properties:{},additionalProperties:!0,description:"Additional key-value pairs in a JSON structure format. Key and value must be strings"},operationalStatus:{type:"string",description:"The operationalStatus describes the status of a device. It is a string matching a definition in the Production Performance Manager"}},additionalProperties:!1,required:["deviceID"]},part:{type:"object",properties:{code:{type:"string",description:"The code is an addendum to the result which allows to pass information in the case the result was NOK. The value often stems from the integrated system e.g. a PLC code",maxLength:36},metaData:{type:"object",properties:{},additionalProperties:!0,description:"Additional key-value pairs in a JSON structure format. Key and value must be strings"},partID:{type:"string",description:"Identifies a part. This ID comes from a 3rd party system and thus we have no guarantees if this is unique or not.",maxLength:256},partTypeID:{type:"string",description:"Identifies a part type",maxLength:256},result:{type:"string",enum:["OK","NOK","UNKNOWN"],description:"Information if the result was ok or not. This is only required if part information should be saved.",default:"UNKNOWN"},type:{type:"string",enum:["SINGLE","BATCH"],description:"Describes the type of the part. Type SINGLE means a single item is processed. Type BATCH means multiple items of the same type are processed.",default:"SINGLE"}},required:[],additionalProperties:!1},process:{type:"object",description:"Contains information about the process. If the process JSON object is set, then all information in measurements are process phases",properties:{externalProcessId:{type:"string",description:"The process Id identifies the process as part of long living process. The process Id can be used to connect multiple processes in a manufacturing chain. The Id has to be set and tracked by the different devices in the chain.",maxLength:36},metaData:{type:"object",properties:{},additionalProperties:!0,description:"Additional key-value pairs in a JSON structure format. Key and value must be strings"},program:{type:"object",description:"Contains information about the program that was used in the process.",properties:{id:{type:"string",description:"The ID of the program",maxLength:36},lastChangedDate:{type:"string",format:"date-time",description:"The date when the program was last changed"},name:{type:"string",description:"The name of the program",maxLength:256}},additionalProperties:!1,required:["id"]},result:{type:"string",enum:["OK","NOK","UNKNOWN"],description:"Information if the result was ok or not. This is only required if part information should be saved.",default:"UNKNOWN"},shutoffPhase:{type:"string",description:"The ID of the phase that led to stop the process. The shutOffPhase is the phase of the process in which either pre-defined parameters are met to successfully finish the process or an error that stopped the process. That is not necessarily the last phase. The shutOffPhase should be sent when the last process phase is sent."},shutoffValues:{type:"object",description:"The shutoff values contain the values of the process that stopped the process. The shutoffValues is a JSON object where the key is the name of a Measurement Point (see also series element) and the value is a structure of different upper/lower limits and the actual value as described below.",patternProperties:{"^[^$]+":{type:"object",properties:{lowerError:{type:"number",description:"Indicates an error if this limit is underrun"},lowerWarn:{type:"number",description:"Indicates a warning if this limit is underrun"},target:{type:"number",description:"Indicates the intented target value of the measurement"},ts:{type:"string",format:"date-time",description:"Time of the measured value"},upperWarn:{type:"number",description:"Indicates a warning if this limit is exceeded"},upperError:{type:"number",description:"Indicates an error if this limit is exceeded"},value:{type:"number",description:"The final value of the process"}},additionalProperties:!1,required:["value"]}}},ts:{type:"string",format:"date-time",description:"Start time of the process"}},additionalProperties:!1,required:["ts"]},measurements:{type:"array",items:{type:"object",description:"Contains the different phases of the process. Each phase represents an execution step in the process and contains information about that specific execution step. All phases should be sorted by the timestamp of the phase.",properties:{code:{type:"string",description:"The code is an addendum to the result which allows to pass information in the case the result was NOK. The value often stems from the integrated system e.g. a PLC code",maxLength:36},limits:{description:"Provides information about limits for data provided in the series element. The limits is an JSON object where the key is the name of a Measurement Point (see also series element) and the value is a structure of upper/lower limits",type:"object",patternProperties:{"^[^$]+":{oneOf:[{type:"object",description:"A constant limit for all corresponding measurements",properties:{lowerError:{description:"Indicates an error if this limit is underrun",type:"number"},lowerWarn:{description:"Indicates a warning if this limit is underrun",type:"number"},target:{description:"Indicates the intented target value of the measurement",type:"number"},upperError:{description:"Indicates an error if this limit is exceeded",type:"number"},upperWarn:{description:"Indicates a warning if this limit is exceeded",type:"number"}},additionalProperties:!1},{type:"object",description:"An array of limit values. The items of the array correspond to the respective measurements at the same position.",properties:{lowerError:{description:"Indicates an error if these limits is underrun. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},lowerWarn:{description:"Indicates a warning if these limits is underrun. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},target:{description:"Indicates the intented target values. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},upperError:{description:"Indicates an error if these limits is exceeded. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}},upperWarn:{description:"Indicates a warning if these limits is exceeded. The values correspond to the respective measurements in the given order.",type:"array",items:{type:"number"}}},additionalProperties:!1}]}}},name:{type:"string",description:"The name of the process phase",maxLength:256},phase:{type:"string",description:"The id of the process phase",maxLength:256},result:{type:"string",enum:["OK","NOK","UNKNOWN"],description:"Information if the result was ok or not. This is only required if part information should be saved.",default:"UNKNOWN"},specialValues:{type:"array",items:{type:"object",description:"Provides information about special or interesting values during the process phase.",properties:{$_time:{type:"integer",description:"The time offset in milliseconds to the 'ts' field of the measurement"},name:{type:"string",description:"indicates the type of the specialValue (e.g. 'endanzug', 'turningPoint' etc.)"},value:{type:"object",description:"Contains the actual (multidimensional) value of interest. Similarly to series, every entry matches a Measurement Point of the device",patternProperties:{"^[^$]+":{type:"number"}},minProperties:1}},additionalProperties:!1,required:["value"]}},series:{type:"object",description:"The series data collected for the measurements. Every entry matches a Measurement Point of the device. In the case of a time series, one column contains the time offset in milliseconds (positive values in ascending order starting with 0). In this case the value is the keyword $_time. The maximum size for the measurement value is 10 positions before the decimal point. The decimal places are truncated to 2 in the historical data.",properties:{$_time:{type:"array",description:"The time offset in milliseconds (positive values in ascending order starting with 0) to the 'ts' field of the measurement",items:{type:"integer"}}},patternProperties:{"^[^$]+":{type:"array",items:{type:"number"}}},additionalProperties:!1},ts:{type:"string",format:"date-time",description:"Start time of the the data measurment in  ISO 8601 format"}},additionalProperties:!1,required:["ts","series"]}}},required:["content-spec","device","process","measurements"]}}});
\ No newline at end of file
diff --git a/files/16.11f2dc8ba4d811532f0f.js b/files/22.efc38af3562317c618d5.js
similarity index 97%
rename from files/16.11f2dc8ba4d811532f0f.js
rename to files/22.efc38af3562317c618d5.js
index fff4cad..3257acb 100644
--- a/files/16.11f2dc8ba4d811532f0f.js
+++ b/files/22.efc38af3562317c618d5.js
@@ -1 +1 @@
-webpackJsonp([16],{"2BTs":function(e,t){e.exports={type:"object",properties:{"content-spec":{type:"string",default:"urn:spec://eclipse.org/unide/measurement-message#v2",description:"Defines what the format version is"},device:{type:"object",description:"Contains information about the device",properties:{deviceID:{type:"string",description:"The unique ID of the device. As this is used to identify a device independently from time or location the ID itself must be stable and unique. The recommendation is to use a universally unique identifier (UUID).",maxLength:36},metaData:{type:"object",properties:{},additionalProperties:!0,description:"Additional key-value pairs in a JSON structure format. Key and value must be strings"},operationalStatus:{type:"string",description:"The operationalStatus describes the status of a device. It is a string matching a definition in the Production Performance Manager"}},additionalProperties:!1,required:["deviceID"]},messages:{minItems:1,type:"array",items:{type:"object",description:"Collection of messages",properties:{code:{type:"string",description:"Code identifying the problem described in the message. The value often stems from the machine e.g. a PLC code. Is similar to code in measurement interface.",maxLength:36},description:{type:"string",description:"The description is used to describe the purpose of the message, e.g. the problem",maxLength:2e3},hint:{type:"string",description:"In case a problem is reported, the hint can be used to point out a possible solution",maxLength:2e3},metaData:{type:"object",properties:{},additionalProperties:!0,description:"Additional key-value pairs in a JSON structure format. Key and value must be strings"},origin:{type:"string",description:"The origin of the message if not the device identified by deviceID in the header element. Could be used to identify a subsystem or a particular sensor/part of the device where the message actually relates to."},severity:{type:"string",description:"Severity of the message",enum:["HIGH","MEDIUM","LOW","UNKNOWN"],default:"UNKNOWN"},title:{type:"string",description:"Title of the message. If title not set the code will be stored as fallback",maxLength:1e3},ts:{format:"date-time",type:"string",description:"Start time of the the data measurment in  ISO 8601 format"},type:{type:"string",description:"The type of message. Default is DEVICE but can be set to TECHNICAL_INFO indicating a problem with the integration of the actual device. Allowed values: DEVICE, TECHNICAL_INFO",enum:["DEVICE","TECHNICAL_INFO"],default:"DEVICE"}},required:["ts","code"]}}},additionalProperties:!1,required:["content-spec","device","messages"]}}});
\ No newline at end of file
+webpackJsonp([22],{"2BTs":function(e,t){e.exports={type:"object",properties:{"content-spec":{type:"string",default:"urn:spec://eclipse.org/unide/measurement-message#v2",description:"Defines what the format version is"},device:{type:"object",description:"Contains information about the device",properties:{deviceID:{type:"string",description:"The unique ID of the device. As this is used to identify a device independently from time or location the ID itself must be stable and unique. The recommendation is to use a universally unique identifier (UUID).",maxLength:36},metaData:{type:"object",properties:{},additionalProperties:!0,description:"Additional key-value pairs in a JSON structure format. Key and value must be strings"},operationalStatus:{type:"string",description:"The operationalStatus describes the status of a device. It is a string matching a definition in the Production Performance Manager"}},additionalProperties:!1,required:["deviceID"]},messages:{minItems:1,type:"array",items:{type:"object",description:"Collection of messages",properties:{code:{type:"string",description:"Code identifying the problem described in the message. The value often stems from the machine e.g. a PLC code. Is similar to code in measurement interface.",maxLength:36},description:{type:"string",description:"The description is used to describe the purpose of the message, e.g. the problem",maxLength:2e3},hint:{type:"string",description:"In case a problem is reported, the hint can be used to point out a possible solution",maxLength:2e3},metaData:{type:"object",properties:{},additionalProperties:!0,description:"Additional key-value pairs in a JSON structure format. Key and value must be strings"},origin:{type:"string",description:"The origin of the message if not the device identified by deviceID in the header element. Could be used to identify a subsystem or a particular sensor/part of the device where the message actually relates to."},severity:{type:"string",description:"Severity of the message",enum:["HIGH","MEDIUM","LOW","UNKNOWN"],default:"UNKNOWN"},title:{type:"string",description:"Title of the message. If title not set the code will be stored as fallback",maxLength:1e3},ts:{format:"date-time",type:"string",description:"Start time of the the data measurment in  ISO 8601 format"},type:{type:"string",description:"The type of message. Default is DEVICE but can be set to TECHNICAL_INFO indicating a problem with the integration of the actual device. Allowed values: DEVICE, TECHNICAL_INFO",enum:["DEVICE","TECHNICAL_INFO"],default:"DEVICE"}},required:["ts","code"]}}},additionalProperties:!1,required:["content-spec","device","messages"]}}});
\ No newline at end of file
diff --git a/files/17.cead57eff5f5ca1f8446.js b/files/23.e92d2a866e7c11905498.js
similarity index 97%
rename from files/17.cead57eff5f5ca1f8446.js
rename to files/23.e92d2a866e7c11905498.js
index 854699b..3541ea4 100644
--- a/files/17.cead57eff5f5ca1f8446.js
+++ b/files/23.e92d2a866e7c11905498.js
@@ -1 +1 @@
-webpackJsonp([17],{oGp6:function(e,t){e.exports={type:"object",properties:{"content-spec":{type:"string",default:"urn:spec://eclipse.org/unide/measurement-message#v2",description:"Defines what the format version is"},device:{type:"object",description:"Contains information about the device",properties:{deviceID:{type:"string",description:"The unique ID of the device. As this is used to identify a device independently from time or location the ID itself must be stable and unique. The recommendation is to use a universally unique identifier (UUID).",maxLength:36},metaData:{type:"object",properties:{},additionalProperties:!0,description:"Additional key-value pairs in a JSON structure format. Key and value must be strings"},operationalStatus:{type:"string",description:"The operationalStatus describes the status of a device. It is a string matching a definition in the Production Performance Manager"}},additionalProperties:!1,required:["deviceID"]},part:{type:"object",properties:{code:{type:"string",description:"The code is an addendum to the result which allows to pass information in the case the result was NOK. The value often stems from the integrated system e.g. a PLC code",maxLength:36},metaData:{type:"object",properties:{},additionalProperties:!0,description:"Additional key-value pairs in a JSON structure format. Key and value must be strings"},partID:{type:"string",description:"Identifies a part. This ID comes from a 3rd party system and thus we have no guarantees if this is unique or not.",maxLength:256},partTypeID:{type:"string",description:"Identifies a part type",maxLength:256},result:{type:"string",enum:["OK","NOK","UNKNOWN"],description:"Information if the result was ok or not. This is only required if part information should be saved.",default:"UNKNOWN"}},additionalProperties:!1,required:[]},measurements:{type:"array",minItems:1,items:{type:"object",properties:{code:{type:"string",description:"The code is an addendum to the result which allows to pass information in the case the result was NOK. The value often stems from the integrated system e.g. a PLC code",maxLength:36},limits:{type:"object",description:"Provides information about limits for data provided in the series element.",patternProperties:{"^[^$]+":{type:"object",description:"The key shall be the name of a measurement point (element of series element). The value is a structure of different upper/lower limits.",properties:{lowerError:{type:"number",description:"Indicates an error if this limit is underrun"},lowerWarn:{type:"number",description:"Indicates a warning if this limit is underrun"},target:{type:"number",description:"Indicates the intented target value of the measurement"},upperError:{type:"number",description:"Indicates an error if this limit is exceeded"},upperWarn:{type:"number",description:"Indicates a warning if this limit is exceeded"}}}},additionalProperties:!1,required:[]},result:{type:"string",enum:["OK","NOK","UNKNOWN"],description:"Information if the result was ok or not. This is only required if part information should be saved.",default:"UNKNOWN"},series:{type:"object",description:"The series data collected for the measurements. Every entry matches a Measurement Point of the Device Type. In the case of a time series, one column contains the time offsets.",properties:{$_time:{type:"array",description:"The time offset in milliseconds (positive values in ascending order starting with 0) to the 'ts' field of the measurement",items:{type:"integer"}}},patternProperties:{"^[^$]+":{type:"array",items:{type:"number"}}},required:["$_time"],minProperties:2,additionalProperties:!1},ts:{format:"date-time",type:"string",description:"Start time of the the data measurment in  ISO 8601 format"}},required:["ts","series"]}}},additionalProperties:!1,required:["content-spec","device","measurements"]}}});
\ No newline at end of file
+webpackJsonp([23],{oGp6:function(e,t){e.exports={type:"object",properties:{"content-spec":{type:"string",default:"urn:spec://eclipse.org/unide/measurement-message#v2",description:"Defines what the format version is"},device:{type:"object",description:"Contains information about the device",properties:{deviceID:{type:"string",description:"The unique ID of the device. As this is used to identify a device independently from time or location the ID itself must be stable and unique. The recommendation is to use a universally unique identifier (UUID).",maxLength:36},metaData:{type:"object",properties:{},additionalProperties:!0,description:"Additional key-value pairs in a JSON structure format. Key and value must be strings"},operationalStatus:{type:"string",description:"The operationalStatus describes the status of a device. It is a string matching a definition in the Production Performance Manager"}},additionalProperties:!1,required:["deviceID"]},part:{type:"object",properties:{code:{type:"string",description:"The code is an addendum to the result which allows to pass information in the case the result was NOK. The value often stems from the integrated system e.g. a PLC code",maxLength:36},metaData:{type:"object",properties:{},additionalProperties:!0,description:"Additional key-value pairs in a JSON structure format. Key and value must be strings"},partID:{type:"string",description:"Identifies a part. This ID comes from a 3rd party system and thus we have no guarantees if this is unique or not.",maxLength:256},partTypeID:{type:"string",description:"Identifies a part type",maxLength:256},result:{type:"string",enum:["OK","NOK","UNKNOWN"],description:"Information if the result was ok or not. This is only required if part information should be saved.",default:"UNKNOWN"}},additionalProperties:!1,required:[]},measurements:{type:"array",minItems:1,items:{type:"object",properties:{code:{type:"string",description:"The code is an addendum to the result which allows to pass information in the case the result was NOK. The value often stems from the integrated system e.g. a PLC code",maxLength:36},limits:{type:"object",description:"Provides information about limits for data provided in the series element.",patternProperties:{"^[^$]+":{type:"object",description:"The key shall be the name of a measurement point (element of series element). The value is a structure of different upper/lower limits.",properties:{lowerError:{type:"number",description:"Indicates an error if this limit is underrun"},lowerWarn:{type:"number",description:"Indicates a warning if this limit is underrun"},target:{type:"number",description:"Indicates the intented target value of the measurement"},upperError:{type:"number",description:"Indicates an error if this limit is exceeded"},upperWarn:{type:"number",description:"Indicates a warning if this limit is exceeded"}}}},additionalProperties:!1,required:[]},result:{type:"string",enum:["OK","NOK","UNKNOWN"],description:"Information if the result was ok or not. This is only required if part information should be saved.",default:"UNKNOWN"},series:{type:"object",description:"The series data collected for the measurements. Every entry matches a Measurement Point of the Device Type. In the case of a time series, one column contains the time offsets.",properties:{$_time:{type:"array",description:"The time offset in milliseconds (positive values in ascending order starting with 0) to the 'ts' field of the measurement",items:{type:"integer"}}},patternProperties:{"^[^$]+":{type:"array",items:{type:"number"}}},required:["$_time"],minProperties:2,additionalProperties:!1},ts:{format:"date-time",type:"string",description:"Start time of the the data measurment in  ISO 8601 format"}},required:["ts","series"]}}},additionalProperties:!1,required:["content-spec","device","measurements"]}}});
\ No newline at end of file
diff --git a/files/app.50a262a5ae4922a8876e.js b/files/app.ac89eaaf53fc974d7229.js
similarity index 60%
rename from files/app.50a262a5ae4922a8876e.js
rename to files/app.ac89eaaf53fc974d7229.js
index d7761a7..d53c40c 100644
--- a/files/app.50a262a5ae4922a8876e.js
+++ b/files/app.ac89eaaf53fc974d7229.js
@@ -1 +1 @@
-webpackJsonp([13],{"+ESq":function(t,e,n){"use strict";var r=n("/5sW");e.a={name:"nuxt-loading",data:function(){return{percent:0,show:!1,canSuccess:!0,duration:5e3,height:"2px",color:"#50237f",failedColor:"red"}},methods:{start:function(){var t=this;return this.show=!0,this.canSuccess=!0,this._timer&&(clearInterval(this._timer),this.percent=0),this._cut=1e4/Math.floor(this.duration),this._timer=setInterval(function(){t.increase(t._cut*Math.random()),t.percent>95&&t.finish()},100),this},set:function(t){return this.show=!0,this.canSuccess=!0,this.percent=Math.floor(t),this},get:function(){return Math.floor(this.percent)},increase:function(t){return this.percent=this.percent+Math.floor(t),this},decrease:function(t){return this.percent=this.percent-Math.floor(t),this},finish:function(){return this.percent=100,this.hide(),this},pause:function(){return clearInterval(this._timer),this},hide:function(){var t=this;return clearInterval(this._timer),this._timer=null,setTimeout(function(){t.show=!1,r.default.nextTick(function(){setTimeout(function(){t.percent=0},200)})},500),this},fail:function(){return this.canSuccess=!1,this}}}},"0F0d":function(t,e,n){"use strict";e.a={name:"no-ssr",props:["placeholder"],data:function(){return{canRender:!1}},mounted:function(){this.canRender=!0},render:function(t){return this.canRender?this.$slots.default&&this.$slots.default[0]:t("div",{class:["no-ssr-placeholder"]},this.$slots.placeholder||this.placeholder)}}},"1VLa":function(t,e){},"2oyj":function(t,e){},BW6j:function(t,e,n){"use strict";var r=n("OEdS"),a=(n.n(r),n("m6/3"));n.n(a)},F7kz:function(t,e){function n(t){throw new Error("Cannot find module '"+t+"'.")}n.keys=function(){return[]},n.resolve=n,t.exports=n,n.id="F7kz"},F88d:function(t,e,n){"use strict";var r=n("+ESq"),a=n("srTi"),o=!1;var i=function(t){o||n("1VLa")},s=n("VU/8")(r.a,a.a,!1,i,null,null);s.options.__file=".nuxt\\components\\nuxt-loading.vue",e.a=s.exports},"HBB+":function(t,e,n){"use strict";e.a={name:"nuxt-child",functional:!0,render:function(t,e){var n=e.parent,o=e.data;o.nuxtChild=!0;for(var i=n,s=n.$nuxt.nuxt.transitions,u=n.$nuxt.nuxt.defaultTransition,c=0;n;)n.$vnode&&n.$vnode.data.nuxtChild&&c++,n=n.$parent;o.nuxtChildDepth=c;var f=s[c]||u,d={};r.forEach(function(t){void 0!==f[t]&&(d[t]=f[t])});var l={};return a.forEach(function(t){"function"==typeof f[t]&&(l[t]=f[t].bind(i))}),t("transition",{props:d,on:l},[t("router-view",o)])}};var r=["name","mode","appear","css","type","duration","enterClass","leaveClass","appearClass","enterActiveClass","enterActiveClass","leaveActiveClass","appearActiveClass","enterToClass","leaveToClass","appearToClass"],a=["beforeEnter","enter","afterEnter","enterCancelled","beforeLeave","leave","afterLeave","leaveCancelled","beforeAppear","appear","afterAppear","appearCancelled"]},"Hot+":function(t,e,n){"use strict";var r=n("/5sW"),a=n("HBB+"),o=n("ct3O"),i=n("YLfZ");e.a={name:"nuxt",props:["nuxtChildKey"],render:function(t){return this.nuxt._redirected?t("div",["Redirecting to external page."]):this.nuxt.err?t("nuxt-error",{props:{error:this.nuxt.err}}):t("nuxt-child",{key:this.routerViewKey})},beforeCreate:function(){r.default.util.defineReactive(this,"nuxt",this.$root.$options.nuxt)},computed:{routerViewKey:function(){if(void 0!==this.nuxtChildKey||this.$route.matched.length>1)return this.nuxtChildKey||Object(i.b)(this.$route.matched[0].path)(this.$route.params);var t=this.$route.matched[0]&&this.$route.matched[0].components.default;return t&&t.options&&t.options.key?"function"==typeof t.options.key?t.options.key(this.$route):t.options.key:this.$route.path}},components:{NuxtChild:a.a,NuxtError:o.a}}},J2Ti:function(t,e,n){"use strict";n.d(e,"a",function(){return _});var r=n("woOf"),a=n.n(r),o=n("BO1k"),i=n.n(o),s=n("/5sW"),u=n("NYxO");s.default.use(u.default);var c=n("F7kz"),f=c.keys(),d={},l=void 0;if(f.forEach(function(t){-1!==t.indexOf("./index.")&&(l=t)}),l&&(d=b(l)),"function"!=typeof d){d.modules||(d.modules={});var p=!0,h=!1,m=void 0;try{for(var x,v=i()(f);!(p=(x=v.next()).done);p=!0){var y=x.value,g=y.replace(/^\.\//,"").replace(/\.(js)$/,"");if("index"!==g){var w=g.split(/\//);(t=C(d,w))[g=w.pop()]=b(y),t[g].namespaced=!0}}}catch(t){h=!0,m=t}finally{try{!p&&v.return&&v.return()}finally{if(h)throw m}}}var _=d instanceof Function?d:function(){return new u.default.Store(a()({strict:!1},d,{state:d.state instanceof Function?d.state():{}}))};function b(t){var e=c(t),n=e.default||e;if(n.commit)throw new Error("[nuxt] store/"+t.replace("./","")+" should export a method which returns a Vuex instance.");if(n.state&&"function"!=typeof n.state)throw new Error("[nuxt] state should be a function in store/"+t.replace("./",""));return n}function C(t,e){if(1===e.length)return t.modules;var n=e.shift();return t.modules[n]=t.modules[n]||{},t.modules[n].namespaced=!0,t.modules[n].modules=t.modules[n].modules||{},C(t.modules[n],e)}},T23V:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,a,o,i=n("pFYg"),s=n.n(i),u=n("//Fk"),c=n.n(u),f=n("Xxa5"),d=n.n(f),l=n("mvHQ"),p=n.n(l),h=n("exGp"),m=n.n(h),x=n("fZjL"),v=n.n(x),y=n("woOf"),g=n.n(y),w=n("/5sW"),_=n("unZF"),b=n("qcny"),C=n("YLfZ"),k=(r=m()(d.a.mark(function t(e,n,r){var a,o,i=this;return d.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return this._pathChanged=!!T.nuxt.err||n.path!==e.path,this._queryChanged=p()(e.query)!==p()(n.query),this._diffQuery=this._queryChanged?Object(C.g)(e.query,n.query):[],this._pathChanged&&this.$loading.start&&this.$loading.start(),t.prev=4,t.next=7,Object(C.k)(e);case 7:a=t.sent,!this._pathChanged&&this._queryChanged&&a.some(function(t){var e=t.options.watchQuery;return!0===e||!!Array.isArray(e)&&e.some(function(t){return i._diffQuery[t]})})&&this.$loading.start&&this.$loading.start(),r(),t.next=19;break;case 12:t.prev=12,t.t0=t.catch(4),t.t0=t.t0||{},o=t.t0.statusCode||t.t0.status||t.t0.response&&t.t0.response.status||500,this.error({statusCode:o,message:t.t0.message}),this.$nuxt.$emit("routeChanged",e,n,t.t0),r(!1);case 19:case"end":return t.stop()}},t,this,[[4,12]])})),function(t,e,n){return r.apply(this,arguments)}),$=(a=m()(d.a.mark(function t(e,n,r){var a,o,i,s,u,f,l,p=this;return d.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(!1!==this._pathChanged||!1!==this._queryChanged){t.next=2;break}return t.abrupt("return",r());case 2:return a=!1,o=function(t){p.$loading.finish&&p.$loading.finish(),a||(a=!0,r(t))},t.next=6,Object(C.m)(T,{route:e,from:n,next:o.bind(this)});case 6:if(this._dateLastError=T.nuxt.dateErr,this._hadError=!!T.nuxt.err,(i=Object(C.e)(e)).length){t.next=23;break}return t.next=12,S.call(this,i,T.context);case 12:if(!T.context._redirected){t.next=14;break}return t.abrupt("return");case 14:return t.next=16,this.loadLayout("function"==typeof b.a.layout?b.a.layout(T.context):b.a.layout);case 16:return s=t.sent,t.next=19,S.call(this,i,T.context,s);case 19:if(!T.context._redirected){t.next=21;break}return t.abrupt("return");case 21:return T.context.error({statusCode:404,message:"This page could not be found"}),t.abrupt("return",r());case 23:return i.forEach(function(t){t._Ctor&&t._Ctor.options&&(t.options.asyncData=t._Ctor.options.asyncData,t.options.fetch=t._Ctor.options.fetch)}),this.setTransitions(A(i,e,n)),t.prev=25,t.next=28,S.call(this,i,T.context);case 28:if(!T.context._redirected){t.next=30;break}return t.abrupt("return");case 30:if(!T.context._errored){t.next=32;break}return t.abrupt("return",r());case 32:return"function"==typeof(u=i[0].options.layout)&&(u=u(T.context)),t.next=36,this.loadLayout(u);case 36:return u=t.sent,t.next=39,S.call(this,i,T.context,u);case 39:if(!T.context._redirected){t.next=41;break}return t.abrupt("return");case 41:if(!T.context._errored){t.next=43;break}return t.abrupt("return",r());case 43:if(f=!0,i.forEach(function(t){f&&"function"==typeof t.options.validate&&(f=t.options.validate({params:e.params||{},query:e.query||{},store:R}))}),f){t.next=48;break}return this.error({statusCode:404,message:"This page could not be found"}),t.abrupt("return",r());case 48:return t.next=50,c.a.all(i.map(function(t,n){if(t._path=Object(C.b)(e.matched[n].path)(e.params),t._dataRefresh=!1,p._pathChanged&&t._path!==j[n])t._dataRefresh=!0;else if(!p._pathChanged&&p._queryChanged){var r=t.options.watchQuery;!0===r?t._dataRefresh=!0:Array.isArray(r)&&(t._dataRefresh=r.some(function(t){return p._diffQuery[t]}))}if(!p._hadError&&p._isMounted&&!t._dataRefresh)return c.a.resolve();var a=[],o=t.options.asyncData&&"function"==typeof t.options.asyncData,i=!!t.options.fetch,s=o&&i?30:45;if(o){var u=Object(C.j)(t.options.asyncData,T.context).then(function(e){Object(C.a)(t,e),p.$loading.increase&&p.$loading.increase(s)});a.push(u)}if(i){var f=t.options.fetch(T.context);f&&(f instanceof c.a||"function"==typeof f.then)||(f=c.a.resolve(f)),f.then(function(t){p.$loading.increase&&p.$loading.increase(s)}),a.push(f)}return c.a.all(a)}));case 50:j=i.map(function(t,n){return Object(C.b)(e.matched[n].path)(e.params)}),this.$loading.finish&&this.$loading.finish(),a||r(),t.next=67;break;case 55:return t.prev=55,t.t0=t.catch(25),t.t0||(t.t0={}),j=[],t.t0.statusCode=t.t0.statusCode||t.t0.status||t.t0.response&&t.t0.response.status||500,"function"==typeof(l=b.a.layout)&&(l=l(T.context)),t.next=64,this.loadLayout(l);case 64:this.error(t.t0),this.$nuxt.$emit("routeChanged",e,n,t.t0),r(!1);case 67:case"end":return t.stop()}},t,this,[[25,55]])})),function(t,e,n){return a.apply(this,arguments)}),E=(o=m()(d.a.mark(function t(e){var n,r,a,o;return d.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return T=e.app,O=e.router,R=e.store,t.next=5,c.a.all(L(O));case 5:return n=t.sent,r=new w.default(T),a=q.layout||"default",t.next=10,r.loadLayout(a);case 10:if(r.setLayout(a),o=function(){r.$mount("#__nuxt"),w.default.nextTick(function(){U(r)})},r.setTransitions=r.$options.nuxt.setTransitions.bind(r),n.length&&(r.setTransitions(A(n,O.currentRoute)),j=O.currentRoute.matched.map(function(t){return Object(C.b)(t.path)(O.currentRoute.params)})),r.$loading={},q.error&&r.error(q.error),O.beforeEach(k.bind(r)),O.beforeEach($.bind(r)),O.afterEach(N),O.afterEach(M.bind(r)),!q.serverRendered){t.next=23;break}return o(),t.abrupt("return");case 23:$.call(r,O.currentRoute,O.currentRoute,function(t){if(!t)return N(O.currentRoute,O.currentRoute),F.call(r,O.currentRoute),void o();O.push(t,function(){return o()},function(t){return console.error(t)})});case 24:case"end":return t.stop()}},t,this)})),function(t){return o.apply(this,arguments)}),j=[],T=void 0,O=void 0,R=void 0,q=window.__NUXT__||{};function A(t,e,n){var r=function(t){var r=function(t,e){if(!t||!t.options||!t.options[e])return{};var n=t.options[e];if("function"==typeof n){for(var r=arguments.length,a=Array(r>2?r-2:0),o=2;o<r;o++)a[o-2]=arguments[o];return n.apply(void 0,a)}return n}(t,"transition",e,n)||{};return"string"==typeof r?{name:r}:r};return t.map(function(t){var e=g()({},r(t));if(n&&n.matched.length&&n.matched[0].components.default){var a=r(n.matched[0].components.default);v()(a).filter(function(t){return a[t]&&-1!==t.toLowerCase().indexOf("leave")}).forEach(function(t){e[t]=a[t]})}return e})}function L(t){var e,n=this,r=Object(C.d)(t.options.base,t.options.mode);return Object(C.c)(t.match(r),(e=m()(d.a.mark(function t(e,r,a,o,i){var s;return d.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if("function"!=typeof e||e.options){t.next=4;break}return t.next=3,e();case 3:e=t.sent;case 4:return n=Object(C.l)(e),r=q.data?q.data[i]:null,q.serverRendered&&r&&Object(C.a)(n,r),n._Ctor=n,s=n,a.components[o]=s,t.abrupt("return",s);case 7:case"end":return t.stop()}var n,r},t,n)})),function(t,n,r,a,o){return e.apply(this,arguments)}))}function S(t,e,n){var r=this,a=[],o=!1;if(void 0!==n&&(a=[],n.middleware&&(a=a.concat(n.middleware)),t.forEach(function(t){t.options.middleware&&(a=a.concat(t.options.middleware))})),a=a.map(function(t){return"function"==typeof t?t:("function"!=typeof _.a[t]&&(o=!0,r.error({statusCode:500,message:"Unknown middleware "+t})),_.a[t])}),!o)return Object(C.i)(a,e)}function N(t,e){Object(C.c)(t,function(t,e,n,r){return"object"!==(void 0===t?"undefined":s()(t))||t.options||((t=w.default.extend(t))._Ctor=t,n.components[r]=t),t})}function F(t){this._hadError&&this._dateLastError===this.$options.nuxt.dateErr&&this.error();var e=this.$options.nuxt.err?b.a.layout:t.matched[0].components.default.options.layout;"function"==typeof e&&(e=e(T.context)),this.setLayout(e)}function M(t,e){var n=this;!1===this._pathChanged&&!1===this._queryChanged||w.default.nextTick(function(){Object(C.f)(t).forEach(function(e,n){if(e&&-1!==t.matched[n].path.indexOf(":")&&e.constructor._dataRefresh&&j[n]===e.constructor._path&&"function"==typeof e.constructor.options.data){var r=e.constructor.options.data.call(e);for(var a in r)w.default.set(e.$data,a,r[a])}}),F.call(n,t)})}function U(t){window._nuxtReadyCbs.forEach(function(e){"function"==typeof e&&e(t)}),"function"==typeof window._onNuxtLoaded&&window._onNuxtLoaded(t),O.afterEach(function(e,n){w.default.nextTick(function(){return t.$nuxt.$emit("routeChanged",e,n)})})}Object(b.b)().then(E).catch(function(t){console.error("[nuxt] Error while initializing app",t)})},TuIM:function(t,e,n){"use strict";e.a=function(t){var e,n,r,a,o=t.app;e=window,n=document,e.GoogleAnalyticsObject="ga",e.ga=e.ga||function(){(e.ga.q=e.ga.q||[]).push(arguments)},e.ga.l=1*new Date,r=n.createElement("script"),a=n.getElementsByTagName("script")[0],r.async=1,r.src="https://www.google-analytics.com/analytics.js",a.parentNode.insertBefore(r,a),ga("create","UA-108745746-1","auto"),o.router.afterEach(function(t,e){ga("set","page",t.fullPath),ga("send","pageview")})}},U1Hc:function(t,e){},WRRc:function(t,e,n){"use strict";e.a={name:"nuxt-link",functional:!0,render:function(t,e){return t("router-link",e.data,e.children)}}},YLfZ:function(t,e,n){"use strict";e.a=function(t,e){var n=t.options.data||y;if(!e&&t.options.hasAsyncData)return;t.options.hasAsyncData=!0,t.options.data=function(){var r=n.call(this);return this.$ssrContext&&(e=this.$ssrContext.asyncData[t.cid]),x()({},r,e)},t._Ctor&&t._Ctor.options&&(t._Ctor.options.data=t.options.data)},e.l=g,e.e=w,e.f=function(t){return[].concat.apply([],t.matched.map(function(t){return h()(t.instances).map(function(e){return t.instances[e]})}))},e.c=_,e.k=b,n.d(e,"h",function(){return $}),n.d(e,"m",function(){return E}),e.i=function t(e,n){if(!e.length||n._redirected||n._errored)return l.a.resolve();return j(e[0],n).then(function(){return t(e.slice(1),n)})},e.j=j,e.d=function(t,e){var n=window.location.pathname;if("hash"===e)return window.location.hash.replace(/^#\//,"");t&&0===n.indexOf(t)&&(n=n.slice(t.length));return(n||"/")+window.location.search+window.location.hash},e.b=function(t,e){return function(t){for(var e=new Array(t.length),n=0;n<t.length;n++)"object"===i()(t[n])&&(e[n]=new RegExp("^(?:"+t[n].pattern+")$"));return function(n,r){for(var o="",i=n||{},s=r||{},u=s.pretty?O:encodeURIComponent,c=0;c<t.length;c++){var f=t[c];if("string"!=typeof f){var d,l=i[f.name];if(null==l){if(f.optional){f.partial&&(o+=f.prefix);continue}throw new TypeError('Expected "'+f.name+'" to be defined')}if(Array.isArray(l)){if(!f.repeat)throw new TypeError('Expected "'+f.name+'" to not repeat, but received `'+a()(l)+"`");if(0===l.length){if(f.optional)continue;throw new TypeError('Expected "'+f.name+'" to not be empty')}for(var p=0;p<l.length;p++){if(d=u(l[p]),!e[c].test(d))throw new TypeError('Expected all "'+f.name+'" to match "'+f.pattern+'", but received `'+a()(d)+"`");o+=(0===p?f.prefix:f.delimiter)+d}}else{if(d=f.asterisk?encodeURI(l).replace(/[?#]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()}):u(l),!e[c].test(d))throw new TypeError('Expected "'+f.name+'" to match "'+f.pattern+'", but received "'+d+'"');o+=f.prefix+d}}else o+=f}return o}}(function(t,e){var n,r=[],a=0,o=0,i="",s=e&&e.delimiter||"/";for(;null!=(n=T.exec(t));){var u=n[0],c=n[1],f=n.index;if(i+=t.slice(o,f),o=f+u.length,c)i+=c[1];else{var d=t[o],l=n[2],p=n[3],h=n[4],m=n[5],x=n[6],v=n[7];i&&(r.push(i),i="");var y=null!=l&&null!=d&&d!==l,g="+"===x||"*"===x,w="?"===x||"*"===x,_=n[2]||s,b=h||m;r.push({name:p||a++,prefix:l||"",delimiter:_,optional:w,repeat:g,partial:y,asterisk:!!v,pattern:b?(k=b,k.replace(/([=!:$\/()])/g,"\\$1")):v?".*":"[^"+(C=_,C.replace(/([.+*?=^!:()[\]|\/\\])/g,"\\$1"))+"]+?"})}}var C;var k;o<t.length&&(i+=t.substr(o));i&&r.push(i);return r}(t,e))},e.g=function(t,e){var n={},r=x()({},t,e);for(var a in r)String(t[a])!==String(e[a])&&(n[a]=!0);return n};var r=n("mvHQ"),a=n.n(r),o=n("pFYg"),i=n.n(o),s=n("Xxa5"),u=n.n(s),c=n("exGp"),f=n.n(c),d=n("//Fk"),l=n.n(d),p=n("fZjL"),h=n.n(p),m=n("Dd8w"),x=n.n(m),v=n("/5sW"),y=function(){return{}};function g(t){return t.options&&t._Ctor===t?t:(t.options?(t._Ctor=t,t.extendOptions=t.options):(t=v.default.extend(t))._Ctor=t,!t.options.name&&t.options.__file&&(t.options.name=t.options.__file),t)}function w(t){return[].concat.apply([],t.matched.map(function(t){return h()(t.components).map(function(e){return t.components[e]})}))}function _(t,e){return Array.prototype.concat.apply([],t.matched.map(function(t,n){return h()(t.components).map(function(r){return e(t.components[r],t.instances[r],t,r,n)})}))}function b(t){var e,n=this;return l.a.all(_(t,(e=f()(u.a.mark(function t(e,r,a,o){return u.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if("function"!=typeof e||e.options){t.next=4;break}return t.next=3,e();case 3:e=t.sent;case 4:return t.abrupt("return",a.components[o]=g(e));case 5:case"end":return t.stop()}},t,n)})),function(t,n,r,a){return e.apply(this,arguments)})))}window._nuxtReadyCbs=[],window.onNuxtReady=function(t){window._nuxtReadyCbs.push(t)};var C,k,$=(C=f()(u.a.mark(function t(e){return u.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,b(e);case 2:return t.abrupt("return",x()({},e,{meta:w(e).map(function(t){return t.options.meta||{}})}));case 3:case"end":return t.stop()}},t,this)})),function(t){return C.apply(this,arguments)}),E=(k=f()(u.a.mark(function t(e,n){return u.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(n.to?n.to:n.route,e.context){t.next=14;break}t.t0=!0,t.t1=e,t.t2=e.store,t.t3=n.payload,t.t4=n.error,t.t5={},e.context={get isServer(){return console.warn("context.isServer has been deprecated, please use process.server instead."),!1},get isClient(){return console.warn("context.isClient has been deprecated, please use process.client instead."),!0},isStatic:t.t0,isDev:!1,isHMR:!1,app:t.t1,store:t.t2,payload:t.t3,error:t.t4,base:"/unide/",env:t.t5},n.req&&(e.context.req=n.req),n.res&&(e.context.res=n.res),e.context.redirect=function(t,n,r){if(t){e.context._redirected=!0;var a=void 0===n?"undefined":i()(n);"number"==typeof t||"undefined"!==a&&"object"!==a||(r=n||{},a=void 0===(n=t)?"undefined":i()(n),t=302),"object"===a&&(n=e.router.resolve(n).href),/(^[.]{1,2}\/)|(^\/(?!\/))/.test(n)?e.context.next({path:n,query:r,status:t}):(n=R(n,r),window.location=n)}},e.context.nuxtState=window.__NUXT__;case 14:if(e.context.next=n.next,e.context._redirected=!1,e.context._errored=!1,e.context.isHMR=!!n.isHMR,!n.route){t.next=22;break}return t.next=21,$(n.route);case 21:e.context.route=t.sent;case 22:if(e.context.params=e.context.route.params||{},e.context.query=e.context.route.query||{},!n.from){t.next=28;break}return t.next=27,$(n.from);case 27:e.context.from=t.sent;case 28:case"end":return t.stop()}},t,this)})),function(t,e){return k.apply(this,arguments)});function j(t,e){var n=void 0;return(n=2===t.length?new l.a(function(n){t(e,function(t,r){t&&e.error(t),n(r=r||{})})}):t(e))&&(n instanceof l.a||"function"==typeof n.then)||(n=l.a.resolve(n)),n}var T=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function O(t){return encodeURI(t).replace(/[\/?#]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function R(t,e){var n=void 0,r=t.indexOf("://");-1!==r?(n=t.substring(0,r),t=t.substring(r+3)):0===t.indexOf("//")&&(t=t.substring(2));var o,i=t.split("/"),s=(n?n+"://":"//")+i.shift(),u=i.filter(Boolean).join("/"),c=void 0;return 2===(i=u.split("#")).length&&(u=i[0],c=i[1]),s+=u?"/"+u:"",e&&"{}"!==a()(e)&&(s+=(2===t.split("?").length?"&":"?")+(o=e,h()(o).sort().map(function(t){var e=o[t];return null==e?"":Array.isArray(e)?e.slice().map(function(e){return[t,"=",e].join("")}).join("&"):t+"="+e}).filter(Boolean).join("&"))),s+=c?"#"+c:""}},ct3O:function(t,e,n){"use strict";var r=n("mC6T"),a=n("n1a8"),o=!1;var i=function(t){o||n("U1Hc")},s=n("VU/8")(r.a,a.a,!1,i,null,null);s.options.__file=".nuxt\\components\\nuxt-error.vue",e.a=s.exports},mC6T:function(t,e,n){"use strict";e.a={name:"nuxt-error",props:["error"],head:function(){return{title:this.message,meta:[{name:"viewport",content:"width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"}]}},computed:{statusCode:function(){return this.error&&this.error.statusCode||500},message:function(){return this.error.message||"Error"}}}},mtxM:function(t,e,n){"use strict";e.a=function(){return new a.default({mode:"history",base:"/unide/",linkActiveClass:"nuxt-link-active",linkExactActiveClass:"nuxt-link-exact-active",scrollBehavior:m,routes:[{path:"/",component:o,name:"index"},{path:"/specification",component:i,children:[{path:"",component:s,name:"specification"},{path:"process-message",component:u,name:"specification-process-message"},{path:"machine-message",component:c,name:"specification-machine-message"},{path:"measurement-message",component:f,name:"specification-measurement-message"}]},{path:"/blog",component:d,name:"blog"},{path:"/article",component:l,name:"article"},{path:"/faq",component:p,name:"faq"},{path:"/proposal",component:h,name:"proposal"},{path:"/blog/:year/:month/:day/:name",component:l},{path:"/blog/:year?/:month?/:day?",component:d}],fallback:!1})};var r=n("/5sW"),a=n("/ocq");r.default.use(a.default);var o=function(){return n.e(9).then(n.bind(null,"/TYz")).then(function(t){return t.default||t})},i=function(){return n.e(8).then(n.bind(null,"ZNfg")).then(function(t){return t.default||t})},s=function(){return n.e(11).then(n.bind(null,"v0nM")).then(function(t){return t.default||t})},u=function(){return n.e(0).then(n.bind(null,"kgqz")).then(function(t){return t.default||t})},c=function(){return n.e(2).then(n.bind(null,"n1iW")).then(function(t){return t.default||t})},f=function(){return n.e(1).then(n.bind(null,"lYS2")).then(function(t){return t.default||t})},d=function(){return n.e(3).then(n.bind(null,"AIuP")).then(function(t){return t.default||t})},l=function(){return n.e(4).then(n.bind(null,"QE0f")).then(function(t){return t.default||t})},p=function(){return n.e(6).then(n.bind(null,"NAEW")).then(function(t){return t.default||t})},h=function(){return n.e(10).then(n.bind(null,"gRp+")).then(function(t){return t.default||t})},m=function(t,e,n){if(n)return n;var r={};return t.matched.length<2?r={x:0,y:0}:t.matched.some(function(t){return t.components.default.options.scrollToTop})&&(r={x:0,y:0}),t.hash&&(r={selector:t.hash}),r}},n1a8:function(t,e,n){"use strict";var r=function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"__nuxt-error-page"},[e("div",{staticClass:"error"},[e("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",width:"90",height:"90",fill:"#DBE1EC",viewBox:"0 0 48 48"}},[e("path",{attrs:{d:"M22 30h4v4h-4zm0-16h4v12h-4zm1.99-10C12.94 4 4 12.95 4 24s8.94 20 19.99 20S44 35.05 44 24 35.04 4 23.99 4zM24 40c-8.84 0-16-7.16-16-16S15.16 8 24 8s16 7.16 16 16-7.16 16-16 16z"}})]),e("div",{staticClass:"title"},[this._v(this._s(this.message))]),404===this.statusCode?e("p",{staticClass:"description"},[e("nuxt-link",{staticClass:"error-link",attrs:{to:"/"}},[this._v("Back to the home page")])],1):this._e(),this._m(0)])])};r._withStripped=!0;var a={render:r,staticRenderFns:[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"logo"},[e("a",{attrs:{href:"https://nuxtjs.org",target:"_blank",rel:"noopener"}},[this._v("Nuxt.js")])])}]};e.a=a},qcny:function(t,e,n){"use strict";n.d(e,"b",function(){return R});var r=n("Xxa5"),a=n.n(r),o=n("//Fk"),i=(n.n(o),n("C4MV")),s=n.n(i),u=n("woOf"),c=n.n(u),f=n("Dd8w"),d=n.n(f),l=n("exGp"),p=n.n(l),h=n("MU8w"),m=(n.n(h),n("/5sW")),x=n("p3jY"),v=n.n(x),y=n("mtxM"),g=n("0F0d"),w=n("HBB+"),_=n("WRRc"),b=n("ct3O"),C=n("Hot+"),k=n("yTq1"),$=n("YLfZ"),E=n("J2Ti"),j=n("TuIM"),T=n("BW6j");n.d(e,"a",function(){return b.a});var O,R=(O=p()(a.a.mark(function t(e){var n,r,o,i,u,f,l;return a.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return n=Object(y.a)(),(r=Object(E.a)()).$router=n,o=d()({router:n,store:r,nuxt:{defaultTransition:q,transitions:[q],setTransitions:function(t){return Array.isArray(t)||(t=[t]),t=t.map(function(t){return t=t?"string"==typeof t?c()({},q,{name:t}):c()({},q,t):q}),this.$options.nuxt.transitions=t,t},err:null,dateErr:null,error:function(t){t=t||null,o.context._errored=!!t,"string"==typeof t&&(t={statusCode:500,message:t});var n=this.nuxt||this.$options.nuxt;return n.dateErr=Date.now(),n.err=t,e&&(e.nuxt.error=t),t}}},k.a),r.app=o,i=e?e.next:function(t){return o.router.push(t)},u=void 0,e?u=n.resolve(e.url).route:(f=Object($.d)(n.options.base),u=n.resolve(f).route),t.next=10,Object($.m)(o,{route:u,next:i,error:o.nuxt.error.bind(o),store:r,payload:e?e.payload:void 0,req:e?e.req:void 0,res:e?e.res:void 0,beforeRenderFns:e?e.beforeRenderFns:void 0});case 10:if(l=function(t,e){if(!t)throw new Error("inject(key, value) has no key provided");if(!e)throw new Error("inject(key, value) has no value provided");o[t="$"+t]=e,r[t]=o[t];var n="__nuxt_"+t+"_installed__";m.default[n]||(m.default[n]=!0,m.default.use(function(){m.default.prototype.hasOwnProperty(t)||s()(m.default.prototype,t,{get:function(){return this.$root.$options[t]}})}))},window.__NUXT__&&window.__NUXT__.state&&r.replaceState(window.__NUXT__.state),"function"!=typeof j.a){t.next=15;break}return t.next=15,Object(j.a)(o.context,l);case 15:if("function"!=typeof T.default){t.next=18;break}return t.next=18,Object(T.default)(o.context,l);case 18:t.next=21;break;case 21:return t.abrupt("return",{app:o,router:n,store:r});case 22:case"end":return t.stop()}},t,this)})),function(t){return O.apply(this,arguments)});m.default.component(g.a.name,g.a),m.default.component(w.a.name,w.a),m.default.component(_.a.name,_.a),m.default.component(C.a.name,C.a),m.default.use(v.a,{keyName:"head",attribute:"data-n-head",ssrAttribute:"data-n-head-ssr",tagIDKeyName:"hid"});var q={name:"page",mode:"out-in",appear:!1,appearClass:"appear",appearActiveClass:"appear-active",appearToClass:"appear-to"}},sq1o:function(t,e){function n(t){throw new Error("Cannot find module '"+t+"'.")}n.keys=function(){return[]},n.resolve=n,t.exports=n,n.id="sq1o"},srTi:function(t,e,n){"use strict";var r=function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"nuxt-progress",style:{width:this.percent+"%",height:this.height,"background-color":this.canSuccess?this.color:this.failedColor,opacity:this.show?1:0}})};r._withStripped=!0;var a={render:r,staticRenderFns:[]};e.a=a},unZF:function(t,e,n){"use strict";var r=n("BO1k"),a=n.n(r),o=n("sq1o"),i=o.keys();var s,u={},c=!0,f=!1,d=void 0;try{for(var l,p=a()(i);!(c=(l=p.next()).done);c=!0){var h=l.value;u[h.replace(/^\.\//,"").replace(/\.(js)$/,"")]=(void 0,(s=o(h)).default?s.default:s)}}catch(t){f=!0,d=t}finally{try{!c&&p.return&&p.return()}finally{if(f)throw d}}e.a=u},yTq1:function(t,e,n){"use strict";var r=n("//Fk"),a=n.n(r),o=n("/5sW"),i=n("F88d"),s=n("2oyj"),u=(n.n(s),{_default:function(){return n.e(7).then(n.bind(null,"Ma2J")).then(function(t){return t.default||t})},_sidebar:function(){return n.e(5).then(n.bind(null,"ofze")).then(function(t){return t.default||t})}}),c={};e.a={head:{title:"Welcome",titleTemplate:"Eclipse unide - %s",meta:[{charset:"utf-8"},{name:"viewport",content:"width=device-width, initial-scale=1"},{hid:"description",name:"description",content:"Eclipse Unide: Understand Industry devices"}],link:[{rel:"icon",type:"image/x-icon",href:"/unide/favicon.ico"}],style:[],script:[]},render:function(t,e){var n=t("nuxt-loading",{ref:"loading"}),r=t(this.layout||"nuxt");return t("div",{domProps:{id:"__nuxt"}},[n,t("transition",{props:{name:"layout",mode:"out-in"}},[t("div",{domProps:{id:"__layout"},key:this.layoutName},[r])])])},data:function(){return{layout:null,layoutName:""}},beforeCreate:function(){o.default.util.defineReactive(this,"nuxt",this.$options.nuxt)},created:function(){o.default.prototype.$nuxt=this,"undefined"!=typeof window&&(window.$nuxt=this),this.error=this.nuxt.error},mounted:function(){this.$loading=this.$refs.loading},watch:{"nuxt.err":"errorChanged"},methods:{errorChanged:function(){this.nuxt.err&&this.$loading&&(this.$loading.fail&&this.$loading.fail(),this.$loading.finish&&this.$loading.finish())},setLayout:function(t){t&&c["_"+t]||(t="default"),this.layoutName=t;var e="_"+t;return this.layout=c[e],this.layout},loadLayout:function(t){var e=this;t&&(u["_"+t]||c["_"+t])||(t="default");var n="_"+t;return c[n]?a.a.resolve(c[n]):u[n]().then(function(t){return c[n]=t,delete u[n],c[n]}).catch(function(t){if(e.$nuxt)return e.$nuxt.error({statusCode:500,message:t.message})})}},components:{NuxtLoading:i.a}}}},["T23V"]);
\ No newline at end of file
+webpackJsonp([16],{"+ESq":function(t,e,n){"use strict";var r=n("/5sW");e.a={name:"nuxt-loading",data:function(){return{percent:0,show:!1,canSuccess:!0,duration:5e3,height:"2px",color:"#50237f",failedColor:"red"}},methods:{start:function(){var t=this;return this.show=!0,this.canSuccess=!0,this._timer&&(clearInterval(this._timer),this.percent=0),this._cut=1e4/Math.floor(this.duration),this._timer=setInterval(function(){t.increase(t._cut*Math.random()),t.percent>95&&t.finish()},100),this},set:function(t){return this.show=!0,this.canSuccess=!0,this.percent=Math.floor(t),this},get:function(){return Math.floor(this.percent)},increase:function(t){return this.percent=this.percent+Math.floor(t),this},decrease:function(t){return this.percent=this.percent-Math.floor(t),this},finish:function(){return this.percent=100,this.hide(),this},pause:function(){return clearInterval(this._timer),this},hide:function(){var t=this;return clearInterval(this._timer),this._timer=null,setTimeout(function(){t.show=!1,r.default.nextTick(function(){setTimeout(function(){t.percent=0},200)})},500),this},fail:function(){return this.canSuccess=!1,this}}}},"0F0d":function(t,e,n){"use strict";e.a={name:"no-ssr",props:["placeholder"],data:function(){return{canRender:!1}},mounted:function(){this.canRender=!0},render:function(t){return this.canRender?this.$slots.default&&this.$slots.default[0]:t("div",{class:["no-ssr-placeholder"]},this.$slots.placeholder||this.placeholder)}}},"1VLa":function(t,e){},"2oyj":function(t,e){},BW6j:function(t,e,n){"use strict";var r=n("OEdS"),a=(n.n(r),n("m6/3"));n.n(a)},F7kz:function(t,e){function n(t){throw new Error("Cannot find module '"+t+"'.")}n.keys=function(){return[]},n.resolve=n,t.exports=n,n.id="F7kz"},F88d:function(t,e,n){"use strict";var r=n("+ESq"),a=n("srTi"),o=!1;var i=function(t){o||n("1VLa")},s=n("VU/8")(r.a,a.a,!1,i,null,null);s.options.__file=".nuxt\\components\\nuxt-loading.vue",e.a=s.exports},"HBB+":function(t,e,n){"use strict";e.a={name:"nuxt-child",functional:!0,render:function(t,e){var n=e.parent,o=e.data;o.nuxtChild=!0;for(var i=n,s=n.$nuxt.nuxt.transitions,u=n.$nuxt.nuxt.defaultTransition,c=0;n;)n.$vnode&&n.$vnode.data.nuxtChild&&c++,n=n.$parent;o.nuxtChildDepth=c;var f=s[c]||u,d={};r.forEach(function(t){void 0!==f[t]&&(d[t]=f[t])});var l={};return a.forEach(function(t){"function"==typeof f[t]&&(l[t]=f[t].bind(i))}),t("transition",{props:d,on:l},[t("router-view",o)])}};var r=["name","mode","appear","css","type","duration","enterClass","leaveClass","appearClass","enterActiveClass","enterActiveClass","leaveActiveClass","appearActiveClass","enterToClass","leaveToClass","appearToClass"],a=["beforeEnter","enter","afterEnter","enterCancelled","beforeLeave","leave","afterLeave","leaveCancelled","beforeAppear","appear","afterAppear","appearCancelled"]},"Hot+":function(t,e,n){"use strict";var r=n("/5sW"),a=n("HBB+"),o=n("ct3O"),i=n("YLfZ");e.a={name:"nuxt",props:["nuxtChildKey"],render:function(t){return this.nuxt._redirected?t("div",["Redirecting to external page."]):this.nuxt.err?t("nuxt-error",{props:{error:this.nuxt.err}}):t("nuxt-child",{key:this.routerViewKey})},beforeCreate:function(){r.default.util.defineReactive(this,"nuxt",this.$root.$options.nuxt)},computed:{routerViewKey:function(){if(void 0!==this.nuxtChildKey||this.$route.matched.length>1)return this.nuxtChildKey||Object(i.b)(this.$route.matched[0].path)(this.$route.params);var t=this.$route.matched[0]&&this.$route.matched[0].components.default;return t&&t.options&&t.options.key?"function"==typeof t.options.key?t.options.key(this.$route):t.options.key:this.$route.path}},components:{NuxtChild:a.a,NuxtError:o.a}}},J2Ti:function(t,e,n){"use strict";n.d(e,"a",function(){return w});var r=n("woOf"),a=n.n(r),o=n("BO1k"),i=n.n(o),s=n("/5sW"),u=n("NYxO");s.default.use(u.default);var c=n("F7kz"),f=c.keys(),d={},l=void 0;if(f.forEach(function(t){-1!==t.indexOf("./index.")&&(l=t)}),l&&(d=_(l)),"function"!=typeof d){d.modules||(d.modules={});var p=!0,h=!1,m=void 0;try{for(var v,x=i()(f);!(p=(v=x.next()).done);p=!0){var y=v.value,g=y.replace(/^\.\//,"").replace(/\.(js)$/,"");if("index"!==g){var b=g.split(/\//);(t=C(d,b))[g=b.pop()]=_(y),t[g].namespaced=!0}}}catch(t){h=!0,m=t}finally{try{!p&&x.return&&x.return()}finally{if(h)throw m}}}var w=d instanceof Function?d:function(){return new u.default.Store(a()({strict:!1},d,{state:d.state instanceof Function?d.state():{}}))};function _(t){var e=c(t),n=e.default||e;if(n.commit)throw new Error("[nuxt] store/"+t.replace("./","")+" should export a method which returns a Vuex instance.");if(n.state&&"function"!=typeof n.state)throw new Error("[nuxt] state should be a function in store/"+t.replace("./",""));return n}function C(t,e){if(1===e.length)return t.modules;var n=e.shift();return t.modules[n]=t.modules[n]||{},t.modules[n].namespaced=!0,t.modules[n].modules=t.modules[n].modules||{},C(t.modules[n],e)}},T23V:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,a,o,i=n("pFYg"),s=n.n(i),u=n("//Fk"),c=n.n(u),f=n("Xxa5"),d=n.n(f),l=n("mvHQ"),p=n.n(l),h=n("exGp"),m=n.n(h),v=n("fZjL"),x=n.n(v),y=n("woOf"),g=n.n(y),b=n("/5sW"),w=n("unZF"),_=n("qcny"),C=n("YLfZ"),k=(r=m()(d.a.mark(function t(e,n,r){var a,o,i=this;return d.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return this._pathChanged=!!T.nuxt.err||n.path!==e.path,this._queryChanged=p()(e.query)!==p()(n.query),this._diffQuery=this._queryChanged?Object(C.g)(e.query,n.query):[],this._pathChanged&&this.$loading.start&&this.$loading.start(),t.prev=4,t.next=7,Object(C.k)(e);case 7:a=t.sent,!this._pathChanged&&this._queryChanged&&a.some(function(t){var e=t.options.watchQuery;return!0===e||!!Array.isArray(e)&&e.some(function(t){return i._diffQuery[t]})})&&this.$loading.start&&this.$loading.start(),r(),t.next=19;break;case 12:t.prev=12,t.t0=t.catch(4),t.t0=t.t0||{},o=t.t0.statusCode||t.t0.status||t.t0.response&&t.t0.response.status||500,this.error({statusCode:o,message:t.t0.message}),this.$nuxt.$emit("routeChanged",e,n,t.t0),r(!1);case 19:case"end":return t.stop()}},t,this,[[4,12]])})),function(t,e,n){return r.apply(this,arguments)}),$=(a=m()(d.a.mark(function t(e,n,r){var a,o,i,s,u,f,l,p=this;return d.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(!1!==this._pathChanged||!1!==this._queryChanged){t.next=2;break}return t.abrupt("return",r());case 2:return a=!1,o=function(t){p.$loading.finish&&p.$loading.finish(),a||(a=!0,r(t))},t.next=6,Object(C.m)(T,{route:e,from:n,next:o.bind(this)});case 6:if(this._dateLastError=T.nuxt.dateErr,this._hadError=!!T.nuxt.err,(i=Object(C.e)(e)).length){t.next=23;break}return t.next=12,N.call(this,i,T.context);case 12:if(!T.context._redirected){t.next=14;break}return t.abrupt("return");case 14:return t.next=16,this.loadLayout("function"==typeof _.a.layout?_.a.layout(T.context):_.a.layout);case 16:return s=t.sent,t.next=19,N.call(this,i,T.context,s);case 19:if(!T.context._redirected){t.next=21;break}return t.abrupt("return");case 21:return T.context.error({statusCode:404,message:"This page could not be found"}),t.abrupt("return",r());case 23:return i.forEach(function(t){t._Ctor&&t._Ctor.options&&(t.options.asyncData=t._Ctor.options.asyncData,t.options.fetch=t._Ctor.options.fetch)}),this.setTransitions(A(i,e,n)),t.prev=25,t.next=28,N.call(this,i,T.context);case 28:if(!T.context._redirected){t.next=30;break}return t.abrupt("return");case 30:if(!T.context._errored){t.next=32;break}return t.abrupt("return",r());case 32:return"function"==typeof(u=i[0].options.layout)&&(u=u(T.context)),t.next=36,this.loadLayout(u);case 36:return u=t.sent,t.next=39,N.call(this,i,T.context,u);case 39:if(!T.context._redirected){t.next=41;break}return t.abrupt("return");case 41:if(!T.context._errored){t.next=43;break}return t.abrupt("return",r());case 43:if(f=!0,i.forEach(function(t){f&&"function"==typeof t.options.validate&&(f=t.options.validate({params:e.params||{},query:e.query||{},store:R}))}),f){t.next=48;break}return this.error({statusCode:404,message:"This page could not be found"}),t.abrupt("return",r());case 48:return t.next=50,c.a.all(i.map(function(t,n){if(t._path=Object(C.b)(e.matched[n].path)(e.params),t._dataRefresh=!1,p._pathChanged&&t._path!==j[n])t._dataRefresh=!0;else if(!p._pathChanged&&p._queryChanged){var r=t.options.watchQuery;!0===r?t._dataRefresh=!0:Array.isArray(r)&&(t._dataRefresh=r.some(function(t){return p._diffQuery[t]}))}if(!p._hadError&&p._isMounted&&!t._dataRefresh)return c.a.resolve();var a=[],o=t.options.asyncData&&"function"==typeof t.options.asyncData,i=!!t.options.fetch,s=o&&i?30:45;if(o){var u=Object(C.j)(t.options.asyncData,T.context).then(function(e){Object(C.a)(t,e),p.$loading.increase&&p.$loading.increase(s)});a.push(u)}if(i){var f=t.options.fetch(T.context);f&&(f instanceof c.a||"function"==typeof f.then)||(f=c.a.resolve(f)),f.then(function(t){p.$loading.increase&&p.$loading.increase(s)}),a.push(f)}return c.a.all(a)}));case 50:j=i.map(function(t,n){return Object(C.b)(e.matched[n].path)(e.params)}),this.$loading.finish&&this.$loading.finish(),a||r(),t.next=67;break;case 55:return t.prev=55,t.t0=t.catch(25),t.t0||(t.t0={}),j=[],t.t0.statusCode=t.t0.statusCode||t.t0.status||t.t0.response&&t.t0.response.status||500,"function"==typeof(l=_.a.layout)&&(l=l(T.context)),t.next=64,this.loadLayout(l);case 64:this.error(t.t0),this.$nuxt.$emit("routeChanged",e,n,t.t0),r(!1);case 67:case"end":return t.stop()}},t,this,[[25,55]])})),function(t,e,n){return a.apply(this,arguments)}),E=(o=m()(d.a.mark(function t(e){var n,r,a,o;return d.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return T=e.app,O=e.router,R=e.store,t.next=5,c.a.all(L(O));case 5:return n=t.sent,r=new b.default(T),a=q.layout||"default",t.next=10,r.loadLayout(a);case 10:if(r.setLayout(a),o=function(){r.$mount("#__nuxt"),b.default.nextTick(function(){U(r)})},r.setTransitions=r.$options.nuxt.setTransitions.bind(r),n.length&&(r.setTransitions(A(n,O.currentRoute)),j=O.currentRoute.matched.map(function(t){return Object(C.b)(t.path)(O.currentRoute.params)})),r.$loading={},q.error&&r.error(q.error),O.beforeEach(k.bind(r)),O.beforeEach($.bind(r)),O.afterEach(S),O.afterEach(M.bind(r)),!q.serverRendered){t.next=23;break}return o(),t.abrupt("return");case 23:$.call(r,O.currentRoute,O.currentRoute,function(t){if(!t)return S(O.currentRoute,O.currentRoute),F.call(r,O.currentRoute),void o();O.push(t,function(){return o()},function(t){return console.error(t)})});case 24:case"end":return t.stop()}},t,this)})),function(t){return o.apply(this,arguments)}),j=[],T=void 0,O=void 0,R=void 0,q=window.__NUXT__||{};function A(t,e,n){var r=function(t){var r=function(t,e){if(!t||!t.options||!t.options[e])return{};var n=t.options[e];if("function"==typeof n){for(var r=arguments.length,a=Array(r>2?r-2:0),o=2;o<r;o++)a[o-2]=arguments[o];return n.apply(void 0,a)}return n}(t,"transition",e,n)||{};return"string"==typeof r?{name:r}:r};return t.map(function(t){var e=g()({},r(t));if(n&&n.matched.length&&n.matched[0].components.default){var a=r(n.matched[0].components.default);x()(a).filter(function(t){return a[t]&&-1!==t.toLowerCase().indexOf("leave")}).forEach(function(t){e[t]=a[t]})}return e})}function L(t){var e,n=this,r=Object(C.d)(t.options.base,t.options.mode);return Object(C.c)(t.match(r),(e=m()(d.a.mark(function t(e,r,a,o,i){var s;return d.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if("function"!=typeof e||e.options){t.next=4;break}return t.next=3,e();case 3:e=t.sent;case 4:return n=Object(C.l)(e),r=q.data?q.data[i]:null,q.serverRendered&&r&&Object(C.a)(n,r),n._Ctor=n,s=n,a.components[o]=s,t.abrupt("return",s);case 7:case"end":return t.stop()}var n,r},t,n)})),function(t,n,r,a,o){return e.apply(this,arguments)}))}function N(t,e,n){var r=this,a=[],o=!1;if(void 0!==n&&(a=[],n.middleware&&(a=a.concat(n.middleware)),t.forEach(function(t){t.options.middleware&&(a=a.concat(t.options.middleware))})),a=a.map(function(t){return"function"==typeof t?t:("function"!=typeof w.a[t]&&(o=!0,r.error({statusCode:500,message:"Unknown middleware "+t})),w.a[t])}),!o)return Object(C.i)(a,e)}function S(t,e){Object(C.c)(t,function(t,e,n,r){return"object"!==(void 0===t?"undefined":s()(t))||t.options||((t=b.default.extend(t))._Ctor=t,n.components[r]=t),t})}function F(t){this._hadError&&this._dateLastError===this.$options.nuxt.dateErr&&this.error();var e=this.$options.nuxt.err?_.a.layout:t.matched[0].components.default.options.layout;"function"==typeof e&&(e=e(T.context)),this.setLayout(e)}function M(t,e){var n=this;!1===this._pathChanged&&!1===this._queryChanged||b.default.nextTick(function(){Object(C.f)(t).forEach(function(e,n){if(e&&-1!==t.matched[n].path.indexOf(":")&&e.constructor._dataRefresh&&j[n]===e.constructor._path&&"function"==typeof e.constructor.options.data){var r=e.constructor.options.data.call(e);for(var a in r)b.default.set(e.$data,a,r[a])}}),F.call(n,t)})}function U(t){window._nuxtReadyCbs.forEach(function(e){"function"==typeof e&&e(t)}),"function"==typeof window._onNuxtLoaded&&window._onNuxtLoaded(t),O.afterEach(function(e,n){b.default.nextTick(function(){return t.$nuxt.$emit("routeChanged",e,n)})})}Object(_.b)().then(E).catch(function(t){console.error("[nuxt] Error while initializing app",t)})},TuIM:function(t,e,n){"use strict";e.a=function(t){var e,n,r,a,o=t.app;e=window,n=document,e.GoogleAnalyticsObject="ga",e.ga=e.ga||function(){(e.ga.q=e.ga.q||[]).push(arguments)},e.ga.l=1*new Date,r=n.createElement("script"),a=n.getElementsByTagName("script")[0],r.async=1,r.src="https://www.google-analytics.com/analytics.js",a.parentNode.insertBefore(r,a),ga("create","UA-108745746-1","auto"),o.router.afterEach(function(t,e){ga("set","page",t.fullPath),ga("send","pageview")})}},U1Hc:function(t,e){},WRRc:function(t,e,n){"use strict";e.a={name:"nuxt-link",functional:!0,render:function(t,e){return t("router-link",e.data,e.children)}}},YLfZ:function(t,e,n){"use strict";e.a=function(t,e){var n=t.options.data||y;if(!e&&t.options.hasAsyncData)return;t.options.hasAsyncData=!0,t.options.data=function(){var r=n.call(this);return this.$ssrContext&&(e=this.$ssrContext.asyncData[t.cid]),v()({},r,e)},t._Ctor&&t._Ctor.options&&(t._Ctor.options.data=t.options.data)},e.l=g,e.e=b,e.f=function(t){return[].concat.apply([],t.matched.map(function(t){return h()(t.instances).map(function(e){return t.instances[e]})}))},e.c=w,e.k=_,n.d(e,"h",function(){return $}),n.d(e,"m",function(){return E}),e.i=function t(e,n){if(!e.length||n._redirected||n._errored)return l.a.resolve();return j(e[0],n).then(function(){return t(e.slice(1),n)})},e.j=j,e.d=function(t,e){var n=window.location.pathname;if("hash"===e)return window.location.hash.replace(/^#\//,"");t&&0===n.indexOf(t)&&(n=n.slice(t.length));return(n||"/")+window.location.search+window.location.hash},e.b=function(t,e){return function(t){for(var e=new Array(t.length),n=0;n<t.length;n++)"object"===i()(t[n])&&(e[n]=new RegExp("^(?:"+t[n].pattern+")$"));return function(n,r){for(var o="",i=n||{},s=r||{},u=s.pretty?O:encodeURIComponent,c=0;c<t.length;c++){var f=t[c];if("string"!=typeof f){var d,l=i[f.name];if(null==l){if(f.optional){f.partial&&(o+=f.prefix);continue}throw new TypeError('Expected "'+f.name+'" to be defined')}if(Array.isArray(l)){if(!f.repeat)throw new TypeError('Expected "'+f.name+'" to not repeat, but received `'+a()(l)+"`");if(0===l.length){if(f.optional)continue;throw new TypeError('Expected "'+f.name+'" to not be empty')}for(var p=0;p<l.length;p++){if(d=u(l[p]),!e[c].test(d))throw new TypeError('Expected all "'+f.name+'" to match "'+f.pattern+'", but received `'+a()(d)+"`");o+=(0===p?f.prefix:f.delimiter)+d}}else{if(d=f.asterisk?encodeURI(l).replace(/[?#]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()}):u(l),!e[c].test(d))throw new TypeError('Expected "'+f.name+'" to match "'+f.pattern+'", but received "'+d+'"');o+=f.prefix+d}}else o+=f}return o}}(function(t,e){var n,r=[],a=0,o=0,i="",s=e&&e.delimiter||"/";for(;null!=(n=T.exec(t));){var u=n[0],c=n[1],f=n.index;if(i+=t.slice(o,f),o=f+u.length,c)i+=c[1];else{var d=t[o],l=n[2],p=n[3],h=n[4],m=n[5],v=n[6],x=n[7];i&&(r.push(i),i="");var y=null!=l&&null!=d&&d!==l,g="+"===v||"*"===v,b="?"===v||"*"===v,w=n[2]||s,_=h||m;r.push({name:p||a++,prefix:l||"",delimiter:w,optional:b,repeat:g,partial:y,asterisk:!!x,pattern:_?(k=_,k.replace(/([=!:$\/()])/g,"\\$1")):x?".*":"[^"+(C=w,C.replace(/([.+*?=^!:()[\]|\/\\])/g,"\\$1"))+"]+?"})}}var C;var k;o<t.length&&(i+=t.substr(o));i&&r.push(i);return r}(t,e))},e.g=function(t,e){var n={},r=v()({},t,e);for(var a in r)String(t[a])!==String(e[a])&&(n[a]=!0);return n};var r=n("mvHQ"),a=n.n(r),o=n("pFYg"),i=n.n(o),s=n("Xxa5"),u=n.n(s),c=n("exGp"),f=n.n(c),d=n("//Fk"),l=n.n(d),p=n("fZjL"),h=n.n(p),m=n("Dd8w"),v=n.n(m),x=n("/5sW"),y=function(){return{}};function g(t){return t.options&&t._Ctor===t?t:(t.options?(t._Ctor=t,t.extendOptions=t.options):(t=x.default.extend(t))._Ctor=t,!t.options.name&&t.options.__file&&(t.options.name=t.options.__file),t)}function b(t){return[].concat.apply([],t.matched.map(function(t){return h()(t.components).map(function(e){return t.components[e]})}))}function w(t,e){return Array.prototype.concat.apply([],t.matched.map(function(t,n){return h()(t.components).map(function(r){return e(t.components[r],t.instances[r],t,r,n)})}))}function _(t){var e,n=this;return l.a.all(w(t,(e=f()(u.a.mark(function t(e,r,a,o){return u.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if("function"!=typeof e||e.options){t.next=4;break}return t.next=3,e();case 3:e=t.sent;case 4:return t.abrupt("return",a.components[o]=g(e));case 5:case"end":return t.stop()}},t,n)})),function(t,n,r,a){return e.apply(this,arguments)})))}window._nuxtReadyCbs=[],window.onNuxtReady=function(t){window._nuxtReadyCbs.push(t)};var C,k,$=(C=f()(u.a.mark(function t(e){return u.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,_(e);case 2:return t.abrupt("return",v()({},e,{meta:b(e).map(function(t){return t.options.meta||{}})}));case 3:case"end":return t.stop()}},t,this)})),function(t){return C.apply(this,arguments)}),E=(k=f()(u.a.mark(function t(e,n){return u.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(n.to?n.to:n.route,e.context){t.next=14;break}t.t0=!0,t.t1=e,t.t2=e.store,t.t3=n.payload,t.t4=n.error,t.t5={},e.context={get isServer(){return console.warn("context.isServer has been deprecated, please use process.server instead."),!1},get isClient(){return console.warn("context.isClient has been deprecated, please use process.client instead."),!0},isStatic:t.t0,isDev:!1,isHMR:!1,app:t.t1,store:t.t2,payload:t.t3,error:t.t4,base:"/unide/",env:t.t5},n.req&&(e.context.req=n.req),n.res&&(e.context.res=n.res),e.context.redirect=function(t,n,r){if(t){e.context._redirected=!0;var a=void 0===n?"undefined":i()(n);"number"==typeof t||"undefined"!==a&&"object"!==a||(r=n||{},a=void 0===(n=t)?"undefined":i()(n),t=302),"object"===a&&(n=e.router.resolve(n).href),/(^[.]{1,2}\/)|(^\/(?!\/))/.test(n)?e.context.next({path:n,query:r,status:t}):(n=R(n,r),window.location=n)}},e.context.nuxtState=window.__NUXT__;case 14:if(e.context.next=n.next,e.context._redirected=!1,e.context._errored=!1,e.context.isHMR=!!n.isHMR,!n.route){t.next=22;break}return t.next=21,$(n.route);case 21:e.context.route=t.sent;case 22:if(e.context.params=e.context.route.params||{},e.context.query=e.context.route.query||{},!n.from){t.next=28;break}return t.next=27,$(n.from);case 27:e.context.from=t.sent;case 28:case"end":return t.stop()}},t,this)})),function(t,e){return k.apply(this,arguments)});function j(t,e){var n=void 0;return(n=2===t.length?new l.a(function(n){t(e,function(t,r){t&&e.error(t),n(r=r||{})})}):t(e))&&(n instanceof l.a||"function"==typeof n.then)||(n=l.a.resolve(n)),n}var T=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function O(t){return encodeURI(t).replace(/[\/?#]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function R(t,e){var n=void 0,r=t.indexOf("://");-1!==r?(n=t.substring(0,r),t=t.substring(r+3)):0===t.indexOf("//")&&(t=t.substring(2));var o,i=t.split("/"),s=(n?n+"://":"//")+i.shift(),u=i.filter(Boolean).join("/"),c=void 0;return 2===(i=u.split("#")).length&&(u=i[0],c=i[1]),s+=u?"/"+u:"",e&&"{}"!==a()(e)&&(s+=(2===t.split("?").length?"&":"?")+(o=e,h()(o).sort().map(function(t){var e=o[t];return null==e?"":Array.isArray(e)?e.slice().map(function(e){return[t,"=",e].join("")}).join("&"):t+"="+e}).filter(Boolean).join("&"))),s+=c?"#"+c:""}},ct3O:function(t,e,n){"use strict";var r=n("mC6T"),a=n("n1a8"),o=!1;var i=function(t){o||n("U1Hc")},s=n("VU/8")(r.a,a.a,!1,i,null,null);s.options.__file=".nuxt\\components\\nuxt-error.vue",e.a=s.exports},mC6T:function(t,e,n){"use strict";e.a={name:"nuxt-error",props:["error"],head:function(){return{title:this.message,meta:[{name:"viewport",content:"width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"}]}},computed:{statusCode:function(){return this.error&&this.error.statusCode||500},message:function(){return this.error.message||"Error"}}}},mtxM:function(t,e,n){"use strict";e.a=function(){return new a.default({mode:"history",base:"/unide/",linkActiveClass:"nuxt-link-active",linkExactActiveClass:"nuxt-link-exact-active",scrollBehavior:y,routes:[{path:"/",component:o,name:"index"},{path:"/specification",component:i,children:[{path:"",component:s,name:"specification"},{path:"v3/process-message",component:u,name:"specification-v3-process-message"},{path:"v3/machine-message",component:c,name:"specification-v3-machine-message"},{path:"v2/measurement-message",component:f,name:"specification-v2-measurement-message"},{path:"v2/machine-message",component:d,name:"specification-v2-machine-message"},{path:"v2/process-message",component:l,name:"specification-v2-process-message"},{path:"v3/measurement-message",component:p,name:"specification-v3-measurement-message"}]},{path:"/blog",component:h,name:"blog"},{path:"/article",component:m,name:"article"},{path:"/faq",component:v,name:"faq"},{path:"/proposal",component:x,name:"proposal"},{path:"/blog/:year/:month/:day/:name",component:m},{path:"/blog/:year?/:month?/:day?",component:h}],fallback:!1})};var r=n("/5sW"),a=n("/ocq");r.default.use(a.default);var o=function(){return n.e(12).then(n.bind(null,"/TYz")).then(function(t){return t.default||t})},i=function(){return n.e(11).then(n.bind(null,"ZNfg")).then(function(t){return t.default||t})},s=function(){return n.e(14).then(n.bind(null,"v0nM")).then(function(t){return t.default||t})},u=function(){return n.e(0).then(n.bind(null,"hEik")).then(function(t){return t.default||t})},c=function(){return n.e(2).then(n.bind(null,"Wce4")).then(function(t){return t.default||t})},f=function(){return n.e(4).then(n.bind(null,"PdEb")).then(function(t){return t.default||t})},d=function(){return n.e(5).then(n.bind(null,"Vx7L")).then(function(t){return t.default||t})},l=function(){return n.e(3).then(n.bind(null,"NLIh")).then(function(t){return t.default||t})},p=function(){return n.e(1).then(n.bind(null,"9q7h")).then(function(t){return t.default||t})},h=function(){return n.e(6).then(n.bind(null,"AIuP")).then(function(t){return t.default||t})},m=function(){return n.e(7).then(n.bind(null,"QE0f")).then(function(t){return t.default||t})},v=function(){return n.e(9).then(n.bind(null,"NAEW")).then(function(t){return t.default||t})},x=function(){return n.e(13).then(n.bind(null,"gRp+")).then(function(t){return t.default||t})},y=function(t,e,n){if(n)return n;var r={};return t.matched.length<2?r={x:0,y:0}:t.matched.some(function(t){return t.components.default.options.scrollToTop})&&(r={x:0,y:0}),t.hash&&(r={selector:t.hash}),r}},n1a8:function(t,e,n){"use strict";var r=function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"__nuxt-error-page"},[e("div",{staticClass:"error"},[e("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",width:"90",height:"90",fill:"#DBE1EC",viewBox:"0 0 48 48"}},[e("path",{attrs:{d:"M22 30h4v4h-4zm0-16h4v12h-4zm1.99-10C12.94 4 4 12.95 4 24s8.94 20 19.99 20S44 35.05 44 24 35.04 4 23.99 4zM24 40c-8.84 0-16-7.16-16-16S15.16 8 24 8s16 7.16 16 16-7.16 16-16 16z"}})]),e("div",{staticClass:"title"},[this._v(this._s(this.message))]),404===this.statusCode?e("p",{staticClass:"description"},[e("nuxt-link",{staticClass:"error-link",attrs:{to:"/"}},[this._v("Back to the home page")])],1):this._e(),this._m(0)])])};r._withStripped=!0;var a={render:r,staticRenderFns:[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"logo"},[e("a",{attrs:{href:"https://nuxtjs.org",target:"_blank",rel:"noopener"}},[this._v("Nuxt.js")])])}]};e.a=a},qcny:function(t,e,n){"use strict";n.d(e,"b",function(){return R});var r=n("Xxa5"),a=n.n(r),o=n("//Fk"),i=(n.n(o),n("C4MV")),s=n.n(i),u=n("woOf"),c=n.n(u),f=n("Dd8w"),d=n.n(f),l=n("exGp"),p=n.n(l),h=n("MU8w"),m=(n.n(h),n("/5sW")),v=n("p3jY"),x=n.n(v),y=n("mtxM"),g=n("0F0d"),b=n("HBB+"),w=n("WRRc"),_=n("ct3O"),C=n("Hot+"),k=n("yTq1"),$=n("YLfZ"),E=n("J2Ti"),j=n("TuIM"),T=n("BW6j");n.d(e,"a",function(){return _.a});var O,R=(O=p()(a.a.mark(function t(e){var n,r,o,i,u,f,l;return a.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return n=Object(y.a)(),(r=Object(E.a)()).$router=n,o=d()({router:n,store:r,nuxt:{defaultTransition:q,transitions:[q],setTransitions:function(t){return Array.isArray(t)||(t=[t]),t=t.map(function(t){return t=t?"string"==typeof t?c()({},q,{name:t}):c()({},q,t):q}),this.$options.nuxt.transitions=t,t},err:null,dateErr:null,error:function(t){t=t||null,o.context._errored=!!t,"string"==typeof t&&(t={statusCode:500,message:t});var n=this.nuxt||this.$options.nuxt;return n.dateErr=Date.now(),n.err=t,e&&(e.nuxt.error=t),t}}},k.a),r.app=o,i=e?e.next:function(t){return o.router.push(t)},u=void 0,e?u=n.resolve(e.url).route:(f=Object($.d)(n.options.base),u=n.resolve(f).route),t.next=10,Object($.m)(o,{route:u,next:i,error:o.nuxt.error.bind(o),store:r,payload:e?e.payload:void 0,req:e?e.req:void 0,res:e?e.res:void 0,beforeRenderFns:e?e.beforeRenderFns:void 0});case 10:if(l=function(t,e){if(!t)throw new Error("inject(key, value) has no key provided");if(!e)throw new Error("inject(key, value) has no value provided");o[t="$"+t]=e,r[t]=o[t];var n="__nuxt_"+t+"_installed__";m.default[n]||(m.default[n]=!0,m.default.use(function(){m.default.prototype.hasOwnProperty(t)||s()(m.default.prototype,t,{get:function(){return this.$root.$options[t]}})}))},window.__NUXT__&&window.__NUXT__.state&&r.replaceState(window.__NUXT__.state),"function"!=typeof j.a){t.next=15;break}return t.next=15,Object(j.a)(o.context,l);case 15:if("function"!=typeof T.default){t.next=18;break}return t.next=18,Object(T.default)(o.context,l);case 18:t.next=21;break;case 21:return t.abrupt("return",{app:o,router:n,store:r});case 22:case"end":return t.stop()}},t,this)})),function(t){return O.apply(this,arguments)});m.default.component(g.a.name,g.a),m.default.component(b.a.name,b.a),m.default.component(w.a.name,w.a),m.default.component(C.a.name,C.a),m.default.use(x.a,{keyName:"head",attribute:"data-n-head",ssrAttribute:"data-n-head-ssr",tagIDKeyName:"hid"});var q={name:"page",mode:"out-in",appear:!1,appearClass:"appear",appearActiveClass:"appear-active",appearToClass:"appear-to"}},sq1o:function(t,e){function n(t){throw new Error("Cannot find module '"+t+"'.")}n.keys=function(){return[]},n.resolve=n,t.exports=n,n.id="sq1o"},srTi:function(t,e,n){"use strict";var r=function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"nuxt-progress",style:{width:this.percent+"%",height:this.height,"background-color":this.canSuccess?this.color:this.failedColor,opacity:this.show?1:0}})};r._withStripped=!0;var a={render:r,staticRenderFns:[]};e.a=a},unZF:function(t,e,n){"use strict";var r=n("BO1k"),a=n.n(r),o=n("sq1o"),i=o.keys();var s,u={},c=!0,f=!1,d=void 0;try{for(var l,p=a()(i);!(c=(l=p.next()).done);c=!0){var h=l.value;u[h.replace(/^\.\//,"").replace(/\.(js)$/,"")]=(void 0,(s=o(h)).default?s.default:s)}}catch(t){f=!0,d=t}finally{try{!c&&p.return&&p.return()}finally{if(f)throw d}}e.a=u},yTq1:function(t,e,n){"use strict";var r=n("//Fk"),a=n.n(r),o=n("/5sW"),i=n("F88d"),s=n("2oyj"),u=(n.n(s),{_default:function(){return n.e(10).then(n.bind(null,"Ma2J")).then(function(t){return t.default||t})},_sidebar:function(){return n.e(8).then(n.bind(null,"ofze")).then(function(t){return t.default||t})}}),c={};e.a={head:{title:"Welcome",titleTemplate:"Eclipse unide - %s",meta:[{charset:"utf-8"},{name:"viewport",content:"width=device-width, initial-scale=1"},{hid:"description",name:"description",content:"Eclipse Unide: Understand Industry devices"}],link:[{rel:"icon",type:"image/x-icon",href:"/unide/favicon.ico"}],style:[],script:[]},render:function(t,e){var n=t("nuxt-loading",{ref:"loading"}),r=t(this.layout||"nuxt");return t("div",{domProps:{id:"__nuxt"}},[n,t("transition",{props:{name:"layout",mode:"out-in"}},[t("div",{domProps:{id:"__layout"},key:this.layoutName},[r])])])},data:function(){return{layout:null,layoutName:""}},beforeCreate:function(){o.default.util.defineReactive(this,"nuxt",this.$options.nuxt)},created:function(){o.default.prototype.$nuxt=this,"undefined"!=typeof window&&(window.$nuxt=this),this.error=this.nuxt.error},mounted:function(){this.$loading=this.$refs.loading},watch:{"nuxt.err":"errorChanged"},methods:{errorChanged:function(){this.nuxt.err&&this.$loading&&(this.$loading.fail&&this.$loading.fail(),this.$loading.finish&&this.$loading.finish())},setLayout:function(t){t&&c["_"+t]||(t="default"),this.layoutName=t;var e="_"+t;return this.layout=c[e],this.layout},loadLayout:function(t){var e=this;t&&(u["_"+t]||c["_"+t])||(t="default");var n="_"+t;return c[n]?a.a.resolve(c[n]):u[n]().then(function(t){return c[n]=t,delete u[n],c[n]}).catch(function(t){if(e.$nuxt)return e.$nuxt.error({statusCode:500,message:t.message})})}},components:{NuxtLoading:i.a}}}},["T23V"]);
\ No newline at end of file
diff --git a/files/layouts_default.19e29c13ea8f8ffe3260.js b/files/layouts_default.19e29c13ea8f8ffe3260.js
new file mode 100644
index 0000000..afa8d19
--- /dev/null
+++ b/files/layouts_default.19e29c13ea8f8ffe3260.js
@@ -0,0 +1 @@
+webpackJsonp([10],{"6mrF":function(a,e,n){"use strict";var r=function(){var a=this,e=a.$createElement,n=a._self._c||e;return n("header",{staticClass:"nav-header"},[n("div",{staticClass:"container"},[n("nav",{staticClass:"navbar"},[n("div",{staticClass:"navbar-menu",class:{"is-active":a.isMenuActive},attrs:{id:"navMenu"},on:{click:function(e){a.isMenuActive=!1}}},[n("div",{staticClass:"navbar-start"},[a._t("default")],2)]),n("div",{staticClass:"navbar-brand"},[n("div",{staticClass:"navbar-burger burger",class:{"is-active":a.isMenuActive},on:{click:function(e){a.isMenuActive=!a.isMenuActive}}},[n("span"),n("span"),n("span")]),n("nuxt-link",{staticClass:"navbar-item",attrs:{to:"/"}},[n("img",{attrs:{src:"logo.svg",alt:a.brand}})])],1)])])])};r._withStripped=!0;var t={render:r,staticRenderFns:[]};e.a=t},BoYc:function(a,e,n){var r=n("DGmj");"string"==typeof r&&(r=[[a.i,r,""]]),r.locals&&(a.exports=r.locals);n("rjj0")("d5b0f30e",r,!1)},DGmj:function(a,e,n){(a.exports=n("YHym")(!1)).push([a.i,"@keyframes spinAround{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}header.nav-header{box-shadow:0 3px 5px 0 #ddd;margin-bottom:2em;padding-bottom:0}header.nav-header nav.navbar{display:flex;align-items:flex-end;border-bottom:5px solid #50237f}header.nav-header nav.navbar .navbar-burger{margin-left:0;height:auto}header.nav-header nav.navbar .navbar-burger span{height:2px;width:25px}header.nav-header nav.navbar .navbar-burger span:first-child{margin-top:-9px}header.nav-header nav.navbar .navbar-burger span:nth-child(3){margin-top:7px}header.nav-header nav.navbar .navbar-brand{align-self:stretch}header.nav-header nav.navbar .navbar-brand .navbar-item img{max-height:none;width:240px}header.nav-header nav.navbar .navbar-item,header.nav-header nav.navbar .navbar-link,header.nav-header nav.navbar .navbar-link a{color:#a7a7a7}header.nav-header nav.navbar .navbar-item.is-active,header.nav-header nav.navbar .navbar-item:hover,header.nav-header nav.navbar .navbar-link.is-active,header.nav-header nav.navbar .navbar-link:hover,header.nav-header nav.navbar .navbar-link a.is-active,header.nav-header nav.navbar .navbar-link a:hover{color:#78be20}header.nav-header nav.navbar .navbar-item:hover,header.nav-header nav.navbar .navbar-link:hover,header.nav-header nav.navbar .navbar-link a:hover{background-color:transparent;text-decoration:none;font-weight:700}header.nav-header nav.navbar .navbar-item .dropdown-trigger,header.nav-header nav.navbar .navbar-link .dropdown-trigger,header.nav-header nav.navbar .navbar-link a .dropdown-trigger{display:flex}@media screen and (min-width:1024px){.nav-header .container>.navbar .navbar-menu{margin-right:1rem}}@media screen and (max-width:1007px){header.nav-header nav.navbar{flex-direction:column;align-items:stretch}header.nav-header nav.navbar .navbar-menu{order:1;box-shadow:none}}@media screen and (min-width:1008px){nav.navbar .container .navbar-menu{height:40px}}",""])},Ma2J:function(a,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n("qp5c"),t=n("STrE"),i=n("VU/8")(r.a,t.a,!1,null,null,null);i.options.__file="layouts\\default.vue",e.default=i.exports},STrE:function(a,e,n){"use strict";var r=function(){var a=this.$createElement,e=this._self._c||a;return e("div",[e("navbar",[e("nuxt-link",{staticClass:"navbar-item",attrs:{exact:"","active-class":"is-active",to:"/"}},[this._v("\n      Home\n    ")]),e("nuxt-link",{staticClass:"navbar-item",attrs:{"active-class":"is-active",to:"/proposal"}},[this._v("\n      Proposal\n    ")]),e("nuxt-link",{staticClass:"navbar-item",attrs:{"active-class":"is-active",to:"/specification"}},[this._v("\n      Specification \n    ")]),e("nuxt-link",{staticClass:"navbar-item",attrs:{"active-class":"is-active",to:"/blog"}},[this._v("\n      Blog Archives\n    ")]),e("nuxt-link",{staticClass:"navbar-item",attrs:{"active-class":"is-active",to:"/faq"}},[this._v("\n      FAQ\n    ")])],1),e("div",{staticClass:"container"},[e("div",{staticClass:"header clearfix"}),e("nuxt")],1),this._m(0)],1)};r._withStripped=!0;var t={render:r,staticRenderFns:[function(){var a=this.$createElement,e=this._self._c||a;return e("footer",{staticClass:"footer"},[e("div",{staticClass:"container"},[e("div",{staticClass:"content has-text-centered"},[e("ul",[e("span",[e("a",{attrs:{href:"http://www.eclipse.org/legal/privacy.php"}},[this._v("Privacy Policy")])]),e("span",[e("a",{attrs:{href:"http://www.eclipse.org/legal/termsofuse.php"}},[this._v("Terms of Use")])]),e("span",[e("a",{attrs:{href:"http://www.eclipse.org/legal/copyright.php"}},[this._v("Copyright Agent")])]),e("span",[e("a",{attrs:{href:"https://eclipse.org/security/ "}},[this._v("Security reports")])]),e("span",[e("a",{attrs:{href:"http://www.eclipse.org/legal/"}},[this._v("Legal")])])])])])])}]};e.a=t},qp5c:function(a,e,n){"use strict";var r=n("yHEx");e.a={components:{navbar:r.a}}},vaaU:function(a,e,n){"use strict";(function(a){e.a={data:function(){return{brand:a.env.BRAND,isMenuActive:!1}},components:{}}}).call(e,n("W2nU"))},yHEx:function(a,e,n){"use strict";var r=n("vaaU"),t=n("6mrF"),i=!1;var s=function(a){i||n("BoYc")},v=n("VU/8")(r.a,t.a,!1,s,null,null);v.options.__file="components\\navbar.vue",e.a=v.exports}});
\ No newline at end of file
diff --git a/files/layouts_default.2114b4fdc743f1b2e00e.js b/files/layouts_default.2114b4fdc743f1b2e00e.js
deleted file mode 100644
index 7b6dd47..0000000
--- a/files/layouts_default.2114b4fdc743f1b2e00e.js
+++ /dev/null
@@ -1 +0,0 @@
-webpackJsonp([7],{"6mrF":function(a,e,n){"use strict";var r=function(){var a=this,e=a.$createElement,n=a._self._c||e;return n("header",{staticClass:"nav-header"},[n("div",{staticClass:"container"},[n("nav",{staticClass:"navbar"},[n("div",{staticClass:"navbar-menu",class:{"is-active":a.isMenuActive},attrs:{id:"navMenu"},on:{click:function(e){a.isMenuActive=!1}}},[n("div",{staticClass:"navbar-start"},[a._t("default")],2)]),n("div",{staticClass:"navbar-brand"},[n("div",{staticClass:"navbar-burger burger",class:{"is-active":a.isMenuActive},on:{click:function(e){a.isMenuActive=!a.isMenuActive}}},[n("span"),n("span"),n("span")]),n("nuxt-link",{staticClass:"navbar-item",attrs:{to:"/"}},[n("img",{attrs:{src:"logo.svg",alt:a.brand}})])],1)])])])};r._withStripped=!0;var t={render:r,staticRenderFns:[]};e.a=t},BoYc:function(a,e,n){var r=n("DGmj");"string"==typeof r&&(r=[[a.i,r,""]]),r.locals&&(a.exports=r.locals);n("rjj0")("d5b0f30e",r,!1)},DGmj:function(a,e,n){(a.exports=n("YHym")(!1)).push([a.i,"@keyframes spinAround{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}header.nav-header{box-shadow:0 3px 5px 0 #ddd;margin-bottom:2em;padding-bottom:0}header.nav-header nav.navbar{display:flex;align-items:flex-end;border-bottom:5px solid #50237f}header.nav-header nav.navbar .navbar-burger{margin-left:0;height:auto}header.nav-header nav.navbar .navbar-burger span{height:2px;width:25px}header.nav-header nav.navbar .navbar-burger span:first-child{margin-top:-9px}header.nav-header nav.navbar .navbar-burger span:nth-child(3){margin-top:7px}header.nav-header nav.navbar .navbar-brand{align-self:stretch}header.nav-header nav.navbar .navbar-brand .navbar-item img{max-height:none;width:240px}header.nav-header nav.navbar .navbar-item,header.nav-header nav.navbar .navbar-link,header.nav-header nav.navbar .navbar-link a{color:#a7a7a7}header.nav-header nav.navbar .navbar-item.is-active,header.nav-header nav.navbar .navbar-item:hover,header.nav-header nav.navbar .navbar-link.is-active,header.nav-header nav.navbar .navbar-link:hover,header.nav-header nav.navbar .navbar-link a.is-active,header.nav-header nav.navbar .navbar-link a:hover{color:#78be20}header.nav-header nav.navbar .navbar-item:hover,header.nav-header nav.navbar .navbar-link:hover,header.nav-header nav.navbar .navbar-link a:hover{background-color:transparent;text-decoration:none;font-weight:700}header.nav-header nav.navbar .navbar-item .dropdown-trigger,header.nav-header nav.navbar .navbar-link .dropdown-trigger,header.nav-header nav.navbar .navbar-link a .dropdown-trigger{display:flex}@media screen and (min-width:1024px){.nav-header .container>.navbar .navbar-menu{margin-right:1rem}}@media screen and (max-width:1007px){header.nav-header nav.navbar{flex-direction:column;align-items:stretch}header.nav-header nav.navbar .navbar-menu{order:1;box-shadow:none}}@media screen and (min-width:1008px){nav.navbar .container .navbar-menu{height:40px}}",""])},Ma2J:function(a,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n("qp5c"),t=n("STrE"),i=n("VU/8")(r.a,t.a,!1,null,null,null);i.options.__file="layouts\\default.vue",e.default=i.exports},STrE:function(a,e,n){"use strict";var r=function(){var a=this.$createElement,e=this._self._c||a;return e("div",[e("navbar",[e("nuxt-link",{staticClass:"navbar-item",attrs:{exact:"","active-class":"is-active",to:"/"}},[this._v("\n      Home\n    ")]),e("nuxt-link",{staticClass:"navbar-item",attrs:{"active-class":"is-active",to:"/proposal"}},[this._v("\n      Proposal\n    ")]),e("nuxt-link",{staticClass:"navbar-item",attrs:{"active-class":"is-active",to:"/specification"}},[this._v("\n      Specification \n    ")]),e("nuxt-link",{staticClass:"navbar-item",attrs:{"active-class":"is-active",to:"/blog"}},[this._v("\n      Blog Archives\n    ")]),e("nuxt-link",{staticClass:"navbar-item",attrs:{"active-class":"is-active",to:"/faq"}},[this._v("\n      FAQ\n    ")])],1),e("div",{staticClass:"container"},[e("div",{staticClass:"header clearfix"}),e("nuxt")],1),this._m(0)],1)};r._withStripped=!0;var t={render:r,staticRenderFns:[function(){var a=this.$createElement,e=this._self._c||a;return e("footer",{staticClass:"footer"},[e("div",{staticClass:"container"},[e("div",{staticClass:"content has-text-centered"},[e("ul",[e("span",[e("a",{attrs:{href:"http://www.eclipse.org/legal/privacy.php"}},[this._v("Privacy Policy")])]),e("span",[e("a",{attrs:{href:"http://www.eclipse.org/legal/termsofuse.php"}},[this._v("Terms of Use")])]),e("span",[e("a",{attrs:{href:"http://www.eclipse.org/legal/copyright.php"}},[this._v("Copyright Agent")])]),e("span",[e("a",{attrs:{href:"https://eclipse.org/security/ "}},[this._v("Security reports")])]),e("span",[e("a",{attrs:{href:"http://www.eclipse.org/legal/"}},[this._v("Legal")])])])])])])}]};e.a=t},qp5c:function(a,e,n){"use strict";var r=n("yHEx");e.a={components:{navbar:r.a}}},vaaU:function(a,e,n){"use strict";(function(a){e.a={data:function(){return{brand:a.env.BRAND,isMenuActive:!1}},components:{}}}).call(e,n("W2nU"))},yHEx:function(a,e,n){"use strict";var r=n("vaaU"),t=n("6mrF"),i=!1;var s=function(a){i||n("BoYc")},v=n("VU/8")(r.a,t.a,!1,s,null,null);v.options.__file="components\\navbar.vue",e.a=v.exports}});
\ No newline at end of file
diff --git a/files/layouts_sidebar.9ce19a6b4466cfb04342.js b/files/layouts_sidebar.7c421ad9e58e5e68f949.js
similarity index 98%
rename from files/layouts_sidebar.9ce19a6b4466cfb04342.js
rename to files/layouts_sidebar.7c421ad9e58e5e68f949.js
index 659c93a..2a83d54 100644
--- a/files/layouts_sidebar.9ce19a6b4466cfb04342.js
+++ b/files/layouts_sidebar.7c421ad9e58e5e68f949.js
@@ -1 +1 @@
-webpackJsonp([5,14],{"+1eW":function(a,e,t){"use strict";var n=t("zRhM"),r=t.n(n),s=(navigator.languages&&navigator.languages[0]||navigator.language||navigator.userLanguage).toLowerCase().split(/[_-]+/)[0];e.a={data:function(){return{posts:r.a.slice().reverse()}},filters:{timeStamp:function(a){var e=a.year,t=a.month,n=new Date(Date.UTC(e,t||0,1));return Intl.DateTimeFormat(s,{month:"long",year:"numeric"}).format(n)}}}},"0rUs":function(a,e,t){var n=t("YV2r");"string"==typeof n&&(n=[[a.i,n,""]]),n.locals&&(a.exports=n.locals);t("rjj0")("771fc815",n,!1)},"4nd1":function(a,e,t){var n=t("EiyC");"string"==typeof n&&(n=[[a.i,n,""]]),n.locals&&(a.exports=n.locals);t("rjj0")("fc44206e",n,!1)},"58B5":function(a,e,t){(a.exports=t("YHym")(!1)).push([a.i,".blogArchives ul{list-style:none}",""])},"6mrF":function(a,e,t){"use strict";var n=function(){var a=this,e=a.$createElement,t=a._self._c||e;return t("header",{staticClass:"nav-header"},[t("div",{staticClass:"container"},[t("nav",{staticClass:"navbar"},[t("div",{staticClass:"navbar-menu",class:{"is-active":a.isMenuActive},attrs:{id:"navMenu"},on:{click:function(e){a.isMenuActive=!1}}},[t("div",{staticClass:"navbar-start"},[a._t("default")],2)]),t("div",{staticClass:"navbar-brand"},[t("div",{staticClass:"navbar-burger burger",class:{"is-active":a.isMenuActive},on:{click:function(e){a.isMenuActive=!a.isMenuActive}}},[t("span"),t("span"),t("span")]),t("nuxt-link",{staticClass:"navbar-item",attrs:{to:"/"}},[t("img",{attrs:{src:"logo.svg",alt:a.brand}})])],1)])])])};n._withStripped=!0;var r={render:n,staticRenderFns:[]};e.a=r},"7EWE":function(a,e,t){"use strict";var n=t("yHEx"),r=t("w5zz"),s=t("XJHj");e.a={components:{navbar:n.a,recentPosts:r.a,blogArchives:s.a}}},"8ETN":function(a,e,t){var n=t("58B5");"string"==typeof n&&(n=[[a.i,n,""]]),n.locals&&(a.exports=n.locals);t("rjj0")("3dafb0ac",n,!1)},BoYc:function(a,e,t){var n=t("DGmj");"string"==typeof n&&(n=[[a.i,n,""]]),n.locals&&(a.exports=n.locals);t("rjj0")("d5b0f30e",n,!1)},DGmj:function(a,e,t){(a.exports=t("YHym")(!1)).push([a.i,"@keyframes spinAround{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}header.nav-header{box-shadow:0 3px 5px 0 #ddd;margin-bottom:2em;padding-bottom:0}header.nav-header nav.navbar{display:flex;align-items:flex-end;border-bottom:5px solid #50237f}header.nav-header nav.navbar .navbar-burger{margin-left:0;height:auto}header.nav-header nav.navbar .navbar-burger span{height:2px;width:25px}header.nav-header nav.navbar .navbar-burger span:first-child{margin-top:-9px}header.nav-header nav.navbar .navbar-burger span:nth-child(3){margin-top:7px}header.nav-header nav.navbar .navbar-brand{align-self:stretch}header.nav-header nav.navbar .navbar-brand .navbar-item img{max-height:none;width:240px}header.nav-header nav.navbar .navbar-item,header.nav-header nav.navbar .navbar-link,header.nav-header nav.navbar .navbar-link a{color:#a7a7a7}header.nav-header nav.navbar .navbar-item.is-active,header.nav-header nav.navbar .navbar-item:hover,header.nav-header nav.navbar .navbar-link.is-active,header.nav-header nav.navbar .navbar-link:hover,header.nav-header nav.navbar .navbar-link a.is-active,header.nav-header nav.navbar .navbar-link a:hover{color:#78be20}header.nav-header nav.navbar .navbar-item:hover,header.nav-header nav.navbar .navbar-link:hover,header.nav-header nav.navbar .navbar-link a:hover{background-color:transparent;text-decoration:none;font-weight:700}header.nav-header nav.navbar .navbar-item .dropdown-trigger,header.nav-header nav.navbar .navbar-link .dropdown-trigger,header.nav-header nav.navbar .navbar-link a .dropdown-trigger{display:flex}@media screen and (min-width:1024px){.nav-header .container>.navbar .navbar-menu{margin-right:1rem}}@media screen and (max-width:1007px){header.nav-header nav.navbar{flex-direction:column;align-items:stretch}header.nav-header nav.navbar .navbar-menu{order:1;box-shadow:none}}@media screen and (min-width:1008px){nav.navbar .container .navbar-menu{height:40px}}",""])},DqLf:function(a,e,t){"use strict";var n=function(){var a=this,e=a.$createElement,t=a._self._c||e;return t("div",{staticClass:"blogArchives"},[t("h4",{staticClass:"subtitle is-5"},[a._v("\n    Blog Archives \n  ")]),t("ul",a._l(a.posts,function(e){return t("li",{key:e.url},[t("nuxt-link",{attrs:{to:e.url}},[a._v("\n        "+a._s(a._f("timeStamp")(e))+"\n      ")]),a._v("\n      ("+a._s(e.count)+")\n    ")],1)}))])};n._withStripped=!0;var r={render:n,staticRenderFns:[]};e.a=r},EiyC:function(a,e,t){(a.exports=t("YHym")(!1)).push([a.i,".recentPosts ul{list-style:none}",""])},U7sK:function(a,e,t){"use strict";var n=function(){var a=this,e=a.$createElement,t=a._self._c||e;return t("div",{staticClass:"recentPosts"},[t("h4",{staticClass:"subtitle is-5"},[a._v("\n    Recent Posts\n  ")]),t("ul",a._l(a.posts,function(e){return t("li",{key:e.url},[t("nuxt-link",{attrs:{to:e.url}},[a._v("\n        "+a._s(e.title)+"\n      ")])],1)}))])};n._withStripped=!0;var r={render:n,staticRenderFns:[]};e.a=r},XJHj:function(a,e,t){"use strict";var n=t("+1eW"),r=t("DqLf"),s=!1;var i=function(a){s||t("8ETN")},o=t("VU/8")(n.a,r.a,!1,i,null,null);o.options.__file="components\\blogArchives.vue",e.a=o.exports},YV2r:function(a,e,t){(a.exports=t("YHym")(!1)).push([a.i,"body .sidebar div{margin-bottom:2em;font-size:.875em}body .sidebar div .subtitle{margin-bottom:.5rem}",""])},ZjvN:function(a,e,t){"use strict";var n=function(){var a=this.$createElement,e=this._self._c||a;return e("div",[e("navbar",[e("nuxt-link",{staticClass:"navbar-item",attrs:{exact:"","active-class":"is-active",to:"/"}},[this._v("\n      Home\n    ")]),e("nuxt-link",{staticClass:"navbar-item",attrs:{"active-class":"is-active",to:"/proposal"}},[this._v("\n      Proposal\n    ")]),e("nuxt-link",{staticClass:"navbar-item",attrs:{"active-class":"is-active",to:"/specification"}},[this._v("\n      Specification \n    ")]),e("nuxt-link",{staticClass:"navbar-item",attrs:{"active-class":"is-active",to:"/blog"}},[this._v("\n      Blog Archives\n    ")]),e("nuxt-link",{staticClass:"navbar-item",attrs:{"active-class":"is-active",to:"/faq"}},[this._v("\n      FAQ\n    ")])],1),e("div",{staticClass:"container"},[e("div",{staticClass:"header clearfix"}),e("div",{staticClass:"columns"},[e("nuxt",{staticClass:"column is-8"}),e("div",{staticClass:"sidebar column is-3 is-offset-1"},[e("recentPosts"),e("blogArchives")],1)],1)]),this._m(0)],1)};n._withStripped=!0;var r={render:n,staticRenderFns:[function(){var a=this.$createElement,e=this._self._c||a;return e("footer",{staticClass:"footer"},[e("div",{staticClass:"container"},[e("div",{staticClass:"content has-text-centered"},[e("ul",[e("span",[e("a",{attrs:{href:"http://www.eclipse.org/legal/privacy.php"}},[this._v("Privacy Policy")])]),e("span",[e("a",{attrs:{href:"http://www.eclipse.org/legal/termsofuse.php"}},[this._v("Terms of Use")])]),e("span",[e("a",{attrs:{href:"http://www.eclipse.org/legal/copyright.php"}},[this._v("Copyright Agent")])]),e("span",[e("a",{attrs:{href:"https://eclipse.org/security/ "}},[this._v("Security reports")])]),e("span",[e("a",{attrs:{href:"http://www.eclipse.org/legal/"}},[this._v("Legal")])])])])])])}]};e.a=r},aIAa:function(a,e,t){"use strict";var n=t("b4ia"),r=t.n(n);e.a={data:function(){return{posts:r.a.slice().reverse()}},components:{}}},b4ia:function(a,e){a.exports=[{url:"/blog/2018/1/26/New-website",title:"Updated Website",date:"2018-01-26T00:00:00.000Z"},{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:"2018-02-11T00:00:00.000Z"},{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:"2018-02-13T00:00:00.000Z"},{url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released",date:"2018-03-26T10:39:00.000Z"},{url:"/blog/2018/9/4/Template-for-PPMP-transformation",title:"PPMP Use Cases: Template for PPMP transformation",date:"2018-09-04T00:00:00.000Z"}]},ofze:function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=t("7EWE"),r=t("ZjvN"),s=!1;var i=function(a){s||t("0rUs")},o=t("VU/8")(n.a,r.a,!1,i,null,null);o.options.__file="layouts\\sidebar.vue",e.default=o.exports},vaaU:function(a,e,t){"use strict";(function(a){e.a={data:function(){return{brand:a.env.BRAND,isMenuActive:!1}},components:{}}}).call(e,t("W2nU"))},w5zz:function(a,e,t){"use strict";var n=t("aIAa"),r=t("U7sK"),s=!1;var i=function(a){s||t("4nd1")},o=t("VU/8")(n.a,r.a,!1,i,null,null);o.options.__file="components\\recentPosts.vue",e.a=o.exports},yHEx:function(a,e,t){"use strict";var n=t("vaaU"),r=t("6mrF"),s=!1;var i=function(a){s||t("BoYc")},o=t("VU/8")(n.a,r.a,!1,i,null,null);o.options.__file="components\\navbar.vue",e.a=o.exports},zRhM:function(a,e){a.exports=[{year:"2016",month:"9",url:"/blog/2016/9",count:4},{year:"2017",month:"3",url:"/blog/2017/3",count:1},{year:"2017",month:"6",url:"/blog/2017/6",count:2},{year:"2017",month:"10",url:"/blog/2017/10",count:2},{year:"2018",month:"1",url:"/blog/2018/1",count:1},{year:"2018",month:"2",url:"/blog/2018/2",count:2},{year:"2018",month:"3",url:"/blog/2018/3",count:1},{year:"2018",month:"9",url:"/blog/2018/9",count:1}]}});
\ No newline at end of file
+webpackJsonp([8,17],{"+1eW":function(a,e,t){"use strict";var n=t("zRhM"),r=t.n(n),s=(navigator.languages&&navigator.languages[0]||navigator.language||navigator.userLanguage).toLowerCase().split(/[_-]+/)[0];e.a={data:function(){return{posts:r.a.slice().reverse()}},filters:{timeStamp:function(a){var e=a.year,t=a.month,n=new Date(Date.UTC(e,t||0,1));return Intl.DateTimeFormat(s,{month:"long",year:"numeric"}).format(n)}}}},"0rUs":function(a,e,t){var n=t("YV2r");"string"==typeof n&&(n=[[a.i,n,""]]),n.locals&&(a.exports=n.locals);t("rjj0")("771fc815",n,!1)},"4nd1":function(a,e,t){var n=t("EiyC");"string"==typeof n&&(n=[[a.i,n,""]]),n.locals&&(a.exports=n.locals);t("rjj0")("fc44206e",n,!1)},"58B5":function(a,e,t){(a.exports=t("YHym")(!1)).push([a.i,".blogArchives ul{list-style:none}",""])},"6mrF":function(a,e,t){"use strict";var n=function(){var a=this,e=a.$createElement,t=a._self._c||e;return t("header",{staticClass:"nav-header"},[t("div",{staticClass:"container"},[t("nav",{staticClass:"navbar"},[t("div",{staticClass:"navbar-menu",class:{"is-active":a.isMenuActive},attrs:{id:"navMenu"},on:{click:function(e){a.isMenuActive=!1}}},[t("div",{staticClass:"navbar-start"},[a._t("default")],2)]),t("div",{staticClass:"navbar-brand"},[t("div",{staticClass:"navbar-burger burger",class:{"is-active":a.isMenuActive},on:{click:function(e){a.isMenuActive=!a.isMenuActive}}},[t("span"),t("span"),t("span")]),t("nuxt-link",{staticClass:"navbar-item",attrs:{to:"/"}},[t("img",{attrs:{src:"logo.svg",alt:a.brand}})])],1)])])])};n._withStripped=!0;var r={render:n,staticRenderFns:[]};e.a=r},"7EWE":function(a,e,t){"use strict";var n=t("yHEx"),r=t("w5zz"),s=t("XJHj");e.a={components:{navbar:n.a,recentPosts:r.a,blogArchives:s.a}}},"8ETN":function(a,e,t){var n=t("58B5");"string"==typeof n&&(n=[[a.i,n,""]]),n.locals&&(a.exports=n.locals);t("rjj0")("3dafb0ac",n,!1)},BoYc:function(a,e,t){var n=t("DGmj");"string"==typeof n&&(n=[[a.i,n,""]]),n.locals&&(a.exports=n.locals);t("rjj0")("d5b0f30e",n,!1)},DGmj:function(a,e,t){(a.exports=t("YHym")(!1)).push([a.i,"@keyframes spinAround{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}header.nav-header{box-shadow:0 3px 5px 0 #ddd;margin-bottom:2em;padding-bottom:0}header.nav-header nav.navbar{display:flex;align-items:flex-end;border-bottom:5px solid #50237f}header.nav-header nav.navbar .navbar-burger{margin-left:0;height:auto}header.nav-header nav.navbar .navbar-burger span{height:2px;width:25px}header.nav-header nav.navbar .navbar-burger span:first-child{margin-top:-9px}header.nav-header nav.navbar .navbar-burger span:nth-child(3){margin-top:7px}header.nav-header nav.navbar .navbar-brand{align-self:stretch}header.nav-header nav.navbar .navbar-brand .navbar-item img{max-height:none;width:240px}header.nav-header nav.navbar .navbar-item,header.nav-header nav.navbar .navbar-link,header.nav-header nav.navbar .navbar-link a{color:#a7a7a7}header.nav-header nav.navbar .navbar-item.is-active,header.nav-header nav.navbar .navbar-item:hover,header.nav-header nav.navbar .navbar-link.is-active,header.nav-header nav.navbar .navbar-link:hover,header.nav-header nav.navbar .navbar-link a.is-active,header.nav-header nav.navbar .navbar-link a:hover{color:#78be20}header.nav-header nav.navbar .navbar-item:hover,header.nav-header nav.navbar .navbar-link:hover,header.nav-header nav.navbar .navbar-link a:hover{background-color:transparent;text-decoration:none;font-weight:700}header.nav-header nav.navbar .navbar-item .dropdown-trigger,header.nav-header nav.navbar .navbar-link .dropdown-trigger,header.nav-header nav.navbar .navbar-link a .dropdown-trigger{display:flex}@media screen and (min-width:1024px){.nav-header .container>.navbar .navbar-menu{margin-right:1rem}}@media screen and (max-width:1007px){header.nav-header nav.navbar{flex-direction:column;align-items:stretch}header.nav-header nav.navbar .navbar-menu{order:1;box-shadow:none}}@media screen and (min-width:1008px){nav.navbar .container .navbar-menu{height:40px}}",""])},DqLf:function(a,e,t){"use strict";var n=function(){var a=this,e=a.$createElement,t=a._self._c||e;return t("div",{staticClass:"blogArchives"},[t("h4",{staticClass:"subtitle is-5"},[a._v("\n    Blog Archives \n  ")]),t("ul",a._l(a.posts,function(e){return t("li",{key:e.url},[t("nuxt-link",{attrs:{to:e.url}},[a._v("\n        "+a._s(a._f("timeStamp")(e))+"\n      ")]),a._v("\n      ("+a._s(e.count)+")\n    ")],1)}))])};n._withStripped=!0;var r={render:n,staticRenderFns:[]};e.a=r},EiyC:function(a,e,t){(a.exports=t("YHym")(!1)).push([a.i,".recentPosts ul{list-style:none}",""])},U7sK:function(a,e,t){"use strict";var n=function(){var a=this,e=a.$createElement,t=a._self._c||e;return t("div",{staticClass:"recentPosts"},[t("h4",{staticClass:"subtitle is-5"},[a._v("\n    Recent Posts\n  ")]),t("ul",a._l(a.posts,function(e){return t("li",{key:e.url},[t("nuxt-link",{attrs:{to:e.url}},[a._v("\n        "+a._s(e.title)+"\n      ")])],1)}))])};n._withStripped=!0;var r={render:n,staticRenderFns:[]};e.a=r},XJHj:function(a,e,t){"use strict";var n=t("+1eW"),r=t("DqLf"),s=!1;var i=function(a){s||t("8ETN")},o=t("VU/8")(n.a,r.a,!1,i,null,null);o.options.__file="components\\blogArchives.vue",e.a=o.exports},YV2r:function(a,e,t){(a.exports=t("YHym")(!1)).push([a.i,"body .sidebar div{margin-bottom:2em;font-size:.875em}body .sidebar div .subtitle{margin-bottom:.5rem}",""])},ZjvN:function(a,e,t){"use strict";var n=function(){var a=this.$createElement,e=this._self._c||a;return e("div",[e("navbar",[e("nuxt-link",{staticClass:"navbar-item",attrs:{exact:"","active-class":"is-active",to:"/"}},[this._v("\n      Home\n    ")]),e("nuxt-link",{staticClass:"navbar-item",attrs:{"active-class":"is-active",to:"/proposal"}},[this._v("\n      Proposal\n    ")]),e("nuxt-link",{staticClass:"navbar-item",attrs:{"active-class":"is-active",to:"/specification"}},[this._v("\n      Specification \n    ")]),e("nuxt-link",{staticClass:"navbar-item",attrs:{"active-class":"is-active",to:"/blog"}},[this._v("\n      Blog Archives\n    ")]),e("nuxt-link",{staticClass:"navbar-item",attrs:{"active-class":"is-active",to:"/faq"}},[this._v("\n      FAQ\n    ")])],1),e("div",{staticClass:"container"},[e("div",{staticClass:"header clearfix"}),e("div",{staticClass:"columns"},[e("nuxt",{staticClass:"column is-8"}),e("div",{staticClass:"sidebar column is-3 is-offset-1"},[e("recentPosts"),e("blogArchives")],1)],1)]),this._m(0)],1)};n._withStripped=!0;var r={render:n,staticRenderFns:[function(){var a=this.$createElement,e=this._self._c||a;return e("footer",{staticClass:"footer"},[e("div",{staticClass:"container"},[e("div",{staticClass:"content has-text-centered"},[e("ul",[e("span",[e("a",{attrs:{href:"http://www.eclipse.org/legal/privacy.php"}},[this._v("Privacy Policy")])]),e("span",[e("a",{attrs:{href:"http://www.eclipse.org/legal/termsofuse.php"}},[this._v("Terms of Use")])]),e("span",[e("a",{attrs:{href:"http://www.eclipse.org/legal/copyright.php"}},[this._v("Copyright Agent")])]),e("span",[e("a",{attrs:{href:"https://eclipse.org/security/ "}},[this._v("Security reports")])]),e("span",[e("a",{attrs:{href:"http://www.eclipse.org/legal/"}},[this._v("Legal")])])])])])])}]};e.a=r},aIAa:function(a,e,t){"use strict";var n=t("b4ia"),r=t.n(n);e.a={data:function(){return{posts:r.a.slice().reverse()}},components:{}}},b4ia:function(a,e){a.exports=[{url:"/blog/2018/1/26/New-website",title:"Updated Website",date:"2018-01-26T00:00:00.000Z"},{url:"/blog/2018/2/11/Transform-PPMP-with-camel",title:"PPMP Use Cases: Simple Transformation with Apache Camel",date:"2018-02-11T00:00:00.000Z"},{url:"/blog/2018/2/13/grinding-machine-scenario",title:"PPMP Use Cases: Unide and the Eclipse Production Performance Management Testbed",date:"2018-02-13T00:00:00.000Z"},{url:"/blog/2018/3/26/Release-0.2.0",title:"Unide 0.2.0 released",date:"2018-03-26T10:39:00.000Z"},{url:"/blog/2018/9/4/Template-for-PPMP-transformation",title:"PPMP Use Cases: Template for PPMP transformation",date:"2018-09-04T00:00:00.000Z"}]},ofze:function(a,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=t("7EWE"),r=t("ZjvN"),s=!1;var i=function(a){s||t("0rUs")},o=t("VU/8")(n.a,r.a,!1,i,null,null);o.options.__file="layouts\\sidebar.vue",e.default=o.exports},vaaU:function(a,e,t){"use strict";(function(a){e.a={data:function(){return{brand:a.env.BRAND,isMenuActive:!1}},components:{}}}).call(e,t("W2nU"))},w5zz:function(a,e,t){"use strict";var n=t("aIAa"),r=t("U7sK"),s=!1;var i=function(a){s||t("4nd1")},o=t("VU/8")(n.a,r.a,!1,i,null,null);o.options.__file="components\\recentPosts.vue",e.a=o.exports},yHEx:function(a,e,t){"use strict";var n=t("vaaU"),r=t("6mrF"),s=!1;var i=function(a){s||t("BoYc")},o=t("VU/8")(n.a,r.a,!1,i,null,null);o.options.__file="components\\navbar.vue",e.a=o.exports},zRhM:function(a,e){a.exports=[{year:"2016",month:"9",url:"/blog/2016/9",count:4},{year:"2017",month:"3",url:"/blog/2017/3",count:1},{year:"2017",month:"6",url:"/blog/2017/6",count:2},{year:"2017",month:"10",url:"/blog/2017/10",count:2},{year:"2018",month:"1",url:"/blog/2018/1",count:1},{year:"2018",month:"2",url:"/blog/2018/2",count:2},{year:"2018",month:"3",url:"/blog/2018/3",count:1},{year:"2018",month:"9",url:"/blog/2018/9",count:1}]}});
\ No newline at end of file
diff --git a/files/manifest.35d6b9d600e48ddc67a4.js b/files/manifest.35d6b9d600e48ddc67a4.js
deleted file mode 100644
index 4fad8b2..0000000
--- a/files/manifest.35d6b9d600e48ddc67a4.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(e){var a=window.webpackJsonp;window.webpackJsonp=function(n,o,c){for(var f,i,s,d=0,p=[];d<n.length;d++)i=n[d],r[i]&&p.push(r[i][0]),r[i]=0;for(f in o)Object.prototype.hasOwnProperty.call(o,f)&&(e[f]=o[f]);for(a&&a(n,o,c);p.length;)p.shift()();if(c)for(d=0;d<c.length;d++)s=t(t.s=c[d]);return s};var n={},r={18:0};function t(a){if(n[a])return n[a].exports;var r=n[a]={i:a,l:!1,exports:{}};return e[a].call(r.exports,r,r.exports,t),r.l=!0,r.exports}t.e=function(e){var a=r[e];if(0===a)return new Promise(function(e){e()});if(a)return a[2];var n=new Promise(function(n,t){a=r[e]=[n,t]});a[2]=n;var o=document.getElementsByTagName("head")[0],c=document.createElement("script");c.type="text/javascript",c.charset="utf-8",c.async=!0,c.timeout=12e4,t.nc&&c.setAttribute("nonce",t.nc),c.src=t.p+""+({0:"pages_specification_process-message",1:"pages_specification_measurement-message",2:"pages_specification_machine-message",3:"pages_blog",4:"pages_article",5:"layouts_sidebar",6:"pages_faq",7:"layouts_default",8:"pages_specification",9:"pages_index",10:"pages_proposal",11:"pages_specification_index",12:"vendor",13:"app"}[e]||e)+"."+{0:"4a591726be19200d1dcf",1:"0d15bcfe330182da8363",2:"9d83bf77d0c0e786c248",3:"d6903346e5cdc54871a0",4:"841e1aa4e71e21120e8c",5:"9ce19a6b4466cfb04342",6:"af7b946e7573917bdb35",7:"2114b4fdc743f1b2e00e",8:"6def4404f10957a24495",9:"7d76ce931d19b81f54ec",10:"05a0b52aa840e2ad9ee2",11:"06dad5cb3f63c35339f3",12:"21b6003b92f8fb004a4d",13:"50a262a5ae4922a8876e",14:"343dcebd5ec0bf01fc33",15:"d771450e0496b312779c",16:"11f2dc8ba4d811532f0f",17:"cead57eff5f5ca1f8446"}[e]+".js";var f=setTimeout(i,12e4);function i(){c.onerror=c.onload=null,clearTimeout(f);var a=r[e];0!==a&&(a&&a[1](new Error("Loading chunk "+e+" failed.")),r[e]=void 0)}return c.onerror=c.onload=i,o.appendChild(c),n},t.m=e,t.c=n,t.d=function(e,a,n){t.o(e,a)||Object.defineProperty(e,a,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var a=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(a,"a",a),a},t.o=function(e,a){return Object.prototype.hasOwnProperty.call(e,a)},t.p="/unide/files/",t.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file
diff --git a/files/manifest.feb13c258fe68de31509.js b/files/manifest.feb13c258fe68de31509.js
new file mode 100644
index 0000000..1854480
--- /dev/null
+++ b/files/manifest.feb13c258fe68de31509.js
@@ -0,0 +1 @@
+!function(e){var a=window.webpackJsonp;window.webpackJsonp=function(c,r,o){for(var s,i,f,p=0,d=[];p<c.length;p++)i=c[p],n[i]&&d.push(n[i][0]),n[i]=0;for(s in r)Object.prototype.hasOwnProperty.call(r,s)&&(e[s]=r[s]);for(a&&a(c,r,o);d.length;)d.shift()();if(o)for(p=0;p<o.length;p++)f=t(t.s=o[p]);return f};var c={},n={24:0};function t(a){if(c[a])return c[a].exports;var n=c[a]={i:a,l:!1,exports:{}};return e[a].call(n.exports,n,n.exports,t),n.l=!0,n.exports}t.e=function(e){var a=n[e];if(0===a)return new Promise(function(e){e()});if(a)return a[2];var c=new Promise(function(c,t){a=n[e]=[c,t]});a[2]=c;var r=document.getElementsByTagName("head")[0],o=document.createElement("script");o.type="text/javascript",o.charset="utf-8",o.async=!0,o.timeout=12e4,t.nc&&o.setAttribute("nonce",t.nc),o.src=t.p+""+({0:"pages_specification_v3_process-message",1:"pages_specification_v3_measurement-message",2:"pages_specification_v3_machine-message",3:"pages_specification_v2_process-message",4:"pages_specification_v2_measurement-message",5:"pages_specification_v2_machine-message",6:"pages_blog",7:"pages_article",8:"layouts_sidebar",9:"pages_faq",10:"layouts_default",11:"pages_specification",12:"pages_index",13:"pages_proposal",14:"pages_specification_index",15:"vendor",16:"app"}[e]||e)+"."+{0:"bc1cd203958888d66862",1:"add054bcac744c963fba",2:"f44c94ee92582a4b1543",3:"4c628f89a8a036d97abc",4:"31b7192747b3c0fbb2e0",5:"0c8aa5390a849fab62a9",6:"e921111d8f479ba5a1cd",7:"dfd7fcb83848670d21b1",8:"7c421ad9e58e5e68f949",9:"ddd0c6c0a2a46ba04afd",10:"19e29c13ea8f8ffe3260",11:"019a3d73137721bf46a2",12:"922f1427ed81a1db7207",13:"60a77f13238c99a592be",14:"815252d9cf4fccce90f1",15:"3960437a749191406982",16:"ac89eaaf53fc974d7229",17:"68457182c4872d1a7c24",18:"6ecc186b3a92e328a757",19:"19d62025503672303cb1",20:"37fc16cab226c391edef",21:"884f5e26a6cd4054e141",22:"efc38af3562317c618d5",23:"e92d2a866e7c11905498"}[e]+".js";var s=setTimeout(i,12e4);function i(){o.onerror=o.onload=null,clearTimeout(s);var a=n[e];0!==a&&(a&&a[1](new Error("Loading chunk "+e+" failed.")),n[e]=void 0)}return o.onerror=o.onload=i,r.appendChild(o),c},t.m=e,t.c=c,t.d=function(e,a,c){t.o(e,a)||Object.defineProperty(e,a,{configurable:!1,enumerable:!0,get:c})},t.n=function(e){var a=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(a,"a",a),a},t.o=function(e,a){return Object.prototype.hasOwnProperty.call(e,a)},t.p="/unide/files/",t.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file
diff --git a/files/pages_article.841e1aa4e71e21120e8c.js b/files/pages_article.dfd7fcb83848670d21b1.js
similarity index 99%
rename from files/pages_article.841e1aa4e71e21120e8c.js
rename to files/pages_article.dfd7fcb83848670d21b1.js
index c1a0ea6..aea5a46 100644
--- a/files/pages_article.841e1aa4e71e21120e8c.js
+++ b/files/pages_article.dfd7fcb83848670d21b1.js
@@ -1,2 +1,2 @@
 /*! For license information please see LICENSES */
-webpackJsonp([4],{"21It":function(t,e,r){"use strict";var n=r("FtD3");t.exports=function(t,e,r){var o=r.config.validateStatus;r.status&&o&&!o(r.status)?e(n("Request failed with status code "+r.status,r.config,null,r.request,r)):t(r)}},"5VQ+":function(t,e,r){"use strict";var n=r("cGG2");t.exports=function(t,e){n.forEach(t,function(r,n){n!==e&&n.toUpperCase()===e.toUpperCase()&&(t[e]=r,delete t[n])})}},"7GwW":function(t,e,r){"use strict";var n=r("cGG2"),o=r("21It"),i=r("DQCr"),s=r("oJlt"),a=r("GHBc"),c=r("FtD3"),u="undefined"!=typeof window&&window.btoa&&window.btoa.bind(window)||r("thJu");t.exports=function(t){return new Promise(function(e,f){var p=t.data,l=t.headers;n.isFormData(p)&&delete l["Content-Type"];var d=new XMLHttpRequest,h="onreadystatechange",m=!1;if("undefined"==typeof window||!window.XDomainRequest||"withCredentials"in d||a(t.url)||(d=new window.XDomainRequest,h="onload",m=!0,d.onprogress=function(){},d.ontimeout=function(){}),t.auth){var g=t.auth.username||"",v=t.auth.password||"";l.Authorization="Basic "+u(g+":"+v)}if(d.open(t.method.toUpperCase(),i(t.url,t.params,t.paramsSerializer),!0),d.timeout=t.timeout,d[h]=function(){if(d&&(4===d.readyState||m)&&(0!==d.status||d.responseURL&&0===d.responseURL.indexOf("file:"))){var r="getAllResponseHeaders"in d?s(d.getAllResponseHeaders()):null,n={data:t.responseType&&"text"!==t.responseType?d.response:d.responseText,status:1223===d.status?204:d.status,statusText:1223===d.status?"No Content":d.statusText,headers:r,config:t,request:d};o(e,f,n),d=null}},d.onerror=function(){f(c("Network Error",t,null,d)),d=null},d.ontimeout=function(){f(c("timeout of "+t.timeout+"ms exceeded",t,"ECONNABORTED",d)),d=null},n.isStandardBrowserEnv()){var y=r("p1b6"),w=(t.withCredentials||a(t.url))&&t.xsrfCookieName?y.read(t.xsrfCookieName):void 0;w&&(l[t.xsrfHeaderName]=w)}if("setRequestHeader"in d&&n.forEach(l,function(t,e){void 0===p&&"content-type"===e.toLowerCase()?delete l[e]:d.setRequestHeader(e,t)}),t.withCredentials&&(d.withCredentials=!0),t.responseType)try{d.responseType=t.responseType}catch(e){if("json"!==t.responseType)throw e}"function"==typeof t.onDownloadProgress&&d.addEventListener("progress",t.onDownloadProgress),"function"==typeof t.onUploadProgress&&d.upload&&d.upload.addEventListener("progress",t.onUploadProgress),t.cancelToken&&t.cancelToken.promise.then(function(t){d&&(d.abort(),f(t),d=null)}),void 0===p&&(p=null),d.send(p)})}},DQCr:function(t,e,r){"use strict";var n=r("cGG2");function o(t){return encodeURIComponent(t).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}t.exports=function(t,e,r){if(!e)return t;var i;if(r)i=r(e);else if(n.isURLSearchParams(e))i=e.toString();else{var s=[];n.forEach(e,function(t,e){null!==t&&void 0!==t&&(n.isArray(t)&&(e+="[]"),n.isArray(t)||(t=[t]),n.forEach(t,function(t){n.isDate(t)?t=t.toISOString():n.isObject(t)&&(t=JSON.stringify(t)),s.push(o(e)+"="+o(t))}))}),i=s.join("&")}return i&&(t+=(-1===t.indexOf("?")?"?":"&")+i),t}},FtD3:function(t,e,r){"use strict";var n=r("t8qj");t.exports=function(t,e,r,o,i){var s=new Error(t);return n(s,e,r,o,i)}},GHBc:function(t,e,r){"use strict";var n=r("cGG2");t.exports=n.isStandardBrowserEnv()?function(){var t,e=/(msie|trident)/i.test(navigator.userAgent),r=document.createElement("a");function o(t){var n=t;return e&&(r.setAttribute("href",n),n=r.href),r.setAttribute("href",n),{href:r.href,protocol:r.protocol?r.protocol.replace(/:$/,""):"",host:r.host,search:r.search?r.search.replace(/^\?/,""):"",hash:r.hash?r.hash.replace(/^#/,""):"",hostname:r.hostname,port:r.port,pathname:"/"===r.pathname.charAt(0)?r.pathname:"/"+r.pathname}}return t=o(window.location.href),function(e){var r=n.isString(e)?o(e):e;return r.protocol===t.protocol&&r.host===t.host}}():function(){return!0}},"JP+z":function(t,e,r){"use strict";t.exports=function(t,e){return function(){for(var r=new Array(arguments.length),n=0;n<r.length;n++)r[n]=arguments[n];return t.apply(e,r)}}},KCLY:function(t,e,r){"use strict";(function(e){var n=r("cGG2"),o=r("5VQ+"),i={"Content-Type":"application/x-www-form-urlencoded"};function s(t,e){!n.isUndefined(t)&&n.isUndefined(t["Content-Type"])&&(t["Content-Type"]=e)}var a,c={adapter:("undefined"!=typeof XMLHttpRequest?a=r("7GwW"):void 0!==e&&(a=r("7GwW")),a),transformRequest:[function(t,e){return o(e,"Content-Type"),n.isFormData(t)||n.isArrayBuffer(t)||n.isBuffer(t)||n.isStream(t)||n.isFile(t)||n.isBlob(t)?t:n.isArrayBufferView(t)?t.buffer:n.isURLSearchParams(t)?(s(e,"application/x-www-form-urlencoded;charset=utf-8"),t.toString()):n.isObject(t)?(s(e,"application/json;charset=utf-8"),JSON.stringify(t)):t}],transformResponse:[function(t){if("string"==typeof t)try{t=JSON.parse(t)}catch(t){}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,validateStatus:function(t){return t>=200&&t<300}};c.headers={common:{Accept:"application/json, text/plain, */*"}},n.forEach(["delete","get","head"],function(t){c.headers[t]={}}),n.forEach(["post","put","patch"],function(t){c.headers[t]=n.merge(i)}),t.exports=c}).call(e,r("W2nU"))},Kyln:function(t,e,r){var n=r("Lk02");"string"==typeof n&&(n=[[t.i,n,""]]),n.locals&&(t.exports=n.locals);r("rjj0")("73fc20d4",n,!1)},Lk02:function(t,e,r){(t.exports=r("YHym")(!1)).push([t.i,"@keyframes spinAround{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}.article h1{font-weight:400}.article h2,.article h3,.article h4{color:#a7a7a7}.article .card{border-radius:5px}.article .card .card-header{border-radius:5px 5px 0 0}.article .card .card-header.is-primary{background-color:#50237f}.article .card .card-header.is-primary .card-header-title{color:#fff}.article .card.figure{margin-bottom:1rem;text-align:center}@media screen and (min-width:415px){.article .card.figure.is-pulled-left,.article .card.figure.is-pulled-right{max-width:33%}.article .card.figure.is-pulled-left{margin-right:1rem;text-align:left}.article .card.figure.is-pulled-right{margin-left:1rem}.article .card.figure.is-pulled-right .card-content{text-align:right}}.article .card.figure .card-content{padding:.5rem;font-size:.75rem}.article .card.figure figure{margin:0}.article>.columns.pageNav{margin-top:2em}.article>.columns.pageNav .column a.button{font-size:.9em;padding:1.3rem}.article pre[class*=language-]{max-height:400px}",""])},QE0f:function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=r("gA5C"),o=r("a2ZL"),i=!1;var s=function(t){i||r("Kyln")},a=r("VU/8")(n.a,o.a,!1,s,null,null);a.options.__file="pages\\article.vue",e.default=a.exports},Re3r:function(t,e){function r(t){return!!t.constructor&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)}t.exports=function(t){return null!=t&&(r(t)||"function"==typeof(e=t).readFloatLE&&"function"==typeof e.slice&&r(e.slice(0,0))||!!t._isBuffer);var e}},TNV1:function(t,e,r){"use strict";var n=r("cGG2");t.exports=function(t,e,r){return n.forEach(r,function(r){t=r(t,e)}),t}},XmWM:function(t,e,r){"use strict";var n=r("KCLY"),o=r("cGG2"),i=r("fuGk"),s=r("xLtR");function a(t){this.defaults=t,this.interceptors={request:new i,response:new i}}a.prototype.request=function(t){"string"==typeof t&&(t=o.merge({url:arguments[0]},arguments[1])),(t=o.merge(n,this.defaults,{method:"get"},t)).method=t.method.toLowerCase();var e=[s,void 0],r=Promise.resolve(t);for(this.interceptors.request.forEach(function(t){e.unshift(t.fulfilled,t.rejected)}),this.interceptors.response.forEach(function(t){e.push(t.fulfilled,t.rejected)});e.length;)r=r.then(e.shift(),e.shift());return r},o.forEach(["delete","get","head","options"],function(t){a.prototype[t]=function(e,r){return this.request(o.merge(r||{},{method:t,url:e}))}}),o.forEach(["post","put","patch"],function(t){a.prototype[t]=function(e,r,n){return this.request(o.merge(n||{},{method:t,url:e,data:r}))}}),t.exports=a},a2ZL:function(t,e,r){"use strict";var n=function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"article"},[this.post.title?e("h1",{staticClass:"title is-3"},[this._v("\n    "+this._s(this.post.title)+"\n  ")]):this._e(),this.post.title&&this.post.date?e("h2",{staticClass:"subtitle is-6"},[e("i",{staticClass:"fa fa-calendar"}),this._v("  \n    "+this._s(this._f("timeStamp")(this.post.date))+"\n  ")]):this._e(),e("div",{staticClass:"content"},[e("div",{domProps:{innerHTML:this._s(this.post.content)}})]),e("div",{staticClass:"columns pageNav"},[this.post.prev?e("div",{staticClass:"column"},[e("nuxt-link",{staticClass:"button is-fullwidth",attrs:{to:this.post.prev.url}},[e("span",{staticClass:"icon"},[e("i",{staticClass:"fa fa-chevron-left"})]),e("span",[this._v(this._s(this.post.prev.title))])])],1):this._e(),this.post.next?e("div",{staticClass:"column"},[e("nuxt-link",{staticClass:"button is-fullwidth",attrs:{to:this.post.next.url}},[e("span",[this._v(this._s(this.post.next.title))]),e("span",{staticClass:"icon"},[e("i",{staticClass:"fa fa-chevron-right"})])])],1):this._e()])])};n._withStripped=!0;var o={render:n,staticRenderFns:[]};e.a=o},cGG2:function(t,e,r){"use strict";var n=r("JP+z"),o=r("Re3r"),i=Object.prototype.toString;function s(t){return"[object Array]"===i.call(t)}function a(t){return null!==t&&"object"==typeof t}function c(t){return"[object Function]"===i.call(t)}function u(t,e){if(null!==t&&void 0!==t)if("object"!=typeof t&&(t=[t]),s(t))for(var r=0,n=t.length;r<n;r++)e.call(null,t[r],r,t);else for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&e.call(null,t[o],o,t)}t.exports={isArray:s,isArrayBuffer:function(t){return"[object ArrayBuffer]"===i.call(t)},isBuffer:o,isFormData:function(t){return"undefined"!=typeof FormData&&t instanceof FormData},isArrayBufferView:function(t){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&t.buffer instanceof ArrayBuffer},isString:function(t){return"string"==typeof t},isNumber:function(t){return"number"==typeof t},isObject:a,isUndefined:function(t){return void 0===t},isDate:function(t){return"[object Date]"===i.call(t)},isFile:function(t){return"[object File]"===i.call(t)},isBlob:function(t){return"[object Blob]"===i.call(t)},isFunction:c,isStream:function(t){return a(t)&&c(t.pipe)},isURLSearchParams:function(t){return"undefined"!=typeof URLSearchParams&&t instanceof URLSearchParams},isStandardBrowserEnv:function(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product)&&"undefined"!=typeof window&&"undefined"!=typeof document},forEach:u,merge:function t(){var e={};function r(r,n){"object"==typeof e[n]&&"object"==typeof r?e[n]=t(e[n],r):e[n]=r}for(var n=0,o=arguments.length;n<o;n++)u(arguments[n],r);return e},extend:function(t,e,r){return u(e,function(e,o){t[o]=r&&"function"==typeof e?n(e,r):e}),t},trim:function(t){return t.replace(/^\s*/,"").replace(/\s*$/,"")}}},cWxy:function(t,e,r){"use strict";var n=r("dVOP");function o(t){if("function"!=typeof t)throw new TypeError("executor must be a function.");var e;this.promise=new Promise(function(t){e=t});var r=this;t(function(t){r.reason||(r.reason=new n(t),e(r.reason))})}o.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},o.source=function(){var t;return{token:new o(function(e){t=e}),cancel:t}},t.exports=o},dIwP:function(t,e,r){"use strict";t.exports=function(t){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(t)}},dVOP:function(t,e,r){"use strict";function n(t){this.message=t}n.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},n.prototype.__CANCEL__=!0,t.exports=n},fuGk:function(t,e,r){"use strict";var n=r("cGG2");function o(){this.handlers=[]}o.prototype.use=function(t,e){return this.handlers.push({fulfilled:t,rejected:e}),this.handlers.length-1},o.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)},o.prototype.forEach=function(t){n.forEach(this.handlers,function(e){null!==e&&t(e)})},t.exports=o},gA5C:function(t,e,r){"use strict";var n=r("Xxa5"),o=r.n(n),i=r("exGp"),s=r.n(i),a=r("mtWM"),c=r.n(a),u=(navigator.languages&&navigator.languages[0]||navigator.language||navigator.userLanguage).toLowerCase().split(/[_-]+/)[0];e.a={layout:"sidebar",head:function(){return{title:this.post.title}},asyncData:function(){var t=s()(o.a.mark(function t(e){var r=e.params,n=e.payload;return o.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(t.t1=n,t.t1){t.next=8;break}if(t.t2=r.name,!t.t2){t.next=7;break}return t.next=6,c.a.get("/unide/files/posts/"+r.name+".json");case 6:t.t2=t.sent.data;case 7:t.t1=t.t2;case 8:if(t.t0=t.t1,t.t0){t.next=11;break}t.t0={};case 11:return t.t3=t.t0,t.abrupt("return",{post:t.t3});case 13:case"end":return t.stop()}},t,this)}));return function(e){return t.apply(this,arguments)}}(),filters:{timeStamp:function(t){var e=(t=t instanceof Date?t:new Date(t)).getHours()&&t.getMinutes();return Intl.DateTimeFormat(u,{hour12:!1,year:"2-digit",month:"2-digit",day:"2-digit",hour:e?"numeric":void 0,minute:e?"2-digit":void 0}).format(t)}}}},mtWM:function(t,e,r){t.exports=r("tIFN")},oJlt:function(t,e,r){"use strict";var n=r("cGG2"),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];t.exports=function(t){var e,r,i,s={};return t?(n.forEach(t.split("\n"),function(t){if(i=t.indexOf(":"),e=n.trim(t.substr(0,i)).toLowerCase(),r=n.trim(t.substr(i+1)),e){if(s[e]&&o.indexOf(e)>=0)return;s[e]="set-cookie"===e?(s[e]?s[e]:[]).concat([r]):s[e]?s[e]+", "+r:r}}),s):s}},p1b6:function(t,e,r){"use strict";var n=r("cGG2");t.exports=n.isStandardBrowserEnv()?{write:function(t,e,r,o,i,s){var a=[];a.push(t+"="+encodeURIComponent(e)),n.isNumber(r)&&a.push("expires="+new Date(r).toGMTString()),n.isString(o)&&a.push("path="+o),n.isString(i)&&a.push("domain="+i),!0===s&&a.push("secure"),document.cookie=a.join("; ")},read:function(t){var e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove:function(t){this.write(t,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},pBtG:function(t,e,r){"use strict";t.exports=function(t){return!(!t||!t.__CANCEL__)}},pxG4:function(t,e,r){"use strict";t.exports=function(t){return function(e){return t.apply(null,e)}}},qRfI:function(t,e,r){"use strict";t.exports=function(t,e){return e?t.replace(/\/+$/,"")+"/"+e.replace(/^\/+/,""):t}},t8qj:function(t,e,r){"use strict";t.exports=function(t,e,r,n,o){return t.config=e,r&&(t.code=r),t.request=n,t.response=o,t}},tIFN:function(t,e,r){"use strict";var n=r("cGG2"),o=r("JP+z"),i=r("XmWM"),s=r("KCLY");function a(t){var e=new i(t),r=o(i.prototype.request,e);return n.extend(r,i.prototype,e),n.extend(r,e),r}var c=a(s);c.Axios=i,c.create=function(t){return a(n.merge(s,t))},c.Cancel=r("dVOP"),c.CancelToken=r("cWxy"),c.isCancel=r("pBtG"),c.all=function(t){return Promise.all(t)},c.spread=r("pxG4"),t.exports=c,t.exports.default=c},thJu:function(t,e,r){"use strict";var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function o(){this.message="String contains an invalid character"}o.prototype=new Error,o.prototype.code=5,o.prototype.name="InvalidCharacterError",t.exports=function(t){for(var e,r,i=String(t),s="",a=0,c=n;i.charAt(0|a)||(c="=",a%1);s+=c.charAt(63&e>>8-a%1*8)){if((r=i.charCodeAt(a+=.75))>255)throw new o;e=e<<8|r}return s}},xLtR:function(t,e,r){"use strict";var n=r("cGG2"),o=r("TNV1"),i=r("pBtG"),s=r("KCLY"),a=r("dIwP"),c=r("qRfI");function u(t){t.cancelToken&&t.cancelToken.throwIfRequested()}t.exports=function(t){return u(t),t.baseURL&&!a(t.url)&&(t.url=c(t.baseURL,t.url)),t.headers=t.headers||{},t.data=o(t.data,t.headers,t.transformRequest),t.headers=n.merge(t.headers.common||{},t.headers[t.method]||{},t.headers||{}),n.forEach(["delete","get","head","post","put","patch","common"],function(e){delete t.headers[e]}),(t.adapter||s.adapter)(t).then(function(e){return u(t),e.data=o(e.data,e.headers,t.transformResponse),e},function(e){return i(e)||(u(t),e&&e.response&&(e.response.data=o(e.response.data,e.response.headers,t.transformResponse))),Promise.reject(e)})}}});
\ No newline at end of file
+webpackJsonp([7],{"21It":function(t,e,r){"use strict";var n=r("FtD3");t.exports=function(t,e,r){var o=r.config.validateStatus;r.status&&o&&!o(r.status)?e(n("Request failed with status code "+r.status,r.config,null,r.request,r)):t(r)}},"5VQ+":function(t,e,r){"use strict";var n=r("cGG2");t.exports=function(t,e){n.forEach(t,function(r,n){n!==e&&n.toUpperCase()===e.toUpperCase()&&(t[e]=r,delete t[n])})}},"7GwW":function(t,e,r){"use strict";var n=r("cGG2"),o=r("21It"),i=r("DQCr"),s=r("oJlt"),a=r("GHBc"),c=r("FtD3"),u="undefined"!=typeof window&&window.btoa&&window.btoa.bind(window)||r("thJu");t.exports=function(t){return new Promise(function(e,f){var p=t.data,l=t.headers;n.isFormData(p)&&delete l["Content-Type"];var d=new XMLHttpRequest,h="onreadystatechange",m=!1;if("undefined"==typeof window||!window.XDomainRequest||"withCredentials"in d||a(t.url)||(d=new window.XDomainRequest,h="onload",m=!0,d.onprogress=function(){},d.ontimeout=function(){}),t.auth){var g=t.auth.username||"",v=t.auth.password||"";l.Authorization="Basic "+u(g+":"+v)}if(d.open(t.method.toUpperCase(),i(t.url,t.params,t.paramsSerializer),!0),d.timeout=t.timeout,d[h]=function(){if(d&&(4===d.readyState||m)&&(0!==d.status||d.responseURL&&0===d.responseURL.indexOf("file:"))){var r="getAllResponseHeaders"in d?s(d.getAllResponseHeaders()):null,n={data:t.responseType&&"text"!==t.responseType?d.response:d.responseText,status:1223===d.status?204:d.status,statusText:1223===d.status?"No Content":d.statusText,headers:r,config:t,request:d};o(e,f,n),d=null}},d.onerror=function(){f(c("Network Error",t,null,d)),d=null},d.ontimeout=function(){f(c("timeout of "+t.timeout+"ms exceeded",t,"ECONNABORTED",d)),d=null},n.isStandardBrowserEnv()){var y=r("p1b6"),w=(t.withCredentials||a(t.url))&&t.xsrfCookieName?y.read(t.xsrfCookieName):void 0;w&&(l[t.xsrfHeaderName]=w)}if("setRequestHeader"in d&&n.forEach(l,function(t,e){void 0===p&&"content-type"===e.toLowerCase()?delete l[e]:d.setRequestHeader(e,t)}),t.withCredentials&&(d.withCredentials=!0),t.responseType)try{d.responseType=t.responseType}catch(e){if("json"!==t.responseType)throw e}"function"==typeof t.onDownloadProgress&&d.addEventListener("progress",t.onDownloadProgress),"function"==typeof t.onUploadProgress&&d.upload&&d.upload.addEventListener("progress",t.onUploadProgress),t.cancelToken&&t.cancelToken.promise.then(function(t){d&&(d.abort(),f(t),d=null)}),void 0===p&&(p=null),d.send(p)})}},DQCr:function(t,e,r){"use strict";var n=r("cGG2");function o(t){return encodeURIComponent(t).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}t.exports=function(t,e,r){if(!e)return t;var i;if(r)i=r(e);else if(n.isURLSearchParams(e))i=e.toString();else{var s=[];n.forEach(e,function(t,e){null!==t&&void 0!==t&&(n.isArray(t)&&(e+="[]"),n.isArray(t)||(t=[t]),n.forEach(t,function(t){n.isDate(t)?t=t.toISOString():n.isObject(t)&&(t=JSON.stringify(t)),s.push(o(e)+"="+o(t))}))}),i=s.join("&")}return i&&(t+=(-1===t.indexOf("?")?"?":"&")+i),t}},FtD3:function(t,e,r){"use strict";var n=r("t8qj");t.exports=function(t,e,r,o,i){var s=new Error(t);return n(s,e,r,o,i)}},GHBc:function(t,e,r){"use strict";var n=r("cGG2");t.exports=n.isStandardBrowserEnv()?function(){var t,e=/(msie|trident)/i.test(navigator.userAgent),r=document.createElement("a");function o(t){var n=t;return e&&(r.setAttribute("href",n),n=r.href),r.setAttribute("href",n),{href:r.href,protocol:r.protocol?r.protocol.replace(/:$/,""):"",host:r.host,search:r.search?r.search.replace(/^\?/,""):"",hash:r.hash?r.hash.replace(/^#/,""):"",hostname:r.hostname,port:r.port,pathname:"/"===r.pathname.charAt(0)?r.pathname:"/"+r.pathname}}return t=o(window.location.href),function(e){var r=n.isString(e)?o(e):e;return r.protocol===t.protocol&&r.host===t.host}}():function(){return!0}},"JP+z":function(t,e,r){"use strict";t.exports=function(t,e){return function(){for(var r=new Array(arguments.length),n=0;n<r.length;n++)r[n]=arguments[n];return t.apply(e,r)}}},KCLY:function(t,e,r){"use strict";(function(e){var n=r("cGG2"),o=r("5VQ+"),i={"Content-Type":"application/x-www-form-urlencoded"};function s(t,e){!n.isUndefined(t)&&n.isUndefined(t["Content-Type"])&&(t["Content-Type"]=e)}var a,c={adapter:("undefined"!=typeof XMLHttpRequest?a=r("7GwW"):void 0!==e&&(a=r("7GwW")),a),transformRequest:[function(t,e){return o(e,"Content-Type"),n.isFormData(t)||n.isArrayBuffer(t)||n.isBuffer(t)||n.isStream(t)||n.isFile(t)||n.isBlob(t)?t:n.isArrayBufferView(t)?t.buffer:n.isURLSearchParams(t)?(s(e,"application/x-www-form-urlencoded;charset=utf-8"),t.toString()):n.isObject(t)?(s(e,"application/json;charset=utf-8"),JSON.stringify(t)):t}],transformResponse:[function(t){if("string"==typeof t)try{t=JSON.parse(t)}catch(t){}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,validateStatus:function(t){return t>=200&&t<300}};c.headers={common:{Accept:"application/json, text/plain, */*"}},n.forEach(["delete","get","head"],function(t){c.headers[t]={}}),n.forEach(["post","put","patch"],function(t){c.headers[t]=n.merge(i)}),t.exports=c}).call(e,r("W2nU"))},Kyln:function(t,e,r){var n=r("Lk02");"string"==typeof n&&(n=[[t.i,n,""]]),n.locals&&(t.exports=n.locals);r("rjj0")("73fc20d4",n,!1)},Lk02:function(t,e,r){(t.exports=r("YHym")(!1)).push([t.i,"@keyframes spinAround{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}.article h1{font-weight:400}.article h2,.article h3,.article h4{color:#a7a7a7}.article .card{border-radius:5px}.article .card .card-header{border-radius:5px 5px 0 0}.article .card .card-header.is-primary{background-color:#50237f}.article .card .card-header.is-primary .card-header-title{color:#fff}.article .card.figure{margin-bottom:1rem;text-align:center}@media screen and (min-width:415px){.article .card.figure.is-pulled-left,.article .card.figure.is-pulled-right{max-width:33%}.article .card.figure.is-pulled-left{margin-right:1rem;text-align:left}.article .card.figure.is-pulled-right{margin-left:1rem}.article .card.figure.is-pulled-right .card-content{text-align:right}}.article .card.figure .card-content{padding:.5rem;font-size:.75rem}.article .card.figure figure{margin:0}.article>.columns.pageNav{margin-top:2em}.article>.columns.pageNav .column a.button{font-size:.9em;padding:1.3rem}.article pre[class*=language-]{max-height:400px}",""])},QE0f:function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=r("gA5C"),o=r("a2ZL"),i=!1;var s=function(t){i||r("Kyln")},a=r("VU/8")(n.a,o.a,!1,s,null,null);a.options.__file="pages\\article.vue",e.default=a.exports},Re3r:function(t,e){function r(t){return!!t.constructor&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)}t.exports=function(t){return null!=t&&(r(t)||"function"==typeof(e=t).readFloatLE&&"function"==typeof e.slice&&r(e.slice(0,0))||!!t._isBuffer);var e}},TNV1:function(t,e,r){"use strict";var n=r("cGG2");t.exports=function(t,e,r){return n.forEach(r,function(r){t=r(t,e)}),t}},XmWM:function(t,e,r){"use strict";var n=r("KCLY"),o=r("cGG2"),i=r("fuGk"),s=r("xLtR");function a(t){this.defaults=t,this.interceptors={request:new i,response:new i}}a.prototype.request=function(t){"string"==typeof t&&(t=o.merge({url:arguments[0]},arguments[1])),(t=o.merge(n,this.defaults,{method:"get"},t)).method=t.method.toLowerCase();var e=[s,void 0],r=Promise.resolve(t);for(this.interceptors.request.forEach(function(t){e.unshift(t.fulfilled,t.rejected)}),this.interceptors.response.forEach(function(t){e.push(t.fulfilled,t.rejected)});e.length;)r=r.then(e.shift(),e.shift());return r},o.forEach(["delete","get","head","options"],function(t){a.prototype[t]=function(e,r){return this.request(o.merge(r||{},{method:t,url:e}))}}),o.forEach(["post","put","patch"],function(t){a.prototype[t]=function(e,r,n){return this.request(o.merge(n||{},{method:t,url:e,data:r}))}}),t.exports=a},a2ZL:function(t,e,r){"use strict";var n=function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"article"},[this.post.title?e("h1",{staticClass:"title is-3"},[this._v("\n    "+this._s(this.post.title)+"\n  ")]):this._e(),this.post.title&&this.post.date?e("h2",{staticClass:"subtitle is-6"},[e("i",{staticClass:"fa fa-calendar"}),this._v("  \n    "+this._s(this._f("timeStamp")(this.post.date))+"\n  ")]):this._e(),e("div",{staticClass:"content"},[e("div",{domProps:{innerHTML:this._s(this.post.content)}})]),e("div",{staticClass:"columns pageNav"},[this.post.prev?e("div",{staticClass:"column"},[e("nuxt-link",{staticClass:"button is-fullwidth",attrs:{to:this.post.prev.url}},[e("span",{staticClass:"icon"},[e("i",{staticClass:"fa fa-chevron-left"})]),e("span",[this._v(this._s(this.post.prev.title))])])],1):this._e(),this.post.next?e("div",{staticClass:"column"},[e("nuxt-link",{staticClass:"button is-fullwidth",attrs:{to:this.post.next.url}},[e("span",[this._v(this._s(this.post.next.title))]),e("span",{staticClass:"icon"},[e("i",{staticClass:"fa fa-chevron-right"})])])],1):this._e()])])};n._withStripped=!0;var o={render:n,staticRenderFns:[]};e.a=o},cGG2:function(t,e,r){"use strict";var n=r("JP+z"),o=r("Re3r"),i=Object.prototype.toString;function s(t){return"[object Array]"===i.call(t)}function a(t){return null!==t&&"object"==typeof t}function c(t){return"[object Function]"===i.call(t)}function u(t,e){if(null!==t&&void 0!==t)if("object"!=typeof t&&(t=[t]),s(t))for(var r=0,n=t.length;r<n;r++)e.call(null,t[r],r,t);else for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&e.call(null,t[o],o,t)}t.exports={isArray:s,isArrayBuffer:function(t){return"[object ArrayBuffer]"===i.call(t)},isBuffer:o,isFormData:function(t){return"undefined"!=typeof FormData&&t instanceof FormData},isArrayBufferView:function(t){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&t.buffer instanceof ArrayBuffer},isString:function(t){return"string"==typeof t},isNumber:function(t){return"number"==typeof t},isObject:a,isUndefined:function(t){return void 0===t},isDate:function(t){return"[object Date]"===i.call(t)},isFile:function(t){return"[object File]"===i.call(t)},isBlob:function(t){return"[object Blob]"===i.call(t)},isFunction:c,isStream:function(t){return a(t)&&c(t.pipe)},isURLSearchParams:function(t){return"undefined"!=typeof URLSearchParams&&t instanceof URLSearchParams},isStandardBrowserEnv:function(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product)&&"undefined"!=typeof window&&"undefined"!=typeof document},forEach:u,merge:function t(){var e={};function r(r,n){"object"==typeof e[n]&&"object"==typeof r?e[n]=t(e[n],r):e[n]=r}for(var n=0,o=arguments.length;n<o;n++)u(arguments[n],r);return e},extend:function(t,e,r){return u(e,function(e,o){t[o]=r&&"function"==typeof e?n(e,r):e}),t},trim:function(t){return t.replace(/^\s*/,"").replace(/\s*$/,"")}}},cWxy:function(t,e,r){"use strict";var n=r("dVOP");function o(t){if("function"!=typeof t)throw new TypeError("executor must be a function.");var e;this.promise=new Promise(function(t){e=t});var r=this;t(function(t){r.reason||(r.reason=new n(t),e(r.reason))})}o.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},o.source=function(){var t;return{token:new o(function(e){t=e}),cancel:t}},t.exports=o},dIwP:function(t,e,r){"use strict";t.exports=function(t){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(t)}},dVOP:function(t,e,r){"use strict";function n(t){this.message=t}n.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},n.prototype.__CANCEL__=!0,t.exports=n},fuGk:function(t,e,r){"use strict";var n=r("cGG2");function o(){this.handlers=[]}o.prototype.use=function(t,e){return this.handlers.push({fulfilled:t,rejected:e}),this.handlers.length-1},o.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)},o.prototype.forEach=function(t){n.forEach(this.handlers,function(e){null!==e&&t(e)})},t.exports=o},gA5C:function(t,e,r){"use strict";var n=r("Xxa5"),o=r.n(n),i=r("exGp"),s=r.n(i),a=r("mtWM"),c=r.n(a),u=(navigator.languages&&navigator.languages[0]||navigator.language||navigator.userLanguage).toLowerCase().split(/[_-]+/)[0];e.a={layout:"sidebar",head:function(){return{title:this.post.title}},asyncData:function(){var t=s()(o.a.mark(function t(e){var r=e.params,n=e.payload;return o.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(t.t1=n,t.t1){t.next=8;break}if(t.t2=r.name,!t.t2){t.next=7;break}return t.next=6,c.a.get("/unide/files/posts/"+r.name+".json");case 6:t.t2=t.sent.data;case 7:t.t1=t.t2;case 8:if(t.t0=t.t1,t.t0){t.next=11;break}t.t0={};case 11:return t.t3=t.t0,t.abrupt("return",{post:t.t3});case 13:case"end":return t.stop()}},t,this)}));return function(e){return t.apply(this,arguments)}}(),filters:{timeStamp:function(t){var e=(t=t instanceof Date?t:new Date(t)).getHours()&&t.getMinutes();return Intl.DateTimeFormat(u,{hour12:!1,year:"2-digit",month:"2-digit",day:"2-digit",hour:e?"numeric":void 0,minute:e?"2-digit":void 0}).format(t)}}}},mtWM:function(t,e,r){t.exports=r("tIFN")},oJlt:function(t,e,r){"use strict";var n=r("cGG2"),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];t.exports=function(t){var e,r,i,s={};return t?(n.forEach(t.split("\n"),function(t){if(i=t.indexOf(":"),e=n.trim(t.substr(0,i)).toLowerCase(),r=n.trim(t.substr(i+1)),e){if(s[e]&&o.indexOf(e)>=0)return;s[e]="set-cookie"===e?(s[e]?s[e]:[]).concat([r]):s[e]?s[e]+", "+r:r}}),s):s}},p1b6:function(t,e,r){"use strict";var n=r("cGG2");t.exports=n.isStandardBrowserEnv()?{write:function(t,e,r,o,i,s){var a=[];a.push(t+"="+encodeURIComponent(e)),n.isNumber(r)&&a.push("expires="+new Date(r).toGMTString()),n.isString(o)&&a.push("path="+o),n.isString(i)&&a.push("domain="+i),!0===s&&a.push("secure"),document.cookie=a.join("; ")},read:function(t){var e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove:function(t){this.write(t,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},pBtG:function(t,e,r){"use strict";t.exports=function(t){return!(!t||!t.__CANCEL__)}},pxG4:function(t,e,r){"use strict";t.exports=function(t){return function(e){return t.apply(null,e)}}},qRfI:function(t,e,r){"use strict";t.exports=function(t,e){return e?t.replace(/\/+$/,"")+"/"+e.replace(/^\/+/,""):t}},t8qj:function(t,e,r){"use strict";t.exports=function(t,e,r,n,o){return t.config=e,r&&(t.code=r),t.request=n,t.response=o,t}},tIFN:function(t,e,r){"use strict";var n=r("cGG2"),o=r("JP+z"),i=r("XmWM"),s=r("KCLY");function a(t){var e=new i(t),r=o(i.prototype.request,e);return n.extend(r,i.prototype,e),n.extend(r,e),r}var c=a(s);c.Axios=i,c.create=function(t){return a(n.merge(s,t))},c.Cancel=r("dVOP"),c.CancelToken=r("cWxy"),c.isCancel=r("pBtG"),c.all=function(t){return Promise.all(t)},c.spread=r("pxG4"),t.exports=c,t.exports.default=c},thJu:function(t,e,r){"use strict";var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function o(){this.message="String contains an invalid character"}o.prototype=new Error,o.prototype.code=5,o.prototype.name="InvalidCharacterError",t.exports=function(t){for(var e,r,i=String(t),s="",a=0,c=n;i.charAt(0|a)||(c="=",a%1);s+=c.charAt(63&e>>8-a%1*8)){if((r=i.charCodeAt(a+=.75))>255)throw new o;e=e<<8|r}return s}},xLtR:function(t,e,r){"use strict";var n=r("cGG2"),o=r("TNV1"),i=r("pBtG"),s=r("KCLY"),a=r("dIwP"),c=r("qRfI");function u(t){t.cancelToken&&t.cancelToken.throwIfRequested()}t.exports=function(t){return u(t),t.baseURL&&!a(t.url)&&(t.url=c(t.baseURL,t.url)),t.headers=t.headers||{},t.data=o(t.data,t.headers,t.transformRequest),t.headers=n.merge(t.headers.common||{},t.headers[t.method]||{},t.headers||{}),n.forEach(["delete","get","head","post","put","patch","common"],function(e){delete t.headers[e]}),(t.adapter||s.adapter)(t).then(function(e){return u(t),e.data=o(e.data,e.headers,t.transformResponse),e},function(e){return i(e)||(u(t),e&&e.response&&(e.response.data=o(e.response.data,e.response.headers,t.transformResponse))),Promise.reject(e)})}}});
\ No newline at end of file
diff --git a/files/pages_blog.d6903346e5cdc54871a0.js b/files/pages_blog.e921111d8f479ba5a1cd.js
similarity index 98%
rename from files/pages_blog.d6903346e5cdc54871a0.js
rename to files/pages_blog.e921111d8f479ba5a1cd.js
index a668f3d..dbdabc0 100644
--- a/files/pages_blog.d6903346e5cdc54871a0.js
+++ b/files/pages_blog.e921111d8f479ba5a1cd.js
@@ -1,2 +1,2 @@
 /*! For license information please see LICENSES */
-webpackJsonp([3],{"21It":function(e,t,n){"use strict";var r=n("FtD3");e.exports=function(e,t,n){var o=n.config.validateStatus;n.status&&o&&!o(n.status)?t(r("Request failed with status code "+n.status,n.config,null,n.request,n)):e(n)}},"5VQ+":function(e,t,n){"use strict";var r=n("cGG2");e.exports=function(e,t){r.forEach(e,function(n,r){r!==t&&r.toUpperCase()===t.toUpperCase()&&(e[t]=n,delete e[r])})}},"7GwW":function(e,t,n){"use strict";var r=n("cGG2"),o=n("21It"),i=n("DQCr"),a=n("oJlt"),s=n("GHBc"),u=n("FtD3"),c="undefined"!=typeof window&&window.btoa&&window.btoa.bind(window)||n("thJu");e.exports=function(e){return new Promise(function(t,f){var p=e.data,l=e.headers;r.isFormData(p)&&delete l["Content-Type"];var d=new XMLHttpRequest,h="onreadystatechange",m=!1;if("undefined"==typeof window||!window.XDomainRequest||"withCredentials"in d||s(e.url)||(d=new window.XDomainRequest,h="onload",m=!0,d.onprogress=function(){},d.ontimeout=function(){}),e.auth){var g=e.auth.username||"",y=e.auth.password||"";l.Authorization="Basic "+c(g+":"+y)}if(d.open(e.method.toUpperCase(),i(e.url,e.params,e.paramsSerializer),!0),d.timeout=e.timeout,d[h]=function(){if(d&&(4===d.readyState||m)&&(0!==d.status||d.responseURL&&0===d.responseURL.indexOf("file:"))){var n="getAllResponseHeaders"in d?a(d.getAllResponseHeaders()):null,r={data:e.responseType&&"text"!==e.responseType?d.response:d.responseText,status:1223===d.status?204:d.status,statusText:1223===d.status?"No Content":d.statusText,headers:n,config:e,request:d};o(t,f,r),d=null}},d.onerror=function(){f(u("Network Error",e,null,d)),d=null},d.ontimeout=function(){f(u("timeout of "+e.timeout+"ms exceeded",e,"ECONNABORTED",d)),d=null},r.isStandardBrowserEnv()){var v=n("p1b6"),w=(e.withCredentials||s(e.url))&&e.xsrfCookieName?v.read(e.xsrfCookieName):void 0;w&&(l[e.xsrfHeaderName]=w)}if("setRequestHeader"in d&&r.forEach(l,function(e,t){void 0===p&&"content-type"===t.toLowerCase()?delete l[t]:d.setRequestHeader(t,e)}),e.withCredentials&&(d.withCredentials=!0),e.responseType)try{d.responseType=e.responseType}catch(t){if("json"!==e.responseType)throw t}"function"==typeof e.onDownloadProgress&&d.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&d.upload&&d.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then(function(e){d&&(d.abort(),f(e),d=null)}),void 0===p&&(p=null),d.send(p)})}},AIuP:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n("CjMp"),o=n("S4re"),i=!1;var a=function(e){i||n("EdWd")},s=n("VU/8")(r.a,o.a,!1,a,null,null);s.options.__file="pages\\blog.vue",t.default=s.exports},CjMp:function(e,t,n){"use strict";var r=n("Xxa5"),o=n.n(r),i=n("exGp"),a=n.n(i),s=n("mtWM"),u=n.n(s),c=(navigator.languages&&navigator.languages[0]||navigator.language||navigator.userLanguage).toLowerCase().split(/[_-]+/)[0];t.a={layout:"sidebar",head:function(){return{title:this.dateHeader}},asyncData:function(){var e=a()(o.a.mark(function e(t){var r,i,a=t.params,s=void 0===a?{}:a,c=(t.query,t.payload);return o.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(r="",i=null,s.year&&(r+=""+s.year,s.month&&(r+="/"+s.month,s.day&&(r+="/"+s.day))),!r.length){e.next=11;break}if(e.t0=c,e.t0){e.next=8;break}return e.next=7,u.a.get("/unide/files/posts/"+r+".json");case 7:e.t0=e.sent.data;case 8:i=e.t0,e.next=14;break;case 11:return e.next=13,n.e(14).then(n.bind(null,"b4ia"));case 13:i=e.sent;case 14:return e.abrupt("return",{list:i.slice().reverse()});case 15:case"end":return e.stop()}},e,this)}));return function(t){return e.apply(this,arguments)}}(),computed:{dateHeader:function(){var e=this.$route.params,t=e.year,n=e.month,r=e.day,o=new Date(Date.UTC(t||2016,n||0,r||1));return t?Intl.DateTimeFormat(c,{month:n?"long":void 0,year:t?"numeric":void 0,day:r?"2-digit":void 0}).format(o):"Recent Posts"}},filters:{timeStamp:function(e,t){var n=t.year,r=t.month,o=(t.day,(e=e instanceof Date?e:new Date(e)).getHours()&&e.getMinutes());return Intl.DateTimeFormat(c,{hour12:!1,month:r?void 0:"long",year:n?void 0:"numeric",day:"2-digit",hour:o?"numeric":void 0,minute:o?"2-digit":void 0}).format(e)}}}},DQCr:function(e,t,n){"use strict";var r=n("cGG2");function o(e){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function(e,t,n){if(!t)return e;var i;if(n)i=n(t);else if(r.isURLSearchParams(t))i=t.toString();else{var a=[];r.forEach(t,function(e,t){null!==e&&void 0!==e&&(r.isArray(e)&&(t+="[]"),r.isArray(e)||(e=[e]),r.forEach(e,function(e){r.isDate(e)?e=e.toISOString():r.isObject(e)&&(e=JSON.stringify(e)),a.push(o(t)+"="+o(e))}))}),i=a.join("&")}return i&&(e+=(-1===e.indexOf("?")?"?":"&")+i),e}},EdWd:function(e,t,n){var r=n("ZLTX");"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);n("rjj0")("f0f738d2",r,!1)},FtD3:function(e,t,n){"use strict";var r=n("t8qj");e.exports=function(e,t,n,o,i){var a=new Error(e);return r(a,t,n,o,i)}},GHBc:function(e,t,n){"use strict";var r=n("cGG2");e.exports=r.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function o(e){var r=e;return t&&(n.setAttribute("href",r),r=n.href),n.setAttribute("href",r),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return e=o(window.location.href),function(t){var n=r.isString(t)?o(t):t;return n.protocol===e.protocol&&n.host===e.host}}():function(){return!0}},"JP+z":function(e,t,n){"use strict";e.exports=function(e,t){return function(){for(var n=new Array(arguments.length),r=0;r<n.length;r++)n[r]=arguments[r];return e.apply(t,n)}}},KCLY:function(e,t,n){"use strict";(function(t){var r=n("cGG2"),o=n("5VQ+"),i={"Content-Type":"application/x-www-form-urlencoded"};function a(e,t){!r.isUndefined(e)&&r.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var s,u={adapter:("undefined"!=typeof XMLHttpRequest?s=n("7GwW"):void 0!==t&&(s=n("7GwW")),s),transformRequest:[function(e,t){return o(t,"Content-Type"),r.isFormData(e)||r.isArrayBuffer(e)||r.isBuffer(e)||r.isStream(e)||r.isFile(e)||r.isBlob(e)?e:r.isArrayBufferView(e)?e.buffer:r.isURLSearchParams(e)?(a(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):r.isObject(e)?(a(t,"application/json;charset=utf-8"),JSON.stringify(e)):e}],transformResponse:[function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(e){}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,validateStatus:function(e){return e>=200&&e<300}};u.headers={common:{Accept:"application/json, text/plain, */*"}},r.forEach(["delete","get","head"],function(e){u.headers[e]={}}),r.forEach(["post","put","patch"],function(e){u.headers[e]=r.merge(i)}),e.exports=u}).call(t,n("W2nU"))},Re3r:function(e,t){function n(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}e.exports=function(e){return null!=e&&(n(e)||"function"==typeof(t=e).readFloatLE&&"function"==typeof t.slice&&n(t.slice(0,0))||!!e._isBuffer);var t}},S4re:function(e,t,n){"use strict";var r=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"blog"},[n("h1",{staticClass:"title is-3"},[e._v("\n    "+e._s(e.dateHeader)+"\n  ")]),n("ul",e._l(e.list,function(t){return t.title?n("li",[n("h2",{staticClass:"title is-4"},[n("nuxt-link",{attrs:{to:t.url}},[e._v("\n          "+e._s(t.title)+"\n        ")])],1),t.date?n("h3",{staticClass:"subtitle is-6"},[n("nuxt-link",{attrs:{to:t.url}},[n("i",{staticClass:"fa fa-calendar"}),e._v("  \n          "+e._s(e._f("timeStamp")(t.date,e.$route.params))+"\n        ")])],1):e._e()]):e._e()}))])};r._withStripped=!0;var o={render:r,staticRenderFns:[]};t.a=o},TNV1:function(e,t,n){"use strict";var r=n("cGG2");e.exports=function(e,t,n){return r.forEach(n,function(n){e=n(e,t)}),e}},XmWM:function(e,t,n){"use strict";var r=n("KCLY"),o=n("cGG2"),i=n("fuGk"),a=n("xLtR");function s(e){this.defaults=e,this.interceptors={request:new i,response:new i}}s.prototype.request=function(e){"string"==typeof e&&(e=o.merge({url:arguments[0]},arguments[1])),(e=o.merge(r,this.defaults,{method:"get"},e)).method=e.method.toLowerCase();var t=[a,void 0],n=Promise.resolve(e);for(this.interceptors.request.forEach(function(e){t.unshift(e.fulfilled,e.rejected)}),this.interceptors.response.forEach(function(e){t.push(e.fulfilled,e.rejected)});t.length;)n=n.then(t.shift(),t.shift());return n},o.forEach(["delete","get","head","options"],function(e){s.prototype[e]=function(t,n){return this.request(o.merge(n||{},{method:e,url:t}))}}),o.forEach(["post","put","patch"],function(e){s.prototype[e]=function(t,n,r){return this.request(o.merge(r||{},{method:e,url:t,data:n}))}}),e.exports=s},ZLTX:function(e,t,n){(e.exports=n("YHym")(!1)).push([e.i,"@keyframes spinAround{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}.blog h1{border-bottom:1px solid gray;padding-bottom:.3em}.blog h3 a{color:#a7a7a7}.blog li{margin-bottom:2em}.blog a{text-decoration:none}",""])},cGG2:function(e,t,n){"use strict";var r=n("JP+z"),o=n("Re3r"),i=Object.prototype.toString;function a(e){return"[object Array]"===i.call(e)}function s(e){return null!==e&&"object"==typeof e}function u(e){return"[object Function]"===i.call(e)}function c(e,t){if(null!==e&&void 0!==e)if("object"!=typeof e&&(e=[e]),a(e))for(var n=0,r=e.length;n<r;n++)t.call(null,e[n],n,e);else for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.call(null,e[o],o,e)}e.exports={isArray:a,isArrayBuffer:function(e){return"[object ArrayBuffer]"===i.call(e)},isBuffer:o,isFormData:function(e){return"undefined"!=typeof FormData&&e instanceof FormData},isArrayBufferView:function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer},isString:function(e){return"string"==typeof e},isNumber:function(e){return"number"==typeof e},isObject:s,isUndefined:function(e){return void 0===e},isDate:function(e){return"[object Date]"===i.call(e)},isFile:function(e){return"[object File]"===i.call(e)},isBlob:function(e){return"[object Blob]"===i.call(e)},isFunction:u,isStream:function(e){return s(e)&&u(e.pipe)},isURLSearchParams:function(e){return"undefined"!=typeof URLSearchParams&&e instanceof URLSearchParams},isStandardBrowserEnv:function(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product)&&"undefined"!=typeof window&&"undefined"!=typeof document},forEach:c,merge:function e(){var t={};function n(n,r){"object"==typeof t[r]&&"object"==typeof n?t[r]=e(t[r],n):t[r]=n}for(var r=0,o=arguments.length;r<o;r++)c(arguments[r],n);return t},extend:function(e,t,n){return c(t,function(t,o){e[o]=n&&"function"==typeof t?r(t,n):t}),e},trim:function(e){return e.replace(/^\s*/,"").replace(/\s*$/,"")}}},cWxy:function(e,t,n){"use strict";var r=n("dVOP");function o(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(e){t=e});var n=this;e(function(e){n.reason||(n.reason=new r(e),t(n.reason))})}o.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},o.source=function(){var e;return{token:new o(function(t){e=t}),cancel:e}},e.exports=o},dIwP:function(e,t,n){"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},dVOP:function(e,t,n){"use strict";function r(e){this.message=e}r.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},r.prototype.__CANCEL__=!0,e.exports=r},fuGk:function(e,t,n){"use strict";var r=n("cGG2");function o(){this.handlers=[]}o.prototype.use=function(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},o.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},o.prototype.forEach=function(e){r.forEach(this.handlers,function(t){null!==t&&e(t)})},e.exports=o},mtWM:function(e,t,n){e.exports=n("tIFN")},oJlt:function(e,t,n){"use strict";var r=n("cGG2"),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,i,a={};return e?(r.forEach(e.split("\n"),function(e){if(i=e.indexOf(":"),t=r.trim(e.substr(0,i)).toLowerCase(),n=r.trim(e.substr(i+1)),t){if(a[t]&&o.indexOf(t)>=0)return;a[t]="set-cookie"===t?(a[t]?a[t]:[]).concat([n]):a[t]?a[t]+", "+n:n}}),a):a}},p1b6:function(e,t,n){"use strict";var r=n("cGG2");e.exports=r.isStandardBrowserEnv()?{write:function(e,t,n,o,i,a){var s=[];s.push(e+"="+encodeURIComponent(t)),r.isNumber(n)&&s.push("expires="+new Date(n).toGMTString()),r.isString(o)&&s.push("path="+o),r.isString(i)&&s.push("domain="+i),!0===a&&s.push("secure"),document.cookie=s.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},pBtG:function(e,t,n){"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},pxG4:function(e,t,n){"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},qRfI:function(e,t,n){"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},t8qj:function(e,t,n){"use strict";e.exports=function(e,t,n,r,o){return e.config=t,n&&(e.code=n),e.request=r,e.response=o,e}},tIFN:function(e,t,n){"use strict";var r=n("cGG2"),o=n("JP+z"),i=n("XmWM"),a=n("KCLY");function s(e){var t=new i(e),n=o(i.prototype.request,t);return r.extend(n,i.prototype,t),r.extend(n,t),n}var u=s(a);u.Axios=i,u.create=function(e){return s(r.merge(a,e))},u.Cancel=n("dVOP"),u.CancelToken=n("cWxy"),u.isCancel=n("pBtG"),u.all=function(e){return Promise.all(e)},u.spread=n("pxG4"),e.exports=u,e.exports.default=u},thJu:function(e,t,n){"use strict";var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function o(){this.message="String contains an invalid character"}o.prototype=new Error,o.prototype.code=5,o.prototype.name="InvalidCharacterError",e.exports=function(e){for(var t,n,i=String(e),a="",s=0,u=r;i.charAt(0|s)||(u="=",s%1);a+=u.charAt(63&t>>8-s%1*8)){if((n=i.charCodeAt(s+=.75))>255)throw new o;t=t<<8|n}return a}},xLtR:function(e,t,n){"use strict";var r=n("cGG2"),o=n("TNV1"),i=n("pBtG"),a=n("KCLY"),s=n("dIwP"),u=n("qRfI");function c(e){e.cancelToken&&e.cancelToken.throwIfRequested()}e.exports=function(e){return c(e),e.baseURL&&!s(e.url)&&(e.url=u(e.baseURL,e.url)),e.headers=e.headers||{},e.data=o(e.data,e.headers,e.transformRequest),e.headers=r.merge(e.headers.common||{},e.headers[e.method]||{},e.headers||{}),r.forEach(["delete","get","head","post","put","patch","common"],function(t){delete e.headers[t]}),(e.adapter||a.adapter)(e).then(function(t){return c(e),t.data=o(t.data,t.headers,e.transformResponse),t},function(t){return i(t)||(c(e),t&&t.response&&(t.response.data=o(t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)})}}});
\ No newline at end of file
+webpackJsonp([6],{"21It":function(e,t,n){"use strict";var r=n("FtD3");e.exports=function(e,t,n){var o=n.config.validateStatus;n.status&&o&&!o(n.status)?t(r("Request failed with status code "+n.status,n.config,null,n.request,n)):e(n)}},"5VQ+":function(e,t,n){"use strict";var r=n("cGG2");e.exports=function(e,t){r.forEach(e,function(n,r){r!==t&&r.toUpperCase()===t.toUpperCase()&&(e[t]=n,delete e[r])})}},"7GwW":function(e,t,n){"use strict";var r=n("cGG2"),o=n("21It"),i=n("DQCr"),a=n("oJlt"),s=n("GHBc"),u=n("FtD3"),c="undefined"!=typeof window&&window.btoa&&window.btoa.bind(window)||n("thJu");e.exports=function(e){return new Promise(function(t,f){var p=e.data,l=e.headers;r.isFormData(p)&&delete l["Content-Type"];var d=new XMLHttpRequest,h="onreadystatechange",m=!1;if("undefined"==typeof window||!window.XDomainRequest||"withCredentials"in d||s(e.url)||(d=new window.XDomainRequest,h="onload",m=!0,d.onprogress=function(){},d.ontimeout=function(){}),e.auth){var g=e.auth.username||"",y=e.auth.password||"";l.Authorization="Basic "+c(g+":"+y)}if(d.open(e.method.toUpperCase(),i(e.url,e.params,e.paramsSerializer),!0),d.timeout=e.timeout,d[h]=function(){if(d&&(4===d.readyState||m)&&(0!==d.status||d.responseURL&&0===d.responseURL.indexOf("file:"))){var n="getAllResponseHeaders"in d?a(d.getAllResponseHeaders()):null,r={data:e.responseType&&"text"!==e.responseType?d.response:d.responseText,status:1223===d.status?204:d.status,statusText:1223===d.status?"No Content":d.statusText,headers:n,config:e,request:d};o(t,f,r),d=null}},d.onerror=function(){f(u("Network Error",e,null,d)),d=null},d.ontimeout=function(){f(u("timeout of "+e.timeout+"ms exceeded",e,"ECONNABORTED",d)),d=null},r.isStandardBrowserEnv()){var v=n("p1b6"),w=(e.withCredentials||s(e.url))&&e.xsrfCookieName?v.read(e.xsrfCookieName):void 0;w&&(l[e.xsrfHeaderName]=w)}if("setRequestHeader"in d&&r.forEach(l,function(e,t){void 0===p&&"content-type"===t.toLowerCase()?delete l[t]:d.setRequestHeader(t,e)}),e.withCredentials&&(d.withCredentials=!0),e.responseType)try{d.responseType=e.responseType}catch(t){if("json"!==e.responseType)throw t}"function"==typeof e.onDownloadProgress&&d.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&d.upload&&d.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then(function(e){d&&(d.abort(),f(e),d=null)}),void 0===p&&(p=null),d.send(p)})}},AIuP:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n("CjMp"),o=n("S4re"),i=!1;var a=function(e){i||n("EdWd")},s=n("VU/8")(r.a,o.a,!1,a,null,null);s.options.__file="pages\\blog.vue",t.default=s.exports},CjMp:function(e,t,n){"use strict";var r=n("Xxa5"),o=n.n(r),i=n("exGp"),a=n.n(i),s=n("mtWM"),u=n.n(s),c=(navigator.languages&&navigator.languages[0]||navigator.language||navigator.userLanguage).toLowerCase().split(/[_-]+/)[0];t.a={layout:"sidebar",head:function(){return{title:this.dateHeader}},asyncData:function(){var e=a()(o.a.mark(function e(t){var r,i,a=t.params,s=void 0===a?{}:a,c=(t.query,t.payload);return o.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(r="",i=null,s.year&&(r+=""+s.year,s.month&&(r+="/"+s.month,s.day&&(r+="/"+s.day))),!r.length){e.next=11;break}if(e.t0=c,e.t0){e.next=8;break}return e.next=7,u.a.get("/unide/files/posts/"+r+".json");case 7:e.t0=e.sent.data;case 8:i=e.t0,e.next=14;break;case 11:return e.next=13,n.e(17).then(n.bind(null,"b4ia"));case 13:i=e.sent;case 14:return e.abrupt("return",{list:i.slice().reverse()});case 15:case"end":return e.stop()}},e,this)}));return function(t){return e.apply(this,arguments)}}(),computed:{dateHeader:function(){var e=this.$route.params,t=e.year,n=e.month,r=e.day,o=new Date(Date.UTC(t||2016,n||0,r||1));return t?Intl.DateTimeFormat(c,{month:n?"long":void 0,year:t?"numeric":void 0,day:r?"2-digit":void 0}).format(o):"Recent Posts"}},filters:{timeStamp:function(e,t){var n=t.year,r=t.month,o=(t.day,(e=e instanceof Date?e:new Date(e)).getHours()&&e.getMinutes());return Intl.DateTimeFormat(c,{hour12:!1,month:r?void 0:"long",year:n?void 0:"numeric",day:"2-digit",hour:o?"numeric":void 0,minute:o?"2-digit":void 0}).format(e)}}}},DQCr:function(e,t,n){"use strict";var r=n("cGG2");function o(e){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function(e,t,n){if(!t)return e;var i;if(n)i=n(t);else if(r.isURLSearchParams(t))i=t.toString();else{var a=[];r.forEach(t,function(e,t){null!==e&&void 0!==e&&(r.isArray(e)&&(t+="[]"),r.isArray(e)||(e=[e]),r.forEach(e,function(e){r.isDate(e)?e=e.toISOString():r.isObject(e)&&(e=JSON.stringify(e)),a.push(o(t)+"="+o(e))}))}),i=a.join("&")}return i&&(e+=(-1===e.indexOf("?")?"?":"&")+i),e}},EdWd:function(e,t,n){var r=n("ZLTX");"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);n("rjj0")("f0f738d2",r,!1)},FtD3:function(e,t,n){"use strict";var r=n("t8qj");e.exports=function(e,t,n,o,i){var a=new Error(e);return r(a,t,n,o,i)}},GHBc:function(e,t,n){"use strict";var r=n("cGG2");e.exports=r.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function o(e){var r=e;return t&&(n.setAttribute("href",r),r=n.href),n.setAttribute("href",r),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return e=o(window.location.href),function(t){var n=r.isString(t)?o(t):t;return n.protocol===e.protocol&&n.host===e.host}}():function(){return!0}},"JP+z":function(e,t,n){"use strict";e.exports=function(e,t){return function(){for(var n=new Array(arguments.length),r=0;r<n.length;r++)n[r]=arguments[r];return e.apply(t,n)}}},KCLY:function(e,t,n){"use strict";(function(t){var r=n("cGG2"),o=n("5VQ+"),i={"Content-Type":"application/x-www-form-urlencoded"};function a(e,t){!r.isUndefined(e)&&r.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var s,u={adapter:("undefined"!=typeof XMLHttpRequest?s=n("7GwW"):void 0!==t&&(s=n("7GwW")),s),transformRequest:[function(e,t){return o(t,"Content-Type"),r.isFormData(e)||r.isArrayBuffer(e)||r.isBuffer(e)||r.isStream(e)||r.isFile(e)||r.isBlob(e)?e:r.isArrayBufferView(e)?e.buffer:r.isURLSearchParams(e)?(a(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):r.isObject(e)?(a(t,"application/json;charset=utf-8"),JSON.stringify(e)):e}],transformResponse:[function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(e){}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,validateStatus:function(e){return e>=200&&e<300}};u.headers={common:{Accept:"application/json, text/plain, */*"}},r.forEach(["delete","get","head"],function(e){u.headers[e]={}}),r.forEach(["post","put","patch"],function(e){u.headers[e]=r.merge(i)}),e.exports=u}).call(t,n("W2nU"))},Re3r:function(e,t){function n(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}e.exports=function(e){return null!=e&&(n(e)||"function"==typeof(t=e).readFloatLE&&"function"==typeof t.slice&&n(t.slice(0,0))||!!e._isBuffer);var t}},S4re:function(e,t,n){"use strict";var r=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"blog"},[n("h1",{staticClass:"title is-3"},[e._v("\n    "+e._s(e.dateHeader)+"\n  ")]),n("ul",e._l(e.list,function(t){return t.title?n("li",[n("h2",{staticClass:"title is-4"},[n("nuxt-link",{attrs:{to:t.url}},[e._v("\n          "+e._s(t.title)+"\n        ")])],1),t.date?n("h3",{staticClass:"subtitle is-6"},[n("nuxt-link",{attrs:{to:t.url}},[n("i",{staticClass:"fa fa-calendar"}),e._v("  \n          "+e._s(e._f("timeStamp")(t.date,e.$route.params))+"\n        ")])],1):e._e()]):e._e()}))])};r._withStripped=!0;var o={render:r,staticRenderFns:[]};t.a=o},TNV1:function(e,t,n){"use strict";var r=n("cGG2");e.exports=function(e,t,n){return r.forEach(n,function(n){e=n(e,t)}),e}},XmWM:function(e,t,n){"use strict";var r=n("KCLY"),o=n("cGG2"),i=n("fuGk"),a=n("xLtR");function s(e){this.defaults=e,this.interceptors={request:new i,response:new i}}s.prototype.request=function(e){"string"==typeof e&&(e=o.merge({url:arguments[0]},arguments[1])),(e=o.merge(r,this.defaults,{method:"get"},e)).method=e.method.toLowerCase();var t=[a,void 0],n=Promise.resolve(e);for(this.interceptors.request.forEach(function(e){t.unshift(e.fulfilled,e.rejected)}),this.interceptors.response.forEach(function(e){t.push(e.fulfilled,e.rejected)});t.length;)n=n.then(t.shift(),t.shift());return n},o.forEach(["delete","get","head","options"],function(e){s.prototype[e]=function(t,n){return this.request(o.merge(n||{},{method:e,url:t}))}}),o.forEach(["post","put","patch"],function(e){s.prototype[e]=function(t,n,r){return this.request(o.merge(r||{},{method:e,url:t,data:n}))}}),e.exports=s},ZLTX:function(e,t,n){(e.exports=n("YHym")(!1)).push([e.i,"@keyframes spinAround{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}.blog h1{border-bottom:1px solid gray;padding-bottom:.3em}.blog h3 a{color:#a7a7a7}.blog li{margin-bottom:2em}.blog a{text-decoration:none}",""])},cGG2:function(e,t,n){"use strict";var r=n("JP+z"),o=n("Re3r"),i=Object.prototype.toString;function a(e){return"[object Array]"===i.call(e)}function s(e){return null!==e&&"object"==typeof e}function u(e){return"[object Function]"===i.call(e)}function c(e,t){if(null!==e&&void 0!==e)if("object"!=typeof e&&(e=[e]),a(e))for(var n=0,r=e.length;n<r;n++)t.call(null,e[n],n,e);else for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.call(null,e[o],o,e)}e.exports={isArray:a,isArrayBuffer:function(e){return"[object ArrayBuffer]"===i.call(e)},isBuffer:o,isFormData:function(e){return"undefined"!=typeof FormData&&e instanceof FormData},isArrayBufferView:function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer},isString:function(e){return"string"==typeof e},isNumber:function(e){return"number"==typeof e},isObject:s,isUndefined:function(e){return void 0===e},isDate:function(e){return"[object Date]"===i.call(e)},isFile:function(e){return"[object File]"===i.call(e)},isBlob:function(e){return"[object Blob]"===i.call(e)},isFunction:u,isStream:function(e){return s(e)&&u(e.pipe)},isURLSearchParams:function(e){return"undefined"!=typeof URLSearchParams&&e instanceof URLSearchParams},isStandardBrowserEnv:function(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product)&&"undefined"!=typeof window&&"undefined"!=typeof document},forEach:c,merge:function e(){var t={};function n(n,r){"object"==typeof t[r]&&"object"==typeof n?t[r]=e(t[r],n):t[r]=n}for(var r=0,o=arguments.length;r<o;r++)c(arguments[r],n);return t},extend:function(e,t,n){return c(t,function(t,o){e[o]=n&&"function"==typeof t?r(t,n):t}),e},trim:function(e){return e.replace(/^\s*/,"").replace(/\s*$/,"")}}},cWxy:function(e,t,n){"use strict";var r=n("dVOP");function o(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(e){t=e});var n=this;e(function(e){n.reason||(n.reason=new r(e),t(n.reason))})}o.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},o.source=function(){var e;return{token:new o(function(t){e=t}),cancel:e}},e.exports=o},dIwP:function(e,t,n){"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},dVOP:function(e,t,n){"use strict";function r(e){this.message=e}r.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},r.prototype.__CANCEL__=!0,e.exports=r},fuGk:function(e,t,n){"use strict";var r=n("cGG2");function o(){this.handlers=[]}o.prototype.use=function(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},o.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},o.prototype.forEach=function(e){r.forEach(this.handlers,function(t){null!==t&&e(t)})},e.exports=o},mtWM:function(e,t,n){e.exports=n("tIFN")},oJlt:function(e,t,n){"use strict";var r=n("cGG2"),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,i,a={};return e?(r.forEach(e.split("\n"),function(e){if(i=e.indexOf(":"),t=r.trim(e.substr(0,i)).toLowerCase(),n=r.trim(e.substr(i+1)),t){if(a[t]&&o.indexOf(t)>=0)return;a[t]="set-cookie"===t?(a[t]?a[t]:[]).concat([n]):a[t]?a[t]+", "+n:n}}),a):a}},p1b6:function(e,t,n){"use strict";var r=n("cGG2");e.exports=r.isStandardBrowserEnv()?{write:function(e,t,n,o,i,a){var s=[];s.push(e+"="+encodeURIComponent(t)),r.isNumber(n)&&s.push("expires="+new Date(n).toGMTString()),r.isString(o)&&s.push("path="+o),r.isString(i)&&s.push("domain="+i),!0===a&&s.push("secure"),document.cookie=s.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},pBtG:function(e,t,n){"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},pxG4:function(e,t,n){"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},qRfI:function(e,t,n){"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},t8qj:function(e,t,n){"use strict";e.exports=function(e,t,n,r,o){return e.config=t,n&&(e.code=n),e.request=r,e.response=o,e}},tIFN:function(e,t,n){"use strict";var r=n("cGG2"),o=n("JP+z"),i=n("XmWM"),a=n("KCLY");function s(e){var t=new i(e),n=o(i.prototype.request,t);return r.extend(n,i.prototype,t),r.extend(n,t),n}var u=s(a);u.Axios=i,u.create=function(e){return s(r.merge(a,e))},u.Cancel=n("dVOP"),u.CancelToken=n("cWxy"),u.isCancel=n("pBtG"),u.all=function(e){return Promise.all(e)},u.spread=n("pxG4"),e.exports=u,e.exports.default=u},thJu:function(e,t,n){"use strict";var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function o(){this.message="String contains an invalid character"}o.prototype=new Error,o.prototype.code=5,o.prototype.name="InvalidCharacterError",e.exports=function(e){for(var t,n,i=String(e),a="",s=0,u=r;i.charAt(0|s)||(u="=",s%1);a+=u.charAt(63&t>>8-s%1*8)){if((n=i.charCodeAt(s+=.75))>255)throw new o;t=t<<8|n}return a}},xLtR:function(e,t,n){"use strict";var r=n("cGG2"),o=n("TNV1"),i=n("pBtG"),a=n("KCLY"),s=n("dIwP"),u=n("qRfI");function c(e){e.cancelToken&&e.cancelToken.throwIfRequested()}e.exports=function(e){return c(e),e.baseURL&&!s(e.url)&&(e.url=u(e.baseURL,e.url)),e.headers=e.headers||{},e.data=o(e.data,e.headers,e.transformRequest),e.headers=r.merge(e.headers.common||{},e.headers[e.method]||{},e.headers||{}),r.forEach(["delete","get","head","post","put","patch","common"],function(t){delete e.headers[t]}),(e.adapter||a.adapter)(e).then(function(t){return c(e),t.data=o(t.data,t.headers,e.transformResponse),t},function(t){return i(t)||(c(e),t&&t.response&&(t.response.data=o(t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)})}}});
\ No newline at end of file
diff --git a/files/pages_faq.af7b946e7573917bdb35.js b/files/pages_faq.ddd0c6c0a2a46ba04afd.js
similarity index 98%
rename from files/pages_faq.af7b946e7573917bdb35.js
rename to files/pages_faq.ddd0c6c0a2a46ba04afd.js
index afc1db4..b37eacb 100644
--- a/files/pages_faq.af7b946e7573917bdb35.js
+++ b/files/pages_faq.ddd0c6c0a2a46ba04afd.js
@@ -1 +1 @@
-webpackJsonp([6],{"77aO":function(e,t,a){"use strict";t.a={props:{collapsed:{type:Boolean,default:!1}},data:function(){return{expanded:!this.collapsed,transitioning:!1}},watch:{collapsed:function(e){this.expanded=!e}},methods:{beforeenter:function(e){this.transitioning=!0,e.style.height=0},enter:function(e){e.style.height=e.scrollHeight+"px"},afterenter:function(e){e.style.height="",this.transitioning=!1},beforeleave:function(e){this.transitioning=!0,e.style.height=e.offsetHeight+"px",e.offsetHeight},leave:function(e){e.style.height=0,e.offsetHeight},afterleave:function(e){this.transitioning=!1},toggle:function(){this.transitioning||(this.expanded=!this.expanded,this.$emit(this.expanded?"expanding":"collapsing",this.id))}}}},LnKn:function(e,t,a){"use strict";var n=a("T9Hf");t.a={layout:"sidebar",head:function(){return{title:"Frequently asked questions"}},data:function(){return{faqs:[{question:'What does "Unide" stand for?',answer:"The projects name is derived from understand industry devices. Other ideas like connect industry machines turned out to have meanings in foreign languages or being trademarked already.<br/>Regarding the logo: Unide and PPMP's goal is to enable you to connect machines and receive their measurements / alerts. The logo represents that. It has you ('<i>U</i>') highlighted and connects to rings. As a side note, we found that the words almost look like <i>you-nice</i>."},{question:"What's the difference between Unide and PPMP?",answer:'The Production Performance Mangement Protocol (PPMP) is the name of the structure of the <a href="specification/">payload</a> whereas Unide is the project that aims to provide sample implementations and further development of this protocol in and with the Eclipse Open Source community. Nevertheless, PPMP is an open suggestion, and everyone is welcome to using it, even without contributing to the Unide project.'},{question:"Why introducing another industry protocol?",answer:"There are already plenty of transport protocols (REST, AMQP, etc.) available. PPMP aims to provide the very industry specific semantic structure for their payload. So it aims to complete such IoT transport infrastructure and bridge the gap to the manufacturing domain. OPC-DA/UA on the other hand covers full service oriented architecture, security concerns and information model, which makes it more complex and costly to implement and operate. In some use cases, this is not necessary."},{question:"Why have you choosen JSON as syntax?",answer:"JSON is a good fit regarding understandability and size. Having a structured and comprehensible basis is the first step for acceptance in the industry. In the spirit of Donald E. Knuth (\"<a href='http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.103.6084'><i>premature optimization is the root of all evil</i></a>\"), further compacting is possible in a later stage."},{question:"Why are time and measurement points separated in multiple arrays?",answer:"We have discussed multiple options for <a href='specification'>series</a>: having an array of<br/>tupels (<code>[[0, 23.34],[...],...]</code>),<br/>plain objects (<code>[{time: 0, temperature: 23.34}, {...}...]</code>),<br/>objects with time as key (<code>{ \"0\": [23.34,...],...}</code>) and other.<br/>When parsing, we had to recognize, that unsigned long int for time and floating point measurements are of different types. Also, all former variants are more verbose due to additional brackets, commas or quotation marks. We believe that the current version is a good compromise between readability and structure."},{question:"I'm interested in Unide/PPMP. How can I contribute?",answer:'The first goal of Unide is to provide sample client/server implementations of PPMP. Secondly, we\'re looking forward to improving PPMP in future versions together with the eclipse community.<br/>If you want to contribute with source code, use cases or implementing it in your devices, let us know and discuss in the <a href="https://github.com/eclipse/unide">unide forum</a> or by forking / filing an issue on <a href="https://github.com/eclipse/unide">github</a>.'},{question:"Why have you included content-spec uri, if that can also be expressed in the a REST url already?",answer:'<a href="specification">content-spec</a> is included in the payload, because PPMP does not rely on a specific transport protocol (like REST).'}]}},components:{card:n.a}}},MMVg:function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"faq"},[a("h1",{staticClass:"title is-3"},[e._v("\n    Frequently Asked Questions\n  ")]),e._m(0),a("div",{staticClass:"accordion"},e._l(e.faqs,function(t,n){return a("card",{key:n,attrs:{collapsed:!0}},[a("template",{slot:"header"},[e._v("\n        "+e._s(t.question)+"\n      ")]),a("div",{domProps:{innerHTML:e._s(t.answer)}})],2)}))])};n._withStripped=!0;var i={render:n,staticRenderFns:[function(){var e=this.$createElement,t=this._self._c||e;return t("div",[this._v("\n    We assembled a few frequently asked questions about the Production Performance Protocol (PPMP) and the Unide project. You're welcome to raise your questions in the "),t("a",{attrs:{href:"https://www.eclipse.org/forums/index.php/f/348/"}},[this._v("Unide forum")]),this._v(".\n  ")])}]};t.a=i},NAEW:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=a("LnKn"),i=a("MMVg"),o=!1;var s=function(e){o||a("Q4uz")},r=a("VU/8")(n.a,i.a,!1,s,null,null);r.options.__file="pages\\faq.vue",t.default=r.exports},NVTU:function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"card collapsibleCard",class:{collapsed:!e.expanded}},[e.$slots.header?a("header",{staticClass:"card-header",on:{click:function(t){t.preventDefault(),e.toggle()}}},[a("p",{staticClass:"card-header-title"},[!e.$slots.headerCollapsed||e.expanded?e._t("header"):e._t("headerCollapsed")],2),a("a",{staticClass:"card-header-icon"},[a("span",{staticClass:"icon"},[a("i",{staticClass:"fa",class:{"fa-angle-down":e.expanded,"fa-angle-up":!e.expanded}})])])]):e._e(),a("transition",{attrs:{name:"rollup","leave-active-class":"collapsing","enter-active-class":"collapsing"},on:{"before-leave":e.beforeleave,leave:e.leave,"after-leave":e.afterleave,"before-enter":e.beforeenter,enter:e.enter,"after-enter":e.afterenter}},[a("div",{directives:[{name:"show",rawName:"v-show",value:e.expanded,expression:"expanded"}]},[a("div",{staticClass:"card-content"},[e._t("default")],2)])])],1)};n._withStripped=!0;var i={render:n,staticRenderFns:[]};t.a=i},Q4uz:function(e,t,a){var n=a("Vbq/");"string"==typeof n&&(n=[[e.i,n,""]]),n.locals&&(e.exports=n.locals);a("rjj0")("25f4887a",n,!1)},T9Hf:function(e,t,a){"use strict";var n=a("77aO"),i=a("NVTU"),o=!1;var s=function(e){o||a("WVEp")},r=a("VU/8")(n.a,i.a,!1,s,null,null);r.options.__file="components\\collapsibleCard.vue",t.a=r.exports},"Vbq/":function(e,t,a){(e.exports=a("YHym")(!1)).push([e.i,"@keyframes spinAround{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}",""])},WVEp:function(e,t,a){var n=a("a3hs");"string"==typeof n&&(n=[[e.i,n,""]]),n.locals&&(e.exports=n.locals);a("rjj0")("52cedc5e",n,!1)},a3hs:function(e,t,a){(e.exports=a("YHym")(!1)).push([e.i,"@keyframes spinAround{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}.card.collapsibleCard>header{cursor:pointer;background-color:#f5f5f5;border-bottom:1px solid hsla(0,0%,4%,.1)}.card.collapsibleCard>header .card-header-icon{text-decoration:none}.card.collapsibleCard>header .card-header-title{font-weight:400}.card.collapsibleCard>header p{margin-bottom:0}.card.collapsibleCard.collapsed header{border-bottom:none}.card.collapsibleCard>div.collapsing{position:relative;height:0;overflow:hidden;display:block;transition-property:height;transition-duration:.35s;transition-timing-function:ease}",""])}});
\ No newline at end of file
+webpackJsonp([9],{"77aO":function(e,t,a){"use strict";t.a={props:{collapsed:{type:Boolean,default:!1}},data:function(){return{expanded:!this.collapsed,transitioning:!1}},watch:{collapsed:function(e){this.expanded=!e}},methods:{beforeenter:function(e){this.transitioning=!0,e.style.height=0},enter:function(e){e.style.height=e.scrollHeight+"px"},afterenter:function(e){e.style.height="",this.transitioning=!1},beforeleave:function(e){this.transitioning=!0,e.style.height=e.offsetHeight+"px",e.offsetHeight},leave:function(e){e.style.height=0,e.offsetHeight},afterleave:function(e){this.transitioning=!1},toggle:function(){this.transitioning||(this.expanded=!this.expanded,this.$emit(this.expanded?"expanding":"collapsing",this.id))}}}},LnKn:function(e,t,a){"use strict";var n=a("T9Hf");t.a={layout:"sidebar",head:function(){return{title:"Frequently asked questions"}},data:function(){return{faqs:[{question:'What does "Unide" stand for?',answer:"The projects name is derived from understand industry devices. Other ideas like connect industry machines turned out to have meanings in foreign languages or being trademarked already.<br/>Regarding the logo: Unide and PPMP's goal is to enable you to connect machines and receive their measurements / alerts. The logo represents that. It has you ('<i>U</i>') highlighted and connects to rings. As a side note, we found that the words almost look like <i>you-nice</i>."},{question:"What's the difference between Unide and PPMP?",answer:'The Production Performance Mangement Protocol (PPMP) is the name of the structure of the <a href="specification/">payload</a> whereas Unide is the project that aims to provide sample implementations and further development of this protocol in and with the Eclipse Open Source community. Nevertheless, PPMP is an open suggestion, and everyone is welcome to using it, even without contributing to the Unide project.'},{question:"Why introducing another industry protocol?",answer:"There are already plenty of transport protocols (REST, AMQP, etc.) available. PPMP aims to provide the very industry specific semantic structure for their payload. So it aims to complete such IoT transport infrastructure and bridge the gap to the manufacturing domain. OPC-DA/UA on the other hand covers full service oriented architecture, security concerns and information model, which makes it more complex and costly to implement and operate. In some use cases, this is not necessary."},{question:"Why have you choosen JSON as syntax?",answer:"JSON is a good fit regarding understandability and size. Having a structured and comprehensible basis is the first step for acceptance in the industry. In the spirit of Donald E. Knuth (\"<a href='http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.103.6084'><i>premature optimization is the root of all evil</i></a>\"), further compacting is possible in a later stage."},{question:"Why are time and measurement points separated in multiple arrays?",answer:"We have discussed multiple options for <a href='specification'>series</a>: having an array of<br/>tupels (<code>[[0, 23.34],[...],...]</code>),<br/>plain objects (<code>[{time: 0, temperature: 23.34}, {...}...]</code>),<br/>objects with time as key (<code>{ \"0\": [23.34,...],...}</code>) and other.<br/>When parsing, we had to recognize, that unsigned long int for time and floating point measurements are of different types. Also, all former variants are more verbose due to additional brackets, commas or quotation marks. We believe that the current version is a good compromise between readability and structure."},{question:"I'm interested in Unide/PPMP. How can I contribute?",answer:'The first goal of Unide is to provide sample client/server implementations of PPMP. Secondly, we\'re looking forward to improving PPMP in future versions together with the eclipse community.<br/>If you want to contribute with source code, use cases or implementing it in your devices, let us know and discuss in the <a href="https://github.com/eclipse/unide">unide forum</a> or by forking / filing an issue on <a href="https://github.com/eclipse/unide">github</a>.'},{question:"Why have you included content-spec uri, if that can also be expressed in the a REST url already?",answer:'<a href="specification">content-spec</a> is included in the payload, because PPMP does not rely on a specific transport protocol (like REST).'}]}},components:{card:n.a}}},MMVg:function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"faq"},[a("h1",{staticClass:"title is-3"},[e._v("\n    Frequently Asked Questions\n  ")]),e._m(0),a("div",{staticClass:"accordion"},e._l(e.faqs,function(t,n){return a("card",{key:n,attrs:{collapsed:!0}},[a("template",{slot:"header"},[e._v("\n        "+e._s(t.question)+"\n      ")]),a("div",{domProps:{innerHTML:e._s(t.answer)}})],2)}))])};n._withStripped=!0;var i={render:n,staticRenderFns:[function(){var e=this.$createElement,t=this._self._c||e;return t("div",[this._v("\n    We assembled a few frequently asked questions about the Production Performance Protocol (PPMP) and the Unide project. You're welcome to raise your questions in the "),t("a",{attrs:{href:"https://www.eclipse.org/forums/index.php/f/348/"}},[this._v("Unide forum")]),this._v(".\n  ")])}]};t.a=i},NAEW:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=a("LnKn"),i=a("MMVg"),o=!1;var s=function(e){o||a("Q4uz")},r=a("VU/8")(n.a,i.a,!1,s,null,null);r.options.__file="pages\\faq.vue",t.default=r.exports},NVTU:function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"card collapsibleCard",class:{collapsed:!e.expanded}},[e.$slots.header?a("header",{staticClass:"card-header",on:{click:function(t){t.preventDefault(),e.toggle()}}},[a("p",{staticClass:"card-header-title"},[!e.$slots.headerCollapsed||e.expanded?e._t("header"):e._t("headerCollapsed")],2),a("a",{staticClass:"card-header-icon"},[a("span",{staticClass:"icon"},[a("i",{staticClass:"fa",class:{"fa-angle-down":e.expanded,"fa-angle-up":!e.expanded}})])])]):e._e(),a("transition",{attrs:{name:"rollup","leave-active-class":"collapsing","enter-active-class":"collapsing"},on:{"before-leave":e.beforeleave,leave:e.leave,"after-leave":e.afterleave,"before-enter":e.beforeenter,enter:e.enter,"after-enter":e.afterenter}},[a("div",{directives:[{name:"show",rawName:"v-show",value:e.expanded,expression:"expanded"}]},[a("div",{staticClass:"card-content"},[e._t("default")],2)])])],1)};n._withStripped=!0;var i={render:n,staticRenderFns:[]};t.a=i},Q4uz:function(e,t,a){var n=a("Vbq/");"string"==typeof n&&(n=[[e.i,n,""]]),n.locals&&(e.exports=n.locals);a("rjj0")("25f4887a",n,!1)},T9Hf:function(e,t,a){"use strict";var n=a("77aO"),i=a("NVTU"),o=!1;var s=function(e){o||a("WVEp")},r=a("VU/8")(n.a,i.a,!1,s,null,null);r.options.__file="components\\collapsibleCard.vue",t.a=r.exports},"Vbq/":function(e,t,a){(e.exports=a("YHym")(!1)).push([e.i,"@keyframes spinAround{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}",""])},WVEp:function(e,t,a){var n=a("a3hs");"string"==typeof n&&(n=[[e.i,n,""]]),n.locals&&(e.exports=n.locals);a("rjj0")("52cedc5e",n,!1)},a3hs:function(e,t,a){(e.exports=a("YHym")(!1)).push([e.i,"@keyframes spinAround{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}.card.collapsibleCard>header{cursor:pointer;background-color:#f5f5f5;border-bottom:1px solid hsla(0,0%,4%,.1)}.card.collapsibleCard>header .card-header-icon{text-decoration:none}.card.collapsibleCard>header .card-header-title{font-weight:400}.card.collapsibleCard>header p{margin-bottom:0}.card.collapsibleCard.collapsed header{border-bottom:none}.card.collapsibleCard>div.collapsing{position:relative;height:0;overflow:hidden;display:block;transition-property:height;transition-duration:.35s;transition-timing-function:ease}",""])}});
\ No newline at end of file
diff --git a/files/pages_index.7d76ce931d19b81f54ec.js b/files/pages_index.7d76ce931d19b81f54ec.js
deleted file mode 100644
index 27efa2c..0000000
--- a/files/pages_index.7d76ce931d19b81f54ec.js
+++ /dev/null
@@ -1 +0,0 @@
-webpackJsonp([9],{"/TYz":function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=i("iA8U"),s=!1;var n=function(e){s||i("DDjm")},o=i("VU/8")(null,a.a,!1,n,null,null);o.options.__file="pages\\index.vue",t.default=o.exports},DDjm:function(e,t,i){var a=i("Kc09");"string"==typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);i("rjj0")("24fa40f9",a,!1)},Kc09:function(e,t,i){(e.exports=i("YHym")(!1)).push([e.i,".home h2{margin-top:1rem}.home .card{max-width:33%;margin:0 1rem 1rem}.home .card .card-content{padding:.5rem;font-size:.75rem}.home .card.is-pulled-left{margin-left:0}.home .card.is-pulled-right{margin-right:0}.home .card.is-pulled-right .card-content{text-align:right}",""])},iA8U:function(e,t,i){"use strict";var a=function(){var e=this.$createElement;this._self._c;return this._m(0)};a._withStripped=!0;var s={render:a,staticRenderFns:[function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"home"},[t("div",[t("h1",{staticClass:"title is-3"},[this._v("\n      Understand Industry devices\n    ")]),t("div",{staticClass:"card is-pulled-right"},[t("div",{staticClass:"card-image"},[t("figure",{staticClass:"image"},[t("img",{attrs:{src:"images/languages.png",alt:"Overview Languages",title:"Overview Languages"}})])]),t("div",{staticClass:"card-content"},[this._v("Languages of the world")])]),t("p",{staticClass:"is-clearfix"},[this._v("\n      Imagine the following: You go on vacation to a foreign country and want to get by. Usually you will neither have the time nor the resources to learn a new language for each trip. Luckily this is not necessary. A handful of simple phrases such as "),t("i",[this._v("hello")]),this._v(", "),t("i",[this._v("I am hungry")]),this._v(", etc. are already sufficient to cope with many situations. To have such phrases at hand you don’t need to be fluent in a language, a mini phrase book will already cover a good portion. Thus, to master common situations in different languages you will be well served by a collection of mini phrase books in different languages. \n    ")]),t("div",{staticClass:"card is-pulled-left"},[t("div",{staticClass:"card-image"},[t("figure",{staticClass:"image"},[t("img",{attrs:{src:"images/machines.jpg",alt:"EDM machines",title:"EDM machines"}})])]),t("div",{staticClass:"card-content"},[this._v("Machines in production")])]),t("p",{staticClass:"is-clearfix"},[this._v("\n    A similar experience we face in Industry 4.0: Imagine you are a system integrator, you want to realize a monitoring application for plants of a manufacturer and, since the Eclipse iot stack realizes a good portion of functionality you need to implement, you want to build your application on top of it. It would really help you if you can communicate with the machines on a simple, commonly understood protocol that is easily processible by the existing stack. However, there are a lot of different machines out there, using a lot of different languages and accents. Older machines especially do not speak new protocols (e.g. OPC-UA). Yet, we need to understand how to monitor their condition or interpret specific measurements."),t("br"),this._v("\n    A simple approach to send and understand such industry-specific content implemented for multiple systems would ease the use of the existing Eclipse iot stack and thereby help a lot on the way to a connected industry.\n    ")])]),t("div",[t("div",{staticClass:"card is-pulled-right"},[t("div",{staticClass:"card-image"},[t("figure",{staticClass:"image"},[t("img",{attrs:{src:"images/analysis.jpg",alt:"Cooperation",title:"Cooperation"}})])]),t("div",{staticClass:"card-content"},[this._v("Collaboration with partner")])]),t("h2",{staticClass:"title is-4"},[this._v("Production Performance Management Protocol ("),t("i",[this._v("PPMP")]),this._v(")")]),t("p",{staticClass:"is-clearfix"},[this._v("\n    Through hands-on experience and collaboration with customers and partners we learned which information is key in understanding industry devices. For example, when sending measurements, the currently produced part or lot number together with machine identification are crucial to get any useful interpretation out of the information."),t("br"),this._v("\n    We started to capture this information in a simple payload specification and just like in the introducing language example where you can use phrases via phone, letter or in person, the payload is meant to be sent over different protocols (REST, MQTT, AMQP). This payload is the Production Performance Management Protocol ("),t("i",[this._v("PPMP")]),this._v(").\n    ")]),t("div",{staticClass:"card is-pulled-left"},[t("div",{staticClass:"card-image"},[t("figure",{staticClass:"image"},[t("img",{attrs:{src:"images/eclipse-426x100.png",alt:"Eclipse logo",title:"Eclipse logo"}})])])]),t("p",[this._v("\n    In order to, first, leverage the Eclipse IoT stack in Industry 4.0 scenarios and, second, build a lively community around the specification, we consider the Eclipse iot working group as the premier place to host Unide. \n    ")])])])}]};t.a=s}});
\ No newline at end of file
diff --git a/files/pages_index.922f1427ed81a1db7207.js b/files/pages_index.922f1427ed81a1db7207.js
new file mode 100644
index 0000000..023aa9b
--- /dev/null
+++ b/files/pages_index.922f1427ed81a1db7207.js
@@ -0,0 +1 @@
+webpackJsonp([12],{"/TYz":function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=i("iA8U"),s=!1;var n=function(e){s||i("DDjm")},o=i("VU/8")(null,a.a,!1,n,null,null);o.options.__file="pages\\index.vue",t.default=o.exports},DDjm:function(e,t,i){var a=i("Kc09");"string"==typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);i("rjj0")("24fa40f9",a,!1)},Kc09:function(e,t,i){(e.exports=i("YHym")(!1)).push([e.i,".home h2{margin-top:1rem}.home .card{max-width:33%;margin:0 1rem 1rem}.home .card .card-content{padding:.5rem;font-size:.75rem}.home .card.is-pulled-left{margin-left:0}.home .card.is-pulled-right{margin-right:0}.home .card.is-pulled-right .card-content{text-align:right}",""])},iA8U:function(e,t,i){"use strict";var a=function(){var e=this.$createElement;this._self._c;return this._m(0)};a._withStripped=!0;var s={render:a,staticRenderFns:[function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"home"},[t("div",[t("h1",{staticClass:"title is-3"},[this._v("\n      Understand Industry devices\n    ")]),t("div",{staticClass:"card is-pulled-right"},[t("div",{staticClass:"card-image"},[t("figure",{staticClass:"image"},[t("img",{attrs:{src:"images/languages.png",alt:"Overview Languages",title:"Overview Languages"}})])]),t("div",{staticClass:"card-content"},[this._v("Languages of the world")])]),t("p",{staticClass:"is-clearfix"},[this._v("\n      Imagine the following: You go on vacation to a foreign country and want to get by. Usually you will neither have the time nor the resources to learn a new language for each trip. Luckily this is not necessary. A handful of simple phrases such as "),t("i",[this._v("hello")]),this._v(", "),t("i",[this._v("I am hungry")]),this._v(", etc. are already sufficient to cope with many situations. To have such phrases at hand you don’t need to be fluent in a language, a mini phrase book will already cover a good portion. Thus, to master common situations in different languages you will be well served by a collection of mini phrase books in different languages. \n    ")]),t("div",{staticClass:"card is-pulled-left"},[t("div",{staticClass:"card-image"},[t("figure",{staticClass:"image"},[t("img",{attrs:{src:"images/machines.jpg",alt:"EDM machines",title:"EDM machines"}})])]),t("div",{staticClass:"card-content"},[this._v("Machines in production")])]),t("p",{staticClass:"is-clearfix"},[this._v("\n    A similar experience we face in Industry 4.0: Imagine you are a system integrator, you want to realize a monitoring application for plants of a manufacturer and, since the Eclipse iot stack realizes a good portion of functionality you need to implement, you want to build your application on top of it. It would really help you if you can communicate with the machines on a simple, commonly understood protocol that is easily processible by the existing stack. However, there are a lot of different machines out there, using a lot of different languages and accents. Older machines especially do not speak new protocols (e.g. OPC-UA). Yet, we need to understand how to monitor their condition or interpret specific measurements."),t("br"),this._v("\n    A simple approach to send and understand such industry-specific content implemented for multiple systems would ease the use of the existing Eclipse iot stack and thereby help a lot on the way to a connected industry.\n    ")])]),t("div",[t("div",{staticClass:"card is-pulled-right"},[t("div",{staticClass:"card-image"},[t("figure",{staticClass:"image"},[t("img",{attrs:{src:"images/analysis.jpg",alt:"Cooperation",title:"Cooperation"}})])]),t("div",{staticClass:"card-content"},[this._v("Collaboration with partner")])]),t("h2",{staticClass:"title is-4"},[this._v("Production Performance Management Protocol ("),t("i",[this._v("PPMP")]),this._v(")")]),t("p",{staticClass:"is-clearfix"},[this._v("\n    Through hands-on experience and collaboration with customers and partners we learned which information is key in understanding industry devices. For example, when sending measurements, the currently produced part or lot number together with machine identification are crucial to get any useful interpretation out of the information."),t("br"),this._v("\n    We started to capture this information in a simple payload specification and just like in the introducing language example where you can use phrases via phone, letter or in person, the payload is meant to be sent over different protocols (REST, MQTT, AMQP). This payload is the Production Performance Management Protocol ("),t("i",[this._v("PPMP")]),this._v(").\n    ")]),t("div",{staticClass:"card is-pulled-left"},[t("div",{staticClass:"card-image"},[t("figure",{staticClass:"image"},[t("img",{attrs:{src:"images/eclipse-426x100.png",alt:"Eclipse logo",title:"Eclipse logo"}})])])]),t("p",[this._v("\n    In order to, first, leverage the Eclipse IoT stack in Industry 4.0 scenarios and, second, build a lively community around the specification, we consider the Eclipse iot working group as the premier place to host Unide. \n    ")])])])}]};t.a=s}});
\ No newline at end of file
diff --git a/files/pages_proposal.05a0b52aa840e2ad9ee2.js b/files/pages_proposal.60a77f13238c99a592be.js
similarity index 98%
rename from files/pages_proposal.05a0b52aa840e2ad9ee2.js
rename to files/pages_proposal.60a77f13238c99a592be.js
index 7ace982..b36dfdc 100644
--- a/files/pages_proposal.05a0b52aa840e2ad9ee2.js
+++ b/files/pages_proposal.60a77f13238c99a592be.js
@@ -1 +1 @@
-webpackJsonp([10],{cq3G:function(e,t,i){"use strict";var a=function(){var e=this.$createElement;this._self._c;return this._m(0)};a._withStripped=!0;var s={render:a,staticRenderFns:[function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"proposal content"},[t("h1",[this._v("\n  What is Unide?\n  ")]),t("p",[this._v("Noticeably in the recent years, there’s a continuous increase in demand, price pressure and complexity in manufacturing. Things need to move faster, be more flexible, and fulfill higher quality standards. Often, optimization in this regard is referred to as Production Performance Management (PPM). The basis for this optimization is information from the machines and devices related to a product, such as:")]),t("ul",[t("li",[this._v("Torque and angle for a tightening process")]),t("li",[this._v("Influx / efflux of throttle plate test station")]),t("li",[this._v("Energy consumption of spindles in a cutting process")])]),t("p",[this._v("Nowadays, brand new machines and software are often shipped with powerful communication capabilities. For older machines, smaller factories and SMEs (Small and Medium Enterprises), it can be a challenge to catch up with the complex IT standards that come along. In fact, sometimes the hardware itself imposes limits.")]),t("p",[this._v("Nevertheless, in a manufacturing environment, monitoring makes most sense if there are no blind spots. To achieve that, upgrading machines and software is one option, retrofitting another. For the latter, the hurdle should be as low as possible. Yet, there should be a few guidelines for a one-way exchange of the most necessary information (machine messages, measurements):")]),t("p",[this._v("The structure of the data shall be:")]),t("ul",[t("li",[this._v("flexible enough to be carried via multiple protocols,"),t("br"),this._v("in order to not reinvent the wheel and leverage on existing technology")]),t("li",[this._v("similar in each case,"),t("br"),this._v("to be able to use the same software to interpret the data")]),t("li",[this._v("easily understandable,"),t("br"),this._v("so that implementation in a custom environment won’t be a hurdle")]),t("li",[this._v("as simple as possible,"),t("br"),this._v("to not produce an opinionated framework")]),t("li",[this._v("and yet containing enough information for the use cases,"),t("br"),this._v("to fulfill the functional requirements")])]),t("p",[this._v("We decided the least common denominator of necessary information are the mandatory fields, common relevant information to be optional, and the possibility for further extension points through metadata.")]),t("h2",[this._v("\n    Industry benefits of Unide\n  ")]),t("p",[this._v("This open source project aims to make PPM affordable for smaller organizations by reducing cost and complexity of data communication. Through sample implementations of a simple information structure (Production Performance Management Protocol - PPMP) tailored to manufacturing environments, we want to encourage the community to use, share, and evolve this structure together.")]),t("p",[this._v("PPMP has already been introduced as part of a PPM testbed at a medium-sized Bosch plant, working with many SMEs as partners and suppliers. Furthermore, this testbed aims to create an ecosystem which allows SMEs and larger companies to collaborate efficiently.")]),t("p",[this._v("The PPMP takes an important role by ensuring interoperability between different types of devices and software. It is designed to gather and aggregate machine and sensor data from different devices. It focuses on defining the JSON payload which can be transferred via a variety of transports (REST, AMQP, MQTT). The primary goals of PPMP are:")]),t("ol",[t("li",[this._v("Integrating devices (across domains; e.g. manufacturing or energy) for data aggregation and gathering purposes")]),t("li",[this._v("Providing a very lightweight and easy-to-use solution for small and medium-sized enterprises (SMEs)")])]),t("h1",[this._v("\n    Scope\n  ")]),t("p",[this._v("The Eclipse Unide project publishes the current version of Production Performance Management Protocol (PPMP) and develops simple server/client implementations. The implementations store the payloads in a database and displays them through a simple user interface. Everyone can then use these samples for their custom condition monitoring applications.")]),t("p",[this._v("The project will contain:")]),t("p",[t("em",[this._v("PPMP Specification:")])]),t("ul",[t("li",[this._v("Machine message and measurement interfaces")]),t("li",[this._v("JSON based")]),t("li",[this._v("Versioned")])]),t("p",[t("em",[this._v("Client:")])]),t("ul",[t("li",[this._v("Chrome / nw.js App")]),t("li",[this._v("For Industry Machines and Devices")]),t("li",[this._v("Node.js/Python client running on Raspberry Pi")])]),t("p",[t("em",[this._v("Server:")])]),t("ul",[t("li",[this._v("(REST) Server including persistence and simple data visualization")]),t("li",[this._v("Multiple examples for different technologies")])]),t("h1",[this._v("\n    Description\n  ")]),t("p",[this._v("Eclipse Unide provides a lightweight Production Performance Management Protocol (PPMP) server-client implementations (using JSON, REST and other). The core of the protocol are two interface definitions:")]),t("ul",[t("li",[this._v("PPMP Measurement Interface: This is a public REST API with the purpose of receiving time series and machine data.")]),t("li",[this._v("PPMP Messages Interface: This is a public REST API with the purpose of receiving machine messages.")])]),t("h1",[this._v("\n   Why Here?\n  ")]),t("p",[this._v("The PPMP extends the existing Eclipse IoT world by providing an easy and lightweight format for gathering data from industry sensors and machines, focusing on normalizing time series and alert messages. It can be transported by protocols like REST, AMQP, MQTT. As PPMP, these technologies do also not require complex and expensive middleware nor do their systems cause additional license fees. Eclipse is an excellent platform for developing PPMP sample implementations and evolving the format hands-on with the community. In fact, it could even join forces with existing Eclipse IoT projects like "),t("a",{attrs:{href:"https://projects.eclipse.org/projects/iot.hono",target:"_blank",rel:"external"}},[this._v("Hono")]),this._v(", "),t("a",{attrs:{href:"https://www.eclipse.org/paho/",target:"_blank",rel:"external"}},[this._v("Paho")]),this._v(" or "),t("a",{attrs:{href:"https://www.eclipse.org/kura/",target:"_blank",rel:"external"}},[this._v("Kura")]),this._v(".")]),t("h1",[this._v("Interested Parties")]),t("ul",[t("li",[t("a",{attrs:{href:"https://www.contact-software.com",target:"_blank",rel:"external"}},[this._v("CONTACT Software GmbH")])]),t("li",[t("a",{attrs:{href:"http://www.balluff.com/",target:"_blank",rel:"external"}},[this._v("Balluff GmbH")])]),t("li",[t("a",{attrs:{href:"http://sap.com/",target:"_blank",rel:"external"}},[this._v("SAP")]),this._v(", Industry Standards & Open Source")]),t("li",[t("a",{attrs:{href:"http://www.tcs.com/",target:"_blank",rel:"external"}},[this._v("Tata Consultancy Services")]),this._v(", Internet of Things Group")]),t("li",[t("a",{attrs:{href:"http://www.3ds.com/",target:"_blank",rel:"external"}},[this._v("Dassault Systèmes")])]),t("li",[t("a",{attrs:{href:"http://www.cadis-engineering.de/",target:"_blank",rel:"external"}},[this._v("CADIS Service GmbH")])]),t("li",[t("a",{attrs:{href:"http://www.egt.de/",target:"_blank",rel:"external"}},[this._v("EGT AG")])]),t("li",[t("a",{attrs:{href:"http://www.klw.com/",target:"_blank",rel:"external"}},[this._v("KLW Karl Lutz GmbH")])]),t("li",[t("a",{attrs:{href:"http://www.rampf-gruppe.de/",target:"_blank",rel:"external"}},[this._v("RAMPF Machine Systems GmbH & Co. KG")])]),t("li",[t("a",{attrs:{href:"http://www.schmalz.com/",target:"_blank",rel:"external"}},[this._v("J. Schmalz GmbH")])]),t("li",[t("a",{attrs:{href:"https://www.bosch-si.com/",target:"_blank",rel:"external"}},[this._v("Bosch Software Innovations GmbH")])])])])}]};t.a=s},"gRp+":function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=i("xUJB"),s=i("cq3G"),n=i("VU/8")(a.a,s.a,!1,null,null,null);n.options.__file="pages\\proposal.vue",t.default=n.exports},xUJB:function(e,t,i){"use strict";t.a={layout:"sidebar"}}});
\ No newline at end of file
+webpackJsonp([13],{cq3G:function(e,t,i){"use strict";var a=function(){var e=this.$createElement;this._self._c;return this._m(0)};a._withStripped=!0;var s={render:a,staticRenderFns:[function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"proposal content"},[t("h1",[this._v("\n  What is Unide?\n  ")]),t("p",[this._v("Noticeably in the recent years, there’s a continuous increase in demand, price pressure and complexity in manufacturing. Things need to move faster, be more flexible, and fulfill higher quality standards. Often, optimization in this regard is referred to as Production Performance Management (PPM). The basis for this optimization is information from the machines and devices related to a product, such as:")]),t("ul",[t("li",[this._v("Torque and angle for a tightening process")]),t("li",[this._v("Influx / efflux of throttle plate test station")]),t("li",[this._v("Energy consumption of spindles in a cutting process")])]),t("p",[this._v("Nowadays, brand new machines and software are often shipped with powerful communication capabilities. For older machines, smaller factories and SMEs (Small and Medium Enterprises), it can be a challenge to catch up with the complex IT standards that come along. In fact, sometimes the hardware itself imposes limits.")]),t("p",[this._v("Nevertheless, in a manufacturing environment, monitoring makes most sense if there are no blind spots. To achieve that, upgrading machines and software is one option, retrofitting another. For the latter, the hurdle should be as low as possible. Yet, there should be a few guidelines for a one-way exchange of the most necessary information (machine messages, measurements):")]),t("p",[this._v("The structure of the data shall be:")]),t("ul",[t("li",[this._v("flexible enough to be carried via multiple protocols,"),t("br"),this._v("in order to not reinvent the wheel and leverage on existing technology")]),t("li",[this._v("similar in each case,"),t("br"),this._v("to be able to use the same software to interpret the data")]),t("li",[this._v("easily understandable,"),t("br"),this._v("so that implementation in a custom environment won’t be a hurdle")]),t("li",[this._v("as simple as possible,"),t("br"),this._v("to not produce an opinionated framework")]),t("li",[this._v("and yet containing enough information for the use cases,"),t("br"),this._v("to fulfill the functional requirements")])]),t("p",[this._v("We decided the least common denominator of necessary information are the mandatory fields, common relevant information to be optional, and the possibility for further extension points through metadata.")]),t("h2",[this._v("\n    Industry benefits of Unide\n  ")]),t("p",[this._v("This open source project aims to make PPM affordable for smaller organizations by reducing cost and complexity of data communication. Through sample implementations of a simple information structure (Production Performance Management Protocol - PPMP) tailored to manufacturing environments, we want to encourage the community to use, share, and evolve this structure together.")]),t("p",[this._v("PPMP has already been introduced as part of a PPM testbed at a medium-sized Bosch plant, working with many SMEs as partners and suppliers. Furthermore, this testbed aims to create an ecosystem which allows SMEs and larger companies to collaborate efficiently.")]),t("p",[this._v("The PPMP takes an important role by ensuring interoperability between different types of devices and software. It is designed to gather and aggregate machine and sensor data from different devices. It focuses on defining the JSON payload which can be transferred via a variety of transports (REST, AMQP, MQTT). The primary goals of PPMP are:")]),t("ol",[t("li",[this._v("Integrating devices (across domains; e.g. manufacturing or energy) for data aggregation and gathering purposes")]),t("li",[this._v("Providing a very lightweight and easy-to-use solution for small and medium-sized enterprises (SMEs)")])]),t("h1",[this._v("\n    Scope\n  ")]),t("p",[this._v("The Eclipse Unide project publishes the current version of Production Performance Management Protocol (PPMP) and develops simple server/client implementations. The implementations store the payloads in a database and displays them through a simple user interface. Everyone can then use these samples for their custom condition monitoring applications.")]),t("p",[this._v("The project will contain:")]),t("p",[t("em",[this._v("PPMP Specification:")])]),t("ul",[t("li",[this._v("Machine message and measurement interfaces")]),t("li",[this._v("JSON based")]),t("li",[this._v("Versioned")])]),t("p",[t("em",[this._v("Client:")])]),t("ul",[t("li",[this._v("Chrome / nw.js App")]),t("li",[this._v("For Industry Machines and Devices")]),t("li",[this._v("Node.js/Python client running on Raspberry Pi")])]),t("p",[t("em",[this._v("Server:")])]),t("ul",[t("li",[this._v("(REST) Server including persistence and simple data visualization")]),t("li",[this._v("Multiple examples for different technologies")])]),t("h1",[this._v("\n    Description\n  ")]),t("p",[this._v("Eclipse Unide provides a lightweight Production Performance Management Protocol (PPMP) server-client implementations (using JSON, REST and other). The core of the protocol are two interface definitions:")]),t("ul",[t("li",[this._v("PPMP Measurement Interface: This is a public REST API with the purpose of receiving time series and machine data.")]),t("li",[this._v("PPMP Messages Interface: This is a public REST API with the purpose of receiving machine messages.")])]),t("h1",[this._v("\n   Why Here?\n  ")]),t("p",[this._v("The PPMP extends the existing Eclipse IoT world by providing an easy and lightweight format for gathering data from industry sensors and machines, focusing on normalizing time series and alert messages. It can be transported by protocols like REST, AMQP, MQTT. As PPMP, these technologies do also not require complex and expensive middleware nor do their systems cause additional license fees. Eclipse is an excellent platform for developing PPMP sample implementations and evolving the format hands-on with the community. In fact, it could even join forces with existing Eclipse IoT projects like "),t("a",{attrs:{href:"https://projects.eclipse.org/projects/iot.hono",target:"_blank",rel:"external"}},[this._v("Hono")]),this._v(", "),t("a",{attrs:{href:"https://www.eclipse.org/paho/",target:"_blank",rel:"external"}},[this._v("Paho")]),this._v(" or "),t("a",{attrs:{href:"https://www.eclipse.org/kura/",target:"_blank",rel:"external"}},[this._v("Kura")]),this._v(".")]),t("h1",[this._v("Interested Parties")]),t("ul",[t("li",[t("a",{attrs:{href:"https://www.contact-software.com",target:"_blank",rel:"external"}},[this._v("CONTACT Software GmbH")])]),t("li",[t("a",{attrs:{href:"http://www.balluff.com/",target:"_blank",rel:"external"}},[this._v("Balluff GmbH")])]),t("li",[t("a",{attrs:{href:"http://sap.com/",target:"_blank",rel:"external"}},[this._v("SAP")]),this._v(", Industry Standards & Open Source")]),t("li",[t("a",{attrs:{href:"http://www.tcs.com/",target:"_blank",rel:"external"}},[this._v("Tata Consultancy Services")]),this._v(", Internet of Things Group")]),t("li",[t("a",{attrs:{href:"http://www.3ds.com/",target:"_blank",rel:"external"}},[this._v("Dassault Systèmes")])]),t("li",[t("a",{attrs:{href:"http://www.cadis-engineering.de/",target:"_blank",rel:"external"}},[this._v("CADIS Service GmbH")])]),t("li",[t("a",{attrs:{href:"http://www.egt.de/",target:"_blank",rel:"external"}},[this._v("EGT AG")])]),t("li",[t("a",{attrs:{href:"http://www.klw.com/",target:"_blank",rel:"external"}},[this._v("KLW Karl Lutz GmbH")])]),t("li",[t("a",{attrs:{href:"http://www.rampf-gruppe.de/",target:"_blank",rel:"external"}},[this._v("RAMPF Machine Systems GmbH & Co. KG")])]),t("li",[t("a",{attrs:{href:"http://www.schmalz.com/",target:"_blank",rel:"external"}},[this._v("J. Schmalz GmbH")])]),t("li",[t("a",{attrs:{href:"https://www.bosch-si.com/",target:"_blank",rel:"external"}},[this._v("Bosch Software Innovations GmbH")])])])])}]};t.a=s},"gRp+":function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=i("xUJB"),s=i("cq3G"),n=i("VU/8")(a.a,s.a,!1,null,null,null);n.options.__file="pages\\proposal.vue",t.default=n.exports},xUJB:function(e,t,i){"use strict";t.a={layout:"sidebar"}}});
\ No newline at end of file
diff --git a/files/pages_specification.019a3d73137721bf46a2.js b/files/pages_specification.019a3d73137721bf46a2.js
new file mode 100644
index 0000000..9320222
--- /dev/null
+++ b/files/pages_specification.019a3d73137721bf46a2.js
@@ -0,0 +1 @@
+webpackJsonp([11],{ILIS:function(e,t,a){(e.exports=a("YHym")(!1)).push([e.i,"@keyframes spinAround{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}.specification .card-content{padding:.5em}.specification img.is-centered{max-width:100%;margin-left:auto;margin-right:auto;display:block}.specification .property.card{margin-bottom:2em}.specification .property.card .card-content{font-size:.875em}.specification .property.card .card-content pre[class*=language-]{width:100%}.specification .property.card .card-content .field-body{display:block}.specification .property.card .card-content .field-body>div:not(:last-child){margin-bottom:.75rem}.specification .property.card>.card-header{background-color:#f5f5f5}.specification .property.card>.card-header p{margin-bottom:0}.specification .property.card>.card-header .card-header-icon{text-decoration:none}.specification #messageDetail.columns{margin-top:3em;border-bottom:2px solid #50237f;margin-bottom:2em}.specification #messageDetail.columns>.column a{font-size:1.2rem;color:#a7a7a7;display:block;text-decoration:none}.specification #messageDetail.columns>.column a:hover{color:#78be20;font-weight:700}.specification #messageDetail.columns>.column.nuxt-link-active a{color:#78be20}",""])},Ib4h:function(e,t,a){"use strict";t.a={head:function(){return{title:"Specification"}},asyncData:function(e){return{isStatic:e.isStatic}}}},ZNfg:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=a("Ib4h"),s=a("bYD5"),o=!1;var n=function(e){o||a("cSup")},r=a("VU/8")(i.a,s.a,!1,n,null,null);r.options.__file="pages\\specification.vue",t.default=r.exports},bYD5:function(e,t,a){"use strict";var i=function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"specification"},[this._m(0),t("div",{staticClass:"columns",attrs:{id:"messageDetail"}},[t("nuxt-link",{staticClass:"column",attrs:{to:"/specification"+(this.isStatic?"#messageDetail":""),exact:"",tag:"div"}},[t("a",[this._v("Overview")])]),t("nuxt-link",{staticClass:"column",attrs:{to:"/specification/v2/machine-message"+(this.isStatic?"#messageDetail":""),tag:"div"}},[t("a",[this._v("Machine Message")])]),t("nuxt-link",{staticClass:"column",attrs:{to:"/specification/v2/measurement-message"+(this.isStatic?"#messageDetail":""),tag:"div"}},[t("a",[this._v("Measurement Message")])]),t("nuxt-link",{staticClass:"column",attrs:{to:"/specification/v2/process-message"+(this.isStatic?"#messageDetail":""),tag:"div"}},[t("a",[this._v("Process Message")])])],1),t("nuxt-child")],1)};i._withStripped=!0;var s={render:i,staticRenderFns:[function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"content"},[t("h1",[t("a",{attrs:{id:"PPMP-Specification",title:"PPMP Specification"}}),this._v("\n      PPMP Specification\n    ")]),t("h2",[this._v("Rationale")]),t("p",[this._v("\n    Noticeably in recent years, there is a continuous increase in demand, price pressure and complexity in manufacturing. Things need to move faster, be more flexible, and fulfill higher quality standards forcing manufacturers to optimize their processes.\n    ")]),t("p",[this._v("\n    Production facilities and their performance have a huge impact on the overall performance of manufacturing processes. However, to identify bottlenecks and possibilities for improvements detailed data from machines are required.\n    ")]),t("p",[this._v("\n    Such data is surely provided by machines either via modern protocols such as OPC UA or via proprietary access methods but it is not provided in a common and easily accessible format, which can be used to do performance analysis and optimization. This renders holistic process improvement efforts infeasible for many, especially smaller organizations.\n    ")]),t("p",[this._v("\n    The Production Performance Management Protocol (PPMP) specifies a format that allows to capture data that is required to do performance analysis of production facilities. It allows monitoring backends to collect and evaluate key metrics of machines in the context of a production process. It is doing that by allowing to relate the machine status with currently produced parts.\n    ")]),t("p",[this._v("\n    The specification is structured into three payload formats: Measurement payload, message payload and process payload. The Measurement payload contains measurements from machines such as the temperature of a machine at a specific point in time together with the currently produced part. The message payload contains arbitrary messages sent by a machine, e.g. alerts or the like. A process message consists of information about a discrete e.g. tightening or welding processes with all their characterising data which are needed to describe and analyze it.\n    ")]),t("p",[this._v("\n    The default way of transporting the json payload is via http to allow for an easy integration into various backend systems. Other transportation methods are possible and welcome.\n    ")])])}]};t.a=s},cSup:function(e,t,a){var i=a("ILIS");"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);a("rjj0")("0d7afdaa",i,!1)}});
\ No newline at end of file
diff --git a/files/pages_specification.6def4404f10957a24495.js b/files/pages_specification.6def4404f10957a24495.js
deleted file mode 100644
index 7748759..0000000
--- a/files/pages_specification.6def4404f10957a24495.js
+++ /dev/null
@@ -1 +0,0 @@
-webpackJsonp([8],{ILIS:function(e,t,a){(e.exports=a("YHym")(!1)).push([e.i,"@keyframes spinAround{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}.specification .card-content{padding:.5em}.specification img.is-centered{max-width:100%;margin-left:auto;margin-right:auto;display:block}.specification .property.card{margin-bottom:2em}.specification .property.card .card-content{font-size:.875em}.specification .property.card .card-content pre[class*=language-]{width:100%}.specification .property.card .card-content .field-body{display:block}.specification .property.card .card-content .field-body>div:not(:last-child){margin-bottom:.75rem}.specification .property.card>.card-header{background-color:#f5f5f5}.specification .property.card>.card-header p{margin-bottom:0}.specification .property.card>.card-header .card-header-icon{text-decoration:none}.specification #messageDetail.columns{margin-top:3em;border-bottom:2px solid #50237f;margin-bottom:2em}.specification #messageDetail.columns>.column a{font-size:1.2rem;color:#a7a7a7;display:block;text-decoration:none}.specification #messageDetail.columns>.column a:hover{color:#78be20;font-weight:700}.specification #messageDetail.columns>.column.nuxt-link-active a{color:#78be20}",""])},Ib4h:function(e,t,a){"use strict";t.a={head:function(){return{title:"Specification"}},asyncData:function(e){return{isStatic:e.isStatic}}}},ZNfg:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=a("Ib4h"),s=a("bYD5"),o=!1;var n=function(e){o||a("cSup")},r=a("VU/8")(i.a,s.a,!1,n,null,null);r.options.__file="pages\\specification.vue",t.default=r.exports},bYD5:function(e,t,a){"use strict";var i=function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"specification"},[this._m(0),t("div",{staticClass:"columns",attrs:{id:"messageDetail"}},[t("nuxt-link",{staticClass:"column",attrs:{to:"/specification"+(this.isStatic?"#messageDetail":""),exact:"",tag:"div"}},[t("a",[this._v("Overview")])]),t("nuxt-link",{staticClass:"column",attrs:{to:"/specification/machine-message"+(this.isStatic?"#messageDetail":""),tag:"div"}},[t("a",[this._v("Machine Message")])]),t("nuxt-link",{staticClass:"column",attrs:{to:"/specification/measurement-message"+(this.isStatic?"#messageDetail":""),tag:"div"}},[t("a",[this._v("Measurement Message")])]),t("nuxt-link",{staticClass:"column",attrs:{to:"/specification/process-message"+(this.isStatic?"#messageDetail":""),tag:"div"}},[t("a",[this._v("Process Message")])])],1),t("nuxt-child")],1)};i._withStripped=!0;var s={render:i,staticRenderFns:[function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"content"},[t("h1",[t("a",{attrs:{id:"PPMP-Specification",title:"PPMP Specification"}}),this._v("\n      PPMP Specification\n    ")]),t("h2",[this._v("Rationale")]),t("p",[this._v("\n    Noticeably in recent years, there is a continuous increase in demand, price pressure and complexity in manufacturing. Things need to move faster, be more flexible, and fulfill higher quality standards forcing manufacturers to optimize their processes.\n    ")]),t("p",[this._v("\n    Production facilities and their performance have a huge impact on the overall performance of manufacturing processes. However, to identify bottlenecks and possibilities for improvements detailed data from machines are required.\n    ")]),t("p",[this._v("\n    Such data is surely provided by machines either via modern protocols such as OPC UA or via proprietary access methods but it is not provided in a common and easily accessible format, which can be used to do performance analysis and optimization. This renders holistic process improvement efforts infeasible for many, especially smaller organizations.\n    ")]),t("p",[this._v("\n    The Production Performance Management Protocol (PPMP) specifies a format that allows to capture data that is required to do performance analysis of production facilities. It allows monitoring backends to collect and evaluate key metrics of machines in the context of a production process. It is doing that by allowing to relate the machine status with currently produced parts.\n    ")]),t("p",[this._v("\n    The specification is structured into three payload formats: Measurement payload, message payload and process payload. The Measurement payload contains measurements from machines such as the temperature of a machine at a specific point in time together with the currently produced part. The message payload contains arbitrary messages sent by a machine, e.g. alerts or the like. A process message consists of information about a discrete e.g. tightening or welding processes with all their characterising data which are needed to describe and analyze it.\n    ")]),t("p",[this._v("\n    The default way of transporting the json payload is via http to allow for an easy integration into various backend systems. Other transportation methods are possible and welcome.\n    ")])])}]};t.a=s},cSup:function(e,t,a){var i=a("ILIS");"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);a("rjj0")("0d7afdaa",i,!1)}});
\ No newline at end of file
diff --git a/files/pages_specification_index.06dad5cb3f63c35339f3.js b/files/pages_specification_index.815252d9cf4fccce90f1.js
similarity index 94%
rename from files/pages_specification_index.06dad5cb3f63c35339f3.js
rename to files/pages_specification_index.815252d9cf4fccce90f1.js
index 097cfa6..1184db4 100644
--- a/files/pages_specification_index.06dad5cb3f63c35339f3.js
+++ b/files/pages_specification_index.815252d9cf4fccce90f1.js
@@ -1 +1 @@
-webpackJsonp([11],{kxob:function(e,t,s){"use strict";var i=function(){var e=this.$createElement;this._self._c;return this._m(0)};i._withStripped=!0;var n={render:i,staticRenderFns:[function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"content"},[t("h1",[t("a",{attrs:{href:"#Communicating-Parties",title:"Communicating Parties"}}),this._v("\n    Communicating Parties\n  ")]),t("p",[this._v("\n  Two parties are involved in a PPMP message exchange: the sender and the receiver. The sender pushes a message to the receiver. Usually the sender is a machine or a sensor of a machine.\n  ")]),t("p",[this._v("\n  The receiver waits for messages. It offers a API that allows for sending either measurement payloads or message payloads.\n  ")]),t("p",[this._v("\n  The communication is unidirectional. Only the sender can contact the receiver and send messages. No feedback from receiver to sender is provided.\n  ")]),t("img",{staticClass:"is-centered",attrs:{src:"images/collaborators_v2.svg",alt:"Overview PPMP",title:"Overview PPMP"}})])}]};t.a=n},v0nM:function(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=s("kxob"),n=s("VU/8")(null,i.a,!1,null,null,null);n.options.__file="pages\\specification\\index.vue",t.default=n.exports}});
\ No newline at end of file
+webpackJsonp([14],{kxob:function(e,t,s){"use strict";var i=function(){var e=this.$createElement;this._self._c;return this._m(0)};i._withStripped=!0;var n={render:i,staticRenderFns:[function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"content"},[t("h1",[t("a",{attrs:{href:"#Communicating-Parties",title:"Communicating Parties"}}),this._v("\n    Communicating Parties\n  ")]),t("p",[this._v("\n  Two parties are involved in a PPMP message exchange: the sender and the receiver. The sender pushes a message to the receiver. Usually the sender is a machine or a sensor of a machine.\n  ")]),t("p",[this._v("\n  The receiver waits for messages. It offers a API that allows for sending either measurement payloads or message payloads.\n  ")]),t("p",[this._v("\n  The communication is unidirectional. Only the sender can contact the receiver and send messages. No feedback from receiver to sender is provided.\n  ")]),t("img",{staticClass:"is-centered",attrs:{src:"images/collaborators_v2.svg",alt:"Overview PPMP",title:"Overview PPMP"}})])}]};t.a=n},v0nM:function(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=s("kxob"),n=s("VU/8")(null,i.a,!1,null,null,null);n.options.__file="pages\\specification\\index.vue",t.default=n.exports}});
\ No newline at end of file
diff --git a/files/pages_specification_machine-message.9d83bf77d0c0e786c248.js b/files/pages_specification_machine-message.9d83bf77d0c0e786c248.js
deleted file mode 100644
index 6dfa04b..0000000
--- a/files/pages_specification_machine-message.9d83bf77d0c0e786c248.js
+++ /dev/null
@@ -1 +0,0 @@
-webpackJsonp([2],{"3IRH":function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},"5PlU":function(e,t,s){var a=s("RY/4"),n=s("dSzd")("iterator"),i=s("/bQp");e.exports=s("FeBl").isIterable=function(e){var t=Object(e);return void 0!==t[n]||"@@iterator"in t||i.hasOwnProperty(a(t))}},"5pwE":function(e,t,s){(e.exports=s("YHym")(!1)).push([e.i,".schemaDetail a{text-decoration:none}.schemaDetail .property ul{list-style-type:disc;padding-left:1em;margin-left:0;margin-top:0}",""])},"77aO":function(e,t,s){"use strict";t.a={props:{collapsed:{type:Boolean,default:!1}},data:function(){return{expanded:!this.collapsed,transitioning:!1}},watch:{collapsed:function(e){this.expanded=!e}},methods:{beforeenter:function(e){this.transitioning=!0,e.style.height=0},enter:function(e){e.style.height=e.scrollHeight+"px"},afterenter:function(e){e.style.height="",this.transitioning=!1},beforeleave:function(e){this.transitioning=!0,e.style.height=e.offsetHeight+"px",e.offsetHeight},leave:function(e){e.style.height=0,e.offsetHeight},afterleave:function(e){this.transitioning=!1},toggle:function(){this.transitioning||(this.expanded=!this.expanded,this.$emit(this.expanded?"expanding":"collapsing",this.id))}}}},A51D:function(e,t,s){var a=s("5pwE");"string"==typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);s("rjj0")("188b52d2",a,!1)},AxiT:function(e,t,s){var a=s("Lw7C");"string"==typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);s("rjj0")("0868896c",a,!1)},D9sP:function(e,t,s){"use strict";var a=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"schemaDetail",class:{"is-loading":e.loading},attrs:{id:"schema-detail"}},[s("div",{staticClass:"accordion"},[null!==e.schemas?s("card",{attrs:{collapsed:!0}},[s("template",{slot:"header"},[e._v("\n          Structure of payload\n        ")]),s("schemaToc",{attrs:{schemas:e.schemas,tag:"div"}})],2):e._e(),e._t("default")],2),s("h1",[s("a",{attrs:{id:e.type+"-schema-detail",title:e.type+" Fields definition"}}),e._v("\n      Fields definition\n    ")]),e._l(e.schemas,function(t){return s("div",{key:t.$key,staticClass:"card property"},[s("header",{staticClass:"card-header"},[s("a",{attrs:{id:"p-"+t.$idx}}),s("p",{staticClass:"card-header-title"},[s("span",{domProps:{innerHTML:e._s(t.$path)}})]),s("nuxt-link",{staticClass:"card-header-icon",attrs:{to:"#schema-detail",title:"go up"}},[s("span",{staticClass:"icon"},[s("i",{staticClass:"fa fa-angle-up"})])])],1),s("div",{staticClass:"card-content"},[t.description||t.type?s("div",{staticClass:"field is-horizontal"},[e._m(0,!0),t.description?s("div",{staticClass:"field-body"},[e._v("\n            "+e._s(t.description)+"\n          ")]):t.type?s("div",{staticClass:"field-body"},[e._v("\n            A simple "+e._s(e._f("capitalize")(t.type))+"\n          ")]):e._e()]):e._e(),t.$parent?s("div",{staticClass:"field is-horizontal"},[e._m(1,!0),s("div",{staticClass:"field-body"},[s("nuxt-link",{attrs:{to:"#p-"+t.$parent[0].$idx}},[s("span",{domProps:{innerHTML:e._s(t.$parent[0].$path)}})])],1)]):e._e(),t.type?s("div",{staticClass:"field is-horizontal"},[e._m(2,!0),s("div",{staticClass:"field-body"},[e._v("\n            "+e._s(e._f("capitalize")(t.type,t))+"\n          ")])]):e._e(),t.format?s("div",{staticClass:"field is-horizontal"},[e._m(3,!0),s("div",{staticClass:"field-body"},[e._v("\n            "+e._s(t.format)+"\n            "),e.$static.formats[t.format]?s("a",{attrs:{href:e.$static.formats[t.format].link}},[e._v(" ("+e._s(e.$static.formats[t.format].name)+")")]):e._e()])]):e._e(),t.enum&&t.enum.length?s("div",{staticClass:"field is-horizontal"},[e._m(4,!0),s("div",{staticClass:"field-body"},[s("div",[e._v("\n              "+e._s(t.enum.join(", "))+"\n            ")])])]):e._e(),t.hasOwnProperty("default")?s("div",{staticClass:"field is-horizontal"},[e._m(5,!0),s("div",{staticClass:"field-body"},[s("div",[e._v("\n              "+e._s(t.default)+"\n            ")])])]):e._e(),t.maxLength?s("div",{staticClass:"field is-horizontal"},[e._m(6,!0),s("div",{staticClass:"field-body"},[s("div",[e._v("\n              "+e._s(t.maxLength)+"\n            ")])])]):e._e(),t.properties||t.patternProperties||t.items?s("div",{staticClass:"field is-horizontal"},[e._m(7,!0),s("div",{staticClass:"field-body"},[Object.keys(t.properties||{}).length>0?s("schemaLink",{attrs:{schemas:e.schemas,link:t.properties}}):e._e(),Object.keys(t.patternProperties||{}).length>0?s("schemaLink",{attrs:{schemas:e.schemas,link:t.patternProperties}},[s("div",[e._v("Matching regular expressions:")])]):e._e(),!t.items||t.items instanceof Array?t.items?s("schemaLink",{attrs:{schemas:e.schemas,link:t.items}},[s("div",[e._v("Ordered items of type:")])]):e._e():s("schemaLink",{attrs:{schemas:e.schemas,link:t.items}}),Object.keys(t.properties||{}).length+Object.keys(t.patternProperties||{}).length!==0||t.items?e._e():[e._v("none")]],2)]):e._e(),t.minProperties?s("div",{staticClass:"field is-horizontal"},[e._m(8,!0),s("div",{staticClass:"field-body"},[s("div",[e._v("\n              "+e._s(t.minProperties)+"\n            ")])])]):e._e(),t.minItems?s("div",{staticClass:"field is-horizontal"},[e._m(9,!0),s("div",{staticClass:"field-body"},[s("div",[e._v("\n              "+e._s(t.minItems)+"\n            ")])])]):e._e(),t.hasOwnProperty("additionalProperties")?s("div",{staticClass:"field is-horizontal"},[e._m(10,!0),"boolean"==typeof t.additionalProperties?s("schemaLink",{staticClass:"field-body",attrs:{schemas:e.schemas,link:t.additionalProperties}}):s("div",{staticClass:"field-body"},[e._v("\n            if fulfilling "),s("schemaLink",{staticClass:"field-body",attrs:{schemas:e.schemas,link:t.additionalProperties}})],1)],1):e._e(),t.not||t.oneOf||t.allOf||t.anyOf?s("div",{staticClass:"field is-horizontal"},[e._m(11,!0),s("div",{staticClass:"field-body"},[t.not?s("schemaLink",{attrs:{schemas:e.schemas,link:t.not}},[e._v("\n              Not fulfilling \n            ")]):e._e(),t.oneOf?s("schemaLink",{attrs:{schemas:e.schemas,link:t.oneOf}},[s("div",[e._v("Fulfilling exactly one of:")])]):e._e(),t.allOf?s("schemaLink",{attrs:{schemas:e.schemas,link:t.allOf}},[s("div",[e._v("Fulfilling all of:")])]):e._e(),t.anyOf?s("schemaLink",{attrs:{schemas:e.schemas,link:t.anyOf}},[s("div",[e._v("Fulfilling one of:")])]):e._e()],1)]):e._e(),t.required&&t.required.length?s("div",{staticClass:"field is-horizontal"},[e._m(12,!0),s("div",{staticClass:"field-body"},[e._v("\n            "+e._s(t.required.join(", "))+"\n          ")])]):e._e(),e.examples.hasOwnProperty(t.$key)?s("div",{staticClass:"field is-horizontal"},[e._m(13,!0),s("div",{staticClass:"field-body"},[s("prism",{attrs:{language:"json"}},[e._v('...\n"'+e._s(e.examples[t.$key][1])+'": '+e._s(e._f("stringify")(e.examples[t.$key][0][e.examples[t.$key][1]]))+"\n...")])],1)]):e._e()])])})],2)};a._withStripped=!0;var n={render:a,staticRenderFns:[function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Description:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Parent:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Type:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Format:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Possible values:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Defaults to:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Maximum length:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Restriction on subfields:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Minimum amount of subfields:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Minimum amount of items:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Allows additional fields:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Restriction with boolean logic:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Required fields:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Example:")])])}]};t.a=n},Gs0Q:function(e,t,s){"use strict";t.a={name:"schemaToc",props:{tag:{type:String,default:"li"},schemas:{type:Object},entryNode:{type:String,default:"$"}},computed:{schema:function(){return this.schemas[this.entryNode]}}}},JHN9:function(e,t,s){"use strict";var a=function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"machine-message content"},[this._m(0),t("p",[this._v("The main purpose of the machine message format is to allow devices and integrators to send messages containing an interpretation of measurement data or status.")]),t("img",{staticClass:"is-centered",attrs:{src:"images/messagePayload.svg",alt:"Class diagram of the message payload",title:"Class diagram of the message payload"}}),t("schemaDetail",{attrs:{type:"message",examples:this.$static.examples}},[t("card",{attrs:{collapsed:!0}},[t("template",{slot:"header"},[this._v("\n        Minimal message example\n      ")]),t("prism",{attrs:{language:"json"}},[this._v(this._s(this._f("stringify")(this.$static.message)))])],2),t("card",{attrs:{collapsed:!0}},[t("template",{slot:"header"},[this._v("\n        Multiple message example\n      ")]),t("prism",{attrs:{language:"json"}},[this._v(this._s(this._f("stringify")(this.$static.multipleMachineMessages)))])],2)],1)],1)};a._withStripped=!0;var n={render:a,staticRenderFns:[function(){var e=this.$createElement,t=this._self._c||e;return t("h1",[t("a",{attrs:{id:"Message-Payload",title:"Machine Message Payload"}}),this._v("\n    Machine Message Payload\n  ")])}]};t.a=n},LJry:function(e,t,s){"use strict";var a={functional:!0,props:{code:{type:String},language:{type:String,default:"markup"}},render:function(e,t){var s=t.props.code||t.children[0].text,a=t.props.language,n=Prism.languages[a],i="language-"+a;return e("pre",function(e){for(var t=arguments,s=1;s<arguments.length;s++)for(var a in arguments[s])e[a]=t[s][a];return e}({},t.data,{class:[t.data.class,i]}),[e("code",{class:i,domProps:{innerHTML:Prism.highlight(s,n)}})])}};e.exports=a},Lw7C:function(e,t,s){(e.exports=s("YHym")(!1)).push([e.i,"@keyframes spinAround{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}",""])},NVTU:function(e,t,s){"use strict";var a=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"card collapsibleCard",class:{collapsed:!e.expanded}},[e.$slots.header?s("header",{staticClass:"card-header",on:{click:function(t){t.preventDefault(),e.toggle()}}},[s("p",{staticClass:"card-header-title"},[!e.$slots.headerCollapsed||e.expanded?e._t("header"):e._t("headerCollapsed")],2),s("a",{staticClass:"card-header-icon"},[s("span",{staticClass:"icon"},[s("i",{staticClass:"fa",class:{"fa-angle-down":e.expanded,"fa-angle-up":!e.expanded}})])])]):e._e(),s("transition",{attrs:{name:"rollup","leave-active-class":"collapsing","enter-active-class":"collapsing"},on:{"before-leave":e.beforeleave,leave:e.leave,"after-leave":e.afterleave,"before-enter":e.beforeenter,enter:e.enter,"after-enter":e.afterenter}},[s("div",{directives:[{name:"show",rawName:"v-show",value:e.expanded,expression:"expanded"}]},[s("div",{staticClass:"card-content"},[e._t("default")],2)])])],1)};a._withStripped=!0;var n={render:a,staticRenderFns:[]};t.a=n},T9Hf:function(e,t,s){"use strict";var a=s("77aO"),n=s("NVTU"),i=!1;var r=function(e){i||s("WVEp")},o=s("VU/8")(a.a,n.a,!1,r,null,null);o.options.__file="components\\collapsibleCard.vue",t.a=o.exports},TmV0:function(e,t,s){s("fZOM"),e.exports=s("FeBl").Object.values},W3Iv:function(e,t,s){e.exports={default:s("wEtr"),__esModule:!0}},WVEp:function(e,t,s){var a=s("a3hs");"string"==typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);s("rjj0")("52cedc5e",a,!1)},Xd32:function(e,t,s){s("+tPU"),s("zQR9"),e.exports=s("5PlU")},a3hs:function(e,t,s){(e.exports=s("YHym")(!1)).push([e.i,"@keyframes spinAround{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}.card.collapsibleCard>header{cursor:pointer;background-color:#f5f5f5;border-bottom:1px solid hsla(0,0%,4%,.1)}.card.collapsibleCard>header .card-header-icon{text-decoration:none}.card.collapsibleCard>header .card-header-title{font-weight:400}.card.collapsibleCard>header p{margin-bottom:0}.card.collapsibleCard.collapsed header{border-bottom:none}.card.collapsibleCard>div.collapsing{position:relative;height:0;overflow:hidden;display:block;transition-property:height;transition-duration:.35s;transition-timing-function:ease}",""])},bOdI:function(e,t,s){"use strict";t.__esModule=!0;var a,n=s("C4MV"),i=(a=n)&&a.__esModule?a:{default:a};t.default=function(e,t,s){return t in e?(0,i.default)(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}},"bXX+":function(e,t,s){"use strict";var a=s("jhkR"),n=s("fvMW"),i=s("VU/8")(a.a,n.a,!1,null,null,null);i.options.__file="components\\schemaLink.vue",t.a=i.exports},cER1:function(e,t,s){"use strict";var a=s("mvHQ"),n=s.n(a),i=s("gRE1"),r=s.n(i),o=s("fZjL"),c=s.n(o),l=s("d7EF"),u=s.n(l),f=s("W3Iv"),d=s.n(f),p=s("bOdI"),h=s.n(p),m=s("woOf"),v=s.n(m),_=s("LJry"),y=s.n(_),g=s("zM1N"),b=s.n(g),$=s("T9Hf"),C=s("mQxp"),k=s("bXX+");t.a={props:{type:{type:String,required:!0},examples:{type:Object,required:!1,default:function(){return{}}}},data:function(){return{schema:null,loading:!0}},created:function(){var e=this,t={date:{link:"https://tools.ietf.org/html/rfc3339#section-5.6",name:"RFC3339, 5.6"},email:{link:"https://tools.ietf.org/html/rfc5322#section-3.4.1",name:"RFC5322, 3.4.1"}};s("kGrr")("./"+this.type+"_schema.json").then(function(t){return e.schema=t,e.loading=!1,e.idx=0,t}).catch(function(e){throw e}),this.$static={formats:{"date-time":t.date,date:t.date,time:t.date,email:t.email}}},methods:{flattenSchema:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{$key:"$",$path:"$"};!0===t?t={}:!1===t&&(t={not:!0});var a=h()({},s.$key,v()(t,s,{$idx:++this.idx}));if(t.items)if(t.items instanceof Array)t.items.forEach(function(n,i){var r={$key:s.$key+"/"+i,$path:s.$path+"["+i+"]",$parent:[t,t.items,i]};v()(a,e.flattenSchema(n,r)),t.items[i]=r.$key});else{var n={$key:s.$key+"/",$path:s.$path+"[*]",$parent:[t,t,"items"]};v()(a,this.flattenSchema(t.items,n)),t.items=n.$key}return["properties","patternProperties"].filter(function(e){return t.hasOwnProperty(e)}).forEach(function(n){return d()(t[n]).forEach(function(i,r){var o=u()(i,2),c=o[0],l=o[1],f={$key:s.$key+"/"+n+"/"+encodeURIComponent(c),$path:s.$path+"&#8203;.",$parent:[t,t[n],c]};f.$path+="patternProperties"===n?"&lt;field&gt;":c,v()(a,e.flattenSchema(l,f)),t[n][c]=f.$key})}),["additionalItems","additionalProperties","contains","propertyNames","not"].filter(function(e){return t.hasOwnProperty(e)}).forEach(function(n){var i={$key:s.$key+"/"+n,$path:s.$path+"+",$parent:[t,t,n]};v()(a,e.flattenSchema(t[n],i)),t[n]=i.$key}),["allOf","anyOf","oneOf"].filter(function(e){return t.hasOwnProperty(e)}).forEach(function(n){return t[n].forEach(function(i,r){var o={$key:s.$key+"/"+n+"/"+r,$path:s.$path+"("+r+")?",$parent:[t,t[n],r]};v()(a,e.flattenSchema(i,o)),t[n][r]=o.$key})}),a},shrinkSchemas:function(e){var t=function(e){return e.anyOf&&e.anyOf.indexOf(!0)>=0?[e,!0]:e.allOf&&e.allOf.indexOf(!1)>=0?[e,!1]:!0===e.not?[e,!1]:0===c()(e).filter(function(e){return"$"!==e[0]}).length?[e,!0]:null};return r()(e).map(t).filter(function(e){return e}).forEach(function s(a){if(a){var n=u()(a,2),i=n[0],r=n[1];i.$parent[1][i.$parent[2]]=r,delete e[i.$key],s(t(i.$parent[0]))}}),e}},computed:{schemas:function(){return null===this.schema?null:this.shrinkSchemas(this.flattenSchema(b()(this.schema)))}},filters:{stringify:function(e){return n()(e," ",2)},capitalize:function(e,t){return e?(e instanceof Array||(e=[e]),e.map(function(e){return""+e[0].toUpperCase()+e.slice(1)}).join(", ")):""}},components:{card:$.a,prism:y.a,schemaToc:C.a,schemaLink:k.a}}},d7EF:function(e,t,s){"use strict";t.__esModule=!0;var a=i(s("us/S")),n=i(s("BO1k"));function i(e){return e&&e.__esModule?e:{default:e}}t.default=function(){return function(e,t){if(Array.isArray(e))return e;if((0,a.default)(Object(e)))return function(e,t){var s=[],a=!0,i=!1,r=void 0;try{for(var o,c=(0,n.default)(e);!(a=(o=c.next()).done)&&(s.push(o.value),!t||s.length!==t);a=!0);}catch(e){i=!0,r=e}finally{try{!a&&c.return&&c.return()}finally{if(i)throw r}}return s}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}()},fZOM:function(e,t,s){var a=s("kM2E"),n=s("mbce")(!1);a(a.S,"Object",{values:function(e){return n(e)}})},fvMW:function(e,t,s){"use strict";var a=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[e._t("default"),!0===e.link?[e._v("\n    yes \n  ")]:!1===e.link?[e._v("\n    no \n  ")]:"string"==typeof e.link?[s("nuxt-link",{attrs:{to:"#p-"+e.schemas[e.link].$idx}},[s("span",{domProps:{innerHTML:e._s(e.schemas[e.link].$path)}})])]:e.link instanceof Array?s("ul",e._l(e.link,function(t){return s("li",[s("nuxt-link",{attrs:{to:"#p-"+e.schemas[t].$idx}},[s("span",{domProps:{innerHTML:e._s(e.schemas[t].$path)}})])],1)})):e.link instanceof Object?s("ul",e._l(e.link,function(t,a){return s("li",[s("nuxt-link",{attrs:{to:"#p-"+e.schemas[t].$idx}},[e._v("\n        "+e._s(a)+"\n      ")])],1)})):e._e()],2)};a._withStripped=!0;var n={render:a,staticRenderFns:[]};t.a=n},gRE1:function(e,t,s){e.exports={default:s("TmV0"),__esModule:!0}},gSvA:function(e,t,s){var a=s("kM2E"),n=s("mbce")(!0);a(a.S,"Object",{entries:function(e){return n(e)}})},hvFG:function(e,t,s){"use strict";var a=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s(e.tag,{tag:"component"},[s("nuxt-link",{attrs:{to:"#p-"+e.schema.$idx}},[s("span",{domProps:{innerHTML:e._s(e.schema.$path)}})]),e.schema.properties||e.schema.patternProperties||e.schema.items?s("ul",[e._l(e.schema.properties,function(t,a){return s("schemaToc",{key:a,attrs:{schemas:e.schemas,entryNode:t}})}),e._l(e.schema.patternProperties,function(t,a){return s("schemaToc",{key:a,attrs:{schemas:e.schemas,entryNode:t}})}),e.schema.items?[e.schema.items instanceof Array?e._l(e.schema.items,function(t,a){return s("schemaToc",{key:a,attrs:{schemas:e.schemas,entryNode:t}})}):s("schemaToc",{attrs:{schemas:e.schemas,entryNode:e.schema.items}})]:e._e()],2):e._e()],1)};a._withStripped=!0;var n={render:a,staticRenderFns:[]};t.a=n},jhkR:function(e,t,s){"use strict";t.a={props:{schemas:{type:Object,required:!0},link:{required:!0}}}},kGrr:function(e,t,s){var a={"./measurement_schema.json":["oGp6",17],"./message_schema.json":["2BTs",16],"./process_schema.json":["rRyJ",15]};function n(e){var t=a[e];return t?s.e(t[1]).then(function(){return s(t[0])}):Promise.reject(new Error("Cannot find module '"+e+"'."))}n.keys=function(){return Object.keys(a)},n.id="kGrr",e.exports=n},mQxp:function(e,t,s){"use strict";var a=s("Gs0Q"),n=s("hvFG"),i=!1;var r=function(e){i||s("AxiT")},o=s("VU/8")(a.a,n.a,!1,r,null,null);o.options.__file="components\\schemaToc.vue",t.a=o.exports},mbce:function(e,t,s){var a=s("lktj"),n=s("TcQ7"),i=s("NpIQ").f;e.exports=function(e){return function(t){for(var s,r=n(t),o=a(r),c=o.length,l=0,u=[];c>l;)i.call(r,s=o[l++])&&u.push(e?[s,r[s]]:r[s]);return u}}},n1iW:function(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=s("rqHf"),n=s("JHN9"),i=s("VU/8")(a.a,n.a,!1,null,null,null);i.options.__file="pages\\specification\\machine-message.vue",t.default=i.exports},rqHf:function(e,t,s){"use strict";var a=s("mvHQ"),n=s.n(a),i=s("LJry"),r=s.n(i),o=s("T9Hf"),c=s("s8mu");t.a={head:function(){return{title:"Specification for machine messages"}},created:function(){var e=new Date,t="a4927dad-58d4-4580-b460-79cefd56775b";this.$static={message:{"content-spec":"urn:spec://eclipse.org/unide/machine-message#v2",device:{deviceID:t},messages:[{ts:e.toISOString(),code:"190ABT"}]},multipleMachineMessages:{"content-spec":"urn:spec://eclipse.org/unide/machine-message#v2",device:{deviceID:t,operationalStatus:"normal",metaData:{swVersion:"2.0.3.13",swBuildID:"41535"}},messages:[{origin:"sensor-id-992.2393.22",ts:e.toISOString(),type:"DEVICE",severity:"HIGH",code:"190ABT",title:"control board damaged",description:"Electronic control board or its electrical connections are damaged",hint:"Check the control board",metaData:{firmware:"20130304_22.020"}},{ts:new Date(e.valueOf()+100).toISOString(),type:"TECHNICAL_INFO",severity:"HIGH",code:"33-02",title:"Disk size limit reached",description:"Disk size has reached limit. Unable to write log files."}]}},this.$static.examples={"$/properties/content-spec":[this.$static.message,"content-spec"],"$/properties/device":[this.$static.message,"device"],"$/properties/device/properties/deviceID":[this.$static.message.device,"deviceID"],"$/properties/device/properties/operationalStatus":[this.$static.multipleMachineMessages.device,"operationalStatus"],"$/properties/device/properties/metaData":[this.$static.multipleMachineMessages.device,"metaData"],"$/properties/messages":[this.$static.message,"messages"],"$/properties/messages//properties/ts":[this.$static.message.messages[0],"ts"],"$/properties/messages//properties/origin":[this.$static.multipleMachineMessages.messages[0],"origin"],"$/properties/messages//properties/type":[this.$static.multipleMachineMessages.messages[0],"type"],"$/properties/messages//properties/severity":[this.$static.multipleMachineMessages.messages[0],"severity"],"$/properties/messages//properties/code":[this.$static.message.messages[0],"code"],"$/properties/messages//properties/title":[this.$static.multipleMachineMessages.messages[0],"title"],"$/properties/messages//properties/description":[this.$static.multipleMachineMessages.messages[0],"description"],"$/properties/messages//properties/hint":[this.$static.multipleMachineMessages.messages[0],"hint"],"$/properties/messages//properties/metaData":[this.$static.multipleMachineMessages.messages[0],"metaData"]}},filters:{stringify:function(e){return n()(e," ",2)}},components:{card:o.a,prism:r.a,schemaDetail:c.a}}},s8mu:function(e,t,s){"use strict";var a=s("cER1"),n=s("D9sP"),i=!1;var r=function(e){i||s("A51D")},o=s("VU/8")(a.a,n.a,!1,r,null,null);o.options.__file="components\\schemaDetail.vue",t.a=o.exports},"us/S":function(e,t,s){e.exports={default:s("Xd32"),__esModule:!0}},wEtr:function(e,t,s){s("gSvA"),e.exports=s("FeBl").Object.entries},zM1N:function(e,t,s){(function(e,s){var a=200,n="__lodash_hash_undefined__",i=9007199254740991,r="[object Arguments]",o="[object Boolean]",c="[object Date]",l="[object Function]",u="[object GeneratorFunction]",f="[object Map]",d="[object Number]",p="[object Object]",h="[object Promise]",m="[object RegExp]",v="[object Set]",_="[object String]",y="[object Symbol]",g="[object WeakMap]",b="[object ArrayBuffer]",$="[object DataView]",C="[object Float32Array]",k="[object Float64Array]",j="[object Int8Array]",x="[object Int16Array]",O="[object Int32Array]",w="[object Uint8Array]",M="[object Uint8ClampedArray]",E="[object Uint16Array]",P="[object Uint32Array]",S=/\w*$/,A=/^\[object .+?Constructor\]$/,T=/^(?:0|[1-9]\d*)$/,D={};D[r]=D["[object Array]"]=D[b]=D[$]=D[o]=D[c]=D[C]=D[k]=D[j]=D[x]=D[O]=D[f]=D[d]=D[p]=D[m]=D[v]=D[_]=D[y]=D[w]=D[M]=D[E]=D[P]=!0,D["[object Error]"]=D[l]=D[g]=!1;var I="object"==typeof e&&e&&e.Object===Object&&e,H="object"==typeof self&&self&&self.Object===Object&&self,L=I||H||Function("return this")(),F="object"==typeof t&&t&&!t.nodeType&&t,R=F&&"object"==typeof s&&s&&!s.nodeType&&s,z=R&&R.exports===F;function N(e,t){return e.set(t[0],t[1]),e}function U(e,t){return e.add(t),e}function V(e,t,s,a){var n=-1,i=e?e.length:0;for(a&&i&&(s=e[++n]);++n<i;)s=t(s,e[n],n,e);return s}function B(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(e){}return t}function G(e){var t=-1,s=Array(e.size);return e.forEach(function(e,a){s[++t]=[a,e]}),s}function q(e,t){return function(s){return e(t(s))}}function Q(e){var t=-1,s=Array(e.size);return e.forEach(function(e){s[++t]=e}),s}var W,J=Array.prototype,X=Function.prototype,Y=Object.prototype,Z=L["__core-js_shared__"],K=(W=/[^.]+$/.exec(Z&&Z.keys&&Z.keys.IE_PROTO||""))?"Symbol(src)_1."+W:"",ee=X.toString,te=Y.hasOwnProperty,se=Y.toString,ae=RegExp("^"+ee.call(te).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),ne=z?L.Buffer:void 0,ie=L.Symbol,re=L.Uint8Array,oe=q(Object.getPrototypeOf,Object),ce=Object.create,le=Y.propertyIsEnumerable,ue=J.splice,fe=Object.getOwnPropertySymbols,de=ne?ne.isBuffer:void 0,pe=q(Object.keys,Object),he=Re(L,"DataView"),me=Re(L,"Map"),ve=Re(L,"Promise"),_e=Re(L,"Set"),ye=Re(L,"WeakMap"),ge=Re(Object,"create"),be=Be(he),$e=Be(me),Ce=Be(ve),ke=Be(_e),je=Be(ye),xe=ie?ie.prototype:void 0,Oe=xe?xe.valueOf:void 0;function we(e){var t=-1,s=e?e.length:0;for(this.clear();++t<s;){var a=e[t];this.set(a[0],a[1])}}function Me(e){var t=-1,s=e?e.length:0;for(this.clear();++t<s;){var a=e[t];this.set(a[0],a[1])}}function Ee(e){var t=-1,s=e?e.length:0;for(this.clear();++t<s;){var a=e[t];this.set(a[0],a[1])}}function Pe(e){this.__data__=new Me(e)}function Se(e,t){var s,a,n,i=qe(e)||(n=a=s=e)&&"object"==typeof n&&Qe(a)&&te.call(s,"callee")&&(!le.call(s,"callee")||se.call(s)==r)?function(e,t){for(var s=-1,a=Array(e);++s<e;)a[s]=t(s);return a}(e.length,String):[],o=i.length,c=!!o;for(var l in e)!t&&!te.call(e,l)||c&&("length"==l||Ue(l,o))||i.push(l);return i}function Ae(e,t,s){var a=e[t];te.call(e,t)&&Ge(a,s)&&(void 0!==s||t in e)||(e[t]=s)}function Te(e,t){for(var s=e.length;s--;)if(Ge(e[s][0],t))return s;return-1}function De(e,t,s,a,n,i,h){var g;if(a&&(g=i?a(e,n,i,h):a(e)),void 0!==g)return g;if(!Xe(e))return e;var A,T,I,H,L,F,R=qe(e);if(R){if(g=function(e){var t=e.length,s=e.constructor(t);t&&"string"==typeof e[0]&&te.call(e,"index")&&(s.index=e.index,s.input=e.input);return s}(e),!t)return function(e,t){var s=-1,a=e.length;t||(t=Array(a));for(;++s<a;)t[s]=e[s];return t}(e,g)}else{var z=Ne(e),q=z==l||z==u;if(We(e))return function(e,t){if(t)return e.slice();var s=new e.constructor(e.length);return e.copy(s),s}(e,t);if(z==p||z==r||q&&!i){if(B(e))return i?e:{};if(g="function"!=typeof(L=q?{}:e).constructor||Ve(L)?{}:Xe(F=oe(L))?ce(F):{},!t)return A=e,H=e,T=(I=g)&&Le(H,Ye(H),I),Le(A,ze(A),T)}else{if(!D[z])return i?e:{};g=function(e,t,s,a){var n=e.constructor;switch(t){case b:return He(e);case o:case c:return new n(+e);case $:return A=e,T=a?He(A.buffer):A.buffer,new A.constructor(T,A.byteOffset,A.byteLength);case C:case k:case j:case x:case O:case w:case M:case E:case P:return h=e,g=a?He(h.buffer):h.buffer,new h.constructor(g,h.byteOffset,h.length);case f:return p=e,V(a?s(G(p),!0):G(p),N,new p.constructor);case d:case _:return new n(e);case m:return(u=new(l=e).constructor(l.source,S.exec(l))).lastIndex=l.lastIndex,u;case v:return r=e,V(a?s(Q(r),!0):Q(r),U,new r.constructor);case y:return i=e,Oe?Object(Oe.call(i)):{}}var i;var r;var l,u;var p;var h,g;var A,T}(e,z,De,t)}}h||(h=new Pe);var W,J,X,Y=h.get(e);if(Y)return Y;if(h.set(e,g),!R)var Z=s?(J=ze,X=Ye(W=e),qe(W)?X:function(e,t){for(var s=-1,a=t.length,n=e.length;++s<a;)e[n+s]=t[s];return e}(X,J(W))):Ye(e);return function(e,t){for(var s=-1,a=e?e.length:0;++s<a&&!1!==t(e[s],s,e););}(Z||e,function(n,i){Z&&(n=e[i=n]),Ae(g,i,De(n,t,s,a,i,e,h))}),g}function Ie(e){return!(!Xe(e)||K&&K in e)&&(Je(e)||B(e)?ae:A).test(Be(e))}function He(e){var t=new e.constructor(e.byteLength);return new re(t).set(new re(e)),t}function Le(e,t,s,a){s||(s={});for(var n=-1,i=t.length;++n<i;){var r=t[n],o=a?a(s[r],e[r],r,s,e):void 0;Ae(s,r,void 0===o?e[r]:o)}return s}function Fe(e,t){var s,a,n=e.__data__;return("string"==(a=typeof(s=t))||"number"==a||"symbol"==a||"boolean"==a?"__proto__"!==s:null===s)?n["string"==typeof t?"string":"hash"]:n.map}function Re(e,t){var s,a=null==(s=e)?void 0:s[t];return Ie(a)?a:void 0}we.prototype.clear=function(){this.__data__=ge?ge(null):{}},we.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},we.prototype.get=function(e){var t=this.__data__;if(ge){var s=t[e];return s===n?void 0:s}return te.call(t,e)?t[e]:void 0},we.prototype.has=function(e){var t=this.__data__;return ge?void 0!==t[e]:te.call(t,e)},we.prototype.set=function(e,t){return this.__data__[e]=ge&&void 0===t?n:t,this},Me.prototype.clear=function(){this.__data__=[]},Me.prototype.delete=function(e){var t=this.__data__,s=Te(t,e);return!(s<0||(s==t.length-1?t.pop():ue.call(t,s,1),0))},Me.prototype.get=function(e){var t=this.__data__,s=Te(t,e);return s<0?void 0:t[s][1]},Me.prototype.has=function(e){return Te(this.__data__,e)>-1},Me.prototype.set=function(e,t){var s=this.__data__,a=Te(s,e);return a<0?s.push([e,t]):s[a][1]=t,this},Ee.prototype.clear=function(){this.__data__={hash:new we,map:new(me||Me),string:new we}},Ee.prototype.delete=function(e){return Fe(this,e).delete(e)},Ee.prototype.get=function(e){return Fe(this,e).get(e)},Ee.prototype.has=function(e){return Fe(this,e).has(e)},Ee.prototype.set=function(e,t){return Fe(this,e).set(e,t),this},Pe.prototype.clear=function(){this.__data__=new Me},Pe.prototype.delete=function(e){return this.__data__.delete(e)},Pe.prototype.get=function(e){return this.__data__.get(e)},Pe.prototype.has=function(e){return this.__data__.has(e)},Pe.prototype.set=function(e,t){var s=this.__data__;if(s instanceof Me){var n=s.__data__;if(!me||n.length<a-1)return n.push([e,t]),this;s=this.__data__=new Ee(n)}return s.set(e,t),this};var ze=fe?q(fe,Object):function(){return[]},Ne=function(e){return se.call(e)};function Ue(e,t){return!!(t=null==t?i:t)&&("number"==typeof e||T.test(e))&&e>-1&&e%1==0&&e<t}function Ve(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Y)}function Be(e){if(null!=e){try{return ee.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function Ge(e,t){return e===t||e!=e&&t!=t}(he&&Ne(new he(new ArrayBuffer(1)))!=$||me&&Ne(new me)!=f||ve&&Ne(ve.resolve())!=h||_e&&Ne(new _e)!=v||ye&&Ne(new ye)!=g)&&(Ne=function(e){var t=se.call(e),s=t==p?e.constructor:void 0,a=s?Be(s):void 0;if(a)switch(a){case be:return $;case $e:return f;case Ce:return h;case ke:return v;case je:return g}return t});var qe=Array.isArray;function Qe(e){return null!=e&&("number"==typeof(t=e.length)&&t>-1&&t%1==0&&t<=i)&&!Je(e);var t}var We=de||function(){return!1};function Je(e){var t=Xe(e)?se.call(e):"";return t==l||t==u}function Xe(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function Ye(e){return Qe(e)?Se(e):function(e){if(!Ve(e))return pe(e);var t=[];for(var s in Object(e))te.call(e,s)&&"constructor"!=s&&t.push(s);return t}(e)}s.exports=function(e){return De(e,!0,!0)}}).call(t,s("DuR2"),s("3IRH")(e))}});
\ No newline at end of file
diff --git a/files/pages_specification_measurement-message.0d15bcfe330182da8363.js b/files/pages_specification_measurement-message.0d15bcfe330182da8363.js
deleted file mode 100644
index 8ca4ea7..0000000
--- a/files/pages_specification_measurement-message.0d15bcfe330182da8363.js
+++ /dev/null
@@ -1 +0,0 @@
-webpackJsonp([1],{"3IRH":function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},"5PlU":function(e,t,s){var r=s("RY/4"),a=s("dSzd")("iterator"),n=s("/bQp");e.exports=s("FeBl").isIterable=function(e){var t=Object(e);return void 0!==t[a]||"@@iterator"in t||n.hasOwnProperty(r(t))}},"5pwE":function(e,t,s){(e.exports=s("YHym")(!1)).push([e.i,".schemaDetail a{text-decoration:none}.schemaDetail .property ul{list-style-type:disc;padding-left:1em;margin-left:0;margin-top:0}",""])},"77aO":function(e,t,s){"use strict";t.a={props:{collapsed:{type:Boolean,default:!1}},data:function(){return{expanded:!this.collapsed,transitioning:!1}},watch:{collapsed:function(e){this.expanded=!e}},methods:{beforeenter:function(e){this.transitioning=!0,e.style.height=0},enter:function(e){e.style.height=e.scrollHeight+"px"},afterenter:function(e){e.style.height="",this.transitioning=!1},beforeleave:function(e){this.transitioning=!0,e.style.height=e.offsetHeight+"px",e.offsetHeight},leave:function(e){e.style.height=0,e.offsetHeight},afterleave:function(e){this.transitioning=!1},toggle:function(){this.transitioning||(this.expanded=!this.expanded,this.$emit(this.expanded?"expanding":"collapsing",this.id))}}}},A51D:function(e,t,s){var r=s("5pwE");"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);s("rjj0")("188b52d2",r,!1)},AxiT:function(e,t,s){var r=s("Lw7C");"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);s("rjj0")("0868896c",r,!1)},D9sP:function(e,t,s){"use strict";var r=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"schemaDetail",class:{"is-loading":e.loading},attrs:{id:"schema-detail"}},[s("div",{staticClass:"accordion"},[null!==e.schemas?s("card",{attrs:{collapsed:!0}},[s("template",{slot:"header"},[e._v("\n          Structure of payload\n        ")]),s("schemaToc",{attrs:{schemas:e.schemas,tag:"div"}})],2):e._e(),e._t("default")],2),s("h1",[s("a",{attrs:{id:e.type+"-schema-detail",title:e.type+" Fields definition"}}),e._v("\n      Fields definition\n    ")]),e._l(e.schemas,function(t){return s("div",{key:t.$key,staticClass:"card property"},[s("header",{staticClass:"card-header"},[s("a",{attrs:{id:"p-"+t.$idx}}),s("p",{staticClass:"card-header-title"},[s("span",{domProps:{innerHTML:e._s(t.$path)}})]),s("nuxt-link",{staticClass:"card-header-icon",attrs:{to:"#schema-detail",title:"go up"}},[s("span",{staticClass:"icon"},[s("i",{staticClass:"fa fa-angle-up"})])])],1),s("div",{staticClass:"card-content"},[t.description||t.type?s("div",{staticClass:"field is-horizontal"},[e._m(0,!0),t.description?s("div",{staticClass:"field-body"},[e._v("\n            "+e._s(t.description)+"\n          ")]):t.type?s("div",{staticClass:"field-body"},[e._v("\n            A simple "+e._s(e._f("capitalize")(t.type))+"\n          ")]):e._e()]):e._e(),t.$parent?s("div",{staticClass:"field is-horizontal"},[e._m(1,!0),s("div",{staticClass:"field-body"},[s("nuxt-link",{attrs:{to:"#p-"+t.$parent[0].$idx}},[s("span",{domProps:{innerHTML:e._s(t.$parent[0].$path)}})])],1)]):e._e(),t.type?s("div",{staticClass:"field is-horizontal"},[e._m(2,!0),s("div",{staticClass:"field-body"},[e._v("\n            "+e._s(e._f("capitalize")(t.type,t))+"\n          ")])]):e._e(),t.format?s("div",{staticClass:"field is-horizontal"},[e._m(3,!0),s("div",{staticClass:"field-body"},[e._v("\n            "+e._s(t.format)+"\n            "),e.$static.formats[t.format]?s("a",{attrs:{href:e.$static.formats[t.format].link}},[e._v(" ("+e._s(e.$static.formats[t.format].name)+")")]):e._e()])]):e._e(),t.enum&&t.enum.length?s("div",{staticClass:"field is-horizontal"},[e._m(4,!0),s("div",{staticClass:"field-body"},[s("div",[e._v("\n              "+e._s(t.enum.join(", "))+"\n            ")])])]):e._e(),t.hasOwnProperty("default")?s("div",{staticClass:"field is-horizontal"},[e._m(5,!0),s("div",{staticClass:"field-body"},[s("div",[e._v("\n              "+e._s(t.default)+"\n            ")])])]):e._e(),t.maxLength?s("div",{staticClass:"field is-horizontal"},[e._m(6,!0),s("div",{staticClass:"field-body"},[s("div",[e._v("\n              "+e._s(t.maxLength)+"\n            ")])])]):e._e(),t.properties||t.patternProperties||t.items?s("div",{staticClass:"field is-horizontal"},[e._m(7,!0),s("div",{staticClass:"field-body"},[Object.keys(t.properties||{}).length>0?s("schemaLink",{attrs:{schemas:e.schemas,link:t.properties}}):e._e(),Object.keys(t.patternProperties||{}).length>0?s("schemaLink",{attrs:{schemas:e.schemas,link:t.patternProperties}},[s("div",[e._v("Matching regular expressions:")])]):e._e(),!t.items||t.items instanceof Array?t.items?s("schemaLink",{attrs:{schemas:e.schemas,link:t.items}},[s("div",[e._v("Ordered items of type:")])]):e._e():s("schemaLink",{attrs:{schemas:e.schemas,link:t.items}}),Object.keys(t.properties||{}).length+Object.keys(t.patternProperties||{}).length!==0||t.items?e._e():[e._v("none")]],2)]):e._e(),t.minProperties?s("div",{staticClass:"field is-horizontal"},[e._m(8,!0),s("div",{staticClass:"field-body"},[s("div",[e._v("\n              "+e._s(t.minProperties)+"\n            ")])])]):e._e(),t.minItems?s("div",{staticClass:"field is-horizontal"},[e._m(9,!0),s("div",{staticClass:"field-body"},[s("div",[e._v("\n              "+e._s(t.minItems)+"\n            ")])])]):e._e(),t.hasOwnProperty("additionalProperties")?s("div",{staticClass:"field is-horizontal"},[e._m(10,!0),"boolean"==typeof t.additionalProperties?s("schemaLink",{staticClass:"field-body",attrs:{schemas:e.schemas,link:t.additionalProperties}}):s("div",{staticClass:"field-body"},[e._v("\n            if fulfilling "),s("schemaLink",{staticClass:"field-body",attrs:{schemas:e.schemas,link:t.additionalProperties}})],1)],1):e._e(),t.not||t.oneOf||t.allOf||t.anyOf?s("div",{staticClass:"field is-horizontal"},[e._m(11,!0),s("div",{staticClass:"field-body"},[t.not?s("schemaLink",{attrs:{schemas:e.schemas,link:t.not}},[e._v("\n              Not fulfilling \n            ")]):e._e(),t.oneOf?s("schemaLink",{attrs:{schemas:e.schemas,link:t.oneOf}},[s("div",[e._v("Fulfilling exactly one of:")])]):e._e(),t.allOf?s("schemaLink",{attrs:{schemas:e.schemas,link:t.allOf}},[s("div",[e._v("Fulfilling all of:")])]):e._e(),t.anyOf?s("schemaLink",{attrs:{schemas:e.schemas,link:t.anyOf}},[s("div",[e._v("Fulfilling one of:")])]):e._e()],1)]):e._e(),t.required&&t.required.length?s("div",{staticClass:"field is-horizontal"},[e._m(12,!0),s("div",{staticClass:"field-body"},[e._v("\n            "+e._s(t.required.join(", "))+"\n          ")])]):e._e(),e.examples.hasOwnProperty(t.$key)?s("div",{staticClass:"field is-horizontal"},[e._m(13,!0),s("div",{staticClass:"field-body"},[s("prism",{attrs:{language:"json"}},[e._v('...\n"'+e._s(e.examples[t.$key][1])+'": '+e._s(e._f("stringify")(e.examples[t.$key][0][e.examples[t.$key][1]]))+"\n...")])],1)]):e._e()])])})],2)};r._withStripped=!0;var a={render:r,staticRenderFns:[function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Description:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Parent:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Type:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Format:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Possible values:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Defaults to:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Maximum length:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Restriction on subfields:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Minimum amount of subfields:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Minimum amount of items:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Allows additional fields:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Restriction with boolean logic:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Required fields:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Example:")])])}]};t.a=a},Gs0Q:function(e,t,s){"use strict";t.a={name:"schemaToc",props:{tag:{type:String,default:"li"},schemas:{type:Object},entryNode:{type:String,default:"$"}},computed:{schema:function(){return this.schemas[this.entryNode]}}}},LJry:function(e,t,s){"use strict";var r={functional:!0,props:{code:{type:String},language:{type:String,default:"markup"}},render:function(e,t){var s=t.props.code||t.children[0].text,r=t.props.language,a=Prism.languages[r],n="language-"+r;return e("pre",function(e){for(var t=arguments,s=1;s<arguments.length;s++)for(var r in arguments[s])e[r]=t[s][r];return e}({},t.data,{class:[t.data.class,n]}),[e("code",{class:n,domProps:{innerHTML:Prism.highlight(s,a)}})])}};e.exports=r},Lw7C:function(e,t,s){(e.exports=s("YHym")(!1)).push([e.i,"@keyframes spinAround{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}",""])},NVTU:function(e,t,s){"use strict";var r=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"card collapsibleCard",class:{collapsed:!e.expanded}},[e.$slots.header?s("header",{staticClass:"card-header",on:{click:function(t){t.preventDefault(),e.toggle()}}},[s("p",{staticClass:"card-header-title"},[!e.$slots.headerCollapsed||e.expanded?e._t("header"):e._t("headerCollapsed")],2),s("a",{staticClass:"card-header-icon"},[s("span",{staticClass:"icon"},[s("i",{staticClass:"fa",class:{"fa-angle-down":e.expanded,"fa-angle-up":!e.expanded}})])])]):e._e(),s("transition",{attrs:{name:"rollup","leave-active-class":"collapsing","enter-active-class":"collapsing"},on:{"before-leave":e.beforeleave,leave:e.leave,"after-leave":e.afterleave,"before-enter":e.beforeenter,enter:e.enter,"after-enter":e.afterenter}},[s("div",{directives:[{name:"show",rawName:"v-show",value:e.expanded,expression:"expanded"}]},[s("div",{staticClass:"card-content"},[e._t("default")],2)])])],1)};r._withStripped=!0;var a={render:r,staticRenderFns:[]};t.a=a},PD5z:function(e,t,s){"use strict";var r=function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"measurement-message content"},[this._m(0),t("p",[this._v("The measurement message is the format to exchange simple (non-structured, non-complex ) measurement data. It also allows to transport multiple measurement data (eg. values over time), called 'series'.")]),t("img",{staticClass:"is-centered",attrs:{src:"images/measurementPayload.svg",alt:"Class diagram of the measurement payload",title:"Class diagram of the measurement payload"}}),t("schemaDetail",{attrs:{type:"measurement",examples:this.$static.examples}},[t("card",{attrs:{collapsed:!0}},[t("template",{slot:"header"},[this._v("\n        Minimal message example\n      ")]),t("prism",{attrs:{language:"json"}},[this._v(this._s(this._f("stringify")(this.$static.message)))])],2),t("card",{attrs:{collapsed:!0}},[t("template",{slot:"header"},[this._v("\n        Multiple message example\n      ")]),t("prism",{attrs:{language:"json"}},[this._v(this._s(this._f("stringify")(this.$static.complexMessage)))])],2)],1)],1)};r._withStripped=!0;var a={render:r,staticRenderFns:[function(){var e=this.$createElement,t=this._self._c||e;return t("h1",[t("a",{attrs:{id:"Measurement-Payload",title:"Measurement Payload"}}),this._v("\n    Measurement Payload\n  ")])}]};t.a=a},T9Hf:function(e,t,s){"use strict";var r=s("77aO"),a=s("NVTU"),n=!1;var i=function(e){n||s("WVEp")},o=s("VU/8")(r.a,a.a,!1,i,null,null);o.options.__file="components\\collapsibleCard.vue",t.a=o.exports},TmV0:function(e,t,s){s("fZOM"),e.exports=s("FeBl").Object.values},W3Iv:function(e,t,s){e.exports={default:s("wEtr"),__esModule:!0}},WVEp:function(e,t,s){var r=s("a3hs");"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);s("rjj0")("52cedc5e",r,!1)},Xd32:function(e,t,s){s("+tPU"),s("zQR9"),e.exports=s("5PlU")},a3hs:function(e,t,s){(e.exports=s("YHym")(!1)).push([e.i,"@keyframes spinAround{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}.card.collapsibleCard>header{cursor:pointer;background-color:#f5f5f5;border-bottom:1px solid hsla(0,0%,4%,.1)}.card.collapsibleCard>header .card-header-icon{text-decoration:none}.card.collapsibleCard>header .card-header-title{font-weight:400}.card.collapsibleCard>header p{margin-bottom:0}.card.collapsibleCard.collapsed header{border-bottom:none}.card.collapsibleCard>div.collapsing{position:relative;height:0;overflow:hidden;display:block;transition-property:height;transition-duration:.35s;transition-timing-function:ease}",""])},bOdI:function(e,t,s){"use strict";t.__esModule=!0;var r,a=s("C4MV"),n=(r=a)&&r.__esModule?r:{default:r};t.default=function(e,t,s){return t in e?(0,n.default)(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}},"bXX+":function(e,t,s){"use strict";var r=s("jhkR"),a=s("fvMW"),n=s("VU/8")(r.a,a.a,!1,null,null,null);n.options.__file="components\\schemaLink.vue",t.a=n.exports},cER1:function(e,t,s){"use strict";var r=s("mvHQ"),a=s.n(r),n=s("gRE1"),i=s.n(n),o=s("fZjL"),c=s.n(o),l=s("d7EF"),u=s.n(l),p=s("W3Iv"),f=s.n(p),d=s("bOdI"),m=s.n(d),h=s("woOf"),v=s.n(h),_=s("LJry"),y=s.n(_),g=s("zM1N"),b=s.n(g),$=s("T9Hf"),x=s("mQxp"),C=s("bXX+");t.a={props:{type:{type:String,required:!0},examples:{type:Object,required:!1,default:function(){return{}}}},data:function(){return{schema:null,loading:!0}},created:function(){var e=this,t={date:{link:"https://tools.ietf.org/html/rfc3339#section-5.6",name:"RFC3339, 5.6"},email:{link:"https://tools.ietf.org/html/rfc5322#section-3.4.1",name:"RFC5322, 3.4.1"}};s("kGrr")("./"+this.type+"_schema.json").then(function(t){return e.schema=t,e.loading=!1,e.idx=0,t}).catch(function(e){throw e}),this.$static={formats:{"date-time":t.date,date:t.date,time:t.date,email:t.email}}},methods:{flattenSchema:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{$key:"$",$path:"$"};!0===t?t={}:!1===t&&(t={not:!0});var r=m()({},s.$key,v()(t,s,{$idx:++this.idx}));if(t.items)if(t.items instanceof Array)t.items.forEach(function(a,n){var i={$key:s.$key+"/"+n,$path:s.$path+"["+n+"]",$parent:[t,t.items,n]};v()(r,e.flattenSchema(a,i)),t.items[n]=i.$key});else{var a={$key:s.$key+"/",$path:s.$path+"[*]",$parent:[t,t,"items"]};v()(r,this.flattenSchema(t.items,a)),t.items=a.$key}return["properties","patternProperties"].filter(function(e){return t.hasOwnProperty(e)}).forEach(function(a){return f()(t[a]).forEach(function(n,i){var o=u()(n,2),c=o[0],l=o[1],p={$key:s.$key+"/"+a+"/"+encodeURIComponent(c),$path:s.$path+"&#8203;.",$parent:[t,t[a],c]};p.$path+="patternProperties"===a?"&lt;field&gt;":c,v()(r,e.flattenSchema(l,p)),t[a][c]=p.$key})}),["additionalItems","additionalProperties","contains","propertyNames","not"].filter(function(e){return t.hasOwnProperty(e)}).forEach(function(a){var n={$key:s.$key+"/"+a,$path:s.$path+"+",$parent:[t,t,a]};v()(r,e.flattenSchema(t[a],n)),t[a]=n.$key}),["allOf","anyOf","oneOf"].filter(function(e){return t.hasOwnProperty(e)}).forEach(function(a){return t[a].forEach(function(n,i){var o={$key:s.$key+"/"+a+"/"+i,$path:s.$path+"("+i+")?",$parent:[t,t[a],i]};v()(r,e.flattenSchema(n,o)),t[a][i]=o.$key})}),r},shrinkSchemas:function(e){var t=function(e){return e.anyOf&&e.anyOf.indexOf(!0)>=0?[e,!0]:e.allOf&&e.allOf.indexOf(!1)>=0?[e,!1]:!0===e.not?[e,!1]:0===c()(e).filter(function(e){return"$"!==e[0]}).length?[e,!0]:null};return i()(e).map(t).filter(function(e){return e}).forEach(function s(r){if(r){var a=u()(r,2),n=a[0],i=a[1];n.$parent[1][n.$parent[2]]=i,delete e[n.$key],s(t(n.$parent[0]))}}),e}},computed:{schemas:function(){return null===this.schema?null:this.shrinkSchemas(this.flattenSchema(b()(this.schema)))}},filters:{stringify:function(e){return a()(e," ",2)},capitalize:function(e,t){return e?(e instanceof Array||(e=[e]),e.map(function(e){return""+e[0].toUpperCase()+e.slice(1)}).join(", ")):""}},components:{card:$.a,prism:y.a,schemaToc:x.a,schemaLink:C.a}}},d7EF:function(e,t,s){"use strict";t.__esModule=!0;var r=n(s("us/S")),a=n(s("BO1k"));function n(e){return e&&e.__esModule?e:{default:e}}t.default=function(){return function(e,t){if(Array.isArray(e))return e;if((0,r.default)(Object(e)))return function(e,t){var s=[],r=!0,n=!1,i=void 0;try{for(var o,c=(0,a.default)(e);!(r=(o=c.next()).done)&&(s.push(o.value),!t||s.length!==t);r=!0);}catch(e){n=!0,i=e}finally{try{!r&&c.return&&c.return()}finally{if(n)throw i}}return s}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}()},fC1w:function(e,t,s){"use strict";var r=s("mvHQ"),a=s.n(r),n=s("LJry"),i=s.n(n),o=s("T9Hf"),c=s("s8mu");t.a={head:function(){return{title:"Specification for measurement messages"}},created:function(){var e=new Date,t="a4927dad-58d4-4580-b460-79cefd56775b";this.$static={message:{"content-spec":"urn:spec://eclipse.org/unide/measurement-message#v2",device:{deviceID:t},measurements:[{ts:e.toISOString(),series:{$_time:[0,23,24],temperature:[45.4231,46.4222,44.2432]}}]},complexMessage:{"content-spec":"urn:spec://eclipse.org/unide/measurement-message#v2",device:{deviceID:t,operationalStatus:"MM",metaData:{swVersion:"2.0.3.13",swBuildID:"41535"}},part:{partTypeID:"F00VH07328",partID:"420003844",result:"OK",code:"HUH289",metaData:{lotID:"845849",toolID:"32324-432143"}},measurements:[{ts:e.toISOString(),code:"190ABT",result:"OK",series:{$_time:[0,23,24],temperature:[45.4231,46.4222,44.2432]},limits:{temperature:{lowerError:40,lowerWarn:45,upperError:50,upperWarn:47.5}}},{ts:new Date(e.valueOf()-5e3).toISOString(),series:{$_time:[0,130,2633],pressure:[52.4,46.32,44.2432]}}]}},this.$static.examples={"$/properties/content-spec":[this.$static.message,"content-spec"],"$/properties/device":[this.$static.complexMessage,"device"],"$/properties/device/properties/deviceID":[this.$static.message.device,"deviceID"],"$/properties/device/properties/metaData":[this.$static.complexMessage.device,"metaData"],"$/properties/device/properties/operationalStatus":[this.$static.complexMessage.device,"operationalStatus"],"$/properties/measurements":[this.$static.message,"measurements"],"$/properties/measurements//properties/code":[this.$static.complexMessage.measurements[0],"code"],"$/properties/measurements//properties/limits":[this.$static.complexMessage.measurements[0],"limits"],"$/properties/measurements//properties/limits/patternProperties/%5E%5B%5E%24%5D.%2B":[this.$static.complexMessage.measurements[0].limits,"temperature"],"$/properties/measurements//properties/limits/patternProperties/%5E%5B%5E%24%5D.%2B/properties/lowerError":[this.$static.complexMessage.measurements[0].limits.temperature,"lowerError"],"$/properties/measurements//properties/limits/patternProperties/%5E%5B%5E%24%5D.%2B/properties/lowerWarn":[this.$static.complexMessage.measurements[0].limits.temperature,"lowerWarn"],"$/properties/measurements//properties/limits/patternProperties/%5E%5B%5E%24%5D.%2B/properties/upperError":[this.$static.complexMessage.measurements[0].limits.temperature,"upperError"],"$/properties/measurements//properties/limits/patternProperties/%5E%5B%5E%24%5D.%2B/properties/upperWarn":[this.$static.complexMessage.measurements[0].limits.temperature,"upperWarn"],"$/properties/measurements//properties/result":[this.$static.complexMessage.measurements[0],"result"],"$/properties/measurements//properties/series":[this.$static.message.measurements[0],"series"],"$/properties/measurements//properties/series/patternProperties/%5E%5B%5E%24%5D.%2B":[this.$static.message.measurements[0].series,"temperature"],"$/properties/measurements//properties/series/properties/%24_time":[this.$static.message.measurements[0].series,"$_time"],"$/properties/measurements//properties/ts":[this.$static.message.measurements[0],"ts"],"$/properties/part":[this.$static.complexMessage,"part"],"$/properties/part/properties/code":[this.$static.complexMessage.part,"code"],"$/properties/part/properties/metaData":[this.$static.complexMessage.part,"metaData"],"$/properties/part/properties/partID":[this.$static.complexMessage.part,"partID"],"$/properties/part/properties/partTypeID":[this.$static.complexMessage.part,"partTypeID"],"$/properties/part/properties/result":[this.$static.complexMessage.part,"result"]}},filters:{stringify:function(e){return a()(e," ",2)}},components:{card:o.a,prism:i.a,schemaDetail:c.a}}},fZOM:function(e,t,s){var r=s("kM2E"),a=s("mbce")(!1);r(r.S,"Object",{values:function(e){return a(e)}})},fvMW:function(e,t,s){"use strict";var r=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[e._t("default"),!0===e.link?[e._v("\n    yes \n  ")]:!1===e.link?[e._v("\n    no \n  ")]:"string"==typeof e.link?[s("nuxt-link",{attrs:{to:"#p-"+e.schemas[e.link].$idx}},[s("span",{domProps:{innerHTML:e._s(e.schemas[e.link].$path)}})])]:e.link instanceof Array?s("ul",e._l(e.link,function(t){return s("li",[s("nuxt-link",{attrs:{to:"#p-"+e.schemas[t].$idx}},[s("span",{domProps:{innerHTML:e._s(e.schemas[t].$path)}})])],1)})):e.link instanceof Object?s("ul",e._l(e.link,function(t,r){return s("li",[s("nuxt-link",{attrs:{to:"#p-"+e.schemas[t].$idx}},[e._v("\n        "+e._s(r)+"\n      ")])],1)})):e._e()],2)};r._withStripped=!0;var a={render:r,staticRenderFns:[]};t.a=a},gRE1:function(e,t,s){e.exports={default:s("TmV0"),__esModule:!0}},gSvA:function(e,t,s){var r=s("kM2E"),a=s("mbce")(!0);r(r.S,"Object",{entries:function(e){return a(e)}})},hvFG:function(e,t,s){"use strict";var r=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s(e.tag,{tag:"component"},[s("nuxt-link",{attrs:{to:"#p-"+e.schema.$idx}},[s("span",{domProps:{innerHTML:e._s(e.schema.$path)}})]),e.schema.properties||e.schema.patternProperties||e.schema.items?s("ul",[e._l(e.schema.properties,function(t,r){return s("schemaToc",{key:r,attrs:{schemas:e.schemas,entryNode:t}})}),e._l(e.schema.patternProperties,function(t,r){return s("schemaToc",{key:r,attrs:{schemas:e.schemas,entryNode:t}})}),e.schema.items?[e.schema.items instanceof Array?e._l(e.schema.items,function(t,r){return s("schemaToc",{key:r,attrs:{schemas:e.schemas,entryNode:t}})}):s("schemaToc",{attrs:{schemas:e.schemas,entryNode:e.schema.items}})]:e._e()],2):e._e()],1)};r._withStripped=!0;var a={render:r,staticRenderFns:[]};t.a=a},jhkR:function(e,t,s){"use strict";t.a={props:{schemas:{type:Object,required:!0},link:{required:!0}}}},kGrr:function(e,t,s){var r={"./measurement_schema.json":["oGp6",17],"./message_schema.json":["2BTs",16],"./process_schema.json":["rRyJ",15]};function a(e){var t=r[e];return t?s.e(t[1]).then(function(){return s(t[0])}):Promise.reject(new Error("Cannot find module '"+e+"'."))}a.keys=function(){return Object.keys(r)},a.id="kGrr",e.exports=a},lYS2:function(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=s("fC1w"),a=s("PD5z"),n=s("VU/8")(r.a,a.a,!1,null,null,null);n.options.__file="pages\\specification\\measurement-message.vue",t.default=n.exports},mQxp:function(e,t,s){"use strict";var r=s("Gs0Q"),a=s("hvFG"),n=!1;var i=function(e){n||s("AxiT")},o=s("VU/8")(r.a,a.a,!1,i,null,null);o.options.__file="components\\schemaToc.vue",t.a=o.exports},mbce:function(e,t,s){var r=s("lktj"),a=s("TcQ7"),n=s("NpIQ").f;e.exports=function(e){return function(t){for(var s,i=a(t),o=r(i),c=o.length,l=0,u=[];c>l;)n.call(i,s=o[l++])&&u.push(e?[s,i[s]]:i[s]);return u}}},s8mu:function(e,t,s){"use strict";var r=s("cER1"),a=s("D9sP"),n=!1;var i=function(e){n||s("A51D")},o=s("VU/8")(r.a,a.a,!1,i,null,null);o.options.__file="components\\schemaDetail.vue",t.a=o.exports},"us/S":function(e,t,s){e.exports={default:s("Xd32"),__esModule:!0}},wEtr:function(e,t,s){s("gSvA"),e.exports=s("FeBl").Object.entries},zM1N:function(e,t,s){(function(e,s){var r=200,a="__lodash_hash_undefined__",n=9007199254740991,i="[object Arguments]",o="[object Boolean]",c="[object Date]",l="[object Function]",u="[object GeneratorFunction]",p="[object Map]",f="[object Number]",d="[object Object]",m="[object Promise]",h="[object RegExp]",v="[object Set]",_="[object String]",y="[object Symbol]",g="[object WeakMap]",b="[object ArrayBuffer]",$="[object DataView]",x="[object Float32Array]",C="[object Float64Array]",k="[object Int8Array]",j="[object Int16Array]",O="[object Int32Array]",w="[object Uint8Array]",E="[object Uint8ClampedArray]",P="[object Uint16Array]",M="[object Uint32Array]",S=/\w*$/,D=/^\[object .+?Constructor\]$/,A=/^(?:0|[1-9]\d*)$/,I={};I[i]=I["[object Array]"]=I[b]=I[$]=I[o]=I[c]=I[x]=I[C]=I[k]=I[j]=I[O]=I[p]=I[f]=I[d]=I[h]=I[v]=I[_]=I[y]=I[w]=I[E]=I[P]=I[M]=!0,I["[object Error]"]=I[l]=I[g]=!1;var T="object"==typeof e&&e&&e.Object===Object&&e,L="object"==typeof self&&self&&self.Object===Object&&self,F=T||L||Function("return this")(),R="object"==typeof t&&t&&!t.nodeType&&t,z=R&&"object"==typeof s&&s&&!s.nodeType&&s,B=z&&z.exports===R;function H(e,t){return e.set(t[0],t[1]),e}function U(e,t){return e.add(t),e}function V(e,t,s,r){var a=-1,n=e?e.length:0;for(r&&n&&(s=e[++a]);++a<n;)s=t(s,e[a],a,e);return s}function N(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(e){}return t}function W(e){var t=-1,s=Array(e.size);return e.forEach(function(e,r){s[++t]=[r,e]}),s}function Q(e,t){return function(s){return e(t(s))}}function G(e){var t=-1,s=Array(e.size);return e.forEach(function(e){s[++t]=e}),s}var q,X=Array.prototype,J=Function.prototype,Y=Object.prototype,Z=F["__core-js_shared__"],K=(q=/[^.]+$/.exec(Z&&Z.keys&&Z.keys.IE_PROTO||""))?"Symbol(src)_1."+q:"",ee=J.toString,te=Y.hasOwnProperty,se=Y.toString,re=RegExp("^"+ee.call(te).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),ae=B?F.Buffer:void 0,ne=F.Symbol,ie=F.Uint8Array,oe=Q(Object.getPrototypeOf,Object),ce=Object.create,le=Y.propertyIsEnumerable,ue=X.splice,pe=Object.getOwnPropertySymbols,fe=ae?ae.isBuffer:void 0,de=Q(Object.keys,Object),me=ze(F,"DataView"),he=ze(F,"Map"),ve=ze(F,"Promise"),_e=ze(F,"Set"),ye=ze(F,"WeakMap"),ge=ze(Object,"create"),be=Ne(me),$e=Ne(he),xe=Ne(ve),Ce=Ne(_e),ke=Ne(ye),je=ne?ne.prototype:void 0,Oe=je?je.valueOf:void 0;function we(e){var t=-1,s=e?e.length:0;for(this.clear();++t<s;){var r=e[t];this.set(r[0],r[1])}}function Ee(e){var t=-1,s=e?e.length:0;for(this.clear();++t<s;){var r=e[t];this.set(r[0],r[1])}}function Pe(e){var t=-1,s=e?e.length:0;for(this.clear();++t<s;){var r=e[t];this.set(r[0],r[1])}}function Me(e){this.__data__=new Ee(e)}function Se(e,t){var s,r,a,n=Qe(e)||(a=r=s=e)&&"object"==typeof a&&Ge(r)&&te.call(s,"callee")&&(!le.call(s,"callee")||se.call(s)==i)?function(e,t){for(var s=-1,r=Array(e);++s<e;)r[s]=t(s);return r}(e.length,String):[],o=n.length,c=!!o;for(var l in e)!t&&!te.call(e,l)||c&&("length"==l||Ue(l,o))||n.push(l);return n}function De(e,t,s){var r=e[t];te.call(e,t)&&We(r,s)&&(void 0!==s||t in e)||(e[t]=s)}function Ae(e,t){for(var s=e.length;s--;)if(We(e[s][0],t))return s;return-1}function Ie(e,t,s,r,a,n,m){var g;if(r&&(g=n?r(e,a,n,m):r(e)),void 0!==g)return g;if(!Je(e))return e;var D,A,T,L,F,R,z=Qe(e);if(z){if(g=function(e){var t=e.length,s=e.constructor(t);t&&"string"==typeof e[0]&&te.call(e,"index")&&(s.index=e.index,s.input=e.input);return s}(e),!t)return function(e,t){var s=-1,r=e.length;t||(t=Array(r));for(;++s<r;)t[s]=e[s];return t}(e,g)}else{var B=He(e),Q=B==l||B==u;if(qe(e))return function(e,t){if(t)return e.slice();var s=new e.constructor(e.length);return e.copy(s),s}(e,t);if(B==d||B==i||Q&&!n){if(N(e))return n?e:{};if(g="function"!=typeof(F=Q?{}:e).constructor||Ve(F)?{}:Je(R=oe(F))?ce(R):{},!t)return D=e,L=e,A=(T=g)&&Fe(L,Ye(L),T),Fe(D,Be(D),A)}else{if(!I[B])return n?e:{};g=function(e,t,s,r){var a=e.constructor;switch(t){case b:return Le(e);case o:case c:return new a(+e);case $:return D=e,A=r?Le(D.buffer):D.buffer,new D.constructor(A,D.byteOffset,D.byteLength);case x:case C:case k:case j:case O:case w:case E:case P:case M:return m=e,g=r?Le(m.buffer):m.buffer,new m.constructor(g,m.byteOffset,m.length);case p:return d=e,V(r?s(W(d),!0):W(d),H,new d.constructor);case f:case _:return new a(e);case h:return(u=new(l=e).constructor(l.source,S.exec(l))).lastIndex=l.lastIndex,u;case v:return i=e,V(r?s(G(i),!0):G(i),U,new i.constructor);case y:return n=e,Oe?Object(Oe.call(n)):{}}var n;var i;var l,u;var d;var m,g;var D,A}(e,B,Ie,t)}}m||(m=new Me);var q,X,J,Y=m.get(e);if(Y)return Y;if(m.set(e,g),!z)var Z=s?(X=Be,J=Ye(q=e),Qe(q)?J:function(e,t){for(var s=-1,r=t.length,a=e.length;++s<r;)e[a+s]=t[s];return e}(J,X(q))):Ye(e);return function(e,t){for(var s=-1,r=e?e.length:0;++s<r&&!1!==t(e[s],s,e););}(Z||e,function(a,n){Z&&(a=e[n=a]),De(g,n,Ie(a,t,s,r,n,e,m))}),g}function Te(e){return!(!Je(e)||K&&K in e)&&(Xe(e)||N(e)?re:D).test(Ne(e))}function Le(e){var t=new e.constructor(e.byteLength);return new ie(t).set(new ie(e)),t}function Fe(e,t,s,r){s||(s={});for(var a=-1,n=t.length;++a<n;){var i=t[a],o=r?r(s[i],e[i],i,s,e):void 0;De(s,i,void 0===o?e[i]:o)}return s}function Re(e,t){var s,r,a=e.__data__;return("string"==(r=typeof(s=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==s:null===s)?a["string"==typeof t?"string":"hash"]:a.map}function ze(e,t){var s,r=null==(s=e)?void 0:s[t];return Te(r)?r:void 0}we.prototype.clear=function(){this.__data__=ge?ge(null):{}},we.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},we.prototype.get=function(e){var t=this.__data__;if(ge){var s=t[e];return s===a?void 0:s}return te.call(t,e)?t[e]:void 0},we.prototype.has=function(e){var t=this.__data__;return ge?void 0!==t[e]:te.call(t,e)},we.prototype.set=function(e,t){return this.__data__[e]=ge&&void 0===t?a:t,this},Ee.prototype.clear=function(){this.__data__=[]},Ee.prototype.delete=function(e){var t=this.__data__,s=Ae(t,e);return!(s<0||(s==t.length-1?t.pop():ue.call(t,s,1),0))},Ee.prototype.get=function(e){var t=this.__data__,s=Ae(t,e);return s<0?void 0:t[s][1]},Ee.prototype.has=function(e){return Ae(this.__data__,e)>-1},Ee.prototype.set=function(e,t){var s=this.__data__,r=Ae(s,e);return r<0?s.push([e,t]):s[r][1]=t,this},Pe.prototype.clear=function(){this.__data__={hash:new we,map:new(he||Ee),string:new we}},Pe.prototype.delete=function(e){return Re(this,e).delete(e)},Pe.prototype.get=function(e){return Re(this,e).get(e)},Pe.prototype.has=function(e){return Re(this,e).has(e)},Pe.prototype.set=function(e,t){return Re(this,e).set(e,t),this},Me.prototype.clear=function(){this.__data__=new Ee},Me.prototype.delete=function(e){return this.__data__.delete(e)},Me.prototype.get=function(e){return this.__data__.get(e)},Me.prototype.has=function(e){return this.__data__.has(e)},Me.prototype.set=function(e,t){var s=this.__data__;if(s instanceof Ee){var a=s.__data__;if(!he||a.length<r-1)return a.push([e,t]),this;s=this.__data__=new Pe(a)}return s.set(e,t),this};var Be=pe?Q(pe,Object):function(){return[]},He=function(e){return se.call(e)};function Ue(e,t){return!!(t=null==t?n:t)&&("number"==typeof e||A.test(e))&&e>-1&&e%1==0&&e<t}function Ve(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Y)}function Ne(e){if(null!=e){try{return ee.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function We(e,t){return e===t||e!=e&&t!=t}(me&&He(new me(new ArrayBuffer(1)))!=$||he&&He(new he)!=p||ve&&He(ve.resolve())!=m||_e&&He(new _e)!=v||ye&&He(new ye)!=g)&&(He=function(e){var t=se.call(e),s=t==d?e.constructor:void 0,r=s?Ne(s):void 0;if(r)switch(r){case be:return $;case $e:return p;case xe:return m;case Ce:return v;case ke:return g}return t});var Qe=Array.isArray;function Ge(e){return null!=e&&("number"==typeof(t=e.length)&&t>-1&&t%1==0&&t<=n)&&!Xe(e);var t}var qe=fe||function(){return!1};function Xe(e){var t=Je(e)?se.call(e):"";return t==l||t==u}function Je(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function Ye(e){return Ge(e)?Se(e):function(e){if(!Ve(e))return de(e);var t=[];for(var s in Object(e))te.call(e,s)&&"constructor"!=s&&t.push(s);return t}(e)}s.exports=function(e){return Ie(e,!0,!0)}}).call(t,s("DuR2"),s("3IRH")(e))}});
\ No newline at end of file
diff --git a/files/pages_specification_process-message.4a591726be19200d1dcf.js b/files/pages_specification_process-message.4a591726be19200d1dcf.js
deleted file mode 100644
index f4ee20a..0000000
--- a/files/pages_specification_process-message.4a591726be19200d1dcf.js
+++ /dev/null
@@ -1 +0,0 @@
-webpackJsonp([0],{"3IRH":function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},"5PlU":function(e,t,s){var r=s("RY/4"),a=s("dSzd")("iterator"),i=s("/bQp");e.exports=s("FeBl").isIterable=function(e){var t=Object(e);return void 0!==t[a]||"@@iterator"in t||i.hasOwnProperty(r(t))}},"5pwE":function(e,t,s){(e.exports=s("YHym")(!1)).push([e.i,".schemaDetail a{text-decoration:none}.schemaDetail .property ul{list-style-type:disc;padding-left:1em;margin-left:0;margin-top:0}",""])},"77aO":function(e,t,s){"use strict";t.a={props:{collapsed:{type:Boolean,default:!1}},data:function(){return{expanded:!this.collapsed,transitioning:!1}},watch:{collapsed:function(e){this.expanded=!e}},methods:{beforeenter:function(e){this.transitioning=!0,e.style.height=0},enter:function(e){e.style.height=e.scrollHeight+"px"},afterenter:function(e){e.style.height="",this.transitioning=!1},beforeleave:function(e){this.transitioning=!0,e.style.height=e.offsetHeight+"px",e.offsetHeight},leave:function(e){e.style.height=0,e.offsetHeight},afterleave:function(e){this.transitioning=!1},toggle:function(){this.transitioning||(this.expanded=!this.expanded,this.$emit(this.expanded?"expanding":"collapsing",this.id))}}}},A51D:function(e,t,s){var r=s("5pwE");"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);s("rjj0")("188b52d2",r,!1)},AxiT:function(e,t,s){var r=s("Lw7C");"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);s("rjj0")("0868896c",r,!1)},D9sP:function(e,t,s){"use strict";var r=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"schemaDetail",class:{"is-loading":e.loading},attrs:{id:"schema-detail"}},[s("div",{staticClass:"accordion"},[null!==e.schemas?s("card",{attrs:{collapsed:!0}},[s("template",{slot:"header"},[e._v("\n          Structure of payload\n        ")]),s("schemaToc",{attrs:{schemas:e.schemas,tag:"div"}})],2):e._e(),e._t("default")],2),s("h1",[s("a",{attrs:{id:e.type+"-schema-detail",title:e.type+" Fields definition"}}),e._v("\n      Fields definition\n    ")]),e._l(e.schemas,function(t){return s("div",{key:t.$key,staticClass:"card property"},[s("header",{staticClass:"card-header"},[s("a",{attrs:{id:"p-"+t.$idx}}),s("p",{staticClass:"card-header-title"},[s("span",{domProps:{innerHTML:e._s(t.$path)}})]),s("nuxt-link",{staticClass:"card-header-icon",attrs:{to:"#schema-detail",title:"go up"}},[s("span",{staticClass:"icon"},[s("i",{staticClass:"fa fa-angle-up"})])])],1),s("div",{staticClass:"card-content"},[t.description||t.type?s("div",{staticClass:"field is-horizontal"},[e._m(0,!0),t.description?s("div",{staticClass:"field-body"},[e._v("\n            "+e._s(t.description)+"\n          ")]):t.type?s("div",{staticClass:"field-body"},[e._v("\n            A simple "+e._s(e._f("capitalize")(t.type))+"\n          ")]):e._e()]):e._e(),t.$parent?s("div",{staticClass:"field is-horizontal"},[e._m(1,!0),s("div",{staticClass:"field-body"},[s("nuxt-link",{attrs:{to:"#p-"+t.$parent[0].$idx}},[s("span",{domProps:{innerHTML:e._s(t.$parent[0].$path)}})])],1)]):e._e(),t.type?s("div",{staticClass:"field is-horizontal"},[e._m(2,!0),s("div",{staticClass:"field-body"},[e._v("\n            "+e._s(e._f("capitalize")(t.type,t))+"\n          ")])]):e._e(),t.format?s("div",{staticClass:"field is-horizontal"},[e._m(3,!0),s("div",{staticClass:"field-body"},[e._v("\n            "+e._s(t.format)+"\n            "),e.$static.formats[t.format]?s("a",{attrs:{href:e.$static.formats[t.format].link}},[e._v(" ("+e._s(e.$static.formats[t.format].name)+")")]):e._e()])]):e._e(),t.enum&&t.enum.length?s("div",{staticClass:"field is-horizontal"},[e._m(4,!0),s("div",{staticClass:"field-body"},[s("div",[e._v("\n              "+e._s(t.enum.join(", "))+"\n            ")])])]):e._e(),t.hasOwnProperty("default")?s("div",{staticClass:"field is-horizontal"},[e._m(5,!0),s("div",{staticClass:"field-body"},[s("div",[e._v("\n              "+e._s(t.default)+"\n            ")])])]):e._e(),t.maxLength?s("div",{staticClass:"field is-horizontal"},[e._m(6,!0),s("div",{staticClass:"field-body"},[s("div",[e._v("\n              "+e._s(t.maxLength)+"\n            ")])])]):e._e(),t.properties||t.patternProperties||t.items?s("div",{staticClass:"field is-horizontal"},[e._m(7,!0),s("div",{staticClass:"field-body"},[Object.keys(t.properties||{}).length>0?s("schemaLink",{attrs:{schemas:e.schemas,link:t.properties}}):e._e(),Object.keys(t.patternProperties||{}).length>0?s("schemaLink",{attrs:{schemas:e.schemas,link:t.patternProperties}},[s("div",[e._v("Matching regular expressions:")])]):e._e(),!t.items||t.items instanceof Array?t.items?s("schemaLink",{attrs:{schemas:e.schemas,link:t.items}},[s("div",[e._v("Ordered items of type:")])]):e._e():s("schemaLink",{attrs:{schemas:e.schemas,link:t.items}}),Object.keys(t.properties||{}).length+Object.keys(t.patternProperties||{}).length!==0||t.items?e._e():[e._v("none")]],2)]):e._e(),t.minProperties?s("div",{staticClass:"field is-horizontal"},[e._m(8,!0),s("div",{staticClass:"field-body"},[s("div",[e._v("\n              "+e._s(t.minProperties)+"\n            ")])])]):e._e(),t.minItems?s("div",{staticClass:"field is-horizontal"},[e._m(9,!0),s("div",{staticClass:"field-body"},[s("div",[e._v("\n              "+e._s(t.minItems)+"\n            ")])])]):e._e(),t.hasOwnProperty("additionalProperties")?s("div",{staticClass:"field is-horizontal"},[e._m(10,!0),"boolean"==typeof t.additionalProperties?s("schemaLink",{staticClass:"field-body",attrs:{schemas:e.schemas,link:t.additionalProperties}}):s("div",{staticClass:"field-body"},[e._v("\n            if fulfilling "),s("schemaLink",{staticClass:"field-body",attrs:{schemas:e.schemas,link:t.additionalProperties}})],1)],1):e._e(),t.not||t.oneOf||t.allOf||t.anyOf?s("div",{staticClass:"field is-horizontal"},[e._m(11,!0),s("div",{staticClass:"field-body"},[t.not?s("schemaLink",{attrs:{schemas:e.schemas,link:t.not}},[e._v("\n              Not fulfilling \n            ")]):e._e(),t.oneOf?s("schemaLink",{attrs:{schemas:e.schemas,link:t.oneOf}},[s("div",[e._v("Fulfilling exactly one of:")])]):e._e(),t.allOf?s("schemaLink",{attrs:{schemas:e.schemas,link:t.allOf}},[s("div",[e._v("Fulfilling all of:")])]):e._e(),t.anyOf?s("schemaLink",{attrs:{schemas:e.schemas,link:t.anyOf}},[s("div",[e._v("Fulfilling one of:")])]):e._e()],1)]):e._e(),t.required&&t.required.length?s("div",{staticClass:"field is-horizontal"},[e._m(12,!0),s("div",{staticClass:"field-body"},[e._v("\n            "+e._s(t.required.join(", "))+"\n          ")])]):e._e(),e.examples.hasOwnProperty(t.$key)?s("div",{staticClass:"field is-horizontal"},[e._m(13,!0),s("div",{staticClass:"field-body"},[s("prism",{attrs:{language:"json"}},[e._v('...\n"'+e._s(e.examples[t.$key][1])+'": '+e._s(e._f("stringify")(e.examples[t.$key][0][e.examples[t.$key][1]]))+"\n...")])],1)]):e._e()])])})],2)};r._withStripped=!0;var a={render:r,staticRenderFns:[function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Description:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Parent:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Type:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Format:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Possible values:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Defaults to:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Maximum length:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Restriction on subfields:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Minimum amount of subfields:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Minimum amount of items:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Allows additional fields:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Restriction with boolean logic:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Required fields:")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"field-label"},[t("label",{staticClass:"label"},[this._v("Example:")])])}]};t.a=a},Gs0Q:function(e,t,s){"use strict";t.a={name:"schemaToc",props:{tag:{type:String,default:"li"},schemas:{type:Object},entryNode:{type:String,default:"$"}},computed:{schema:function(){return this.schemas[this.entryNode]}}}},JR6d:function(e,t,s){"use strict";var r=s("mvHQ"),a=s.n(r),i=s("Dd8w"),n=s.n(i),o=s("LJry"),c=s.n(o),l=s("T9Hf"),p=s("s8mu");t.a={head:function(){return{title:"Specification for process messages"}},created:function(){var e=this,t=new Date,s="a4927dad-58d4-4580-b460-79cefd56775b";this.$static={message:{"content-spec":"urn:spec://eclipse.org/unide/process-message#v2",device:{deviceID:s},process:{ts:t.toISOString()},measurements:[{ts:new Date(t.valueOf()+100).toISOString(),series:{force:[26,23,24],pressure:[52.4,46.32,44.2432]}}]},complexMessage:{"content-spec":"urn:spec://eclipse.org/unide/process-message#v2",device:{deviceID:s,operationalStatus:"normal",metaData:{swVersion:"2.0.3.13",swBuildId:"41535"}},part:{type:"SINGLE",partTypeID:"F00VH07328",partID:"420003844",result:"NOK",code:"HUH289",metaData:{toolId:"32324-432143"}},process:{externalProcessId:"b4927dad-58d4-4580-b460-79cefd56775b",ts:t.toISOString(),result:"NOK",shutoffPhase:"phase 2",program:{id:"1",name:"Programm 1",lastChangedDate:"2002-05-30T09:30:10.123+02:00"},shutoffValues:{force:{ts:new Date(t.valueOf()+1e4).toISOString(),value:24,upperError:26,lowerError:22,upperWarn:25,lowerWarn:23,target:24},pressure:{value:50,upperError:52,lowerError:48}},metaData:{maxDuration:"30min",escalation:"shift leader"}},measurements:[{ts:new Date(t.valueOf()+100).toISOString(),phase:"phase 1",name:"heating up",result:"OK",code:"0000 EE01",limits:{pressure:{upperError:4444,lowerError:44,upperWarn:2222,lowerWarn:46,target:35},force:{upperError:[27,24,25],lowerError:[25,22,23]}},specialValues:[{$_time:12,name:"turning point",value:{pressure:24,force:50}}],series:{time:[30,36,42],force:[26,23,24],pressure:[52.4,46.32,44.2432],temperature:[45.4243,46.42342,44.2432]}},{ts:new Date(t.valueOf()+430).toISOString(),phase:"phase 2",name:"processing",result:"OK",series:{$_time:[0,23,24],temperature:[49.2,48.8,50]}}]}},this.$static.examples=n()({"$/properties/content-spec":[this.$static.message,"content-spec"],"$/properties/device":[this.$static.complexMessage,"device"],"$/properties/device/properties/deviceID":[this.$static.message.device,"deviceID"],"$/properties/device/properties/metaData":[this.$static.complexMessage.device,"metaData"],"$/properties/device/properties/operationalStatus":[this.$static.complexMessage.device,"operationalStatus"],"$/properties/measurements":[this.$static.message,"measurements"],"$/properties/measurements//properties/code":[this.$static.complexMessage.measurements[0],"code"],"$/properties/measurements//properties/limits":[this.$static.complexMessage.measurements[0],"limits"],"$/properties/measurements//properties/limits/patternProperties/%5E%5B%5E%24%5D.%2B":[this.$static.complexMessage.measurements[0].limits,"pressure"]},["lowerError","lowerWarn","target","upperError","upperWarn"].reduce(function(t,s){return t["$/properties/measurements//properties/limits/patternProperties/%5E%5B%5E%24%5D.%2B/properties/"+s]=[e.$static.complexMessage.measurements[0].limits.pressure,s],t},{}),{"$/properties/measurements//properties/name":[this.$static.complexMessage.measurements[0],"name"],"$/properties/measurements//properties/phase":[this.$static.complexMessage.measurements[0],"phase"],"$/properties/measurements//properties/result":[this.$static.complexMessage.measurements[0],"result"],"$/properties/measurements//properties/series":[this.$static.message.measurements[0],"series"],"$/properties/measurements//properties/series/patternProperties/%5E%5B%5E%24%5D.%2B":[this.$static.complexMessage.measurements[0].series,"force"],"$/properties/measurements//properties/series/properties/%24_time":[this.$static.complexMessage.measurements[1].series,"$_time"],"$/properties/measurements//properties/specialValues":[this.$static.complexMessage.measurements[0],"specialValues"],"$/properties/measurements//properties/specialValues//properties/%24_time":[this.$static.complexMessage.measurements[0].specialValues[0],"$_time"],"$/properties/measurements//properties/specialValues//properties/name":[this.$static.complexMessage.measurements[0].specialValues[0],"name"],"$/properties/measurements//properties/specialValues//properties/value":[this.$static.complexMessage.measurements[0].specialValues[0],"value"],"$/properties/measurements//properties/specialValues//properties/value/patternProperties/%5E%5B%5E%24%5D.%2B":[this.$static.complexMessage.measurements[0].specialValues[0].value,"pressure"],"$/properties/measurements//properties/ts":[this.$static.complexMessage.measurements[0],"ts"],"$/properties/part":[this.$static.complexMessage,"part"],"$/properties/part/properties/code":[this.$static.complexMessage.part,"code"],"$/properties/part/properties/metaData":[this.$static.complexMessage.part,"metaData"],"$/properties/part/properties/partID":[this.$static.complexMessage.part,"partId"],"$/properties/part/properties/partTypeID":[this.$static.complexMessage.part,"partTypeID"],"$/properties/part/properties/result":[this.$static.complexMessage.part,"result"],"$/properties/part/properties/type":[this.$static.complexMessage.part,"type"],"$/properties/process":[this.$static.complexMessage,"process"],"$/properties/process/properties/externalProcessId":[this.$static.complexMessage.process,"externalProcessId"],"$/properties/process/properties/metaData":[this.$static.complexMessage.process,"metaData"],"$/properties/process/properties/program":[this.$static.complexMessage.process,"program"],"$/properties/process/properties/program/properties/id":[this.$static.complexMessage.process.program,"id"],"$/properties/process/properties/program/properties/lastChangedDate":[this.$static.complexMessage.process.program,"lastChangedDate"],"$/properties/process/properties/program/properties/name":[this.$static.complexMessage.process.program,"name"],"$/properties/process/properties/result":[this.$static.complexMessage.process,"result"],"$/properties/process/properties/shutoffPhase":[this.$static.complexMessage.process,"shutoffPhase"],"$/properties/process/properties/shutoffValues":[this.$static.complexMessage.process,"shutoffValues"],"$/properties/process/properties/shutoffValues/patternProperties/%5E%5B%5E%24%5D.%2B":[this.$static.complexMessage.process.shutoffValues,"force"]},["lowerError","lowerWarn","target","upperError","upperWarn","value","ts"].reduce(function(t,s){return t["$/properties/process/properties/shutoffValues/patternProperties/%5E%5B%5E%24%5D.%2B/properties/"+s]=[e.$static.complexMessage.process.shutoffValues.force,s],t},{}),{"$/properties/process/properties/ts":[this.$static.complexMessage.process,"ts"]})},filters:{stringify:function(e){return a()(e," ",2)}},components:{card:l.a,prism:c.a,schemaDetail:p.a}}},LJry:function(e,t,s){"use strict";var r={functional:!0,props:{code:{type:String},language:{type:String,default:"markup"}},render:function(e,t){var s=t.props.code||t.children[0].text,r=t.props.language,a=Prism.languages[r],i="language-"+r;return e("pre",function(e){for(var t=arguments,s=1;s<arguments.length;s++)for(var r in arguments[s])e[r]=t[s][r];return e}({},t.data,{class:[t.data.class,i]}),[e("code",{class:i,domProps:{innerHTML:Prism.highlight(s,a)}})])}};e.exports=r},Lw7C:function(e,t,s){(e.exports=s("YHym")(!1)).push([e.i,"@keyframes spinAround{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}",""])},NVTU:function(e,t,s){"use strict";var r=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"card collapsibleCard",class:{collapsed:!e.expanded}},[e.$slots.header?s("header",{staticClass:"card-header",on:{click:function(t){t.preventDefault(),e.toggle()}}},[s("p",{staticClass:"card-header-title"},[!e.$slots.headerCollapsed||e.expanded?e._t("header"):e._t("headerCollapsed")],2),s("a",{staticClass:"card-header-icon"},[s("span",{staticClass:"icon"},[s("i",{staticClass:"fa",class:{"fa-angle-down":e.expanded,"fa-angle-up":!e.expanded}})])])]):e._e(),s("transition",{attrs:{name:"rollup","leave-active-class":"collapsing","enter-active-class":"collapsing"},on:{"before-leave":e.beforeleave,leave:e.leave,"after-leave":e.afterleave,"before-enter":e.beforeenter,enter:e.enter,"after-enter":e.afterenter}},[s("div",{directives:[{name:"show",rawName:"v-show",value:e.expanded,expression:"expanded"}]},[s("div",{staticClass:"card-content"},[e._t("default")],2)])])],1)};r._withStripped=!0;var a={render:r,staticRenderFns:[]};t.a=a},T9Hf:function(e,t,s){"use strict";var r=s("77aO"),a=s("NVTU"),i=!1;var n=function(e){i||s("WVEp")},o=s("VU/8")(r.a,a.a,!1,n,null,null);o.options.__file="components\\collapsibleCard.vue",t.a=o.exports},TmV0:function(e,t,s){s("fZOM"),e.exports=s("FeBl").Object.values},W3Iv:function(e,t,s){e.exports={default:s("wEtr"),__esModule:!0}},WVEp:function(e,t,s){var r=s("a3hs");"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);s("rjj0")("52cedc5e",r,!1)},Xd32:function(e,t,s){s("+tPU"),s("zQR9"),e.exports=s("5PlU")},a3hs:function(e,t,s){(e.exports=s("YHym")(!1)).push([e.i,"@keyframes spinAround{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}.card.collapsibleCard>header{cursor:pointer;background-color:#f5f5f5;border-bottom:1px solid hsla(0,0%,4%,.1)}.card.collapsibleCard>header .card-header-icon{text-decoration:none}.card.collapsibleCard>header .card-header-title{font-weight:400}.card.collapsibleCard>header p{margin-bottom:0}.card.collapsibleCard.collapsed header{border-bottom:none}.card.collapsibleCard>div.collapsing{position:relative;height:0;overflow:hidden;display:block;transition-property:height;transition-duration:.35s;transition-timing-function:ease}",""])},bOdI:function(e,t,s){"use strict";t.__esModule=!0;var r,a=s("C4MV"),i=(r=a)&&r.__esModule?r:{default:r};t.default=function(e,t,s){return t in e?(0,i.default)(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}},"bXX+":function(e,t,s){"use strict";var r=s("jhkR"),a=s("fvMW"),i=s("VU/8")(r.a,a.a,!1,null,null,null);i.options.__file="components\\schemaLink.vue",t.a=i.exports},cER1:function(e,t,s){"use strict";var r=s("mvHQ"),a=s.n(r),i=s("gRE1"),n=s.n(i),o=s("fZjL"),c=s.n(o),l=s("d7EF"),p=s.n(l),u=s("W3Iv"),f=s.n(u),d=s("bOdI"),h=s.n(d),m=s("woOf"),v=s.n(m),_=s("LJry"),g=s.n(_),y=s("zM1N"),b=s.n(y),$=s("T9Hf"),x=s("mQxp"),C=s("bXX+");t.a={props:{type:{type:String,required:!0},examples:{type:Object,required:!1,default:function(){return{}}}},data:function(){return{schema:null,loading:!0}},created:function(){var e=this,t={date:{link:"https://tools.ietf.org/html/rfc3339#section-5.6",name:"RFC3339, 5.6"},email:{link:"https://tools.ietf.org/html/rfc5322#section-3.4.1",name:"RFC5322, 3.4.1"}};s("kGrr")("./"+this.type+"_schema.json").then(function(t){return e.schema=t,e.loading=!1,e.idx=0,t}).catch(function(e){throw e}),this.$static={formats:{"date-time":t.date,date:t.date,time:t.date,email:t.email}}},methods:{flattenSchema:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{$key:"$",$path:"$"};!0===t?t={}:!1===t&&(t={not:!0});var r=h()({},s.$key,v()(t,s,{$idx:++this.idx}));if(t.items)if(t.items instanceof Array)t.items.forEach(function(a,i){var n={$key:s.$key+"/"+i,$path:s.$path+"["+i+"]",$parent:[t,t.items,i]};v()(r,e.flattenSchema(a,n)),t.items[i]=n.$key});else{var a={$key:s.$key+"/",$path:s.$path+"[*]",$parent:[t,t,"items"]};v()(r,this.flattenSchema(t.items,a)),t.items=a.$key}return["properties","patternProperties"].filter(function(e){return t.hasOwnProperty(e)}).forEach(function(a){return f()(t[a]).forEach(function(i,n){var o=p()(i,2),c=o[0],l=o[1],u={$key:s.$key+"/"+a+"/"+encodeURIComponent(c),$path:s.$path+"&#8203;.",$parent:[t,t[a],c]};u.$path+="patternProperties"===a?"&lt;field&gt;":c,v()(r,e.flattenSchema(l,u)),t[a][c]=u.$key})}),["additionalItems","additionalProperties","contains","propertyNames","not"].filter(function(e){return t.hasOwnProperty(e)}).forEach(function(a){var i={$key:s.$key+"/"+a,$path:s.$path+"+",$parent:[t,t,a]};v()(r,e.flattenSchema(t[a],i)),t[a]=i.$key}),["allOf","anyOf","oneOf"].filter(function(e){return t.hasOwnProperty(e)}).forEach(function(a){return t[a].forEach(function(i,n){var o={$key:s.$key+"/"+a+"/"+n,$path:s.$path+"("+n+")?",$parent:[t,t[a],n]};v()(r,e.flattenSchema(i,o)),t[a][n]=o.$key})}),r},shrinkSchemas:function(e){var t=function(e){return e.anyOf&&e.anyOf.indexOf(!0)>=0?[e,!0]:e.allOf&&e.allOf.indexOf(!1)>=0?[e,!1]:!0===e.not?[e,!1]:0===c()(e).filter(function(e){return"$"!==e[0]}).length?[e,!0]:null};return n()(e).map(t).filter(function(e){return e}).forEach(function s(r){if(r){var a=p()(r,2),i=a[0],n=a[1];i.$parent[1][i.$parent[2]]=n,delete e[i.$key],s(t(i.$parent[0]))}}),e}},computed:{schemas:function(){return null===this.schema?null:this.shrinkSchemas(this.flattenSchema(b()(this.schema)))}},filters:{stringify:function(e){return a()(e," ",2)},capitalize:function(e,t){return e?(e instanceof Array||(e=[e]),e.map(function(e){return""+e[0].toUpperCase()+e.slice(1)}).join(", ")):""}},components:{card:$.a,prism:g.a,schemaToc:x.a,schemaLink:C.a}}},d7EF:function(e,t,s){"use strict";t.__esModule=!0;var r=i(s("us/S")),a=i(s("BO1k"));function i(e){return e&&e.__esModule?e:{default:e}}t.default=function(){return function(e,t){if(Array.isArray(e))return e;if((0,r.default)(Object(e)))return function(e,t){var s=[],r=!0,i=!1,n=void 0;try{for(var o,c=(0,a.default)(e);!(r=(o=c.next()).done)&&(s.push(o.value),!t||s.length!==t);r=!0);}catch(e){i=!0,n=e}finally{try{!r&&c.return&&c.return()}finally{if(i)throw n}}return s}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}()},fZOM:function(e,t,s){var r=s("kM2E"),a=s("mbce")(!1);r(r.S,"Object",{values:function(e){return a(e)}})},fvMW:function(e,t,s){"use strict";var r=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[e._t("default"),!0===e.link?[e._v("\n    yes \n  ")]:!1===e.link?[e._v("\n    no \n  ")]:"string"==typeof e.link?[s("nuxt-link",{attrs:{to:"#p-"+e.schemas[e.link].$idx}},[s("span",{domProps:{innerHTML:e._s(e.schemas[e.link].$path)}})])]:e.link instanceof Array?s("ul",e._l(e.link,function(t){return s("li",[s("nuxt-link",{attrs:{to:"#p-"+e.schemas[t].$idx}},[s("span",{domProps:{innerHTML:e._s(e.schemas[t].$path)}})])],1)})):e.link instanceof Object?s("ul",e._l(e.link,function(t,r){return s("li",[s("nuxt-link",{attrs:{to:"#p-"+e.schemas[t].$idx}},[e._v("\n        "+e._s(r)+"\n      ")])],1)})):e._e()],2)};r._withStripped=!0;var a={render:r,staticRenderFns:[]};t.a=a},gRE1:function(e,t,s){e.exports={default:s("TmV0"),__esModule:!0}},gSvA:function(e,t,s){var r=s("kM2E"),a=s("mbce")(!0);r(r.S,"Object",{entries:function(e){return a(e)}})},hvFG:function(e,t,s){"use strict";var r=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s(e.tag,{tag:"component"},[s("nuxt-link",{attrs:{to:"#p-"+e.schema.$idx}},[s("span",{domProps:{innerHTML:e._s(e.schema.$path)}})]),e.schema.properties||e.schema.patternProperties||e.schema.items?s("ul",[e._l(e.schema.properties,function(t,r){return s("schemaToc",{key:r,attrs:{schemas:e.schemas,entryNode:t}})}),e._l(e.schema.patternProperties,function(t,r){return s("schemaToc",{key:r,attrs:{schemas:e.schemas,entryNode:t}})}),e.schema.items?[e.schema.items instanceof Array?e._l(e.schema.items,function(t,r){return s("schemaToc",{key:r,attrs:{schemas:e.schemas,entryNode:t}})}):s("schemaToc",{attrs:{schemas:e.schemas,entryNode:e.schema.items}})]:e._e()],2):e._e()],1)};r._withStripped=!0;var a={render:r,staticRenderFns:[]};t.a=a},jbhO:function(e,t,s){"use strict";var r=function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"process-message content"},[this._m(0),t("p",[this._v("The process message is the format to exchange data out of discrete processes. It also allows to transport process information, part information and measurement data for each phase of the process.")]),t("img",{staticClass:"is-center",attrs:{src:"images/processPayload.svg",alt:"Class diagram of the process data payload",title:"Class diagram of the process data payload"}}),t("schemaDetail",{attrs:{type:"process",examples:this.$static.examples}},[t("card",{attrs:{collapsed:!0}},[t("template",{slot:"header"},[this._v("\n        Minimal message example \n      ")]),t("prism",{attrs:{language:"json"}},[this._v(this._s(this._f("stringify")(this.$static.message)))])],2),t("card",{attrs:{collapsed:!0}},[t("template",{slot:"header"},[this._v("\n        Process message example \n      ")]),t("prism",{attrs:{language:"json"}},[this._v(this._s(this._f("stringify")(this.$static.complexMessage)))])],2)],1)],1)};r._withStripped=!0;var a={render:r,staticRenderFns:[function(){var e=this.$createElement,t=this._self._c||e;return t("h1",[t("a",{attrs:{id:"Process-Payload",title:"Process Payload"}}),this._v("\n    Process Payload\n  ")])}]};t.a=a},jhkR:function(e,t,s){"use strict";t.a={props:{schemas:{type:Object,required:!0},link:{required:!0}}}},kGrr:function(e,t,s){var r={"./measurement_schema.json":["oGp6",17],"./message_schema.json":["2BTs",16],"./process_schema.json":["rRyJ",15]};function a(e){var t=r[e];return t?s.e(t[1]).then(function(){return s(t[0])}):Promise.reject(new Error("Cannot find module '"+e+"'."))}a.keys=function(){return Object.keys(r)},a.id="kGrr",e.exports=a},kgqz:function(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=s("JR6d"),a=s("jbhO"),i=s("VU/8")(r.a,a.a,!1,null,null,null);i.options.__file="pages\\specification\\process-message.vue",t.default=i.exports},mQxp:function(e,t,s){"use strict";var r=s("Gs0Q"),a=s("hvFG"),i=!1;var n=function(e){i||s("AxiT")},o=s("VU/8")(r.a,a.a,!1,n,null,null);o.options.__file="components\\schemaToc.vue",t.a=o.exports},mbce:function(e,t,s){var r=s("lktj"),a=s("TcQ7"),i=s("NpIQ").f;e.exports=function(e){return function(t){for(var s,n=a(t),o=r(n),c=o.length,l=0,p=[];c>l;)i.call(n,s=o[l++])&&p.push(e?[s,n[s]]:n[s]);return p}}},s8mu:function(e,t,s){"use strict";var r=s("cER1"),a=s("D9sP"),i=!1;var n=function(e){i||s("A51D")},o=s("VU/8")(r.a,a.a,!1,n,null,null);o.options.__file="components\\schemaDetail.vue",t.a=o.exports},"us/S":function(e,t,s){e.exports={default:s("Xd32"),__esModule:!0}},wEtr:function(e,t,s){s("gSvA"),e.exports=s("FeBl").Object.entries},zM1N:function(e,t,s){(function(e,s){var r=200,a="__lodash_hash_undefined__",i=9007199254740991,n="[object Arguments]",o="[object Boolean]",c="[object Date]",l="[object Function]",p="[object GeneratorFunction]",u="[object Map]",f="[object Number]",d="[object Object]",h="[object Promise]",m="[object RegExp]",v="[object Set]",_="[object String]",g="[object Symbol]",y="[object WeakMap]",b="[object ArrayBuffer]",$="[object DataView]",x="[object Float32Array]",C="[object Float64Array]",k="[object Int8Array]",O="[object Int16Array]",j="[object Int32Array]",w="[object Uint8Array]",E="[object Uint8ClampedArray]",M="[object Uint16Array]",P="[object Uint32Array]",S=/\w*$/,D=/^\[object .+?Constructor\]$/,I=/^(?:0|[1-9]\d*)$/,A={};A[n]=A["[object Array]"]=A[b]=A[$]=A[o]=A[c]=A[x]=A[C]=A[k]=A[O]=A[j]=A[u]=A[f]=A[d]=A[m]=A[v]=A[_]=A[g]=A[w]=A[E]=A[M]=A[P]=!0,A["[object Error]"]=A[l]=A[y]=!1;var T="object"==typeof e&&e&&e.Object===Object&&e,V="object"==typeof self&&self&&self.Object===Object&&self,L=T||V||Function("return this")(),R="object"==typeof t&&t&&!t.nodeType&&t,F=R&&"object"==typeof s&&s&&!s.nodeType&&s,z=F&&F.exports===R;function B(e,t){return e.set(t[0],t[1]),e}function H(e,t){return e.add(t),e}function N(e,t,s,r){var a=-1,i=e?e.length:0;for(r&&i&&(s=e[++a]);++a<i;)s=t(s,e[a],a,e);return s}function U(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(e){}return t}function W(e){var t=-1,s=Array(e.size);return e.forEach(function(e,r){s[++t]=[r,e]}),s}function G(e,t){return function(s){return e(t(s))}}function Q(e){var t=-1,s=Array(e.size);return e.forEach(function(e){s[++t]=e}),s}var q,J=Array.prototype,X=Function.prototype,K=Object.prototype,Y=L["__core-js_shared__"],Z=(q=/[^.]+$/.exec(Y&&Y.keys&&Y.keys.IE_PROTO||""))?"Symbol(src)_1."+q:"",ee=X.toString,te=K.hasOwnProperty,se=K.toString,re=RegExp("^"+ee.call(te).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),ae=z?L.Buffer:void 0,ie=L.Symbol,ne=L.Uint8Array,oe=G(Object.getPrototypeOf,Object),ce=Object.create,le=K.propertyIsEnumerable,pe=J.splice,ue=Object.getOwnPropertySymbols,fe=ae?ae.isBuffer:void 0,de=G(Object.keys,Object),he=Fe(L,"DataView"),me=Fe(L,"Map"),ve=Fe(L,"Promise"),_e=Fe(L,"Set"),ge=Fe(L,"WeakMap"),ye=Fe(Object,"create"),be=Ue(he),$e=Ue(me),xe=Ue(ve),Ce=Ue(_e),ke=Ue(ge),Oe=ie?ie.prototype:void 0,je=Oe?Oe.valueOf:void 0;function we(e){var t=-1,s=e?e.length:0;for(this.clear();++t<s;){var r=e[t];this.set(r[0],r[1])}}function Ee(e){var t=-1,s=e?e.length:0;for(this.clear();++t<s;){var r=e[t];this.set(r[0],r[1])}}function Me(e){var t=-1,s=e?e.length:0;for(this.clear();++t<s;){var r=e[t];this.set(r[0],r[1])}}function Pe(e){this.__data__=new Ee(e)}function Se(e,t){var s,r,a,i=Ge(e)||(a=r=s=e)&&"object"==typeof a&&Qe(r)&&te.call(s,"callee")&&(!le.call(s,"callee")||se.call(s)==n)?function(e,t){for(var s=-1,r=Array(e);++s<e;)r[s]=t(s);return r}(e.length,String):[],o=i.length,c=!!o;for(var l in e)!t&&!te.call(e,l)||c&&("length"==l||He(l,o))||i.push(l);return i}function De(e,t,s){var r=e[t];te.call(e,t)&&We(r,s)&&(void 0!==s||t in e)||(e[t]=s)}function Ie(e,t){for(var s=e.length;s--;)if(We(e[s][0],t))return s;return-1}function Ae(e,t,s,r,a,i,h){var y;if(r&&(y=i?r(e,a,i,h):r(e)),void 0!==y)return y;if(!Xe(e))return e;var D,I,T,V,L,R,F=Ge(e);if(F){if(y=function(e){var t=e.length,s=e.constructor(t);t&&"string"==typeof e[0]&&te.call(e,"index")&&(s.index=e.index,s.input=e.input);return s}(e),!t)return function(e,t){var s=-1,r=e.length;t||(t=Array(r));for(;++s<r;)t[s]=e[s];return t}(e,y)}else{var z=Be(e),G=z==l||z==p;if(qe(e))return function(e,t){if(t)return e.slice();var s=new e.constructor(e.length);return e.copy(s),s}(e,t);if(z==d||z==n||G&&!i){if(U(e))return i?e:{};if(y="function"!=typeof(L=G?{}:e).constructor||Ne(L)?{}:Xe(R=oe(L))?ce(R):{},!t)return D=e,V=e,I=(T=y)&&Le(V,Ke(V),T),Le(D,ze(D),I)}else{if(!A[z])return i?e:{};y=function(e,t,s,r){var a=e.constructor;switch(t){case b:return Ve(e);case o:case c:return new a(+e);case $:return D=e,I=r?Ve(D.buffer):D.buffer,new D.constructor(I,D.byteOffset,D.byteLength);case x:case C:case k:case O:case j:case w:case E:case M:case P:return h=e,y=r?Ve(h.buffer):h.buffer,new h.constructor(y,h.byteOffset,h.length);case u:return d=e,N(r?s(W(d),!0):W(d),B,new d.constructor);case f:case _:return new a(e);case m:return(p=new(l=e).constructor(l.source,S.exec(l))).lastIndex=l.lastIndex,p;case v:return n=e,N(r?s(Q(n),!0):Q(n),H,new n.constructor);case g:return i=e,je?Object(je.call(i)):{}}var i;var n;var l,p;var d;var h,y;var D,I}(e,z,Ae,t)}}h||(h=new Pe);var q,J,X,K=h.get(e);if(K)return K;if(h.set(e,y),!F)var Y=s?(J=ze,X=Ke(q=e),Ge(q)?X:function(e,t){for(var s=-1,r=t.length,a=e.length;++s<r;)e[a+s]=t[s];return e}(X,J(q))):Ke(e);return function(e,t){for(var s=-1,r=e?e.length:0;++s<r&&!1!==t(e[s],s,e););}(Y||e,function(a,i){Y&&(a=e[i=a]),De(y,i,Ae(a,t,s,r,i,e,h))}),y}function Te(e){return!(!Xe(e)||Z&&Z in e)&&(Je(e)||U(e)?re:D).test(Ue(e))}function Ve(e){var t=new e.constructor(e.byteLength);return new ne(t).set(new ne(e)),t}function Le(e,t,s,r){s||(s={});for(var a=-1,i=t.length;++a<i;){var n=t[a],o=r?r(s[n],e[n],n,s,e):void 0;De(s,n,void 0===o?e[n]:o)}return s}function Re(e,t){var s,r,a=e.__data__;return("string"==(r=typeof(s=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==s:null===s)?a["string"==typeof t?"string":"hash"]:a.map}function Fe(e,t){var s,r=null==(s=e)?void 0:s[t];return Te(r)?r:void 0}we.prototype.clear=function(){this.__data__=ye?ye(null):{}},we.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},we.prototype.get=function(e){var t=this.__data__;if(ye){var s=t[e];return s===a?void 0:s}return te.call(t,e)?t[e]:void 0},we.prototype.has=function(e){var t=this.__data__;return ye?void 0!==t[e]:te.call(t,e)},we.prototype.set=function(e,t){return this.__data__[e]=ye&&void 0===t?a:t,this},Ee.prototype.clear=function(){this.__data__=[]},Ee.prototype.delete=function(e){var t=this.__data__,s=Ie(t,e);return!(s<0||(s==t.length-1?t.pop():pe.call(t,s,1),0))},Ee.prototype.get=function(e){var t=this.__data__,s=Ie(t,e);return s<0?void 0:t[s][1]},Ee.prototype.has=function(e){return Ie(this.__data__,e)>-1},Ee.prototype.set=function(e,t){var s=this.__data__,r=Ie(s,e);return r<0?s.push([e,t]):s[r][1]=t,this},Me.prototype.clear=function(){this.__data__={hash:new we,map:new(me||Ee),string:new we}},Me.prototype.delete=function(e){return Re(this,e).delete(e)},Me.prototype.get=function(e){return Re(this,e).get(e)},Me.prototype.has=function(e){return Re(this,e).has(e)},Me.prototype.set=function(e,t){return Re(this,e).set(e,t),this},Pe.prototype.clear=function(){this.__data__=new Ee},Pe.prototype.delete=function(e){return this.__data__.delete(e)},Pe.prototype.get=function(e){return this.__data__.get(e)},Pe.prototype.has=function(e){return this.__data__.has(e)},Pe.prototype.set=function(e,t){var s=this.__data__;if(s instanceof Ee){var a=s.__data__;if(!me||a.length<r-1)return a.push([e,t]),this;s=this.__data__=new Me(a)}return s.set(e,t),this};var ze=ue?G(ue,Object):function(){return[]},Be=function(e){return se.call(e)};function He(e,t){return!!(t=null==t?i:t)&&("number"==typeof e||I.test(e))&&e>-1&&e%1==0&&e<t}function Ne(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||K)}function Ue(e){if(null!=e){try{return ee.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function We(e,t){return e===t||e!=e&&t!=t}(he&&Be(new he(new ArrayBuffer(1)))!=$||me&&Be(new me)!=u||ve&&Be(ve.resolve())!=h||_e&&Be(new _e)!=v||ge&&Be(new ge)!=y)&&(Be=function(e){var t=se.call(e),s=t==d?e.constructor:void 0,r=s?Ue(s):void 0;if(r)switch(r){case be:return $;case $e:return u;case xe:return h;case Ce:return v;case ke:return y}return t});var Ge=Array.isArray;function Qe(e){return null!=e&&("number"==typeof(t=e.length)&&t>-1&&t%1==0&&t<=i)&&!Je(e);var t}var qe=fe||function(){return!1};function Je(e){var t=Xe(e)?se.call(e):"";return t==l||t==p}function Xe(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function Ke(e){return Qe(e)?Se(e):function(e){if(!Ne(e))return de(e);var t=[];for(var s in Object(e))te.call(e,s)&&"constructor"!=s&&t.push(s);return t}(e)}s.exports=function(e){return Ae(e,!0,!0)}}).call(t,s("DuR2"),s("3IRH")(e))}});
\ No newline at end of file
diff --git a/files/pages_specification_v2_machine-message.0c8aa5390a849fab62a9.js b/files/pages_specification_v2_machine-message.0c8aa5390a849fab62a9.js
new file mode 100644
index 0000000..bb8e058
--- /dev/null
+++ b/files/pages_specification_v2_machine-message.0c8aa5390a849fab62a9.js
@@ -0,0 +1 @@
+webpackJsonp([5],{"+66z":function(t,e){var n=Object.prototype.toString;t.exports=function(t){return n.call(t)}},"+99L":function(t,e,n){var r={"./v2/measurement_schema.json":["oGp6",23],"./v2/message_schema.json":["2BTs",22],"./v2/process_schema.json":["rRyJ",21],"./v3/measurement_schema.json":["PpY5",20],"./v3/message_schema.json":["1SJ2",19],"./v3/process_schema.json":["uwRd",18]};function i(t){var e=r[t];return e?n.e(e[1]).then(function(){return n(e[0])}):Promise.reject(new Error("Cannot find module '"+t+"'."))}i.keys=function(){return Object.keys(r)},i.id="+99L",t.exports=i},"+gg+":function(t,e,n){var r=n("TQ3y")["__core-js_shared__"];t.exports=r},"/GnY":function(t,e,n){var r=n("HT7L"),i=n("W529"),a=Object.prototype.hasOwnProperty;t.exports=function(t){if(!r(t))return i(t);var e=[];for(var n in Object(t))a.call(t,n)&&"constructor"!=n&&e.push(n);return e}},"/I3N":function(t,e){t.exports=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t}},"037f":function(t,e,n){var r=n("1oyr"),i=n("p0bc"),a=n("wSKX"),o=i?function(t,e){return i(t,"toString",{configurable:!0,enumerable:!1,value:r(e),writable:!0})}:a;t.exports=o},"09Qt":function(t,e,n){var r=n("uIr7"),i=n("vi0E"),a=n("l9Lx"),o=n("C0hh"),s=Object.getOwnPropertySymbols?function(t){for(var e=[];t;)r(e,a(t)),t=i(t);return e}:o;t.exports=s},"0DSl":function(t,e,n){var r=n("YkxI"),i=n("zBOP");t.exports=function(t){return r(function(e,n){var r=-1,a=n.length,o=a>1?n[a-1]:void 0,s=a>2?n[2]:void 0;for(o=t.length>3&&"function"==typeof o?(a--,o):void 0,s&&i(n[0],n[1],s)&&(o=a<3?void 0:o,a=1),e=Object(e);++r<a;){var c=n[r];c&&t(e,c,r,o)}return e})}},"0uX4":function(t,e,n){var r=n("NkRn"),i=r?r.prototype:void 0,a=i?i.valueOf:void 0;t.exports=function(t){return a?Object(a.call(t)):{}}},"1C79":function(t,e,n){var r=n("uIr7"),i=n("Qp3N");t.exports=function t(e,n,a,o,s){var c=-1,u=e.length;for(a||(a=i),s||(s=[]);++c<u;){var l=e[c];n>0&&a(l)?n>1?t(l,n-1,a,o,s):r(s,l):o||(s[s.length]=l)}return s}},"1QDk":function(t,e,n){var r=n("tv3T"),i=n("09Qt");t.exports=function(t,e){return r(t,i(t),e)}},"1Yb9":function(t,e,n){var r=n("mgnk"),i=n("UnEC"),a=Object.prototype,o=a.hasOwnProperty,s=a.propertyIsEnumerable,c=r(function(){return arguments}())?r:function(t){return i(t)&&o.call(t,"callee")&&!s.call(t,"callee")};t.exports=c},"1oyr":function(t,e){t.exports=function(t){return function(){return t}}},"22B7":function(t,e){t.exports=function(t,e){return t===e||t!=t&&e!=e}},"2Hvv":function(t,e,n){var r=n("imBK");t.exports=function(t){return r(this.__data__,t)>-1}},"2N6f":function(t,e,n){var r=n("rCVp"),i=n("Q2wK"),a=n("WHce");t.exports=function(t){return a(i(t,void 0,r),t+"")}},"3IRH":function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},"3rZI":function(t,e){t.exports=function(t,e,n,r){var i=-1,a=null==t?0:t.length;for(r&&a&&(n=t[++i]);++i<a;)n=e(n,t[i],i,t);return n}},"4yG7":function(t,e,n){var r=n("HAGj");t.exports=function(t,e,n){return null==t?t:r(t,e,n)}},"5/Qr":function(t,e,n){var r=n("Kzd6"),i=n("6Git"),a=n("Jqj6"),o=n("WyC4"),s=n("7jYp"),c=n("0uX4"),u=n("Ilb/"),l="[object Boolean]",f="[object Date]",p="[object Map]",d="[object Number]",v="[object RegExp]",h="[object Set]",m="[object String]",b="[object Symbol]",y="[object ArrayBuffer]",_="[object DataView]",g="[object Float32Array]",x="[object Float64Array]",j="[object Int8Array]",C="[object Int16Array]",O="[object Int32Array]",w="[object Uint8Array]",k="[object Uint8ClampedArray]",T="[object Uint16Array]",P="[object Uint32Array]";t.exports=function(t,e,n,S){var A=t.constructor;switch(e){case y:return r(t);case l:case f:return new A(+t);case _:return i(t,S);case g:case x:case j:case C:case O:case w:case k:case T:case P:return u(t,S);case p:return a(t,S,n);case d:case m:return new A(t);case v:return o(t);case h:return s(t,S,n);case b:return c(t)}}},"5N57":function(t,e,n){var r=n("ICSD")(n("TQ3y"),"Set");t.exports=r},"5PlU":function(t,e,n){var r=n("RY/4"),i=n("dSzd")("iterator"),a=n("/bQp");t.exports=n("FeBl").isIterable=function(t){var e=Object(t);return void 0!==e[i]||"@@iterator"in e||a.hasOwnProperty(r(e))}},"5pwE":function(t,e,n){(t.exports=n("YHym")(!1)).push([t.i,".schemaDetail a{text-decoration:none}.schemaDetail .property ul{list-style-type:disc;padding-left:1em;margin-left:0;margin-top:0}",""])},"5zde":function(t,e,n){n("zQR9"),n("qyJz"),t.exports=n("FeBl").Array.from},"6Git":function(t,e,n){var r=n("Kzd6");t.exports=function(t,e){var n=e?r(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}},"6MiT":function(t,e,n){var r=n("aCM0"),i=n("UnEC"),a="[object Symbol]";t.exports=function(t){return"symbol"==typeof t||i(t)&&r(t)==a}},"77aO":function(t,e,n){"use strict";e.a={props:{collapsed:{type:Boolean,default:!1}},data:function(){return{expanded:!this.collapsed,transitioning:!1}},watch:{collapsed:function(t){this.expanded=!t}},methods:{beforeenter:function(t){this.transitioning=!0,t.style.height=0},enter:function(t){t.style.height=t.scrollHeight+"px"},afterenter:function(t){t.style.height="",this.transitioning=!1},beforeleave:function(t){this.transitioning=!0,t.style.height=t.offsetHeight+"px",t.offsetHeight},leave:function(t){t.style.height=0,t.offsetHeight},afterleave:function(t){this.transitioning=!1},toggle:function(){this.transitioning||(this.expanded=!this.expanded,this.$emit(this.expanded?"expanding":"collapsing",this.id))}}}},"7e4z":function(t,e,n){var r=n("uieL"),i=n("1Yb9"),a=n("NGEn"),o=n("ggOT"),s=n("ZGh9"),c=n("YsVG"),u=Object.prototype.hasOwnProperty;t.exports=function(t,e){var n=a(t),l=!n&&i(t),f=!n&&!l&&o(t),p=!n&&!l&&!f&&c(t),d=n||l||f||p,v=d?r(t.length,String):[],h=v.length;for(var m in t)!e&&!u.call(t,m)||d&&("length"==m||f&&("offset"==m||"parent"==m)||p&&("buffer"==m||"byteLength"==m||"byteOffset"==m)||s(m,h))||v.push(m);return v}},"7jYp":function(t,e,n){var r=n("nWuj"),i=n("3rZI"),a=n("octw"),o=1;t.exports=function(t,e,n){var s=e?n(a(t),o):a(t);return i(s,r,new t.constructor)}},"8AZL":function(t,e){t.exports=function(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}},"8gK5":function(t,e){t.exports=function(t){var e=[];if(null!=t)for(var n in Object(t))e.push(n);return e}},"94sX":function(t,e,n){var r=n("dCZQ");t.exports=function(){this.__data__=r?r(null):{},this.size=0}},"9UkZ":function(t,e,n){var r=n("aCM0"),i=n("vi0E"),a=n("UnEC"),o="[object Object]",s=Function.prototype,c=Object.prototype,u=s.toString,l=c.hasOwnProperty,f=u.call(Object);t.exports=function(t){if(!a(t)||r(t)!=o)return!1;var e=i(t);if(null===e)return!0;var n=l.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&u.call(n)==f}},A51D:function(t,e,n){var r=n("5pwE");"string"==typeof r&&(r=[[t.i,r,""]]),r.locals&&(t.exports=r.locals);n("rjj0")("188b52d2",r,!1)},A9mX:function(t,e,n){var r=n("pTUa");t.exports=function(t){var e=r(this,t).delete(t);return this.size-=e?1:0,e}},"Ai/T":function(t,e){var n=Function.prototype.toString;t.exports=function(t){if(null!=t){try{return n.call(t)}catch(t){}try{return t+""}catch(t){}}return""}},AxiT:function(t,e,n){var r=n("Lw7C");"string"==typeof r&&(r=[[t.i,r,""]]),r.locals&&(t.exports=r.locals);n("rjj0")("0868896c",r,!1)},C0hh:function(t,e){t.exports=function(){return[]}},CW5P:function(t,e,n){var r=n("T/bE"),i=n("duB3"),a=n("POb3");t.exports=function(){this.size=0,this.__data__={hash:new r,map:new(a||i),string:new r}}},Cf65:function(t,e,n){var r=n("uCi2"),i=n("M1c9");t.exports=function(t,e){return e.length<2?t:r(t,i(e,0,-1))}},D9sP:function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"schemaDetail",class:{"is-loading":t.loading},attrs:{id:"schema-detail"}},[n("div",{staticClass:"accordion"},[null!==t.masterSchema?n("card",{attrs:{collapsed:!0}},[n("template",{slot:"header"},[t._v("\n        Structure of the payload\n      ")]),n("ul",t._l(t.masterSchema.properties,function(t,e){return n("schemaToc",{key:e,attrs:{schema:t}})}))],2):t._e(),t._t("default")],2),n("h1",[n("a",{attrs:{id:t.type+"-schema-detail",title:t.type+" Fields definition"}}),t._v("\n    Fields definition\n  ")]),t._l(t.schemas,function(e){return n("div",{key:e.$id,staticClass:"card property"},[n("header",{staticClass:"card-header"},[n("a",{attrs:{id:"p-"+e.$id}}),n("p",{staticClass:"card-header-title"},[n("span",{domProps:{innerHTML:t._s(e.getPath())}})]),n("nuxt-link",{staticClass:"card-header-icon",attrs:{to:"#schema-detail",title:"go up"}},[n("span",{staticClass:"icon"},[n("i",{staticClass:"fa fa-angle-up"})])])],1),n("div",{staticClass:"card-content"},[e.description||e.type?n("div",{staticClass:"field is-horizontal"},[t._m(0,!0),e.description?n("div",{staticClass:"field-body"},[t._v("\n          "+t._s(e.description)+"\n        ")]):e.type?n("div",{staticClass:"field-body"},[t._v("\n          A simple "+t._s(t._f("capitalize")(e.type))+"\n        ")]):t._e()]):t._e(),e.$parent?n("div",{staticClass:"field is-horizontal"},[t._m(1,!0),n("div",{staticClass:"field-body"},[n("nuxt-link",{attrs:{to:"#p-"+e.$parent.schema.$id}},[n("span",{domProps:{innerHTML:t._s(e.$parent.schema.getPath())}})])],1)]):t._e(),e.type?n("div",{staticClass:"field is-horizontal"},[t._m(2,!0),n("div",{staticClass:"field-body"},[t._v("\n          "+t._s(t._f("capitalize")(e.type,e))+"\n        ")])]):t._e(),e.format?n("div",{staticClass:"field is-horizontal"},[t._m(3,!0),n("div",{staticClass:"field-body"},[t._v("\n          "+t._s(e.format)+"\n          "),t.$static.formats[e.format]?n("a",{attrs:{href:t.$static.formats[e.format].link}},[t._v(" ("+t._s(t.$static.formats[e.format].name)+")")]):t._e()])]):t._e(),e.enum&&e.enum.length?n("div",{staticClass:"field is-horizontal"},[t._m(4,!0),n("div",{staticClass:"field-body"},[n("div",[t._v("\n            "+t._s(e.enum.join(", "))+"\n          ")])])]):t._e(),e.hasOwnProperty("default")?n("div",{staticClass:"field is-horizontal"},[t._m(5,!0),n("div",{staticClass:"field-body"},[n("div",[t._v("\n            "+t._s(e.default)+"\n          ")])])]):t._e(),e.maxLength?n("div",{staticClass:"field is-horizontal"},[t._m(6,!0),n("div",{staticClass:"field-body"},[n("div",[t._v("\n            "+t._s(e.maxLength)+"\n          ")])])]):t._e(),e.properties||e.patternProperties||e.items?n("div",{staticClass:"field is-horizontal"},[t._m(7,!0),n("div",{staticClass:"field-body"},[Object.keys(e.properties||{}).length>0?n("schemaLink",{attrs:{link:e.properties}}):t._e(),Object.keys(e.patternProperties||{}).length>0?n("schemaLink",{attrs:{link:e.patternProperties}},[n("div",[t._v("Matching regular expressions:")])]):t._e(),!e.items||e.items instanceof Array?e.items?n("schemaLink",{attrs:{link:e.items}},[n("div",[t._v("Ordered items of type:")])]):t._e():n("schemaLink",{attrs:{link:e.items}}),Object.keys(e.properties||{}).length+Object.keys(e.patternProperties||{}).length!==0||e.items?t._e():[t._v("none")]],2)]):t._e(),e.minProperties?n("div",{staticClass:"field is-horizontal"},[t._m(8,!0),n("div",{staticClass:"field-body"},[n("div",[t._v("\n            "+t._s(e.minProperties)+"\n          ")])])]):t._e(),e.minItems?n("div",{staticClass:"field is-horizontal"},[t._m(9,!0),n("div",{staticClass:"field-body"},[n("div",[t._v("\n            "+t._s(e.minItems)+"\n          ")])])]):t._e(),e.hasOwnProperty("additionalProperties")?n("div",{staticClass:"field is-horizontal"},[t._m(10,!0),"boolean"==typeof e.additionalProperties?n("schemaLink",{staticClass:"field-body",attrs:{link:e.additionalProperties}}):n("div",{staticClass:"field-body"},[t._v("\n          if fulfilling "),n("schemaLink",{staticClass:"field-body",attrs:{link:e.additionalProperties}})],1)],1):t._e(),e.not||e.oneOf||e.allOf||e.anyOf?n("div",{staticClass:"field is-horizontal"},[t._m(11,!0),n("div",{staticClass:"field-body"},[e.not?n("schemaLink",{attrs:{link:e.not}},[t._v("\n            Not fulfilling \n          ")]):t._e(),e.oneOf?n("schemaLink",{attrs:{link:e.oneOf}},[n("div",[t._v("Fulfilling exactly one of:")])]):t._e(),e.allOf?n("schemaLink",{attrs:{link:e.allOf}},[n("div",[t._v("Fulfilling all of:")])]):t._e(),e.anyOf?n("schemaLink",{attrs:{link:e.anyOf}},[n("div",[t._v("Fulfilling one of:")])]):t._e()],1)]):t._e(),e.required&&e.required.length?n("div",{staticClass:"field is-horizontal"},[t._m(12,!0),n("div",{staticClass:"field-body"},[t._v("\n          "+t._s(e.required.join(", "))+"\n        ")])]):t._e(),e.examples?n("div",{staticClass:"field is-horizontal"},[t._m(13,!0),n("div",{staticClass:"field-body"},t._l(e.examples,function(e,r){return n("prism",{key:r,attrs:{language:"json"}},[t._v(t._s(t._f("stringify")(e)))])}))]):t._e()])])})],2)};r._withStripped=!0;var i={render:r,staticRenderFns:[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Description:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Parent:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Type:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Format:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Possible values:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Defaults to:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Maximum length:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Restriction on subfields:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Minimum amount of subfields:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Minimum amount of items:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Allows additional fields:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Restriction with boolean logic:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Required fields:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Example:")])])}]};e.a=i},Dc0G:function(t,e,n){(function(t){var r=n("blYT"),i="object"==typeof e&&e&&!e.nodeType&&e,a=i&&"object"==typeof t&&t&&!t.nodeType&&t,o=a&&a.exports===i&&r.process,s=function(){try{return o&&o.binding&&o.binding("util")}catch(t){}}();t.exports=s}).call(e,n("3IRH")(t))},Dc7M:function(t,e,n){var r=n("Hxdr"),i=n("Fkvj"),a=n("Vi3P"),o=n("bIjD"),s=n("tv3T"),c=n("dYhQ"),u=n("2N6f"),l=n("xond"),f=u(function(t,e){var n={};if(null==t)return n;var u=!1;e=r(e,function(e){return e=o(e,t),u||(u=e.length>1),e}),s(t,l(t),n),u&&(n=i(n,7,c));for(var f=e.length;f--;)a(n,e[f]);return n});t.exports=f},Dv2r:function(t,e,n){var r=n("pTUa");t.exports=function(t,e){var n=r(this,t),i=n.size;return n.set(t,e),this.size+=n.size==i?0:1,this}},E4Hj:function(t,e){t.exports=function(t){return this.__data__.get(t)}},FCuZ:function(t,e,n){var r=n("uIr7"),i=n("NGEn");t.exports=function(t,e,n){var a=e(t);return i(t)?a:r(a,n(t))}},Fkvj:function(t,e,n){var r=n("bJWQ"),i=n("PqYH"),a=n("i4ON"),o=n("jD7S"),s=n("py9u"),c=n("mKB/"),u=n("hrPF"),l=n("Nkkh"),f=n("1QDk"),p=n("MoMe"),d=n("xond"),v=n("gHOb"),h=n("UfSK"),m=n("5/Qr"),b=n("WQFf"),y=n("NGEn"),_=n("ggOT"),g=n("yCNF"),x=n("ktak"),j=1,C=2,O=4,w="[object Arguments]",k="[object Function]",T="[object GeneratorFunction]",P="[object Object]",S={};S[w]=S["[object Array]"]=S["[object ArrayBuffer]"]=S["[object DataView]"]=S["[object Boolean]"]=S["[object Date]"]=S["[object Float32Array]"]=S["[object Float64Array]"]=S["[object Int8Array]"]=S["[object Int16Array]"]=S["[object Int32Array]"]=S["[object Map]"]=S["[object Number]"]=S[P]=S["[object RegExp]"]=S["[object Set]"]=S["[object String]"]=S["[object Symbol]"]=S["[object Uint8Array]"]=S["[object Uint8ClampedArray]"]=S["[object Uint16Array]"]=S["[object Uint32Array]"]=!0,S["[object Error]"]=S[k]=S["[object WeakMap]"]=!1,t.exports=function t(e,n,A,E,M,I){var F,$=n&j,D=n&C,z=n&O;if(A&&(F=M?A(e,E,M,I):A(e)),void 0!==F)return F;if(!g(e))return e;var N=y(e);if(N){if(F=h(e),!$)return u(e,F)}else{var U=v(e),Q=U==k||U==T;if(_(e))return c(e,$);if(U==P||U==w||Q&&!M){if(F=D||Q?{}:b(e),!$)return D?f(e,s(F,e)):l(e,o(F,e))}else{if(!S[U])return M?e:{};F=m(e,U,t,$)}}I||(I=new r);var G=I.get(e);if(G)return G;I.set(e,F);var H=z?D?d:p:D?keysIn:x,L=N?void 0:H(e);return i(L||e,function(r,i){L&&(r=e[i=r]),a(F,i,t(r,n,A,i,e,I))}),F}},Fp5l:function(t,e,n){var r=n("bGc4"),i=n("UnEC");t.exports=function(t){return i(t)&&r(t)}},G0Wc:function(t,e,n){var r=n("yCNF"),i=n("HT7L"),a=n("8gK5"),o=Object.prototype.hasOwnProperty;t.exports=function(t){if(!r(t))return a(t);var e=i(t),n=[];for(var s in t)("constructor"!=s||!e&&o.call(t,s))&&n.push(s);return n}},G2xm:function(t,e){t.exports=function(t){return this.__data__.has(t)}},Gs0Q:function(t,e,n){"use strict";e.a={name:"schemaToc",props:{tag:{type:String,default:"li"},schema:{type:Object,required:!0}}}},Gu7T:function(t,e,n){"use strict";e.__esModule=!0;var r,i=n("c/Tr"),a=(r=i)&&r.__esModule?r:{default:r};e.default=function(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e<t.length;e++)n[e]=t[e];return n}return(0,a.default)(t)}},HAGj:function(t,e,n){var r=n("i4ON"),i=n("bIjD"),a=n("ZGh9"),o=n("yCNF"),s=n("Ubhr");t.exports=function(t,e,n,c){if(!o(t))return t;for(var u=-1,l=(e=i(e,t)).length,f=l-1,p=t;null!=p&&++u<l;){var d=s(e[u]),v=n;if(u!=f){var h=p[d];void 0===(v=c?c(h,d,p):void 0)&&(v=o(h)?h:a(e[u+1])?[]:{})}r(p,d,v),p=p[d]}return t}},HN2V:function(t,e,n){var r=n("HbnZ"),i=n("0DSl")(function(t,e,n){r(t,e,n)});t.exports=i},HT7L:function(t,e){var n=Object.prototype;t.exports=function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||n)}},HbnZ:function(t,e,n){var r=n("bJWQ"),i=n("O1jc"),a=n("rpnb"),o=n("jMi8"),s=n("yCNF"),c=n("t8rQ");t.exports=function t(e,n,u,l,f){e!==n&&a(n,function(a,c){if(s(a))f||(f=new r),o(e,n,c,u,t,l,f);else{var p=l?l(e[c],a,c+"",e,n,f):void 0;void 0===p&&(p=a),i(e,c,p)}},c)}},Hxdr:function(t,e){t.exports=function(t,e){for(var n=-1,r=null==t?0:t.length,i=Array(r);++n<r;)i[n]=e(t[n],n,t);return i}},ICSD:function(t,e,n){var r=n("ITwD"),i=n("mTAn");t.exports=function(t,e){var n=i(t,e);return r(n)?n:void 0}},ITwD:function(t,e,n){var r=n("gGqR"),i=n("eFps"),a=n("yCNF"),o=n("Ai/T"),s=/^\[object .+?Constructor\]$/,c=Function.prototype,u=Object.prototype,l=c.toString,f=u.hasOwnProperty,p=RegExp("^"+l.call(f).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=function(t){return!(!a(t)||i(t))&&(r(t)?p:s).test(o(t))}},"Ilb/":function(t,e,n){var r=n("Kzd6");t.exports=function(t,e){var n=e?r(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}},JBvZ:function(t,e,n){var r=n("imBK");t.exports=function(t){var e=this.__data__,n=r(e,t);return n<0?void 0:e[n][1]}},Jqj6:function(t,e,n){var r=n("U7Aq"),i=n("3rZI"),a=n("WFiI"),o=1;t.exports=function(t,e,n){var s=e?n(a(t),o):a(t);return i(s,r,new t.constructor)}},KmWZ:function(t,e,n){var r=n("duB3");t.exports=function(){this.__data__=new r,this.size=0}},Kzd6:function(t,e,n){var r=n("qwTf");t.exports=function(t){var e=new t.constructor(t.byteLength);return new r(e).set(new r(t)),e}},LJry:function(t,e,n){"use strict";var r={functional:!0,props:{code:{type:String},language:{type:String,default:"markup"}},render:function(t,e){var n=e.props.code||e.children[0].text,r=e.props.language,i=Prism.languages[r],a="language-"+r;return t("pre",function(t){for(var e=arguments,n=1;n<arguments.length;n++)for(var r in arguments[n])t[r]=e[n][r];return t}({},e.data,{class:[e.data.class,a]}),[t("code",{class:a,domProps:{innerHTML:Prism.highlight(n,i)}})])}};t.exports=r},Lw7C:function(t,e,n){(t.exports=n("YHym")(!1)).push([t.i,"@keyframes spinAround{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}",""])},M1c9:function(t,e){t.exports=function(t,e,n){var r=-1,i=t.length;e<0&&(e=-e>i?0:i+e),(n=n>i?i:n)<0&&(n+=i),i=e>n?0:n-e>>>0,e>>>=0;for(var a=Array(i);++r<i;)a[r]=t[r+e];return a}},MoMe:function(t,e,n){var r=n("FCuZ"),i=n("l9Lx"),a=n("ktak");t.exports=function(t){return r(t,a,i)}},NGEn:function(t,e){var n=Array.isArray;t.exports=n},NVTU:function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"card collapsibleCard",class:{collapsed:!t.expanded}},[t.$slots.header?n("header",{staticClass:"card-header",on:{click:function(e){e.preventDefault(),t.toggle()}}},[n("p",{staticClass:"card-header-title"},[!t.$slots.headerCollapsed||t.expanded?t._t("header"):t._t("headerCollapsed")],2),n("a",{staticClass:"card-header-icon"},[n("span",{staticClass:"icon"},[n("i",{staticClass:"fa",class:{"fa-angle-down":t.expanded,"fa-angle-up":!t.expanded}})])])]):t._e(),n("transition",{attrs:{name:"rollup","leave-active-class":"collapsing","enter-active-class":"collapsing"},on:{"before-leave":t.beforeleave,leave:t.leave,"after-leave":t.afterleave,"before-enter":t.beforeenter,enter:t.enter,"after-enter":t.afterenter}},[n("div",{directives:[{name:"show",rawName:"v-show",value:t.expanded,expression:"expanded"}]},[n("div",{staticClass:"card-content"},[t._t("default")],2)])])],1)};r._withStripped=!0;var i={render:r,staticRenderFns:[]};e.a=i},NkRn:function(t,e,n){var r=n("TQ3y").Symbol;t.exports=r},Nkkh:function(t,e,n){var r=n("tv3T"),i=n("l9Lx");t.exports=function(t,e){return r(t,i(t),e)}},NqZt:function(t,e){t.exports=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}},O1jc:function(t,e,n){var r=n("nw3t"),i=n("22B7");t.exports=function(t,e,n){(void 0===n||i(t[e],n))&&(void 0!==n||e in t)||r(t,e,n)}},POb3:function(t,e,n){var r=n("ICSD")(n("TQ3y"),"Map");t.exports=r},PqYH:function(t,e){t.exports=function(t,e){for(var n=-1,r=null==t?0:t.length;++n<r&&!1!==e(t[n],n,t););return t}},Q2wK:function(t,e,n){var r=n("8AZL"),i=Math.max;t.exports=function(t,e,n){return e=i(void 0===e?t.length-1:e,0),function(){for(var a=arguments,o=-1,s=i(a.length-e,0),c=Array(s);++o<s;)c[o]=a[e+o];o=-1;for(var u=Array(e+1);++o<e;)u[o]=a[o];return u[e]=n(c),r(t,this,u)}}},Q7hp:function(t,e,n){var r=n("uCi2");t.exports=function(t,e,n){var i=null==t?void 0:r(t,e);return void 0===i?n:i}},Qp3N:function(t,e,n){var r=n("NkRn"),i=n("1Yb9"),a=n("NGEn"),o=r?r.isConcatSpreadable:void 0;t.exports=function(t){return a(t)||i(t)||!!(o&&t&&t[o])}},RGrk:function(t,e,n){var r=n("dCZQ"),i=Object.prototype.hasOwnProperty;t.exports=function(t){var e=this.__data__;return r?void 0!==e[t]:i.call(e,t)}},Rh28:function(t,e){var n=9007199254740991;t.exports=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=n}},S7p9:function(t,e){t.exports=function(t){return function(e){return t(e)}}},"T/bE":function(t,e,n){var r=n("94sX"),i=n("ue/d"),a=n("eVIm"),o=n("RGrk"),s=n("Z2pD");function c(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}c.prototype.clear=r,c.prototype.delete=i,c.prototype.get=a,c.prototype.has=o,c.prototype.set=s,t.exports=c},T9Hf:function(t,e,n){"use strict";var r=n("77aO"),i=n("NVTU"),a=!1;var o=function(t){a||n("WVEp")},s=n("VU/8")(r.a,i.a,!1,o,null,null);s.options.__file="components\\collapsibleCard.vue",e.a=s.exports},TQ3y:function(t,e,n){var r=n("blYT"),i="object"==typeof self&&self&&self.Object===Object&&self,a=r||i||Function("return this")();t.exports=a},TlPD:function(t,e,n){var r=n("tv3T"),i=n("t8rQ");t.exports=function(t){return r(t,i(t))}},TmV0:function(t,e,n){n("fZOM"),t.exports=n("FeBl").Object.values},U7Aq:function(t,e){t.exports=function(t,e){return t.set(e[0],e[1]),t}},Ubhr:function(t,e,n){var r=n("6MiT"),i=1/0;t.exports=function(t){if("string"==typeof t||r(t))return t;var e=t+"";return"0"==e&&1/t==-i?"-0":e}},UfSK:function(t,e){var n=Object.prototype.hasOwnProperty;t.exports=function(t){var e=t.length,r=t.constructor(e);return e&&"string"==typeof t[0]&&n.call(t,"index")&&(r.index=t.index,r.input=t.input),r}},UnEC:function(t,e){t.exports=function(t){return null!=t&&"object"==typeof t}},UnLw:function(t,e,n){var r=/^\./,i=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,a=/\\(\\)?/g,o=n("fMqj")(function(t){var e=[];return r.test(t)&&e.push(""),t.replace(i,function(t,n,r,i){e.push(r?i.replace(a,"$1"):n||t)}),e});t.exports=o},VORN:function(t,e,n){var r=n("yCNF"),i=Object.create,a=function(){function t(){}return function(e){if(!r(e))return{};if(i)return i(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();t.exports=a},Vi3P:function(t,e,n){var r=n("bIjD"),i=n("oqL2"),a=n("Cf65"),o=n("Ubhr");t.exports=function(t,e){return e=r(e,t),null==(t=a(t,e))||delete t[o(i(e))]}},Vx7L:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n("g3IF"),i=n("ZgSN"),a=n("VU/8")(r.a,i.a,!1,null,null,null);a.options.__file="pages\\specification\\v2\\machine-message.vue",e.default=a.exports},W3Iv:function(t,e,n){t.exports={default:n("wEtr"),__esModule:!0}},W529:function(t,e,n){var r=n("f931")(Object.keys,Object);t.exports=r},WFiI:function(t,e){t.exports=function(t){var e=-1,n=Array(t.size);return t.forEach(function(t,r){n[++e]=[r,t]}),n}},WHce:function(t,e,n){var r=n("037f"),i=n("Zk5a")(r);t.exports=i},WQFf:function(t,e,n){var r=n("VORN"),i=n("vi0E"),a=n("HT7L");t.exports=function(t){return"function"!=typeof t.constructor||a(t)?{}:r(i(t))}},WVEp:function(t,e,n){var r=n("a3hs");"string"==typeof r&&(r=[[t.i,r,""]]),r.locals&&(t.exports=r.locals);n("rjj0")("52cedc5e",r,!1)},WxI4:function(t,e){t.exports=function(){this.__data__=[],this.size=0}},WyC4:function(t,e){var n=/\w*$/;t.exports=function(t){var e=new t.constructor(t.source,n.exec(t));return e.lastIndex=t.lastIndex,e}},Xd32:function(t,e,n){n("+tPU"),n("zQR9"),t.exports=n("5PlU")},YeCl:function(t,e,n){var r=n("CW5P"),i=n("A9mX"),a=n("v8Dt"),o=n("agim"),s=n("Dv2r");function c(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}c.prototype.clear=r,c.prototype.delete=i,c.prototype.get=a,c.prototype.has=o,c.prototype.set=s,t.exports=c},YkxI:function(t,e,n){var r=n("wSKX"),i=n("Q2wK"),a=n("WHce");t.exports=function(t,e){return a(i(t,e,r),t+"")}},YsVG:function(t,e,n){var r=n("z4hc"),i=n("S7p9"),a=n("Dc0G"),o=a&&a.isTypedArray,s=o?i(o):r;t.exports=s},Z2pD:function(t,e,n){var r=n("dCZQ"),i="__lodash_hash_undefined__";t.exports=function(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=r&&void 0===e?i:e,this}},ZGh9:function(t,e){var n=9007199254740991,r=/^(?:0|[1-9]\d*)$/;t.exports=function(t,e){return!!(e=null==e?n:e)&&("number"==typeof t||r.test(t))&&t>-1&&t%1==0&&t<e}},ZT2e:function(t,e,n){var r=n("o2mx");t.exports=function(t){return null==t?"":r(t)}},ZgSN:function(t,e,n){"use strict";var r=function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"machine-message content"},[this._m(0),e("p",[this._v("The main purpose of the machine message format is to allow devices and integrators to send messages containing an interpretation of measurement data or status.")]),e("img",{staticClass:"is-centered",attrs:{src:"images/specification/v2/messagePayload.svg",alt:"Class diagram of the Machine Message payload",title:"Class diagram of the Machine Message payload"}}),e("schemaDetail",{attrs:{type:"v2/message",examples:this.$static.examples}},[e("card",{attrs:{collapsed:!0}},[e("template",{slot:"header"},[this._v("\n        Minimal message example\n      ")]),e("prism",{attrs:{language:"json"}},[this._v(this._s(this._f("stringify")(this.$static.message)))])],2),e("card",{attrs:{collapsed:!0}},[e("template",{slot:"header"},[this._v("\n        Multiple message example\n      ")]),e("prism",{attrs:{language:"json"}},[this._v(this._s(this._f("stringify")(this.$static.multipleMachineMessages)))])],2)],1)],1)};r._withStripped=!0;var i={render:r,staticRenderFns:[function(){var t=this.$createElement,e=this._self._c||t;return e("h1",[e("a",{attrs:{id:"Message-Payload",title:"Machine Message payload"}}),this._v("\n    Machine Message Payload\n  ")])}]};e.a=i},Zk5a:function(t,e){var n=800,r=16,i=Date.now;t.exports=function(t){var e=0,a=0;return function(){var o=i(),s=r-(o-a);if(a=o,s>0){if(++e>=n)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}},Zrlr:function(t,e,n){"use strict";e.__esModule=!0,e.default=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},a3hs:function(t,e,n){(t.exports=n("YHym")(!1)).push([t.i,"@keyframes spinAround{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}.card.collapsibleCard>header{cursor:pointer;background-color:#f5f5f5;border-bottom:1px solid hsla(0,0%,4%,.1)}.card.collapsibleCard>header .card-header-icon{text-decoration:none}.card.collapsibleCard>header .card-header-title{font-weight:400}.card.collapsibleCard>header p{margin-bottom:0}.card.collapsibleCard.collapsed header{border-bottom:none}.card.collapsibleCard>div.collapsing{position:relative;height:0;overflow:hidden;display:block;transition-property:height;transition-duration:.35s;transition-timing-function:ease}",""])},aCM0:function(t,e,n){var r=n("NkRn"),i=n("uLhX"),a=n("+66z"),o="[object Null]",s="[object Undefined]",c=r?r.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?s:o:c&&c in Object(t)?i(t):a(t)}},agim:function(t,e,n){var r=n("pTUa");t.exports=function(t){return r(this,t).has(t)}},bGc4:function(t,e,n){var r=n("gGqR"),i=n("Rh28");t.exports=function(t){return null!=t&&i(t.length)&&!r(t)}},bIbi:function(t,e,n){var r=n("ICSD")(n("TQ3y"),"WeakMap");t.exports=r},bIjD:function(t,e,n){var r=n("NGEn"),i=n("hIPy"),a=n("UnLw"),o=n("ZT2e");t.exports=function(t,e){return r(t)?t:i(t,e)?[t]:a(o(t))}},bJWQ:function(t,e,n){var r=n("duB3"),i=n("KmWZ"),a=n("NqZt"),o=n("E4Hj"),s=n("G2xm"),c=n("zpVT");function u(t){var e=this.__data__=new r(t);this.size=e.size}u.prototype.clear=i,u.prototype.delete=a,u.prototype.get=o,u.prototype.has=s,u.prototype.set=c,t.exports=u},bO0Y:function(t,e,n){var r=n("ICSD")(n("TQ3y"),"Promise");t.exports=r},"bXX+":function(t,e,n){"use strict";var r=n("jhkR"),i=n("fvMW"),a=n("VU/8")(r.a,i.a,!1,null,null,null);a.options.__file="components\\schemaLink.vue",e.a=a.exports},bklM:function(t,e,n){var r=n("Fkvj"),i=1,a=4;t.exports=function(t){return r(t,i|a)}},blYT:function(t,e,n){(function(e){var n="object"==typeof e&&e&&e.Object===Object&&e;t.exports=n}).call(e,n("DuR2"))},"c/Tr":function(t,e,n){t.exports={default:n("5zde"),__esModule:!0}},cER1:function(t,e,n){"use strict";var r=n("mvHQ"),i=n.n(r),a=n("fZjL"),o=n.n(a),s=n("Gu7T"),c=n.n(s),u=n("gRE1"),l=n.n(u),f=n("d7EF"),p=n.n(f),d=n("W3Iv"),v=n.n(d),h=n("T9Hf"),m=n("rVUV"),b=(n.n(m),n("Q7hp")),y=n.n(b),_=n("HN2V"),g=n.n(_),x=n("LJry"),j=n.n(x),C=n("lOo0"),O=n("bXX+"),w=n("mQxp"),k=n("4yG7"),T=n.n(k);e.a={props:{type:{type:String,required:!0},examples:{type:Object,required:!1,default:function(){return{}}}},data:function(){return{masterSchema:null,loading:!0}},created:function(){var t=this,e={date:{link:"https://tools.ietf.org/html/rfc3339#section-5.6",name:"RFC3339, 5.6"},email:{link:"https://tools.ietf.org/html/rfc5322#section-3.4.1",name:"RFC5322, 3.4.1"}};n("+99L")("./"+this.type+"_schema.json").then(function(e){return console.time("parsing Schema"),t.masterSchema=new C.a("$",null,e),v()(t.examples).forEach(function(e){var n=p()(e,2),r=n[0],i=n[1];y()(t.masterSchema,r)&&T()(t.masterSchema,r+".examples",i)}),console.timeEnd("parsing Schema"),t.loading=!1,e}).catch(function(t){throw t}),this.$static={formats:{"date-time":e.date,date:e.date,time:e.date,email:e.email}}},methods:{traverse:function(t,e){var n=this;t instanceof C.a?(e(t),v()(t).filter(function(t){var e=p()(t,2),n=e[0];e[1];return"$parent"!==n}).forEach(function(t){var r=p()(t,2),i=(r[0],r[1]);return n.traverse(i,e)})):t instanceof Array?t.forEach(function(t){return n.traverse(t,e)}):t instanceof Object&&l()(t).forEach(function(t){return n.traverse(t,e)})},simplifySchema:function(t){var e=function(t){return t.anyOf&&t.anyOf.indexOf(!0)>=0?[t,!0]:t.allOf&&t.allOf.indexOf(!1)>=0?[t,!1]:t.allOf&&t.allOf.length?[t,new C.a(t.$step,t.$parent,g.a.apply(void 0,[{}].concat(c()(t.allOf.map(function(t){return t.toJSON()})))))]:!0===t.not?[t,!1]:0===o()(t).filter(function(t){return"$"!==t[0]}).length?[t,!0]:null};return this.traverse(t,function(t){!function t(n){if(n){var r=p()(n,2),i=r[0],a=r[1],o=i.$parent;o&&T()(o.schema,o.path,a),i.$parent=null,t(e(o.schema))}}(e(t))}),t}},computed:{schemas:function(){if(!this.masterSchema)return null;var t={};return this.traverse(this.simplifySchema(this.masterSchema),function(e){t[e.$id]=e}),t}},filters:{stringify:function(t){return i()(t," ",2)},capitalize:function(t,e){return t?(t instanceof Array||(t=[t]),t.map(function(t){return""+t[0].toUpperCase()+t.slice(1)}).join(", ")):""}},components:{card:h.a,prism:j.a,schemaToc:w.a,schemaLink:O.a}}},d4US:function(t,e,n){var r=n("ICSD")(n("TQ3y"),"DataView");t.exports=r},d7EF:function(t,e,n){"use strict";e.__esModule=!0;var r=a(n("us/S")),i=a(n("BO1k"));function a(t){return t&&t.__esModule?t:{default:t}}e.default=function(){return function(t,e){if(Array.isArray(t))return t;if((0,r.default)(Object(t)))return function(t,e){var n=[],r=!0,a=!1,o=void 0;try{for(var s,c=(0,i.default)(t);!(r=(s=c.next()).done)&&(n.push(s.value),!e||n.length!==e);r=!0);}catch(t){a=!0,o=t}finally{try{!r&&c.return&&c.return()}finally{if(a)throw o}}return n}(t,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}()},dCZQ:function(t,e,n){var r=n("ICSD")(Object,"create");t.exports=r},dFpP:function(t,e,n){var r=n("imBK"),i=Array.prototype.splice;t.exports=function(t){var e=this.__data__,n=r(e,t);return!(n<0||(n==e.length-1?e.pop():i.call(e,n,1),--this.size,0))}},dYhQ:function(t,e,n){var r=n("9UkZ");t.exports=function(t){return r(t)?void 0:t}},deUO:function(t,e,n){var r=n("imBK");t.exports=function(t,e){var n=this.__data__,i=r(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this}},duB3:function(t,e,n){var r=n("WxI4"),i=n("dFpP"),a=n("JBvZ"),o=n("2Hvv"),s=n("deUO");function c(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}c.prototype.clear=r,c.prototype.delete=i,c.prototype.get=a,c.prototype.has=o,c.prototype.set=s,t.exports=c},eFps:function(t,e,n){var r,i=n("+gg+"),a=(r=/[^.]+$/.exec(i&&i.keys&&i.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"";t.exports=function(t){return!!a&&a in t}},eVIm:function(t,e,n){var r=n("dCZQ"),i="__lodash_hash_undefined__",a=Object.prototype.hasOwnProperty;t.exports=function(t){var e=this.__data__;if(r){var n=e[t];return n===i?void 0:n}return a.call(e,t)?e[t]:void 0}},f931:function(t,e){t.exports=function(t,e){return function(n){return t(e(n))}}},fBQ2:function(t,e,n){"use strict";var r=n("evD5"),i=n("X8DO");t.exports=function(t,e,n){e in t?r.f(t,e,i(0,n)):t[e]=n}},fMqj:function(t,e,n){var r=n("zGZ6"),i=500;t.exports=function(t){var e=r(t,function(t){return n.size===i&&n.clear(),t}),n=e.cache;return e}},fZOM:function(t,e,n){var r=n("kM2E"),i=n("mbce")(!1);r(r.S,"Object",{values:function(t){return i(t)}})},fvMW:function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[t._t("default"),!0===t.link?[t._v("\n    yes \n  ")]:!1===t.link?[t._v("\n    no \n  ")]:t.isSchema(t.link)?[n("nuxt-link",{attrs:{to:"#p-"+t.link.$id}},[n("span",{domProps:{innerHTML:t._s(t.link.getPath())}})])]:t.link instanceof Array?n("ul",t._l(t.link,function(e){return n("li",{key:e.$id},[n("nuxt-link",{attrs:{to:"#p-"+e.$id}},[n("span",{domProps:{innerHTML:t._s(e.getPath())}})])],1)})):t.link instanceof Object?n("ul",t._l(t.link,function(e,r){return n("li",[n("nuxt-link",{attrs:{to:"#p-"+e.$id}},[t._v("\n        "+t._s(r)+"\n      ")])],1)})):t._e()],2)};r._withStripped=!0;var i={render:r,staticRenderFns:[]};e.a=i},g3IF:function(t,e,n){"use strict";var r=n("mvHQ"),i=n.n(r),a=n("d7EF"),o=n.n(a),s=n("Dd8w"),c=n.n(s),u=n("W3Iv"),l=n.n(u),f=n("LJry"),p=n.n(f),d=n("T9Hf"),v=n("Q7hp"),h=n.n(v),m=n("s8mu");e.a={head:function(){return{title:"Specification for machine messages"}},created:function(){var t=this,e=new Date,n="a4927dad-58d4-4580-b460-79cefd56775b";this.$static={message:{"content-spec":"urn:spec://eclipse.org/unide/machine-message#v2",device:{deviceID:n},messages:[{ts:e.toISOString(),code:"190ABT"}]},multipleMachineMessages:{"content-spec":"urn:spec://eclipse.org/unide/machine-message#v2",device:{deviceID:n,operationalStatus:"normal",metaData:{swVersion:"2.0.3.13",swBuildID:"41535"}},messages:[{origin:"sensor-id-992.2393.22",ts:e.toISOString(),type:"DEVICE",severity:"HIGH",code:"190ABT",title:"control board damaged",description:"Electronic control board or its electrical connections are damaged",hint:"Check the control board",metaData:{firmware:"20130304_22.020"}},{ts:new Date(e.valueOf()+100).toISOString(),type:"TECHNICAL_INFO",severity:"HIGH",code:"33-02",title:"Disk size limit reached",description:"Disk size has reached limit. Unable to write log files."}]}},this.$static.examples=l()(c()({},["content-spec","device","device.deviceID","device.metaData","device.operationalStatus","messages","messages[0].ts","messages[0].origin","messages[0].type","messages[0].severity","messages[0].code","messages[0].title","messages[0].description","messages[0].hint","messages[0].metaData"].reduce(function(t,e){return t[e.replace(/(^|\.)/g,"$1properties.").replace(/\[[^]]*]/g,".items")]=e,t},{}))).reduce(function(e,n){var r=o()(n,2),i=r[0],a=r[1],s=h()(t.$static.message,a)||h()(t.$static.multipleMachineMessages,a);return s&&(e[i]=[s]),e},{})},filters:{stringify:function(t){return i()(t," ",2)}},components:{card:d.a,prism:p.a,schemaDetail:m.a}}},gGqR:function(t,e,n){var r=n("aCM0"),i=n("yCNF"),a="[object AsyncFunction]",o="[object Function]",s="[object GeneratorFunction]",c="[object Proxy]";t.exports=function(t){if(!i(t))return!1;var e=r(t);return e==o||e==s||e==a||e==c}},gHOb:function(t,e,n){var r=n("d4US"),i=n("POb3"),a=n("bO0Y"),o=n("5N57"),s=n("bIbi"),c=n("aCM0"),u=n("Ai/T"),l="[object Promise]",f="[object WeakMap]",p="[object DataView]",d=u(r),v=u(i),h=u(a),m=u(o),b=u(s),y=c;(r&&y(new r(new ArrayBuffer(1)))!=p||i&&"[object Map]"!=y(new i)||a&&y(a.resolve())!=l||o&&"[object Set]"!=y(new o)||s&&y(new s)!=f)&&(y=function(t){var e=c(t),n="[object Object]"==e?t.constructor:void 0,r=n?u(n):"";if(r)switch(r){case d:return p;case v:return"[object Map]";case h:return l;case m:return"[object Set]";case b:return f}return e}),t.exports=y},gRE1:function(t,e,n){t.exports={default:n("TmV0"),__esModule:!0}},gSvA:function(t,e,n){var r=n("kM2E"),i=n("mbce")(!0);r(r.S,"Object",{entries:function(t){return i(t)}})},ggOT:function(t,e,n){(function(t){var r=n("TQ3y"),i=n("gwcX"),a="object"==typeof e&&e&&!e.nodeType&&e,o=a&&"object"==typeof t&&t&&!t.nodeType&&t,s=o&&o.exports===a?r.Buffer:void 0,c=(s?s.isBuffer:void 0)||i;t.exports=c}).call(e,n("3IRH")(t))},gwcX:function(t,e){t.exports=function(){return!1}},hIPy:function(t,e,n){var r=n("NGEn"),i=n("6MiT"),a=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,o=/^\w*$/;t.exports=function(t,e){if(r(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!i(t))||o.test(t)||!a.test(t)||null!=e&&t in Object(e)}},hrPF:function(t,e){t.exports=function(t,e){var n=-1,r=t.length;for(e||(e=Array(r));++n<r;)e[n]=t[n];return e}},hvFG:function(t,e,n){"use strict";var r=function(){var t=this.$createElement,e=this._self._c||t;return e(this.tag,{tag:"component"},[e("nuxt-link",{attrs:{to:"#p-"+this.schema.$id}},[e("span",{domProps:{innerHTML:this._s(this.schema.$step)}})]),this.schema.properties||this.schema.patternProperties||this.schema.items?e("ul",[this._l(this.schema.properties,function(t,n){return e("schemaToc",{key:n,attrs:{schema:t}})}),this._l(this.schema.patternProperties,function(t,n){return e("schemaToc",{key:n,attrs:{schema:t}})}),this.schema.items?[this.schema.items instanceof Array?this._l(this.schema.items,function(t,n){return e("schemaToc",{key:n,attrs:{schema:t}})}):e("schemaToc",{attrs:{schema:this.schema.items}})]:this._e()],2):this._e()],1)};r._withStripped=!0;var i={render:r,staticRenderFns:[]};e.a=i},i4ON:function(t,e,n){var r=n("nw3t"),i=n("22B7"),a=Object.prototype.hasOwnProperty;t.exports=function(t,e,n){var o=t[e];a.call(t,e)&&i(o,n)&&(void 0!==n||e in t)||r(t,e,n)}},imBK:function(t,e,n){var r=n("22B7");t.exports=function(t,e){for(var n=t.length;n--;)if(r(t[n][0],e))return n;return-1}},jD7S:function(t,e,n){var r=n("tv3T"),i=n("ktak");t.exports=function(t,e){return t&&r(e,i(e),t)}},jMi8:function(t,e,n){var r=n("O1jc"),i=n("mKB/"),a=n("Ilb/"),o=n("hrPF"),s=n("WQFf"),c=n("1Yb9"),u=n("NGEn"),l=n("Fp5l"),f=n("ggOT"),p=n("gGqR"),d=n("yCNF"),v=n("9UkZ"),h=n("YsVG"),m=n("TlPD");t.exports=function(t,e,n,b,y,_,g){var x=t[n],j=e[n],C=g.get(j);if(C)r(t,n,C);else{var O=_?_(x,j,n+"",t,e,g):void 0,w=void 0===O;if(w){var k=u(j),T=!k&&f(j),P=!k&&!T&&h(j);O=j,k||T||P?u(x)?O=x:l(x)?O=o(x):T?(w=!1,O=i(j,!0)):P?(w=!1,O=a(j,!0)):O=[]:v(j)||c(j)?(O=x,c(x)?O=m(x):(!d(x)||b&&p(x))&&(O=s(j))):w=!1}w&&(g.set(j,O),y(O,j,b,_,g),g.delete(j)),r(t,n,O)}}},jhkR:function(t,e,n){"use strict";var r=n("lOo0");e.a={props:{link:{required:!0}},methods:{isSchema:function(t){return t instanceof r.a}}}},ktak:function(t,e,n){var r=n("7e4z"),i=n("/GnY"),a=n("bGc4");t.exports=function(t){return a(t)?r(t):i(t)}},l9Lx:function(t,e,n){var r=n("lb6C"),i=n("C0hh"),a=Object.prototype.propertyIsEnumerable,o=Object.getOwnPropertySymbols,s=o?function(t){return null==t?[]:(t=Object(t),r(o(t),function(e){return a.call(t,e)}))}:i;t.exports=s},lOo0:function(t,e,n){"use strict";var r=n("woOf"),i=n.n(r),a=n("d7EF"),o=n.n(a),s=n("W3Iv"),c=n.n(s),u=n("Zrlr"),l=n.n(u),f=n("wxAW"),p=n.n(f),d=n("bklM"),v=n.n(d),h=n("rVUV"),m=n.n(h),b=n("Dc7M"),y=n.n(b),_=function(){function t(e,n,r){l()(this,t),this.$id=t.idx++,this.$step=e,this.$parent=n,r&&this.parseFrom(r)}return p()(t,[{key:"toJSON",value:function(){var e=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this;return m()(n,function(n,r,i,a){if(n instanceof t)return c()(n).filter(function(t){var e=o()(t,2),n=e[0];e[1];return["$id","$step","$parent"].indexOf(n)<0}).reduce(function(t,n){var r=o()(n,2),i=r[0],a=r[1];return t[i]=e.toJSON(a),t},{})})}},{key:"getPath",value:function(){var t="";return this.$parent&&(t+=this.$parent.schema.getPath(),"object"===this.$parent.schema.type&&(t+=".")),t+=this.$step,this.getPath=function(){return t},t}},{key:"parseFrom",value:function(e){var n=this;return!0===e?e={}:!1===e&&(e={not:!0}),i()(this,y()(v()(e),["$step","$id","$parent","items","properties","patternProperties","additionalItems","additionalProperties","contains","propertyNames","not","allOf","anyOf","oneOf"])),e.items&&(e.items instanceof Array?this.items=e.items.map(function(r,i){return new t("["+i+"]",{schema:n,path:"items["+i+"]"}).parseFrom(e.items[i])}):this.items=new t("[*]",{schema:this,path:"items"}).parseFrom(e.items)),["properties","patternProperties"].filter(function(t){return e.hasOwnProperty(t)}).forEach(function(r){return c()(e[r]).forEach(function(e,i){var a=o()(e,2),s=a[0],c=a[1];n[r]=n[r]||{},n[r][s]=new t(""+("patternProperties"===r?"&lt;field&gt;":s),{schema:n,path:r+'["'+s+'"]'}).parseFrom(c)})}),["additionalItems","additionalProperties","contains","propertyNames","not"].filter(function(t){return e.hasOwnProperty(t)}).forEach(function(r){n[r]=new t("+",{schema:n,path:r}).parseFrom(e[r])}),["allOf","anyOf","oneOf"].filter(function(t){return e.hasOwnProperty(t)}).forEach(function(r){return e[r].forEach(function(e,i){n[r]=n[r]||[],n[r].push(new t("("+i+")"+("anyOf"===r?"?":"+"),{schema:n,path:r+"["+i+"]"}).parseFrom(e))})}),this}}]),t}();_.idx=0,e.a=_},lb6C:function(t,e){t.exports=function(t,e){for(var n=-1,r=null==t?0:t.length,i=0,a=[];++n<r;){var o=t[n];e(o,n,t)&&(a[i++]=o)}return a}},"mKB/":function(t,e,n){(function(t){var r=n("TQ3y"),i="object"==typeof e&&e&&!e.nodeType&&e,a=i&&"object"==typeof t&&t&&!t.nodeType&&t,o=a&&a.exports===i?r.Buffer:void 0,s=o?o.allocUnsafe:void 0;t.exports=function(t,e){if(e)return t.slice();var n=t.length,r=s?s(n):new t.constructor(n);return t.copy(r),r}}).call(e,n("3IRH")(t))},mQxp:function(t,e,n){"use strict";var r=n("Gs0Q"),i=n("hvFG"),a=!1;var o=function(t){a||n("AxiT")},s=n("VU/8")(r.a,i.a,!1,o,null,null);s.options.__file="components\\schemaToc.vue",e.a=s.exports},mTAn:function(t,e){t.exports=function(t,e){return null==t?void 0:t[e]}},mbce:function(t,e,n){var r=n("lktj"),i=n("TcQ7"),a=n("NpIQ").f;t.exports=function(t){return function(e){for(var n,o=i(e),s=r(o),c=s.length,u=0,l=[];c>u;)a.call(o,n=s[u++])&&l.push(t?[n,o[n]]:o[n]);return l}}},mgnk:function(t,e,n){var r=n("aCM0"),i=n("UnEC"),a="[object Arguments]";t.exports=function(t){return i(t)&&r(t)==a}},nWuj:function(t,e){t.exports=function(t,e){return t.add(e),t}},nw3t:function(t,e,n){var r=n("p0bc");t.exports=function(t,e,n){"__proto__"==e&&r?r(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}},o2mx:function(t,e,n){var r=n("NkRn"),i=n("Hxdr"),a=n("NGEn"),o=n("6MiT"),s=1/0,c=r?r.prototype:void 0,u=c?c.toString:void 0;t.exports=function t(e){if("string"==typeof e)return e;if(a(e))return i(e,t)+"";if(o(e))return u?u.call(e):"";var n=e+"";return"0"==n&&1/e==-s?"-0":n}},octw:function(t,e){t.exports=function(t){var e=-1,n=Array(t.size);return t.forEach(function(t){n[++e]=t}),n}},oqL2:function(t,e){t.exports=function(t){var e=null==t?0:t.length;return e?t[e-1]:void 0}},p0bc:function(t,e,n){var r=n("ICSD"),i=function(){try{var t=r(Object,"defineProperty");return t({},"",{}),t}catch(t){}}();t.exports=i},pTUa:function(t,e,n){var r=n("/I3N");t.exports=function(t,e){var n=t.__data__;return r(e)?n["string"==typeof e?"string":"hash"]:n.map}},py9u:function(t,e,n){var r=n("tv3T"),i=n("t8rQ");t.exports=function(t,e){return t&&r(e,i(e),t)}},qwTf:function(t,e,n){var r=n("TQ3y").Uint8Array;t.exports=r},qyJz:function(t,e,n){"use strict";var r=n("+ZMJ"),i=n("kM2E"),a=n("sB3e"),o=n("msXi"),s=n("Mhyx"),c=n("QRG4"),u=n("fBQ2"),l=n("3fs2");i(i.S+i.F*!n("dY0y")(function(t){Array.from(t)}),"Array",{from:function(t){var e,n,i,f,p=a(t),d="function"==typeof this?this:Array,v=arguments.length,h=v>1?arguments[1]:void 0,m=void 0!==h,b=0,y=l(p);if(m&&(h=r(h,v>2?arguments[2]:void 0,2)),void 0==y||d==Array&&s(y))for(n=new d(e=c(p.length));e>b;b++)u(n,b,m?h(p[b],b):p[b]);else for(f=y.call(p),n=new d;!(i=f.next()).done;b++)u(n,b,m?o(f,h,[i.value,b],!0):i.value);return n.length=b,n}})},rCVp:function(t,e,n){var r=n("1C79");t.exports=function(t){return null!=t&&t.length?r(t,1):[]}},rVUV:function(t,e,n){var r=n("Fkvj"),i=1,a=4;t.exports=function(t,e){return r(t,i|a,e="function"==typeof e?e:void 0)}},rpnb:function(t,e,n){var r=n("tHks")();t.exports=r},s8mu:function(t,e,n){"use strict";var r=n("cER1"),i=n("D9sP"),a=!1;var o=function(t){a||n("A51D")},s=n("VU/8")(r.a,i.a,!1,o,null,null);s.options.__file="components\\schemaDetail.vue",e.a=s.exports},t8rQ:function(t,e,n){var r=n("7e4z"),i=n("G0Wc"),a=n("bGc4");t.exports=function(t){return a(t)?r(t,!0):i(t)}},tHks:function(t,e){t.exports=function(t){return function(e,n,r){for(var i=-1,a=Object(e),o=r(e),s=o.length;s--;){var c=o[t?s:++i];if(!1===n(a[c],c,a))break}return e}}},tv3T:function(t,e,n){var r=n("i4ON"),i=n("nw3t");t.exports=function(t,e,n,a){var o=!n;n||(n={});for(var s=-1,c=e.length;++s<c;){var u=e[s],l=a?a(n[u],t[u],u,n,t):void 0;void 0===l&&(l=t[u]),o?i(n,u,l):r(n,u,l)}return n}},uCi2:function(t,e,n){var r=n("bIjD"),i=n("Ubhr");t.exports=function(t,e){for(var n=0,a=(e=r(e,t)).length;null!=t&&n<a;)t=t[i(e[n++])];return n&&n==a?t:void 0}},uIr7:function(t,e){t.exports=function(t,e){for(var n=-1,r=e.length,i=t.length;++n<r;)t[i+n]=e[n];return t}},uLhX:function(t,e,n){var r=n("NkRn"),i=Object.prototype,a=i.hasOwnProperty,o=i.toString,s=r?r.toStringTag:void 0;t.exports=function(t){var e=a.call(t,s),n=t[s];try{t[s]=void 0;var r=!0}catch(t){}var i=o.call(t);return r&&(e?t[s]=n:delete t[s]),i}},"ue/d":function(t,e){t.exports=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}},uieL:function(t,e){t.exports=function(t,e){for(var n=-1,r=Array(t);++n<t;)r[n]=e(n);return r}},"us/S":function(t,e,n){t.exports={default:n("Xd32"),__esModule:!0}},v8Dt:function(t,e,n){var r=n("pTUa");t.exports=function(t){return r(this,t).get(t)}},vi0E:function(t,e,n){var r=n("f931")(Object.getPrototypeOf,Object);t.exports=r},wEtr:function(t,e,n){n("gSvA"),t.exports=n("FeBl").Object.entries},wSKX:function(t,e){t.exports=function(t){return t}},wxAW:function(t,e,n){"use strict";e.__esModule=!0;var r,i=n("C4MV"),a=(r=i)&&r.__esModule?r:{default:r};e.default=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),(0,a.default)(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}()},xond:function(t,e,n){var r=n("FCuZ"),i=n("09Qt"),a=n("t8rQ");t.exports=function(t){return r(t,a,i)}},yCNF:function(t,e){t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},z4hc:function(t,e,n){var r=n("aCM0"),i=n("Rh28"),a=n("UnEC"),o={};o["[object Float32Array]"]=o["[object Float64Array]"]=o["[object Int8Array]"]=o["[object Int16Array]"]=o["[object Int32Array]"]=o["[object Uint8Array]"]=o["[object Uint8ClampedArray]"]=o["[object Uint16Array]"]=o["[object Uint32Array]"]=!0,o["[object Arguments]"]=o["[object Array]"]=o["[object ArrayBuffer]"]=o["[object Boolean]"]=o["[object DataView]"]=o["[object Date]"]=o["[object Error]"]=o["[object Function]"]=o["[object Map]"]=o["[object Number]"]=o["[object Object]"]=o["[object RegExp]"]=o["[object Set]"]=o["[object String]"]=o["[object WeakMap]"]=!1,t.exports=function(t){return a(t)&&i(t.length)&&!!o[r(t)]}},zBOP:function(t,e,n){var r=n("22B7"),i=n("bGc4"),a=n("ZGh9"),o=n("yCNF");t.exports=function(t,e,n){if(!o(n))return!1;var s=typeof e;return!!("number"==s?i(n)&&a(e,n.length):"string"==s&&e in n)&&r(n[e],t)}},zGZ6:function(t,e,n){var r=n("YeCl"),i="Expected a function";function a(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError(i);var n=function(){var r=arguments,i=e?e.apply(this,r):r[0],a=n.cache;if(a.has(i))return a.get(i);var o=t.apply(this,r);return n.cache=a.set(i,o)||a,o};return n.cache=new(a.Cache||r),n}a.Cache=r,t.exports=a},zpVT:function(t,e,n){var r=n("duB3"),i=n("POb3"),a=n("YeCl"),o=200;t.exports=function(t,e){var n=this.__data__;if(n instanceof r){var s=n.__data__;if(!i||s.length<o-1)return s.push([t,e]),this.size=++n.size,this;n=this.__data__=new a(s)}return n.set(t,e),this.size=n.size,this}}});
\ No newline at end of file
diff --git a/files/pages_specification_v2_measurement-message.31b7192747b3c0fbb2e0.js b/files/pages_specification_v2_measurement-message.31b7192747b3c0fbb2e0.js
new file mode 100644
index 0000000..2c4614f
--- /dev/null
+++ b/files/pages_specification_v2_measurement-message.31b7192747b3c0fbb2e0.js
@@ -0,0 +1 @@
+webpackJsonp([4],{"+66z":function(t,e){var n=Object.prototype.toString;t.exports=function(t){return n.call(t)}},"+99L":function(t,e,n){var r={"./v2/measurement_schema.json":["oGp6",23],"./v2/message_schema.json":["2BTs",22],"./v2/process_schema.json":["rRyJ",21],"./v3/measurement_schema.json":["PpY5",20],"./v3/message_schema.json":["1SJ2",19],"./v3/process_schema.json":["uwRd",18]};function i(t){var e=r[t];return e?n.e(e[1]).then(function(){return n(e[0])}):Promise.reject(new Error("Cannot find module '"+t+"'."))}i.keys=function(){return Object.keys(r)},i.id="+99L",t.exports=i},"+gg+":function(t,e,n){var r=n("TQ3y")["__core-js_shared__"];t.exports=r},"/GnY":function(t,e,n){var r=n("HT7L"),i=n("W529"),a=Object.prototype.hasOwnProperty;t.exports=function(t){if(!r(t))return i(t);var e=[];for(var n in Object(t))a.call(t,n)&&"constructor"!=n&&e.push(n);return e}},"/I3N":function(t,e){t.exports=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t}},"037f":function(t,e,n){var r=n("1oyr"),i=n("p0bc"),a=n("wSKX"),o=i?function(t,e){return i(t,"toString",{configurable:!0,enumerable:!1,value:r(e),writable:!0})}:a;t.exports=o},"09Qt":function(t,e,n){var r=n("uIr7"),i=n("vi0E"),a=n("l9Lx"),o=n("C0hh"),s=Object.getOwnPropertySymbols?function(t){for(var e=[];t;)r(e,a(t)),t=i(t);return e}:o;t.exports=s},"0DSl":function(t,e,n){var r=n("YkxI"),i=n("zBOP");t.exports=function(t){return r(function(e,n){var r=-1,a=n.length,o=a>1?n[a-1]:void 0,s=a>2?n[2]:void 0;for(o=t.length>3&&"function"==typeof o?(a--,o):void 0,s&&i(n[0],n[1],s)&&(o=a<3?void 0:o,a=1),e=Object(e);++r<a;){var c=n[r];c&&t(e,c,r,o)}return e})}},"0uX4":function(t,e,n){var r=n("NkRn"),i=r?r.prototype:void 0,a=i?i.valueOf:void 0;t.exports=function(t){return a?Object(a.call(t)):{}}},"1C79":function(t,e,n){var r=n("uIr7"),i=n("Qp3N");t.exports=function t(e,n,a,o,s){var c=-1,u=e.length;for(a||(a=i),s||(s=[]);++c<u;){var l=e[c];n>0&&a(l)?n>1?t(l,n-1,a,o,s):r(s,l):o||(s[s.length]=l)}return s}},"1QDk":function(t,e,n){var r=n("tv3T"),i=n("09Qt");t.exports=function(t,e){return r(t,i(t),e)}},"1Yb9":function(t,e,n){var r=n("mgnk"),i=n("UnEC"),a=Object.prototype,o=a.hasOwnProperty,s=a.propertyIsEnumerable,c=r(function(){return arguments}())?r:function(t){return i(t)&&o.call(t,"callee")&&!s.call(t,"callee")};t.exports=c},"1oyr":function(t,e){t.exports=function(t){return function(){return t}}},"22B7":function(t,e){t.exports=function(t,e){return t===e||t!=t&&e!=e}},"2Hvv":function(t,e,n){var r=n("imBK");t.exports=function(t){return r(this.__data__,t)>-1}},"2N6f":function(t,e,n){var r=n("rCVp"),i=n("Q2wK"),a=n("WHce");t.exports=function(t){return a(i(t,void 0,r),t+"")}},"3IRH":function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},"3rZI":function(t,e){t.exports=function(t,e,n,r){var i=-1,a=null==t?0:t.length;for(r&&a&&(n=t[++i]);++i<a;)n=e(n,t[i],i,t);return n}},"4yG7":function(t,e,n){var r=n("HAGj");t.exports=function(t,e,n){return null==t?t:r(t,e,n)}},"5/Qr":function(t,e,n){var r=n("Kzd6"),i=n("6Git"),a=n("Jqj6"),o=n("WyC4"),s=n("7jYp"),c=n("0uX4"),u=n("Ilb/"),l="[object Boolean]",f="[object Date]",p="[object Map]",d="[object Number]",v="[object RegExp]",h="[object Set]",m="[object String]",b="[object Symbol]",y="[object ArrayBuffer]",_="[object DataView]",x="[object Float32Array]",g="[object Float64Array]",j="[object Int8Array]",C="[object Int16Array]",O="[object Int32Array]",w="[object Uint8Array]",k="[object Uint8ClampedArray]",T="[object Uint16Array]",P="[object Uint32Array]";t.exports=function(t,e,n,E){var S=t.constructor;switch(e){case y:return r(t);case l:case f:return new S(+t);case _:return i(t,E);case x:case g:case j:case C:case O:case w:case k:case T:case P:return u(t,E);case p:return a(t,E,n);case d:case m:return new S(t);case v:return o(t);case h:return s(t,E,n);case b:return c(t)}}},"5N57":function(t,e,n){var r=n("ICSD")(n("TQ3y"),"Set");t.exports=r},"5PlU":function(t,e,n){var r=n("RY/4"),i=n("dSzd")("iterator"),a=n("/bQp");t.exports=n("FeBl").isIterable=function(t){var e=Object(t);return void 0!==e[i]||"@@iterator"in e||a.hasOwnProperty(r(e))}},"5pwE":function(t,e,n){(t.exports=n("YHym")(!1)).push([t.i,".schemaDetail a{text-decoration:none}.schemaDetail .property ul{list-style-type:disc;padding-left:1em;margin-left:0;margin-top:0}",""])},"5zde":function(t,e,n){n("zQR9"),n("qyJz"),t.exports=n("FeBl").Array.from},"6Git":function(t,e,n){var r=n("Kzd6");t.exports=function(t,e){var n=e?r(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}},"6MiT":function(t,e,n){var r=n("aCM0"),i=n("UnEC"),a="[object Symbol]";t.exports=function(t){return"symbol"==typeof t||i(t)&&r(t)==a}},"77aO":function(t,e,n){"use strict";e.a={props:{collapsed:{type:Boolean,default:!1}},data:function(){return{expanded:!this.collapsed,transitioning:!1}},watch:{collapsed:function(t){this.expanded=!t}},methods:{beforeenter:function(t){this.transitioning=!0,t.style.height=0},enter:function(t){t.style.height=t.scrollHeight+"px"},afterenter:function(t){t.style.height="",this.transitioning=!1},beforeleave:function(t){this.transitioning=!0,t.style.height=t.offsetHeight+"px",t.offsetHeight},leave:function(t){t.style.height=0,t.offsetHeight},afterleave:function(t){this.transitioning=!1},toggle:function(){this.transitioning||(this.expanded=!this.expanded,this.$emit(this.expanded?"expanding":"collapsing",this.id))}}}},"7e4z":function(t,e,n){var r=n("uieL"),i=n("1Yb9"),a=n("NGEn"),o=n("ggOT"),s=n("ZGh9"),c=n("YsVG"),u=Object.prototype.hasOwnProperty;t.exports=function(t,e){var n=a(t),l=!n&&i(t),f=!n&&!l&&o(t),p=!n&&!l&&!f&&c(t),d=n||l||f||p,v=d?r(t.length,String):[],h=v.length;for(var m in t)!e&&!u.call(t,m)||d&&("length"==m||f&&("offset"==m||"parent"==m)||p&&("buffer"==m||"byteLength"==m||"byteOffset"==m)||s(m,h))||v.push(m);return v}},"7jYp":function(t,e,n){var r=n("nWuj"),i=n("3rZI"),a=n("octw"),o=1;t.exports=function(t,e,n){var s=e?n(a(t),o):a(t);return i(s,r,new t.constructor)}},"8AZL":function(t,e){t.exports=function(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}},"8gK5":function(t,e){t.exports=function(t){var e=[];if(null!=t)for(var n in Object(t))e.push(n);return e}},"94sX":function(t,e,n){var r=n("dCZQ");t.exports=function(){this.__data__=r?r(null):{},this.size=0}},"9UkZ":function(t,e,n){var r=n("aCM0"),i=n("vi0E"),a=n("UnEC"),o="[object Object]",s=Function.prototype,c=Object.prototype,u=s.toString,l=c.hasOwnProperty,f=u.call(Object);t.exports=function(t){if(!a(t)||r(t)!=o)return!1;var e=i(t);if(null===e)return!0;var n=l.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&u.call(n)==f}},A51D:function(t,e,n){var r=n("5pwE");"string"==typeof r&&(r=[[t.i,r,""]]),r.locals&&(t.exports=r.locals);n("rjj0")("188b52d2",r,!1)},A9mX:function(t,e,n){var r=n("pTUa");t.exports=function(t){var e=r(this,t).delete(t);return this.size-=e?1:0,e}},"Ai/T":function(t,e){var n=Function.prototype.toString;t.exports=function(t){if(null!=t){try{return n.call(t)}catch(t){}try{return t+""}catch(t){}}return""}},AxiT:function(t,e,n){var r=n("Lw7C");"string"==typeof r&&(r=[[t.i,r,""]]),r.locals&&(t.exports=r.locals);n("rjj0")("0868896c",r,!1)},C0hh:function(t,e){t.exports=function(){return[]}},CW5P:function(t,e,n){var r=n("T/bE"),i=n("duB3"),a=n("POb3");t.exports=function(){this.size=0,this.__data__={hash:new r,map:new(a||i),string:new r}}},Cf65:function(t,e,n){var r=n("uCi2"),i=n("M1c9");t.exports=function(t,e){return e.length<2?t:r(t,i(e,0,-1))}},D9sP:function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"schemaDetail",class:{"is-loading":t.loading},attrs:{id:"schema-detail"}},[n("div",{staticClass:"accordion"},[null!==t.masterSchema?n("card",{attrs:{collapsed:!0}},[n("template",{slot:"header"},[t._v("\n        Structure of the payload\n      ")]),n("ul",t._l(t.masterSchema.properties,function(t,e){return n("schemaToc",{key:e,attrs:{schema:t}})}))],2):t._e(),t._t("default")],2),n("h1",[n("a",{attrs:{id:t.type+"-schema-detail",title:t.type+" Fields definition"}}),t._v("\n    Fields definition\n  ")]),t._l(t.schemas,function(e){return n("div",{key:e.$id,staticClass:"card property"},[n("header",{staticClass:"card-header"},[n("a",{attrs:{id:"p-"+e.$id}}),n("p",{staticClass:"card-header-title"},[n("span",{domProps:{innerHTML:t._s(e.getPath())}})]),n("nuxt-link",{staticClass:"card-header-icon",attrs:{to:"#schema-detail",title:"go up"}},[n("span",{staticClass:"icon"},[n("i",{staticClass:"fa fa-angle-up"})])])],1),n("div",{staticClass:"card-content"},[e.description||e.type?n("div",{staticClass:"field is-horizontal"},[t._m(0,!0),e.description?n("div",{staticClass:"field-body"},[t._v("\n          "+t._s(e.description)+"\n        ")]):e.type?n("div",{staticClass:"field-body"},[t._v("\n          A simple "+t._s(t._f("capitalize")(e.type))+"\n        ")]):t._e()]):t._e(),e.$parent?n("div",{staticClass:"field is-horizontal"},[t._m(1,!0),n("div",{staticClass:"field-body"},[n("nuxt-link",{attrs:{to:"#p-"+e.$parent.schema.$id}},[n("span",{domProps:{innerHTML:t._s(e.$parent.schema.getPath())}})])],1)]):t._e(),e.type?n("div",{staticClass:"field is-horizontal"},[t._m(2,!0),n("div",{staticClass:"field-body"},[t._v("\n          "+t._s(t._f("capitalize")(e.type,e))+"\n        ")])]):t._e(),e.format?n("div",{staticClass:"field is-horizontal"},[t._m(3,!0),n("div",{staticClass:"field-body"},[t._v("\n          "+t._s(e.format)+"\n          "),t.$static.formats[e.format]?n("a",{attrs:{href:t.$static.formats[e.format].link}},[t._v(" ("+t._s(t.$static.formats[e.format].name)+")")]):t._e()])]):t._e(),e.enum&&e.enum.length?n("div",{staticClass:"field is-horizontal"},[t._m(4,!0),n("div",{staticClass:"field-body"},[n("div",[t._v("\n            "+t._s(e.enum.join(", "))+"\n          ")])])]):t._e(),e.hasOwnProperty("default")?n("div",{staticClass:"field is-horizontal"},[t._m(5,!0),n("div",{staticClass:"field-body"},[n("div",[t._v("\n            "+t._s(e.default)+"\n          ")])])]):t._e(),e.maxLength?n("div",{staticClass:"field is-horizontal"},[t._m(6,!0),n("div",{staticClass:"field-body"},[n("div",[t._v("\n            "+t._s(e.maxLength)+"\n          ")])])]):t._e(),e.properties||e.patternProperties||e.items?n("div",{staticClass:"field is-horizontal"},[t._m(7,!0),n("div",{staticClass:"field-body"},[Object.keys(e.properties||{}).length>0?n("schemaLink",{attrs:{link:e.properties}}):t._e(),Object.keys(e.patternProperties||{}).length>0?n("schemaLink",{attrs:{link:e.patternProperties}},[n("div",[t._v("Matching regular expressions:")])]):t._e(),!e.items||e.items instanceof Array?e.items?n("schemaLink",{attrs:{link:e.items}},[n("div",[t._v("Ordered items of type:")])]):t._e():n("schemaLink",{attrs:{link:e.items}}),Object.keys(e.properties||{}).length+Object.keys(e.patternProperties||{}).length!==0||e.items?t._e():[t._v("none")]],2)]):t._e(),e.minProperties?n("div",{staticClass:"field is-horizontal"},[t._m(8,!0),n("div",{staticClass:"field-body"},[n("div",[t._v("\n            "+t._s(e.minProperties)+"\n          ")])])]):t._e(),e.minItems?n("div",{staticClass:"field is-horizontal"},[t._m(9,!0),n("div",{staticClass:"field-body"},[n("div",[t._v("\n            "+t._s(e.minItems)+"\n          ")])])]):t._e(),e.hasOwnProperty("additionalProperties")?n("div",{staticClass:"field is-horizontal"},[t._m(10,!0),"boolean"==typeof e.additionalProperties?n("schemaLink",{staticClass:"field-body",attrs:{link:e.additionalProperties}}):n("div",{staticClass:"field-body"},[t._v("\n          if fulfilling "),n("schemaLink",{staticClass:"field-body",attrs:{link:e.additionalProperties}})],1)],1):t._e(),e.not||e.oneOf||e.allOf||e.anyOf?n("div",{staticClass:"field is-horizontal"},[t._m(11,!0),n("div",{staticClass:"field-body"},[e.not?n("schemaLink",{attrs:{link:e.not}},[t._v("\n            Not fulfilling \n          ")]):t._e(),e.oneOf?n("schemaLink",{attrs:{link:e.oneOf}},[n("div",[t._v("Fulfilling exactly one of:")])]):t._e(),e.allOf?n("schemaLink",{attrs:{link:e.allOf}},[n("div",[t._v("Fulfilling all of:")])]):t._e(),e.anyOf?n("schemaLink",{attrs:{link:e.anyOf}},[n("div",[t._v("Fulfilling one of:")])]):t._e()],1)]):t._e(),e.required&&e.required.length?n("div",{staticClass:"field is-horizontal"},[t._m(12,!0),n("div",{staticClass:"field-body"},[t._v("\n          "+t._s(e.required.join(", "))+"\n        ")])]):t._e(),e.examples?n("div",{staticClass:"field is-horizontal"},[t._m(13,!0),n("div",{staticClass:"field-body"},t._l(e.examples,function(e,r){return n("prism",{key:r,attrs:{language:"json"}},[t._v(t._s(t._f("stringify")(e)))])}))]):t._e()])])})],2)};r._withStripped=!0;var i={render:r,staticRenderFns:[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Description:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Parent:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Type:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Format:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Possible values:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Defaults to:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Maximum length:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Restriction on subfields:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Minimum amount of subfields:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Minimum amount of items:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Allows additional fields:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Restriction with boolean logic:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Required fields:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Example:")])])}]};e.a=i},"DU5+":function(t,e,n){"use strict";var r=n("mvHQ"),i=n.n(r),a=n("d7EF"),o=n.n(a),s=n("Dd8w"),c=n.n(s),u=n("W3Iv"),l=n.n(u),f=n("LJry"),p=n.n(f),d=n("T9Hf"),v=n("Q7hp"),h=n.n(v),m=n("s8mu");e.a={head:function(){return{title:"Specification for measurement messages"}},created:function(){var t=this,e=new Date,n="a4927dad-58d4-4580-b460-79cefd56775b";this.$static={message:{"content-spec":"urn:spec://eclipse.org/unide/measurement-message#v2",device:{deviceID:n},measurements:[{ts:e.toISOString(),series:{$_time:[0,23,24],temperature:[45.4231,46.4222,44.2432]}}]},complexMessage:{"content-spec":"urn:spec://eclipse.org/unide/measurement-message#v2",device:{deviceID:n,operationalStatus:"MM",metaData:{swVersion:"2.0.3.13",swBuildID:"41535"}},part:{partTypeID:"F00VH07328",partID:"420003844",result:"OK",code:"HUH289",metaData:{lotID:"845849",toolID:"32324-432143"}},measurements:[{ts:e.toISOString(),code:"190ABT",result:"OK",series:{$_time:[0,23,24],temperature:[45.4231,46.4222,44.2432]},limits:{temperature:{lowerError:40,lowerWarn:45,upperError:50,upperWarn:47.5}}},{ts:new Date(e.valueOf()-5e3).toISOString(),series:{$_time:[0,130,2633],pressure:[52.4,46.32,44.2432]}}]}},this.$static.examples=l()(c()({},["content-spec","device","device.deviceID","device.metaData","device.operationalStatus","measurements","measurements[0].code","measurements[0].limits","measurements[0].result","measurements[0].series","measurements[0].ts","part","part.code","part.metaData","part.partID","part.partTypeID","part.result"].reduce(function(t,e){return t[e.replace(/(^|\.)/g,"$1properties.").replace(/\[[^]]*]/g,".items")]=e,t},{'properties.measurements.items.properties.limits.patternProperties["^[^$]+"]':"measurements[0].limits.temperature",'properties.measurements.items.properties.series.patternProperties["^[^$]+"]':"measurements[0].series.temperature"}),["lowerError","lowerWarn","target","upperError","upperWarn"].reduce(function(t,e){return t['properties.measurements.items.properties.limits.patternProperties["^[^$]+"].properties.'+e]="measurements[0].limits.temperature."+e,t},{}))).reduce(function(e,n){var r=o()(n,2),i=r[0],a=r[1],s=h()(t.$static.message,a)||h()(t.$static.complexMessage,a);return s&&(e[i]=[s]),e},{})},filters:{stringify:function(t){return i()(t," ",2)}},components:{card:d.a,prism:p.a,schemaDetail:m.a}}},Dc0G:function(t,e,n){(function(t){var r=n("blYT"),i="object"==typeof e&&e&&!e.nodeType&&e,a=i&&"object"==typeof t&&t&&!t.nodeType&&t,o=a&&a.exports===i&&r.process,s=function(){try{return o&&o.binding&&o.binding("util")}catch(t){}}();t.exports=s}).call(e,n("3IRH")(t))},Dc7M:function(t,e,n){var r=n("Hxdr"),i=n("Fkvj"),a=n("Vi3P"),o=n("bIjD"),s=n("tv3T"),c=n("dYhQ"),u=n("2N6f"),l=n("xond"),f=u(function(t,e){var n={};if(null==t)return n;var u=!1;e=r(e,function(e){return e=o(e,t),u||(u=e.length>1),e}),s(t,l(t),n),u&&(n=i(n,7,c));for(var f=e.length;f--;)a(n,e[f]);return n});t.exports=f},Dv2r:function(t,e,n){var r=n("pTUa");t.exports=function(t,e){var n=r(this,t),i=n.size;return n.set(t,e),this.size+=n.size==i?0:1,this}},E4Hj:function(t,e){t.exports=function(t){return this.__data__.get(t)}},FCuZ:function(t,e,n){var r=n("uIr7"),i=n("NGEn");t.exports=function(t,e,n){var a=e(t);return i(t)?a:r(a,n(t))}},Fkvj:function(t,e,n){var r=n("bJWQ"),i=n("PqYH"),a=n("i4ON"),o=n("jD7S"),s=n("py9u"),c=n("mKB/"),u=n("hrPF"),l=n("Nkkh"),f=n("1QDk"),p=n("MoMe"),d=n("xond"),v=n("gHOb"),h=n("UfSK"),m=n("5/Qr"),b=n("WQFf"),y=n("NGEn"),_=n("ggOT"),x=n("yCNF"),g=n("ktak"),j=1,C=2,O=4,w="[object Arguments]",k="[object Function]",T="[object GeneratorFunction]",P="[object Object]",E={};E[w]=E["[object Array]"]=E["[object ArrayBuffer]"]=E["[object DataView]"]=E["[object Boolean]"]=E["[object Date]"]=E["[object Float32Array]"]=E["[object Float64Array]"]=E["[object Int8Array]"]=E["[object Int16Array]"]=E["[object Int32Array]"]=E["[object Map]"]=E["[object Number]"]=E[P]=E["[object RegExp]"]=E["[object Set]"]=E["[object String]"]=E["[object Symbol]"]=E["[object Uint8Array]"]=E["[object Uint8ClampedArray]"]=E["[object Uint16Array]"]=E["[object Uint32Array]"]=!0,E["[object Error]"]=E[k]=E["[object WeakMap]"]=!1,t.exports=function t(e,n,S,A,$,I){var F,M=n&j,D=n&C,z=n&O;if(S&&(F=$?S(e,A,$,I):S(e)),void 0!==F)return F;if(!x(e))return e;var N=y(e);if(N){if(F=h(e),!M)return u(e,F)}else{var U=v(e),Q=U==k||U==T;if(_(e))return c(e,M);if(U==P||U==w||Q&&!$){if(F=D||Q?{}:b(e),!M)return D?f(e,s(F,e)):l(e,o(F,e))}else{if(!E[U])return $?e:{};F=m(e,U,t,M)}}I||(I=new r);var G=I.get(e);if(G)return G;I.set(e,F);var H=z?D?d:p:D?keysIn:g,L=N?void 0:H(e);return i(L||e,function(r,i){L&&(r=e[i=r]),a(F,i,t(r,n,S,i,e,I))}),F}},Fp5l:function(t,e,n){var r=n("bGc4"),i=n("UnEC");t.exports=function(t){return i(t)&&r(t)}},G0Wc:function(t,e,n){var r=n("yCNF"),i=n("HT7L"),a=n("8gK5"),o=Object.prototype.hasOwnProperty;t.exports=function(t){if(!r(t))return a(t);var e=i(t),n=[];for(var s in t)("constructor"!=s||!e&&o.call(t,s))&&n.push(s);return n}},G2xm:function(t,e){t.exports=function(t){return this.__data__.has(t)}},Gs0Q:function(t,e,n){"use strict";e.a={name:"schemaToc",props:{tag:{type:String,default:"li"},schema:{type:Object,required:!0}}}},Gu7T:function(t,e,n){"use strict";e.__esModule=!0;var r,i=n("c/Tr"),a=(r=i)&&r.__esModule?r:{default:r};e.default=function(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e<t.length;e++)n[e]=t[e];return n}return(0,a.default)(t)}},HAGj:function(t,e,n){var r=n("i4ON"),i=n("bIjD"),a=n("ZGh9"),o=n("yCNF"),s=n("Ubhr");t.exports=function(t,e,n,c){if(!o(t))return t;for(var u=-1,l=(e=i(e,t)).length,f=l-1,p=t;null!=p&&++u<l;){var d=s(e[u]),v=n;if(u!=f){var h=p[d];void 0===(v=c?c(h,d,p):void 0)&&(v=o(h)?h:a(e[u+1])?[]:{})}r(p,d,v),p=p[d]}return t}},HN2V:function(t,e,n){var r=n("HbnZ"),i=n("0DSl")(function(t,e,n){r(t,e,n)});t.exports=i},HT7L:function(t,e){var n=Object.prototype;t.exports=function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||n)}},HbnZ:function(t,e,n){var r=n("bJWQ"),i=n("O1jc"),a=n("rpnb"),o=n("jMi8"),s=n("yCNF"),c=n("t8rQ");t.exports=function t(e,n,u,l,f){e!==n&&a(n,function(a,c){if(s(a))f||(f=new r),o(e,n,c,u,t,l,f);else{var p=l?l(e[c],a,c+"",e,n,f):void 0;void 0===p&&(p=a),i(e,c,p)}},c)}},Hxdr:function(t,e){t.exports=function(t,e){for(var n=-1,r=null==t?0:t.length,i=Array(r);++n<r;)i[n]=e(t[n],n,t);return i}},ICSD:function(t,e,n){var r=n("ITwD"),i=n("mTAn");t.exports=function(t,e){var n=i(t,e);return r(n)?n:void 0}},ITwD:function(t,e,n){var r=n("gGqR"),i=n("eFps"),a=n("yCNF"),o=n("Ai/T"),s=/^\[object .+?Constructor\]$/,c=Function.prototype,u=Object.prototype,l=c.toString,f=u.hasOwnProperty,p=RegExp("^"+l.call(f).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=function(t){return!(!a(t)||i(t))&&(r(t)?p:s).test(o(t))}},"Ilb/":function(t,e,n){var r=n("Kzd6");t.exports=function(t,e){var n=e?r(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}},JBvZ:function(t,e,n){var r=n("imBK");t.exports=function(t){var e=this.__data__,n=r(e,t);return n<0?void 0:e[n][1]}},Jqj6:function(t,e,n){var r=n("U7Aq"),i=n("3rZI"),a=n("WFiI"),o=1;t.exports=function(t,e,n){var s=e?n(a(t),o):a(t);return i(s,r,new t.constructor)}},KmWZ:function(t,e,n){var r=n("duB3");t.exports=function(){this.__data__=new r,this.size=0}},Kzd6:function(t,e,n){var r=n("qwTf");t.exports=function(t){var e=new t.constructor(t.byteLength);return new r(e).set(new r(t)),e}},LJry:function(t,e,n){"use strict";var r={functional:!0,props:{code:{type:String},language:{type:String,default:"markup"}},render:function(t,e){var n=e.props.code||e.children[0].text,r=e.props.language,i=Prism.languages[r],a="language-"+r;return t("pre",function(t){for(var e=arguments,n=1;n<arguments.length;n++)for(var r in arguments[n])t[r]=e[n][r];return t}({},e.data,{class:[e.data.class,a]}),[t("code",{class:a,domProps:{innerHTML:Prism.highlight(n,i)}})])}};t.exports=r},Lw7C:function(t,e,n){(t.exports=n("YHym")(!1)).push([t.i,"@keyframes spinAround{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}",""])},M1c9:function(t,e){t.exports=function(t,e,n){var r=-1,i=t.length;e<0&&(e=-e>i?0:i+e),(n=n>i?i:n)<0&&(n+=i),i=e>n?0:n-e>>>0,e>>>=0;for(var a=Array(i);++r<i;)a[r]=t[r+e];return a}},MoMe:function(t,e,n){var r=n("FCuZ"),i=n("l9Lx"),a=n("ktak");t.exports=function(t){return r(t,a,i)}},NGEn:function(t,e){var n=Array.isArray;t.exports=n},NVTU:function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"card collapsibleCard",class:{collapsed:!t.expanded}},[t.$slots.header?n("header",{staticClass:"card-header",on:{click:function(e){e.preventDefault(),t.toggle()}}},[n("p",{staticClass:"card-header-title"},[!t.$slots.headerCollapsed||t.expanded?t._t("header"):t._t("headerCollapsed")],2),n("a",{staticClass:"card-header-icon"},[n("span",{staticClass:"icon"},[n("i",{staticClass:"fa",class:{"fa-angle-down":t.expanded,"fa-angle-up":!t.expanded}})])])]):t._e(),n("transition",{attrs:{name:"rollup","leave-active-class":"collapsing","enter-active-class":"collapsing"},on:{"before-leave":t.beforeleave,leave:t.leave,"after-leave":t.afterleave,"before-enter":t.beforeenter,enter:t.enter,"after-enter":t.afterenter}},[n("div",{directives:[{name:"show",rawName:"v-show",value:t.expanded,expression:"expanded"}]},[n("div",{staticClass:"card-content"},[t._t("default")],2)])])],1)};r._withStripped=!0;var i={render:r,staticRenderFns:[]};e.a=i},NkRn:function(t,e,n){var r=n("TQ3y").Symbol;t.exports=r},Nkkh:function(t,e,n){var r=n("tv3T"),i=n("l9Lx");t.exports=function(t,e){return r(t,i(t),e)}},NqZt:function(t,e){t.exports=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}},O1jc:function(t,e,n){var r=n("nw3t"),i=n("22B7");t.exports=function(t,e,n){(void 0===n||i(t[e],n))&&(void 0!==n||e in t)||r(t,e,n)}},POb3:function(t,e,n){var r=n("ICSD")(n("TQ3y"),"Map");t.exports=r},PdEb:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n("DU5+"),i=n("VyEN"),a=n("VU/8")(r.a,i.a,!1,null,null,null);a.options.__file="pages\\specification\\v2\\measurement-message.vue",e.default=a.exports},PqYH:function(t,e){t.exports=function(t,e){for(var n=-1,r=null==t?0:t.length;++n<r&&!1!==e(t[n],n,t););return t}},Q2wK:function(t,e,n){var r=n("8AZL"),i=Math.max;t.exports=function(t,e,n){return e=i(void 0===e?t.length-1:e,0),function(){for(var a=arguments,o=-1,s=i(a.length-e,0),c=Array(s);++o<s;)c[o]=a[e+o];o=-1;for(var u=Array(e+1);++o<e;)u[o]=a[o];return u[e]=n(c),r(t,this,u)}}},Q7hp:function(t,e,n){var r=n("uCi2");t.exports=function(t,e,n){var i=null==t?void 0:r(t,e);return void 0===i?n:i}},Qp3N:function(t,e,n){var r=n("NkRn"),i=n("1Yb9"),a=n("NGEn"),o=r?r.isConcatSpreadable:void 0;t.exports=function(t){return a(t)||i(t)||!!(o&&t&&t[o])}},RGrk:function(t,e,n){var r=n("dCZQ"),i=Object.prototype.hasOwnProperty;t.exports=function(t){var e=this.__data__;return r?void 0!==e[t]:i.call(e,t)}},Rh28:function(t,e){var n=9007199254740991;t.exports=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=n}},S7p9:function(t,e){t.exports=function(t){return function(e){return t(e)}}},"T/bE":function(t,e,n){var r=n("94sX"),i=n("ue/d"),a=n("eVIm"),o=n("RGrk"),s=n("Z2pD");function c(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}c.prototype.clear=r,c.prototype.delete=i,c.prototype.get=a,c.prototype.has=o,c.prototype.set=s,t.exports=c},T9Hf:function(t,e,n){"use strict";var r=n("77aO"),i=n("NVTU"),a=!1;var o=function(t){a||n("WVEp")},s=n("VU/8")(r.a,i.a,!1,o,null,null);s.options.__file="components\\collapsibleCard.vue",e.a=s.exports},TQ3y:function(t,e,n){var r=n("blYT"),i="object"==typeof self&&self&&self.Object===Object&&self,a=r||i||Function("return this")();t.exports=a},TlPD:function(t,e,n){var r=n("tv3T"),i=n("t8rQ");t.exports=function(t){return r(t,i(t))}},TmV0:function(t,e,n){n("fZOM"),t.exports=n("FeBl").Object.values},U7Aq:function(t,e){t.exports=function(t,e){return t.set(e[0],e[1]),t}},Ubhr:function(t,e,n){var r=n("6MiT"),i=1/0;t.exports=function(t){if("string"==typeof t||r(t))return t;var e=t+"";return"0"==e&&1/t==-i?"-0":e}},UfSK:function(t,e){var n=Object.prototype.hasOwnProperty;t.exports=function(t){var e=t.length,r=t.constructor(e);return e&&"string"==typeof t[0]&&n.call(t,"index")&&(r.index=t.index,r.input=t.input),r}},UnEC:function(t,e){t.exports=function(t){return null!=t&&"object"==typeof t}},UnLw:function(t,e,n){var r=/^\./,i=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,a=/\\(\\)?/g,o=n("fMqj")(function(t){var e=[];return r.test(t)&&e.push(""),t.replace(i,function(t,n,r,i){e.push(r?i.replace(a,"$1"):n||t)}),e});t.exports=o},VORN:function(t,e,n){var r=n("yCNF"),i=Object.create,a=function(){function t(){}return function(e){if(!r(e))return{};if(i)return i(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();t.exports=a},Vi3P:function(t,e,n){var r=n("bIjD"),i=n("oqL2"),a=n("Cf65"),o=n("Ubhr");t.exports=function(t,e){return e=r(e,t),null==(t=a(t,e))||delete t[o(i(e))]}},VyEN:function(t,e,n){"use strict";var r=function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"measurement-message content"},[this._m(0),e("p",[this._v("The measurement message is the format to exchange simple (non-structured, non-complex ) measurement data. It also allows to transport multiple measurement data (eg. values over time), called 'series'.")]),e("img",{staticClass:"is-centered",attrs:{src:"images/specification/v2/measurementPayload.svg",alt:"Class diagram of the measurement payload",title:"Class diagram of the measurement payload"}}),e("schemaDetail",{attrs:{type:"v2/measurement",examples:this.$static.examples}},[e("card",{attrs:{collapsed:!0}},[e("template",{slot:"header"},[this._v("\n        Minimal message example\n      ")]),e("prism",{attrs:{language:"json"}},[this._v(this._s(this._f("stringify")(this.$static.message)))])],2),e("card",{attrs:{collapsed:!0}},[e("template",{slot:"header"},[this._v("\n        Multiple message example\n      ")]),e("prism",{attrs:{language:"json"}},[this._v(this._s(this._f("stringify")(this.$static.complexMessage)))])],2)],1)],1)};r._withStripped=!0;var i={render:r,staticRenderFns:[function(){var t=this.$createElement,e=this._self._c||t;return e("h1",[e("a",{attrs:{id:"Measurement-Payload",title:"Measurement Payload"}}),this._v("\n    Measurement Payload\n  ")])}]};e.a=i},W3Iv:function(t,e,n){t.exports={default:n("wEtr"),__esModule:!0}},W529:function(t,e,n){var r=n("f931")(Object.keys,Object);t.exports=r},WFiI:function(t,e){t.exports=function(t){var e=-1,n=Array(t.size);return t.forEach(function(t,r){n[++e]=[r,t]}),n}},WHce:function(t,e,n){var r=n("037f"),i=n("Zk5a")(r);t.exports=i},WQFf:function(t,e,n){var r=n("VORN"),i=n("vi0E"),a=n("HT7L");t.exports=function(t){return"function"!=typeof t.constructor||a(t)?{}:r(i(t))}},WVEp:function(t,e,n){var r=n("a3hs");"string"==typeof r&&(r=[[t.i,r,""]]),r.locals&&(t.exports=r.locals);n("rjj0")("52cedc5e",r,!1)},WxI4:function(t,e){t.exports=function(){this.__data__=[],this.size=0}},WyC4:function(t,e){var n=/\w*$/;t.exports=function(t){var e=new t.constructor(t.source,n.exec(t));return e.lastIndex=t.lastIndex,e}},Xd32:function(t,e,n){n("+tPU"),n("zQR9"),t.exports=n("5PlU")},YeCl:function(t,e,n){var r=n("CW5P"),i=n("A9mX"),a=n("v8Dt"),o=n("agim"),s=n("Dv2r");function c(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}c.prototype.clear=r,c.prototype.delete=i,c.prototype.get=a,c.prototype.has=o,c.prototype.set=s,t.exports=c},YkxI:function(t,e,n){var r=n("wSKX"),i=n("Q2wK"),a=n("WHce");t.exports=function(t,e){return a(i(t,e,r),t+"")}},YsVG:function(t,e,n){var r=n("z4hc"),i=n("S7p9"),a=n("Dc0G"),o=a&&a.isTypedArray,s=o?i(o):r;t.exports=s},Z2pD:function(t,e,n){var r=n("dCZQ"),i="__lodash_hash_undefined__";t.exports=function(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=r&&void 0===e?i:e,this}},ZGh9:function(t,e){var n=9007199254740991,r=/^(?:0|[1-9]\d*)$/;t.exports=function(t,e){return!!(e=null==e?n:e)&&("number"==typeof t||r.test(t))&&t>-1&&t%1==0&&t<e}},ZT2e:function(t,e,n){var r=n("o2mx");t.exports=function(t){return null==t?"":r(t)}},Zk5a:function(t,e){var n=800,r=16,i=Date.now;t.exports=function(t){var e=0,a=0;return function(){var o=i(),s=r-(o-a);if(a=o,s>0){if(++e>=n)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}},Zrlr:function(t,e,n){"use strict";e.__esModule=!0,e.default=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},a3hs:function(t,e,n){(t.exports=n("YHym")(!1)).push([t.i,"@keyframes spinAround{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}.card.collapsibleCard>header{cursor:pointer;background-color:#f5f5f5;border-bottom:1px solid hsla(0,0%,4%,.1)}.card.collapsibleCard>header .card-header-icon{text-decoration:none}.card.collapsibleCard>header .card-header-title{font-weight:400}.card.collapsibleCard>header p{margin-bottom:0}.card.collapsibleCard.collapsed header{border-bottom:none}.card.collapsibleCard>div.collapsing{position:relative;height:0;overflow:hidden;display:block;transition-property:height;transition-duration:.35s;transition-timing-function:ease}",""])},aCM0:function(t,e,n){var r=n("NkRn"),i=n("uLhX"),a=n("+66z"),o="[object Null]",s="[object Undefined]",c=r?r.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?s:o:c&&c in Object(t)?i(t):a(t)}},agim:function(t,e,n){var r=n("pTUa");t.exports=function(t){return r(this,t).has(t)}},bGc4:function(t,e,n){var r=n("gGqR"),i=n("Rh28");t.exports=function(t){return null!=t&&i(t.length)&&!r(t)}},bIbi:function(t,e,n){var r=n("ICSD")(n("TQ3y"),"WeakMap");t.exports=r},bIjD:function(t,e,n){var r=n("NGEn"),i=n("hIPy"),a=n("UnLw"),o=n("ZT2e");t.exports=function(t,e){return r(t)?t:i(t,e)?[t]:a(o(t))}},bJWQ:function(t,e,n){var r=n("duB3"),i=n("KmWZ"),a=n("NqZt"),o=n("E4Hj"),s=n("G2xm"),c=n("zpVT");function u(t){var e=this.__data__=new r(t);this.size=e.size}u.prototype.clear=i,u.prototype.delete=a,u.prototype.get=o,u.prototype.has=s,u.prototype.set=c,t.exports=u},bO0Y:function(t,e,n){var r=n("ICSD")(n("TQ3y"),"Promise");t.exports=r},"bXX+":function(t,e,n){"use strict";var r=n("jhkR"),i=n("fvMW"),a=n("VU/8")(r.a,i.a,!1,null,null,null);a.options.__file="components\\schemaLink.vue",e.a=a.exports},bklM:function(t,e,n){var r=n("Fkvj"),i=1,a=4;t.exports=function(t){return r(t,i|a)}},blYT:function(t,e,n){(function(e){var n="object"==typeof e&&e&&e.Object===Object&&e;t.exports=n}).call(e,n("DuR2"))},"c/Tr":function(t,e,n){t.exports={default:n("5zde"),__esModule:!0}},cER1:function(t,e,n){"use strict";var r=n("mvHQ"),i=n.n(r),a=n("fZjL"),o=n.n(a),s=n("Gu7T"),c=n.n(s),u=n("gRE1"),l=n.n(u),f=n("d7EF"),p=n.n(f),d=n("W3Iv"),v=n.n(d),h=n("T9Hf"),m=n("rVUV"),b=(n.n(m),n("Q7hp")),y=n.n(b),_=n("HN2V"),x=n.n(_),g=n("LJry"),j=n.n(g),C=n("lOo0"),O=n("bXX+"),w=n("mQxp"),k=n("4yG7"),T=n.n(k);e.a={props:{type:{type:String,required:!0},examples:{type:Object,required:!1,default:function(){return{}}}},data:function(){return{masterSchema:null,loading:!0}},created:function(){var t=this,e={date:{link:"https://tools.ietf.org/html/rfc3339#section-5.6",name:"RFC3339, 5.6"},email:{link:"https://tools.ietf.org/html/rfc5322#section-3.4.1",name:"RFC5322, 3.4.1"}};n("+99L")("./"+this.type+"_schema.json").then(function(e){return console.time("parsing Schema"),t.masterSchema=new C.a("$",null,e),v()(t.examples).forEach(function(e){var n=p()(e,2),r=n[0],i=n[1];y()(t.masterSchema,r)&&T()(t.masterSchema,r+".examples",i)}),console.timeEnd("parsing Schema"),t.loading=!1,e}).catch(function(t){throw t}),this.$static={formats:{"date-time":e.date,date:e.date,time:e.date,email:e.email}}},methods:{traverse:function(t,e){var n=this;t instanceof C.a?(e(t),v()(t).filter(function(t){var e=p()(t,2),n=e[0];e[1];return"$parent"!==n}).forEach(function(t){var r=p()(t,2),i=(r[0],r[1]);return n.traverse(i,e)})):t instanceof Array?t.forEach(function(t){return n.traverse(t,e)}):t instanceof Object&&l()(t).forEach(function(t){return n.traverse(t,e)})},simplifySchema:function(t){var e=function(t){return t.anyOf&&t.anyOf.indexOf(!0)>=0?[t,!0]:t.allOf&&t.allOf.indexOf(!1)>=0?[t,!1]:t.allOf&&t.allOf.length?[t,new C.a(t.$step,t.$parent,x.a.apply(void 0,[{}].concat(c()(t.allOf.map(function(t){return t.toJSON()})))))]:!0===t.not?[t,!1]:0===o()(t).filter(function(t){return"$"!==t[0]}).length?[t,!0]:null};return this.traverse(t,function(t){!function t(n){if(n){var r=p()(n,2),i=r[0],a=r[1],o=i.$parent;o&&T()(o.schema,o.path,a),i.$parent=null,t(e(o.schema))}}(e(t))}),t}},computed:{schemas:function(){if(!this.masterSchema)return null;var t={};return this.traverse(this.simplifySchema(this.masterSchema),function(e){t[e.$id]=e}),t}},filters:{stringify:function(t){return i()(t," ",2)},capitalize:function(t,e){return t?(t instanceof Array||(t=[t]),t.map(function(t){return""+t[0].toUpperCase()+t.slice(1)}).join(", ")):""}},components:{card:h.a,prism:j.a,schemaToc:w.a,schemaLink:O.a}}},d4US:function(t,e,n){var r=n("ICSD")(n("TQ3y"),"DataView");t.exports=r},d7EF:function(t,e,n){"use strict";e.__esModule=!0;var r=a(n("us/S")),i=a(n("BO1k"));function a(t){return t&&t.__esModule?t:{default:t}}e.default=function(){return function(t,e){if(Array.isArray(t))return t;if((0,r.default)(Object(t)))return function(t,e){var n=[],r=!0,a=!1,o=void 0;try{for(var s,c=(0,i.default)(t);!(r=(s=c.next()).done)&&(n.push(s.value),!e||n.length!==e);r=!0);}catch(t){a=!0,o=t}finally{try{!r&&c.return&&c.return()}finally{if(a)throw o}}return n}(t,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}()},dCZQ:function(t,e,n){var r=n("ICSD")(Object,"create");t.exports=r},dFpP:function(t,e,n){var r=n("imBK"),i=Array.prototype.splice;t.exports=function(t){var e=this.__data__,n=r(e,t);return!(n<0||(n==e.length-1?e.pop():i.call(e,n,1),--this.size,0))}},dYhQ:function(t,e,n){var r=n("9UkZ");t.exports=function(t){return r(t)?void 0:t}},deUO:function(t,e,n){var r=n("imBK");t.exports=function(t,e){var n=this.__data__,i=r(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this}},duB3:function(t,e,n){var r=n("WxI4"),i=n("dFpP"),a=n("JBvZ"),o=n("2Hvv"),s=n("deUO");function c(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}c.prototype.clear=r,c.prototype.delete=i,c.prototype.get=a,c.prototype.has=o,c.prototype.set=s,t.exports=c},eFps:function(t,e,n){var r,i=n("+gg+"),a=(r=/[^.]+$/.exec(i&&i.keys&&i.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"";t.exports=function(t){return!!a&&a in t}},eVIm:function(t,e,n){var r=n("dCZQ"),i="__lodash_hash_undefined__",a=Object.prototype.hasOwnProperty;t.exports=function(t){var e=this.__data__;if(r){var n=e[t];return n===i?void 0:n}return a.call(e,t)?e[t]:void 0}},f931:function(t,e){t.exports=function(t,e){return function(n){return t(e(n))}}},fBQ2:function(t,e,n){"use strict";var r=n("evD5"),i=n("X8DO");t.exports=function(t,e,n){e in t?r.f(t,e,i(0,n)):t[e]=n}},fMqj:function(t,e,n){var r=n("zGZ6"),i=500;t.exports=function(t){var e=r(t,function(t){return n.size===i&&n.clear(),t}),n=e.cache;return e}},fZOM:function(t,e,n){var r=n("kM2E"),i=n("mbce")(!1);r(r.S,"Object",{values:function(t){return i(t)}})},fvMW:function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[t._t("default"),!0===t.link?[t._v("\n    yes \n  ")]:!1===t.link?[t._v("\n    no \n  ")]:t.isSchema(t.link)?[n("nuxt-link",{attrs:{to:"#p-"+t.link.$id}},[n("span",{domProps:{innerHTML:t._s(t.link.getPath())}})])]:t.link instanceof Array?n("ul",t._l(t.link,function(e){return n("li",{key:e.$id},[n("nuxt-link",{attrs:{to:"#p-"+e.$id}},[n("span",{domProps:{innerHTML:t._s(e.getPath())}})])],1)})):t.link instanceof Object?n("ul",t._l(t.link,function(e,r){return n("li",[n("nuxt-link",{attrs:{to:"#p-"+e.$id}},[t._v("\n        "+t._s(r)+"\n      ")])],1)})):t._e()],2)};r._withStripped=!0;var i={render:r,staticRenderFns:[]};e.a=i},gGqR:function(t,e,n){var r=n("aCM0"),i=n("yCNF"),a="[object AsyncFunction]",o="[object Function]",s="[object GeneratorFunction]",c="[object Proxy]";t.exports=function(t){if(!i(t))return!1;var e=r(t);return e==o||e==s||e==a||e==c}},gHOb:function(t,e,n){var r=n("d4US"),i=n("POb3"),a=n("bO0Y"),o=n("5N57"),s=n("bIbi"),c=n("aCM0"),u=n("Ai/T"),l="[object Promise]",f="[object WeakMap]",p="[object DataView]",d=u(r),v=u(i),h=u(a),m=u(o),b=u(s),y=c;(r&&y(new r(new ArrayBuffer(1)))!=p||i&&"[object Map]"!=y(new i)||a&&y(a.resolve())!=l||o&&"[object Set]"!=y(new o)||s&&y(new s)!=f)&&(y=function(t){var e=c(t),n="[object Object]"==e?t.constructor:void 0,r=n?u(n):"";if(r)switch(r){case d:return p;case v:return"[object Map]";case h:return l;case m:return"[object Set]";case b:return f}return e}),t.exports=y},gRE1:function(t,e,n){t.exports={default:n("TmV0"),__esModule:!0}},gSvA:function(t,e,n){var r=n("kM2E"),i=n("mbce")(!0);r(r.S,"Object",{entries:function(t){return i(t)}})},ggOT:function(t,e,n){(function(t){var r=n("TQ3y"),i=n("gwcX"),a="object"==typeof e&&e&&!e.nodeType&&e,o=a&&"object"==typeof t&&t&&!t.nodeType&&t,s=o&&o.exports===a?r.Buffer:void 0,c=(s?s.isBuffer:void 0)||i;t.exports=c}).call(e,n("3IRH")(t))},gwcX:function(t,e){t.exports=function(){return!1}},hIPy:function(t,e,n){var r=n("NGEn"),i=n("6MiT"),a=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,o=/^\w*$/;t.exports=function(t,e){if(r(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!i(t))||o.test(t)||!a.test(t)||null!=e&&t in Object(e)}},hrPF:function(t,e){t.exports=function(t,e){var n=-1,r=t.length;for(e||(e=Array(r));++n<r;)e[n]=t[n];return e}},hvFG:function(t,e,n){"use strict";var r=function(){var t=this.$createElement,e=this._self._c||t;return e(this.tag,{tag:"component"},[e("nuxt-link",{attrs:{to:"#p-"+this.schema.$id}},[e("span",{domProps:{innerHTML:this._s(this.schema.$step)}})]),this.schema.properties||this.schema.patternProperties||this.schema.items?e("ul",[this._l(this.schema.properties,function(t,n){return e("schemaToc",{key:n,attrs:{schema:t}})}),this._l(this.schema.patternProperties,function(t,n){return e("schemaToc",{key:n,attrs:{schema:t}})}),this.schema.items?[this.schema.items instanceof Array?this._l(this.schema.items,function(t,n){return e("schemaToc",{key:n,attrs:{schema:t}})}):e("schemaToc",{attrs:{schema:this.schema.items}})]:this._e()],2):this._e()],1)};r._withStripped=!0;var i={render:r,staticRenderFns:[]};e.a=i},i4ON:function(t,e,n){var r=n("nw3t"),i=n("22B7"),a=Object.prototype.hasOwnProperty;t.exports=function(t,e,n){var o=t[e];a.call(t,e)&&i(o,n)&&(void 0!==n||e in t)||r(t,e,n)}},imBK:function(t,e,n){var r=n("22B7");t.exports=function(t,e){for(var n=t.length;n--;)if(r(t[n][0],e))return n;return-1}},jD7S:function(t,e,n){var r=n("tv3T"),i=n("ktak");t.exports=function(t,e){return t&&r(e,i(e),t)}},jMi8:function(t,e,n){var r=n("O1jc"),i=n("mKB/"),a=n("Ilb/"),o=n("hrPF"),s=n("WQFf"),c=n("1Yb9"),u=n("NGEn"),l=n("Fp5l"),f=n("ggOT"),p=n("gGqR"),d=n("yCNF"),v=n("9UkZ"),h=n("YsVG"),m=n("TlPD");t.exports=function(t,e,n,b,y,_,x){var g=t[n],j=e[n],C=x.get(j);if(C)r(t,n,C);else{var O=_?_(g,j,n+"",t,e,x):void 0,w=void 0===O;if(w){var k=u(j),T=!k&&f(j),P=!k&&!T&&h(j);O=j,k||T||P?u(g)?O=g:l(g)?O=o(g):T?(w=!1,O=i(j,!0)):P?(w=!1,O=a(j,!0)):O=[]:v(j)||c(j)?(O=g,c(g)?O=m(g):(!d(g)||b&&p(g))&&(O=s(j))):w=!1}w&&(x.set(j,O),y(O,j,b,_,x),x.delete(j)),r(t,n,O)}}},jhkR:function(t,e,n){"use strict";var r=n("lOo0");e.a={props:{link:{required:!0}},methods:{isSchema:function(t){return t instanceof r.a}}}},ktak:function(t,e,n){var r=n("7e4z"),i=n("/GnY"),a=n("bGc4");t.exports=function(t){return a(t)?r(t):i(t)}},l9Lx:function(t,e,n){var r=n("lb6C"),i=n("C0hh"),a=Object.prototype.propertyIsEnumerable,o=Object.getOwnPropertySymbols,s=o?function(t){return null==t?[]:(t=Object(t),r(o(t),function(e){return a.call(t,e)}))}:i;t.exports=s},lOo0:function(t,e,n){"use strict";var r=n("woOf"),i=n.n(r),a=n("d7EF"),o=n.n(a),s=n("W3Iv"),c=n.n(s),u=n("Zrlr"),l=n.n(u),f=n("wxAW"),p=n.n(f),d=n("bklM"),v=n.n(d),h=n("rVUV"),m=n.n(h),b=n("Dc7M"),y=n.n(b),_=function(){function t(e,n,r){l()(this,t),this.$id=t.idx++,this.$step=e,this.$parent=n,r&&this.parseFrom(r)}return p()(t,[{key:"toJSON",value:function(){var e=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this;return m()(n,function(n,r,i,a){if(n instanceof t)return c()(n).filter(function(t){var e=o()(t,2),n=e[0];e[1];return["$id","$step","$parent"].indexOf(n)<0}).reduce(function(t,n){var r=o()(n,2),i=r[0],a=r[1];return t[i]=e.toJSON(a),t},{})})}},{key:"getPath",value:function(){var t="";return this.$parent&&(t+=this.$parent.schema.getPath(),"object"===this.$parent.schema.type&&(t+=".")),t+=this.$step,this.getPath=function(){return t},t}},{key:"parseFrom",value:function(e){var n=this;return!0===e?e={}:!1===e&&(e={not:!0}),i()(this,y()(v()(e),["$step","$id","$parent","items","properties","patternProperties","additionalItems","additionalProperties","contains","propertyNames","not","allOf","anyOf","oneOf"])),e.items&&(e.items instanceof Array?this.items=e.items.map(function(r,i){return new t("["+i+"]",{schema:n,path:"items["+i+"]"}).parseFrom(e.items[i])}):this.items=new t("[*]",{schema:this,path:"items"}).parseFrom(e.items)),["properties","patternProperties"].filter(function(t){return e.hasOwnProperty(t)}).forEach(function(r){return c()(e[r]).forEach(function(e,i){var a=o()(e,2),s=a[0],c=a[1];n[r]=n[r]||{},n[r][s]=new t(""+("patternProperties"===r?"&lt;field&gt;":s),{schema:n,path:r+'["'+s+'"]'}).parseFrom(c)})}),["additionalItems","additionalProperties","contains","propertyNames","not"].filter(function(t){return e.hasOwnProperty(t)}).forEach(function(r){n[r]=new t("+",{schema:n,path:r}).parseFrom(e[r])}),["allOf","anyOf","oneOf"].filter(function(t){return e.hasOwnProperty(t)}).forEach(function(r){return e[r].forEach(function(e,i){n[r]=n[r]||[],n[r].push(new t("("+i+")"+("anyOf"===r?"?":"+"),{schema:n,path:r+"["+i+"]"}).parseFrom(e))})}),this}}]),t}();_.idx=0,e.a=_},lb6C:function(t,e){t.exports=function(t,e){for(var n=-1,r=null==t?0:t.length,i=0,a=[];++n<r;){var o=t[n];e(o,n,t)&&(a[i++]=o)}return a}},"mKB/":function(t,e,n){(function(t){var r=n("TQ3y"),i="object"==typeof e&&e&&!e.nodeType&&e,a=i&&"object"==typeof t&&t&&!t.nodeType&&t,o=a&&a.exports===i?r.Buffer:void 0,s=o?o.allocUnsafe:void 0;t.exports=function(t,e){if(e)return t.slice();var n=t.length,r=s?s(n):new t.constructor(n);return t.copy(r),r}}).call(e,n("3IRH")(t))},mQxp:function(t,e,n){"use strict";var r=n("Gs0Q"),i=n("hvFG"),a=!1;var o=function(t){a||n("AxiT")},s=n("VU/8")(r.a,i.a,!1,o,null,null);s.options.__file="components\\schemaToc.vue",e.a=s.exports},mTAn:function(t,e){t.exports=function(t,e){return null==t?void 0:t[e]}},mbce:function(t,e,n){var r=n("lktj"),i=n("TcQ7"),a=n("NpIQ").f;t.exports=function(t){return function(e){for(var n,o=i(e),s=r(o),c=s.length,u=0,l=[];c>u;)a.call(o,n=s[u++])&&l.push(t?[n,o[n]]:o[n]);return l}}},mgnk:function(t,e,n){var r=n("aCM0"),i=n("UnEC"),a="[object Arguments]";t.exports=function(t){return i(t)&&r(t)==a}},nWuj:function(t,e){t.exports=function(t,e){return t.add(e),t}},nw3t:function(t,e,n){var r=n("p0bc");t.exports=function(t,e,n){"__proto__"==e&&r?r(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}},o2mx:function(t,e,n){var r=n("NkRn"),i=n("Hxdr"),a=n("NGEn"),o=n("6MiT"),s=1/0,c=r?r.prototype:void 0,u=c?c.toString:void 0;t.exports=function t(e){if("string"==typeof e)return e;if(a(e))return i(e,t)+"";if(o(e))return u?u.call(e):"";var n=e+"";return"0"==n&&1/e==-s?"-0":n}},octw:function(t,e){t.exports=function(t){var e=-1,n=Array(t.size);return t.forEach(function(t){n[++e]=t}),n}},oqL2:function(t,e){t.exports=function(t){var e=null==t?0:t.length;return e?t[e-1]:void 0}},p0bc:function(t,e,n){var r=n("ICSD"),i=function(){try{var t=r(Object,"defineProperty");return t({},"",{}),t}catch(t){}}();t.exports=i},pTUa:function(t,e,n){var r=n("/I3N");t.exports=function(t,e){var n=t.__data__;return r(e)?n["string"==typeof e?"string":"hash"]:n.map}},py9u:function(t,e,n){var r=n("tv3T"),i=n("t8rQ");t.exports=function(t,e){return t&&r(e,i(e),t)}},qwTf:function(t,e,n){var r=n("TQ3y").Uint8Array;t.exports=r},qyJz:function(t,e,n){"use strict";var r=n("+ZMJ"),i=n("kM2E"),a=n("sB3e"),o=n("msXi"),s=n("Mhyx"),c=n("QRG4"),u=n("fBQ2"),l=n("3fs2");i(i.S+i.F*!n("dY0y")(function(t){Array.from(t)}),"Array",{from:function(t){var e,n,i,f,p=a(t),d="function"==typeof this?this:Array,v=arguments.length,h=v>1?arguments[1]:void 0,m=void 0!==h,b=0,y=l(p);if(m&&(h=r(h,v>2?arguments[2]:void 0,2)),void 0==y||d==Array&&s(y))for(n=new d(e=c(p.length));e>b;b++)u(n,b,m?h(p[b],b):p[b]);else for(f=y.call(p),n=new d;!(i=f.next()).done;b++)u(n,b,m?o(f,h,[i.value,b],!0):i.value);return n.length=b,n}})},rCVp:function(t,e,n){var r=n("1C79");t.exports=function(t){return null!=t&&t.length?r(t,1):[]}},rVUV:function(t,e,n){var r=n("Fkvj"),i=1,a=4;t.exports=function(t,e){return r(t,i|a,e="function"==typeof e?e:void 0)}},rpnb:function(t,e,n){var r=n("tHks")();t.exports=r},s8mu:function(t,e,n){"use strict";var r=n("cER1"),i=n("D9sP"),a=!1;var o=function(t){a||n("A51D")},s=n("VU/8")(r.a,i.a,!1,o,null,null);s.options.__file="components\\schemaDetail.vue",e.a=s.exports},t8rQ:function(t,e,n){var r=n("7e4z"),i=n("G0Wc"),a=n("bGc4");t.exports=function(t){return a(t)?r(t,!0):i(t)}},tHks:function(t,e){t.exports=function(t){return function(e,n,r){for(var i=-1,a=Object(e),o=r(e),s=o.length;s--;){var c=o[t?s:++i];if(!1===n(a[c],c,a))break}return e}}},tv3T:function(t,e,n){var r=n("i4ON"),i=n("nw3t");t.exports=function(t,e,n,a){var o=!n;n||(n={});for(var s=-1,c=e.length;++s<c;){var u=e[s],l=a?a(n[u],t[u],u,n,t):void 0;void 0===l&&(l=t[u]),o?i(n,u,l):r(n,u,l)}return n}},uCi2:function(t,e,n){var r=n("bIjD"),i=n("Ubhr");t.exports=function(t,e){for(var n=0,a=(e=r(e,t)).length;null!=t&&n<a;)t=t[i(e[n++])];return n&&n==a?t:void 0}},uIr7:function(t,e){t.exports=function(t,e){for(var n=-1,r=e.length,i=t.length;++n<r;)t[i+n]=e[n];return t}},uLhX:function(t,e,n){var r=n("NkRn"),i=Object.prototype,a=i.hasOwnProperty,o=i.toString,s=r?r.toStringTag:void 0;t.exports=function(t){var e=a.call(t,s),n=t[s];try{t[s]=void 0;var r=!0}catch(t){}var i=o.call(t);return r&&(e?t[s]=n:delete t[s]),i}},"ue/d":function(t,e){t.exports=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}},uieL:function(t,e){t.exports=function(t,e){for(var n=-1,r=Array(t);++n<t;)r[n]=e(n);return r}},"us/S":function(t,e,n){t.exports={default:n("Xd32"),__esModule:!0}},v8Dt:function(t,e,n){var r=n("pTUa");t.exports=function(t){return r(this,t).get(t)}},vi0E:function(t,e,n){var r=n("f931")(Object.getPrototypeOf,Object);t.exports=r},wEtr:function(t,e,n){n("gSvA"),t.exports=n("FeBl").Object.entries},wSKX:function(t,e){t.exports=function(t){return t}},wxAW:function(t,e,n){"use strict";e.__esModule=!0;var r,i=n("C4MV"),a=(r=i)&&r.__esModule?r:{default:r};e.default=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),(0,a.default)(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}()},xond:function(t,e,n){var r=n("FCuZ"),i=n("09Qt"),a=n("t8rQ");t.exports=function(t){return r(t,a,i)}},yCNF:function(t,e){t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},z4hc:function(t,e,n){var r=n("aCM0"),i=n("Rh28"),a=n("UnEC"),o={};o["[object Float32Array]"]=o["[object Float64Array]"]=o["[object Int8Array]"]=o["[object Int16Array]"]=o["[object Int32Array]"]=o["[object Uint8Array]"]=o["[object Uint8ClampedArray]"]=o["[object Uint16Array]"]=o["[object Uint32Array]"]=!0,o["[object Arguments]"]=o["[object Array]"]=o["[object ArrayBuffer]"]=o["[object Boolean]"]=o["[object DataView]"]=o["[object Date]"]=o["[object Error]"]=o["[object Function]"]=o["[object Map]"]=o["[object Number]"]=o["[object Object]"]=o["[object RegExp]"]=o["[object Set]"]=o["[object String]"]=o["[object WeakMap]"]=!1,t.exports=function(t){return a(t)&&i(t.length)&&!!o[r(t)]}},zBOP:function(t,e,n){var r=n("22B7"),i=n("bGc4"),a=n("ZGh9"),o=n("yCNF");t.exports=function(t,e,n){if(!o(n))return!1;var s=typeof e;return!!("number"==s?i(n)&&a(e,n.length):"string"==s&&e in n)&&r(n[e],t)}},zGZ6:function(t,e,n){var r=n("YeCl"),i="Expected a function";function a(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError(i);var n=function(){var r=arguments,i=e?e.apply(this,r):r[0],a=n.cache;if(a.has(i))return a.get(i);var o=t.apply(this,r);return n.cache=a.set(i,o)||a,o};return n.cache=new(a.Cache||r),n}a.Cache=r,t.exports=a},zpVT:function(t,e,n){var r=n("duB3"),i=n("POb3"),a=n("YeCl"),o=200;t.exports=function(t,e){var n=this.__data__;if(n instanceof r){var s=n.__data__;if(!i||s.length<o-1)return s.push([t,e]),this.size=++n.size,this;n=this.__data__=new a(s)}return n.set(t,e),this.size=n.size,this}}});
\ No newline at end of file
diff --git a/files/pages_specification_v2_process-message.4c628f89a8a036d97abc.js b/files/pages_specification_v2_process-message.4c628f89a8a036d97abc.js
new file mode 100644
index 0000000..e7a3733
--- /dev/null
+++ b/files/pages_specification_v2_process-message.4c628f89a8a036d97abc.js
@@ -0,0 +1 @@
+webpackJsonp([3],{"+66z":function(t,e){var r=Object.prototype.toString;t.exports=function(t){return r.call(t)}},"+99L":function(t,e,r){var n={"./v2/measurement_schema.json":["oGp6",23],"./v2/message_schema.json":["2BTs",22],"./v2/process_schema.json":["rRyJ",21],"./v3/measurement_schema.json":["PpY5",20],"./v3/message_schema.json":["1SJ2",19],"./v3/process_schema.json":["uwRd",18]};function i(t){var e=n[t];return e?r.e(e[1]).then(function(){return r(e[0])}):Promise.reject(new Error("Cannot find module '"+t+"'."))}i.keys=function(){return Object.keys(n)},i.id="+99L",t.exports=i},"+gg+":function(t,e,r){var n=r("TQ3y")["__core-js_shared__"];t.exports=n},"/GnY":function(t,e,r){var n=r("HT7L"),i=r("W529"),o=Object.prototype.hasOwnProperty;t.exports=function(t){if(!n(t))return i(t);var e=[];for(var r in Object(t))o.call(t,r)&&"constructor"!=r&&e.push(r);return e}},"/I3N":function(t,e){t.exports=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t}},"037f":function(t,e,r){var n=r("1oyr"),i=r("p0bc"),o=r("wSKX"),a=i?function(t,e){return i(t,"toString",{configurable:!0,enumerable:!1,value:n(e),writable:!0})}:o;t.exports=a},"09Qt":function(t,e,r){var n=r("uIr7"),i=r("vi0E"),o=r("l9Lx"),a=r("C0hh"),s=Object.getOwnPropertySymbols?function(t){for(var e=[];t;)n(e,o(t)),t=i(t);return e}:a;t.exports=s},"0DSl":function(t,e,r){var n=r("YkxI"),i=r("zBOP");t.exports=function(t){return n(function(e,r){var n=-1,o=r.length,a=o>1?r[o-1]:void 0,s=o>2?r[2]:void 0;for(a=t.length>3&&"function"==typeof a?(o--,a):void 0,s&&i(r[0],r[1],s)&&(a=o<3?void 0:a,o=1),e=Object(e);++n<o;){var c=r[n];c&&t(e,c,n,a)}return e})}},"0uX4":function(t,e,r){var n=r("NkRn"),i=n?n.prototype:void 0,o=i?i.valueOf:void 0;t.exports=function(t){return o?Object(o.call(t)):{}}},"1C79":function(t,e,r){var n=r("uIr7"),i=r("Qp3N");t.exports=function t(e,r,o,a,s){var c=-1,u=e.length;for(o||(o=i),s||(s=[]);++c<u;){var l=e[c];r>0&&o(l)?r>1?t(l,r-1,o,a,s):n(s,l):a||(s[s.length]=l)}return s}},"1QDk":function(t,e,r){var n=r("tv3T"),i=r("09Qt");t.exports=function(t,e){return n(t,i(t),e)}},"1Yb9":function(t,e,r){var n=r("mgnk"),i=r("UnEC"),o=Object.prototype,a=o.hasOwnProperty,s=o.propertyIsEnumerable,c=n(function(){return arguments}())?n:function(t){return i(t)&&a.call(t,"callee")&&!s.call(t,"callee")};t.exports=c},"1oyr":function(t,e){t.exports=function(t){return function(){return t}}},"22B7":function(t,e){t.exports=function(t,e){return t===e||t!=t&&e!=e}},"2Hvv":function(t,e,r){var n=r("imBK");t.exports=function(t){return n(this.__data__,t)>-1}},"2N6f":function(t,e,r){var n=r("rCVp"),i=r("Q2wK"),o=r("WHce");t.exports=function(t){return o(i(t,void 0,n),t+"")}},"3IRH":function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},"3rZI":function(t,e){t.exports=function(t,e,r,n){var i=-1,o=null==t?0:t.length;for(n&&o&&(r=t[++i]);++i<o;)r=e(r,t[i],i,t);return r}},"4yG7":function(t,e,r){var n=r("HAGj");t.exports=function(t,e,r){return null==t?t:n(t,e,r)}},"5/Qr":function(t,e,r){var n=r("Kzd6"),i=r("6Git"),o=r("Jqj6"),a=r("WyC4"),s=r("7jYp"),c=r("0uX4"),u=r("Ilb/"),l="[object Boolean]",f="[object Date]",p="[object Map]",d="[object Number]",v="[object RegExp]",h="[object Set]",m="[object String]",b="[object Symbol]",y="[object ArrayBuffer]",_="[object DataView]",g="[object Float32Array]",x="[object Float64Array]",j="[object Int8Array]",O="[object Int16Array]",C="[object Int32Array]",w="[object Uint8Array]",k="[object Uint8ClampedArray]",P="[object Uint16Array]",E="[object Uint32Array]";t.exports=function(t,e,r,T){var S=t.constructor;switch(e){case y:return n(t);case l:case f:return new S(+t);case _:return i(t,T);case g:case x:case j:case O:case C:case w:case k:case P:case E:return u(t,T);case p:return o(t,T,r);case d:case m:return new S(t);case v:return a(t);case h:return s(t,T,r);case b:return c(t)}}},"5N57":function(t,e,r){var n=r("ICSD")(r("TQ3y"),"Set");t.exports=n},"5PlU":function(t,e,r){var n=r("RY/4"),i=r("dSzd")("iterator"),o=r("/bQp");t.exports=r("FeBl").isIterable=function(t){var e=Object(t);return void 0!==e[i]||"@@iterator"in e||o.hasOwnProperty(n(e))}},"5pwE":function(t,e,r){(t.exports=r("YHym")(!1)).push([t.i,".schemaDetail a{text-decoration:none}.schemaDetail .property ul{list-style-type:disc;padding-left:1em;margin-left:0;margin-top:0}",""])},"5zde":function(t,e,r){r("zQR9"),r("qyJz"),t.exports=r("FeBl").Array.from},"6Git":function(t,e,r){var n=r("Kzd6");t.exports=function(t,e){var r=e?n(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}},"6MiT":function(t,e,r){var n=r("aCM0"),i=r("UnEC"),o="[object Symbol]";t.exports=function(t){return"symbol"==typeof t||i(t)&&n(t)==o}},"77aO":function(t,e,r){"use strict";e.a={props:{collapsed:{type:Boolean,default:!1}},data:function(){return{expanded:!this.collapsed,transitioning:!1}},watch:{collapsed:function(t){this.expanded=!t}},methods:{beforeenter:function(t){this.transitioning=!0,t.style.height=0},enter:function(t){t.style.height=t.scrollHeight+"px"},afterenter:function(t){t.style.height="",this.transitioning=!1},beforeleave:function(t){this.transitioning=!0,t.style.height=t.offsetHeight+"px",t.offsetHeight},leave:function(t){t.style.height=0,t.offsetHeight},afterleave:function(t){this.transitioning=!1},toggle:function(){this.transitioning||(this.expanded=!this.expanded,this.$emit(this.expanded?"expanding":"collapsing",this.id))}}}},"7e4z":function(t,e,r){var n=r("uieL"),i=r("1Yb9"),o=r("NGEn"),a=r("ggOT"),s=r("ZGh9"),c=r("YsVG"),u=Object.prototype.hasOwnProperty;t.exports=function(t,e){var r=o(t),l=!r&&i(t),f=!r&&!l&&a(t),p=!r&&!l&&!f&&c(t),d=r||l||f||p,v=d?n(t.length,String):[],h=v.length;for(var m in t)!e&&!u.call(t,m)||d&&("length"==m||f&&("offset"==m||"parent"==m)||p&&("buffer"==m||"byteLength"==m||"byteOffset"==m)||s(m,h))||v.push(m);return v}},"7jYp":function(t,e,r){var n=r("nWuj"),i=r("3rZI"),o=r("octw"),a=1;t.exports=function(t,e,r){var s=e?r(o(t),a):o(t);return i(s,n,new t.constructor)}},"8AZL":function(t,e){t.exports=function(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}},"8gK5":function(t,e){t.exports=function(t){var e=[];if(null!=t)for(var r in Object(t))e.push(r);return e}},"94sX":function(t,e,r){var n=r("dCZQ");t.exports=function(){this.__data__=n?n(null):{},this.size=0}},"9UkZ":function(t,e,r){var n=r("aCM0"),i=r("vi0E"),o=r("UnEC"),a="[object Object]",s=Function.prototype,c=Object.prototype,u=s.toString,l=c.hasOwnProperty,f=u.call(Object);t.exports=function(t){if(!o(t)||n(t)!=a)return!1;var e=i(t);if(null===e)return!0;var r=l.call(e,"constructor")&&e.constructor;return"function"==typeof r&&r instanceof r&&u.call(r)==f}},A51D:function(t,e,r){var n=r("5pwE");"string"==typeof n&&(n=[[t.i,n,""]]),n.locals&&(t.exports=n.locals);r("rjj0")("188b52d2",n,!1)},A9mX:function(t,e,r){var n=r("pTUa");t.exports=function(t){var e=n(this,t).delete(t);return this.size-=e?1:0,e}},"Ai/T":function(t,e){var r=Function.prototype.toString;t.exports=function(t){if(null!=t){try{return r.call(t)}catch(t){}try{return t+""}catch(t){}}return""}},AxiT:function(t,e,r){var n=r("Lw7C");"string"==typeof n&&(n=[[t.i,n,""]]),n.locals&&(t.exports=n.locals);r("rjj0")("0868896c",n,!1)},C0hh:function(t,e){t.exports=function(){return[]}},CW5P:function(t,e,r){var n=r("T/bE"),i=r("duB3"),o=r("POb3");t.exports=function(){this.size=0,this.__data__={hash:new n,map:new(o||i),string:new n}}},Cf65:function(t,e,r){var n=r("uCi2"),i=r("M1c9");t.exports=function(t,e){return e.length<2?t:n(t,i(e,0,-1))}},D9sP:function(t,e,r){"use strict";var n=function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("div",{staticClass:"schemaDetail",class:{"is-loading":t.loading},attrs:{id:"schema-detail"}},[r("div",{staticClass:"accordion"},[null!==t.masterSchema?r("card",{attrs:{collapsed:!0}},[r("template",{slot:"header"},[t._v("\n        Structure of the payload\n      ")]),r("ul",t._l(t.masterSchema.properties,function(t,e){return r("schemaToc",{key:e,attrs:{schema:t}})}))],2):t._e(),t._t("default")],2),r("h1",[r("a",{attrs:{id:t.type+"-schema-detail",title:t.type+" Fields definition"}}),t._v("\n    Fields definition\n  ")]),t._l(t.schemas,function(e){return r("div",{key:e.$id,staticClass:"card property"},[r("header",{staticClass:"card-header"},[r("a",{attrs:{id:"p-"+e.$id}}),r("p",{staticClass:"card-header-title"},[r("span",{domProps:{innerHTML:t._s(e.getPath())}})]),r("nuxt-link",{staticClass:"card-header-icon",attrs:{to:"#schema-detail",title:"go up"}},[r("span",{staticClass:"icon"},[r("i",{staticClass:"fa fa-angle-up"})])])],1),r("div",{staticClass:"card-content"},[e.description||e.type?r("div",{staticClass:"field is-horizontal"},[t._m(0,!0),e.description?r("div",{staticClass:"field-body"},[t._v("\n          "+t._s(e.description)+"\n        ")]):e.type?r("div",{staticClass:"field-body"},[t._v("\n          A simple "+t._s(t._f("capitalize")(e.type))+"\n        ")]):t._e()]):t._e(),e.$parent?r("div",{staticClass:"field is-horizontal"},[t._m(1,!0),r("div",{staticClass:"field-body"},[r("nuxt-link",{attrs:{to:"#p-"+e.$parent.schema.$id}},[r("span",{domProps:{innerHTML:t._s(e.$parent.schema.getPath())}})])],1)]):t._e(),e.type?r("div",{staticClass:"field is-horizontal"},[t._m(2,!0),r("div",{staticClass:"field-body"},[t._v("\n          "+t._s(t._f("capitalize")(e.type,e))+"\n        ")])]):t._e(),e.format?r("div",{staticClass:"field is-horizontal"},[t._m(3,!0),r("div",{staticClass:"field-body"},[t._v("\n          "+t._s(e.format)+"\n          "),t.$static.formats[e.format]?r("a",{attrs:{href:t.$static.formats[e.format].link}},[t._v(" ("+t._s(t.$static.formats[e.format].name)+")")]):t._e()])]):t._e(),e.enum&&e.enum.length?r("div",{staticClass:"field is-horizontal"},[t._m(4,!0),r("div",{staticClass:"field-body"},[r("div",[t._v("\n            "+t._s(e.enum.join(", "))+"\n          ")])])]):t._e(),e.hasOwnProperty("default")?r("div",{staticClass:"field is-horizontal"},[t._m(5,!0),r("div",{staticClass:"field-body"},[r("div",[t._v("\n            "+t._s(e.default)+"\n          ")])])]):t._e(),e.maxLength?r("div",{staticClass:"field is-horizontal"},[t._m(6,!0),r("div",{staticClass:"field-body"},[r("div",[t._v("\n            "+t._s(e.maxLength)+"\n          ")])])]):t._e(),e.properties||e.patternProperties||e.items?r("div",{staticClass:"field is-horizontal"},[t._m(7,!0),r("div",{staticClass:"field-body"},[Object.keys(e.properties||{}).length>0?r("schemaLink",{attrs:{link:e.properties}}):t._e(),Object.keys(e.patternProperties||{}).length>0?r("schemaLink",{attrs:{link:e.patternProperties}},[r("div",[t._v("Matching regular expressions:")])]):t._e(),!e.items||e.items instanceof Array?e.items?r("schemaLink",{attrs:{link:e.items}},[r("div",[t._v("Ordered items of type:")])]):t._e():r("schemaLink",{attrs:{link:e.items}}),Object.keys(e.properties||{}).length+Object.keys(e.patternProperties||{}).length!==0||e.items?t._e():[t._v("none")]],2)]):t._e(),e.minProperties?r("div",{staticClass:"field is-horizontal"},[t._m(8,!0),r("div",{staticClass:"field-body"},[r("div",[t._v("\n            "+t._s(e.minProperties)+"\n          ")])])]):t._e(),e.minItems?r("div",{staticClass:"field is-horizontal"},[t._m(9,!0),r("div",{staticClass:"field-body"},[r("div",[t._v("\n            "+t._s(e.minItems)+"\n          ")])])]):t._e(),e.hasOwnProperty("additionalProperties")?r("div",{staticClass:"field is-horizontal"},[t._m(10,!0),"boolean"==typeof e.additionalProperties?r("schemaLink",{staticClass:"field-body",attrs:{link:e.additionalProperties}}):r("div",{staticClass:"field-body"},[t._v("\n          if fulfilling "),r("schemaLink",{staticClass:"field-body",attrs:{link:e.additionalProperties}})],1)],1):t._e(),e.not||e.oneOf||e.allOf||e.anyOf?r("div",{staticClass:"field is-horizontal"},[t._m(11,!0),r("div",{staticClass:"field-body"},[e.not?r("schemaLink",{attrs:{link:e.not}},[t._v("\n            Not fulfilling \n          ")]):t._e(),e.oneOf?r("schemaLink",{attrs:{link:e.oneOf}},[r("div",[t._v("Fulfilling exactly one of:")])]):t._e(),e.allOf?r("schemaLink",{attrs:{link:e.allOf}},[r("div",[t._v("Fulfilling all of:")])]):t._e(),e.anyOf?r("schemaLink",{attrs:{link:e.anyOf}},[r("div",[t._v("Fulfilling one of:")])]):t._e()],1)]):t._e(),e.required&&e.required.length?r("div",{staticClass:"field is-horizontal"},[t._m(12,!0),r("div",{staticClass:"field-body"},[t._v("\n          "+t._s(e.required.join(", "))+"\n        ")])]):t._e(),e.examples?r("div",{staticClass:"field is-horizontal"},[t._m(13,!0),r("div",{staticClass:"field-body"},t._l(e.examples,function(e,n){return r("prism",{key:n,attrs:{language:"json"}},[t._v(t._s(t._f("stringify")(e)))])}))]):t._e()])])})],2)};n._withStripped=!0;var i={render:n,staticRenderFns:[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Description:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Parent:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Type:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Format:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Possible values:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Defaults to:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Maximum length:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Restriction on subfields:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Minimum amount of subfields:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Minimum amount of items:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Allows additional fields:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Restriction with boolean logic:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Required fields:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Example:")])])}]};e.a=i},Dc0G:function(t,e,r){(function(t){var n=r("blYT"),i="object"==typeof e&&e&&!e.nodeType&&e,o=i&&"object"==typeof t&&t&&!t.nodeType&&t,a=o&&o.exports===i&&n.process,s=function(){try{return a&&a.binding&&a.binding("util")}catch(t){}}();t.exports=s}).call(e,r("3IRH")(t))},Dc7M:function(t,e,r){var n=r("Hxdr"),i=r("Fkvj"),o=r("Vi3P"),a=r("bIjD"),s=r("tv3T"),c=r("dYhQ"),u=r("2N6f"),l=r("xond"),f=u(function(t,e){var r={};if(null==t)return r;var u=!1;e=n(e,function(e){return e=a(e,t),u||(u=e.length>1),e}),s(t,l(t),r),u&&(r=i(r,7,c));for(var f=e.length;f--;)o(r,e[f]);return r});t.exports=f},Dv2r:function(t,e,r){var n=r("pTUa");t.exports=function(t,e){var r=n(this,t),i=r.size;return r.set(t,e),this.size+=r.size==i?0:1,this}},E4Hj:function(t,e){t.exports=function(t){return this.__data__.get(t)}},EXfj:function(t,e,r){"use strict";var n=r("mvHQ"),i=r.n(n),o=r("d7EF"),a=r.n(o),s=r("Dd8w"),c=r.n(s),u=r("W3Iv"),l=r.n(u),f=r("LJry"),p=r.n(f),d=r("T9Hf"),v=r("Q7hp"),h=r.n(v),m=r("s8mu");e.a={head:function(){return{title:"Specification for process messages"}},created:function(){var t=this,e=new Date,r="a4927dad-58d4-4580-b460-79cefd56775b";this.$static={message:{"content-spec":"urn:spec://eclipse.org/unide/process-message#v2",device:{deviceID:r},process:{ts:e.toISOString()},measurements:[{ts:new Date(e.valueOf()+100).toISOString(),series:{force:[26,23,24],pressure:[52.4,46.32,44.2432]}}]},complexMessage:{"content-spec":"urn:spec://eclipse.org/unide/process-message#v2",device:{deviceID:r,operationalStatus:"normal",metaData:{swVersion:"2.0.3.13",swBuildId:"41535"}},part:{type:"SINGLE",partTypeID:"F00VH07328",partID:"420003844",result:"NOK",code:"HUH289",metaData:{toolId:"32324-432143"}},process:{externalProcessId:"b4927dad-58d4-4580-b460-79cefd56775b",ts:e.toISOString(),result:"NOK",shutoffPhase:"phase 2",program:{id:"1",name:"Programm 1",lastChangedDate:"2002-05-30T09:30:10.123+02:00"},shutoffValues:{force:{ts:new Date(e.valueOf()+1e4).toISOString(),value:24,upperError:26,lowerError:22,upperWarn:25,lowerWarn:23,target:24},pressure:{value:50,upperError:52,lowerError:48}},metaData:{maxDuration:"30min",escalation:"shift leader"}},measurements:[{ts:new Date(e.valueOf()+100).toISOString(),phase:"phase 1",name:"heating up",result:"OK",code:"0000 EE01",limits:{pressure:{upperError:4444,lowerError:44,upperWarn:2222,lowerWarn:46,target:35},force:{upperError:[27,24,25],lowerError:[25,22,23]}},specialValues:[{$_time:12,name:"turning point",value:{pressure:24,force:50}}],series:{time:[30,36,42],force:[26,23,24],pressure:[52.4,46.32,44.2432],temperature:[45.4243,46.42342,44.2432]}},{ts:new Date(e.valueOf()+430).toISOString(),phase:"phase 2",name:"processing",result:"OK",series:{$_time:[0,23,24],temperature:[49.2,48.8,50]}}]}},this.$static.examples=l()(c()({},["content-spec","device","device.deviceID","device.metaData","device.operationalStatus","measurements","measurements[0].code","measurements[0].limits","measurements[0].name","measurements[0].phase","measurements[0].result","measurements[0].series","measurements[0].series.$_time","measurements[0].specialValues","measurements[0].specialValues[0].$_time","measurements[0].specialValues[0].name","measurements[0].specialValues[0].value","measurements[0].ts","part","part.code","part.metaData","part.partID","part.partTypeID","part.result","part.type","process","process.externalProcessId","process.metaData","process.program","process.program.id","process.program.lastChangedDate","process.program.name","process.result","process.shutoffPhase","process.shutoffValues","process.ts"].reduce(function(t,e){return t[e.replace(/(^|\.)/g,"$1properties.").replace(/\[[^]]*]/g,".items")]=e,t},{'properties.measurements.items.properties.limits.patternProperties["^[^$]+"].oneOf[0]':"measurements[0].limits.pressure",'properties.measurements.items.properties.limits.patternProperties["^[^$]+"].oneOf[1]':"measurements[0].limits.force",'properties.measurements.items.properties.series.patternProperties["^[^$]+"]':"measurements[0].series.force",'properties.process.properties.shutoffValues.patternProperties["^[^$]+"]':"process.shutoffValues.force"}),["lowerError","lowerWarn","target","upperError","upperWarn"].reduce(function(t,e){return t['properties.measurements.items.properties.limits.patternProperties["^[^$]+"].oneOf[0].properties.'+e]="measurements[0].limits.pressure."+e,t['properties.measurements.items.properties.limits.patternProperties["^[^$]+"].oneOf[1].properties.'+e]="measurements[0].limits.force."+e,t['properties.process.properties.shutoffValues.patternProperties["^[^$]+"].properties.'+e]="process.shutoffValues.force."+e,t},{}))).reduce(function(e,r){var n=a()(r,2),i=n[0],o=n[1],s=h()(t.$static.message,o)||h()(t.$static.complexMessage,o);return s&&(e[i]=[s]),e},{})},filters:{stringify:function(t){return i()(t," ",2)}},components:{card:d.a,prism:p.a,schemaDetail:m.a}}},FCuZ:function(t,e,r){var n=r("uIr7"),i=r("NGEn");t.exports=function(t,e,r){var o=e(t);return i(t)?o:n(o,r(t))}},Fkvj:function(t,e,r){var n=r("bJWQ"),i=r("PqYH"),o=r("i4ON"),a=r("jD7S"),s=r("py9u"),c=r("mKB/"),u=r("hrPF"),l=r("Nkkh"),f=r("1QDk"),p=r("MoMe"),d=r("xond"),v=r("gHOb"),h=r("UfSK"),m=r("5/Qr"),b=r("WQFf"),y=r("NGEn"),_=r("ggOT"),g=r("yCNF"),x=r("ktak"),j=1,O=2,C=4,w="[object Arguments]",k="[object Function]",P="[object GeneratorFunction]",E="[object Object]",T={};T[w]=T["[object Array]"]=T["[object ArrayBuffer]"]=T["[object DataView]"]=T["[object Boolean]"]=T["[object Date]"]=T["[object Float32Array]"]=T["[object Float64Array]"]=T["[object Int8Array]"]=T["[object Int16Array]"]=T["[object Int32Array]"]=T["[object Map]"]=T["[object Number]"]=T[E]=T["[object RegExp]"]=T["[object Set]"]=T["[object String]"]=T["[object Symbol]"]=T["[object Uint8Array]"]=T["[object Uint8ClampedArray]"]=T["[object Uint16Array]"]=T["[object Uint32Array]"]=!0,T["[object Error]"]=T[k]=T["[object WeakMap]"]=!1,t.exports=function t(e,r,S,A,$,I){var D,F=r&j,M=r&O,z=r&C;if(S&&(D=$?S(e,A,$,I):S(e)),void 0!==D)return D;if(!g(e))return e;var N=y(e);if(N){if(D=h(e),!F)return u(e,D)}else{var U=v(e),Q=U==k||U==P;if(_(e))return c(e,F);if(U==E||U==w||Q&&!$){if(D=M||Q?{}:b(e),!F)return M?f(e,s(D,e)):l(e,a(D,e))}else{if(!T[U])return $?e:{};D=m(e,U,t,F)}}I||(I=new n);var G=I.get(e);if(G)return G;I.set(e,D);var L=z?M?d:p:M?keysIn:x,H=N?void 0:L(e);return i(H||e,function(n,i){H&&(n=e[i=n]),o(D,i,t(n,r,S,i,e,I))}),D}},Fp5l:function(t,e,r){var n=r("bGc4"),i=r("UnEC");t.exports=function(t){return i(t)&&n(t)}},G0Wc:function(t,e,r){var n=r("yCNF"),i=r("HT7L"),o=r("8gK5"),a=Object.prototype.hasOwnProperty;t.exports=function(t){if(!n(t))return o(t);var e=i(t),r=[];for(var s in t)("constructor"!=s||!e&&a.call(t,s))&&r.push(s);return r}},G2xm:function(t,e){t.exports=function(t){return this.__data__.has(t)}},Gs0Q:function(t,e,r){"use strict";e.a={name:"schemaToc",props:{tag:{type:String,default:"li"},schema:{type:Object,required:!0}}}},Gu7T:function(t,e,r){"use strict";e.__esModule=!0;var n,i=r("c/Tr"),o=(n=i)&&n.__esModule?n:{default:n};e.default=function(t){if(Array.isArray(t)){for(var e=0,r=Array(t.length);e<t.length;e++)r[e]=t[e];return r}return(0,o.default)(t)}},HAGj:function(t,e,r){var n=r("i4ON"),i=r("bIjD"),o=r("ZGh9"),a=r("yCNF"),s=r("Ubhr");t.exports=function(t,e,r,c){if(!a(t))return t;for(var u=-1,l=(e=i(e,t)).length,f=l-1,p=t;null!=p&&++u<l;){var d=s(e[u]),v=r;if(u!=f){var h=p[d];void 0===(v=c?c(h,d,p):void 0)&&(v=a(h)?h:o(e[u+1])?[]:{})}n(p,d,v),p=p[d]}return t}},HN2V:function(t,e,r){var n=r("HbnZ"),i=r("0DSl")(function(t,e,r){n(t,e,r)});t.exports=i},HT7L:function(t,e){var r=Object.prototype;t.exports=function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||r)}},HbnZ:function(t,e,r){var n=r("bJWQ"),i=r("O1jc"),o=r("rpnb"),a=r("jMi8"),s=r("yCNF"),c=r("t8rQ");t.exports=function t(e,r,u,l,f){e!==r&&o(r,function(o,c){if(s(o))f||(f=new n),a(e,r,c,u,t,l,f);else{var p=l?l(e[c],o,c+"",e,r,f):void 0;void 0===p&&(p=o),i(e,c,p)}},c)}},Hxdr:function(t,e){t.exports=function(t,e){for(var r=-1,n=null==t?0:t.length,i=Array(n);++r<n;)i[r]=e(t[r],r,t);return i}},ICSD:function(t,e,r){var n=r("ITwD"),i=r("mTAn");t.exports=function(t,e){var r=i(t,e);return n(r)?r:void 0}},ITwD:function(t,e,r){var n=r("gGqR"),i=r("eFps"),o=r("yCNF"),a=r("Ai/T"),s=/^\[object .+?Constructor\]$/,c=Function.prototype,u=Object.prototype,l=c.toString,f=u.hasOwnProperty,p=RegExp("^"+l.call(f).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=function(t){return!(!o(t)||i(t))&&(n(t)?p:s).test(a(t))}},"Ilb/":function(t,e,r){var n=r("Kzd6");t.exports=function(t,e){var r=e?n(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}},JBvZ:function(t,e,r){var n=r("imBK");t.exports=function(t){var e=this.__data__,r=n(e,t);return r<0?void 0:e[r][1]}},Jqj6:function(t,e,r){var n=r("U7Aq"),i=r("3rZI"),o=r("WFiI"),a=1;t.exports=function(t,e,r){var s=e?r(o(t),a):o(t);return i(s,n,new t.constructor)}},KmWZ:function(t,e,r){var n=r("duB3");t.exports=function(){this.__data__=new n,this.size=0}},Kzd6:function(t,e,r){var n=r("qwTf");t.exports=function(t){var e=new t.constructor(t.byteLength);return new n(e).set(new n(t)),e}},LJry:function(t,e,r){"use strict";var n={functional:!0,props:{code:{type:String},language:{type:String,default:"markup"}},render:function(t,e){var r=e.props.code||e.children[0].text,n=e.props.language,i=Prism.languages[n],o="language-"+n;return t("pre",function(t){for(var e=arguments,r=1;r<arguments.length;r++)for(var n in arguments[r])t[n]=e[r][n];return t}({},e.data,{class:[e.data.class,o]}),[t("code",{class:o,domProps:{innerHTML:Prism.highlight(r,i)}})])}};t.exports=n},Lw7C:function(t,e,r){(t.exports=r("YHym")(!1)).push([t.i,"@keyframes spinAround{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}",""])},M1c9:function(t,e){t.exports=function(t,e,r){var n=-1,i=t.length;e<0&&(e=-e>i?0:i+e),(r=r>i?i:r)<0&&(r+=i),i=e>r?0:r-e>>>0,e>>>=0;for(var o=Array(i);++n<i;)o[n]=t[n+e];return o}},MoMe:function(t,e,r){var n=r("FCuZ"),i=r("l9Lx"),o=r("ktak");t.exports=function(t){return n(t,o,i)}},NGEn:function(t,e){var r=Array.isArray;t.exports=r},NLIh:function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=r("EXfj"),i=r("WWdk"),o=r("VU/8")(n.a,i.a,!1,null,null,null);o.options.__file="pages\\specification\\v2\\process-message.vue",e.default=o.exports},NVTU:function(t,e,r){"use strict";var n=function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("div",{staticClass:"card collapsibleCard",class:{collapsed:!t.expanded}},[t.$slots.header?r("header",{staticClass:"card-header",on:{click:function(e){e.preventDefault(),t.toggle()}}},[r("p",{staticClass:"card-header-title"},[!t.$slots.headerCollapsed||t.expanded?t._t("header"):t._t("headerCollapsed")],2),r("a",{staticClass:"card-header-icon"},[r("span",{staticClass:"icon"},[r("i",{staticClass:"fa",class:{"fa-angle-down":t.expanded,"fa-angle-up":!t.expanded}})])])]):t._e(),r("transition",{attrs:{name:"rollup","leave-active-class":"collapsing","enter-active-class":"collapsing"},on:{"before-leave":t.beforeleave,leave:t.leave,"after-leave":t.afterleave,"before-enter":t.beforeenter,enter:t.enter,"after-enter":t.afterenter}},[r("div",{directives:[{name:"show",rawName:"v-show",value:t.expanded,expression:"expanded"}]},[r("div",{staticClass:"card-content"},[t._t("default")],2)])])],1)};n._withStripped=!0;var i={render:n,staticRenderFns:[]};e.a=i},NkRn:function(t,e,r){var n=r("TQ3y").Symbol;t.exports=n},Nkkh:function(t,e,r){var n=r("tv3T"),i=r("l9Lx");t.exports=function(t,e){return n(t,i(t),e)}},NqZt:function(t,e){t.exports=function(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}},O1jc:function(t,e,r){var n=r("nw3t"),i=r("22B7");t.exports=function(t,e,r){(void 0===r||i(t[e],r))&&(void 0!==r||e in t)||n(t,e,r)}},POb3:function(t,e,r){var n=r("ICSD")(r("TQ3y"),"Map");t.exports=n},PqYH:function(t,e){t.exports=function(t,e){for(var r=-1,n=null==t?0:t.length;++r<n&&!1!==e(t[r],r,t););return t}},Q2wK:function(t,e,r){var n=r("8AZL"),i=Math.max;t.exports=function(t,e,r){return e=i(void 0===e?t.length-1:e,0),function(){for(var o=arguments,a=-1,s=i(o.length-e,0),c=Array(s);++a<s;)c[a]=o[e+a];a=-1;for(var u=Array(e+1);++a<e;)u[a]=o[a];return u[e]=r(c),n(t,this,u)}}},Q7hp:function(t,e,r){var n=r("uCi2");t.exports=function(t,e,r){var i=null==t?void 0:n(t,e);return void 0===i?r:i}},Qp3N:function(t,e,r){var n=r("NkRn"),i=r("1Yb9"),o=r("NGEn"),a=n?n.isConcatSpreadable:void 0;t.exports=function(t){return o(t)||i(t)||!!(a&&t&&t[a])}},RGrk:function(t,e,r){var n=r("dCZQ"),i=Object.prototype.hasOwnProperty;t.exports=function(t){var e=this.__data__;return n?void 0!==e[t]:i.call(e,t)}},Rh28:function(t,e){var r=9007199254740991;t.exports=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=r}},S7p9:function(t,e){t.exports=function(t){return function(e){return t(e)}}},"T/bE":function(t,e,r){var n=r("94sX"),i=r("ue/d"),o=r("eVIm"),a=r("RGrk"),s=r("Z2pD");function c(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}c.prototype.clear=n,c.prototype.delete=i,c.prototype.get=o,c.prototype.has=a,c.prototype.set=s,t.exports=c},T9Hf:function(t,e,r){"use strict";var n=r("77aO"),i=r("NVTU"),o=!1;var a=function(t){o||r("WVEp")},s=r("VU/8")(n.a,i.a,!1,a,null,null);s.options.__file="components\\collapsibleCard.vue",e.a=s.exports},TQ3y:function(t,e,r){var n=r("blYT"),i="object"==typeof self&&self&&self.Object===Object&&self,o=n||i||Function("return this")();t.exports=o},TlPD:function(t,e,r){var n=r("tv3T"),i=r("t8rQ");t.exports=function(t){return n(t,i(t))}},TmV0:function(t,e,r){r("fZOM"),t.exports=r("FeBl").Object.values},U7Aq:function(t,e){t.exports=function(t,e){return t.set(e[0],e[1]),t}},Ubhr:function(t,e,r){var n=r("6MiT"),i=1/0;t.exports=function(t){if("string"==typeof t||n(t))return t;var e=t+"";return"0"==e&&1/t==-i?"-0":e}},UfSK:function(t,e){var r=Object.prototype.hasOwnProperty;t.exports=function(t){var e=t.length,n=t.constructor(e);return e&&"string"==typeof t[0]&&r.call(t,"index")&&(n.index=t.index,n.input=t.input),n}},UnEC:function(t,e){t.exports=function(t){return null!=t&&"object"==typeof t}},UnLw:function(t,e,r){var n=/^\./,i=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,o=/\\(\\)?/g,a=r("fMqj")(function(t){var e=[];return n.test(t)&&e.push(""),t.replace(i,function(t,r,n,i){e.push(n?i.replace(o,"$1"):r||t)}),e});t.exports=a},VORN:function(t,e,r){var n=r("yCNF"),i=Object.create,o=function(){function t(){}return function(e){if(!n(e))return{};if(i)return i(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}}();t.exports=o},Vi3P:function(t,e,r){var n=r("bIjD"),i=r("oqL2"),o=r("Cf65"),a=r("Ubhr");t.exports=function(t,e){return e=n(e,t),null==(t=o(t,e))||delete t[a(i(e))]}},W3Iv:function(t,e,r){t.exports={default:r("wEtr"),__esModule:!0}},W529:function(t,e,r){var n=r("f931")(Object.keys,Object);t.exports=n},WFiI:function(t,e){t.exports=function(t){var e=-1,r=Array(t.size);return t.forEach(function(t,n){r[++e]=[n,t]}),r}},WHce:function(t,e,r){var n=r("037f"),i=r("Zk5a")(n);t.exports=i},WQFf:function(t,e,r){var n=r("VORN"),i=r("vi0E"),o=r("HT7L");t.exports=function(t){return"function"!=typeof t.constructor||o(t)?{}:n(i(t))}},WVEp:function(t,e,r){var n=r("a3hs");"string"==typeof n&&(n=[[t.i,n,""]]),n.locals&&(t.exports=n.locals);r("rjj0")("52cedc5e",n,!1)},WWdk:function(t,e,r){"use strict";var n=function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"process-message content"},[this._m(0),e("p",[this._v("The process message is the format to exchange data out of discrete processes. It also allows to transport process information, part information and measurement data for each phase of the process.")]),e("img",{staticClass:"is-center",attrs:{src:"images/specification/v2/processPayload.svg",alt:"Class diagram of the process data payload",title:"Class diagram of the process data payload"}}),e("schemaDetail",{attrs:{type:"v2/process",examples:this.$static.examples}},[e("card",{attrs:{collapsed:!0}},[e("template",{slot:"header"},[this._v("\n        Minimal message example \n      ")]),e("prism",{attrs:{language:"json"}},[this._v(this._s(this._f("stringify")(this.$static.message)))])],2),e("card",{attrs:{collapsed:!0}},[e("template",{slot:"header"},[this._v("\n        Process message example \n      ")]),e("prism",{attrs:{language:"json"}},[this._v(this._s(this._f("stringify")(this.$static.complexMessage)))])],2)],1)],1)};n._withStripped=!0;var i={render:n,staticRenderFns:[function(){var t=this.$createElement,e=this._self._c||t;return e("h1",[e("a",{attrs:{id:"Process-Payload",title:"Process Payload"}}),this._v("\n    Process Payload\n  ")])}]};e.a=i},WxI4:function(t,e){t.exports=function(){this.__data__=[],this.size=0}},WyC4:function(t,e){var r=/\w*$/;t.exports=function(t){var e=new t.constructor(t.source,r.exec(t));return e.lastIndex=t.lastIndex,e}},Xd32:function(t,e,r){r("+tPU"),r("zQR9"),t.exports=r("5PlU")},YeCl:function(t,e,r){var n=r("CW5P"),i=r("A9mX"),o=r("v8Dt"),a=r("agim"),s=r("Dv2r");function c(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}c.prototype.clear=n,c.prototype.delete=i,c.prototype.get=o,c.prototype.has=a,c.prototype.set=s,t.exports=c},YkxI:function(t,e,r){var n=r("wSKX"),i=r("Q2wK"),o=r("WHce");t.exports=function(t,e){return o(i(t,e,n),t+"")}},YsVG:function(t,e,r){var n=r("z4hc"),i=r("S7p9"),o=r("Dc0G"),a=o&&o.isTypedArray,s=a?i(a):n;t.exports=s},Z2pD:function(t,e,r){var n=r("dCZQ"),i="__lodash_hash_undefined__";t.exports=function(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=n&&void 0===e?i:e,this}},ZGh9:function(t,e){var r=9007199254740991,n=/^(?:0|[1-9]\d*)$/;t.exports=function(t,e){return!!(e=null==e?r:e)&&("number"==typeof t||n.test(t))&&t>-1&&t%1==0&&t<e}},ZT2e:function(t,e,r){var n=r("o2mx");t.exports=function(t){return null==t?"":n(t)}},Zk5a:function(t,e){var r=800,n=16,i=Date.now;t.exports=function(t){var e=0,o=0;return function(){var a=i(),s=n-(a-o);if(o=a,s>0){if(++e>=r)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}},Zrlr:function(t,e,r){"use strict";e.__esModule=!0,e.default=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},a3hs:function(t,e,r){(t.exports=r("YHym")(!1)).push([t.i,"@keyframes spinAround{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}.card.collapsibleCard>header{cursor:pointer;background-color:#f5f5f5;border-bottom:1px solid hsla(0,0%,4%,.1)}.card.collapsibleCard>header .card-header-icon{text-decoration:none}.card.collapsibleCard>header .card-header-title{font-weight:400}.card.collapsibleCard>header p{margin-bottom:0}.card.collapsibleCard.collapsed header{border-bottom:none}.card.collapsibleCard>div.collapsing{position:relative;height:0;overflow:hidden;display:block;transition-property:height;transition-duration:.35s;transition-timing-function:ease}",""])},aCM0:function(t,e,r){var n=r("NkRn"),i=r("uLhX"),o=r("+66z"),a="[object Null]",s="[object Undefined]",c=n?n.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?s:a:c&&c in Object(t)?i(t):o(t)}},agim:function(t,e,r){var n=r("pTUa");t.exports=function(t){return n(this,t).has(t)}},bGc4:function(t,e,r){var n=r("gGqR"),i=r("Rh28");t.exports=function(t){return null!=t&&i(t.length)&&!n(t)}},bIbi:function(t,e,r){var n=r("ICSD")(r("TQ3y"),"WeakMap");t.exports=n},bIjD:function(t,e,r){var n=r("NGEn"),i=r("hIPy"),o=r("UnLw"),a=r("ZT2e");t.exports=function(t,e){return n(t)?t:i(t,e)?[t]:o(a(t))}},bJWQ:function(t,e,r){var n=r("duB3"),i=r("KmWZ"),o=r("NqZt"),a=r("E4Hj"),s=r("G2xm"),c=r("zpVT");function u(t){var e=this.__data__=new n(t);this.size=e.size}u.prototype.clear=i,u.prototype.delete=o,u.prototype.get=a,u.prototype.has=s,u.prototype.set=c,t.exports=u},bO0Y:function(t,e,r){var n=r("ICSD")(r("TQ3y"),"Promise");t.exports=n},"bXX+":function(t,e,r){"use strict";var n=r("jhkR"),i=r("fvMW"),o=r("VU/8")(n.a,i.a,!1,null,null,null);o.options.__file="components\\schemaLink.vue",e.a=o.exports},bklM:function(t,e,r){var n=r("Fkvj"),i=1,o=4;t.exports=function(t){return n(t,i|o)}},blYT:function(t,e,r){(function(e){var r="object"==typeof e&&e&&e.Object===Object&&e;t.exports=r}).call(e,r("DuR2"))},"c/Tr":function(t,e,r){t.exports={default:r("5zde"),__esModule:!0}},cER1:function(t,e,r){"use strict";var n=r("mvHQ"),i=r.n(n),o=r("fZjL"),a=r.n(o),s=r("Gu7T"),c=r.n(s),u=r("gRE1"),l=r.n(u),f=r("d7EF"),p=r.n(f),d=r("W3Iv"),v=r.n(d),h=r("T9Hf"),m=r("rVUV"),b=(r.n(m),r("Q7hp")),y=r.n(b),_=r("HN2V"),g=r.n(_),x=r("LJry"),j=r.n(x),O=r("lOo0"),C=r("bXX+"),w=r("mQxp"),k=r("4yG7"),P=r.n(k);e.a={props:{type:{type:String,required:!0},examples:{type:Object,required:!1,default:function(){return{}}}},data:function(){return{masterSchema:null,loading:!0}},created:function(){var t=this,e={date:{link:"https://tools.ietf.org/html/rfc3339#section-5.6",name:"RFC3339, 5.6"},email:{link:"https://tools.ietf.org/html/rfc5322#section-3.4.1",name:"RFC5322, 3.4.1"}};r("+99L")("./"+this.type+"_schema.json").then(function(e){return console.time("parsing Schema"),t.masterSchema=new O.a("$",null,e),v()(t.examples).forEach(function(e){var r=p()(e,2),n=r[0],i=r[1];y()(t.masterSchema,n)&&P()(t.masterSchema,n+".examples",i)}),console.timeEnd("parsing Schema"),t.loading=!1,e}).catch(function(t){throw t}),this.$static={formats:{"date-time":e.date,date:e.date,time:e.date,email:e.email}}},methods:{traverse:function(t,e){var r=this;t instanceof O.a?(e(t),v()(t).filter(function(t){var e=p()(t,2),r=e[0];e[1];return"$parent"!==r}).forEach(function(t){var n=p()(t,2),i=(n[0],n[1]);return r.traverse(i,e)})):t instanceof Array?t.forEach(function(t){return r.traverse(t,e)}):t instanceof Object&&l()(t).forEach(function(t){return r.traverse(t,e)})},simplifySchema:function(t){var e=function(t){return t.anyOf&&t.anyOf.indexOf(!0)>=0?[t,!0]:t.allOf&&t.allOf.indexOf(!1)>=0?[t,!1]:t.allOf&&t.allOf.length?[t,new O.a(t.$step,t.$parent,g.a.apply(void 0,[{}].concat(c()(t.allOf.map(function(t){return t.toJSON()})))))]:!0===t.not?[t,!1]:0===a()(t).filter(function(t){return"$"!==t[0]}).length?[t,!0]:null};return this.traverse(t,function(t){!function t(r){if(r){var n=p()(r,2),i=n[0],o=n[1],a=i.$parent;a&&P()(a.schema,a.path,o),i.$parent=null,t(e(a.schema))}}(e(t))}),t}},computed:{schemas:function(){if(!this.masterSchema)return null;var t={};return this.traverse(this.simplifySchema(this.masterSchema),function(e){t[e.$id]=e}),t}},filters:{stringify:function(t){return i()(t," ",2)},capitalize:function(t,e){return t?(t instanceof Array||(t=[t]),t.map(function(t){return""+t[0].toUpperCase()+t.slice(1)}).join(", ")):""}},components:{card:h.a,prism:j.a,schemaToc:w.a,schemaLink:C.a}}},d4US:function(t,e,r){var n=r("ICSD")(r("TQ3y"),"DataView");t.exports=n},d7EF:function(t,e,r){"use strict";e.__esModule=!0;var n=o(r("us/S")),i=o(r("BO1k"));function o(t){return t&&t.__esModule?t:{default:t}}e.default=function(){return function(t,e){if(Array.isArray(t))return t;if((0,n.default)(Object(t)))return function(t,e){var r=[],n=!0,o=!1,a=void 0;try{for(var s,c=(0,i.default)(t);!(n=(s=c.next()).done)&&(r.push(s.value),!e||r.length!==e);n=!0);}catch(t){o=!0,a=t}finally{try{!n&&c.return&&c.return()}finally{if(o)throw a}}return r}(t,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}()},dCZQ:function(t,e,r){var n=r("ICSD")(Object,"create");t.exports=n},dFpP:function(t,e,r){var n=r("imBK"),i=Array.prototype.splice;t.exports=function(t){var e=this.__data__,r=n(e,t);return!(r<0||(r==e.length-1?e.pop():i.call(e,r,1),--this.size,0))}},dYhQ:function(t,e,r){var n=r("9UkZ");t.exports=function(t){return n(t)?void 0:t}},deUO:function(t,e,r){var n=r("imBK");t.exports=function(t,e){var r=this.__data__,i=n(r,t);return i<0?(++this.size,r.push([t,e])):r[i][1]=e,this}},duB3:function(t,e,r){var n=r("WxI4"),i=r("dFpP"),o=r("JBvZ"),a=r("2Hvv"),s=r("deUO");function c(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}c.prototype.clear=n,c.prototype.delete=i,c.prototype.get=o,c.prototype.has=a,c.prototype.set=s,t.exports=c},eFps:function(t,e,r){var n,i=r("+gg+"),o=(n=/[^.]+$/.exec(i&&i.keys&&i.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"";t.exports=function(t){return!!o&&o in t}},eVIm:function(t,e,r){var n=r("dCZQ"),i="__lodash_hash_undefined__",o=Object.prototype.hasOwnProperty;t.exports=function(t){var e=this.__data__;if(n){var r=e[t];return r===i?void 0:r}return o.call(e,t)?e[t]:void 0}},f931:function(t,e){t.exports=function(t,e){return function(r){return t(e(r))}}},fBQ2:function(t,e,r){"use strict";var n=r("evD5"),i=r("X8DO");t.exports=function(t,e,r){e in t?n.f(t,e,i(0,r)):t[e]=r}},fMqj:function(t,e,r){var n=r("zGZ6"),i=500;t.exports=function(t){var e=n(t,function(t){return r.size===i&&r.clear(),t}),r=e.cache;return e}},fZOM:function(t,e,r){var n=r("kM2E"),i=r("mbce")(!1);n(n.S,"Object",{values:function(t){return i(t)}})},fvMW:function(t,e,r){"use strict";var n=function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("div",[t._t("default"),!0===t.link?[t._v("\n    yes \n  ")]:!1===t.link?[t._v("\n    no \n  ")]:t.isSchema(t.link)?[r("nuxt-link",{attrs:{to:"#p-"+t.link.$id}},[r("span",{domProps:{innerHTML:t._s(t.link.getPath())}})])]:t.link instanceof Array?r("ul",t._l(t.link,function(e){return r("li",{key:e.$id},[r("nuxt-link",{attrs:{to:"#p-"+e.$id}},[r("span",{domProps:{innerHTML:t._s(e.getPath())}})])],1)})):t.link instanceof Object?r("ul",t._l(t.link,function(e,n){return r("li",[r("nuxt-link",{attrs:{to:"#p-"+e.$id}},[t._v("\n        "+t._s(n)+"\n      ")])],1)})):t._e()],2)};n._withStripped=!0;var i={render:n,staticRenderFns:[]};e.a=i},gGqR:function(t,e,r){var n=r("aCM0"),i=r("yCNF"),o="[object AsyncFunction]",a="[object Function]",s="[object GeneratorFunction]",c="[object Proxy]";t.exports=function(t){if(!i(t))return!1;var e=n(t);return e==a||e==s||e==o||e==c}},gHOb:function(t,e,r){var n=r("d4US"),i=r("POb3"),o=r("bO0Y"),a=r("5N57"),s=r("bIbi"),c=r("aCM0"),u=r("Ai/T"),l="[object Promise]",f="[object WeakMap]",p="[object DataView]",d=u(n),v=u(i),h=u(o),m=u(a),b=u(s),y=c;(n&&y(new n(new ArrayBuffer(1)))!=p||i&&"[object Map]"!=y(new i)||o&&y(o.resolve())!=l||a&&"[object Set]"!=y(new a)||s&&y(new s)!=f)&&(y=function(t){var e=c(t),r="[object Object]"==e?t.constructor:void 0,n=r?u(r):"";if(n)switch(n){case d:return p;case v:return"[object Map]";case h:return l;case m:return"[object Set]";case b:return f}return e}),t.exports=y},gRE1:function(t,e,r){t.exports={default:r("TmV0"),__esModule:!0}},gSvA:function(t,e,r){var n=r("kM2E"),i=r("mbce")(!0);n(n.S,"Object",{entries:function(t){return i(t)}})},ggOT:function(t,e,r){(function(t){var n=r("TQ3y"),i=r("gwcX"),o="object"==typeof e&&e&&!e.nodeType&&e,a=o&&"object"==typeof t&&t&&!t.nodeType&&t,s=a&&a.exports===o?n.Buffer:void 0,c=(s?s.isBuffer:void 0)||i;t.exports=c}).call(e,r("3IRH")(t))},gwcX:function(t,e){t.exports=function(){return!1}},hIPy:function(t,e,r){var n=r("NGEn"),i=r("6MiT"),o=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;t.exports=function(t,e){if(n(t))return!1;var r=typeof t;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=t&&!i(t))||a.test(t)||!o.test(t)||null!=e&&t in Object(e)}},hrPF:function(t,e){t.exports=function(t,e){var r=-1,n=t.length;for(e||(e=Array(n));++r<n;)e[r]=t[r];return e}},hvFG:function(t,e,r){"use strict";var n=function(){var t=this.$createElement,e=this._self._c||t;return e(this.tag,{tag:"component"},[e("nuxt-link",{attrs:{to:"#p-"+this.schema.$id}},[e("span",{domProps:{innerHTML:this._s(this.schema.$step)}})]),this.schema.properties||this.schema.patternProperties||this.schema.items?e("ul",[this._l(this.schema.properties,function(t,r){return e("schemaToc",{key:r,attrs:{schema:t}})}),this._l(this.schema.patternProperties,function(t,r){return e("schemaToc",{key:r,attrs:{schema:t}})}),this.schema.items?[this.schema.items instanceof Array?this._l(this.schema.items,function(t,r){return e("schemaToc",{key:r,attrs:{schema:t}})}):e("schemaToc",{attrs:{schema:this.schema.items}})]:this._e()],2):this._e()],1)};n._withStripped=!0;var i={render:n,staticRenderFns:[]};e.a=i},i4ON:function(t,e,r){var n=r("nw3t"),i=r("22B7"),o=Object.prototype.hasOwnProperty;t.exports=function(t,e,r){var a=t[e];o.call(t,e)&&i(a,r)&&(void 0!==r||e in t)||n(t,e,r)}},imBK:function(t,e,r){var n=r("22B7");t.exports=function(t,e){for(var r=t.length;r--;)if(n(t[r][0],e))return r;return-1}},jD7S:function(t,e,r){var n=r("tv3T"),i=r("ktak");t.exports=function(t,e){return t&&n(e,i(e),t)}},jMi8:function(t,e,r){var n=r("O1jc"),i=r("mKB/"),o=r("Ilb/"),a=r("hrPF"),s=r("WQFf"),c=r("1Yb9"),u=r("NGEn"),l=r("Fp5l"),f=r("ggOT"),p=r("gGqR"),d=r("yCNF"),v=r("9UkZ"),h=r("YsVG"),m=r("TlPD");t.exports=function(t,e,r,b,y,_,g){var x=t[r],j=e[r],O=g.get(j);if(O)n(t,r,O);else{var C=_?_(x,j,r+"",t,e,g):void 0,w=void 0===C;if(w){var k=u(j),P=!k&&f(j),E=!k&&!P&&h(j);C=j,k||P||E?u(x)?C=x:l(x)?C=a(x):P?(w=!1,C=i(j,!0)):E?(w=!1,C=o(j,!0)):C=[]:v(j)||c(j)?(C=x,c(x)?C=m(x):(!d(x)||b&&p(x))&&(C=s(j))):w=!1}w&&(g.set(j,C),y(C,j,b,_,g),g.delete(j)),n(t,r,C)}}},jhkR:function(t,e,r){"use strict";var n=r("lOo0");e.a={props:{link:{required:!0}},methods:{isSchema:function(t){return t instanceof n.a}}}},ktak:function(t,e,r){var n=r("7e4z"),i=r("/GnY"),o=r("bGc4");t.exports=function(t){return o(t)?n(t):i(t)}},l9Lx:function(t,e,r){var n=r("lb6C"),i=r("C0hh"),o=Object.prototype.propertyIsEnumerable,a=Object.getOwnPropertySymbols,s=a?function(t){return null==t?[]:(t=Object(t),n(a(t),function(e){return o.call(t,e)}))}:i;t.exports=s},lOo0:function(t,e,r){"use strict";var n=r("woOf"),i=r.n(n),o=r("d7EF"),a=r.n(o),s=r("W3Iv"),c=r.n(s),u=r("Zrlr"),l=r.n(u),f=r("wxAW"),p=r.n(f),d=r("bklM"),v=r.n(d),h=r("rVUV"),m=r.n(h),b=r("Dc7M"),y=r.n(b),_=function(){function t(e,r,n){l()(this,t),this.$id=t.idx++,this.$step=e,this.$parent=r,n&&this.parseFrom(n)}return p()(t,[{key:"toJSON",value:function(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this;return m()(r,function(r,n,i,o){if(r instanceof t)return c()(r).filter(function(t){var e=a()(t,2),r=e[0];e[1];return["$id","$step","$parent"].indexOf(r)<0}).reduce(function(t,r){var n=a()(r,2),i=n[0],o=n[1];return t[i]=e.toJSON(o),t},{})})}},{key:"getPath",value:function(){var t="";return this.$parent&&(t+=this.$parent.schema.getPath(),"object"===this.$parent.schema.type&&(t+=".")),t+=this.$step,this.getPath=function(){return t},t}},{key:"parseFrom",value:function(e){var r=this;return!0===e?e={}:!1===e&&(e={not:!0}),i()(this,y()(v()(e),["$step","$id","$parent","items","properties","patternProperties","additionalItems","additionalProperties","contains","propertyNames","not","allOf","anyOf","oneOf"])),e.items&&(e.items instanceof Array?this.items=e.items.map(function(n,i){return new t("["+i+"]",{schema:r,path:"items["+i+"]"}).parseFrom(e.items[i])}):this.items=new t("[*]",{schema:this,path:"items"}).parseFrom(e.items)),["properties","patternProperties"].filter(function(t){return e.hasOwnProperty(t)}).forEach(function(n){return c()(e[n]).forEach(function(e,i){var o=a()(e,2),s=o[0],c=o[1];r[n]=r[n]||{},r[n][s]=new t(""+("patternProperties"===n?"&lt;field&gt;":s),{schema:r,path:n+'["'+s+'"]'}).parseFrom(c)})}),["additionalItems","additionalProperties","contains","propertyNames","not"].filter(function(t){return e.hasOwnProperty(t)}).forEach(function(n){r[n]=new t("+",{schema:r,path:n}).parseFrom(e[n])}),["allOf","anyOf","oneOf"].filter(function(t){return e.hasOwnProperty(t)}).forEach(function(n){return e[n].forEach(function(e,i){r[n]=r[n]||[],r[n].push(new t("("+i+")"+("anyOf"===n?"?":"+"),{schema:r,path:n+"["+i+"]"}).parseFrom(e))})}),this}}]),t}();_.idx=0,e.a=_},lb6C:function(t,e){t.exports=function(t,e){for(var r=-1,n=null==t?0:t.length,i=0,o=[];++r<n;){var a=t[r];e(a,r,t)&&(o[i++]=a)}return o}},"mKB/":function(t,e,r){(function(t){var n=r("TQ3y"),i="object"==typeof e&&e&&!e.nodeType&&e,o=i&&"object"==typeof t&&t&&!t.nodeType&&t,a=o&&o.exports===i?n.Buffer:void 0,s=a?a.allocUnsafe:void 0;t.exports=function(t,e){if(e)return t.slice();var r=t.length,n=s?s(r):new t.constructor(r);return t.copy(n),n}}).call(e,r("3IRH")(t))},mQxp:function(t,e,r){"use strict";var n=r("Gs0Q"),i=r("hvFG"),o=!1;var a=function(t){o||r("AxiT")},s=r("VU/8")(n.a,i.a,!1,a,null,null);s.options.__file="components\\schemaToc.vue",e.a=s.exports},mTAn:function(t,e){t.exports=function(t,e){return null==t?void 0:t[e]}},mbce:function(t,e,r){var n=r("lktj"),i=r("TcQ7"),o=r("NpIQ").f;t.exports=function(t){return function(e){for(var r,a=i(e),s=n(a),c=s.length,u=0,l=[];c>u;)o.call(a,r=s[u++])&&l.push(t?[r,a[r]]:a[r]);return l}}},mgnk:function(t,e,r){var n=r("aCM0"),i=r("UnEC"),o="[object Arguments]";t.exports=function(t){return i(t)&&n(t)==o}},nWuj:function(t,e){t.exports=function(t,e){return t.add(e),t}},nw3t:function(t,e,r){var n=r("p0bc");t.exports=function(t,e,r){"__proto__"==e&&n?n(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}},o2mx:function(t,e,r){var n=r("NkRn"),i=r("Hxdr"),o=r("NGEn"),a=r("6MiT"),s=1/0,c=n?n.prototype:void 0,u=c?c.toString:void 0;t.exports=function t(e){if("string"==typeof e)return e;if(o(e))return i(e,t)+"";if(a(e))return u?u.call(e):"";var r=e+"";return"0"==r&&1/e==-s?"-0":r}},octw:function(t,e){t.exports=function(t){var e=-1,r=Array(t.size);return t.forEach(function(t){r[++e]=t}),r}},oqL2:function(t,e){t.exports=function(t){var e=null==t?0:t.length;return e?t[e-1]:void 0}},p0bc:function(t,e,r){var n=r("ICSD"),i=function(){try{var t=n(Object,"defineProperty");return t({},"",{}),t}catch(t){}}();t.exports=i},pTUa:function(t,e,r){var n=r("/I3N");t.exports=function(t,e){var r=t.__data__;return n(e)?r["string"==typeof e?"string":"hash"]:r.map}},py9u:function(t,e,r){var n=r("tv3T"),i=r("t8rQ");t.exports=function(t,e){return t&&n(e,i(e),t)}},qwTf:function(t,e,r){var n=r("TQ3y").Uint8Array;t.exports=n},qyJz:function(t,e,r){"use strict";var n=r("+ZMJ"),i=r("kM2E"),o=r("sB3e"),a=r("msXi"),s=r("Mhyx"),c=r("QRG4"),u=r("fBQ2"),l=r("3fs2");i(i.S+i.F*!r("dY0y")(function(t){Array.from(t)}),"Array",{from:function(t){var e,r,i,f,p=o(t),d="function"==typeof this?this:Array,v=arguments.length,h=v>1?arguments[1]:void 0,m=void 0!==h,b=0,y=l(p);if(m&&(h=n(h,v>2?arguments[2]:void 0,2)),void 0==y||d==Array&&s(y))for(r=new d(e=c(p.length));e>b;b++)u(r,b,m?h(p[b],b):p[b]);else for(f=y.call(p),r=new d;!(i=f.next()).done;b++)u(r,b,m?a(f,h,[i.value,b],!0):i.value);return r.length=b,r}})},rCVp:function(t,e,r){var n=r("1C79");t.exports=function(t){return null!=t&&t.length?n(t,1):[]}},rVUV:function(t,e,r){var n=r("Fkvj"),i=1,o=4;t.exports=function(t,e){return n(t,i|o,e="function"==typeof e?e:void 0)}},rpnb:function(t,e,r){var n=r("tHks")();t.exports=n},s8mu:function(t,e,r){"use strict";var n=r("cER1"),i=r("D9sP"),o=!1;var a=function(t){o||r("A51D")},s=r("VU/8")(n.a,i.a,!1,a,null,null);s.options.__file="components\\schemaDetail.vue",e.a=s.exports},t8rQ:function(t,e,r){var n=r("7e4z"),i=r("G0Wc"),o=r("bGc4");t.exports=function(t){return o(t)?n(t,!0):i(t)}},tHks:function(t,e){t.exports=function(t){return function(e,r,n){for(var i=-1,o=Object(e),a=n(e),s=a.length;s--;){var c=a[t?s:++i];if(!1===r(o[c],c,o))break}return e}}},tv3T:function(t,e,r){var n=r("i4ON"),i=r("nw3t");t.exports=function(t,e,r,o){var a=!r;r||(r={});for(var s=-1,c=e.length;++s<c;){var u=e[s],l=o?o(r[u],t[u],u,r,t):void 0;void 0===l&&(l=t[u]),a?i(r,u,l):n(r,u,l)}return r}},uCi2:function(t,e,r){var n=r("bIjD"),i=r("Ubhr");t.exports=function(t,e){for(var r=0,o=(e=n(e,t)).length;null!=t&&r<o;)t=t[i(e[r++])];return r&&r==o?t:void 0}},uIr7:function(t,e){t.exports=function(t,e){for(var r=-1,n=e.length,i=t.length;++r<n;)t[i+r]=e[r];return t}},uLhX:function(t,e,r){var n=r("NkRn"),i=Object.prototype,o=i.hasOwnProperty,a=i.toString,s=n?n.toStringTag:void 0;t.exports=function(t){var e=o.call(t,s),r=t[s];try{t[s]=void 0;var n=!0}catch(t){}var i=a.call(t);return n&&(e?t[s]=r:delete t[s]),i}},"ue/d":function(t,e){t.exports=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}},uieL:function(t,e){t.exports=function(t,e){for(var r=-1,n=Array(t);++r<t;)n[r]=e(r);return n}},"us/S":function(t,e,r){t.exports={default:r("Xd32"),__esModule:!0}},v8Dt:function(t,e,r){var n=r("pTUa");t.exports=function(t){return n(this,t).get(t)}},vi0E:function(t,e,r){var n=r("f931")(Object.getPrototypeOf,Object);t.exports=n},wEtr:function(t,e,r){r("gSvA"),t.exports=r("FeBl").Object.entries},wSKX:function(t,e){t.exports=function(t){return t}},wxAW:function(t,e,r){"use strict";e.__esModule=!0;var n,i=r("C4MV"),o=(n=i)&&n.__esModule?n:{default:n};e.default=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),(0,o.default)(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}()},xond:function(t,e,r){var n=r("FCuZ"),i=r("09Qt"),o=r("t8rQ");t.exports=function(t){return n(t,o,i)}},yCNF:function(t,e){t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},z4hc:function(t,e,r){var n=r("aCM0"),i=r("Rh28"),o=r("UnEC"),a={};a["[object Float32Array]"]=a["[object Float64Array]"]=a["[object Int8Array]"]=a["[object Int16Array]"]=a["[object Int32Array]"]=a["[object Uint8Array]"]=a["[object Uint8ClampedArray]"]=a["[object Uint16Array]"]=a["[object Uint32Array]"]=!0,a["[object Arguments]"]=a["[object Array]"]=a["[object ArrayBuffer]"]=a["[object Boolean]"]=a["[object DataView]"]=a["[object Date]"]=a["[object Error]"]=a["[object Function]"]=a["[object Map]"]=a["[object Number]"]=a["[object Object]"]=a["[object RegExp]"]=a["[object Set]"]=a["[object String]"]=a["[object WeakMap]"]=!1,t.exports=function(t){return o(t)&&i(t.length)&&!!a[n(t)]}},zBOP:function(t,e,r){var n=r("22B7"),i=r("bGc4"),o=r("ZGh9"),a=r("yCNF");t.exports=function(t,e,r){if(!a(r))return!1;var s=typeof e;return!!("number"==s?i(r)&&o(e,r.length):"string"==s&&e in r)&&n(r[e],t)}},zGZ6:function(t,e,r){var n=r("YeCl"),i="Expected a function";function o(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError(i);var r=function(){var n=arguments,i=e?e.apply(this,n):n[0],o=r.cache;if(o.has(i))return o.get(i);var a=t.apply(this,n);return r.cache=o.set(i,a)||o,a};return r.cache=new(o.Cache||n),r}o.Cache=n,t.exports=o},zpVT:function(t,e,r){var n=r("duB3"),i=r("POb3"),o=r("YeCl"),a=200;t.exports=function(t,e){var r=this.__data__;if(r instanceof n){var s=r.__data__;if(!i||s.length<a-1)return s.push([t,e]),this.size=++r.size,this;r=this.__data__=new o(s)}return r.set(t,e),this.size=r.size,this}}});
\ No newline at end of file
diff --git a/files/pages_specification_v3_machine-message.f44c94ee92582a4b1543.js b/files/pages_specification_v3_machine-message.f44c94ee92582a4b1543.js
new file mode 100644
index 0000000..67edb30
--- /dev/null
+++ b/files/pages_specification_v3_machine-message.f44c94ee92582a4b1543.js
@@ -0,0 +1 @@
+webpackJsonp([2],{"+66z":function(t,e){var n=Object.prototype.toString;t.exports=function(t){return n.call(t)}},"+99L":function(t,e,n){var r={"./v2/measurement_schema.json":["oGp6",23],"./v2/message_schema.json":["2BTs",22],"./v2/process_schema.json":["rRyJ",21],"./v3/measurement_schema.json":["PpY5",20],"./v3/message_schema.json":["1SJ2",19],"./v3/process_schema.json":["uwRd",18]};function i(t){var e=r[t];return e?n.e(e[1]).then(function(){return n(e[0])}):Promise.reject(new Error("Cannot find module '"+t+"'."))}i.keys=function(){return Object.keys(r)},i.id="+99L",t.exports=i},"+gg+":function(t,e,n){var r=n("TQ3y")["__core-js_shared__"];t.exports=r},"/GnY":function(t,e,n){var r=n("HT7L"),i=n("W529"),a=Object.prototype.hasOwnProperty;t.exports=function(t){if(!r(t))return i(t);var e=[];for(var n in Object(t))a.call(t,n)&&"constructor"!=n&&e.push(n);return e}},"/I3N":function(t,e){t.exports=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t}},"037f":function(t,e,n){var r=n("1oyr"),i=n("p0bc"),a=n("wSKX"),o=i?function(t,e){return i(t,"toString",{configurable:!0,enumerable:!1,value:r(e),writable:!0})}:a;t.exports=o},"09Qt":function(t,e,n){var r=n("uIr7"),i=n("vi0E"),a=n("l9Lx"),o=n("C0hh"),s=Object.getOwnPropertySymbols?function(t){for(var e=[];t;)r(e,a(t)),t=i(t);return e}:o;t.exports=s},"0DSl":function(t,e,n){var r=n("YkxI"),i=n("zBOP");t.exports=function(t){return r(function(e,n){var r=-1,a=n.length,o=a>1?n[a-1]:void 0,s=a>2?n[2]:void 0;for(o=t.length>3&&"function"==typeof o?(a--,o):void 0,s&&i(n[0],n[1],s)&&(o=a<3?void 0:o,a=1),e=Object(e);++r<a;){var c=n[r];c&&t(e,c,r,o)}return e})}},"0uX4":function(t,e,n){var r=n("NkRn"),i=r?r.prototype:void 0,a=i?i.valueOf:void 0;t.exports=function(t){return a?Object(a.call(t)):{}}},"1C79":function(t,e,n){var r=n("uIr7"),i=n("Qp3N");t.exports=function t(e,n,a,o,s){var c=-1,u=e.length;for(a||(a=i),s||(s=[]);++c<u;){var l=e[c];n>0&&a(l)?n>1?t(l,n-1,a,o,s):r(s,l):o||(s[s.length]=l)}return s}},"1QDk":function(t,e,n){var r=n("tv3T"),i=n("09Qt");t.exports=function(t,e){return r(t,i(t),e)}},"1Yb9":function(t,e,n){var r=n("mgnk"),i=n("UnEC"),a=Object.prototype,o=a.hasOwnProperty,s=a.propertyIsEnumerable,c=r(function(){return arguments}())?r:function(t){return i(t)&&o.call(t,"callee")&&!s.call(t,"callee")};t.exports=c},"1oyr":function(t,e){t.exports=function(t){return function(){return t}}},"22B7":function(t,e){t.exports=function(t,e){return t===e||t!=t&&e!=e}},"2Hvv":function(t,e,n){var r=n("imBK");t.exports=function(t){return r(this.__data__,t)>-1}},"2N6f":function(t,e,n){var r=n("rCVp"),i=n("Q2wK"),a=n("WHce");t.exports=function(t){return a(i(t,void 0,r),t+"")}},"3IRH":function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},"3rZI":function(t,e){t.exports=function(t,e,n,r){var i=-1,a=null==t?0:t.length;for(r&&a&&(n=t[++i]);++i<a;)n=e(n,t[i],i,t);return n}},"4yG7":function(t,e,n){var r=n("HAGj");t.exports=function(t,e,n){return null==t?t:r(t,e,n)}},"5/Qr":function(t,e,n){var r=n("Kzd6"),i=n("6Git"),a=n("Jqj6"),o=n("WyC4"),s=n("7jYp"),c=n("0uX4"),u=n("Ilb/"),l="[object Boolean]",f="[object Date]",p="[object Map]",d="[object Number]",v="[object RegExp]",h="[object Set]",m="[object String]",b="[object Symbol]",y="[object ArrayBuffer]",_="[object DataView]",g="[object Float32Array]",x="[object Float64Array]",j="[object Int8Array]",C="[object Int16Array]",O="[object Int32Array]",w="[object Uint8Array]",k="[object Uint8ClampedArray]",T="[object Uint16Array]",P="[object Uint32Array]";t.exports=function(t,e,n,A){var E=t.constructor;switch(e){case y:return r(t);case l:case f:return new E(+t);case _:return i(t,A);case g:case x:case j:case C:case O:case w:case k:case T:case P:return u(t,A);case p:return a(t,A,n);case d:case m:return new E(t);case v:return o(t);case h:return s(t,A,n);case b:return c(t)}}},"5N57":function(t,e,n){var r=n("ICSD")(n("TQ3y"),"Set");t.exports=r},"5PlU":function(t,e,n){var r=n("RY/4"),i=n("dSzd")("iterator"),a=n("/bQp");t.exports=n("FeBl").isIterable=function(t){var e=Object(t);return void 0!==e[i]||"@@iterator"in e||a.hasOwnProperty(r(e))}},"5pwE":function(t,e,n){(t.exports=n("YHym")(!1)).push([t.i,".schemaDetail a{text-decoration:none}.schemaDetail .property ul{list-style-type:disc;padding-left:1em;margin-left:0;margin-top:0}",""])},"5zde":function(t,e,n){n("zQR9"),n("qyJz"),t.exports=n("FeBl").Array.from},"6Git":function(t,e,n){var r=n("Kzd6");t.exports=function(t,e){var n=e?r(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}},"6MiT":function(t,e,n){var r=n("aCM0"),i=n("UnEC"),a="[object Symbol]";t.exports=function(t){return"symbol"==typeof t||i(t)&&r(t)==a}},"77aO":function(t,e,n){"use strict";e.a={props:{collapsed:{type:Boolean,default:!1}},data:function(){return{expanded:!this.collapsed,transitioning:!1}},watch:{collapsed:function(t){this.expanded=!t}},methods:{beforeenter:function(t){this.transitioning=!0,t.style.height=0},enter:function(t){t.style.height=t.scrollHeight+"px"},afterenter:function(t){t.style.height="",this.transitioning=!1},beforeleave:function(t){this.transitioning=!0,t.style.height=t.offsetHeight+"px",t.offsetHeight},leave:function(t){t.style.height=0,t.offsetHeight},afterleave:function(t){this.transitioning=!1},toggle:function(){this.transitioning||(this.expanded=!this.expanded,this.$emit(this.expanded?"expanding":"collapsing",this.id))}}}},"7e4z":function(t,e,n){var r=n("uieL"),i=n("1Yb9"),a=n("NGEn"),o=n("ggOT"),s=n("ZGh9"),c=n("YsVG"),u=Object.prototype.hasOwnProperty;t.exports=function(t,e){var n=a(t),l=!n&&i(t),f=!n&&!l&&o(t),p=!n&&!l&&!f&&c(t),d=n||l||f||p,v=d?r(t.length,String):[],h=v.length;for(var m in t)!e&&!u.call(t,m)||d&&("length"==m||f&&("offset"==m||"parent"==m)||p&&("buffer"==m||"byteLength"==m||"byteOffset"==m)||s(m,h))||v.push(m);return v}},"7jYp":function(t,e,n){var r=n("nWuj"),i=n("3rZI"),a=n("octw"),o=1;t.exports=function(t,e,n){var s=e?n(a(t),o):a(t);return i(s,r,new t.constructor)}},"8AZL":function(t,e){t.exports=function(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}},"8gK5":function(t,e){t.exports=function(t){var e=[];if(null!=t)for(var n in Object(t))e.push(n);return e}},"94sX":function(t,e,n){var r=n("dCZQ");t.exports=function(){this.__data__=r?r(null):{},this.size=0}},"9UkZ":function(t,e,n){var r=n("aCM0"),i=n("vi0E"),a=n("UnEC"),o="[object Object]",s=Function.prototype,c=Object.prototype,u=s.toString,l=c.hasOwnProperty,f=u.call(Object);t.exports=function(t){if(!a(t)||r(t)!=o)return!1;var e=i(t);if(null===e)return!0;var n=l.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&u.call(n)==f}},A51D:function(t,e,n){var r=n("5pwE");"string"==typeof r&&(r=[[t.i,r,""]]),r.locals&&(t.exports=r.locals);n("rjj0")("188b52d2",r,!1)},A9mX:function(t,e,n){var r=n("pTUa");t.exports=function(t){var e=r(this,t).delete(t);return this.size-=e?1:0,e}},"Ai/T":function(t,e){var n=Function.prototype.toString;t.exports=function(t){if(null!=t){try{return n.call(t)}catch(t){}try{return t+""}catch(t){}}return""}},AxiT:function(t,e,n){var r=n("Lw7C");"string"==typeof r&&(r=[[t.i,r,""]]),r.locals&&(t.exports=r.locals);n("rjj0")("0868896c",r,!1)},C0hh:function(t,e){t.exports=function(){return[]}},CW5P:function(t,e,n){var r=n("T/bE"),i=n("duB3"),a=n("POb3");t.exports=function(){this.size=0,this.__data__={hash:new r,map:new(a||i),string:new r}}},Cf65:function(t,e,n){var r=n("uCi2"),i=n("M1c9");t.exports=function(t,e){return e.length<2?t:r(t,i(e,0,-1))}},D9sP:function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"schemaDetail",class:{"is-loading":t.loading},attrs:{id:"schema-detail"}},[n("div",{staticClass:"accordion"},[null!==t.masterSchema?n("card",{attrs:{collapsed:!0}},[n("template",{slot:"header"},[t._v("\n        Structure of the payload\n      ")]),n("ul",t._l(t.masterSchema.properties,function(t,e){return n("schemaToc",{key:e,attrs:{schema:t}})}))],2):t._e(),t._t("default")],2),n("h1",[n("a",{attrs:{id:t.type+"-schema-detail",title:t.type+" Fields definition"}}),t._v("\n    Fields definition\n  ")]),t._l(t.schemas,function(e){return n("div",{key:e.$id,staticClass:"card property"},[n("header",{staticClass:"card-header"},[n("a",{attrs:{id:"p-"+e.$id}}),n("p",{staticClass:"card-header-title"},[n("span",{domProps:{innerHTML:t._s(e.getPath())}})]),n("nuxt-link",{staticClass:"card-header-icon",attrs:{to:"#schema-detail",title:"go up"}},[n("span",{staticClass:"icon"},[n("i",{staticClass:"fa fa-angle-up"})])])],1),n("div",{staticClass:"card-content"},[e.description||e.type?n("div",{staticClass:"field is-horizontal"},[t._m(0,!0),e.description?n("div",{staticClass:"field-body"},[t._v("\n          "+t._s(e.description)+"\n        ")]):e.type?n("div",{staticClass:"field-body"},[t._v("\n          A simple "+t._s(t._f("capitalize")(e.type))+"\n        ")]):t._e()]):t._e(),e.$parent?n("div",{staticClass:"field is-horizontal"},[t._m(1,!0),n("div",{staticClass:"field-body"},[n("nuxt-link",{attrs:{to:"#p-"+e.$parent.schema.$id}},[n("span",{domProps:{innerHTML:t._s(e.$parent.schema.getPath())}})])],1)]):t._e(),e.type?n("div",{staticClass:"field is-horizontal"},[t._m(2,!0),n("div",{staticClass:"field-body"},[t._v("\n          "+t._s(t._f("capitalize")(e.type,e))+"\n        ")])]):t._e(),e.format?n("div",{staticClass:"field is-horizontal"},[t._m(3,!0),n("div",{staticClass:"field-body"},[t._v("\n          "+t._s(e.format)+"\n          "),t.$static.formats[e.format]?n("a",{attrs:{href:t.$static.formats[e.format].link}},[t._v(" ("+t._s(t.$static.formats[e.format].name)+")")]):t._e()])]):t._e(),e.enum&&e.enum.length?n("div",{staticClass:"field is-horizontal"},[t._m(4,!0),n("div",{staticClass:"field-body"},[n("div",[t._v("\n            "+t._s(e.enum.join(", "))+"\n          ")])])]):t._e(),e.hasOwnProperty("default")?n("div",{staticClass:"field is-horizontal"},[t._m(5,!0),n("div",{staticClass:"field-body"},[n("div",[t._v("\n            "+t._s(e.default)+"\n          ")])])]):t._e(),e.maxLength?n("div",{staticClass:"field is-horizontal"},[t._m(6,!0),n("div",{staticClass:"field-body"},[n("div",[t._v("\n            "+t._s(e.maxLength)+"\n          ")])])]):t._e(),e.properties||e.patternProperties||e.items?n("div",{staticClass:"field is-horizontal"},[t._m(7,!0),n("div",{staticClass:"field-body"},[Object.keys(e.properties||{}).length>0?n("schemaLink",{attrs:{link:e.properties}}):t._e(),Object.keys(e.patternProperties||{}).length>0?n("schemaLink",{attrs:{link:e.patternProperties}},[n("div",[t._v("Matching regular expressions:")])]):t._e(),!e.items||e.items instanceof Array?e.items?n("schemaLink",{attrs:{link:e.items}},[n("div",[t._v("Ordered items of type:")])]):t._e():n("schemaLink",{attrs:{link:e.items}}),Object.keys(e.properties||{}).length+Object.keys(e.patternProperties||{}).length!==0||e.items?t._e():[t._v("none")]],2)]):t._e(),e.minProperties?n("div",{staticClass:"field is-horizontal"},[t._m(8,!0),n("div",{staticClass:"field-body"},[n("div",[t._v("\n            "+t._s(e.minProperties)+"\n          ")])])]):t._e(),e.minItems?n("div",{staticClass:"field is-horizontal"},[t._m(9,!0),n("div",{staticClass:"field-body"},[n("div",[t._v("\n            "+t._s(e.minItems)+"\n          ")])])]):t._e(),e.hasOwnProperty("additionalProperties")?n("div",{staticClass:"field is-horizontal"},[t._m(10,!0),"boolean"==typeof e.additionalProperties?n("schemaLink",{staticClass:"field-body",attrs:{link:e.additionalProperties}}):n("div",{staticClass:"field-body"},[t._v("\n          if fulfilling "),n("schemaLink",{staticClass:"field-body",attrs:{link:e.additionalProperties}})],1)],1):t._e(),e.not||e.oneOf||e.allOf||e.anyOf?n("div",{staticClass:"field is-horizontal"},[t._m(11,!0),n("div",{staticClass:"field-body"},[e.not?n("schemaLink",{attrs:{link:e.not}},[t._v("\n            Not fulfilling \n          ")]):t._e(),e.oneOf?n("schemaLink",{attrs:{link:e.oneOf}},[n("div",[t._v("Fulfilling exactly one of:")])]):t._e(),e.allOf?n("schemaLink",{attrs:{link:e.allOf}},[n("div",[t._v("Fulfilling all of:")])]):t._e(),e.anyOf?n("schemaLink",{attrs:{link:e.anyOf}},[n("div",[t._v("Fulfilling one of:")])]):t._e()],1)]):t._e(),e.required&&e.required.length?n("div",{staticClass:"field is-horizontal"},[t._m(12,!0),n("div",{staticClass:"field-body"},[t._v("\n          "+t._s(e.required.join(", "))+"\n        ")])]):t._e(),e.examples?n("div",{staticClass:"field is-horizontal"},[t._m(13,!0),n("div",{staticClass:"field-body"},t._l(e.examples,function(e,r){return n("prism",{key:r,attrs:{language:"json"}},[t._v(t._s(t._f("stringify")(e)))])}))]):t._e()])])})],2)};r._withStripped=!0;var i={render:r,staticRenderFns:[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Description:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Parent:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Type:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Format:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Possible values:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Defaults to:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Maximum length:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Restriction on subfields:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Minimum amount of subfields:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Minimum amount of items:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Allows additional fields:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Restriction with boolean logic:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Required fields:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Example:")])])}]};e.a=i},Dc0G:function(t,e,n){(function(t){var r=n("blYT"),i="object"==typeof e&&e&&!e.nodeType&&e,a=i&&"object"==typeof t&&t&&!t.nodeType&&t,o=a&&a.exports===i&&r.process,s=function(){try{return o&&o.binding&&o.binding("util")}catch(t){}}();t.exports=s}).call(e,n("3IRH")(t))},Dc7M:function(t,e,n){var r=n("Hxdr"),i=n("Fkvj"),a=n("Vi3P"),o=n("bIjD"),s=n("tv3T"),c=n("dYhQ"),u=n("2N6f"),l=n("xond"),f=u(function(t,e){var n={};if(null==t)return n;var u=!1;e=r(e,function(e){return e=o(e,t),u||(u=e.length>1),e}),s(t,l(t),n),u&&(n=i(n,7,c));for(var f=e.length;f--;)a(n,e[f]);return n});t.exports=f},Dv2r:function(t,e,n){var r=n("pTUa");t.exports=function(t,e){var n=r(this,t),i=n.size;return n.set(t,e),this.size+=n.size==i?0:1,this}},E4Hj:function(t,e){t.exports=function(t){return this.__data__.get(t)}},FCuZ:function(t,e,n){var r=n("uIr7"),i=n("NGEn");t.exports=function(t,e,n){var a=e(t);return i(t)?a:r(a,n(t))}},Fkvj:function(t,e,n){var r=n("bJWQ"),i=n("PqYH"),a=n("i4ON"),o=n("jD7S"),s=n("py9u"),c=n("mKB/"),u=n("hrPF"),l=n("Nkkh"),f=n("1QDk"),p=n("MoMe"),d=n("xond"),v=n("gHOb"),h=n("UfSK"),m=n("5/Qr"),b=n("WQFf"),y=n("NGEn"),_=n("ggOT"),g=n("yCNF"),x=n("ktak"),j=1,C=2,O=4,w="[object Arguments]",k="[object Function]",T="[object GeneratorFunction]",P="[object Object]",A={};A[w]=A["[object Array]"]=A["[object ArrayBuffer]"]=A["[object DataView]"]=A["[object Boolean]"]=A["[object Date]"]=A["[object Float32Array]"]=A["[object Float64Array]"]=A["[object Int8Array]"]=A["[object Int16Array]"]=A["[object Int32Array]"]=A["[object Map]"]=A["[object Number]"]=A[P]=A["[object RegExp]"]=A["[object Set]"]=A["[object String]"]=A["[object Symbol]"]=A["[object Uint8Array]"]=A["[object Uint8ClampedArray]"]=A["[object Uint16Array]"]=A["[object Uint32Array]"]=!0,A["[object Error]"]=A[k]=A["[object WeakMap]"]=!1,t.exports=function t(e,n,E,S,I,M){var F,$=n&j,D=n&C,z=n&O;if(E&&(F=I?E(e,S,I,M):E(e)),void 0!==F)return F;if(!g(e))return e;var N=y(e);if(N){if(F=h(e),!$)return u(e,F)}else{var U=v(e),Q=U==k||U==T;if(_(e))return c(e,$);if(U==P||U==w||Q&&!I){if(F=D||Q?{}:b(e),!$)return D?f(e,s(F,e)):l(e,o(F,e))}else{if(!A[U])return I?e:{};F=m(e,U,t,$)}}M||(M=new r);var G=M.get(e);if(G)return G;M.set(e,F);var H=z?D?d:p:D?keysIn:x,L=N?void 0:H(e);return i(L||e,function(r,i){L&&(r=e[i=r]),a(F,i,t(r,n,E,i,e,M))}),F}},Fp5l:function(t,e,n){var r=n("bGc4"),i=n("UnEC");t.exports=function(t){return i(t)&&r(t)}},G0Wc:function(t,e,n){var r=n("yCNF"),i=n("HT7L"),a=n("8gK5"),o=Object.prototype.hasOwnProperty;t.exports=function(t){if(!r(t))return a(t);var e=i(t),n=[];for(var s in t)("constructor"!=s||!e&&o.call(t,s))&&n.push(s);return n}},G2xm:function(t,e){t.exports=function(t){return this.__data__.has(t)}},Gs0Q:function(t,e,n){"use strict";e.a={name:"schemaToc",props:{tag:{type:String,default:"li"},schema:{type:Object,required:!0}}}},Gu7T:function(t,e,n){"use strict";e.__esModule=!0;var r,i=n("c/Tr"),a=(r=i)&&r.__esModule?r:{default:r};e.default=function(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e<t.length;e++)n[e]=t[e];return n}return(0,a.default)(t)}},HAGj:function(t,e,n){var r=n("i4ON"),i=n("bIjD"),a=n("ZGh9"),o=n("yCNF"),s=n("Ubhr");t.exports=function(t,e,n,c){if(!o(t))return t;for(var u=-1,l=(e=i(e,t)).length,f=l-1,p=t;null!=p&&++u<l;){var d=s(e[u]),v=n;if(u!=f){var h=p[d];void 0===(v=c?c(h,d,p):void 0)&&(v=o(h)?h:a(e[u+1])?[]:{})}r(p,d,v),p=p[d]}return t}},HN2V:function(t,e,n){var r=n("HbnZ"),i=n("0DSl")(function(t,e,n){r(t,e,n)});t.exports=i},HT7L:function(t,e){var n=Object.prototype;t.exports=function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||n)}},HbnZ:function(t,e,n){var r=n("bJWQ"),i=n("O1jc"),a=n("rpnb"),o=n("jMi8"),s=n("yCNF"),c=n("t8rQ");t.exports=function t(e,n,u,l,f){e!==n&&a(n,function(a,c){if(s(a))f||(f=new r),o(e,n,c,u,t,l,f);else{var p=l?l(e[c],a,c+"",e,n,f):void 0;void 0===p&&(p=a),i(e,c,p)}},c)}},Hxdr:function(t,e){t.exports=function(t,e){for(var n=-1,r=null==t?0:t.length,i=Array(r);++n<r;)i[n]=e(t[n],n,t);return i}},ICSD:function(t,e,n){var r=n("ITwD"),i=n("mTAn");t.exports=function(t,e){var n=i(t,e);return r(n)?n:void 0}},ITwD:function(t,e,n){var r=n("gGqR"),i=n("eFps"),a=n("yCNF"),o=n("Ai/T"),s=/^\[object .+?Constructor\]$/,c=Function.prototype,u=Object.prototype,l=c.toString,f=u.hasOwnProperty,p=RegExp("^"+l.call(f).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=function(t){return!(!a(t)||i(t))&&(r(t)?p:s).test(o(t))}},"Ilb/":function(t,e,n){var r=n("Kzd6");t.exports=function(t,e){var n=e?r(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}},JBvZ:function(t,e,n){var r=n("imBK");t.exports=function(t){var e=this.__data__,n=r(e,t);return n<0?void 0:e[n][1]}},Jqj6:function(t,e,n){var r=n("U7Aq"),i=n("3rZI"),a=n("WFiI"),o=1;t.exports=function(t,e,n){var s=e?n(a(t),o):a(t);return i(s,r,new t.constructor)}},KmWZ:function(t,e,n){var r=n("duB3");t.exports=function(){this.__data__=new r,this.size=0}},Kzd6:function(t,e,n){var r=n("qwTf");t.exports=function(t){var e=new t.constructor(t.byteLength);return new r(e).set(new r(t)),e}},LJry:function(t,e,n){"use strict";var r={functional:!0,props:{code:{type:String},language:{type:String,default:"markup"}},render:function(t,e){var n=e.props.code||e.children[0].text,r=e.props.language,i=Prism.languages[r],a="language-"+r;return t("pre",function(t){for(var e=arguments,n=1;n<arguments.length;n++)for(var r in arguments[n])t[r]=e[n][r];return t}({},e.data,{class:[e.data.class,a]}),[t("code",{class:a,domProps:{innerHTML:Prism.highlight(n,i)}})])}};t.exports=r},Lw7C:function(t,e,n){(t.exports=n("YHym")(!1)).push([t.i,"@keyframes spinAround{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}",""])},M1c9:function(t,e){t.exports=function(t,e,n){var r=-1,i=t.length;e<0&&(e=-e>i?0:i+e),(n=n>i?i:n)<0&&(n+=i),i=e>n?0:n-e>>>0,e>>>=0;for(var a=Array(i);++r<i;)a[r]=t[r+e];return a}},MoMe:function(t,e,n){var r=n("FCuZ"),i=n("l9Lx"),a=n("ktak");t.exports=function(t){return r(t,a,i)}},NGEn:function(t,e){var n=Array.isArray;t.exports=n},NVTU:function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"card collapsibleCard",class:{collapsed:!t.expanded}},[t.$slots.header?n("header",{staticClass:"card-header",on:{click:function(e){e.preventDefault(),t.toggle()}}},[n("p",{staticClass:"card-header-title"},[!t.$slots.headerCollapsed||t.expanded?t._t("header"):t._t("headerCollapsed")],2),n("a",{staticClass:"card-header-icon"},[n("span",{staticClass:"icon"},[n("i",{staticClass:"fa",class:{"fa-angle-down":t.expanded,"fa-angle-up":!t.expanded}})])])]):t._e(),n("transition",{attrs:{name:"rollup","leave-active-class":"collapsing","enter-active-class":"collapsing"},on:{"before-leave":t.beforeleave,leave:t.leave,"after-leave":t.afterleave,"before-enter":t.beforeenter,enter:t.enter,"after-enter":t.afterenter}},[n("div",{directives:[{name:"show",rawName:"v-show",value:t.expanded,expression:"expanded"}]},[n("div",{staticClass:"card-content"},[t._t("default")],2)])])],1)};r._withStripped=!0;var i={render:r,staticRenderFns:[]};e.a=i},NkRn:function(t,e,n){var r=n("TQ3y").Symbol;t.exports=r},Nkkh:function(t,e,n){var r=n("tv3T"),i=n("l9Lx");t.exports=function(t,e){return r(t,i(t),e)}},NqZt:function(t,e){t.exports=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}},O1jc:function(t,e,n){var r=n("nw3t"),i=n("22B7");t.exports=function(t,e,n){(void 0===n||i(t[e],n))&&(void 0!==n||e in t)||r(t,e,n)}},POb3:function(t,e,n){var r=n("ICSD")(n("TQ3y"),"Map");t.exports=r},PqYH:function(t,e){t.exports=function(t,e){for(var n=-1,r=null==t?0:t.length;++n<r&&!1!==e(t[n],n,t););return t}},Q2wK:function(t,e,n){var r=n("8AZL"),i=Math.max;t.exports=function(t,e,n){return e=i(void 0===e?t.length-1:e,0),function(){for(var a=arguments,o=-1,s=i(a.length-e,0),c=Array(s);++o<s;)c[o]=a[e+o];o=-1;for(var u=Array(e+1);++o<e;)u[o]=a[o];return u[e]=n(c),r(t,this,u)}}},Q7hp:function(t,e,n){var r=n("uCi2");t.exports=function(t,e,n){var i=null==t?void 0:r(t,e);return void 0===i?n:i}},Qp3N:function(t,e,n){var r=n("NkRn"),i=n("1Yb9"),a=n("NGEn"),o=r?r.isConcatSpreadable:void 0;t.exports=function(t){return a(t)||i(t)||!!(o&&t&&t[o])}},RGrk:function(t,e,n){var r=n("dCZQ"),i=Object.prototype.hasOwnProperty;t.exports=function(t){var e=this.__data__;return r?void 0!==e[t]:i.call(e,t)}},Rh28:function(t,e){var n=9007199254740991;t.exports=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=n}},S7p9:function(t,e){t.exports=function(t){return function(e){return t(e)}}},"T/bE":function(t,e,n){var r=n("94sX"),i=n("ue/d"),a=n("eVIm"),o=n("RGrk"),s=n("Z2pD");function c(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}c.prototype.clear=r,c.prototype.delete=i,c.prototype.get=a,c.prototype.has=o,c.prototype.set=s,t.exports=c},T9Hf:function(t,e,n){"use strict";var r=n("77aO"),i=n("NVTU"),a=!1;var o=function(t){a||n("WVEp")},s=n("VU/8")(r.a,i.a,!1,o,null,null);s.options.__file="components\\collapsibleCard.vue",e.a=s.exports},TQ3y:function(t,e,n){var r=n("blYT"),i="object"==typeof self&&self&&self.Object===Object&&self,a=r||i||Function("return this")();t.exports=a},TlPD:function(t,e,n){var r=n("tv3T"),i=n("t8rQ");t.exports=function(t){return r(t,i(t))}},TmV0:function(t,e,n){n("fZOM"),t.exports=n("FeBl").Object.values},U7Aq:function(t,e){t.exports=function(t,e){return t.set(e[0],e[1]),t}},Ubhr:function(t,e,n){var r=n("6MiT"),i=1/0;t.exports=function(t){if("string"==typeof t||r(t))return t;var e=t+"";return"0"==e&&1/t==-i?"-0":e}},UfSK:function(t,e){var n=Object.prototype.hasOwnProperty;t.exports=function(t){var e=t.length,r=t.constructor(e);return e&&"string"==typeof t[0]&&n.call(t,"index")&&(r.index=t.index,r.input=t.input),r}},UnEC:function(t,e){t.exports=function(t){return null!=t&&"object"==typeof t}},UnLw:function(t,e,n){var r=/^\./,i=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,a=/\\(\\)?/g,o=n("fMqj")(function(t){var e=[];return r.test(t)&&e.push(""),t.replace(i,function(t,n,r,i){e.push(r?i.replace(a,"$1"):n||t)}),e});t.exports=o},VORN:function(t,e,n){var r=n("yCNF"),i=Object.create,a=function(){function t(){}return function(e){if(!r(e))return{};if(i)return i(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();t.exports=a},Vi3P:function(t,e,n){var r=n("bIjD"),i=n("oqL2"),a=n("Cf65"),o=n("Ubhr");t.exports=function(t,e){return e=r(e,t),null==(t=a(t,e))||delete t[o(i(e))]}},W3Iv:function(t,e,n){t.exports={default:n("wEtr"),__esModule:!0}},W529:function(t,e,n){var r=n("f931")(Object.keys,Object);t.exports=r},WFiI:function(t,e){t.exports=function(t){var e=-1,n=Array(t.size);return t.forEach(function(t,r){n[++e]=[r,t]}),n}},WHce:function(t,e,n){var r=n("037f"),i=n("Zk5a")(r);t.exports=i},WQFf:function(t,e,n){var r=n("VORN"),i=n("vi0E"),a=n("HT7L");t.exports=function(t){return"function"!=typeof t.constructor||a(t)?{}:r(i(t))}},WVEp:function(t,e,n){var r=n("a3hs");"string"==typeof r&&(r=[[t.i,r,""]]),r.locals&&(t.exports=r.locals);n("rjj0")("52cedc5e",r,!1)},Wce4:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n("tN9E"),i=n("pfrz"),a=n("VU/8")(r.a,i.a,!1,null,null,null);a.options.__file="pages\\specification\\v3\\machine-message.vue",e.default=a.exports},WxI4:function(t,e){t.exports=function(){this.__data__=[],this.size=0}},WyC4:function(t,e){var n=/\w*$/;t.exports=function(t){var e=new t.constructor(t.source,n.exec(t));return e.lastIndex=t.lastIndex,e}},Xd32:function(t,e,n){n("+tPU"),n("zQR9"),t.exports=n("5PlU")},YeCl:function(t,e,n){var r=n("CW5P"),i=n("A9mX"),a=n("v8Dt"),o=n("agim"),s=n("Dv2r");function c(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}c.prototype.clear=r,c.prototype.delete=i,c.prototype.get=a,c.prototype.has=o,c.prototype.set=s,t.exports=c},YkxI:function(t,e,n){var r=n("wSKX"),i=n("Q2wK"),a=n("WHce");t.exports=function(t,e){return a(i(t,e,r),t+"")}},YsVG:function(t,e,n){var r=n("z4hc"),i=n("S7p9"),a=n("Dc0G"),o=a&&a.isTypedArray,s=o?i(o):r;t.exports=s},Z2pD:function(t,e,n){var r=n("dCZQ"),i="__lodash_hash_undefined__";t.exports=function(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=r&&void 0===e?i:e,this}},ZGh9:function(t,e){var n=9007199254740991,r=/^(?:0|[1-9]\d*)$/;t.exports=function(t,e){return!!(e=null==e?n:e)&&("number"==typeof t||r.test(t))&&t>-1&&t%1==0&&t<e}},ZT2e:function(t,e,n){var r=n("o2mx");t.exports=function(t){return null==t?"":r(t)}},Zk5a:function(t,e){var n=800,r=16,i=Date.now;t.exports=function(t){var e=0,a=0;return function(){var o=i(),s=r-(o-a);if(a=o,s>0){if(++e>=n)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}},Zrlr:function(t,e,n){"use strict";e.__esModule=!0,e.default=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},a3hs:function(t,e,n){(t.exports=n("YHym")(!1)).push([t.i,"@keyframes spinAround{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}.card.collapsibleCard>header{cursor:pointer;background-color:#f5f5f5;border-bottom:1px solid hsla(0,0%,4%,.1)}.card.collapsibleCard>header .card-header-icon{text-decoration:none}.card.collapsibleCard>header .card-header-title{font-weight:400}.card.collapsibleCard>header p{margin-bottom:0}.card.collapsibleCard.collapsed header{border-bottom:none}.card.collapsibleCard>div.collapsing{position:relative;height:0;overflow:hidden;display:block;transition-property:height;transition-duration:.35s;transition-timing-function:ease}",""])},aCM0:function(t,e,n){var r=n("NkRn"),i=n("uLhX"),a=n("+66z"),o="[object Null]",s="[object Undefined]",c=r?r.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?s:o:c&&c in Object(t)?i(t):a(t)}},agim:function(t,e,n){var r=n("pTUa");t.exports=function(t){return r(this,t).has(t)}},bGc4:function(t,e,n){var r=n("gGqR"),i=n("Rh28");t.exports=function(t){return null!=t&&i(t.length)&&!r(t)}},bIbi:function(t,e,n){var r=n("ICSD")(n("TQ3y"),"WeakMap");t.exports=r},bIjD:function(t,e,n){var r=n("NGEn"),i=n("hIPy"),a=n("UnLw"),o=n("ZT2e");t.exports=function(t,e){return r(t)?t:i(t,e)?[t]:a(o(t))}},bJWQ:function(t,e,n){var r=n("duB3"),i=n("KmWZ"),a=n("NqZt"),o=n("E4Hj"),s=n("G2xm"),c=n("zpVT");function u(t){var e=this.__data__=new r(t);this.size=e.size}u.prototype.clear=i,u.prototype.delete=a,u.prototype.get=o,u.prototype.has=s,u.prototype.set=c,t.exports=u},bO0Y:function(t,e,n){var r=n("ICSD")(n("TQ3y"),"Promise");t.exports=r},"bXX+":function(t,e,n){"use strict";var r=n("jhkR"),i=n("fvMW"),a=n("VU/8")(r.a,i.a,!1,null,null,null);a.options.__file="components\\schemaLink.vue",e.a=a.exports},bklM:function(t,e,n){var r=n("Fkvj"),i=1,a=4;t.exports=function(t){return r(t,i|a)}},blYT:function(t,e,n){(function(e){var n="object"==typeof e&&e&&e.Object===Object&&e;t.exports=n}).call(e,n("DuR2"))},"c/Tr":function(t,e,n){t.exports={default:n("5zde"),__esModule:!0}},cER1:function(t,e,n){"use strict";var r=n("mvHQ"),i=n.n(r),a=n("fZjL"),o=n.n(a),s=n("Gu7T"),c=n.n(s),u=n("gRE1"),l=n.n(u),f=n("d7EF"),p=n.n(f),d=n("W3Iv"),v=n.n(d),h=n("T9Hf"),m=n("rVUV"),b=(n.n(m),n("Q7hp")),y=n.n(b),_=n("HN2V"),g=n.n(_),x=n("LJry"),j=n.n(x),C=n("lOo0"),O=n("bXX+"),w=n("mQxp"),k=n("4yG7"),T=n.n(k);e.a={props:{type:{type:String,required:!0},examples:{type:Object,required:!1,default:function(){return{}}}},data:function(){return{masterSchema:null,loading:!0}},created:function(){var t=this,e={date:{link:"https://tools.ietf.org/html/rfc3339#section-5.6",name:"RFC3339, 5.6"},email:{link:"https://tools.ietf.org/html/rfc5322#section-3.4.1",name:"RFC5322, 3.4.1"}};n("+99L")("./"+this.type+"_schema.json").then(function(e){return console.time("parsing Schema"),t.masterSchema=new C.a("$",null,e),v()(t.examples).forEach(function(e){var n=p()(e,2),r=n[0],i=n[1];y()(t.masterSchema,r)&&T()(t.masterSchema,r+".examples",i)}),console.timeEnd("parsing Schema"),t.loading=!1,e}).catch(function(t){throw t}),this.$static={formats:{"date-time":e.date,date:e.date,time:e.date,email:e.email}}},methods:{traverse:function(t,e){var n=this;t instanceof C.a?(e(t),v()(t).filter(function(t){var e=p()(t,2),n=e[0];e[1];return"$parent"!==n}).forEach(function(t){var r=p()(t,2),i=(r[0],r[1]);return n.traverse(i,e)})):t instanceof Array?t.forEach(function(t){return n.traverse(t,e)}):t instanceof Object&&l()(t).forEach(function(t){return n.traverse(t,e)})},simplifySchema:function(t){var e=function(t){return t.anyOf&&t.anyOf.indexOf(!0)>=0?[t,!0]:t.allOf&&t.allOf.indexOf(!1)>=0?[t,!1]:t.allOf&&t.allOf.length?[t,new C.a(t.$step,t.$parent,g.a.apply(void 0,[{}].concat(c()(t.allOf.map(function(t){return t.toJSON()})))))]:!0===t.not?[t,!1]:0===o()(t).filter(function(t){return"$"!==t[0]}).length?[t,!0]:null};return this.traverse(t,function(t){!function t(n){if(n){var r=p()(n,2),i=r[0],a=r[1],o=i.$parent;o&&T()(o.schema,o.path,a),i.$parent=null,t(e(o.schema))}}(e(t))}),t}},computed:{schemas:function(){if(!this.masterSchema)return null;var t={};return this.traverse(this.simplifySchema(this.masterSchema),function(e){t[e.$id]=e}),t}},filters:{stringify:function(t){return i()(t," ",2)},capitalize:function(t,e){return t?(t instanceof Array||(t=[t]),t.map(function(t){return""+t[0].toUpperCase()+t.slice(1)}).join(", ")):""}},components:{card:h.a,prism:j.a,schemaToc:w.a,schemaLink:O.a}}},d4US:function(t,e,n){var r=n("ICSD")(n("TQ3y"),"DataView");t.exports=r},d7EF:function(t,e,n){"use strict";e.__esModule=!0;var r=a(n("us/S")),i=a(n("BO1k"));function a(t){return t&&t.__esModule?t:{default:t}}e.default=function(){return function(t,e){if(Array.isArray(t))return t;if((0,r.default)(Object(t)))return function(t,e){var n=[],r=!0,a=!1,o=void 0;try{for(var s,c=(0,i.default)(t);!(r=(s=c.next()).done)&&(n.push(s.value),!e||n.length!==e);r=!0);}catch(t){a=!0,o=t}finally{try{!r&&c.return&&c.return()}finally{if(a)throw o}}return n}(t,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}()},dCZQ:function(t,e,n){var r=n("ICSD")(Object,"create");t.exports=r},dFpP:function(t,e,n){var r=n("imBK"),i=Array.prototype.splice;t.exports=function(t){var e=this.__data__,n=r(e,t);return!(n<0||(n==e.length-1?e.pop():i.call(e,n,1),--this.size,0))}},dYhQ:function(t,e,n){var r=n("9UkZ");t.exports=function(t){return r(t)?void 0:t}},deUO:function(t,e,n){var r=n("imBK");t.exports=function(t,e){var n=this.__data__,i=r(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this}},duB3:function(t,e,n){var r=n("WxI4"),i=n("dFpP"),a=n("JBvZ"),o=n("2Hvv"),s=n("deUO");function c(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}c.prototype.clear=r,c.prototype.delete=i,c.prototype.get=a,c.prototype.has=o,c.prototype.set=s,t.exports=c},eFps:function(t,e,n){var r,i=n("+gg+"),a=(r=/[^.]+$/.exec(i&&i.keys&&i.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"";t.exports=function(t){return!!a&&a in t}},eVIm:function(t,e,n){var r=n("dCZQ"),i="__lodash_hash_undefined__",a=Object.prototype.hasOwnProperty;t.exports=function(t){var e=this.__data__;if(r){var n=e[t];return n===i?void 0:n}return a.call(e,t)?e[t]:void 0}},f931:function(t,e){t.exports=function(t,e){return function(n){return t(e(n))}}},fBQ2:function(t,e,n){"use strict";var r=n("evD5"),i=n("X8DO");t.exports=function(t,e,n){e in t?r.f(t,e,i(0,n)):t[e]=n}},fMqj:function(t,e,n){var r=n("zGZ6"),i=500;t.exports=function(t){var e=r(t,function(t){return n.size===i&&n.clear(),t}),n=e.cache;return e}},fZOM:function(t,e,n){var r=n("kM2E"),i=n("mbce")(!1);r(r.S,"Object",{values:function(t){return i(t)}})},fvMW:function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[t._t("default"),!0===t.link?[t._v("\n    yes \n  ")]:!1===t.link?[t._v("\n    no \n  ")]:t.isSchema(t.link)?[n("nuxt-link",{attrs:{to:"#p-"+t.link.$id}},[n("span",{domProps:{innerHTML:t._s(t.link.getPath())}})])]:t.link instanceof Array?n("ul",t._l(t.link,function(e){return n("li",{key:e.$id},[n("nuxt-link",{attrs:{to:"#p-"+e.$id}},[n("span",{domProps:{innerHTML:t._s(e.getPath())}})])],1)})):t.link instanceof Object?n("ul",t._l(t.link,function(e,r){return n("li",[n("nuxt-link",{attrs:{to:"#p-"+e.$id}},[t._v("\n        "+t._s(r)+"\n      ")])],1)})):t._e()],2)};r._withStripped=!0;var i={render:r,staticRenderFns:[]};e.a=i},gGqR:function(t,e,n){var r=n("aCM0"),i=n("yCNF"),a="[object AsyncFunction]",o="[object Function]",s="[object GeneratorFunction]",c="[object Proxy]";t.exports=function(t){if(!i(t))return!1;var e=r(t);return e==o||e==s||e==a||e==c}},gHOb:function(t,e,n){var r=n("d4US"),i=n("POb3"),a=n("bO0Y"),o=n("5N57"),s=n("bIbi"),c=n("aCM0"),u=n("Ai/T"),l="[object Promise]",f="[object WeakMap]",p="[object DataView]",d=u(r),v=u(i),h=u(a),m=u(o),b=u(s),y=c;(r&&y(new r(new ArrayBuffer(1)))!=p||i&&"[object Map]"!=y(new i)||a&&y(a.resolve())!=l||o&&"[object Set]"!=y(new o)||s&&y(new s)!=f)&&(y=function(t){var e=c(t),n="[object Object]"==e?t.constructor:void 0,r=n?u(n):"";if(r)switch(r){case d:return p;case v:return"[object Map]";case h:return l;case m:return"[object Set]";case b:return f}return e}),t.exports=y},gRE1:function(t,e,n){t.exports={default:n("TmV0"),__esModule:!0}},gSvA:function(t,e,n){var r=n("kM2E"),i=n("mbce")(!0);r(r.S,"Object",{entries:function(t){return i(t)}})},ggOT:function(t,e,n){(function(t){var r=n("TQ3y"),i=n("gwcX"),a="object"==typeof e&&e&&!e.nodeType&&e,o=a&&"object"==typeof t&&t&&!t.nodeType&&t,s=o&&o.exports===a?r.Buffer:void 0,c=(s?s.isBuffer:void 0)||i;t.exports=c}).call(e,n("3IRH")(t))},gwcX:function(t,e){t.exports=function(){return!1}},hIPy:function(t,e,n){var r=n("NGEn"),i=n("6MiT"),a=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,o=/^\w*$/;t.exports=function(t,e){if(r(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!i(t))||o.test(t)||!a.test(t)||null!=e&&t in Object(e)}},hrPF:function(t,e){t.exports=function(t,e){var n=-1,r=t.length;for(e||(e=Array(r));++n<r;)e[n]=t[n];return e}},hvFG:function(t,e,n){"use strict";var r=function(){var t=this.$createElement,e=this._self._c||t;return e(this.tag,{tag:"component"},[e("nuxt-link",{attrs:{to:"#p-"+this.schema.$id}},[e("span",{domProps:{innerHTML:this._s(this.schema.$step)}})]),this.schema.properties||this.schema.patternProperties||this.schema.items?e("ul",[this._l(this.schema.properties,function(t,n){return e("schemaToc",{key:n,attrs:{schema:t}})}),this._l(this.schema.patternProperties,function(t,n){return e("schemaToc",{key:n,attrs:{schema:t}})}),this.schema.items?[this.schema.items instanceof Array?this._l(this.schema.items,function(t,n){return e("schemaToc",{key:n,attrs:{schema:t}})}):e("schemaToc",{attrs:{schema:this.schema.items}})]:this._e()],2):this._e()],1)};r._withStripped=!0;var i={render:r,staticRenderFns:[]};e.a=i},i4ON:function(t,e,n){var r=n("nw3t"),i=n("22B7"),a=Object.prototype.hasOwnProperty;t.exports=function(t,e,n){var o=t[e];a.call(t,e)&&i(o,n)&&(void 0!==n||e in t)||r(t,e,n)}},imBK:function(t,e,n){var r=n("22B7");t.exports=function(t,e){for(var n=t.length;n--;)if(r(t[n][0],e))return n;return-1}},jD7S:function(t,e,n){var r=n("tv3T"),i=n("ktak");t.exports=function(t,e){return t&&r(e,i(e),t)}},jMi8:function(t,e,n){var r=n("O1jc"),i=n("mKB/"),a=n("Ilb/"),o=n("hrPF"),s=n("WQFf"),c=n("1Yb9"),u=n("NGEn"),l=n("Fp5l"),f=n("ggOT"),p=n("gGqR"),d=n("yCNF"),v=n("9UkZ"),h=n("YsVG"),m=n("TlPD");t.exports=function(t,e,n,b,y,_,g){var x=t[n],j=e[n],C=g.get(j);if(C)r(t,n,C);else{var O=_?_(x,j,n+"",t,e,g):void 0,w=void 0===O;if(w){var k=u(j),T=!k&&f(j),P=!k&&!T&&h(j);O=j,k||T||P?u(x)?O=x:l(x)?O=o(x):T?(w=!1,O=i(j,!0)):P?(w=!1,O=a(j,!0)):O=[]:v(j)||c(j)?(O=x,c(x)?O=m(x):(!d(x)||b&&p(x))&&(O=s(j))):w=!1}w&&(g.set(j,O),y(O,j,b,_,g),g.delete(j)),r(t,n,O)}}},jhkR:function(t,e,n){"use strict";var r=n("lOo0");e.a={props:{link:{required:!0}},methods:{isSchema:function(t){return t instanceof r.a}}}},ktak:function(t,e,n){var r=n("7e4z"),i=n("/GnY"),a=n("bGc4");t.exports=function(t){return a(t)?r(t):i(t)}},l9Lx:function(t,e,n){var r=n("lb6C"),i=n("C0hh"),a=Object.prototype.propertyIsEnumerable,o=Object.getOwnPropertySymbols,s=o?function(t){return null==t?[]:(t=Object(t),r(o(t),function(e){return a.call(t,e)}))}:i;t.exports=s},lOo0:function(t,e,n){"use strict";var r=n("woOf"),i=n.n(r),a=n("d7EF"),o=n.n(a),s=n("W3Iv"),c=n.n(s),u=n("Zrlr"),l=n.n(u),f=n("wxAW"),p=n.n(f),d=n("bklM"),v=n.n(d),h=n("rVUV"),m=n.n(h),b=n("Dc7M"),y=n.n(b),_=function(){function t(e,n,r){l()(this,t),this.$id=t.idx++,this.$step=e,this.$parent=n,r&&this.parseFrom(r)}return p()(t,[{key:"toJSON",value:function(){var e=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this;return m()(n,function(n,r,i,a){if(n instanceof t)return c()(n).filter(function(t){var e=o()(t,2),n=e[0];e[1];return["$id","$step","$parent"].indexOf(n)<0}).reduce(function(t,n){var r=o()(n,2),i=r[0],a=r[1];return t[i]=e.toJSON(a),t},{})})}},{key:"getPath",value:function(){var t="";return this.$parent&&(t+=this.$parent.schema.getPath(),"object"===this.$parent.schema.type&&(t+=".")),t+=this.$step,this.getPath=function(){return t},t}},{key:"parseFrom",value:function(e){var n=this;return!0===e?e={}:!1===e&&(e={not:!0}),i()(this,y()(v()(e),["$step","$id","$parent","items","properties","patternProperties","additionalItems","additionalProperties","contains","propertyNames","not","allOf","anyOf","oneOf"])),e.items&&(e.items instanceof Array?this.items=e.items.map(function(r,i){return new t("["+i+"]",{schema:n,path:"items["+i+"]"}).parseFrom(e.items[i])}):this.items=new t("[*]",{schema:this,path:"items"}).parseFrom(e.items)),["properties","patternProperties"].filter(function(t){return e.hasOwnProperty(t)}).forEach(function(r){return c()(e[r]).forEach(function(e,i){var a=o()(e,2),s=a[0],c=a[1];n[r]=n[r]||{},n[r][s]=new t(""+("patternProperties"===r?"&lt;field&gt;":s),{schema:n,path:r+'["'+s+'"]'}).parseFrom(c)})}),["additionalItems","additionalProperties","contains","propertyNames","not"].filter(function(t){return e.hasOwnProperty(t)}).forEach(function(r){n[r]=new t("+",{schema:n,path:r}).parseFrom(e[r])}),["allOf","anyOf","oneOf"].filter(function(t){return e.hasOwnProperty(t)}).forEach(function(r){return e[r].forEach(function(e,i){n[r]=n[r]||[],n[r].push(new t("("+i+")"+("anyOf"===r?"?":"+"),{schema:n,path:r+"["+i+"]"}).parseFrom(e))})}),this}}]),t}();_.idx=0,e.a=_},lb6C:function(t,e){t.exports=function(t,e){for(var n=-1,r=null==t?0:t.length,i=0,a=[];++n<r;){var o=t[n];e(o,n,t)&&(a[i++]=o)}return a}},"mKB/":function(t,e,n){(function(t){var r=n("TQ3y"),i="object"==typeof e&&e&&!e.nodeType&&e,a=i&&"object"==typeof t&&t&&!t.nodeType&&t,o=a&&a.exports===i?r.Buffer:void 0,s=o?o.allocUnsafe:void 0;t.exports=function(t,e){if(e)return t.slice();var n=t.length,r=s?s(n):new t.constructor(n);return t.copy(r),r}}).call(e,n("3IRH")(t))},mQxp:function(t,e,n){"use strict";var r=n("Gs0Q"),i=n("hvFG"),a=!1;var o=function(t){a||n("AxiT")},s=n("VU/8")(r.a,i.a,!1,o,null,null);s.options.__file="components\\schemaToc.vue",e.a=s.exports},mTAn:function(t,e){t.exports=function(t,e){return null==t?void 0:t[e]}},mbce:function(t,e,n){var r=n("lktj"),i=n("TcQ7"),a=n("NpIQ").f;t.exports=function(t){return function(e){for(var n,o=i(e),s=r(o),c=s.length,u=0,l=[];c>u;)a.call(o,n=s[u++])&&l.push(t?[n,o[n]]:o[n]);return l}}},mgnk:function(t,e,n){var r=n("aCM0"),i=n("UnEC"),a="[object Arguments]";t.exports=function(t){return i(t)&&r(t)==a}},nWuj:function(t,e){t.exports=function(t,e){return t.add(e),t}},nw3t:function(t,e,n){var r=n("p0bc");t.exports=function(t,e,n){"__proto__"==e&&r?r(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}},o2mx:function(t,e,n){var r=n("NkRn"),i=n("Hxdr"),a=n("NGEn"),o=n("6MiT"),s=1/0,c=r?r.prototype:void 0,u=c?c.toString:void 0;t.exports=function t(e){if("string"==typeof e)return e;if(a(e))return i(e,t)+"";if(o(e))return u?u.call(e):"";var n=e+"";return"0"==n&&1/e==-s?"-0":n}},octw:function(t,e){t.exports=function(t){var e=-1,n=Array(t.size);return t.forEach(function(t){n[++e]=t}),n}},oqL2:function(t,e){t.exports=function(t){var e=null==t?0:t.length;return e?t[e-1]:void 0}},p0bc:function(t,e,n){var r=n("ICSD"),i=function(){try{var t=r(Object,"defineProperty");return t({},"",{}),t}catch(t){}}();t.exports=i},pTUa:function(t,e,n){var r=n("/I3N");t.exports=function(t,e){var n=t.__data__;return r(e)?n["string"==typeof e?"string":"hash"]:n.map}},pfrz:function(t,e,n){"use strict";var r=function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"machine-message content"},[this._m(0),e("p",[this._v("The main purpose of the machine message format is to allow devices and integrators to send messages containing an interpretation of measurement data or status.")]),e("img",{staticClass:"is-centered",attrs:{src:"images/specification/v3/messagePayload.svg",alt:"Class diagram of the message payload",title:"Class diagram of the message payload"}}),e("schemaDetail",{attrs:{type:"v3/message",examples:this.$static.examples}},[e("card",{attrs:{collapsed:!0}},[e("template",{slot:"header"},[this._v("\n        Minimal message example\n      ")]),e("prism",{attrs:{language:"json"}},[this._v(this._s(this._f("stringify")(this.$static.message)))])],2),e("card",{attrs:{collapsed:!0}},[e("template",{slot:"header"},[this._v("\n        Multiple message example\n      ")]),e("prism",{attrs:{language:"json"}},[this._v(this._s(this._f("stringify")(this.$static.multipleMachineMessages)))])],2)],1)],1)};r._withStripped=!0;var i={render:r,staticRenderFns:[function(){var t=this.$createElement,e=this._self._c||t;return e("h1",[e("a",{attrs:{id:"Message-Payload",title:"Machine Message Payload"}}),this._v("\n    Machine Message Payload\n  ")])}]};e.a=i},py9u:function(t,e,n){var r=n("tv3T"),i=n("t8rQ");t.exports=function(t,e){return t&&r(e,i(e),t)}},qwTf:function(t,e,n){var r=n("TQ3y").Uint8Array;t.exports=r},qyJz:function(t,e,n){"use strict";var r=n("+ZMJ"),i=n("kM2E"),a=n("sB3e"),o=n("msXi"),s=n("Mhyx"),c=n("QRG4"),u=n("fBQ2"),l=n("3fs2");i(i.S+i.F*!n("dY0y")(function(t){Array.from(t)}),"Array",{from:function(t){var e,n,i,f,p=a(t),d="function"==typeof this?this:Array,v=arguments.length,h=v>1?arguments[1]:void 0,m=void 0!==h,b=0,y=l(p);if(m&&(h=r(h,v>2?arguments[2]:void 0,2)),void 0==y||d==Array&&s(y))for(n=new d(e=c(p.length));e>b;b++)u(n,b,m?h(p[b],b):p[b]);else for(f=y.call(p),n=new d;!(i=f.next()).done;b++)u(n,b,m?o(f,h,[i.value,b],!0):i.value);return n.length=b,n}})},rCVp:function(t,e,n){var r=n("1C79");t.exports=function(t){return null!=t&&t.length?r(t,1):[]}},rVUV:function(t,e,n){var r=n("Fkvj"),i=1,a=4;t.exports=function(t,e){return r(t,i|a,e="function"==typeof e?e:void 0)}},rpnb:function(t,e,n){var r=n("tHks")();t.exports=r},s8mu:function(t,e,n){"use strict";var r=n("cER1"),i=n("D9sP"),a=!1;var o=function(t){a||n("A51D")},s=n("VU/8")(r.a,i.a,!1,o,null,null);s.options.__file="components\\schemaDetail.vue",e.a=s.exports},t8rQ:function(t,e,n){var r=n("7e4z"),i=n("G0Wc"),a=n("bGc4");t.exports=function(t){return a(t)?r(t,!0):i(t)}},tHks:function(t,e){t.exports=function(t){return function(e,n,r){for(var i=-1,a=Object(e),o=r(e),s=o.length;s--;){var c=o[t?s:++i];if(!1===n(a[c],c,a))break}return e}}},tN9E:function(t,e,n){"use strict";var r=n("mvHQ"),i=n.n(r),a=n("d7EF"),o=n.n(a),s=n("Dd8w"),c=n.n(s),u=n("W3Iv"),l=n.n(u),f=n("LJry"),p=n.n(f),d=n("T9Hf"),v=n("Q7hp"),h=n.n(v),m=n("s8mu");e.a={head:function(){return{title:"Specification for machine messages"}},created:function(){var t=this,e=new Date,n="a4927dad-58d4-4580-b460-79cefd56775b";this.$static={message:{"content-spec":"urn:spec://eclipse.org/unide/machine-message#v3",device:{deviceID:n},messages:[{ts:e.toISOString(),code:"190ABT"}]},multipleMachineMessages:{"content-spec":"urn:spec://eclipse.org/unide/machine-message#v3",device:{deviceID:n,operationalStatus:"normal",metaData:{swVersion:"2.0.3.13",swBuildID:"41535"}},messages:[{origin:"sensor-id-992.2393.22",ts:e.toISOString(),type:"DEVICE",severity:"HIGH",code:"190ABT",title:"control board damaged",description:"Electronic control board or its electrical connections are damaged",hint:"Check the control board",metaData:{firmware:"20130304_22.020"}},{ts:new Date(e.valueOf()+100).toISOString(),type:"TECHNICAL_INFO",severity:"HIGH",code:"33-02",title:"Disk size limit reached",description:"Disk size has reached limit. Unable to write log files."}]}},this.$static.examples=l()(c()({},["content-spec","device","device.deviceID","device.metaData","device.operationalStatus","messages","messages[0].ts","messages[0].origin","messages[0].type","messages[0].severity","messages[0].code","messages[0].title","messages[0].description","messages[0].hint","messages[0].metaData"].reduce(function(t,e){return t[e.replace(/(^|\.)/g,"$1properties.").replace(/\[[^]]*]/g,".items")]=e,t},{}))).reduce(function(e,n){var r=o()(n,2),i=r[0],a=r[1],s=h()(t.$static.message,a)||h()(t.$static.multipleMachineMessages,a);return s&&(e[i]=[s]),e},{})},filters:{stringify:function(t){return i()(t," ",2)}},components:{card:d.a,prism:p.a,schemaDetail:m.a}}},tv3T:function(t,e,n){var r=n("i4ON"),i=n("nw3t");t.exports=function(t,e,n,a){var o=!n;n||(n={});for(var s=-1,c=e.length;++s<c;){var u=e[s],l=a?a(n[u],t[u],u,n,t):void 0;void 0===l&&(l=t[u]),o?i(n,u,l):r(n,u,l)}return n}},uCi2:function(t,e,n){var r=n("bIjD"),i=n("Ubhr");t.exports=function(t,e){for(var n=0,a=(e=r(e,t)).length;null!=t&&n<a;)t=t[i(e[n++])];return n&&n==a?t:void 0}},uIr7:function(t,e){t.exports=function(t,e){for(var n=-1,r=e.length,i=t.length;++n<r;)t[i+n]=e[n];return t}},uLhX:function(t,e,n){var r=n("NkRn"),i=Object.prototype,a=i.hasOwnProperty,o=i.toString,s=r?r.toStringTag:void 0;t.exports=function(t){var e=a.call(t,s),n=t[s];try{t[s]=void 0;var r=!0}catch(t){}var i=o.call(t);return r&&(e?t[s]=n:delete t[s]),i}},"ue/d":function(t,e){t.exports=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}},uieL:function(t,e){t.exports=function(t,e){for(var n=-1,r=Array(t);++n<t;)r[n]=e(n);return r}},"us/S":function(t,e,n){t.exports={default:n("Xd32"),__esModule:!0}},v8Dt:function(t,e,n){var r=n("pTUa");t.exports=function(t){return r(this,t).get(t)}},vi0E:function(t,e,n){var r=n("f931")(Object.getPrototypeOf,Object);t.exports=r},wEtr:function(t,e,n){n("gSvA"),t.exports=n("FeBl").Object.entries},wSKX:function(t,e){t.exports=function(t){return t}},wxAW:function(t,e,n){"use strict";e.__esModule=!0;var r,i=n("C4MV"),a=(r=i)&&r.__esModule?r:{default:r};e.default=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),(0,a.default)(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}()},xond:function(t,e,n){var r=n("FCuZ"),i=n("09Qt"),a=n("t8rQ");t.exports=function(t){return r(t,a,i)}},yCNF:function(t,e){t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},z4hc:function(t,e,n){var r=n("aCM0"),i=n("Rh28"),a=n("UnEC"),o={};o["[object Float32Array]"]=o["[object Float64Array]"]=o["[object Int8Array]"]=o["[object Int16Array]"]=o["[object Int32Array]"]=o["[object Uint8Array]"]=o["[object Uint8ClampedArray]"]=o["[object Uint16Array]"]=o["[object Uint32Array]"]=!0,o["[object Arguments]"]=o["[object Array]"]=o["[object ArrayBuffer]"]=o["[object Boolean]"]=o["[object DataView]"]=o["[object Date]"]=o["[object Error]"]=o["[object Function]"]=o["[object Map]"]=o["[object Number]"]=o["[object Object]"]=o["[object RegExp]"]=o["[object Set]"]=o["[object String]"]=o["[object WeakMap]"]=!1,t.exports=function(t){return a(t)&&i(t.length)&&!!o[r(t)]}},zBOP:function(t,e,n){var r=n("22B7"),i=n("bGc4"),a=n("ZGh9"),o=n("yCNF");t.exports=function(t,e,n){if(!o(n))return!1;var s=typeof e;return!!("number"==s?i(n)&&a(e,n.length):"string"==s&&e in n)&&r(n[e],t)}},zGZ6:function(t,e,n){var r=n("YeCl"),i="Expected a function";function a(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError(i);var n=function(){var r=arguments,i=e?e.apply(this,r):r[0],a=n.cache;if(a.has(i))return a.get(i);var o=t.apply(this,r);return n.cache=a.set(i,o)||a,o};return n.cache=new(a.Cache||r),n}a.Cache=r,t.exports=a},zpVT:function(t,e,n){var r=n("duB3"),i=n("POb3"),a=n("YeCl"),o=200;t.exports=function(t,e){var n=this.__data__;if(n instanceof r){var s=n.__data__;if(!i||s.length<o-1)return s.push([t,e]),this.size=++n.size,this;n=this.__data__=new a(s)}return n.set(t,e),this.size=n.size,this}}});
\ No newline at end of file
diff --git a/files/pages_specification_v3_measurement-message.add054bcac744c963fba.js b/files/pages_specification_v3_measurement-message.add054bcac744c963fba.js
new file mode 100644
index 0000000..219874f
--- /dev/null
+++ b/files/pages_specification_v3_measurement-message.add054bcac744c963fba.js
@@ -0,0 +1 @@
+webpackJsonp([1],{"+66z":function(t,e){var n=Object.prototype.toString;t.exports=function(t){return n.call(t)}},"+99L":function(t,e,n){var r={"./v2/measurement_schema.json":["oGp6",23],"./v2/message_schema.json":["2BTs",22],"./v2/process_schema.json":["rRyJ",21],"./v3/measurement_schema.json":["PpY5",20],"./v3/message_schema.json":["1SJ2",19],"./v3/process_schema.json":["uwRd",18]};function i(t){var e=r[t];return e?n.e(e[1]).then(function(){return n(e[0])}):Promise.reject(new Error("Cannot find module '"+t+"'."))}i.keys=function(){return Object.keys(r)},i.id="+99L",t.exports=i},"+gg+":function(t,e,n){var r=n("TQ3y")["__core-js_shared__"];t.exports=r},"/GnY":function(t,e,n){var r=n("HT7L"),i=n("W529"),a=Object.prototype.hasOwnProperty;t.exports=function(t){if(!r(t))return i(t);var e=[];for(var n in Object(t))a.call(t,n)&&"constructor"!=n&&e.push(n);return e}},"/I3N":function(t,e){t.exports=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t}},"037f":function(t,e,n){var r=n("1oyr"),i=n("p0bc"),a=n("wSKX"),o=i?function(t,e){return i(t,"toString",{configurable:!0,enumerable:!1,value:r(e),writable:!0})}:a;t.exports=o},"09Qt":function(t,e,n){var r=n("uIr7"),i=n("vi0E"),a=n("l9Lx"),o=n("C0hh"),s=Object.getOwnPropertySymbols?function(t){for(var e=[];t;)r(e,a(t)),t=i(t);return e}:o;t.exports=s},"0DSl":function(t,e,n){var r=n("YkxI"),i=n("zBOP");t.exports=function(t){return r(function(e,n){var r=-1,a=n.length,o=a>1?n[a-1]:void 0,s=a>2?n[2]:void 0;for(o=t.length>3&&"function"==typeof o?(a--,o):void 0,s&&i(n[0],n[1],s)&&(o=a<3?void 0:o,a=1),e=Object(e);++r<a;){var c=n[r];c&&t(e,c,r,o)}return e})}},"0uX4":function(t,e,n){var r=n("NkRn"),i=r?r.prototype:void 0,a=i?i.valueOf:void 0;t.exports=function(t){return a?Object(a.call(t)):{}}},"1C79":function(t,e,n){var r=n("uIr7"),i=n("Qp3N");t.exports=function t(e,n,a,o,s){var c=-1,u=e.length;for(a||(a=i),s||(s=[]);++c<u;){var l=e[c];n>0&&a(l)?n>1?t(l,n-1,a,o,s):r(s,l):o||(s[s.length]=l)}return s}},"1QDk":function(t,e,n){var r=n("tv3T"),i=n("09Qt");t.exports=function(t,e){return r(t,i(t),e)}},"1Yb9":function(t,e,n){var r=n("mgnk"),i=n("UnEC"),a=Object.prototype,o=a.hasOwnProperty,s=a.propertyIsEnumerable,c=r(function(){return arguments}())?r:function(t){return i(t)&&o.call(t,"callee")&&!s.call(t,"callee")};t.exports=c},"1oyr":function(t,e){t.exports=function(t){return function(){return t}}},"22B7":function(t,e){t.exports=function(t,e){return t===e||t!=t&&e!=e}},"2Hvv":function(t,e,n){var r=n("imBK");t.exports=function(t){return r(this.__data__,t)>-1}},"2N6f":function(t,e,n){var r=n("rCVp"),i=n("Q2wK"),a=n("WHce");t.exports=function(t){return a(i(t,void 0,r),t+"")}},"3IRH":function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},"3rZI":function(t,e){t.exports=function(t,e,n,r){var i=-1,a=null==t?0:t.length;for(r&&a&&(n=t[++i]);++i<a;)n=e(n,t[i],i,t);return n}},"4yG7":function(t,e,n){var r=n("HAGj");t.exports=function(t,e,n){return null==t?t:r(t,e,n)}},"5/Qr":function(t,e,n){var r=n("Kzd6"),i=n("6Git"),a=n("Jqj6"),o=n("WyC4"),s=n("7jYp"),c=n("0uX4"),u=n("Ilb/"),l="[object Boolean]",f="[object Date]",p="[object Map]",d="[object Number]",v="[object RegExp]",h="[object Set]",m="[object String]",b="[object Symbol]",y="[object ArrayBuffer]",_="[object DataView]",x="[object Float32Array]",g="[object Float64Array]",j="[object Int8Array]",C="[object Int16Array]",O="[object Int32Array]",w="[object Uint8Array]",k="[object Uint8ClampedArray]",T="[object Uint16Array]",P="[object Uint32Array]";t.exports=function(t,e,n,A){var E=t.constructor;switch(e){case y:return r(t);case l:case f:return new E(+t);case _:return i(t,A);case x:case g:case j:case C:case O:case w:case k:case T:case P:return u(t,A);case p:return a(t,A,n);case d:case m:return new E(t);case v:return o(t);case h:return s(t,A,n);case b:return c(t)}}},"5N57":function(t,e,n){var r=n("ICSD")(n("TQ3y"),"Set");t.exports=r},"5PlU":function(t,e,n){var r=n("RY/4"),i=n("dSzd")("iterator"),a=n("/bQp");t.exports=n("FeBl").isIterable=function(t){var e=Object(t);return void 0!==e[i]||"@@iterator"in e||a.hasOwnProperty(r(e))}},"5pwE":function(t,e,n){(t.exports=n("YHym")(!1)).push([t.i,".schemaDetail a{text-decoration:none}.schemaDetail .property ul{list-style-type:disc;padding-left:1em;margin-left:0;margin-top:0}",""])},"5zde":function(t,e,n){n("zQR9"),n("qyJz"),t.exports=n("FeBl").Array.from},"6Git":function(t,e,n){var r=n("Kzd6");t.exports=function(t,e){var n=e?r(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}},"6MiT":function(t,e,n){var r=n("aCM0"),i=n("UnEC"),a="[object Symbol]";t.exports=function(t){return"symbol"==typeof t||i(t)&&r(t)==a}},"77aO":function(t,e,n){"use strict";e.a={props:{collapsed:{type:Boolean,default:!1}},data:function(){return{expanded:!this.collapsed,transitioning:!1}},watch:{collapsed:function(t){this.expanded=!t}},methods:{beforeenter:function(t){this.transitioning=!0,t.style.height=0},enter:function(t){t.style.height=t.scrollHeight+"px"},afterenter:function(t){t.style.height="",this.transitioning=!1},beforeleave:function(t){this.transitioning=!0,t.style.height=t.offsetHeight+"px",t.offsetHeight},leave:function(t){t.style.height=0,t.offsetHeight},afterleave:function(t){this.transitioning=!1},toggle:function(){this.transitioning||(this.expanded=!this.expanded,this.$emit(this.expanded?"expanding":"collapsing",this.id))}}}},"7e4z":function(t,e,n){var r=n("uieL"),i=n("1Yb9"),a=n("NGEn"),o=n("ggOT"),s=n("ZGh9"),c=n("YsVG"),u=Object.prototype.hasOwnProperty;t.exports=function(t,e){var n=a(t),l=!n&&i(t),f=!n&&!l&&o(t),p=!n&&!l&&!f&&c(t),d=n||l||f||p,v=d?r(t.length,String):[],h=v.length;for(var m in t)!e&&!u.call(t,m)||d&&("length"==m||f&&("offset"==m||"parent"==m)||p&&("buffer"==m||"byteLength"==m||"byteOffset"==m)||s(m,h))||v.push(m);return v}},"7jYp":function(t,e,n){var r=n("nWuj"),i=n("3rZI"),a=n("octw"),o=1;t.exports=function(t,e,n){var s=e?n(a(t),o):a(t);return i(s,r,new t.constructor)}},"8AZL":function(t,e){t.exports=function(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}},"8gK5":function(t,e){t.exports=function(t){var e=[];if(null!=t)for(var n in Object(t))e.push(n);return e}},"94sX":function(t,e,n){var r=n("dCZQ");t.exports=function(){this.__data__=r?r(null):{},this.size=0}},"9UkZ":function(t,e,n){var r=n("aCM0"),i=n("vi0E"),a=n("UnEC"),o="[object Object]",s=Function.prototype,c=Object.prototype,u=s.toString,l=c.hasOwnProperty,f=u.call(Object);t.exports=function(t){if(!a(t)||r(t)!=o)return!1;var e=i(t);if(null===e)return!0;var n=l.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&u.call(n)==f}},"9q7h":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n("NVRb"),i=n("Uu0y"),a=n("VU/8")(r.a,i.a,!1,null,null,null);a.options.__file="pages\\specification\\v3\\measurement-message.vue",e.default=a.exports},A51D:function(t,e,n){var r=n("5pwE");"string"==typeof r&&(r=[[t.i,r,""]]),r.locals&&(t.exports=r.locals);n("rjj0")("188b52d2",r,!1)},A9mX:function(t,e,n){var r=n("pTUa");t.exports=function(t){var e=r(this,t).delete(t);return this.size-=e?1:0,e}},"Ai/T":function(t,e){var n=Function.prototype.toString;t.exports=function(t){if(null!=t){try{return n.call(t)}catch(t){}try{return t+""}catch(t){}}return""}},AxiT:function(t,e,n){var r=n("Lw7C");"string"==typeof r&&(r=[[t.i,r,""]]),r.locals&&(t.exports=r.locals);n("rjj0")("0868896c",r,!1)},C0hh:function(t,e){t.exports=function(){return[]}},CW5P:function(t,e,n){var r=n("T/bE"),i=n("duB3"),a=n("POb3");t.exports=function(){this.size=0,this.__data__={hash:new r,map:new(a||i),string:new r}}},Cf65:function(t,e,n){var r=n("uCi2"),i=n("M1c9");t.exports=function(t,e){return e.length<2?t:r(t,i(e,0,-1))}},D9sP:function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"schemaDetail",class:{"is-loading":t.loading},attrs:{id:"schema-detail"}},[n("div",{staticClass:"accordion"},[null!==t.masterSchema?n("card",{attrs:{collapsed:!0}},[n("template",{slot:"header"},[t._v("\n        Structure of the payload\n      ")]),n("ul",t._l(t.masterSchema.properties,function(t,e){return n("schemaToc",{key:e,attrs:{schema:t}})}))],2):t._e(),t._t("default")],2),n("h1",[n("a",{attrs:{id:t.type+"-schema-detail",title:t.type+" Fields definition"}}),t._v("\n    Fields definition\n  ")]),t._l(t.schemas,function(e){return n("div",{key:e.$id,staticClass:"card property"},[n("header",{staticClass:"card-header"},[n("a",{attrs:{id:"p-"+e.$id}}),n("p",{staticClass:"card-header-title"},[n("span",{domProps:{innerHTML:t._s(e.getPath())}})]),n("nuxt-link",{staticClass:"card-header-icon",attrs:{to:"#schema-detail",title:"go up"}},[n("span",{staticClass:"icon"},[n("i",{staticClass:"fa fa-angle-up"})])])],1),n("div",{staticClass:"card-content"},[e.description||e.type?n("div",{staticClass:"field is-horizontal"},[t._m(0,!0),e.description?n("div",{staticClass:"field-body"},[t._v("\n          "+t._s(e.description)+"\n        ")]):e.type?n("div",{staticClass:"field-body"},[t._v("\n          A simple "+t._s(t._f("capitalize")(e.type))+"\n        ")]):t._e()]):t._e(),e.$parent?n("div",{staticClass:"field is-horizontal"},[t._m(1,!0),n("div",{staticClass:"field-body"},[n("nuxt-link",{attrs:{to:"#p-"+e.$parent.schema.$id}},[n("span",{domProps:{innerHTML:t._s(e.$parent.schema.getPath())}})])],1)]):t._e(),e.type?n("div",{staticClass:"field is-horizontal"},[t._m(2,!0),n("div",{staticClass:"field-body"},[t._v("\n          "+t._s(t._f("capitalize")(e.type,e))+"\n        ")])]):t._e(),e.format?n("div",{staticClass:"field is-horizontal"},[t._m(3,!0),n("div",{staticClass:"field-body"},[t._v("\n          "+t._s(e.format)+"\n          "),t.$static.formats[e.format]?n("a",{attrs:{href:t.$static.formats[e.format].link}},[t._v(" ("+t._s(t.$static.formats[e.format].name)+")")]):t._e()])]):t._e(),e.enum&&e.enum.length?n("div",{staticClass:"field is-horizontal"},[t._m(4,!0),n("div",{staticClass:"field-body"},[n("div",[t._v("\n            "+t._s(e.enum.join(", "))+"\n          ")])])]):t._e(),e.hasOwnProperty("default")?n("div",{staticClass:"field is-horizontal"},[t._m(5,!0),n("div",{staticClass:"field-body"},[n("div",[t._v("\n            "+t._s(e.default)+"\n          ")])])]):t._e(),e.maxLength?n("div",{staticClass:"field is-horizontal"},[t._m(6,!0),n("div",{staticClass:"field-body"},[n("div",[t._v("\n            "+t._s(e.maxLength)+"\n          ")])])]):t._e(),e.properties||e.patternProperties||e.items?n("div",{staticClass:"field is-horizontal"},[t._m(7,!0),n("div",{staticClass:"field-body"},[Object.keys(e.properties||{}).length>0?n("schemaLink",{attrs:{link:e.properties}}):t._e(),Object.keys(e.patternProperties||{}).length>0?n("schemaLink",{attrs:{link:e.patternProperties}},[n("div",[t._v("Matching regular expressions:")])]):t._e(),!e.items||e.items instanceof Array?e.items?n("schemaLink",{attrs:{link:e.items}},[n("div",[t._v("Ordered items of type:")])]):t._e():n("schemaLink",{attrs:{link:e.items}}),Object.keys(e.properties||{}).length+Object.keys(e.patternProperties||{}).length!==0||e.items?t._e():[t._v("none")]],2)]):t._e(),e.minProperties?n("div",{staticClass:"field is-horizontal"},[t._m(8,!0),n("div",{staticClass:"field-body"},[n("div",[t._v("\n            "+t._s(e.minProperties)+"\n          ")])])]):t._e(),e.minItems?n("div",{staticClass:"field is-horizontal"},[t._m(9,!0),n("div",{staticClass:"field-body"},[n("div",[t._v("\n            "+t._s(e.minItems)+"\n          ")])])]):t._e(),e.hasOwnProperty("additionalProperties")?n("div",{staticClass:"field is-horizontal"},[t._m(10,!0),"boolean"==typeof e.additionalProperties?n("schemaLink",{staticClass:"field-body",attrs:{link:e.additionalProperties}}):n("div",{staticClass:"field-body"},[t._v("\n          if fulfilling "),n("schemaLink",{staticClass:"field-body",attrs:{link:e.additionalProperties}})],1)],1):t._e(),e.not||e.oneOf||e.allOf||e.anyOf?n("div",{staticClass:"field is-horizontal"},[t._m(11,!0),n("div",{staticClass:"field-body"},[e.not?n("schemaLink",{attrs:{link:e.not}},[t._v("\n            Not fulfilling \n          ")]):t._e(),e.oneOf?n("schemaLink",{attrs:{link:e.oneOf}},[n("div",[t._v("Fulfilling exactly one of:")])]):t._e(),e.allOf?n("schemaLink",{attrs:{link:e.allOf}},[n("div",[t._v("Fulfilling all of:")])]):t._e(),e.anyOf?n("schemaLink",{attrs:{link:e.anyOf}},[n("div",[t._v("Fulfilling one of:")])]):t._e()],1)]):t._e(),e.required&&e.required.length?n("div",{staticClass:"field is-horizontal"},[t._m(12,!0),n("div",{staticClass:"field-body"},[t._v("\n          "+t._s(e.required.join(", "))+"\n        ")])]):t._e(),e.examples?n("div",{staticClass:"field is-horizontal"},[t._m(13,!0),n("div",{staticClass:"field-body"},t._l(e.examples,function(e,r){return n("prism",{key:r,attrs:{language:"json"}},[t._v(t._s(t._f("stringify")(e)))])}))]):t._e()])])})],2)};r._withStripped=!0;var i={render:r,staticRenderFns:[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Description:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Parent:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Type:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Format:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Possible values:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Defaults to:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Maximum length:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Restriction on subfields:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Minimum amount of subfields:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Minimum amount of items:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Allows additional fields:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Restriction with boolean logic:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Required fields:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Example:")])])}]};e.a=i},Dc0G:function(t,e,n){(function(t){var r=n("blYT"),i="object"==typeof e&&e&&!e.nodeType&&e,a=i&&"object"==typeof t&&t&&!t.nodeType&&t,o=a&&a.exports===i&&r.process,s=function(){try{return o&&o.binding&&o.binding("util")}catch(t){}}();t.exports=s}).call(e,n("3IRH")(t))},Dc7M:function(t,e,n){var r=n("Hxdr"),i=n("Fkvj"),a=n("Vi3P"),o=n("bIjD"),s=n("tv3T"),c=n("dYhQ"),u=n("2N6f"),l=n("xond"),f=u(function(t,e){var n={};if(null==t)return n;var u=!1;e=r(e,function(e){return e=o(e,t),u||(u=e.length>1),e}),s(t,l(t),n),u&&(n=i(n,7,c));for(var f=e.length;f--;)a(n,e[f]);return n});t.exports=f},Dv2r:function(t,e,n){var r=n("pTUa");t.exports=function(t,e){var n=r(this,t),i=n.size;return n.set(t,e),this.size+=n.size==i?0:1,this}},E4Hj:function(t,e){t.exports=function(t){return this.__data__.get(t)}},FCuZ:function(t,e,n){var r=n("uIr7"),i=n("NGEn");t.exports=function(t,e,n){var a=e(t);return i(t)?a:r(a,n(t))}},Fkvj:function(t,e,n){var r=n("bJWQ"),i=n("PqYH"),a=n("i4ON"),o=n("jD7S"),s=n("py9u"),c=n("mKB/"),u=n("hrPF"),l=n("Nkkh"),f=n("1QDk"),p=n("MoMe"),d=n("xond"),v=n("gHOb"),h=n("UfSK"),m=n("5/Qr"),b=n("WQFf"),y=n("NGEn"),_=n("ggOT"),x=n("yCNF"),g=n("ktak"),j=1,C=2,O=4,w="[object Arguments]",k="[object Function]",T="[object GeneratorFunction]",P="[object Object]",A={};A[w]=A["[object Array]"]=A["[object ArrayBuffer]"]=A["[object DataView]"]=A["[object Boolean]"]=A["[object Date]"]=A["[object Float32Array]"]=A["[object Float64Array]"]=A["[object Int8Array]"]=A["[object Int16Array]"]=A["[object Int32Array]"]=A["[object Map]"]=A["[object Number]"]=A[P]=A["[object RegExp]"]=A["[object Set]"]=A["[object String]"]=A["[object Symbol]"]=A["[object Uint8Array]"]=A["[object Uint8ClampedArray]"]=A["[object Uint16Array]"]=A["[object Uint32Array]"]=!0,A["[object Error]"]=A[k]=A["[object WeakMap]"]=!1,t.exports=function t(e,n,E,S,$,M){var F,I=n&j,D=n&C,z=n&O;if(E&&(F=$?E(e,S,$,M):E(e)),void 0!==F)return F;if(!x(e))return e;var N=y(e);if(N){if(F=h(e),!I)return u(e,F)}else{var U=v(e),Q=U==k||U==T;if(_(e))return c(e,I);if(U==P||U==w||Q&&!$){if(F=D||Q?{}:b(e),!I)return D?f(e,s(F,e)):l(e,o(F,e))}else{if(!A[U])return $?e:{};F=m(e,U,t,I)}}M||(M=new r);var G=M.get(e);if(G)return G;M.set(e,F);var H=z?D?d:p:D?keysIn:g,R=N?void 0:H(e);return i(R||e,function(r,i){R&&(r=e[i=r]),a(F,i,t(r,n,E,i,e,M))}),F}},Fp5l:function(t,e,n){var r=n("bGc4"),i=n("UnEC");t.exports=function(t){return i(t)&&r(t)}},G0Wc:function(t,e,n){var r=n("yCNF"),i=n("HT7L"),a=n("8gK5"),o=Object.prototype.hasOwnProperty;t.exports=function(t){if(!r(t))return a(t);var e=i(t),n=[];for(var s in t)("constructor"!=s||!e&&o.call(t,s))&&n.push(s);return n}},G2xm:function(t,e){t.exports=function(t){return this.__data__.has(t)}},Gs0Q:function(t,e,n){"use strict";e.a={name:"schemaToc",props:{tag:{type:String,default:"li"},schema:{type:Object,required:!0}}}},Gu7T:function(t,e,n){"use strict";e.__esModule=!0;var r,i=n("c/Tr"),a=(r=i)&&r.__esModule?r:{default:r};e.default=function(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e<t.length;e++)n[e]=t[e];return n}return(0,a.default)(t)}},HAGj:function(t,e,n){var r=n("i4ON"),i=n("bIjD"),a=n("ZGh9"),o=n("yCNF"),s=n("Ubhr");t.exports=function(t,e,n,c){if(!o(t))return t;for(var u=-1,l=(e=i(e,t)).length,f=l-1,p=t;null!=p&&++u<l;){var d=s(e[u]),v=n;if(u!=f){var h=p[d];void 0===(v=c?c(h,d,p):void 0)&&(v=o(h)?h:a(e[u+1])?[]:{})}r(p,d,v),p=p[d]}return t}},HN2V:function(t,e,n){var r=n("HbnZ"),i=n("0DSl")(function(t,e,n){r(t,e,n)});t.exports=i},HT7L:function(t,e){var n=Object.prototype;t.exports=function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||n)}},HbnZ:function(t,e,n){var r=n("bJWQ"),i=n("O1jc"),a=n("rpnb"),o=n("jMi8"),s=n("yCNF"),c=n("t8rQ");t.exports=function t(e,n,u,l,f){e!==n&&a(n,function(a,c){if(s(a))f||(f=new r),o(e,n,c,u,t,l,f);else{var p=l?l(e[c],a,c+"",e,n,f):void 0;void 0===p&&(p=a),i(e,c,p)}},c)}},Hxdr:function(t,e){t.exports=function(t,e){for(var n=-1,r=null==t?0:t.length,i=Array(r);++n<r;)i[n]=e(t[n],n,t);return i}},ICSD:function(t,e,n){var r=n("ITwD"),i=n("mTAn");t.exports=function(t,e){var n=i(t,e);return r(n)?n:void 0}},ITwD:function(t,e,n){var r=n("gGqR"),i=n("eFps"),a=n("yCNF"),o=n("Ai/T"),s=/^\[object .+?Constructor\]$/,c=Function.prototype,u=Object.prototype,l=c.toString,f=u.hasOwnProperty,p=RegExp("^"+l.call(f).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=function(t){return!(!a(t)||i(t))&&(r(t)?p:s).test(o(t))}},"Ilb/":function(t,e,n){var r=n("Kzd6");t.exports=function(t,e){var n=e?r(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}},JBvZ:function(t,e,n){var r=n("imBK");t.exports=function(t){var e=this.__data__,n=r(e,t);return n<0?void 0:e[n][1]}},Jqj6:function(t,e,n){var r=n("U7Aq"),i=n("3rZI"),a=n("WFiI"),o=1;t.exports=function(t,e,n){var s=e?n(a(t),o):a(t);return i(s,r,new t.constructor)}},KmWZ:function(t,e,n){var r=n("duB3");t.exports=function(){this.__data__=new r,this.size=0}},Kzd6:function(t,e,n){var r=n("qwTf");t.exports=function(t){var e=new t.constructor(t.byteLength);return new r(e).set(new r(t)),e}},LJry:function(t,e,n){"use strict";var r={functional:!0,props:{code:{type:String},language:{type:String,default:"markup"}},render:function(t,e){var n=e.props.code||e.children[0].text,r=e.props.language,i=Prism.languages[r],a="language-"+r;return t("pre",function(t){for(var e=arguments,n=1;n<arguments.length;n++)for(var r in arguments[n])t[r]=e[n][r];return t}({},e.data,{class:[e.data.class,a]}),[t("code",{class:a,domProps:{innerHTML:Prism.highlight(n,i)}})])}};t.exports=r},Lw7C:function(t,e,n){(t.exports=n("YHym")(!1)).push([t.i,"@keyframes spinAround{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}",""])},M1c9:function(t,e){t.exports=function(t,e,n){var r=-1,i=t.length;e<0&&(e=-e>i?0:i+e),(n=n>i?i:n)<0&&(n+=i),i=e>n?0:n-e>>>0,e>>>=0;for(var a=Array(i);++r<i;)a[r]=t[r+e];return a}},MoMe:function(t,e,n){var r=n("FCuZ"),i=n("l9Lx"),a=n("ktak");t.exports=function(t){return r(t,a,i)}},NGEn:function(t,e){var n=Array.isArray;t.exports=n},NVRb:function(t,e,n){"use strict";var r=n("mvHQ"),i=n.n(r),a=n("d7EF"),o=n.n(a),s=n("Dd8w"),c=n.n(s),u=n("W3Iv"),l=n.n(u),f=n("LJry"),p=n.n(f),d=n("T9Hf"),v=n("Q7hp"),h=n.n(v),m=n("s8mu");e.a={head:function(){return{title:"Specification for measurement messages"}},created:function(){var t=this,e=new Date,n="a4927dad-58d4-4580-b460-79cefd56775b";this.$static={message:{"content-spec":"urn:spec://eclipse.org/unide/measurement-message#v3",device:{id:n},measurements:[{ts:e.toISOString(),series:{time:[0,23,24],temperature:[45.4231,46.4222,44.2432]}}]},complexMessage:{"content-spec":"urn:spec://eclipse.org/unide/measurement-message#v3",device:{id:n,mode:"maintenance",state:"WARN",swVersion:"2.0.3.13",swBuildID:"41535"},part:{code:"HUH289",id:"420003844",type:"BATCH",typeId:"F00VH07328",result:"OK",lotID:"845849",toolID:"32324-432143"},measurements:[{code:"190ABT",context:{temperature:{accuracy:[.112,.115,.129],limits:{lowerError:-2,lowerWarn:-1,upperError:5,upperWarn:1.5},offset:37,unit:"Cel"}},result:"OK",series:{time:[0,23,24],temperature:[.4231,2.4222,4.2432]},ts:e.toISOString()},{context:{scanData:{type:"BASE64"}},series:{time:[0,130,2633],pressure:[52.4,46.32,44.2432],scanData:["Zm9vCg==","YmFyCg==","Y2hlZXNlCg=="]},ts:new Date(e.valueOf()-5e3).toISOString()}]}},this.$static.examples=l()(c()({},["content-spec","device","device.id","device.mode","device.state","measurements","measurements[0].code","measurements[0].context","measurements[0].result","measurements[0].series","measurements[0].ts","part","part.code","part.metaData","part.partID","part.partTypeID","part.result"].reduce(function(t,e){return t[e.replace(/(^|\.)/g,"$1properties.").replace(/\[[^]]*]/g,".items")]=e,t},{'properties.measurements.items.properties.context.patternProperties["^[^$]+"]':"measurements[0].context.temperature",'properties.measurements.items.properties.series.patternProperties["^[^$]+"]':"measurements[0].series.temperature"}),["accuracy","limits","offset","unit"].reduce(function(t,e){return t['properties.measurements.items.properties.context.patternProperties["^[^$]+"].properties.'+e]="measurements[0].context.temperature."+e,t},{}),["lowerError","lowerWarn","target","upperError","upperWarn"].reduce(function(t,e){return t['properties.measurements.items.properties.limits.patternProperties["^[^$]+"].properties.'+e]="measurements[0].limits.temperature."+e,t},{}))).reduce(function(e,n){var r=o()(n,2),i=r[0],a=r[1],s=h()(t.$static.message,a)||h()(t.$static.complexMessage,a);return s&&(e[i]=[s]),e},{})},filters:{stringify:function(t){return i()(t," ",2)}},components:{card:d.a,prism:p.a,schemaDetail:m.a}}},NVTU:function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"card collapsibleCard",class:{collapsed:!t.expanded}},[t.$slots.header?n("header",{staticClass:"card-header",on:{click:function(e){e.preventDefault(),t.toggle()}}},[n("p",{staticClass:"card-header-title"},[!t.$slots.headerCollapsed||t.expanded?t._t("header"):t._t("headerCollapsed")],2),n("a",{staticClass:"card-header-icon"},[n("span",{staticClass:"icon"},[n("i",{staticClass:"fa",class:{"fa-angle-down":t.expanded,"fa-angle-up":!t.expanded}})])])]):t._e(),n("transition",{attrs:{name:"rollup","leave-active-class":"collapsing","enter-active-class":"collapsing"},on:{"before-leave":t.beforeleave,leave:t.leave,"after-leave":t.afterleave,"before-enter":t.beforeenter,enter:t.enter,"after-enter":t.afterenter}},[n("div",{directives:[{name:"show",rawName:"v-show",value:t.expanded,expression:"expanded"}]},[n("div",{staticClass:"card-content"},[t._t("default")],2)])])],1)};r._withStripped=!0;var i={render:r,staticRenderFns:[]};e.a=i},NkRn:function(t,e,n){var r=n("TQ3y").Symbol;t.exports=r},Nkkh:function(t,e,n){var r=n("tv3T"),i=n("l9Lx");t.exports=function(t,e){return r(t,i(t),e)}},NqZt:function(t,e){t.exports=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}},O1jc:function(t,e,n){var r=n("nw3t"),i=n("22B7");t.exports=function(t,e,n){(void 0===n||i(t[e],n))&&(void 0!==n||e in t)||r(t,e,n)}},POb3:function(t,e,n){var r=n("ICSD")(n("TQ3y"),"Map");t.exports=r},PqYH:function(t,e){t.exports=function(t,e){for(var n=-1,r=null==t?0:t.length;++n<r&&!1!==e(t[n],n,t););return t}},Q2wK:function(t,e,n){var r=n("8AZL"),i=Math.max;t.exports=function(t,e,n){return e=i(void 0===e?t.length-1:e,0),function(){for(var a=arguments,o=-1,s=i(a.length-e,0),c=Array(s);++o<s;)c[o]=a[e+o];o=-1;for(var u=Array(e+1);++o<e;)u[o]=a[o];return u[e]=n(c),r(t,this,u)}}},Q7hp:function(t,e,n){var r=n("uCi2");t.exports=function(t,e,n){var i=null==t?void 0:r(t,e);return void 0===i?n:i}},Qp3N:function(t,e,n){var r=n("NkRn"),i=n("1Yb9"),a=n("NGEn"),o=r?r.isConcatSpreadable:void 0;t.exports=function(t){return a(t)||i(t)||!!(o&&t&&t[o])}},RGrk:function(t,e,n){var r=n("dCZQ"),i=Object.prototype.hasOwnProperty;t.exports=function(t){var e=this.__data__;return r?void 0!==e[t]:i.call(e,t)}},Rh28:function(t,e){var n=9007199254740991;t.exports=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=n}},S7p9:function(t,e){t.exports=function(t){return function(e){return t(e)}}},"T/bE":function(t,e,n){var r=n("94sX"),i=n("ue/d"),a=n("eVIm"),o=n("RGrk"),s=n("Z2pD");function c(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}c.prototype.clear=r,c.prototype.delete=i,c.prototype.get=a,c.prototype.has=o,c.prototype.set=s,t.exports=c},T9Hf:function(t,e,n){"use strict";var r=n("77aO"),i=n("NVTU"),a=!1;var o=function(t){a||n("WVEp")},s=n("VU/8")(r.a,i.a,!1,o,null,null);s.options.__file="components\\collapsibleCard.vue",e.a=s.exports},TQ3y:function(t,e,n){var r=n("blYT"),i="object"==typeof self&&self&&self.Object===Object&&self,a=r||i||Function("return this")();t.exports=a},TlPD:function(t,e,n){var r=n("tv3T"),i=n("t8rQ");t.exports=function(t){return r(t,i(t))}},TmV0:function(t,e,n){n("fZOM"),t.exports=n("FeBl").Object.values},U7Aq:function(t,e){t.exports=function(t,e){return t.set(e[0],e[1]),t}},Ubhr:function(t,e,n){var r=n("6MiT"),i=1/0;t.exports=function(t){if("string"==typeof t||r(t))return t;var e=t+"";return"0"==e&&1/t==-i?"-0":e}},UfSK:function(t,e){var n=Object.prototype.hasOwnProperty;t.exports=function(t){var e=t.length,r=t.constructor(e);return e&&"string"==typeof t[0]&&n.call(t,"index")&&(r.index=t.index,r.input=t.input),r}},UnEC:function(t,e){t.exports=function(t){return null!=t&&"object"==typeof t}},UnLw:function(t,e,n){var r=/^\./,i=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,a=/\\(\\)?/g,o=n("fMqj")(function(t){var e=[];return r.test(t)&&e.push(""),t.replace(i,function(t,n,r,i){e.push(r?i.replace(a,"$1"):n||t)}),e});t.exports=o},Uu0y:function(t,e,n){"use strict";var r=function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"measurement-message content"},[this._m(0),e("p",[this._v("The measurement message is the format to exchange simple (non-structured, non-complex ) measurement data. It also allows to transport multiple measurement data (eg. values over time), called 'series'.")]),e("img",{staticClass:"is-centered",attrs:{src:"images/specification/v3/measurementPayload.svg",alt:"Class diagram of the Measurement Message payload",title:"Class diagram of the Measurement Message payload"}}),e("schemaDetail",{attrs:{type:"v3/measurement",examples:this.$static.examples}},[e("card",{attrs:{collapsed:!0}},[e("template",{slot:"header"},[this._v("\n        Minimal message example\n      ")]),e("prism",{attrs:{language:"json"}},[this._v(this._s(this._f("stringify")(this.$static.message)))])],2),e("card",{attrs:{collapsed:!0}},[e("template",{slot:"header"},[this._v("\n        Multiple message example\n      ")]),e("prism",{attrs:{language:"json"}},[this._v(this._s(this._f("stringify")(this.$static.complexMessage)))])],2)],1)],1)};r._withStripped=!0;var i={render:r,staticRenderFns:[function(){var t=this.$createElement,e=this._self._c||t;return e("h1",[e("a",{attrs:{id:"Measurement-Payload",title:"Measurement Message payload"}}),this._v("\n    Measurement Payload\n  ")])}]};e.a=i},VORN:function(t,e,n){var r=n("yCNF"),i=Object.create,a=function(){function t(){}return function(e){if(!r(e))return{};if(i)return i(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();t.exports=a},Vi3P:function(t,e,n){var r=n("bIjD"),i=n("oqL2"),a=n("Cf65"),o=n("Ubhr");t.exports=function(t,e){return e=r(e,t),null==(t=a(t,e))||delete t[o(i(e))]}},W3Iv:function(t,e,n){t.exports={default:n("wEtr"),__esModule:!0}},W529:function(t,e,n){var r=n("f931")(Object.keys,Object);t.exports=r},WFiI:function(t,e){t.exports=function(t){var e=-1,n=Array(t.size);return t.forEach(function(t,r){n[++e]=[r,t]}),n}},WHce:function(t,e,n){var r=n("037f"),i=n("Zk5a")(r);t.exports=i},WQFf:function(t,e,n){var r=n("VORN"),i=n("vi0E"),a=n("HT7L");t.exports=function(t){return"function"!=typeof t.constructor||a(t)?{}:r(i(t))}},WVEp:function(t,e,n){var r=n("a3hs");"string"==typeof r&&(r=[[t.i,r,""]]),r.locals&&(t.exports=r.locals);n("rjj0")("52cedc5e",r,!1)},WxI4:function(t,e){t.exports=function(){this.__data__=[],this.size=0}},WyC4:function(t,e){var n=/\w*$/;t.exports=function(t){var e=new t.constructor(t.source,n.exec(t));return e.lastIndex=t.lastIndex,e}},Xd32:function(t,e,n){n("+tPU"),n("zQR9"),t.exports=n("5PlU")},YeCl:function(t,e,n){var r=n("CW5P"),i=n("A9mX"),a=n("v8Dt"),o=n("agim"),s=n("Dv2r");function c(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}c.prototype.clear=r,c.prototype.delete=i,c.prototype.get=a,c.prototype.has=o,c.prototype.set=s,t.exports=c},YkxI:function(t,e,n){var r=n("wSKX"),i=n("Q2wK"),a=n("WHce");t.exports=function(t,e){return a(i(t,e,r),t+"")}},YsVG:function(t,e,n){var r=n("z4hc"),i=n("S7p9"),a=n("Dc0G"),o=a&&a.isTypedArray,s=o?i(o):r;t.exports=s},Z2pD:function(t,e,n){var r=n("dCZQ"),i="__lodash_hash_undefined__";t.exports=function(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=r&&void 0===e?i:e,this}},ZGh9:function(t,e){var n=9007199254740991,r=/^(?:0|[1-9]\d*)$/;t.exports=function(t,e){return!!(e=null==e?n:e)&&("number"==typeof t||r.test(t))&&t>-1&&t%1==0&&t<e}},ZT2e:function(t,e,n){var r=n("o2mx");t.exports=function(t){return null==t?"":r(t)}},Zk5a:function(t,e){var n=800,r=16,i=Date.now;t.exports=function(t){var e=0,a=0;return function(){var o=i(),s=r-(o-a);if(a=o,s>0){if(++e>=n)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}},Zrlr:function(t,e,n){"use strict";e.__esModule=!0,e.default=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},a3hs:function(t,e,n){(t.exports=n("YHym")(!1)).push([t.i,"@keyframes spinAround{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}.card.collapsibleCard>header{cursor:pointer;background-color:#f5f5f5;border-bottom:1px solid hsla(0,0%,4%,.1)}.card.collapsibleCard>header .card-header-icon{text-decoration:none}.card.collapsibleCard>header .card-header-title{font-weight:400}.card.collapsibleCard>header p{margin-bottom:0}.card.collapsibleCard.collapsed header{border-bottom:none}.card.collapsibleCard>div.collapsing{position:relative;height:0;overflow:hidden;display:block;transition-property:height;transition-duration:.35s;transition-timing-function:ease}",""])},aCM0:function(t,e,n){var r=n("NkRn"),i=n("uLhX"),a=n("+66z"),o="[object Null]",s="[object Undefined]",c=r?r.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?s:o:c&&c in Object(t)?i(t):a(t)}},agim:function(t,e,n){var r=n("pTUa");t.exports=function(t){return r(this,t).has(t)}},bGc4:function(t,e,n){var r=n("gGqR"),i=n("Rh28");t.exports=function(t){return null!=t&&i(t.length)&&!r(t)}},bIbi:function(t,e,n){var r=n("ICSD")(n("TQ3y"),"WeakMap");t.exports=r},bIjD:function(t,e,n){var r=n("NGEn"),i=n("hIPy"),a=n("UnLw"),o=n("ZT2e");t.exports=function(t,e){return r(t)?t:i(t,e)?[t]:a(o(t))}},bJWQ:function(t,e,n){var r=n("duB3"),i=n("KmWZ"),a=n("NqZt"),o=n("E4Hj"),s=n("G2xm"),c=n("zpVT");function u(t){var e=this.__data__=new r(t);this.size=e.size}u.prototype.clear=i,u.prototype.delete=a,u.prototype.get=o,u.prototype.has=s,u.prototype.set=c,t.exports=u},bO0Y:function(t,e,n){var r=n("ICSD")(n("TQ3y"),"Promise");t.exports=r},"bXX+":function(t,e,n){"use strict";var r=n("jhkR"),i=n("fvMW"),a=n("VU/8")(r.a,i.a,!1,null,null,null);a.options.__file="components\\schemaLink.vue",e.a=a.exports},bklM:function(t,e,n){var r=n("Fkvj"),i=1,a=4;t.exports=function(t){return r(t,i|a)}},blYT:function(t,e,n){(function(e){var n="object"==typeof e&&e&&e.Object===Object&&e;t.exports=n}).call(e,n("DuR2"))},"c/Tr":function(t,e,n){t.exports={default:n("5zde"),__esModule:!0}},cER1:function(t,e,n){"use strict";var r=n("mvHQ"),i=n.n(r),a=n("fZjL"),o=n.n(a),s=n("Gu7T"),c=n.n(s),u=n("gRE1"),l=n.n(u),f=n("d7EF"),p=n.n(f),d=n("W3Iv"),v=n.n(d),h=n("T9Hf"),m=n("rVUV"),b=(n.n(m),n("Q7hp")),y=n.n(b),_=n("HN2V"),x=n.n(_),g=n("LJry"),j=n.n(g),C=n("lOo0"),O=n("bXX+"),w=n("mQxp"),k=n("4yG7"),T=n.n(k);e.a={props:{type:{type:String,required:!0},examples:{type:Object,required:!1,default:function(){return{}}}},data:function(){return{masterSchema:null,loading:!0}},created:function(){var t=this,e={date:{link:"https://tools.ietf.org/html/rfc3339#section-5.6",name:"RFC3339, 5.6"},email:{link:"https://tools.ietf.org/html/rfc5322#section-3.4.1",name:"RFC5322, 3.4.1"}};n("+99L")("./"+this.type+"_schema.json").then(function(e){return console.time("parsing Schema"),t.masterSchema=new C.a("$",null,e),v()(t.examples).forEach(function(e){var n=p()(e,2),r=n[0],i=n[1];y()(t.masterSchema,r)&&T()(t.masterSchema,r+".examples",i)}),console.timeEnd("parsing Schema"),t.loading=!1,e}).catch(function(t){throw t}),this.$static={formats:{"date-time":e.date,date:e.date,time:e.date,email:e.email}}},methods:{traverse:function(t,e){var n=this;t instanceof C.a?(e(t),v()(t).filter(function(t){var e=p()(t,2),n=e[0];e[1];return"$parent"!==n}).forEach(function(t){var r=p()(t,2),i=(r[0],r[1]);return n.traverse(i,e)})):t instanceof Array?t.forEach(function(t){return n.traverse(t,e)}):t instanceof Object&&l()(t).forEach(function(t){return n.traverse(t,e)})},simplifySchema:function(t){var e=function(t){return t.anyOf&&t.anyOf.indexOf(!0)>=0?[t,!0]:t.allOf&&t.allOf.indexOf(!1)>=0?[t,!1]:t.allOf&&t.allOf.length?[t,new C.a(t.$step,t.$parent,x.a.apply(void 0,[{}].concat(c()(t.allOf.map(function(t){return t.toJSON()})))))]:!0===t.not?[t,!1]:0===o()(t).filter(function(t){return"$"!==t[0]}).length?[t,!0]:null};return this.traverse(t,function(t){!function t(n){if(n){var r=p()(n,2),i=r[0],a=r[1],o=i.$parent;o&&T()(o.schema,o.path,a),i.$parent=null,t(e(o.schema))}}(e(t))}),t}},computed:{schemas:function(){if(!this.masterSchema)return null;var t={};return this.traverse(this.simplifySchema(this.masterSchema),function(e){t[e.$id]=e}),t}},filters:{stringify:function(t){return i()(t," ",2)},capitalize:function(t,e){return t?(t instanceof Array||(t=[t]),t.map(function(t){return""+t[0].toUpperCase()+t.slice(1)}).join(", ")):""}},components:{card:h.a,prism:j.a,schemaToc:w.a,schemaLink:O.a}}},d4US:function(t,e,n){var r=n("ICSD")(n("TQ3y"),"DataView");t.exports=r},d7EF:function(t,e,n){"use strict";e.__esModule=!0;var r=a(n("us/S")),i=a(n("BO1k"));function a(t){return t&&t.__esModule?t:{default:t}}e.default=function(){return function(t,e){if(Array.isArray(t))return t;if((0,r.default)(Object(t)))return function(t,e){var n=[],r=!0,a=!1,o=void 0;try{for(var s,c=(0,i.default)(t);!(r=(s=c.next()).done)&&(n.push(s.value),!e||n.length!==e);r=!0);}catch(t){a=!0,o=t}finally{try{!r&&c.return&&c.return()}finally{if(a)throw o}}return n}(t,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}()},dCZQ:function(t,e,n){var r=n("ICSD")(Object,"create");t.exports=r},dFpP:function(t,e,n){var r=n("imBK"),i=Array.prototype.splice;t.exports=function(t){var e=this.__data__,n=r(e,t);return!(n<0||(n==e.length-1?e.pop():i.call(e,n,1),--this.size,0))}},dYhQ:function(t,e,n){var r=n("9UkZ");t.exports=function(t){return r(t)?void 0:t}},deUO:function(t,e,n){var r=n("imBK");t.exports=function(t,e){var n=this.__data__,i=r(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this}},duB3:function(t,e,n){var r=n("WxI4"),i=n("dFpP"),a=n("JBvZ"),o=n("2Hvv"),s=n("deUO");function c(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}c.prototype.clear=r,c.prototype.delete=i,c.prototype.get=a,c.prototype.has=o,c.prototype.set=s,t.exports=c},eFps:function(t,e,n){var r,i=n("+gg+"),a=(r=/[^.]+$/.exec(i&&i.keys&&i.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"";t.exports=function(t){return!!a&&a in t}},eVIm:function(t,e,n){var r=n("dCZQ"),i="__lodash_hash_undefined__",a=Object.prototype.hasOwnProperty;t.exports=function(t){var e=this.__data__;if(r){var n=e[t];return n===i?void 0:n}return a.call(e,t)?e[t]:void 0}},f931:function(t,e){t.exports=function(t,e){return function(n){return t(e(n))}}},fBQ2:function(t,e,n){"use strict";var r=n("evD5"),i=n("X8DO");t.exports=function(t,e,n){e in t?r.f(t,e,i(0,n)):t[e]=n}},fMqj:function(t,e,n){var r=n("zGZ6"),i=500;t.exports=function(t){var e=r(t,function(t){return n.size===i&&n.clear(),t}),n=e.cache;return e}},fZOM:function(t,e,n){var r=n("kM2E"),i=n("mbce")(!1);r(r.S,"Object",{values:function(t){return i(t)}})},fvMW:function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[t._t("default"),!0===t.link?[t._v("\n    yes \n  ")]:!1===t.link?[t._v("\n    no \n  ")]:t.isSchema(t.link)?[n("nuxt-link",{attrs:{to:"#p-"+t.link.$id}},[n("span",{domProps:{innerHTML:t._s(t.link.getPath())}})])]:t.link instanceof Array?n("ul",t._l(t.link,function(e){return n("li",{key:e.$id},[n("nuxt-link",{attrs:{to:"#p-"+e.$id}},[n("span",{domProps:{innerHTML:t._s(e.getPath())}})])],1)})):t.link instanceof Object?n("ul",t._l(t.link,function(e,r){return n("li",[n("nuxt-link",{attrs:{to:"#p-"+e.$id}},[t._v("\n        "+t._s(r)+"\n      ")])],1)})):t._e()],2)};r._withStripped=!0;var i={render:r,staticRenderFns:[]};e.a=i},gGqR:function(t,e,n){var r=n("aCM0"),i=n("yCNF"),a="[object AsyncFunction]",o="[object Function]",s="[object GeneratorFunction]",c="[object Proxy]";t.exports=function(t){if(!i(t))return!1;var e=r(t);return e==o||e==s||e==a||e==c}},gHOb:function(t,e,n){var r=n("d4US"),i=n("POb3"),a=n("bO0Y"),o=n("5N57"),s=n("bIbi"),c=n("aCM0"),u=n("Ai/T"),l="[object Promise]",f="[object WeakMap]",p="[object DataView]",d=u(r),v=u(i),h=u(a),m=u(o),b=u(s),y=c;(r&&y(new r(new ArrayBuffer(1)))!=p||i&&"[object Map]"!=y(new i)||a&&y(a.resolve())!=l||o&&"[object Set]"!=y(new o)||s&&y(new s)!=f)&&(y=function(t){var e=c(t),n="[object Object]"==e?t.constructor:void 0,r=n?u(n):"";if(r)switch(r){case d:return p;case v:return"[object Map]";case h:return l;case m:return"[object Set]";case b:return f}return e}),t.exports=y},gRE1:function(t,e,n){t.exports={default:n("TmV0"),__esModule:!0}},gSvA:function(t,e,n){var r=n("kM2E"),i=n("mbce")(!0);r(r.S,"Object",{entries:function(t){return i(t)}})},ggOT:function(t,e,n){(function(t){var r=n("TQ3y"),i=n("gwcX"),a="object"==typeof e&&e&&!e.nodeType&&e,o=a&&"object"==typeof t&&t&&!t.nodeType&&t,s=o&&o.exports===a?r.Buffer:void 0,c=(s?s.isBuffer:void 0)||i;t.exports=c}).call(e,n("3IRH")(t))},gwcX:function(t,e){t.exports=function(){return!1}},hIPy:function(t,e,n){var r=n("NGEn"),i=n("6MiT"),a=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,o=/^\w*$/;t.exports=function(t,e){if(r(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!i(t))||o.test(t)||!a.test(t)||null!=e&&t in Object(e)}},hrPF:function(t,e){t.exports=function(t,e){var n=-1,r=t.length;for(e||(e=Array(r));++n<r;)e[n]=t[n];return e}},hvFG:function(t,e,n){"use strict";var r=function(){var t=this.$createElement,e=this._self._c||t;return e(this.tag,{tag:"component"},[e("nuxt-link",{attrs:{to:"#p-"+this.schema.$id}},[e("span",{domProps:{innerHTML:this._s(this.schema.$step)}})]),this.schema.properties||this.schema.patternProperties||this.schema.items?e("ul",[this._l(this.schema.properties,function(t,n){return e("schemaToc",{key:n,attrs:{schema:t}})}),this._l(this.schema.patternProperties,function(t,n){return e("schemaToc",{key:n,attrs:{schema:t}})}),this.schema.items?[this.schema.items instanceof Array?this._l(this.schema.items,function(t,n){return e("schemaToc",{key:n,attrs:{schema:t}})}):e("schemaToc",{attrs:{schema:this.schema.items}})]:this._e()],2):this._e()],1)};r._withStripped=!0;var i={render:r,staticRenderFns:[]};e.a=i},i4ON:function(t,e,n){var r=n("nw3t"),i=n("22B7"),a=Object.prototype.hasOwnProperty;t.exports=function(t,e,n){var o=t[e];a.call(t,e)&&i(o,n)&&(void 0!==n||e in t)||r(t,e,n)}},imBK:function(t,e,n){var r=n("22B7");t.exports=function(t,e){for(var n=t.length;n--;)if(r(t[n][0],e))return n;return-1}},jD7S:function(t,e,n){var r=n("tv3T"),i=n("ktak");t.exports=function(t,e){return t&&r(e,i(e),t)}},jMi8:function(t,e,n){var r=n("O1jc"),i=n("mKB/"),a=n("Ilb/"),o=n("hrPF"),s=n("WQFf"),c=n("1Yb9"),u=n("NGEn"),l=n("Fp5l"),f=n("ggOT"),p=n("gGqR"),d=n("yCNF"),v=n("9UkZ"),h=n("YsVG"),m=n("TlPD");t.exports=function(t,e,n,b,y,_,x){var g=t[n],j=e[n],C=x.get(j);if(C)r(t,n,C);else{var O=_?_(g,j,n+"",t,e,x):void 0,w=void 0===O;if(w){var k=u(j),T=!k&&f(j),P=!k&&!T&&h(j);O=j,k||T||P?u(g)?O=g:l(g)?O=o(g):T?(w=!1,O=i(j,!0)):P?(w=!1,O=a(j,!0)):O=[]:v(j)||c(j)?(O=g,c(g)?O=m(g):(!d(g)||b&&p(g))&&(O=s(j))):w=!1}w&&(x.set(j,O),y(O,j,b,_,x),x.delete(j)),r(t,n,O)}}},jhkR:function(t,e,n){"use strict";var r=n("lOo0");e.a={props:{link:{required:!0}},methods:{isSchema:function(t){return t instanceof r.a}}}},ktak:function(t,e,n){var r=n("7e4z"),i=n("/GnY"),a=n("bGc4");t.exports=function(t){return a(t)?r(t):i(t)}},l9Lx:function(t,e,n){var r=n("lb6C"),i=n("C0hh"),a=Object.prototype.propertyIsEnumerable,o=Object.getOwnPropertySymbols,s=o?function(t){return null==t?[]:(t=Object(t),r(o(t),function(e){return a.call(t,e)}))}:i;t.exports=s},lOo0:function(t,e,n){"use strict";var r=n("woOf"),i=n.n(r),a=n("d7EF"),o=n.n(a),s=n("W3Iv"),c=n.n(s),u=n("Zrlr"),l=n.n(u),f=n("wxAW"),p=n.n(f),d=n("bklM"),v=n.n(d),h=n("rVUV"),m=n.n(h),b=n("Dc7M"),y=n.n(b),_=function(){function t(e,n,r){l()(this,t),this.$id=t.idx++,this.$step=e,this.$parent=n,r&&this.parseFrom(r)}return p()(t,[{key:"toJSON",value:function(){var e=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this;return m()(n,function(n,r,i,a){if(n instanceof t)return c()(n).filter(function(t){var e=o()(t,2),n=e[0];e[1];return["$id","$step","$parent"].indexOf(n)<0}).reduce(function(t,n){var r=o()(n,2),i=r[0],a=r[1];return t[i]=e.toJSON(a),t},{})})}},{key:"getPath",value:function(){var t="";return this.$parent&&(t+=this.$parent.schema.getPath(),"object"===this.$parent.schema.type&&(t+=".")),t+=this.$step,this.getPath=function(){return t},t}},{key:"parseFrom",value:function(e){var n=this;return!0===e?e={}:!1===e&&(e={not:!0}),i()(this,y()(v()(e),["$step","$id","$parent","items","properties","patternProperties","additionalItems","additionalProperties","contains","propertyNames","not","allOf","anyOf","oneOf"])),e.items&&(e.items instanceof Array?this.items=e.items.map(function(r,i){return new t("["+i+"]",{schema:n,path:"items["+i+"]"}).parseFrom(e.items[i])}):this.items=new t("[*]",{schema:this,path:"items"}).parseFrom(e.items)),["properties","patternProperties"].filter(function(t){return e.hasOwnProperty(t)}).forEach(function(r){return c()(e[r]).forEach(function(e,i){var a=o()(e,2),s=a[0],c=a[1];n[r]=n[r]||{},n[r][s]=new t(""+("patternProperties"===r?"&lt;field&gt;":s),{schema:n,path:r+'["'+s+'"]'}).parseFrom(c)})}),["additionalItems","additionalProperties","contains","propertyNames","not"].filter(function(t){return e.hasOwnProperty(t)}).forEach(function(r){n[r]=new t("+",{schema:n,path:r}).parseFrom(e[r])}),["allOf","anyOf","oneOf"].filter(function(t){return e.hasOwnProperty(t)}).forEach(function(r){return e[r].forEach(function(e,i){n[r]=n[r]||[],n[r].push(new t("("+i+")"+("anyOf"===r?"?":"+"),{schema:n,path:r+"["+i+"]"}).parseFrom(e))})}),this}}]),t}();_.idx=0,e.a=_},lb6C:function(t,e){t.exports=function(t,e){for(var n=-1,r=null==t?0:t.length,i=0,a=[];++n<r;){var o=t[n];e(o,n,t)&&(a[i++]=o)}return a}},"mKB/":function(t,e,n){(function(t){var r=n("TQ3y"),i="object"==typeof e&&e&&!e.nodeType&&e,a=i&&"object"==typeof t&&t&&!t.nodeType&&t,o=a&&a.exports===i?r.Buffer:void 0,s=o?o.allocUnsafe:void 0;t.exports=function(t,e){if(e)return t.slice();var n=t.length,r=s?s(n):new t.constructor(n);return t.copy(r),r}}).call(e,n("3IRH")(t))},mQxp:function(t,e,n){"use strict";var r=n("Gs0Q"),i=n("hvFG"),a=!1;var o=function(t){a||n("AxiT")},s=n("VU/8")(r.a,i.a,!1,o,null,null);s.options.__file="components\\schemaToc.vue",e.a=s.exports},mTAn:function(t,e){t.exports=function(t,e){return null==t?void 0:t[e]}},mbce:function(t,e,n){var r=n("lktj"),i=n("TcQ7"),a=n("NpIQ").f;t.exports=function(t){return function(e){for(var n,o=i(e),s=r(o),c=s.length,u=0,l=[];c>u;)a.call(o,n=s[u++])&&l.push(t?[n,o[n]]:o[n]);return l}}},mgnk:function(t,e,n){var r=n("aCM0"),i=n("UnEC"),a="[object Arguments]";t.exports=function(t){return i(t)&&r(t)==a}},nWuj:function(t,e){t.exports=function(t,e){return t.add(e),t}},nw3t:function(t,e,n){var r=n("p0bc");t.exports=function(t,e,n){"__proto__"==e&&r?r(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}},o2mx:function(t,e,n){var r=n("NkRn"),i=n("Hxdr"),a=n("NGEn"),o=n("6MiT"),s=1/0,c=r?r.prototype:void 0,u=c?c.toString:void 0;t.exports=function t(e){if("string"==typeof e)return e;if(a(e))return i(e,t)+"";if(o(e))return u?u.call(e):"";var n=e+"";return"0"==n&&1/e==-s?"-0":n}},octw:function(t,e){t.exports=function(t){var e=-1,n=Array(t.size);return t.forEach(function(t){n[++e]=t}),n}},oqL2:function(t,e){t.exports=function(t){var e=null==t?0:t.length;return e?t[e-1]:void 0}},p0bc:function(t,e,n){var r=n("ICSD"),i=function(){try{var t=r(Object,"defineProperty");return t({},"",{}),t}catch(t){}}();t.exports=i},pTUa:function(t,e,n){var r=n("/I3N");t.exports=function(t,e){var n=t.__data__;return r(e)?n["string"==typeof e?"string":"hash"]:n.map}},py9u:function(t,e,n){var r=n("tv3T"),i=n("t8rQ");t.exports=function(t,e){return t&&r(e,i(e),t)}},qwTf:function(t,e,n){var r=n("TQ3y").Uint8Array;t.exports=r},qyJz:function(t,e,n){"use strict";var r=n("+ZMJ"),i=n("kM2E"),a=n("sB3e"),o=n("msXi"),s=n("Mhyx"),c=n("QRG4"),u=n("fBQ2"),l=n("3fs2");i(i.S+i.F*!n("dY0y")(function(t){Array.from(t)}),"Array",{from:function(t){var e,n,i,f,p=a(t),d="function"==typeof this?this:Array,v=arguments.length,h=v>1?arguments[1]:void 0,m=void 0!==h,b=0,y=l(p);if(m&&(h=r(h,v>2?arguments[2]:void 0,2)),void 0==y||d==Array&&s(y))for(n=new d(e=c(p.length));e>b;b++)u(n,b,m?h(p[b],b):p[b]);else for(f=y.call(p),n=new d;!(i=f.next()).done;b++)u(n,b,m?o(f,h,[i.value,b],!0):i.value);return n.length=b,n}})},rCVp:function(t,e,n){var r=n("1C79");t.exports=function(t){return null!=t&&t.length?r(t,1):[]}},rVUV:function(t,e,n){var r=n("Fkvj"),i=1,a=4;t.exports=function(t,e){return r(t,i|a,e="function"==typeof e?e:void 0)}},rpnb:function(t,e,n){var r=n("tHks")();t.exports=r},s8mu:function(t,e,n){"use strict";var r=n("cER1"),i=n("D9sP"),a=!1;var o=function(t){a||n("A51D")},s=n("VU/8")(r.a,i.a,!1,o,null,null);s.options.__file="components\\schemaDetail.vue",e.a=s.exports},t8rQ:function(t,e,n){var r=n("7e4z"),i=n("G0Wc"),a=n("bGc4");t.exports=function(t){return a(t)?r(t,!0):i(t)}},tHks:function(t,e){t.exports=function(t){return function(e,n,r){for(var i=-1,a=Object(e),o=r(e),s=o.length;s--;){var c=o[t?s:++i];if(!1===n(a[c],c,a))break}return e}}},tv3T:function(t,e,n){var r=n("i4ON"),i=n("nw3t");t.exports=function(t,e,n,a){var o=!n;n||(n={});for(var s=-1,c=e.length;++s<c;){var u=e[s],l=a?a(n[u],t[u],u,n,t):void 0;void 0===l&&(l=t[u]),o?i(n,u,l):r(n,u,l)}return n}},uCi2:function(t,e,n){var r=n("bIjD"),i=n("Ubhr");t.exports=function(t,e){for(var n=0,a=(e=r(e,t)).length;null!=t&&n<a;)t=t[i(e[n++])];return n&&n==a?t:void 0}},uIr7:function(t,e){t.exports=function(t,e){for(var n=-1,r=e.length,i=t.length;++n<r;)t[i+n]=e[n];return t}},uLhX:function(t,e,n){var r=n("NkRn"),i=Object.prototype,a=i.hasOwnProperty,o=i.toString,s=r?r.toStringTag:void 0;t.exports=function(t){var e=a.call(t,s),n=t[s];try{t[s]=void 0;var r=!0}catch(t){}var i=o.call(t);return r&&(e?t[s]=n:delete t[s]),i}},"ue/d":function(t,e){t.exports=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}},uieL:function(t,e){t.exports=function(t,e){for(var n=-1,r=Array(t);++n<t;)r[n]=e(n);return r}},"us/S":function(t,e,n){t.exports={default:n("Xd32"),__esModule:!0}},v8Dt:function(t,e,n){var r=n("pTUa");t.exports=function(t){return r(this,t).get(t)}},vi0E:function(t,e,n){var r=n("f931")(Object.getPrototypeOf,Object);t.exports=r},wEtr:function(t,e,n){n("gSvA"),t.exports=n("FeBl").Object.entries},wSKX:function(t,e){t.exports=function(t){return t}},wxAW:function(t,e,n){"use strict";e.__esModule=!0;var r,i=n("C4MV"),a=(r=i)&&r.__esModule?r:{default:r};e.default=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),(0,a.default)(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}()},xond:function(t,e,n){var r=n("FCuZ"),i=n("09Qt"),a=n("t8rQ");t.exports=function(t){return r(t,a,i)}},yCNF:function(t,e){t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},z4hc:function(t,e,n){var r=n("aCM0"),i=n("Rh28"),a=n("UnEC"),o={};o["[object Float32Array]"]=o["[object Float64Array]"]=o["[object Int8Array]"]=o["[object Int16Array]"]=o["[object Int32Array]"]=o["[object Uint8Array]"]=o["[object Uint8ClampedArray]"]=o["[object Uint16Array]"]=o["[object Uint32Array]"]=!0,o["[object Arguments]"]=o["[object Array]"]=o["[object ArrayBuffer]"]=o["[object Boolean]"]=o["[object DataView]"]=o["[object Date]"]=o["[object Error]"]=o["[object Function]"]=o["[object Map]"]=o["[object Number]"]=o["[object Object]"]=o["[object RegExp]"]=o["[object Set]"]=o["[object String]"]=o["[object WeakMap]"]=!1,t.exports=function(t){return a(t)&&i(t.length)&&!!o[r(t)]}},zBOP:function(t,e,n){var r=n("22B7"),i=n("bGc4"),a=n("ZGh9"),o=n("yCNF");t.exports=function(t,e,n){if(!o(n))return!1;var s=typeof e;return!!("number"==s?i(n)&&a(e,n.length):"string"==s&&e in n)&&r(n[e],t)}},zGZ6:function(t,e,n){var r=n("YeCl"),i="Expected a function";function a(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError(i);var n=function(){var r=arguments,i=e?e.apply(this,r):r[0],a=n.cache;if(a.has(i))return a.get(i);var o=t.apply(this,r);return n.cache=a.set(i,o)||a,o};return n.cache=new(a.Cache||r),n}a.Cache=r,t.exports=a},zpVT:function(t,e,n){var r=n("duB3"),i=n("POb3"),a=n("YeCl"),o=200;t.exports=function(t,e){var n=this.__data__;if(n instanceof r){var s=n.__data__;if(!i||s.length<o-1)return s.push([t,e]),this.size=++n.size,this;n=this.__data__=new a(s)}return n.set(t,e),this.size=n.size,this}}});
\ No newline at end of file
diff --git a/files/pages_specification_v3_process-message.bc1cd203958888d66862.js b/files/pages_specification_v3_process-message.bc1cd203958888d66862.js
new file mode 100644
index 0000000..64f64ea
--- /dev/null
+++ b/files/pages_specification_v3_process-message.bc1cd203958888d66862.js
@@ -0,0 +1 @@
+webpackJsonp([0],{"+66z":function(t,e){var r=Object.prototype.toString;t.exports=function(t){return r.call(t)}},"+99L":function(t,e,r){var n={"./v2/measurement_schema.json":["oGp6",23],"./v2/message_schema.json":["2BTs",22],"./v2/process_schema.json":["rRyJ",21],"./v3/measurement_schema.json":["PpY5",20],"./v3/message_schema.json":["1SJ2",19],"./v3/process_schema.json":["uwRd",18]};function i(t){var e=n[t];return e?r.e(e[1]).then(function(){return r(e[0])}):Promise.reject(new Error("Cannot find module '"+t+"'."))}i.keys=function(){return Object.keys(n)},i.id="+99L",t.exports=i},"+gg+":function(t,e,r){var n=r("TQ3y")["__core-js_shared__"];t.exports=n},"/GnY":function(t,e,r){var n=r("HT7L"),i=r("W529"),o=Object.prototype.hasOwnProperty;t.exports=function(t){if(!n(t))return i(t);var e=[];for(var r in Object(t))o.call(t,r)&&"constructor"!=r&&e.push(r);return e}},"/I3N":function(t,e){t.exports=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t}},"037f":function(t,e,r){var n=r("1oyr"),i=r("p0bc"),o=r("wSKX"),a=i?function(t,e){return i(t,"toString",{configurable:!0,enumerable:!1,value:n(e),writable:!0})}:o;t.exports=a},"09Qt":function(t,e,r){var n=r("uIr7"),i=r("vi0E"),o=r("l9Lx"),a=r("C0hh"),s=Object.getOwnPropertySymbols?function(t){for(var e=[];t;)n(e,o(t)),t=i(t);return e}:a;t.exports=s},"0DSl":function(t,e,r){var n=r("YkxI"),i=r("zBOP");t.exports=function(t){return n(function(e,r){var n=-1,o=r.length,a=o>1?r[o-1]:void 0,s=o>2?r[2]:void 0;for(a=t.length>3&&"function"==typeof a?(o--,a):void 0,s&&i(r[0],r[1],s)&&(a=o<3?void 0:a,o=1),e=Object(e);++n<o;){var c=r[n];c&&t(e,c,n,a)}return e})}},"0uX4":function(t,e,r){var n=r("NkRn"),i=n?n.prototype:void 0,o=i?i.valueOf:void 0;t.exports=function(t){return o?Object(o.call(t)):{}}},"1C79":function(t,e,r){var n=r("uIr7"),i=r("Qp3N");t.exports=function t(e,r,o,a,s){var c=-1,u=e.length;for(o||(o=i),s||(s=[]);++c<u;){var l=e[c];r>0&&o(l)?r>1?t(l,r-1,o,a,s):n(s,l):a||(s[s.length]=l)}return s}},"1QDk":function(t,e,r){var n=r("tv3T"),i=r("09Qt");t.exports=function(t,e){return n(t,i(t),e)}},"1Yb9":function(t,e,r){var n=r("mgnk"),i=r("UnEC"),o=Object.prototype,a=o.hasOwnProperty,s=o.propertyIsEnumerable,c=n(function(){return arguments}())?n:function(t){return i(t)&&a.call(t,"callee")&&!s.call(t,"callee")};t.exports=c},"1oyr":function(t,e){t.exports=function(t){return function(){return t}}},"22B7":function(t,e){t.exports=function(t,e){return t===e||t!=t&&e!=e}},"2Hvv":function(t,e,r){var n=r("imBK");t.exports=function(t){return n(this.__data__,t)>-1}},"2N6f":function(t,e,r){var n=r("rCVp"),i=r("Q2wK"),o=r("WHce");t.exports=function(t){return o(i(t,void 0,n),t+"")}},"3IRH":function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},"3rZI":function(t,e){t.exports=function(t,e,r,n){var i=-1,o=null==t?0:t.length;for(n&&o&&(r=t[++i]);++i<o;)r=e(r,t[i],i,t);return r}},"4yG7":function(t,e,r){var n=r("HAGj");t.exports=function(t,e,r){return null==t?t:n(t,e,r)}},"5/Qr":function(t,e,r){var n=r("Kzd6"),i=r("6Git"),o=r("Jqj6"),a=r("WyC4"),s=r("7jYp"),c=r("0uX4"),u=r("Ilb/"),l="[object Boolean]",f="[object Date]",p="[object Map]",d="[object Number]",v="[object RegExp]",h="[object Set]",m="[object String]",b="[object Symbol]",y="[object ArrayBuffer]",_="[object DataView]",g="[object Float32Array]",x="[object Float64Array]",j="[object Int8Array]",O="[object Int16Array]",C="[object Int32Array]",w="[object Uint8Array]",k="[object Uint8ClampedArray]",P="[object Uint16Array]",E="[object Uint32Array]";t.exports=function(t,e,r,T){var S=t.constructor;switch(e){case y:return n(t);case l:case f:return new S(+t);case _:return i(t,T);case g:case x:case j:case O:case C:case w:case k:case P:case E:return u(t,T);case p:return o(t,T,r);case d:case m:return new S(t);case v:return a(t);case h:return s(t,T,r);case b:return c(t)}}},"5N57":function(t,e,r){var n=r("ICSD")(r("TQ3y"),"Set");t.exports=n},"5PlU":function(t,e,r){var n=r("RY/4"),i=r("dSzd")("iterator"),o=r("/bQp");t.exports=r("FeBl").isIterable=function(t){var e=Object(t);return void 0!==e[i]||"@@iterator"in e||o.hasOwnProperty(n(e))}},"5pwE":function(t,e,r){(t.exports=r("YHym")(!1)).push([t.i,".schemaDetail a{text-decoration:none}.schemaDetail .property ul{list-style-type:disc;padding-left:1em;margin-left:0;margin-top:0}",""])},"5zde":function(t,e,r){r("zQR9"),r("qyJz"),t.exports=r("FeBl").Array.from},"6Git":function(t,e,r){var n=r("Kzd6");t.exports=function(t,e){var r=e?n(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}},"6MiT":function(t,e,r){var n=r("aCM0"),i=r("UnEC"),o="[object Symbol]";t.exports=function(t){return"symbol"==typeof t||i(t)&&n(t)==o}},"77aO":function(t,e,r){"use strict";e.a={props:{collapsed:{type:Boolean,default:!1}},data:function(){return{expanded:!this.collapsed,transitioning:!1}},watch:{collapsed:function(t){this.expanded=!t}},methods:{beforeenter:function(t){this.transitioning=!0,t.style.height=0},enter:function(t){t.style.height=t.scrollHeight+"px"},afterenter:function(t){t.style.height="",this.transitioning=!1},beforeleave:function(t){this.transitioning=!0,t.style.height=t.offsetHeight+"px",t.offsetHeight},leave:function(t){t.style.height=0,t.offsetHeight},afterleave:function(t){this.transitioning=!1},toggle:function(){this.transitioning||(this.expanded=!this.expanded,this.$emit(this.expanded?"expanding":"collapsing",this.id))}}}},"7e4z":function(t,e,r){var n=r("uieL"),i=r("1Yb9"),o=r("NGEn"),a=r("ggOT"),s=r("ZGh9"),c=r("YsVG"),u=Object.prototype.hasOwnProperty;t.exports=function(t,e){var r=o(t),l=!r&&i(t),f=!r&&!l&&a(t),p=!r&&!l&&!f&&c(t),d=r||l||f||p,v=d?n(t.length,String):[],h=v.length;for(var m in t)!e&&!u.call(t,m)||d&&("length"==m||f&&("offset"==m||"parent"==m)||p&&("buffer"==m||"byteLength"==m||"byteOffset"==m)||s(m,h))||v.push(m);return v}},"7jYp":function(t,e,r){var n=r("nWuj"),i=r("3rZI"),o=r("octw"),a=1;t.exports=function(t,e,r){var s=e?r(o(t),a):o(t);return i(s,n,new t.constructor)}},"8AZL":function(t,e){t.exports=function(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}},"8gK5":function(t,e){t.exports=function(t){var e=[];if(null!=t)for(var r in Object(t))e.push(r);return e}},"94sX":function(t,e,r){var n=r("dCZQ");t.exports=function(){this.__data__=n?n(null):{},this.size=0}},"9UkZ":function(t,e,r){var n=r("aCM0"),i=r("vi0E"),o=r("UnEC"),a="[object Object]",s=Function.prototype,c=Object.prototype,u=s.toString,l=c.hasOwnProperty,f=u.call(Object);t.exports=function(t){if(!o(t)||n(t)!=a)return!1;var e=i(t);if(null===e)return!0;var r=l.call(e,"constructor")&&e.constructor;return"function"==typeof r&&r instanceof r&&u.call(r)==f}},A51D:function(t,e,r){var n=r("5pwE");"string"==typeof n&&(n=[[t.i,n,""]]),n.locals&&(t.exports=n.locals);r("rjj0")("188b52d2",n,!1)},A9mX:function(t,e,r){var n=r("pTUa");t.exports=function(t){var e=n(this,t).delete(t);return this.size-=e?1:0,e}},"Ai/T":function(t,e){var r=Function.prototype.toString;t.exports=function(t){if(null!=t){try{return r.call(t)}catch(t){}try{return t+""}catch(t){}}return""}},AxiT:function(t,e,r){var n=r("Lw7C");"string"==typeof n&&(n=[[t.i,n,""]]),n.locals&&(t.exports=n.locals);r("rjj0")("0868896c",n,!1)},C0hh:function(t,e){t.exports=function(){return[]}},CW5P:function(t,e,r){var n=r("T/bE"),i=r("duB3"),o=r("POb3");t.exports=function(){this.size=0,this.__data__={hash:new n,map:new(o||i),string:new n}}},Cf65:function(t,e,r){var n=r("uCi2"),i=r("M1c9");t.exports=function(t,e){return e.length<2?t:n(t,i(e,0,-1))}},D9sP:function(t,e,r){"use strict";var n=function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("div",{staticClass:"schemaDetail",class:{"is-loading":t.loading},attrs:{id:"schema-detail"}},[r("div",{staticClass:"accordion"},[null!==t.masterSchema?r("card",{attrs:{collapsed:!0}},[r("template",{slot:"header"},[t._v("\n        Structure of the payload\n      ")]),r("ul",t._l(t.masterSchema.properties,function(t,e){return r("schemaToc",{key:e,attrs:{schema:t}})}))],2):t._e(),t._t("default")],2),r("h1",[r("a",{attrs:{id:t.type+"-schema-detail",title:t.type+" Fields definition"}}),t._v("\n    Fields definition\n  ")]),t._l(t.schemas,function(e){return r("div",{key:e.$id,staticClass:"card property"},[r("header",{staticClass:"card-header"},[r("a",{attrs:{id:"p-"+e.$id}}),r("p",{staticClass:"card-header-title"},[r("span",{domProps:{innerHTML:t._s(e.getPath())}})]),r("nuxt-link",{staticClass:"card-header-icon",attrs:{to:"#schema-detail",title:"go up"}},[r("span",{staticClass:"icon"},[r("i",{staticClass:"fa fa-angle-up"})])])],1),r("div",{staticClass:"card-content"},[e.description||e.type?r("div",{staticClass:"field is-horizontal"},[t._m(0,!0),e.description?r("div",{staticClass:"field-body"},[t._v("\n          "+t._s(e.description)+"\n        ")]):e.type?r("div",{staticClass:"field-body"},[t._v("\n          A simple "+t._s(t._f("capitalize")(e.type))+"\n        ")]):t._e()]):t._e(),e.$parent?r("div",{staticClass:"field is-horizontal"},[t._m(1,!0),r("div",{staticClass:"field-body"},[r("nuxt-link",{attrs:{to:"#p-"+e.$parent.schema.$id}},[r("span",{domProps:{innerHTML:t._s(e.$parent.schema.getPath())}})])],1)]):t._e(),e.type?r("div",{staticClass:"field is-horizontal"},[t._m(2,!0),r("div",{staticClass:"field-body"},[t._v("\n          "+t._s(t._f("capitalize")(e.type,e))+"\n        ")])]):t._e(),e.format?r("div",{staticClass:"field is-horizontal"},[t._m(3,!0),r("div",{staticClass:"field-body"},[t._v("\n          "+t._s(e.format)+"\n          "),t.$static.formats[e.format]?r("a",{attrs:{href:t.$static.formats[e.format].link}},[t._v(" ("+t._s(t.$static.formats[e.format].name)+")")]):t._e()])]):t._e(),e.enum&&e.enum.length?r("div",{staticClass:"field is-horizontal"},[t._m(4,!0),r("div",{staticClass:"field-body"},[r("div",[t._v("\n            "+t._s(e.enum.join(", "))+"\n          ")])])]):t._e(),e.hasOwnProperty("default")?r("div",{staticClass:"field is-horizontal"},[t._m(5,!0),r("div",{staticClass:"field-body"},[r("div",[t._v("\n            "+t._s(e.default)+"\n          ")])])]):t._e(),e.maxLength?r("div",{staticClass:"field is-horizontal"},[t._m(6,!0),r("div",{staticClass:"field-body"},[r("div",[t._v("\n            "+t._s(e.maxLength)+"\n          ")])])]):t._e(),e.properties||e.patternProperties||e.items?r("div",{staticClass:"field is-horizontal"},[t._m(7,!0),r("div",{staticClass:"field-body"},[Object.keys(e.properties||{}).length>0?r("schemaLink",{attrs:{link:e.properties}}):t._e(),Object.keys(e.patternProperties||{}).length>0?r("schemaLink",{attrs:{link:e.patternProperties}},[r("div",[t._v("Matching regular expressions:")])]):t._e(),!e.items||e.items instanceof Array?e.items?r("schemaLink",{attrs:{link:e.items}},[r("div",[t._v("Ordered items of type:")])]):t._e():r("schemaLink",{attrs:{link:e.items}}),Object.keys(e.properties||{}).length+Object.keys(e.patternProperties||{}).length!==0||e.items?t._e():[t._v("none")]],2)]):t._e(),e.minProperties?r("div",{staticClass:"field is-horizontal"},[t._m(8,!0),r("div",{staticClass:"field-body"},[r("div",[t._v("\n            "+t._s(e.minProperties)+"\n          ")])])]):t._e(),e.minItems?r("div",{staticClass:"field is-horizontal"},[t._m(9,!0),r("div",{staticClass:"field-body"},[r("div",[t._v("\n            "+t._s(e.minItems)+"\n          ")])])]):t._e(),e.hasOwnProperty("additionalProperties")?r("div",{staticClass:"field is-horizontal"},[t._m(10,!0),"boolean"==typeof e.additionalProperties?r("schemaLink",{staticClass:"field-body",attrs:{link:e.additionalProperties}}):r("div",{staticClass:"field-body"},[t._v("\n          if fulfilling "),r("schemaLink",{staticClass:"field-body",attrs:{link:e.additionalProperties}})],1)],1):t._e(),e.not||e.oneOf||e.allOf||e.anyOf?r("div",{staticClass:"field is-horizontal"},[t._m(11,!0),r("div",{staticClass:"field-body"},[e.not?r("schemaLink",{attrs:{link:e.not}},[t._v("\n            Not fulfilling \n          ")]):t._e(),e.oneOf?r("schemaLink",{attrs:{link:e.oneOf}},[r("div",[t._v("Fulfilling exactly one of:")])]):t._e(),e.allOf?r("schemaLink",{attrs:{link:e.allOf}},[r("div",[t._v("Fulfilling all of:")])]):t._e(),e.anyOf?r("schemaLink",{attrs:{link:e.anyOf}},[r("div",[t._v("Fulfilling one of:")])]):t._e()],1)]):t._e(),e.required&&e.required.length?r("div",{staticClass:"field is-horizontal"},[t._m(12,!0),r("div",{staticClass:"field-body"},[t._v("\n          "+t._s(e.required.join(", "))+"\n        ")])]):t._e(),e.examples?r("div",{staticClass:"field is-horizontal"},[t._m(13,!0),r("div",{staticClass:"field-body"},t._l(e.examples,function(e,n){return r("prism",{key:n,attrs:{language:"json"}},[t._v(t._s(t._f("stringify")(e)))])}))]):t._e()])])})],2)};n._withStripped=!0;var i={render:n,staticRenderFns:[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Description:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Parent:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Type:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Format:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Possible values:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Defaults to:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Maximum length:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Restriction on subfields:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Minimum amount of subfields:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Minimum amount of items:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Allows additional fields:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Restriction with boolean logic:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Required fields:")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"field-label"},[e("label",{staticClass:"label"},[this._v("Example:")])])}]};e.a=i},Dc0G:function(t,e,r){(function(t){var n=r("blYT"),i="object"==typeof e&&e&&!e.nodeType&&e,o=i&&"object"==typeof t&&t&&!t.nodeType&&t,a=o&&o.exports===i&&n.process,s=function(){try{return a&&a.binding&&a.binding("util")}catch(t){}}();t.exports=s}).call(e,r("3IRH")(t))},Dc7M:function(t,e,r){var n=r("Hxdr"),i=r("Fkvj"),o=r("Vi3P"),a=r("bIjD"),s=r("tv3T"),c=r("dYhQ"),u=r("2N6f"),l=r("xond"),f=u(function(t,e){var r={};if(null==t)return r;var u=!1;e=n(e,function(e){return e=a(e,t),u||(u=e.length>1),e}),s(t,l(t),r),u&&(r=i(r,7,c));for(var f=e.length;f--;)o(r,e[f]);return r});t.exports=f},Dv2r:function(t,e,r){var n=r("pTUa");t.exports=function(t,e){var r=n(this,t),i=r.size;return r.set(t,e),this.size+=r.size==i?0:1,this}},E4Hj:function(t,e){t.exports=function(t){return this.__data__.get(t)}},FCuZ:function(t,e,r){var n=r("uIr7"),i=r("NGEn");t.exports=function(t,e,r){var o=e(t);return i(t)?o:n(o,r(t))}},Fkvj:function(t,e,r){var n=r("bJWQ"),i=r("PqYH"),o=r("i4ON"),a=r("jD7S"),s=r("py9u"),c=r("mKB/"),u=r("hrPF"),l=r("Nkkh"),f=r("1QDk"),p=r("MoMe"),d=r("xond"),v=r("gHOb"),h=r("UfSK"),m=r("5/Qr"),b=r("WQFf"),y=r("NGEn"),_=r("ggOT"),g=r("yCNF"),x=r("ktak"),j=1,O=2,C=4,w="[object Arguments]",k="[object Function]",P="[object GeneratorFunction]",E="[object Object]",T={};T[w]=T["[object Array]"]=T["[object ArrayBuffer]"]=T["[object DataView]"]=T["[object Boolean]"]=T["[object Date]"]=T["[object Float32Array]"]=T["[object Float64Array]"]=T["[object Int8Array]"]=T["[object Int16Array]"]=T["[object Int32Array]"]=T["[object Map]"]=T["[object Number]"]=T[E]=T["[object RegExp]"]=T["[object Set]"]=T["[object String]"]=T["[object Symbol]"]=T["[object Uint8Array]"]=T["[object Uint8ClampedArray]"]=T["[object Uint16Array]"]=T["[object Uint32Array]"]=!0,T["[object Error]"]=T[k]=T["[object WeakMap]"]=!1,t.exports=function t(e,r,S,A,I,$){var D,F=r&j,M=r&O,z=r&C;if(S&&(D=I?S(e,A,I,$):S(e)),void 0!==D)return D;if(!g(e))return e;var N=y(e);if(N){if(D=h(e),!F)return u(e,D)}else{var U=v(e),Q=U==k||U==P;if(_(e))return c(e,F);if(U==E||U==w||Q&&!I){if(D=M||Q?{}:b(e),!F)return M?f(e,s(D,e)):l(e,a(D,e))}else{if(!T[U])return I?e:{};D=m(e,U,t,F)}}$||($=new n);var G=$.get(e);if(G)return G;$.set(e,D);var H=z?M?d:p:M?keysIn:x,L=N?void 0:H(e);return i(L||e,function(n,i){L&&(n=e[i=n]),o(D,i,t(n,r,S,i,e,$))}),D}},Fp5l:function(t,e,r){var n=r("bGc4"),i=r("UnEC");t.exports=function(t){return i(t)&&n(t)}},G0Wc:function(t,e,r){var n=r("yCNF"),i=r("HT7L"),o=r("8gK5"),a=Object.prototype.hasOwnProperty;t.exports=function(t){if(!n(t))return o(t);var e=i(t),r=[];for(var s in t)("constructor"!=s||!e&&a.call(t,s))&&r.push(s);return r}},G2xm:function(t,e){t.exports=function(t){return this.__data__.has(t)}},Gs0Q:function(t,e,r){"use strict";e.a={name:"schemaToc",props:{tag:{type:String,default:"li"},schema:{type:Object,required:!0}}}},Gu7T:function(t,e,r){"use strict";e.__esModule=!0;var n,i=r("c/Tr"),o=(n=i)&&n.__esModule?n:{default:n};e.default=function(t){if(Array.isArray(t)){for(var e=0,r=Array(t.length);e<t.length;e++)r[e]=t[e];return r}return(0,o.default)(t)}},HAGj:function(t,e,r){var n=r("i4ON"),i=r("bIjD"),o=r("ZGh9"),a=r("yCNF"),s=r("Ubhr");t.exports=function(t,e,r,c){if(!a(t))return t;for(var u=-1,l=(e=i(e,t)).length,f=l-1,p=t;null!=p&&++u<l;){var d=s(e[u]),v=r;if(u!=f){var h=p[d];void 0===(v=c?c(h,d,p):void 0)&&(v=a(h)?h:o(e[u+1])?[]:{})}n(p,d,v),p=p[d]}return t}},HN2V:function(t,e,r){var n=r("HbnZ"),i=r("0DSl")(function(t,e,r){n(t,e,r)});t.exports=i},HT7L:function(t,e){var r=Object.prototype;t.exports=function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||r)}},HbnZ:function(t,e,r){var n=r("bJWQ"),i=r("O1jc"),o=r("rpnb"),a=r("jMi8"),s=r("yCNF"),c=r("t8rQ");t.exports=function t(e,r,u,l,f){e!==r&&o(r,function(o,c){if(s(o))f||(f=new n),a(e,r,c,u,t,l,f);else{var p=l?l(e[c],o,c+"",e,r,f):void 0;void 0===p&&(p=o),i(e,c,p)}},c)}},Hxdr:function(t,e){t.exports=function(t,e){for(var r=-1,n=null==t?0:t.length,i=Array(n);++r<n;)i[r]=e(t[r],r,t);return i}},ICSD:function(t,e,r){var n=r("ITwD"),i=r("mTAn");t.exports=function(t,e){var r=i(t,e);return n(r)?r:void 0}},ITwD:function(t,e,r){var n=r("gGqR"),i=r("eFps"),o=r("yCNF"),a=r("Ai/T"),s=/^\[object .+?Constructor\]$/,c=Function.prototype,u=Object.prototype,l=c.toString,f=u.hasOwnProperty,p=RegExp("^"+l.call(f).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=function(t){return!(!o(t)||i(t))&&(n(t)?p:s).test(a(t))}},"Ilb/":function(t,e,r){var n=r("Kzd6");t.exports=function(t,e){var r=e?n(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}},JBvZ:function(t,e,r){var n=r("imBK");t.exports=function(t){var e=this.__data__,r=n(e,t);return r<0?void 0:e[r][1]}},Jqj6:function(t,e,r){var n=r("U7Aq"),i=r("3rZI"),o=r("WFiI"),a=1;t.exports=function(t,e,r){var s=e?r(o(t),a):o(t);return i(s,n,new t.constructor)}},KmWZ:function(t,e,r){var n=r("duB3");t.exports=function(){this.__data__=new n,this.size=0}},Kzd6:function(t,e,r){var n=r("qwTf");t.exports=function(t){var e=new t.constructor(t.byteLength);return new n(e).set(new n(t)),e}},LJry:function(t,e,r){"use strict";var n={functional:!0,props:{code:{type:String},language:{type:String,default:"markup"}},render:function(t,e){var r=e.props.code||e.children[0].text,n=e.props.language,i=Prism.languages[n],o="language-"+n;return t("pre",function(t){for(var e=arguments,r=1;r<arguments.length;r++)for(var n in arguments[r])t[n]=e[r][n];return t}({},e.data,{class:[e.data.class,o]}),[t("code",{class:o,domProps:{innerHTML:Prism.highlight(r,i)}})])}};t.exports=n},Lw7C:function(t,e,r){(t.exports=r("YHym")(!1)).push([t.i,"@keyframes spinAround{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}",""])},M1c9:function(t,e){t.exports=function(t,e,r){var n=-1,i=t.length;e<0&&(e=-e>i?0:i+e),(r=r>i?i:r)<0&&(r+=i),i=e>r?0:r-e>>>0,e>>>=0;for(var o=Array(i);++n<i;)o[n]=t[n+e];return o}},MoMe:function(t,e,r){var n=r("FCuZ"),i=r("l9Lx"),o=r("ktak");t.exports=function(t){return n(t,o,i)}},NGEn:function(t,e){var r=Array.isArray;t.exports=r},NVTU:function(t,e,r){"use strict";var n=function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("div",{staticClass:"card collapsibleCard",class:{collapsed:!t.expanded}},[t.$slots.header?r("header",{staticClass:"card-header",on:{click:function(e){e.preventDefault(),t.toggle()}}},[r("p",{staticClass:"card-header-title"},[!t.$slots.headerCollapsed||t.expanded?t._t("header"):t._t("headerCollapsed")],2),r("a",{staticClass:"card-header-icon"},[r("span",{staticClass:"icon"},[r("i",{staticClass:"fa",class:{"fa-angle-down":t.expanded,"fa-angle-up":!t.expanded}})])])]):t._e(),r("transition",{attrs:{name:"rollup","leave-active-class":"collapsing","enter-active-class":"collapsing"},on:{"before-leave":t.beforeleave,leave:t.leave,"after-leave":t.afterleave,"before-enter":t.beforeenter,enter:t.enter,"after-enter":t.afterenter}},[r("div",{directives:[{name:"show",rawName:"v-show",value:t.expanded,expression:"expanded"}]},[r("div",{staticClass:"card-content"},[t._t("default")],2)])])],1)};n._withStripped=!0;var i={render:n,staticRenderFns:[]};e.a=i},NkRn:function(t,e,r){var n=r("TQ3y").Symbol;t.exports=n},Nkkh:function(t,e,r){var n=r("tv3T"),i=r("l9Lx");t.exports=function(t,e){return n(t,i(t),e)}},NqZt:function(t,e){t.exports=function(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}},O1jc:function(t,e,r){var n=r("nw3t"),i=r("22B7");t.exports=function(t,e,r){(void 0===r||i(t[e],r))&&(void 0!==r||e in t)||n(t,e,r)}},Oey6:function(t,e,r){"use strict";var n=function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"process-message content"},[this._m(0),e("p",[this._v("The process message is the format to exchange data out of discrete processes. It also allows to transport process information, part information and measurement data for each phase of the process.")]),e("img",{staticClass:"is-center",attrs:{src:"images/specification/v3/processPayload.svg",alt:"Class diagram of the Process message payload",title:"Class diagram of the Process Message payload"}}),e("schemaDetail",{attrs:{type:"v3/process",examples:this.$static.examples}},[e("card",{attrs:{collapsed:!0}},[e("template",{slot:"header"},[this._v("\n        Minimal message example \n      ")]),e("prism",{attrs:{language:"json"}},[this._v(this._s(this._f("stringify")(this.$static.message)))])],2),e("card",{attrs:{collapsed:!0}},[e("template",{slot:"header"},[this._v("\n        Process message example \n      ")]),e("prism",{attrs:{language:"json"}},[this._v(this._s(this._f("stringify")(this.$static.complexMessage)))])],2)],1)],1)};n._withStripped=!0;var i={render:n,staticRenderFns:[function(){var t=this.$createElement,e=this._self._c||t;return e("h1",[e("a",{attrs:{id:"Process-Payload",title:"Process Message payload"}}),this._v("\n    Process Payload\n  ")])}]};e.a=i},POb3:function(t,e,r){var n=r("ICSD")(r("TQ3y"),"Map");t.exports=n},PqYH:function(t,e){t.exports=function(t,e){for(var r=-1,n=null==t?0:t.length;++r<n&&!1!==e(t[r],r,t););return t}},Q2wK:function(t,e,r){var n=r("8AZL"),i=Math.max;t.exports=function(t,e,r){return e=i(void 0===e?t.length-1:e,0),function(){for(var o=arguments,a=-1,s=i(o.length-e,0),c=Array(s);++a<s;)c[a]=o[e+a];a=-1;for(var u=Array(e+1);++a<e;)u[a]=o[a];return u[e]=r(c),n(t,this,u)}}},Q7hp:function(t,e,r){var n=r("uCi2");t.exports=function(t,e,r){var i=null==t?void 0:n(t,e);return void 0===i?r:i}},Qp3N:function(t,e,r){var n=r("NkRn"),i=r("1Yb9"),o=r("NGEn"),a=n?n.isConcatSpreadable:void 0;t.exports=function(t){return o(t)||i(t)||!!(a&&t&&t[a])}},RGrk:function(t,e,r){var n=r("dCZQ"),i=Object.prototype.hasOwnProperty;t.exports=function(t){var e=this.__data__;return n?void 0!==e[t]:i.call(e,t)}},Rh28:function(t,e){var r=9007199254740991;t.exports=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=r}},S7p9:function(t,e){t.exports=function(t){return function(e){return t(e)}}},"T/bE":function(t,e,r){var n=r("94sX"),i=r("ue/d"),o=r("eVIm"),a=r("RGrk"),s=r("Z2pD");function c(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}c.prototype.clear=n,c.prototype.delete=i,c.prototype.get=o,c.prototype.has=a,c.prototype.set=s,t.exports=c},T9Hf:function(t,e,r){"use strict";var n=r("77aO"),i=r("NVTU"),o=!1;var a=function(t){o||r("WVEp")},s=r("VU/8")(n.a,i.a,!1,a,null,null);s.options.__file="components\\collapsibleCard.vue",e.a=s.exports},TQ3y:function(t,e,r){var n=r("blYT"),i="object"==typeof self&&self&&self.Object===Object&&self,o=n||i||Function("return this")();t.exports=o},TlPD:function(t,e,r){var n=r("tv3T"),i=r("t8rQ");t.exports=function(t){return n(t,i(t))}},TmV0:function(t,e,r){r("fZOM"),t.exports=r("FeBl").Object.values},U7Aq:function(t,e){t.exports=function(t,e){return t.set(e[0],e[1]),t}},Ubhr:function(t,e,r){var n=r("6MiT"),i=1/0;t.exports=function(t){if("string"==typeof t||n(t))return t;var e=t+"";return"0"==e&&1/t==-i?"-0":e}},UfSK:function(t,e){var r=Object.prototype.hasOwnProperty;t.exports=function(t){var e=t.length,n=t.constructor(e);return e&&"string"==typeof t[0]&&r.call(t,"index")&&(n.index=t.index,n.input=t.input),n}},UnEC:function(t,e){t.exports=function(t){return null!=t&&"object"==typeof t}},UnLw:function(t,e,r){var n=/^\./,i=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,o=/\\(\\)?/g,a=r("fMqj")(function(t){var e=[];return n.test(t)&&e.push(""),t.replace(i,function(t,r,n,i){e.push(n?i.replace(o,"$1"):r||t)}),e});t.exports=a},VORN:function(t,e,r){var n=r("yCNF"),i=Object.create,o=function(){function t(){}return function(e){if(!n(e))return{};if(i)return i(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}}();t.exports=o},Vi3P:function(t,e,r){var n=r("bIjD"),i=r("oqL2"),o=r("Cf65"),a=r("Ubhr");t.exports=function(t,e){return e=n(e,t),null==(t=o(t,e))||delete t[a(i(e))]}},W3Iv:function(t,e,r){t.exports={default:r("wEtr"),__esModule:!0}},W529:function(t,e,r){var n=r("f931")(Object.keys,Object);t.exports=n},WFiI:function(t,e){t.exports=function(t){var e=-1,r=Array(t.size);return t.forEach(function(t,n){r[++e]=[n,t]}),r}},WHce:function(t,e,r){var n=r("037f"),i=r("Zk5a")(n);t.exports=i},WQFf:function(t,e,r){var n=r("VORN"),i=r("vi0E"),o=r("HT7L");t.exports=function(t){return"function"!=typeof t.constructor||o(t)?{}:n(i(t))}},WVEp:function(t,e,r){var n=r("a3hs");"string"==typeof n&&(n=[[t.i,n,""]]),n.locals&&(t.exports=n.locals);r("rjj0")("52cedc5e",n,!1)},WxI4:function(t,e){t.exports=function(){this.__data__=[],this.size=0}},WyC4:function(t,e){var r=/\w*$/;t.exports=function(t){var e=new t.constructor(t.source,r.exec(t));return e.lastIndex=t.lastIndex,e}},Xd32:function(t,e,r){r("+tPU"),r("zQR9"),t.exports=r("5PlU")},YeCl:function(t,e,r){var n=r("CW5P"),i=r("A9mX"),o=r("v8Dt"),a=r("agim"),s=r("Dv2r");function c(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}c.prototype.clear=n,c.prototype.delete=i,c.prototype.get=o,c.prototype.has=a,c.prototype.set=s,t.exports=c},YkxI:function(t,e,r){var n=r("wSKX"),i=r("Q2wK"),o=r("WHce");t.exports=function(t,e){return o(i(t,e,n),t+"")}},YsVG:function(t,e,r){var n=r("z4hc"),i=r("S7p9"),o=r("Dc0G"),a=o&&o.isTypedArray,s=a?i(a):n;t.exports=s},Z2pD:function(t,e,r){var n=r("dCZQ"),i="__lodash_hash_undefined__";t.exports=function(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=n&&void 0===e?i:e,this}},ZGh9:function(t,e){var r=9007199254740991,n=/^(?:0|[1-9]\d*)$/;t.exports=function(t,e){return!!(e=null==e?r:e)&&("number"==typeof t||n.test(t))&&t>-1&&t%1==0&&t<e}},ZT2e:function(t,e,r){var n=r("o2mx");t.exports=function(t){return null==t?"":n(t)}},Zk5a:function(t,e){var r=800,n=16,i=Date.now;t.exports=function(t){var e=0,o=0;return function(){var a=i(),s=n-(a-o);if(o=a,s>0){if(++e>=r)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}},Zrlr:function(t,e,r){"use strict";e.__esModule=!0,e.default=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},a3hs:function(t,e,r){(t.exports=r("YHym")(!1)).push([t.i,"@keyframes spinAround{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}.card.collapsibleCard>header{cursor:pointer;background-color:#f5f5f5;border-bottom:1px solid hsla(0,0%,4%,.1)}.card.collapsibleCard>header .card-header-icon{text-decoration:none}.card.collapsibleCard>header .card-header-title{font-weight:400}.card.collapsibleCard>header p{margin-bottom:0}.card.collapsibleCard.collapsed header{border-bottom:none}.card.collapsibleCard>div.collapsing{position:relative;height:0;overflow:hidden;display:block;transition-property:height;transition-duration:.35s;transition-timing-function:ease}",""])},aCM0:function(t,e,r){var n=r("NkRn"),i=r("uLhX"),o=r("+66z"),a="[object Null]",s="[object Undefined]",c=n?n.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?s:a:c&&c in Object(t)?i(t):o(t)}},agim:function(t,e,r){var n=r("pTUa");t.exports=function(t){return n(this,t).has(t)}},bGc4:function(t,e,r){var n=r("gGqR"),i=r("Rh28");t.exports=function(t){return null!=t&&i(t.length)&&!n(t)}},bIbi:function(t,e,r){var n=r("ICSD")(r("TQ3y"),"WeakMap");t.exports=n},bIjD:function(t,e,r){var n=r("NGEn"),i=r("hIPy"),o=r("UnLw"),a=r("ZT2e");t.exports=function(t,e){return n(t)?t:i(t,e)?[t]:o(a(t))}},bJWQ:function(t,e,r){var n=r("duB3"),i=r("KmWZ"),o=r("NqZt"),a=r("E4Hj"),s=r("G2xm"),c=r("zpVT");function u(t){var e=this.__data__=new n(t);this.size=e.size}u.prototype.clear=i,u.prototype.delete=o,u.prototype.get=a,u.prototype.has=s,u.prototype.set=c,t.exports=u},bO0Y:function(t,e,r){var n=r("ICSD")(r("TQ3y"),"Promise");t.exports=n},"bXX+":function(t,e,r){"use strict";var n=r("jhkR"),i=r("fvMW"),o=r("VU/8")(n.a,i.a,!1,null,null,null);o.options.__file="components\\schemaLink.vue",e.a=o.exports},bklM:function(t,e,r){var n=r("Fkvj"),i=1,o=4;t.exports=function(t){return n(t,i|o)}},blYT:function(t,e,r){(function(e){var r="object"==typeof e&&e&&e.Object===Object&&e;t.exports=r}).call(e,r("DuR2"))},"c/Tr":function(t,e,r){t.exports={default:r("5zde"),__esModule:!0}},cER1:function(t,e,r){"use strict";var n=r("mvHQ"),i=r.n(n),o=r("fZjL"),a=r.n(o),s=r("Gu7T"),c=r.n(s),u=r("gRE1"),l=r.n(u),f=r("d7EF"),p=r.n(f),d=r("W3Iv"),v=r.n(d),h=r("T9Hf"),m=r("rVUV"),b=(r.n(m),r("Q7hp")),y=r.n(b),_=r("HN2V"),g=r.n(_),x=r("LJry"),j=r.n(x),O=r("lOo0"),C=r("bXX+"),w=r("mQxp"),k=r("4yG7"),P=r.n(k);e.a={props:{type:{type:String,required:!0},examples:{type:Object,required:!1,default:function(){return{}}}},data:function(){return{masterSchema:null,loading:!0}},created:function(){var t=this,e={date:{link:"https://tools.ietf.org/html/rfc3339#section-5.6",name:"RFC3339, 5.6"},email:{link:"https://tools.ietf.org/html/rfc5322#section-3.4.1",name:"RFC5322, 3.4.1"}};r("+99L")("./"+this.type+"_schema.json").then(function(e){return console.time("parsing Schema"),t.masterSchema=new O.a("$",null,e),v()(t.examples).forEach(function(e){var r=p()(e,2),n=r[0],i=r[1];y()(t.masterSchema,n)&&P()(t.masterSchema,n+".examples",i)}),console.timeEnd("parsing Schema"),t.loading=!1,e}).catch(function(t){throw t}),this.$static={formats:{"date-time":e.date,date:e.date,time:e.date,email:e.email}}},methods:{traverse:function(t,e){var r=this;t instanceof O.a?(e(t),v()(t).filter(function(t){var e=p()(t,2),r=e[0];e[1];return"$parent"!==r}).forEach(function(t){var n=p()(t,2),i=(n[0],n[1]);return r.traverse(i,e)})):t instanceof Array?t.forEach(function(t){return r.traverse(t,e)}):t instanceof Object&&l()(t).forEach(function(t){return r.traverse(t,e)})},simplifySchema:function(t){var e=function(t){return t.anyOf&&t.anyOf.indexOf(!0)>=0?[t,!0]:t.allOf&&t.allOf.indexOf(!1)>=0?[t,!1]:t.allOf&&t.allOf.length?[t,new O.a(t.$step,t.$parent,g.a.apply(void 0,[{}].concat(c()(t.allOf.map(function(t){return t.toJSON()})))))]:!0===t.not?[t,!1]:0===a()(t).filter(function(t){return"$"!==t[0]}).length?[t,!0]:null};return this.traverse(t,function(t){!function t(r){if(r){var n=p()(r,2),i=n[0],o=n[1],a=i.$parent;a&&P()(a.schema,a.path,o),i.$parent=null,t(e(a.schema))}}(e(t))}),t}},computed:{schemas:function(){if(!this.masterSchema)return null;var t={};return this.traverse(this.simplifySchema(this.masterSchema),function(e){t[e.$id]=e}),t}},filters:{stringify:function(t){return i()(t," ",2)},capitalize:function(t,e){return t?(t instanceof Array||(t=[t]),t.map(function(t){return""+t[0].toUpperCase()+t.slice(1)}).join(", ")):""}},components:{card:h.a,prism:j.a,schemaToc:w.a,schemaLink:C.a}}},d4US:function(t,e,r){var n=r("ICSD")(r("TQ3y"),"DataView");t.exports=n},d7EF:function(t,e,r){"use strict";e.__esModule=!0;var n=o(r("us/S")),i=o(r("BO1k"));function o(t){return t&&t.__esModule?t:{default:t}}e.default=function(){return function(t,e){if(Array.isArray(t))return t;if((0,n.default)(Object(t)))return function(t,e){var r=[],n=!0,o=!1,a=void 0;try{for(var s,c=(0,i.default)(t);!(n=(s=c.next()).done)&&(r.push(s.value),!e||r.length!==e);n=!0);}catch(t){o=!0,a=t}finally{try{!n&&c.return&&c.return()}finally{if(o)throw a}}return r}(t,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}()},dCZQ:function(t,e,r){var n=r("ICSD")(Object,"create");t.exports=n},dFpP:function(t,e,r){var n=r("imBK"),i=Array.prototype.splice;t.exports=function(t){var e=this.__data__,r=n(e,t);return!(r<0||(r==e.length-1?e.pop():i.call(e,r,1),--this.size,0))}},dYhQ:function(t,e,r){var n=r("9UkZ");t.exports=function(t){return n(t)?void 0:t}},deUO:function(t,e,r){var n=r("imBK");t.exports=function(t,e){var r=this.__data__,i=n(r,t);return i<0?(++this.size,r.push([t,e])):r[i][1]=e,this}},duB3:function(t,e,r){var n=r("WxI4"),i=r("dFpP"),o=r("JBvZ"),a=r("2Hvv"),s=r("deUO");function c(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}c.prototype.clear=n,c.prototype.delete=i,c.prototype.get=o,c.prototype.has=a,c.prototype.set=s,t.exports=c},eFps:function(t,e,r){var n,i=r("+gg+"),o=(n=/[^.]+$/.exec(i&&i.keys&&i.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"";t.exports=function(t){return!!o&&o in t}},eVIm:function(t,e,r){var n=r("dCZQ"),i="__lodash_hash_undefined__",o=Object.prototype.hasOwnProperty;t.exports=function(t){var e=this.__data__;if(n){var r=e[t];return r===i?void 0:r}return o.call(e,t)?e[t]:void 0}},f931:function(t,e){t.exports=function(t,e){return function(r){return t(e(r))}}},fBQ2:function(t,e,r){"use strict";var n=r("evD5"),i=r("X8DO");t.exports=function(t,e,r){e in t?n.f(t,e,i(0,r)):t[e]=r}},fMqj:function(t,e,r){var n=r("zGZ6"),i=500;t.exports=function(t){var e=n(t,function(t){return r.size===i&&r.clear(),t}),r=e.cache;return e}},fZOM:function(t,e,r){var n=r("kM2E"),i=r("mbce")(!1);n(n.S,"Object",{values:function(t){return i(t)}})},fvMW:function(t,e,r){"use strict";var n=function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("div",[t._t("default"),!0===t.link?[t._v("\n    yes \n  ")]:!1===t.link?[t._v("\n    no \n  ")]:t.isSchema(t.link)?[r("nuxt-link",{attrs:{to:"#p-"+t.link.$id}},[r("span",{domProps:{innerHTML:t._s(t.link.getPath())}})])]:t.link instanceof Array?r("ul",t._l(t.link,function(e){return r("li",{key:e.$id},[r("nuxt-link",{attrs:{to:"#p-"+e.$id}},[r("span",{domProps:{innerHTML:t._s(e.getPath())}})])],1)})):t.link instanceof Object?r("ul",t._l(t.link,function(e,n){return r("li",[r("nuxt-link",{attrs:{to:"#p-"+e.$id}},[t._v("\n        "+t._s(n)+"\n      ")])],1)})):t._e()],2)};n._withStripped=!0;var i={render:n,staticRenderFns:[]};e.a=i},gGqR:function(t,e,r){var n=r("aCM0"),i=r("yCNF"),o="[object AsyncFunction]",a="[object Function]",s="[object GeneratorFunction]",c="[object Proxy]";t.exports=function(t){if(!i(t))return!1;var e=n(t);return e==a||e==s||e==o||e==c}},gHOb:function(t,e,r){var n=r("d4US"),i=r("POb3"),o=r("bO0Y"),a=r("5N57"),s=r("bIbi"),c=r("aCM0"),u=r("Ai/T"),l="[object Promise]",f="[object WeakMap]",p="[object DataView]",d=u(n),v=u(i),h=u(o),m=u(a),b=u(s),y=c;(n&&y(new n(new ArrayBuffer(1)))!=p||i&&"[object Map]"!=y(new i)||o&&y(o.resolve())!=l||a&&"[object Set]"!=y(new a)||s&&y(new s)!=f)&&(y=function(t){var e=c(t),r="[object Object]"==e?t.constructor:void 0,n=r?u(r):"";if(n)switch(n){case d:return p;case v:return"[object Map]";case h:return l;case m:return"[object Set]";case b:return f}return e}),t.exports=y},gRE1:function(t,e,r){t.exports={default:r("TmV0"),__esModule:!0}},gSvA:function(t,e,r){var n=r("kM2E"),i=r("mbce")(!0);n(n.S,"Object",{entries:function(t){return i(t)}})},ggOT:function(t,e,r){(function(t){var n=r("TQ3y"),i=r("gwcX"),o="object"==typeof e&&e&&!e.nodeType&&e,a=o&&"object"==typeof t&&t&&!t.nodeType&&t,s=a&&a.exports===o?n.Buffer:void 0,c=(s?s.isBuffer:void 0)||i;t.exports=c}).call(e,r("3IRH")(t))},gwcX:function(t,e){t.exports=function(){return!1}},hEik:function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=r("xG/K"),i=r("Oey6"),o=r("VU/8")(n.a,i.a,!1,null,null,null);o.options.__file="pages\\specification\\v3\\process-message.vue",e.default=o.exports},hIPy:function(t,e,r){var n=r("NGEn"),i=r("6MiT"),o=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;t.exports=function(t,e){if(n(t))return!1;var r=typeof t;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=t&&!i(t))||a.test(t)||!o.test(t)||null!=e&&t in Object(e)}},hrPF:function(t,e){t.exports=function(t,e){var r=-1,n=t.length;for(e||(e=Array(n));++r<n;)e[r]=t[r];return e}},hvFG:function(t,e,r){"use strict";var n=function(){var t=this.$createElement,e=this._self._c||t;return e(this.tag,{tag:"component"},[e("nuxt-link",{attrs:{to:"#p-"+this.schema.$id}},[e("span",{domProps:{innerHTML:this._s(this.schema.$step)}})]),this.schema.properties||this.schema.patternProperties||this.schema.items?e("ul",[this._l(this.schema.properties,function(t,r){return e("schemaToc",{key:r,attrs:{schema:t}})}),this._l(this.schema.patternProperties,function(t,r){return e("schemaToc",{key:r,attrs:{schema:t}})}),this.schema.items?[this.schema.items instanceof Array?this._l(this.schema.items,function(t,r){return e("schemaToc",{key:r,attrs:{schema:t}})}):e("schemaToc",{attrs:{schema:this.schema.items}})]:this._e()],2):this._e()],1)};n._withStripped=!0;var i={render:n,staticRenderFns:[]};e.a=i},i4ON:function(t,e,r){var n=r("nw3t"),i=r("22B7"),o=Object.prototype.hasOwnProperty;t.exports=function(t,e,r){var a=t[e];o.call(t,e)&&i(a,r)&&(void 0!==r||e in t)||n(t,e,r)}},imBK:function(t,e,r){var n=r("22B7");t.exports=function(t,e){for(var r=t.length;r--;)if(n(t[r][0],e))return r;return-1}},jD7S:function(t,e,r){var n=r("tv3T"),i=r("ktak");t.exports=function(t,e){return t&&n(e,i(e),t)}},jMi8:function(t,e,r){var n=r("O1jc"),i=r("mKB/"),o=r("Ilb/"),a=r("hrPF"),s=r("WQFf"),c=r("1Yb9"),u=r("NGEn"),l=r("Fp5l"),f=r("ggOT"),p=r("gGqR"),d=r("yCNF"),v=r("9UkZ"),h=r("YsVG"),m=r("TlPD");t.exports=function(t,e,r,b,y,_,g){var x=t[r],j=e[r],O=g.get(j);if(O)n(t,r,O);else{var C=_?_(x,j,r+"",t,e,g):void 0,w=void 0===C;if(w){var k=u(j),P=!k&&f(j),E=!k&&!P&&h(j);C=j,k||P||E?u(x)?C=x:l(x)?C=a(x):P?(w=!1,C=i(j,!0)):E?(w=!1,C=o(j,!0)):C=[]:v(j)||c(j)?(C=x,c(x)?C=m(x):(!d(x)||b&&p(x))&&(C=s(j))):w=!1}w&&(g.set(j,C),y(C,j,b,_,g),g.delete(j)),n(t,r,C)}}},jhkR:function(t,e,r){"use strict";var n=r("lOo0");e.a={props:{link:{required:!0}},methods:{isSchema:function(t){return t instanceof n.a}}}},ktak:function(t,e,r){var n=r("7e4z"),i=r("/GnY"),o=r("bGc4");t.exports=function(t){return o(t)?n(t):i(t)}},l9Lx:function(t,e,r){var n=r("lb6C"),i=r("C0hh"),o=Object.prototype.propertyIsEnumerable,a=Object.getOwnPropertySymbols,s=a?function(t){return null==t?[]:(t=Object(t),n(a(t),function(e){return o.call(t,e)}))}:i;t.exports=s},lOo0:function(t,e,r){"use strict";var n=r("woOf"),i=r.n(n),o=r("d7EF"),a=r.n(o),s=r("W3Iv"),c=r.n(s),u=r("Zrlr"),l=r.n(u),f=r("wxAW"),p=r.n(f),d=r("bklM"),v=r.n(d),h=r("rVUV"),m=r.n(h),b=r("Dc7M"),y=r.n(b),_=function(){function t(e,r,n){l()(this,t),this.$id=t.idx++,this.$step=e,this.$parent=r,n&&this.parseFrom(n)}return p()(t,[{key:"toJSON",value:function(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this;return m()(r,function(r,n,i,o){if(r instanceof t)return c()(r).filter(function(t){var e=a()(t,2),r=e[0];e[1];return["$id","$step","$parent"].indexOf(r)<0}).reduce(function(t,r){var n=a()(r,2),i=n[0],o=n[1];return t[i]=e.toJSON(o),t},{})})}},{key:"getPath",value:function(){var t="";return this.$parent&&(t+=this.$parent.schema.getPath(),"object"===this.$parent.schema.type&&(t+=".")),t+=this.$step,this.getPath=function(){return t},t}},{key:"parseFrom",value:function(e){var r=this;return!0===e?e={}:!1===e&&(e={not:!0}),i()(this,y()(v()(e),["$step","$id","$parent","items","properties","patternProperties","additionalItems","additionalProperties","contains","propertyNames","not","allOf","anyOf","oneOf"])),e.items&&(e.items instanceof Array?this.items=e.items.map(function(n,i){return new t("["+i+"]",{schema:r,path:"items["+i+"]"}).parseFrom(e.items[i])}):this.items=new t("[*]",{schema:this,path:"items"}).parseFrom(e.items)),["properties","patternProperties"].filter(function(t){return e.hasOwnProperty(t)}).forEach(function(n){return c()(e[n]).forEach(function(e,i){var o=a()(e,2),s=o[0],c=o[1];r[n]=r[n]||{},r[n][s]=new t(""+("patternProperties"===n?"&lt;field&gt;":s),{schema:r,path:n+'["'+s+'"]'}).parseFrom(c)})}),["additionalItems","additionalProperties","contains","propertyNames","not"].filter(function(t){return e.hasOwnProperty(t)}).forEach(function(n){r[n]=new t("+",{schema:r,path:n}).parseFrom(e[n])}),["allOf","anyOf","oneOf"].filter(function(t){return e.hasOwnProperty(t)}).forEach(function(n){return e[n].forEach(function(e,i){r[n]=r[n]||[],r[n].push(new t("("+i+")"+("anyOf"===n?"?":"+"),{schema:r,path:n+"["+i+"]"}).parseFrom(e))})}),this}}]),t}();_.idx=0,e.a=_},lb6C:function(t,e){t.exports=function(t,e){for(var r=-1,n=null==t?0:t.length,i=0,o=[];++r<n;){var a=t[r];e(a,r,t)&&(o[i++]=a)}return o}},"mKB/":function(t,e,r){(function(t){var n=r("TQ3y"),i="object"==typeof e&&e&&!e.nodeType&&e,o=i&&"object"==typeof t&&t&&!t.nodeType&&t,a=o&&o.exports===i?n.Buffer:void 0,s=a?a.allocUnsafe:void 0;t.exports=function(t,e){if(e)return t.slice();var r=t.length,n=s?s(r):new t.constructor(r);return t.copy(n),n}}).call(e,r("3IRH")(t))},mQxp:function(t,e,r){"use strict";var n=r("Gs0Q"),i=r("hvFG"),o=!1;var a=function(t){o||r("AxiT")},s=r("VU/8")(n.a,i.a,!1,a,null,null);s.options.__file="components\\schemaToc.vue",e.a=s.exports},mTAn:function(t,e){t.exports=function(t,e){return null==t?void 0:t[e]}},mbce:function(t,e,r){var n=r("lktj"),i=r("TcQ7"),o=r("NpIQ").f;t.exports=function(t){return function(e){for(var r,a=i(e),s=n(a),c=s.length,u=0,l=[];c>u;)o.call(a,r=s[u++])&&l.push(t?[r,a[r]]:a[r]);return l}}},mgnk:function(t,e,r){var n=r("aCM0"),i=r("UnEC"),o="[object Arguments]";t.exports=function(t){return i(t)&&n(t)==o}},nWuj:function(t,e){t.exports=function(t,e){return t.add(e),t}},nw3t:function(t,e,r){var n=r("p0bc");t.exports=function(t,e,r){"__proto__"==e&&n?n(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}},o2mx:function(t,e,r){var n=r("NkRn"),i=r("Hxdr"),o=r("NGEn"),a=r("6MiT"),s=1/0,c=n?n.prototype:void 0,u=c?c.toString:void 0;t.exports=function t(e){if("string"==typeof e)return e;if(o(e))return i(e,t)+"";if(a(e))return u?u.call(e):"";var r=e+"";return"0"==r&&1/e==-s?"-0":r}},octw:function(t,e){t.exports=function(t){var e=-1,r=Array(t.size);return t.forEach(function(t){r[++e]=t}),r}},oqL2:function(t,e){t.exports=function(t){var e=null==t?0:t.length;return e?t[e-1]:void 0}},p0bc:function(t,e,r){var n=r("ICSD"),i=function(){try{var t=n(Object,"defineProperty");return t({},"",{}),t}catch(t){}}();t.exports=i},pTUa:function(t,e,r){var n=r("/I3N");t.exports=function(t,e){var r=t.__data__;return n(e)?r["string"==typeof e?"string":"hash"]:r.map}},py9u:function(t,e,r){var n=r("tv3T"),i=r("t8rQ");t.exports=function(t,e){return t&&n(e,i(e),t)}},qwTf:function(t,e,r){var n=r("TQ3y").Uint8Array;t.exports=n},qyJz:function(t,e,r){"use strict";var n=r("+ZMJ"),i=r("kM2E"),o=r("sB3e"),a=r("msXi"),s=r("Mhyx"),c=r("QRG4"),u=r("fBQ2"),l=r("3fs2");i(i.S+i.F*!r("dY0y")(function(t){Array.from(t)}),"Array",{from:function(t){var e,r,i,f,p=o(t),d="function"==typeof this?this:Array,v=arguments.length,h=v>1?arguments[1]:void 0,m=void 0!==h,b=0,y=l(p);if(m&&(h=n(h,v>2?arguments[2]:void 0,2)),void 0==y||d==Array&&s(y))for(r=new d(e=c(p.length));e>b;b++)u(r,b,m?h(p[b],b):p[b]);else for(f=y.call(p),r=new d;!(i=f.next()).done;b++)u(r,b,m?a(f,h,[i.value,b],!0):i.value);return r.length=b,r}})},rCVp:function(t,e,r){var n=r("1C79");t.exports=function(t){return null!=t&&t.length?n(t,1):[]}},rVUV:function(t,e,r){var n=r("Fkvj"),i=1,o=4;t.exports=function(t,e){return n(t,i|o,e="function"==typeof e?e:void 0)}},rpnb:function(t,e,r){var n=r("tHks")();t.exports=n},s8mu:function(t,e,r){"use strict";var n=r("cER1"),i=r("D9sP"),o=!1;var a=function(t){o||r("A51D")},s=r("VU/8")(n.a,i.a,!1,a,null,null);s.options.__file="components\\schemaDetail.vue",e.a=s.exports},t8rQ:function(t,e,r){var n=r("7e4z"),i=r("G0Wc"),o=r("bGc4");t.exports=function(t){return o(t)?n(t,!0):i(t)}},tHks:function(t,e){t.exports=function(t){return function(e,r,n){for(var i=-1,o=Object(e),a=n(e),s=a.length;s--;){var c=a[t?s:++i];if(!1===r(o[c],c,o))break}return e}}},tv3T:function(t,e,r){var n=r("i4ON"),i=r("nw3t");t.exports=function(t,e,r,o){var a=!r;r||(r={});for(var s=-1,c=e.length;++s<c;){var u=e[s],l=o?o(r[u],t[u],u,r,t):void 0;void 0===l&&(l=t[u]),a?i(r,u,l):n(r,u,l)}return r}},uCi2:function(t,e,r){var n=r("bIjD"),i=r("Ubhr");t.exports=function(t,e){for(var r=0,o=(e=n(e,t)).length;null!=t&&r<o;)t=t[i(e[r++])];return r&&r==o?t:void 0}},uIr7:function(t,e){t.exports=function(t,e){for(var r=-1,n=e.length,i=t.length;++r<n;)t[i+r]=e[r];return t}},uLhX:function(t,e,r){var n=r("NkRn"),i=Object.prototype,o=i.hasOwnProperty,a=i.toString,s=n?n.toStringTag:void 0;t.exports=function(t){var e=o.call(t,s),r=t[s];try{t[s]=void 0;var n=!0}catch(t){}var i=a.call(t);return n&&(e?t[s]=r:delete t[s]),i}},"ue/d":function(t,e){t.exports=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}},uieL:function(t,e){t.exports=function(t,e){for(var r=-1,n=Array(t);++r<t;)n[r]=e(r);return n}},"us/S":function(t,e,r){t.exports={default:r("Xd32"),__esModule:!0}},v8Dt:function(t,e,r){var n=r("pTUa");t.exports=function(t){return n(this,t).get(t)}},vi0E:function(t,e,r){var n=r("f931")(Object.getPrototypeOf,Object);t.exports=n},wEtr:function(t,e,r){r("gSvA"),t.exports=r("FeBl").Object.entries},wSKX:function(t,e){t.exports=function(t){return t}},wxAW:function(t,e,r){"use strict";e.__esModule=!0;var n,i=r("C4MV"),o=(n=i)&&n.__esModule?n:{default:n};e.default=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),(0,o.default)(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}()},"xG/K":function(t,e,r){"use strict";var n=r("mvHQ"),i=r.n(n),o=r("d7EF"),a=r.n(o),s=r("Dd8w"),c=r.n(s),u=r("W3Iv"),l=r.n(u),f=r("LJry"),p=r.n(f),d=r("T9Hf"),v=r("Q7hp"),h=r.n(v),m=r("s8mu");e.a={head:function(){return{title:"Specification for process messages"}},created:function(){var t=this,e=new Date,r="a4927dad-58d4-4580-b460-79cefd56775b";this.$static={message:{"content-spec":"urn:spec://eclipse.org/unide/process-message#v2",device:{deviceID:r},process:{ts:e.toISOString()},measurements:[{ts:new Date(e.valueOf()+100).toISOString(),series:{force:[26,23,24],pressure:[52.4,46.32,44.2432]}}]},complexMessage:{"content-spec":"urn:spec://eclipse.org/unide/process-message#v2",device:{deviceID:r,operationalStatus:"normal",metaData:{swVersion:"2.0.3.13",swBuildId:"41535"}},part:{type:"SINGLE",partTypeID:"F00VH07328",partID:"420003844",result:"NOK",code:"HUH289",metaData:{toolId:"32324-432143"}},process:{externalProcessId:"b4927dad-58d4-4580-b460-79cefd56775b",ts:e.toISOString(),result:"NOK",shutoffPhase:"phase 2",program:{id:"1",name:"Programm 1",lastChangedDate:"2002-05-30T09:30:10.123+02:00"},shutoffValues:{force:{ts:new Date(e.valueOf()+1e4).toISOString(),value:24,upperError:26,lowerError:22,upperWarn:25,lowerWarn:23,target:24},pressure:{value:50,upperError:52,lowerError:48}},metaData:{maxDuration:"30min",escalation:"shift leader"}},measurements:[{ts:new Date(e.valueOf()+100).toISOString(),phase:"phase 1",name:"heating up",result:"OK",code:"0000 EE01",context:{limits:{pressure:{upperError:4444,lowerError:44,upperWarn:2222,lowerWarn:46,target:35},force:{upperError:[27,24,25],lowerError:[25,22,23]}}},specialValues:[{time:12,name:"turning point",value:{pressure:24,force:50}}],series:{time:[30,36,42],force:[26,23,24],pressure:[52.4,46.32,44.2432],temperature:[45.4243,46.42342,44.2432]}},{ts:new Date(e.valueOf()+430).toISOString(),phase:"phase 2",name:"processing",result:"OK",series:{time:[0,23,24],temperature:[49.2,48.8,50]}}]}},this.$static.examples=l()(c()({},["content-spec","device","device.deviceID","device.metaData","device.operationalStatus","measurements","measurements[0].code","measurements[0].limits","measurements[0].name","measurements[0].phase","measurements[0].result","measurements[0].series","measurements[0].series.time","measurements[0].specialValues","measurements[0].specialValues[0].time","measurements[0].specialValues[0].name","measurements[0].specialValues[0].value","measurements[0].ts","part","part.code","part.metaData","part.partID","part.partTypeID","part.result","part.type","process","process.externalProcessId","process.metaData","process.program","process.program.id","process.program.lastChangedDate","process.program.name","process.result","process.shutoffPhase","process.shutoffValues","process.ts"].reduce(function(t,e){return t[e.replace(/(^|\.)/g,"$1properties.").replace(/\[[^]]*]/g,".items")]=e,t},{'properties.measurements.items.properties.limits.patternProperties["^[^$]+"].oneOf[0]':"measurements[0].limits.pressure",'properties.measurements.items.properties.limits.patternProperties["^[^$]+"].oneOf[1]':"measurements[0].limits.force",'properties.measurements.items.properties.series.patternProperties["^[^$]+"]':"measurements[0].series.force",'properties.process.properties.shutoffValues.patternProperties["^[^$]+"]':"process.shutoffValues.force"}),["lowerError","lowerWarn","target","upperError","upperWarn"].reduce(function(t,e){return t['properties.measurements.items.properties.limits.patternProperties["^[^$]+"].oneOf[0].properties.'+e]="measurements[0].limits.pressure."+e,t['properties.measurements.items.properties.limits.patternProperties["^[^$]+"].oneOf[1].properties.'+e]="measurements[0].limits.force."+e,t['properties.process.properties.shutoffValues.patternProperties["^[^$]+"].properties.'+e]="process.shutoffValues.force."+e,t},{}))).reduce(function(e,r){var n=a()(r,2),i=n[0],o=n[1],s=h()(t.$static.message,o)||h()(t.$static.complexMessage,o);return s&&(e[i]=[s]),e},{})},filters:{stringify:function(t){return i()(t," ",2)}},components:{card:d.a,prism:p.a,schemaDetail:m.a}}},xond:function(t,e,r){var n=r("FCuZ"),i=r("09Qt"),o=r("t8rQ");t.exports=function(t){return n(t,o,i)}},yCNF:function(t,e){t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},z4hc:function(t,e,r){var n=r("aCM0"),i=r("Rh28"),o=r("UnEC"),a={};a["[object Float32Array]"]=a["[object Float64Array]"]=a["[object Int8Array]"]=a["[object Int16Array]"]=a["[object Int32Array]"]=a["[object Uint8Array]"]=a["[object Uint8ClampedArray]"]=a["[object Uint16Array]"]=a["[object Uint32Array]"]=!0,a["[object Arguments]"]=a["[object Array]"]=a["[object ArrayBuffer]"]=a["[object Boolean]"]=a["[object DataView]"]=a["[object Date]"]=a["[object Error]"]=a["[object Function]"]=a["[object Map]"]=a["[object Number]"]=a["[object Object]"]=a["[object RegExp]"]=a["[object Set]"]=a["[object String]"]=a["[object WeakMap]"]=!1,t.exports=function(t){return o(t)&&i(t.length)&&!!a[n(t)]}},zBOP:function(t,e,r){var n=r("22B7"),i=r("bGc4"),o=r("ZGh9"),a=r("yCNF");t.exports=function(t,e,r){if(!a(r))return!1;var s=typeof e;return!!("number"==s?i(r)&&o(e,r.length):"string"==s&&e in r)&&n(r[e],t)}},zGZ6:function(t,e,r){var n=r("YeCl"),i="Expected a function";function o(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError(i);var r=function(){var n=arguments,i=e?e.apply(this,n):n[0],o=r.cache;if(o.has(i))return o.get(i);var a=t.apply(this,n);return r.cache=o.set(i,a)||o,a};return r.cache=new(o.Cache||n),r}o.Cache=n,t.exports=o},zpVT:function(t,e,r){var n=r("duB3"),i=r("POb3"),o=r("YeCl"),a=200;t.exports=function(t,e){var r=this.__data__;if(r instanceof n){var s=r.__data__;if(!i||s.length<a-1)return s.push([t,e]),this.size=++r.size,this;r=this.__data__=new o(s)}return r.set(t,e),this.size=r.size,this}}});
\ No newline at end of file
diff --git a/files/vendor.21b6003b92f8fb004a4d.js b/files/vendor.21b6003b92f8fb004a4d.js
deleted file mode 100644
index 163de36..0000000
--- a/files/vendor.21b6003b92f8fb004a4d.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! For license information please see LICENSES */
-webpackJsonp([12],{"+E39":function(t,e,n){t.exports=!n("S82l")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},"+ZMJ":function(t,e,n){var r=n("lOnJ");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},"+tPU":function(t,e,n){n("xGkn");for(var r=n("7KvD"),o=n("hJx8"),i=n("/bQp"),a=n("dSzd")("toStringTag"),s="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),c=0;c<s.length;c++){var u=s[c],f=r[u],l=f&&f.prototype;l&&!l[a]&&o(l,a,u),i[u]=i.Array}},"//Fk":function(t,e,n){t.exports={default:n("U5ju"),__esModule:!0}},"/5sW":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t,n){var r=Object.freeze({});function o(t){return void 0===t||null===t}function i(t){return void 0!==t&&null!==t}function a(t){return!0===t}function s(t){return"string"==typeof t||"number"==typeof t||"symbol"==typeof t||"boolean"==typeof t}function c(t){return null!==t&&"object"==typeof t}var u=Object.prototype.toString;function f(t){return"[object Object]"===u.call(t)}function l(t){return"[object RegExp]"===u.call(t)}function p(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function h(t){return null==t?"":"object"==typeof t?JSON.stringify(t,null,2):String(t)}function d(t){var e=parseFloat(t);return isNaN(e)?t:e}function v(t,e){for(var n=Object.create(null),r=t.split(","),o=0;o<r.length;o++)n[r[o]]=!0;return e?function(t){return n[t.toLowerCase()]}:function(t){return n[t]}}v("slot,component",!0);var y=v("key,ref,slot,slot-scope,is");function m(t,e){if(t.length){var n=t.indexOf(e);if(n>-1)return t.splice(n,1)}}var g=Object.prototype.hasOwnProperty;function b(t,e){return g.call(t,e)}function _(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}var w=/-(\w)/g,x=_(function(t){return t.replace(w,function(t,e){return e?e.toUpperCase():""})}),O=_(function(t){return t.charAt(0).toUpperCase()+t.slice(1)}),k=/\B([A-Z])/g,A=_(function(t){return t.replace(k,"-$1").toLowerCase()});function C(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n}function S(t,e){e=e||0;for(var n=t.length-e,r=new Array(n);n--;)r[n]=t[n+e];return r}function j(t,e){for(var n in e)t[n]=e[n];return t}function E(t){for(var e={},n=0;n<t.length;n++)t[n]&&j(e,t[n]);return e}function $(t,e,n){}var T=function(t,e,n){return!1},M=function(t){return t};function P(t,e){if(t===e)return!0;var n=c(t),r=c(e);if(!n||!r)return!n&&!r&&String(t)===String(e);try{var o=Array.isArray(t),i=Array.isArray(e);if(o&&i)return t.length===e.length&&t.every(function(t,n){return P(t,e[n])});if(o||i)return!1;var a=Object.keys(t),s=Object.keys(e);return a.length===s.length&&a.every(function(n){return P(t[n],e[n])})}catch(t){return!1}}function L(t,e){for(var n=0;n<t.length;n++)if(P(t[n],e))return n;return-1}function I(t){var e=!1;return function(){e||(e=!0,t.apply(this,arguments))}}var N="data-server-rendered",R=["component","directive","filter"],F=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeDestroy","destroyed","activated","deactivated","errorCaptured"],D={optionMergeStrategies:Object.create(null),silent:!1,productionTip:!1,devtools:!1,performance:!1,errorHandler:null,warnHandler:null,ignoredElements:[],keyCodes:Object.create(null),isReservedTag:T,isReservedAttr:T,isUnknownElement:T,getTagNamespace:$,parsePlatformTagName:M,mustUseProp:T,_lifecycleHooks:F};function B(t){var e=(t+"").charCodeAt(0);return 36===e||95===e}function U(t,e,n,r){Object.defineProperty(t,e,{value:n,enumerable:!!r,writable:!0,configurable:!0})}var q=/[^\w.$]/;var z,V="__proto__"in{},G="undefined"!=typeof window,H="undefined"!=typeof WXEnvironment&&!!WXEnvironment.platform,K=H&&WXEnvironment.platform.toLowerCase(),W=G&&window.navigator.userAgent.toLowerCase(),Q=W&&/msie|trident/.test(W),J=W&&W.indexOf("msie 9.0")>0,Y=W&&W.indexOf("edge/")>0,X=W&&W.indexOf("android")>0||"android"===K,Z=W&&/iphone|ipad|ipod|ios/.test(W)||"ios"===K,tt=(W&&/chrome\/\d+/.test(W),{}.watch),et=!1;if(G)try{var nt={};Object.defineProperty(nt,"passive",{get:function(){et=!0}}),window.addEventListener("test-passive",null,nt)}catch(t){}var rt=function(){return void 0===z&&(z=!G&&void 0!==t&&"server"===t.process.env.VUE_ENV),z},ot=G&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function it(t){return"function"==typeof t&&/native code/.test(t.toString())}var at,st="undefined"!=typeof Symbol&&it(Symbol)&&"undefined"!=typeof Reflect&&it(Reflect.ownKeys);at="undefined"!=typeof Set&&it(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var ct=$,ut=0,ft=function(){this.id=ut++,this.subs=[]};ft.prototype.addSub=function(t){this.subs.push(t)},ft.prototype.removeSub=function(t){m(this.subs,t)},ft.prototype.depend=function(){ft.target&&ft.target.addDep(this)},ft.prototype.notify=function(){for(var t=this.subs.slice(),e=0,n=t.length;e<n;e++)t[e].update()},ft.target=null;var lt=[];var pt=function(t,e,n,r,o,i,a,s){this.tag=t,this.data=e,this.children=n,this.text=r,this.elm=o,this.ns=void 0,this.context=i,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=e&&e.key,this.componentOptions=a,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=s,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1},ht={child:{configurable:!0}};ht.child.get=function(){return this.componentInstance},Object.defineProperties(pt.prototype,ht);var dt=function(t){void 0===t&&(t="");var e=new pt;return e.text=t,e.isComment=!0,e};function vt(t){return new pt(void 0,void 0,void 0,String(t))}function yt(t,e){var n=t.componentOptions,r=new pt(t.tag,t.data,t.children,t.text,t.elm,t.context,n,t.asyncFactory);return r.ns=t.ns,r.isStatic=t.isStatic,r.key=t.key,r.isComment=t.isComment,r.fnContext=t.fnContext,r.fnOptions=t.fnOptions,r.fnScopeId=t.fnScopeId,r.isCloned=!0,e&&(t.children&&(r.children=mt(t.children,!0)),n&&n.children&&(n.children=mt(n.children,!0))),r}function mt(t,e){for(var n=t.length,r=new Array(n),o=0;o<n;o++)r[o]=yt(t[o],e);return r}var gt=Array.prototype,bt=Object.create(gt);["push","pop","shift","unshift","splice","sort","reverse"].forEach(function(t){var e=gt[t];U(bt,t,function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];var o,i=e.apply(this,n),a=this.__ob__;switch(t){case"push":case"unshift":o=n;break;case"splice":o=n.slice(2)}return o&&a.observeArray(o),a.dep.notify(),i})});var _t=Object.getOwnPropertyNames(bt),wt={shouldConvert:!0},xt=function(t){(this.value=t,this.dep=new ft,this.vmCount=0,U(t,"__ob__",this),Array.isArray(t))?((V?Ot:kt)(t,bt,_t),this.observeArray(t)):this.walk(t)};function Ot(t,e,n){t.__proto__=e}function kt(t,e,n){for(var r=0,o=n.length;r<o;r++){var i=n[r];U(t,i,e[i])}}function At(t,e){var n;if(c(t)&&!(t instanceof pt))return b(t,"__ob__")&&t.__ob__ instanceof xt?n=t.__ob__:wt.shouldConvert&&!rt()&&(Array.isArray(t)||f(t))&&Object.isExtensible(t)&&!t._isVue&&(n=new xt(t)),e&&n&&n.vmCount++,n}function Ct(t,e,n,r,o){var i=new ft,a=Object.getOwnPropertyDescriptor(t,e);if(!a||!1!==a.configurable){var s=a&&a.get,c=a&&a.set,u=!o&&At(n);Object.defineProperty(t,e,{enumerable:!0,configurable:!0,get:function(){var e=s?s.call(t):n;return ft.target&&(i.depend(),u&&(u.dep.depend(),Array.isArray(e)&&function t(e){for(var n=void 0,r=0,o=e.length;r<o;r++)(n=e[r])&&n.__ob__&&n.__ob__.dep.depend(),Array.isArray(n)&&t(n)}(e))),e},set:function(e){var r=s?s.call(t):n;e===r||e!=e&&r!=r||(c?c.call(t,e):n=e,u=!o&&At(e),i.notify())}})}}function St(t,e,n){if(Array.isArray(t)&&p(e))return t.length=Math.max(t.length,e),t.splice(e,1,n),n;if(e in t&&!(e in Object.prototype))return t[e]=n,n;var r=t.__ob__;return t._isVue||r&&r.vmCount?n:r?(Ct(r.value,e,n),r.dep.notify(),n):(t[e]=n,n)}function jt(t,e){if(Array.isArray(t)&&p(e))t.splice(e,1);else{var n=t.__ob__;t._isVue||n&&n.vmCount||b(t,e)&&(delete t[e],n&&n.dep.notify())}}xt.prototype.walk=function(t){for(var e=Object.keys(t),n=0;n<e.length;n++)Ct(t,e[n],t[e[n]])},xt.prototype.observeArray=function(t){for(var e=0,n=t.length;e<n;e++)At(t[e])};var Et=D.optionMergeStrategies;function $t(t,e){if(!e)return t;for(var n,r,o,i=Object.keys(e),a=0;a<i.length;a++)r=t[n=i[a]],o=e[n],b(t,n)?f(r)&&f(o)&&$t(r,o):St(t,n,o);return t}function Tt(t,e,n){return n?function(){var r="function"==typeof e?e.call(n,n):e,o="function"==typeof t?t.call(n,n):t;return r?$t(r,o):o}:e?t?function(){return $t("function"==typeof e?e.call(this,this):e,"function"==typeof t?t.call(this,this):t)}:e:t}function Mt(t,e){return e?t?t.concat(e):Array.isArray(e)?e:[e]:t}function Pt(t,e,n,r){var o=Object.create(t||null);return e?j(o,e):o}Et.data=function(t,e,n){return n?Tt(t,e,n):e&&"function"!=typeof e?t:Tt(t,e)},F.forEach(function(t){Et[t]=Mt}),R.forEach(function(t){Et[t+"s"]=Pt}),Et.watch=function(t,e,n,r){if(t===tt&&(t=void 0),e===tt&&(e=void 0),!e)return Object.create(t||null);if(!t)return e;var o={};j(o,t);for(var i in e){var a=o[i],s=e[i];a&&!Array.isArray(a)&&(a=[a]),o[i]=a?a.concat(s):Array.isArray(s)?s:[s]}return o},Et.props=Et.methods=Et.inject=Et.computed=function(t,e,n,r){if(!t)return e;var o=Object.create(null);return j(o,t),e&&j(o,e),o},Et.provide=Tt;var Lt=function(t,e){return void 0===e?t:e};function It(t,e,n){"function"==typeof e&&(e=e.options),function(t,e){var n=t.props;if(n){var r,o,i={};if(Array.isArray(n))for(r=n.length;r--;)"string"==typeof(o=n[r])&&(i[x(o)]={type:null});else if(f(n))for(var a in n)o=n[a],i[x(a)]=f(o)?o:{type:o};t.props=i}}(e),function(t,e){var n=t.inject;if(n){var r=t.inject={};if(Array.isArray(n))for(var o=0;o<n.length;o++)r[n[o]]={from:n[o]};else if(f(n))for(var i in n){var a=n[i];r[i]=f(a)?j({from:i},a):{from:a}}}}(e),function(t){var e=t.directives;if(e)for(var n in e){var r=e[n];"function"==typeof r&&(e[n]={bind:r,update:r})}}(e);var r=e.extends;if(r&&(t=It(t,r,n)),e.mixins)for(var o=0,i=e.mixins.length;o<i;o++)t=It(t,e.mixins[o],n);var a,s={};for(a in t)c(a);for(a in e)b(t,a)||c(a);function c(r){var o=Et[r]||Lt;s[r]=o(t[r],e[r],n,r)}return s}function Nt(t,e,n,r){if("string"==typeof n){var o=t[e];if(b(o,n))return o[n];var i=x(n);if(b(o,i))return o[i];var a=O(i);return b(o,a)?o[a]:o[n]||o[i]||o[a]}}function Rt(t,e,n,r){var o=e[t],i=!b(n,t),a=n[t];if(Dt(Boolean,o.type)&&(i&&!b(o,"default")?a=!1:Dt(String,o.type)||""!==a&&a!==A(t)||(a=!0)),void 0===a){a=function(t,e,n){if(!b(e,"default"))return;var r=e.default;0;if(t&&t.$options.propsData&&void 0===t.$options.propsData[n]&&void 0!==t._props[n])return t._props[n];return"function"==typeof r&&"Function"!==Ft(e.type)?r.call(t):r}(r,o,t);var s=wt.shouldConvert;wt.shouldConvert=!0,At(a),wt.shouldConvert=s}return a}function Ft(t){var e=t&&t.toString().match(/^\s*function (\w+)/);return e?e[1]:""}function Dt(t,e){if(!Array.isArray(e))return Ft(e)===Ft(t);for(var n=0,r=e.length;n<r;n++)if(Ft(e[n])===Ft(t))return!0;return!1}function Bt(t,e,n){if(e)for(var r=e;r=r.$parent;){var o=r.$options.errorCaptured;if(o)for(var i=0;i<o.length;i++)try{if(!1===o[i].call(r,t,e,n))return}catch(t){Ut(t,r,"errorCaptured hook")}}Ut(t,e,n)}function Ut(t,e,n){if(D.errorHandler)try{return D.errorHandler.call(null,t,e,n)}catch(t){qt(t,null,"config.errorHandler")}qt(t,e,n)}function qt(t,e,n){if(!G&&!H||"undefined"==typeof console)throw t;console.error(t)}var zt,Vt,Gt=[],Ht=!1;function Kt(){Ht=!1;var t=Gt.slice(0);Gt.length=0;for(var e=0;e<t.length;e++)t[e]()}var Wt=!1;if(void 0!==n&&it(n))Vt=function(){n(Kt)};else if("undefined"==typeof MessageChannel||!it(MessageChannel)&&"[object MessageChannelConstructor]"!==MessageChannel.toString())Vt=function(){setTimeout(Kt,0)};else{var Qt=new MessageChannel,Jt=Qt.port2;Qt.port1.onmessage=Kt,Vt=function(){Jt.postMessage(1)}}if("undefined"!=typeof Promise&&it(Promise)){var Yt=Promise.resolve();zt=function(){Yt.then(Kt),Z&&setTimeout($)}}else zt=Vt;function Xt(t,e){var n;if(Gt.push(function(){if(t)try{t.call(e)}catch(t){Bt(t,e,"nextTick")}else n&&n(e)}),Ht||(Ht=!0,Wt?Vt():zt()),!t&&"undefined"!=typeof Promise)return new Promise(function(t){n=t})}var Zt=new at;function te(t){!function t(e,n){var r,o;var i=Array.isArray(e);if(!i&&!c(e)||Object.isFrozen(e))return;if(e.__ob__){var a=e.__ob__.dep.id;if(n.has(a))return;n.add(a)}if(i)for(r=e.length;r--;)t(e[r],n);else for(o=Object.keys(e),r=o.length;r--;)t(e[o[r]],n)}(t,Zt),Zt.clear()}var ee,ne=_(function(t){var e="&"===t.charAt(0),n="~"===(t=e?t.slice(1):t).charAt(0),r="!"===(t=n?t.slice(1):t).charAt(0);return{name:t=r?t.slice(1):t,once:n,capture:r,passive:e}});function re(t){function e(){var t=arguments,n=e.fns;if(!Array.isArray(n))return n.apply(null,arguments);for(var r=n.slice(),o=0;o<r.length;o++)r[o].apply(null,t)}return e.fns=t,e}function oe(t,e,n,r,i){var a,s,c,u;for(a in t)s=t[a],c=e[a],u=ne(a),o(s)||(o(c)?(o(s.fns)&&(s=t[a]=re(s)),n(u.name,s,u.once,u.capture,u.passive,u.params)):s!==c&&(c.fns=s,t[a]=c));for(a in e)o(t[a])&&r((u=ne(a)).name,e[a],u.capture)}function ie(t,e,n){var r;t instanceof pt&&(t=t.data.hook||(t.data.hook={}));var s=t[e];function c(){n.apply(this,arguments),m(r.fns,c)}o(s)?r=re([c]):i(s.fns)&&a(s.merged)?(r=s).fns.push(c):r=re([s,c]),r.merged=!0,t[e]=r}function ae(t,e,n,r,o){if(i(e)){if(b(e,n))return t[n]=e[n],o||delete e[n],!0;if(b(e,r))return t[n]=e[r],o||delete e[r],!0}return!1}function se(t){return s(t)?[vt(t)]:Array.isArray(t)?function t(e,n){var r=[];var c,u,f,l;for(c=0;c<e.length;c++)o(u=e[c])||"boolean"==typeof u||(f=r.length-1,l=r[f],Array.isArray(u)?u.length>0&&(ce((u=t(u,(n||"")+"_"+c))[0])&&ce(l)&&(r[f]=vt(l.text+u[0].text),u.shift()),r.push.apply(r,u)):s(u)?ce(l)?r[f]=vt(l.text+u):""!==u&&r.push(vt(u)):ce(u)&&ce(l)?r[f]=vt(l.text+u.text):(a(e._isVList)&&i(u.tag)&&o(u.key)&&i(n)&&(u.key="__vlist"+n+"_"+c+"__"),r.push(u)));return r}(t):void 0}function ce(t){return i(t)&&i(t.text)&&!1===t.isComment}function ue(t,e){return(t.__esModule||st&&"Module"===t[Symbol.toStringTag])&&(t=t.default),c(t)?e.extend(t):t}function fe(t){return t.isComment&&t.asyncFactory}function le(t){if(Array.isArray(t))for(var e=0;e<t.length;e++){var n=t[e];if(i(n)&&(i(n.componentOptions)||fe(n)))return n}}function pe(t,e,n){n?ee.$once(t,e):ee.$on(t,e)}function he(t,e){ee.$off(t,e)}function de(t,e,n){ee=t,oe(e,n||{},pe,he),ee=void 0}function ve(t,e){var n={};if(!t)return n;for(var r=0,o=t.length;r<o;r++){var i=t[r],a=i.data;if(a&&a.attrs&&a.attrs.slot&&delete a.attrs.slot,i.context!==e&&i.fnContext!==e||!a||null==a.slot)(n.default||(n.default=[])).push(i);else{var s=a.slot,c=n[s]||(n[s]=[]);"template"===i.tag?c.push.apply(c,i.children||[]):c.push(i)}}for(var u in n)n[u].every(ye)&&delete n[u];return n}function ye(t){return t.isComment&&!t.asyncFactory||" "===t.text}function me(t,e){e=e||{};for(var n=0;n<t.length;n++)Array.isArray(t[n])?me(t[n],e):e[t[n].key]=t[n].fn;return e}var ge=null;function be(t){for(;t&&(t=t.$parent);)if(t._inactive)return!0;return!1}function _e(t,e){if(e){if(t._directInactive=!1,be(t))return}else if(t._directInactive)return;if(t._inactive||null===t._inactive){t._inactive=!1;for(var n=0;n<t.$children.length;n++)_e(t.$children[n]);we(t,"activated")}}function we(t,e){var n=t.$options[e];if(n)for(var r=0,o=n.length;r<o;r++)try{n[r].call(t)}catch(n){Bt(n,t,e+" hook")}t._hasHookEvent&&t.$emit("hook:"+e)}var xe=[],Oe=[],ke={},Ae=!1,Ce=!1,Se=0;function je(){var t,e;for(Ce=!0,xe.sort(function(t,e){return t.id-e.id}),Se=0;Se<xe.length;Se++)e=(t=xe[Se]).id,ke[e]=null,t.run();var n=Oe.slice(),r=xe.slice();Se=xe.length=Oe.length=0,ke={},Ae=Ce=!1,function(t){for(var e=0;e<t.length;e++)t[e]._inactive=!0,_e(t[e],!0)}(n),function(t){var e=t.length;for(;e--;){var n=t[e],r=n.vm;r._watcher===n&&r._isMounted&&we(r,"updated")}}(r),ot&&D.devtools&&ot.emit("flush")}var Ee=0,$e=function(t,e,n,r,o){this.vm=t,o&&(t._watcher=this),t._watchers.push(this),r?(this.deep=!!r.deep,this.user=!!r.user,this.lazy=!!r.lazy,this.sync=!!r.sync):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++Ee,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new at,this.newDepIds=new at,this.expression="","function"==typeof e?this.getter=e:(this.getter=function(t){if(!q.test(t)){var e=t.split(".");return function(t){for(var n=0;n<e.length;n++){if(!t)return;t=t[e[n]]}return t}}}(e),this.getter||(this.getter=function(){})),this.value=this.lazy?void 0:this.get()};$e.prototype.get=function(){var t,e;t=this,ft.target&&lt.push(ft.target),ft.target=t;var n=this.vm;try{e=this.getter.call(n,n)}catch(t){if(!this.user)throw t;Bt(t,n,'getter for watcher "'+this.expression+'"')}finally{this.deep&&te(e),ft.target=lt.pop(),this.cleanupDeps()}return e},$e.prototype.addDep=function(t){var e=t.id;this.newDepIds.has(e)||(this.newDepIds.add(e),this.newDeps.push(t),this.depIds.has(e)||t.addSub(this))},$e.prototype.cleanupDeps=function(){for(var t=this.deps.length;t--;){var e=this.deps[t];this.newDepIds.has(e.id)||e.removeSub(this)}var n=this.depIds;this.depIds=this.newDepIds,this.newDepIds=n,this.newDepIds.clear(),n=this.deps,this.deps=this.newDeps,this.newDeps=n,this.newDeps.length=0},$e.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():function(t){var e=t.id;if(null==ke[e]){if(ke[e]=!0,Ce){for(var n=xe.length-1;n>Se&&xe[n].id>t.id;)n--;xe.splice(n+1,0,t)}else xe.push(t);Ae||(Ae=!0,Xt(je))}}(this)},$e.prototype.run=function(){if(this.active){var t=this.get();if(t!==this.value||c(t)||this.deep){var e=this.value;if(this.value=t,this.user)try{this.cb.call(this.vm,t,e)}catch(t){Bt(t,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,t,e)}}},$e.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},$e.prototype.depend=function(){for(var t=this.deps.length;t--;)this.deps[t].depend()},$e.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||m(this.vm._watchers,this);for(var t=this.deps.length;t--;)this.deps[t].removeSub(this);this.active=!1}};var Te={enumerable:!0,configurable:!0,get:$,set:$};function Me(t,e,n){Te.get=function(){return this[e][n]},Te.set=function(t){this[e][n]=t},Object.defineProperty(t,n,Te)}function Pe(t){t._watchers=[];var e=t.$options;e.props&&function(t,e){var n=t.$options.propsData||{},r=t._props={},o=t.$options._propKeys=[],i=!t.$parent;wt.shouldConvert=i;var a=function(i){o.push(i);var a=Rt(i,e,n,t);Ct(r,i,a),i in t||Me(t,"_props",i)};for(var s in e)a(s);wt.shouldConvert=!0}(t,e.props),e.methods&&function(t,e){t.$options.props;for(var n in e)t[n]=null==e[n]?$:C(e[n],t)}(t,e.methods),e.data?function(t){var e=t.$options.data;f(e=t._data="function"==typeof e?function(t,e){try{return t.call(e,e)}catch(t){return Bt(t,e,"data()"),{}}}(e,t):e||{})||(e={});var n=Object.keys(e),r=t.$options.props,o=(t.$options.methods,n.length);for(;o--;){var i=n[o];0,r&&b(r,i)||B(i)||Me(t,"_data",i)}At(e,!0)}(t):At(t._data={},!0),e.computed&&function(t,e){var n=t._computedWatchers=Object.create(null),r=rt();for(var o in e){var i=e[o],a="function"==typeof i?i:i.get;0,r||(n[o]=new $e(t,a||$,$,Le)),o in t||Ie(t,o,i)}}(t,e.computed),e.watch&&e.watch!==tt&&function(t,e){for(var n in e){var r=e[n];if(Array.isArray(r))for(var o=0;o<r.length;o++)Re(t,n,r[o]);else Re(t,n,r)}}(t,e.watch)}var Le={lazy:!0};function Ie(t,e,n){var r=!rt();"function"==typeof n?(Te.get=r?Ne(e):n,Te.set=$):(Te.get=n.get?r&&!1!==n.cache?Ne(e):n.get:$,Te.set=n.set?n.set:$),Object.defineProperty(t,e,Te)}function Ne(t){return function(){var e=this._computedWatchers&&this._computedWatchers[t];if(e)return e.dirty&&e.evaluate(),ft.target&&e.depend(),e.value}}function Re(t,e,n,r){return f(n)&&(r=n,n=n.handler),"string"==typeof n&&(n=t[n]),t.$watch(e,n,r)}function Fe(t,e){if(t){for(var n=Object.create(null),r=st?Reflect.ownKeys(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}):Object.keys(t),o=0;o<r.length;o++){for(var i=r[o],a=t[i].from,s=e;s;){if(s._provided&&a in s._provided){n[i]=s._provided[a];break}s=s.$parent}if(!s)if("default"in t[i]){var c=t[i].default;n[i]="function"==typeof c?c.call(e):c}else 0}return n}}function De(t,e){var n,r,o,a,s;if(Array.isArray(t)||"string"==typeof t)for(n=new Array(t.length),r=0,o=t.length;r<o;r++)n[r]=e(t[r],r);else if("number"==typeof t)for(n=new Array(t),r=0;r<t;r++)n[r]=e(r+1,r);else if(c(t))for(a=Object.keys(t),n=new Array(a.length),r=0,o=a.length;r<o;r++)s=a[r],n[r]=e(t[s],s,r);return i(n)&&(n._isVList=!0),n}function Be(t,e,n,r){var o,i=this.$scopedSlots[t];if(i)n=n||{},r&&(n=j(j({},r),n)),o=i(n)||e;else{var a=this.$slots[t];a&&(a._rendered=!0),o=a||e}var s=n&&n.slot;return s?this.$createElement("template",{slot:s},o):o}function Ue(t){return Nt(this.$options,"filters",t)||M}function qe(t,e,n,r){var o=D.keyCodes[e]||n;return o?Array.isArray(o)?-1===o.indexOf(t):o!==t:r?A(r)!==e:void 0}function ze(t,e,n,r,o){if(n)if(c(n)){var i;Array.isArray(n)&&(n=E(n));var a=function(a){if("class"===a||"style"===a||y(a))i=t;else{var s=t.attrs&&t.attrs.type;i=r||D.mustUseProp(e,s,a)?t.domProps||(t.domProps={}):t.attrs||(t.attrs={})}a in i||(i[a]=n[a],o&&((t.on||(t.on={}))["update:"+a]=function(t){n[a]=t}))};for(var s in n)a(s)}else;return t}function Ve(t,e){var n=this._staticTrees||(this._staticTrees=[]),r=n[t];return r&&!e?Array.isArray(r)?mt(r):yt(r):(He(r=n[t]=this.$options.staticRenderFns[t].call(this._renderProxy,null,this),"__static__"+t,!1),r)}function Ge(t,e,n){return He(t,"__once__"+e+(n?"_"+n:""),!0),t}function He(t,e,n){if(Array.isArray(t))for(var r=0;r<t.length;r++)t[r]&&"string"!=typeof t[r]&&Ke(t[r],e+"_"+r,n);else Ke(t,e,n)}function Ke(t,e,n){t.isStatic=!0,t.key=e,t.isOnce=n}function We(t,e){if(e)if(f(e)){var n=t.on=t.on?j({},t.on):{};for(var r in e){var o=n[r],i=e[r];n[r]=o?[].concat(o,i):i}}else;return t}function Qe(t){t._o=Ge,t._n=d,t._s=h,t._l=De,t._t=Be,t._q=P,t._i=L,t._m=Ve,t._f=Ue,t._k=qe,t._b=ze,t._v=vt,t._e=dt,t._u=me,t._g=We}function Je(t,e,n,o,i){var s=i.options;this.data=t,this.props=e,this.children=n,this.parent=o,this.listeners=t.on||r,this.injections=Fe(s.inject,o),this.slots=function(){return ve(n,o)};var c=Object.create(o),u=a(s._compiled),f=!u;u&&(this.$options=s,this.$slots=this.slots(),this.$scopedSlots=t.scopedSlots||r),s._scopeId?this._c=function(t,e,n,r){var i=on(c,t,e,n,r,f);return i&&(i.fnScopeId=s._scopeId,i.fnContext=o),i}:this._c=function(t,e,n,r){return on(c,t,e,n,r,f)}}function Ye(t,e){for(var n in e)t[x(n)]=e[n]}Qe(Je.prototype);var Xe={init:function(t,e,n,r){if(!t.componentInstance||t.componentInstance._isDestroyed)(t.componentInstance=function(t,e,n,r){var o={_isComponent:!0,parent:e,_parentVnode:t,_parentElm:n||null,_refElm:r||null},a=t.data.inlineTemplate;i(a)&&(o.render=a.render,o.staticRenderFns=a.staticRenderFns);return new t.componentOptions.Ctor(o)}(t,ge,n,r)).$mount(e?t.elm:void 0,e);else if(t.data.keepAlive){var o=t;Xe.prepatch(o,o)}},prepatch:function(t,e){var n=e.componentOptions;!function(t,e,n,o,i){var a=!!(i||t.$options._renderChildren||o.data.scopedSlots||t.$scopedSlots!==r);if(t.$options._parentVnode=o,t.$vnode=o,t._vnode&&(t._vnode.parent=o),t.$options._renderChildren=i,t.$attrs=o.data&&o.data.attrs||r,t.$listeners=n||r,e&&t.$options.props){wt.shouldConvert=!1;for(var s=t._props,c=t.$options._propKeys||[],u=0;u<c.length;u++){var f=c[u];s[f]=Rt(f,t.$options.props,e,t)}wt.shouldConvert=!0,t.$options.propsData=e}if(n){var l=t.$options._parentListeners;t.$options._parentListeners=n,de(t,n,l)}a&&(t.$slots=ve(i,o.context),t.$forceUpdate())}(e.componentInstance=t.componentInstance,n.propsData,n.listeners,e,n.children)},insert:function(t){var e,n=t.context,r=t.componentInstance;r._isMounted||(r._isMounted=!0,we(r,"mounted")),t.data.keepAlive&&(n._isMounted?((e=r)._inactive=!1,Oe.push(e)):_e(r,!0))},destroy:function(t){var e=t.componentInstance;e._isDestroyed||(t.data.keepAlive?function t(e,n){if(!(n&&(e._directInactive=!0,be(e))||e._inactive)){e._inactive=!0;for(var r=0;r<e.$children.length;r++)t(e.$children[r]);we(e,"deactivated")}}(e,!0):e.$destroy())}},Ze=Object.keys(Xe);function tn(t,e,n,s,u){if(!o(t)){var f=n.$options._base;if(c(t)&&(t=f.extend(t)),"function"==typeof t){var l,p,h,d,v,y,m;if(o(t.cid)&&void 0===(t=function(t,e,n){if(a(t.error)&&i(t.errorComp))return t.errorComp;if(i(t.resolved))return t.resolved;if(a(t.loading)&&i(t.loadingComp))return t.loadingComp;if(!i(t.contexts)){var r=t.contexts=[n],s=!0,u=function(){for(var t=0,e=r.length;t<e;t++)r[t].$forceUpdate()},f=I(function(n){t.resolved=ue(n,e),s||u()}),l=I(function(e){i(t.errorComp)&&(t.error=!0,u())}),p=t(f,l);return c(p)&&("function"==typeof p.then?o(t.resolved)&&p.then(f,l):i(p.component)&&"function"==typeof p.component.then&&(p.component.then(f,l),i(p.error)&&(t.errorComp=ue(p.error,e)),i(p.loading)&&(t.loadingComp=ue(p.loading,e),0===p.delay?t.loading=!0:setTimeout(function(){o(t.resolved)&&o(t.error)&&(t.loading=!0,u())},p.delay||200)),i(p.timeout)&&setTimeout(function(){o(t.resolved)&&l(null)},p.timeout))),s=!1,t.loading?t.loadingComp:t.resolved}t.contexts.push(n)}(l=t,f,n)))return p=l,h=e,d=n,v=s,y=u,(m=dt()).asyncFactory=p,m.asyncMeta={data:h,context:d,children:v,tag:y},m;e=e||{},ln(t),i(e.model)&&function(t,e){var n=t.model&&t.model.prop||"value",r=t.model&&t.model.event||"input";(e.props||(e.props={}))[n]=e.model.value;var o=e.on||(e.on={});i(o[r])?o[r]=[e.model.callback].concat(o[r]):o[r]=e.model.callback}(t.options,e);var g=function(t,e,n){var r=e.options.props;if(!o(r)){var a={},s=t.attrs,c=t.props;if(i(s)||i(c))for(var u in r){var f=A(u);ae(a,c,u,f,!0)||ae(a,s,u,f,!1)}return a}}(e,t);if(a(t.options.functional))return function(t,e,n,o,a){var s=t.options,c={},u=s.props;if(i(u))for(var f in u)c[f]=Rt(f,u,e||r);else i(n.attrs)&&Ye(c,n.attrs),i(n.props)&&Ye(c,n.props);var l=new Je(n,c,a,o,t),p=s.render.call(null,l._c,l);return p instanceof pt&&(p.fnContext=o,p.fnOptions=s,n.slot&&((p.data||(p.data={})).slot=n.slot)),p}(t,g,e,n,s);var b=e.on;if(e.on=e.nativeOn,a(t.options.abstract)){var _=e.slot;e={},_&&(e.slot=_)}!function(t){t.hook||(t.hook={});for(var e=0;e<Ze.length;e++){var n=Ze[e],r=t.hook[n],o=Xe[n];t.hook[n]=r?en(o,r):o}}(e);var w=t.options.name||u;return new pt("vue-component-"+t.cid+(w?"-"+w:""),e,void 0,void 0,void 0,n,{Ctor:t,propsData:g,listeners:b,tag:u,children:s},l)}}}function en(t,e){return function(n,r,o,i){t(n,r,o,i),e(n,r,o,i)}}var nn=1,rn=2;function on(t,e,n,r,c,u){return(Array.isArray(n)||s(n))&&(c=r,r=n,n=void 0),a(u)&&(c=rn),function(t,e,n,r,s){if(i(n)&&i(n.__ob__))return dt();i(n)&&i(n.is)&&(e=n.is);if(!e)return dt();0;Array.isArray(r)&&"function"==typeof r[0]&&((n=n||{}).scopedSlots={default:r[0]},r.length=0);s===rn?r=se(r):s===nn&&(r=function(t){for(var e=0;e<t.length;e++)if(Array.isArray(t[e]))return Array.prototype.concat.apply([],t);return t}(r));var c,u;if("string"==typeof e){var f;u=t.$vnode&&t.$vnode.ns||D.getTagNamespace(e),c=D.isReservedTag(e)?new pt(D.parsePlatformTagName(e),n,r,void 0,void 0,t):i(f=Nt(t.$options,"components",e))?tn(f,n,t,r,e):new pt(e,n,r,void 0,void 0,t)}else c=tn(e,n,t,r);return i(c)?(u&&function t(e,n,r){e.ns=n;"foreignObject"===e.tag&&(n=void 0,r=!0);if(i(e.children))for(var s=0,c=e.children.length;s<c;s++){var u=e.children[s];i(u.tag)&&(o(u.ns)||a(r))&&t(u,n,r)}}(c,u),c):dt()}(t,e,n,r,c)}var an,sn,cn,un,fn=0;function ln(t){var e=t.options;if(t.super){var n=ln(t.super);if(n!==t.superOptions){t.superOptions=n;var r=function(t){var e,n=t.options,r=t.extendOptions,o=t.sealedOptions;for(var i in n)n[i]!==o[i]&&(e||(e={}),e[i]=pn(n[i],r[i],o[i]));return e}(t);r&&j(t.extendOptions,r),(e=t.options=It(n,t.extendOptions)).name&&(e.components[e.name]=t)}}return e}function pn(t,e,n){if(Array.isArray(t)){var r=[];n=Array.isArray(n)?n:[n],e=Array.isArray(e)?e:[e];for(var o=0;o<t.length;o++)(e.indexOf(t[o])>=0||n.indexOf(t[o])<0)&&r.push(t[o]);return r}return t}function hn(t){this._init(t)}function dn(t){t.cid=0;var e=1;t.extend=function(t){t=t||{};var n=this,r=n.cid,o=t._Ctor||(t._Ctor={});if(o[r])return o[r];var i=t.name||n.options.name;var a=function(t){this._init(t)};return(a.prototype=Object.create(n.prototype)).constructor=a,a.cid=e++,a.options=It(n.options,t),a.super=n,a.options.props&&function(t){var e=t.options.props;for(var n in e)Me(t.prototype,"_props",n)}(a),a.options.computed&&function(t){var e=t.options.computed;for(var n in e)Ie(t.prototype,n,e[n])}(a),a.extend=n.extend,a.mixin=n.mixin,a.use=n.use,R.forEach(function(t){a[t]=n[t]}),i&&(a.options.components[i]=a),a.superOptions=n.options,a.extendOptions=t,a.sealedOptions=j({},a.options),o[r]=a,a}}function vn(t){return t&&(t.Ctor.options.name||t.tag)}function yn(t,e){return Array.isArray(t)?t.indexOf(e)>-1:"string"==typeof t?t.split(",").indexOf(e)>-1:!!l(t)&&t.test(e)}function mn(t,e){var n=t.cache,r=t.keys,o=t._vnode;for(var i in n){var a=n[i];if(a){var s=vn(a.componentOptions);s&&!e(s)&&gn(n,i,r,o)}}}function gn(t,e,n,r){var o=t[e];!o||r&&o.tag===r.tag||o.componentInstance.$destroy(),t[e]=null,m(n,e)}hn.prototype._init=function(t){var e,n,o,i;this._uid=fn++,this._isVue=!0,t&&t._isComponent?function(t,e){var n=t.$options=Object.create(t.constructor.options),r=e._parentVnode;n.parent=e.parent,n._parentVnode=r,n._parentElm=e._parentElm,n._refElm=e._refElm;var o=r.componentOptions;n.propsData=o.propsData,n._parentListeners=o.listeners,n._renderChildren=o.children,n._componentTag=o.tag,e.render&&(n.render=e.render,n.staticRenderFns=e.staticRenderFns)}(this,t):this.$options=It(ln(this.constructor),t||{},this),this._renderProxy=this,this._self=this,function(t){var e=t.$options,n=e.parent;if(n&&!e.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(t)}t.$parent=n,t.$root=n?n.$root:t,t.$children=[],t.$refs={},t._watcher=null,t._inactive=null,t._directInactive=!1,t._isMounted=!1,t._isDestroyed=!1,t._isBeingDestroyed=!1}(this),function(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t.$options._parentListeners;e&&de(t,e)}(this),function(t){t._vnode=null,t._staticTrees=null;var e=t.$options,n=t.$vnode=e._parentVnode,o=n&&n.context;t.$slots=ve(e._renderChildren,o),t.$scopedSlots=r,t._c=function(e,n,r,o){return on(t,e,n,r,o,!1)},t.$createElement=function(e,n,r,o){return on(t,e,n,r,o,!0)};var i=n&&n.data;Ct(t,"$attrs",i&&i.attrs||r,0,!0),Ct(t,"$listeners",e._parentListeners||r,0,!0)}(this),we(this,"beforeCreate"),(n=Fe((e=this).$options.inject,e))&&(wt.shouldConvert=!1,Object.keys(n).forEach(function(t){Ct(e,t,n[t])}),wt.shouldConvert=!0),Pe(this),(i=(o=this).$options.provide)&&(o._provided="function"==typeof i?i.call(o):i),we(this,"created"),this.$options.el&&this.$mount(this.$options.el)},function(t){var e={};e.get=function(){return this._data};var n={};n.get=function(){return this._props},Object.defineProperty(t.prototype,"$data",e),Object.defineProperty(t.prototype,"$props",n),t.prototype.$set=St,t.prototype.$delete=jt,t.prototype.$watch=function(t,e,n){if(f(e))return Re(this,t,e,n);(n=n||{}).user=!0;var r=new $e(this,t,e,n);return n.immediate&&e.call(this,r.value),function(){r.teardown()}}}(hn),sn=/^hook:/,(an=hn).prototype.$on=function(t,e){if(Array.isArray(t))for(var n=0,r=t.length;n<r;n++)this.$on(t[n],e);else(this._events[t]||(this._events[t]=[])).push(e),sn.test(t)&&(this._hasHookEvent=!0);return this},an.prototype.$once=function(t,e){var n=this;function r(){n.$off(t,r),e.apply(n,arguments)}return r.fn=e,n.$on(t,r),n},an.prototype.$off=function(t,e){if(!arguments.length)return this._events=Object.create(null),this;if(Array.isArray(t)){for(var n=0,r=t.length;n<r;n++)this.$off(t[n],e);return this}var o=this._events[t];if(!o)return this;if(!e)return this._events[t]=null,this;if(e)for(var i,a=o.length;a--;)if((i=o[a])===e||i.fn===e){o.splice(a,1);break}return this},an.prototype.$emit=function(t){var e=this._events[t];if(e){e=e.length>1?S(e):e;for(var n=S(arguments,1),r=0,o=e.length;r<o;r++)try{e[r].apply(this,n)}catch(e){Bt(e,this,'event handler for "'+t+'"')}}return this},(cn=hn).prototype._update=function(t,e){this._isMounted&&we(this,"beforeUpdate");var n=this.$el,r=this._vnode,o=ge;ge=this,this._vnode=t,r?this.$el=this.__patch__(r,t):(this.$el=this.__patch__(this.$el,t,e,!1,this.$options._parentElm,this.$options._refElm),this.$options._parentElm=this.$options._refElm=null),ge=o,n&&(n.__vue__=null),this.$el&&(this.$el.__vue__=this),this.$vnode&&this.$parent&&this.$vnode===this.$parent._vnode&&(this.$parent.$el=this.$el)},cn.prototype.$forceUpdate=function(){this._watcher&&this._watcher.update()},cn.prototype.$destroy=function(){if(!this._isBeingDestroyed){we(this,"beforeDestroy"),this._isBeingDestroyed=!0;var t=this.$parent;!t||t._isBeingDestroyed||this.$options.abstract||m(t.$children,this),this._watcher&&this._watcher.teardown();for(var e=this._watchers.length;e--;)this._watchers[e].teardown();this._data.__ob__&&this._data.__ob__.vmCount--,this._isDestroyed=!0,this.__patch__(this._vnode,null),we(this,"destroyed"),this.$off(),this.$el&&(this.$el.__vue__=null),this.$vnode&&(this.$vnode.parent=null)}},Qe((un=hn).prototype),un.prototype.$nextTick=function(t){return Xt(t,this)},un.prototype._render=function(){var t,e=this.$options,n=e.render,o=e._parentVnode;if(this._isMounted)for(var i in this.$slots){var a=this.$slots[i];(a._rendered||a[0]&&a[0].elm)&&(this.$slots[i]=mt(a,!0))}this.$scopedSlots=o&&o.data.scopedSlots||r,this.$vnode=o;try{t=n.call(this._renderProxy,this.$createElement)}catch(e){Bt(e,this,"render"),t=this._vnode}return t instanceof pt||(t=dt()),t.parent=o,t};var bn,_n,wn,xn=[String,RegExp,Array],On={KeepAlive:{name:"keep-alive",abstract:!0,props:{include:xn,exclude:xn,max:[String,Number]},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var t in this.cache)gn(this.cache,t,this.keys)},watch:{include:function(t){mn(this,function(e){return yn(t,e)})},exclude:function(t){mn(this,function(e){return!yn(t,e)})}},render:function(){var t=this.$slots.default,e=le(t),n=e&&e.componentOptions;if(n){var r=vn(n),o=this.include,i=this.exclude;if(o&&(!r||!yn(o,r))||i&&r&&yn(i,r))return e;var a=this.cache,s=this.keys,c=null==e.key?n.Ctor.cid+(n.tag?"::"+n.tag:""):e.key;a[c]?(e.componentInstance=a[c].componentInstance,m(s,c),s.push(c)):(a[c]=e,s.push(c),this.max&&s.length>parseInt(this.max)&&gn(a,s[0],s,this._vnode)),e.data.keepAlive=!0}return e||t&&t[0]}}};bn=hn,(wn={}).get=function(){return D},Object.defineProperty(bn,"config",wn),bn.util={warn:ct,extend:j,mergeOptions:It,defineReactive:Ct},bn.set=St,bn.delete=jt,bn.nextTick=Xt,bn.options=Object.create(null),R.forEach(function(t){bn.options[t+"s"]=Object.create(null)}),bn.options._base=bn,j(bn.options.components,On),bn.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=S(arguments,1);return n.unshift(this),"function"==typeof t.install?t.install.apply(t,n):"function"==typeof t&&t.apply(null,n),e.push(t),this},bn.mixin=function(t){return this.options=It(this.options,t),this},dn(bn),_n=bn,R.forEach(function(t){_n[t]=function(e,n){return n?("component"===t&&f(n)&&(n.name=n.name||e,n=this.options._base.extend(n)),"directive"===t&&"function"==typeof n&&(n={bind:n,update:n}),this.options[t+"s"][e]=n,n):this.options[t+"s"][e]}}),Object.defineProperty(hn.prototype,"$isServer",{get:rt}),Object.defineProperty(hn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),hn.version="2.5.13";var kn=v("style,class"),An=v("input,textarea,option,select,progress"),Cn=v("contenteditable,draggable,spellcheck"),Sn=v("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),jn="http://www.w3.org/1999/xlink",En=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},$n=function(t){return En(t)?t.slice(6,t.length):""},Tn=function(t){return null==t||!1===t};function Mn(t){for(var e=t.data,n=t,r=t;i(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(e=Pn(r.data,e));for(;i(n=n.parent);)n&&n.data&&(e=Pn(e,n.data));return function(t,e){if(i(t)||i(e))return Ln(t,In(e));return""}(e.staticClass,e.class)}function Pn(t,e){return{staticClass:Ln(t.staticClass,e.staticClass),class:i(t.class)?[t.class,e.class]:e.class}}function Ln(t,e){return t?e?t+" "+e:t:e||""}function In(t){return Array.isArray(t)?function(t){for(var e,n="",r=0,o=t.length;r<o;r++)i(e=In(t[r]))&&""!==e&&(n&&(n+=" "),n+=e);return n}(t):c(t)?function(t){var e="";for(var n in t)t[n]&&(e&&(e+=" "),e+=n);return e}(t):"string"==typeof t?t:""}var Nn={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"},Rn=v("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template,blockquote,iframe,tfoot"),Fn=v("svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view",!0),Dn=function(t){return Rn(t)||Fn(t)};var Bn=Object.create(null);var Un=v("text,number,password,search,email,tel,url");var qn=Object.freeze({createElement:function(t,e){var n=document.createElement(t);return"select"!==t?n:(e.data&&e.data.attrs&&void 0!==e.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n)},createElementNS:function(t,e){return document.createElementNS(Nn[t],e)},createTextNode:function(t){return document.createTextNode(t)},createComment:function(t){return document.createComment(t)},insertBefore:function(t,e,n){t.insertBefore(e,n)},removeChild:function(t,e){t.removeChild(e)},appendChild:function(t,e){t.appendChild(e)},parentNode:function(t){return t.parentNode},nextSibling:function(t){return t.nextSibling},tagName:function(t){return t.tagName},setTextContent:function(t,e){t.textContent=e},setAttribute:function(t,e,n){t.setAttribute(e,n)}}),zn={create:function(t,e){Vn(e)},update:function(t,e){t.data.ref!==e.data.ref&&(Vn(t,!0),Vn(e))},destroy:function(t){Vn(t,!0)}};function Vn(t,e){var n=t.data.ref;if(n){var r=t.context,o=t.componentInstance||t.elm,i=r.$refs;e?Array.isArray(i[n])?m(i[n],o):i[n]===o&&(i[n]=void 0):t.data.refInFor?Array.isArray(i[n])?i[n].indexOf(o)<0&&i[n].push(o):i[n]=[o]:i[n]=o}}var Gn=new pt("",{},[]),Hn=["create","activate","update","remove","destroy"];function Kn(t,e){return t.key===e.key&&(t.tag===e.tag&&t.isComment===e.isComment&&i(t.data)===i(e.data)&&function(t,e){if("input"!==t.tag)return!0;var n,r=i(n=t.data)&&i(n=n.attrs)&&n.type,o=i(n=e.data)&&i(n=n.attrs)&&n.type;return r===o||Un(r)&&Un(o)}(t,e)||a(t.isAsyncPlaceholder)&&t.asyncFactory===e.asyncFactory&&o(e.asyncFactory.error))}function Wn(t,e,n){var r,o,a={};for(r=e;r<=n;++r)i(o=t[r].key)&&(a[o]=r);return a}var Qn={create:Jn,update:Jn,destroy:function(t){Jn(t,Gn)}};function Jn(t,e){(t.data.directives||e.data.directives)&&function(t,e){var n,r,o,i=t===Gn,a=e===Gn,s=Xn(t.data.directives,t.context),c=Xn(e.data.directives,e.context),u=[],f=[];for(n in c)r=s[n],o=c[n],r?(o.oldValue=r.value,Zn(o,"update",e,t),o.def&&o.def.componentUpdated&&f.push(o)):(Zn(o,"bind",e,t),o.def&&o.def.inserted&&u.push(o));if(u.length){var l=function(){for(var n=0;n<u.length;n++)Zn(u[n],"inserted",e,t)};i?ie(e,"insert",l):l()}f.length&&ie(e,"postpatch",function(){for(var n=0;n<f.length;n++)Zn(f[n],"componentUpdated",e,t)});if(!i)for(n in s)c[n]||Zn(s[n],"unbind",t,t,a)}(t,e)}var Yn=Object.create(null);function Xn(t,e){var n,r,o,i=Object.create(null);if(!t)return i;for(n=0;n<t.length;n++)(r=t[n]).modifiers||(r.modifiers=Yn),i[(o=r,o.rawName||o.name+"."+Object.keys(o.modifiers||{}).join("."))]=r,r.def=Nt(e.$options,"directives",r.name);return i}function Zn(t,e,n,r,o){var i=t.def&&t.def[e];if(i)try{i(n.elm,t,n,r,o)}catch(r){Bt(r,n.context,"directive "+t.name+" "+e+" hook")}}var tr=[zn,Qn];function er(t,e){var n=e.componentOptions;if(!(i(n)&&!1===n.Ctor.options.inheritAttrs||o(t.data.attrs)&&o(e.data.attrs))){var r,a,s=e.elm,c=t.data.attrs||{},u=e.data.attrs||{};i(u.__ob__)&&(u=e.data.attrs=j({},u));for(r in u)a=u[r],c[r]!==a&&nr(s,r,a);(Q||Y)&&u.value!==c.value&&nr(s,"value",u.value);for(r in c)o(u[r])&&(En(r)?s.removeAttributeNS(jn,$n(r)):Cn(r)||s.removeAttribute(r))}}function nr(t,e,n){if(Sn(e))Tn(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n));else if(Cn(e))t.setAttribute(e,Tn(n)||"false"===n?"false":"true");else if(En(e))Tn(n)?t.removeAttributeNS(jn,$n(e)):t.setAttributeNS(jn,e,n);else if(Tn(n))t.removeAttribute(e);else{if(Q&&!J&&"TEXTAREA"===t.tagName&&"placeholder"===e&&!t.__ieph){var r=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",r)};t.addEventListener("input",r),t.__ieph=!0}t.setAttribute(e,n)}}var rr={create:er,update:er};function or(t,e){var n=e.elm,r=e.data,a=t.data;if(!(o(r.staticClass)&&o(r.class)&&(o(a)||o(a.staticClass)&&o(a.class)))){var s=Mn(e),c=n._transitionClasses;i(c)&&(s=Ln(s,In(c))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var ir,ar={create:or,update:or},sr="__r",cr="__c";function ur(t,e,n,r,o){var i,a,s,c,u;e=(i=e)._withTask||(i._withTask=function(){Wt=!0;var t=i.apply(null,arguments);return Wt=!1,t}),n&&(a=e,s=t,c=r,u=ir,e=function t(){null!==a.apply(null,arguments)&&fr(s,t,c,u)}),ir.addEventListener(t,e,et?{capture:r,passive:o}:r)}function fr(t,e,n,r){(r||ir).removeEventListener(t,e._withTask||e,n)}function lr(t,e){if(!o(t.data.on)||!o(e.data.on)){var n=e.data.on||{},r=t.data.on||{};ir=e.elm,function(t){if(i(t[sr])){var e=Q?"change":"input";t[e]=[].concat(t[sr],t[e]||[]),delete t[sr]}i(t[cr])&&(t.change=[].concat(t[cr],t.change||[]),delete t[cr])}(n),oe(n,r,ur,fr,e.context),ir=void 0}}var pr={create:lr,update:lr};function hr(t,e){if(!o(t.data.domProps)||!o(e.data.domProps)){var n,r,a,s,c=e.elm,u=t.data.domProps||{},f=e.data.domProps||{};i(f.__ob__)&&(f=e.data.domProps=j({},f));for(n in u)o(f[n])&&(c[n]="");for(n in f){if(r=f[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),r===u[n])continue;1===c.childNodes.length&&c.removeChild(c.childNodes[0])}if("value"===n){c._value=r;var l=o(r)?"":String(r);s=l,(a=c).composing||"OPTION"!==a.tagName&&!function(t,e){var n=!0;try{n=document.activeElement!==t}catch(t){}return n&&t.value!==e}(a,s)&&!function(t,e){var n=t.value,r=t._vModifiers;if(i(r)){if(r.lazy)return!1;if(r.number)return d(n)!==d(e);if(r.trim)return n.trim()!==e.trim()}return n!==e}(a,s)||(c.value=l)}else c[n]=r}}}var dr={create:hr,update:hr},vr=_(function(t){var e={},n=/:(.+)/;return t.split(/;(?![^(]*\))/g).forEach(function(t){if(t){var r=t.split(n);r.length>1&&(e[r[0].trim()]=r[1].trim())}}),e});function yr(t){var e=mr(t.style);return t.staticStyle?j(t.staticStyle,e):e}function mr(t){return Array.isArray(t)?E(t):"string"==typeof t?vr(t):t}var gr,br=/^--/,_r=/\s*!important$/,wr=function(t,e,n){if(br.test(e))t.style.setProperty(e,n);else if(_r.test(n))t.style.setProperty(e,n.replace(_r,""),"important");else{var r=Or(e);if(Array.isArray(n))for(var o=0,i=n.length;o<i;o++)t.style[r]=n[o];else t.style[r]=n}},xr=["Webkit","Moz","ms"],Or=_(function(t){if(gr=gr||document.createElement("div").style,"filter"!==(t=x(t))&&t in gr)return t;for(var e=t.charAt(0).toUpperCase()+t.slice(1),n=0;n<xr.length;n++){var r=xr[n]+e;if(r in gr)return r}});function kr(t,e){var n=e.data,r=t.data;if(!(o(n.staticStyle)&&o(n.style)&&o(r.staticStyle)&&o(r.style))){var a,s,c=e.elm,u=r.staticStyle,f=r.normalizedStyle||r.style||{},l=u||f,p=mr(e.data.style)||{};e.data.normalizedStyle=i(p.__ob__)?j({},p):p;var h=function(t,e){var n,r={};if(e)for(var o=t;o.componentInstance;)(o=o.componentInstance._vnode)&&o.data&&(n=yr(o.data))&&j(r,n);(n=yr(t.data))&&j(r,n);for(var i=t;i=i.parent;)i.data&&(n=yr(i.data))&&j(r,n);return r}(e,!0);for(s in l)o(h[s])&&wr(c,s,"");for(s in h)(a=h[s])!==l[s]&&wr(c,s,null==a?"":a)}}var Ar={create:kr,update:kr};function Cr(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(/\s+/).forEach(function(e){return t.classList.add(e)}):t.classList.add(e);else{var n=" "+(t.getAttribute("class")||"")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function Sr(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(/\s+/).forEach(function(e){return t.classList.remove(e)}):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" "+(t.getAttribute("class")||"")+" ",r=" "+e+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?t.setAttribute("class",n):t.removeAttribute("class")}}function jr(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&j(e,Er(t.name||"v")),j(e,t),e}return"string"==typeof t?Er(t):void 0}}var Er=_(function(t){return{enterClass:t+"-enter",enterToClass:t+"-enter-to",enterActiveClass:t+"-enter-active",leaveClass:t+"-leave",leaveToClass:t+"-leave-to",leaveActiveClass:t+"-leave-active"}}),$r=G&&!J,Tr="transition",Mr="animation",Pr="transition",Lr="transitionend",Ir="animation",Nr="animationend";$r&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Pr="WebkitTransition",Lr="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Ir="WebkitAnimation",Nr="webkitAnimationEnd"));var Rr=G?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function Fr(t){Rr(function(){Rr(t)})}function Dr(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),Cr(t,e))}function Br(t,e){t._transitionClasses&&m(t._transitionClasses,e),Sr(t,e)}function Ur(t,e,n){var r=zr(t,e),o=r.type,i=r.timeout,a=r.propCount;if(!o)return n();var s=o===Tr?Lr:Nr,c=0,u=function(){t.removeEventListener(s,f),n()},f=function(e){e.target===t&&++c>=a&&u()};setTimeout(function(){c<a&&u()},i+1),t.addEventListener(s,f)}var qr=/\b(transform|all)(,|$)/;function zr(t,e){var n,r=window.getComputedStyle(t),o=r[Pr+"Delay"].split(", "),i=r[Pr+"Duration"].split(", "),a=Vr(o,i),s=r[Ir+"Delay"].split(", "),c=r[Ir+"Duration"].split(", "),u=Vr(s,c),f=0,l=0;return e===Tr?a>0&&(n=Tr,f=a,l=i.length):e===Mr?u>0&&(n=Mr,f=u,l=c.length):l=(n=(f=Math.max(a,u))>0?a>u?Tr:Mr:null)?n===Tr?i.length:c.length:0,{type:n,timeout:f,propCount:l,hasTransform:n===Tr&&qr.test(r[Pr+"Property"])}}function Vr(t,e){for(;t.length<e.length;)t=t.concat(t);return Math.max.apply(null,e.map(function(e,n){return Gr(e)+Gr(t[n])}))}function Gr(t){return 1e3*Number(t.slice(0,-1))}function Hr(t,e){var n=t.elm;i(n._leaveCb)&&(n._leaveCb.cancelled=!0,n._leaveCb());var r=jr(t.data.transition);if(!o(r)&&!i(n._enterCb)&&1===n.nodeType){for(var a=r.css,s=r.type,u=r.enterClass,f=r.enterToClass,l=r.enterActiveClass,p=r.appearClass,h=r.appearToClass,v=r.appearActiveClass,y=r.beforeEnter,m=r.enter,g=r.afterEnter,b=r.enterCancelled,_=r.beforeAppear,w=r.appear,x=r.afterAppear,O=r.appearCancelled,k=r.duration,A=ge,C=ge.$vnode;C&&C.parent;)A=(C=C.parent).context;var S=!A._isMounted||!t.isRootInsert;if(!S||w||""===w){var j=S&&p?p:u,E=S&&v?v:l,$=S&&h?h:f,T=S?_||y:y,M=S&&"function"==typeof w?w:m,P=S?x||g:g,L=S?O||b:b,N=d(c(k)?k.enter:k);0;var R=!1!==a&&!J,F=Qr(M),D=n._enterCb=I(function(){R&&(Br(n,$),Br(n,E)),D.cancelled?(R&&Br(n,j),L&&L(n)):P&&P(n),n._enterCb=null});t.data.show||ie(t,"insert",function(){var e=n.parentNode,r=e&&e._pending&&e._pending[t.key];r&&r.tag===t.tag&&r.elm._leaveCb&&r.elm._leaveCb(),M&&M(n,D)}),T&&T(n),R&&(Dr(n,j),Dr(n,E),Fr(function(){Dr(n,$),Br(n,j),D.cancelled||F||(Wr(N)?setTimeout(D,N):Ur(n,s,D))})),t.data.show&&(e&&e(),M&&M(n,D)),R||F||D()}}}function Kr(t,e){var n=t.elm;i(n._enterCb)&&(n._enterCb.cancelled=!0,n._enterCb());var r=jr(t.data.transition);if(o(r)||1!==n.nodeType)return e();if(!i(n._leaveCb)){var a=r.css,s=r.type,u=r.leaveClass,f=r.leaveToClass,l=r.leaveActiveClass,p=r.beforeLeave,h=r.leave,v=r.afterLeave,y=r.leaveCancelled,m=r.delayLeave,g=r.duration,b=!1!==a&&!J,_=Qr(h),w=d(c(g)?g.leave:g);0;var x=n._leaveCb=I(function(){n.parentNode&&n.parentNode._pending&&(n.parentNode._pending[t.key]=null),b&&(Br(n,f),Br(n,l)),x.cancelled?(b&&Br(n,u),y&&y(n)):(e(),v&&v(n)),n._leaveCb=null});m?m(O):O()}function O(){x.cancelled||(t.data.show||((n.parentNode._pending||(n.parentNode._pending={}))[t.key]=t),p&&p(n),b&&(Dr(n,u),Dr(n,l),Fr(function(){Dr(n,f),Br(n,u),x.cancelled||_||(Wr(w)?setTimeout(x,w):Ur(n,s,x))})),h&&h(n,x),b||_||x())}}function Wr(t){return"number"==typeof t&&!isNaN(t)}function Qr(t){if(o(t))return!1;var e=t.fns;return i(e)?Qr(Array.isArray(e)?e[0]:e):(t._length||t.length)>1}function Jr(t,e){!0!==e.data.show&&Hr(e)}var Yr=function(t){var e,n,r={},c=t.modules,u=t.nodeOps;for(e=0;e<Hn.length;++e)for(r[Hn[e]]=[],n=0;n<c.length;++n)i(c[n][Hn[e]])&&r[Hn[e]].push(c[n][Hn[e]]);function f(t){var e=u.parentNode(t);i(e)&&u.removeChild(e,t)}function l(t,e,n,o,s){if(t.isRootInsert=!s,!function(t,e,n,o){var s=t.data;if(i(s)){var c=i(t.componentInstance)&&s.keepAlive;if(i(s=s.hook)&&i(s=s.init)&&s(t,!1,n,o),i(t.componentInstance))return p(t,e),a(c)&&function(t,e,n,o){for(var a,s=t;s.componentInstance;)if(s=s.componentInstance._vnode,i(a=s.data)&&i(a=a.transition)){for(a=0;a<r.activate.length;++a)r.activate[a](Gn,s);e.push(s);break}h(n,t.elm,o)}(t,e,n,o),!0}}(t,e,n,o)){var c=t.data,f=t.children,l=t.tag;i(l)?(t.elm=t.ns?u.createElementNS(t.ns,l):u.createElement(l,t),g(t),d(t,f,e),i(c)&&m(t,e),h(n,t.elm,o)):a(t.isComment)?(t.elm=u.createComment(t.text),h(n,t.elm,o)):(t.elm=u.createTextNode(t.text),h(n,t.elm,o))}}function p(t,e){i(t.data.pendingInsert)&&(e.push.apply(e,t.data.pendingInsert),t.data.pendingInsert=null),t.elm=t.componentInstance.$el,y(t)?(m(t,e),g(t)):(Vn(t),e.push(t))}function h(t,e,n){i(t)&&(i(n)?n.parentNode===t&&u.insertBefore(t,e,n):u.appendChild(t,e))}function d(t,e,n){if(Array.isArray(e))for(var r=0;r<e.length;++r)l(e[r],n,t.elm,null,!0);else s(t.text)&&u.appendChild(t.elm,u.createTextNode(String(t.text)))}function y(t){for(;t.componentInstance;)t=t.componentInstance._vnode;return i(t.tag)}function m(t,n){for(var o=0;o<r.create.length;++o)r.create[o](Gn,t);i(e=t.data.hook)&&(i(e.create)&&e.create(Gn,t),i(e.insert)&&n.push(t))}function g(t){var e;if(i(e=t.fnScopeId))u.setAttribute(t.elm,e,"");else for(var n=t;n;)i(e=n.context)&&i(e=e.$options._scopeId)&&u.setAttribute(t.elm,e,""),n=n.parent;i(e=ge)&&e!==t.context&&e!==t.fnContext&&i(e=e.$options._scopeId)&&u.setAttribute(t.elm,e,"")}function b(t,e,n,r,o,i){for(;r<=o;++r)l(n[r],i,t,e)}function _(t){var e,n,o=t.data;if(i(o))for(i(e=o.hook)&&i(e=e.destroy)&&e(t),e=0;e<r.destroy.length;++e)r.destroy[e](t);if(i(e=t.children))for(n=0;n<t.children.length;++n)_(t.children[n])}function w(t,e,n,r){for(;n<=r;++n){var o=e[n];i(o)&&(i(o.tag)?(x(o),_(o)):f(o.elm))}}function x(t,e){if(i(e)||i(t.data)){var n,o=r.remove.length+1;for(i(e)?e.listeners+=o:e=function(t,e){function n(){0==--n.listeners&&f(t)}return n.listeners=e,n}(t.elm,o),i(n=t.componentInstance)&&i(n=n._vnode)&&i(n.data)&&x(n,e),n=0;n<r.remove.length;++n)r.remove[n](t,e);i(n=t.data.hook)&&i(n=n.remove)?n(t,e):e()}else f(t.elm)}function O(t,e,n,r){for(var o=n;o<r;o++){var a=e[o];if(i(a)&&Kn(t,a))return o}}function k(t,e,n,s){if(t!==e){var c=e.elm=t.elm;if(a(t.isAsyncPlaceholder))i(e.asyncFactory.resolved)?S(t.elm,e,n):e.isAsyncPlaceholder=!0;else if(a(e.isStatic)&&a(t.isStatic)&&e.key===t.key&&(a(e.isCloned)||a(e.isOnce)))e.componentInstance=t.componentInstance;else{var f,p=e.data;i(p)&&i(f=p.hook)&&i(f=f.prepatch)&&f(t,e);var h=t.children,d=e.children;if(i(p)&&y(e)){for(f=0;f<r.update.length;++f)r.update[f](t,e);i(f=p.hook)&&i(f=f.update)&&f(t,e)}o(e.text)?i(h)&&i(d)?h!==d&&function(t,e,n,r,a){for(var s,c,f,p=0,h=0,d=e.length-1,v=e[0],y=e[d],m=n.length-1,g=n[0],_=n[m],x=!a;p<=d&&h<=m;)o(v)?v=e[++p]:o(y)?y=e[--d]:Kn(v,g)?(k(v,g,r),v=e[++p],g=n[++h]):Kn(y,_)?(k(y,_,r),y=e[--d],_=n[--m]):Kn(v,_)?(k(v,_,r),x&&u.insertBefore(t,v.elm,u.nextSibling(y.elm)),v=e[++p],_=n[--m]):Kn(y,g)?(k(y,g,r),x&&u.insertBefore(t,y.elm,v.elm),y=e[--d],g=n[++h]):(o(s)&&(s=Wn(e,p,d)),o(c=i(g.key)?s[g.key]:O(g,e,p,d))?l(g,r,t,v.elm):Kn(f=e[c],g)?(k(f,g,r),e[c]=void 0,x&&u.insertBefore(t,f.elm,v.elm)):l(g,r,t,v.elm),g=n[++h]);p>d?b(t,o(n[m+1])?null:n[m+1].elm,n,h,m,r):h>m&&w(0,e,p,d)}(c,h,d,n,s):i(d)?(i(t.text)&&u.setTextContent(c,""),b(c,null,d,0,d.length-1,n)):i(h)?w(0,h,0,h.length-1):i(t.text)&&u.setTextContent(c,""):t.text!==e.text&&u.setTextContent(c,e.text),i(p)&&i(f=p.hook)&&i(f=f.postpatch)&&f(t,e)}}}function A(t,e,n){if(a(n)&&i(t.parent))t.parent.data.pendingInsert=e;else for(var r=0;r<e.length;++r)e[r].data.hook.insert(e[r])}var C=v("attrs,class,staticClass,staticStyle,key");function S(t,e,n,r){var o,s=e.tag,c=e.data,u=e.children;if(r=r||c&&c.pre,e.elm=t,a(e.isComment)&&i(e.asyncFactory))return e.isAsyncPlaceholder=!0,!0;if(i(c)&&(i(o=c.hook)&&i(o=o.init)&&o(e,!0),i(o=e.componentInstance)))return p(e,n),!0;if(i(s)){if(i(u))if(t.hasChildNodes())if(i(o=c)&&i(o=o.domProps)&&i(o=o.innerHTML)){if(o!==t.innerHTML)return!1}else{for(var f=!0,l=t.firstChild,h=0;h<u.length;h++){if(!l||!S(l,u[h],n,r)){f=!1;break}l=l.nextSibling}if(!f||l)return!1}else d(e,u,n);if(i(c)){var v=!1;for(var y in c)if(!C(y)){v=!0,m(e,n);break}!v&&c.class&&te(c.class)}}else t.data!==e.text&&(t.data=e.text);return!0}return function(t,e,n,s,c,f){if(!o(e)){var p,h=!1,d=[];if(o(t))h=!0,l(e,d,c,f);else{var v=i(t.nodeType);if(!v&&Kn(t,e))k(t,e,d,s);else{if(v){if(1===t.nodeType&&t.hasAttribute(N)&&(t.removeAttribute(N),n=!0),a(n)&&S(t,e,d))return A(e,d,!0),t;p=t,t=new pt(u.tagName(p).toLowerCase(),{},[],void 0,p)}var m=t.elm,g=u.parentNode(m);if(l(e,d,m._leaveCb?null:g,u.nextSibling(m)),i(e.parent))for(var b=e.parent,x=y(e);b;){for(var O=0;O<r.destroy.length;++O)r.destroy[O](b);if(b.elm=e.elm,x){for(var C=0;C<r.create.length;++C)r.create[C](Gn,b);var j=b.data.hook.insert;if(j.merged)for(var E=1;E<j.fns.length;E++)j.fns[E]()}else Vn(b);b=b.parent}i(g)?w(0,[t],0,0):i(t.tag)&&_(t)}}return A(e,d,h),e.elm}i(t)&&_(t)}}({nodeOps:qn,modules:[rr,ar,pr,dr,Ar,G?{create:Jr,activate:Jr,remove:function(t,e){!0!==t.data.show?Kr(t,e):e()}}:{}].concat(tr)});J&&document.addEventListener("selectionchange",function(){var t=document.activeElement;t&&t.vmodel&&io(t,"input")});var Xr={inserted:function(t,e,n,r){"select"===n.tag?(r.elm&&!r.elm._vOptions?ie(n,"postpatch",function(){Xr.componentUpdated(t,e,n)}):Zr(t,e,n.context),t._vOptions=[].map.call(t.options,no)):("textarea"===n.tag||Un(t.type))&&(t._vModifiers=e.modifiers,e.modifiers.lazy||(t.addEventListener("change",oo),X||(t.addEventListener("compositionstart",ro),t.addEventListener("compositionend",oo)),J&&(t.vmodel=!0)))},componentUpdated:function(t,e,n){if("select"===n.tag){Zr(t,e,n.context);var r=t._vOptions,o=t._vOptions=[].map.call(t.options,no);if(o.some(function(t,e){return!P(t,r[e])}))(t.multiple?e.value.some(function(t){return eo(t,o)}):e.value!==e.oldValue&&eo(e.value,o))&&io(t,"change")}}};function Zr(t,e,n){to(t,e,n),(Q||Y)&&setTimeout(function(){to(t,e,n)},0)}function to(t,e,n){var r=e.value,o=t.multiple;if(!o||Array.isArray(r)){for(var i,a,s=0,c=t.options.length;s<c;s++)if(a=t.options[s],o)i=L(r,no(a))>-1,a.selected!==i&&(a.selected=i);else if(P(no(a),r))return void(t.selectedIndex!==s&&(t.selectedIndex=s));o||(t.selectedIndex=-1)}}function eo(t,e){return e.every(function(e){return!P(e,t)})}function no(t){return"_value"in t?t._value:t.value}function ro(t){t.target.composing=!0}function oo(t){t.target.composing&&(t.target.composing=!1,io(t.target,"input"))}function io(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function ao(t){return!t.componentInstance||t.data&&t.data.transition?t:ao(t.componentInstance._vnode)}var so={model:Xr,show:{bind:function(t,e,n){var r=e.value,o=(n=ao(n)).data&&n.data.transition,i=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;r&&o?(n.data.show=!0,Hr(n,function(){t.style.display=i})):t.style.display=r?i:"none"},update:function(t,e,n){var r=e.value;r!==e.oldValue&&((n=ao(n)).data&&n.data.transition?(n.data.show=!0,r?Hr(n,function(){t.style.display=t.__vOriginalDisplay}):Kr(n,function(){t.style.display="none"})):t.style.display=r?t.__vOriginalDisplay:"none")},unbind:function(t,e,n,r,o){o||(t.style.display=t.__vOriginalDisplay)}}},co={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function uo(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?uo(le(e.children)):t}function fo(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];var o=n._parentListeners;for(var i in o)e[x(i)]=o[i];return e}function lo(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}var po={name:"transition",props:co,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(function(t){return t.tag||fe(t)})).length){0;var r=this.mode;0;var o=n[0];if(function(t){for(;t=t.parent;)if(t.data.transition)return!0}(this.$vnode))return o;var i=uo(o);if(!i)return o;if(this._leaving)return lo(t,o);var a="__transition-"+this._uid+"-";i.key=null==i.key?i.isComment?a+"comment":a+i.tag:s(i.key)?0===String(i.key).indexOf(a)?i.key:a+i.key:i.key;var c,u,f=(i.data||(i.data={})).transition=fo(this),l=this._vnode,p=uo(l);if(i.data.directives&&i.data.directives.some(function(t){return"show"===t.name})&&(i.data.show=!0),p&&p.data&&(c=i,(u=p).key!==c.key||u.tag!==c.tag)&&!fe(p)&&(!p.componentInstance||!p.componentInstance._vnode.isComment)){var h=p.data.transition=j({},f);if("out-in"===r)return this._leaving=!0,ie(h,"afterLeave",function(){e._leaving=!1,e.$forceUpdate()}),lo(t,o);if("in-out"===r){if(fe(i))return l;var d,v=function(){d()};ie(f,"afterEnter",v),ie(f,"enterCancelled",v),ie(h,"delayLeave",function(t){d=t})}}return o}}},ho=j({tag:String,moveClass:String},co);function vo(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function yo(t){t.data.newPos=t.elm.getBoundingClientRect()}function mo(t){var e=t.data.pos,n=t.data.newPos,r=e.left-n.left,o=e.top-n.top;if(r||o){t.data.moved=!0;var i=t.elm.style;i.transform=i.WebkitTransform="translate("+r+"px,"+o+"px)",i.transitionDuration="0s"}}delete ho.mode;var go={Transition:po,TransitionGroup:{props:ho,render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,o=this.$slots.default||[],i=this.children=[],a=fo(this),s=0;s<o.length;s++){var c=o[s];if(c.tag)if(null!=c.key&&0!==String(c.key).indexOf("__vlist"))i.push(c),n[c.key]=c,(c.data||(c.data={})).transition=a;else;}if(r){for(var u=[],f=[],l=0;l<r.length;l++){var p=r[l];p.data.transition=a,p.data.pos=p.elm.getBoundingClientRect(),n[p.key]?u.push(p):f.push(p)}this.kept=t(e,null,u),this.removed=f}return t(e,null,i)},beforeUpdate:function(){this.__patch__(this._vnode,this.kept,!1,!0),this._vnode=this.kept},updated:function(){var t=this.prevChildren,e=this.moveClass||(this.name||"v")+"-move";t.length&&this.hasMove(t[0].elm,e)&&(t.forEach(vo),t.forEach(yo),t.forEach(mo),this._reflow=document.body.offsetHeight,t.forEach(function(t){if(t.data.moved){var n=t.elm,r=n.style;Dr(n,e),r.transform=r.WebkitTransform=r.transitionDuration="",n.addEventListener(Lr,n._moveCb=function t(r){r&&!/transform$/.test(r.propertyName)||(n.removeEventListener(Lr,t),n._moveCb=null,Br(n,e))})}}))},methods:{hasMove:function(t,e){if(!$r)return!1;if(this._hasMove)return this._hasMove;var n=t.cloneNode();t._transitionClasses&&t._transitionClasses.forEach(function(t){Sr(n,t)}),Cr(n,e),n.style.display="none",this.$el.appendChild(n);var r=zr(n);return this.$el.removeChild(n),this._hasMove=r.hasTransform}}}};hn.config.mustUseProp=function(t,e,n){return"value"===n&&An(t)&&"button"!==e||"selected"===n&&"option"===t||"checked"===n&&"input"===t||"muted"===n&&"video"===t},hn.config.isReservedTag=Dn,hn.config.isReservedAttr=kn,hn.config.getTagNamespace=function(t){return Fn(t)?"svg":"math"===t?"math":void 0},hn.config.isUnknownElement=function(t){if(!G)return!0;if(Dn(t))return!1;if(t=t.toLowerCase(),null!=Bn[t])return Bn[t];var e=document.createElement(t);return t.indexOf("-")>-1?Bn[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:Bn[t]=/HTMLUnknownElement/.test(e.toString())},j(hn.options.directives,so),j(hn.options.components,go),hn.prototype.__patch__=G?Yr:$,hn.prototype.$mount=function(t,e){return t=t&&G?function(t){if("string"==typeof t){var e=document.querySelector(t);return e||document.createElement("div")}return t}(t):void 0,r=t,o=e,(n=this).$el=r,n.$options.render||(n.$options.render=dt),we(n,"beforeMount"),new $e(n,function(){n._update(n._render(),o)},$,null,!0),o=!1,null==n.$vnode&&(n._isMounted=!0,we(n,"mounted")),n;var n,r,o},hn.nextTick(function(){D.devtools&&ot&&ot.emit("init",hn)},0),e.default=hn}.call(e,n("DuR2"),n("162o").setImmediate)},"/bQp":function(t,e){t.exports={}},"/n6Q":function(t,e,n){n("zQR9"),n("+tPU"),t.exports=n("Kh4W").f("iterator")},"/ocq":function(t,e,n){"use strict";function r(t,e){0}function o(t){return Object.prototype.toString.call(t).indexOf("Error")>-1}Object.defineProperty(e,"__esModule",{value:!0});var i={name:"router-view",functional:!0,props:{name:{type:String,default:"default"}},render:function(t,e){var n=e.props,r=e.children,o=e.parent,i=e.data;i.routerView=!0;for(var a=o.$createElement,s=n.name,c=o.$route,u=o._routerViewCache||(o._routerViewCache={}),f=0,l=!1;o&&o._routerRoot!==o;)o.$vnode&&o.$vnode.data.routerView&&f++,o._inactive&&(l=!0),o=o.$parent;if(i.routerViewDepth=f,l)return a(u[s],i,r);var p=c.matched[f];if(!p)return u[s]=null,a();var h=u[s]=p.components[s];i.registerRouteInstance=function(t,e){var n=p.instances[s];(e&&n!==t||!e&&n===t)&&(p.instances[s]=e)},(i.hook||(i.hook={})).prepatch=function(t,e){p.instances[s]=e.componentInstance};var d=i.props=function(t,e){switch(typeof e){case"undefined":return;case"object":return e;case"function":return e(t);case"boolean":return e?t.params:void 0;default:0}}(c,p.props&&p.props[s]);if(d){d=i.props=function(t,e){for(var n in e)t[n]=e[n];return t}({},d);var v=i.attrs=i.attrs||{};for(var y in d)h.props&&y in h.props||(v[y]=d[y],delete d[y])}return a(h,i,r)}};var a=/[!'()*]/g,s=function(t){return"%"+t.charCodeAt(0).toString(16)},c=/%2C/g,u=function(t){return encodeURIComponent(t).replace(a,s).replace(c,",")},f=decodeURIComponent;function l(t){var e={};return(t=t.trim().replace(/^(\?|#|&)/,""))?(t.split("&").forEach(function(t){var n=t.replace(/\+/g," ").split("="),r=f(n.shift()),o=n.length>0?f(n.join("=")):null;void 0===e[r]?e[r]=o:Array.isArray(e[r])?e[r].push(o):e[r]=[e[r],o]}),e):e}function p(t){var e=t?Object.keys(t).map(function(e){var n=t[e];if(void 0===n)return"";if(null===n)return u(e);if(Array.isArray(n)){var r=[];return n.forEach(function(t){void 0!==t&&(null===t?r.push(u(e)):r.push(u(e)+"="+u(t)))}),r.join("&")}return u(e)+"="+u(n)}).filter(function(t){return t.length>0}).join("&"):null;return e?"?"+e:""}var h=/\/?$/;function d(t,e,n,r){var o=r&&r.options.stringifyQuery,i=e.query||{};try{i=v(i)}catch(t){}var a={name:e.name||t&&t.name,meta:t&&t.meta||{},path:e.path||"/",hash:e.hash||"",query:i,params:e.params||{},fullPath:m(e,o),matched:t?function(t){var e=[];for(;t;)e.unshift(t),t=t.parent;return e}(t):[]};return n&&(a.redirectedFrom=m(n,o)),Object.freeze(a)}function v(t){if(Array.isArray(t))return t.map(v);if(t&&"object"==typeof t){var e={};for(var n in t)e[n]=v(t[n]);return e}return t}var y=d(null,{path:"/"});function m(t,e){var n=t.path,r=t.query;void 0===r&&(r={});var o=t.hash;return void 0===o&&(o=""),(n||"/")+(e||p)(r)+o}function g(t,e){return e===y?t===e:!!e&&(t.path&&e.path?t.path.replace(h,"")===e.path.replace(h,"")&&t.hash===e.hash&&b(t.query,e.query):!(!t.name||!e.name)&&(t.name===e.name&&t.hash===e.hash&&b(t.query,e.query)&&b(t.params,e.params)))}function b(t,e){if(void 0===t&&(t={}),void 0===e&&(e={}),!t||!e)return t===e;var n=Object.keys(t),r=Object.keys(e);return n.length===r.length&&n.every(function(n){var r=t[n],o=e[n];return"object"==typeof r&&"object"==typeof o?b(r,o):String(r)===String(o)})}var _,w=[String,Object],x=[String,Array],O={name:"router-link",props:{to:{type:w,required:!0},tag:{type:String,default:"a"},exact:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,event:{type:x,default:"click"}},render:function(t){var e,n,r=this,o=this.$router,i=this.$route,a=o.resolve(this.to,i,this.append),s=a.location,c=a.route,u=a.href,f={},l=o.options.linkActiveClass,p=o.options.linkExactActiveClass,v=null==l?"router-link-active":l,y=null==p?"router-link-exact-active":p,m=null==this.activeClass?v:this.activeClass,b=null==this.exactActiveClass?y:this.exactActiveClass,w=s.path?d(null,s,null,o):c;f[b]=g(i,w),f[m]=this.exact?f[b]:(n=w,0===(e=i).path.replace(h,"/").indexOf(n.path.replace(h,"/"))&&(!n.hash||e.hash===n.hash)&&function(t,e){for(var n in e)if(!(n in t))return!1;return!0}(e.query,n.query));var x=function(t){k(t)&&(r.replace?o.replace(s):o.push(s))},O={click:k};Array.isArray(this.event)?this.event.forEach(function(t){O[t]=x}):O[this.event]=x;var A={class:f};if("a"===this.tag)A.on=O,A.attrs={href:u};else{var C=function t(e){if(e)for(var n,r=0;r<e.length;r++){if("a"===(n=e[r]).tag)return n;if(n.children&&(n=t(n.children)))return n}}(this.$slots.default);if(C){C.isStatic=!1;var S=_.util.extend;(C.data=S({},C.data)).on=O,(C.data.attrs=S({},C.data.attrs)).href=u}else A.on=O}return t(this.tag,A,this.$slots.default)}};function k(t){if(!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey||t.defaultPrevented||void 0!==t.button&&0!==t.button)){if(t.currentTarget&&t.currentTarget.getAttribute){var e=t.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(e))return}return t.preventDefault&&t.preventDefault(),!0}}function A(t){if(!A.installed||_!==t){A.installed=!0,_=t;var e=function(t){return void 0!==t},n=function(t,n){var r=t.$options._parentVnode;e(r)&&e(r=r.data)&&e(r=r.registerRouteInstance)&&r(t,n)};t.mixin({beforeCreate:function(){e(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),t.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,n(this,this)},destroyed:function(){n(this)}}),Object.defineProperty(t.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(t.prototype,"$route",{get:function(){return this._routerRoot._route}}),t.component("router-view",i),t.component("router-link",O);var r=t.config.optionMergeStrategies;r.beforeRouteEnter=r.beforeRouteLeave=r.beforeRouteUpdate=r.created}}var C="undefined"!=typeof window;function S(t,e,n){var r=t.charAt(0);if("/"===r)return t;if("?"===r||"#"===r)return e+t;var o=e.split("/");n&&o[o.length-1]||o.pop();for(var i=t.replace(/^\//,"").split("/"),a=0;a<i.length;a++){var s=i[a];".."===s?o.pop():"."!==s&&o.push(s)}return""!==o[0]&&o.unshift(""),o.join("/")}function j(t){return t.replace(/\/\//g,"/")}var E=Array.isArray||function(t){return"[object Array]"==Object.prototype.toString.call(t)},$=z,T=N,M=function(t,e){return F(N(t,e))},P=F,L=q,I=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function N(t,e){for(var n,r,o=[],i=0,a=0,s="",c=e&&e.delimiter||"/";null!=(n=I.exec(t));){var u=n[0],f=n[1],l=n.index;if(s+=t.slice(a,l),a=l+u.length,f)s+=f[1];else{var p=t[a],h=n[2],d=n[3],v=n[4],y=n[5],m=n[6],g=n[7];s&&(o.push(s),s="");var b=null!=h&&null!=p&&p!==h,_="+"===m||"*"===m,w="?"===m||"*"===m,x=n[2]||c,O=v||y;o.push({name:d||i++,prefix:h||"",delimiter:x,optional:w,repeat:_,partial:b,asterisk:!!g,pattern:O?(r=O,r.replace(/([=!:$\/()])/g,"\\$1")):g?".*":"[^"+D(x)+"]+?"})}}return a<t.length&&(s+=t.substr(a)),s&&o.push(s),o}function R(t){return encodeURI(t).replace(/[\/?#]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function F(t){for(var e=new Array(t.length),n=0;n<t.length;n++)"object"==typeof t[n]&&(e[n]=new RegExp("^(?:"+t[n].pattern+")$"));return function(n,r){for(var o="",i=n||{},a=(r||{}).pretty?R:encodeURIComponent,s=0;s<t.length;s++){var c=t[s];if("string"!=typeof c){var u,f=i[c.name];if(null==f){if(c.optional){c.partial&&(o+=c.prefix);continue}throw new TypeError('Expected "'+c.name+'" to be defined')}if(E(f)){if(!c.repeat)throw new TypeError('Expected "'+c.name+'" to not repeat, but received `'+JSON.stringify(f)+"`");if(0===f.length){if(c.optional)continue;throw new TypeError('Expected "'+c.name+'" to not be empty')}for(var l=0;l<f.length;l++){if(u=a(f[l]),!e[s].test(u))throw new TypeError('Expected all "'+c.name+'" to match "'+c.pattern+'", but received `'+JSON.stringify(u)+"`");o+=(0===l?c.prefix:c.delimiter)+u}}else{if(u=c.asterisk?encodeURI(f).replace(/[?#]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()}):a(f),!e[s].test(u))throw new TypeError('Expected "'+c.name+'" to match "'+c.pattern+'", but received "'+u+'"');o+=c.prefix+u}}else o+=c}return o}}function D(t){return t.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function B(t,e){return t.keys=e,t}function U(t){return t.sensitive?"":"i"}function q(t,e,n){E(e)||(n=e||n,e=[]);for(var r=(n=n||{}).strict,o=!1!==n.end,i="",a=0;a<t.length;a++){var s=t[a];if("string"==typeof s)i+=D(s);else{var c=D(s.prefix),u="(?:"+s.pattern+")";e.push(s),s.repeat&&(u+="(?:"+c+u+")*"),i+=u=s.optional?s.partial?c+"("+u+")?":"(?:"+c+"("+u+"))?":c+"("+u+")"}}var f=D(n.delimiter||"/"),l=i.slice(-f.length)===f;return r||(i=(l?i.slice(0,-f.length):i)+"(?:"+f+"(?=$))?"),i+=o?"$":r&&l?"":"(?="+f+"|$)",B(new RegExp("^"+i,U(n)),e)}function z(t,e,n){return E(e)||(n=e||n,e=[]),n=n||{},t instanceof RegExp?function(t,e){var n=t.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)e.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return B(t,e)}(t,e):E(t)?function(t,e,n){for(var r=[],o=0;o<t.length;o++)r.push(z(t[o],e,n).source);return B(new RegExp("(?:"+r.join("|")+")",U(n)),e)}(t,e,n):(r=e,q(N(t,o=n),r,o));var r,o}$.parse=T,$.compile=M,$.tokensToFunction=P,$.tokensToRegExp=L;var V=Object.create(null);function G(t,e,n){try{return(V[t]||(V[t]=$.compile(t)))(e||{},{pretty:!0})}catch(t){return""}}function H(t,e,n,r){var o=e||[],i=n||Object.create(null),a=r||Object.create(null);t.forEach(function(t){!function t(e,n,r,o,i,a){var s=o.path;var c=o.name;0;var u=o.pathToRegexpOptions||{};var f=function(t,e,n){n||(t=t.replace(/\/$/,""));if("/"===t[0])return t;if(null==e)return t;return j(e.path+"/"+t)}(s,i,u.strict);"boolean"==typeof o.caseSensitive&&(u.sensitive=o.caseSensitive);var l={path:f,regex:function(t,e){var n=$(t,[],e);return n}(f,u),components:o.components||{default:o.component},instances:{},name:c,parent:i,matchAs:a,redirect:o.redirect,beforeEnter:o.beforeEnter,meta:o.meta||{},props:null==o.props?{}:o.components?o.props:{default:o.props}};o.children&&o.children.forEach(function(o){var i=a?j(a+"/"+o.path):void 0;t(e,n,r,o,l,i)});if(void 0!==o.alias){var p=Array.isArray(o.alias)?o.alias:[o.alias];p.forEach(function(a){var s={path:a,children:o.children};t(e,n,r,s,i,l.path||"/")})}n[l.path]||(e.push(l.path),n[l.path]=l);c&&(r[c]||(r[c]=l))}(o,i,a,t)});for(var s=0,c=o.length;s<c;s++)"*"===o[s]&&(o.push(o.splice(s,1)[0]),c--,s--);return{pathList:o,pathMap:i,nameMap:a}}function K(t,e,n,r){var o="string"==typeof t?{path:t}:t;if(o.name||o._normalized)return o;if(!o.path&&o.params&&e){(o=W({},o))._normalized=!0;var i=W(W({},e.params),o.params);if(e.name)o.name=e.name,o.params=i;else if(e.matched.length){var a=e.matched[e.matched.length-1].path;o.path=G(a,i,e.path)}else 0;return o}var s=function(t){var e="",n="",r=t.indexOf("#");r>=0&&(e=t.slice(r),t=t.slice(0,r));var o=t.indexOf("?");return o>=0&&(n=t.slice(o+1),t=t.slice(0,o)),{path:t,query:n,hash:e}}(o.path||""),c=e&&e.path||"/",u=s.path?S(s.path,c,n||o.append):c,f=function(t,e,n){void 0===e&&(e={});var r,o=n||l;try{r=o(t||"")}catch(t){r={}}for(var i in e)r[i]=e[i];return r}(s.query,o.query,r&&r.options.parseQuery),p=o.hash||s.hash;return p&&"#"!==p.charAt(0)&&(p="#"+p),{_normalized:!0,path:u,query:f,hash:p}}function W(t,e){for(var n in e)t[n]=e[n];return t}function Q(t,e){var n=H(t),r=n.pathList,o=n.pathMap,i=n.nameMap;function a(t,n,a){var s=K(t,n,!1,e),u=s.name;if(u){var f=i[u];if(!f)return c(null,s);var l=f.regex.keys.filter(function(t){return!t.optional}).map(function(t){return t.name});if("object"!=typeof s.params&&(s.params={}),n&&"object"==typeof n.params)for(var p in n.params)!(p in s.params)&&l.indexOf(p)>-1&&(s.params[p]=n.params[p]);if(f)return s.path=G(f.path,s.params),c(f,s,a)}else if(s.path){s.params={};for(var h=0;h<r.length;h++){var d=r[h],v=o[d];if(J(v.regex,s.path,s.params))return c(v,s,a)}}return c(null,s)}function s(t,n){var r=t.redirect,o="function"==typeof r?r(d(t,n,null,e)):r;if("string"==typeof o&&(o={path:o}),!o||"object"!=typeof o)return c(null,n);var s,u=o,f=u.name,l=u.path,p=n.query,h=n.hash,v=n.params;if(p=u.hasOwnProperty("query")?u.query:p,h=u.hasOwnProperty("hash")?u.hash:h,v=u.hasOwnProperty("params")?u.params:v,f){i[f];return a({_normalized:!0,name:f,query:p,hash:h,params:v},void 0,n)}if(l){var y=S(l,(s=t).parent?s.parent.path:"/",!0);return a({_normalized:!0,path:G(y,v),query:p,hash:h},void 0,n)}return c(null,n)}function c(t,n,r){return t&&t.redirect?s(t,r||n):t&&t.matchAs?function(t,e,n){var r=a({_normalized:!0,path:G(n,e.params)});if(r){var o=r.matched,i=o[o.length-1];return e.params=r.params,c(i,e)}return c(null,e)}(0,n,t.matchAs):d(t,n,r,e)}return{match:a,addRoutes:function(t){H(t,r,o,i)}}}function J(t,e,n){var r=e.match(t);if(!r)return!1;if(!n)return!0;for(var o=1,i=r.length;o<i;++o){var a=t.keys[o-1],s="string"==typeof r[o]?decodeURIComponent(r[o]):r[o];a&&(n[a.name]=s)}return!0}var Y=Object.create(null);function X(){window.history.replaceState({key:ft()},""),window.addEventListener("popstate",function(t){var e;tt(),t.state&&t.state.key&&(e=t.state.key,ct=e)})}function Z(t,e,n,r){if(t.app){var o=t.options.scrollBehavior;o&&t.app.$nextTick(function(){var t=function(){var t=ft();if(t)return Y[t]}(),i=o(e,n,r?t:null);i&&("function"==typeof i.then?i.then(function(e){ot(e,t)}).catch(function(t){0}):ot(i,t))})}}function tt(){var t=ft();t&&(Y[t]={x:window.pageXOffset,y:window.pageYOffset})}function et(t){return rt(t.x)||rt(t.y)}function nt(t){return{x:rt(t.x)?t.x:window.pageXOffset,y:rt(t.y)?t.y:window.pageYOffset}}function rt(t){return"number"==typeof t}function ot(t,e){var n,r,o,i,a,s="object"==typeof t;if(s&&"string"==typeof t.selector){var c=document.querySelector(t.selector);if(c){var u=t.offset&&"object"==typeof t.offset?t.offset:{};u={x:rt((a=u).x)?a.x:0,y:rt(a.y)?a.y:0},n=c,r=u,o=document.documentElement.getBoundingClientRect(),e={x:(i=n.getBoundingClientRect()).left-o.left-r.x,y:i.top-o.top-r.y}}else et(t)&&(e=nt(t))}else s&&et(t)&&(e=nt(t));e&&window.scrollTo(e.x,e.y)}var it,at=C&&((-1===(it=window.navigator.userAgent).indexOf("Android 2.")&&-1===it.indexOf("Android 4.0")||-1===it.indexOf("Mobile Safari")||-1!==it.indexOf("Chrome")||-1!==it.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history),st=C&&window.performance&&window.performance.now?window.performance:Date,ct=ut();function ut(){return st.now().toFixed(3)}function ft(){return ct}function lt(t,e){tt();var n=window.history;try{e?n.replaceState({key:ct},"",t):(ct=ut(),n.pushState({key:ct},"",t))}catch(n){window.location[e?"replace":"assign"](t)}}function pt(t){lt(t,!0)}function ht(t,e,n){var r=function(o){o>=t.length?n():t[o]?e(t[o],function(){r(o+1)}):r(o+1)};r(0)}function dt(t){return function(e,n,r){var i=!1,a=0,s=null;vt(t,function(t,e,n,c){if("function"==typeof t&&void 0===t.cid){i=!0,a++;var u,f=gt(function(e){var o;((o=e).__esModule||mt&&"Module"===o[Symbol.toStringTag])&&(e=e.default),t.resolved="function"==typeof e?e:_.extend(e),n.components[c]=e,--a<=0&&r()}),l=gt(function(t){var e="Failed to resolve async component "+c+": "+t;s||(s=o(t)?t:new Error(e),r(s))});try{u=t(f,l)}catch(t){l(t)}if(u)if("function"==typeof u.then)u.then(f,l);else{var p=u.component;p&&"function"==typeof p.then&&p.then(f,l)}}}),i||r()}}function vt(t,e){return yt(t.map(function(t){return Object.keys(t.components).map(function(n){return e(t.components[n],t.instances[n],t,n)})}))}function yt(t){return Array.prototype.concat.apply([],t)}var mt="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function gt(t){var e=!1;return function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];if(!e)return e=!0,t.apply(this,n)}}var bt=function(t,e){this.router=t,this.base=function(t){if(!t)if(C){var e=document.querySelector("base");t=(t=e&&e.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else t="/";"/"!==t.charAt(0)&&(t="/"+t);return t.replace(/\/$/,"")}(e),this.current=y,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[]};function _t(t,e,n,r){var o=vt(t,function(t,r,o,i){var a=function(t,e){"function"!=typeof t&&(t=_.extend(t));return t.options[e]}(t,e);if(a)return Array.isArray(a)?a.map(function(t){return n(t,r,o,i)}):n(a,r,o,i)});return yt(r?o.reverse():o)}function wt(t,e){if(e)return function(){return t.apply(e,arguments)}}bt.prototype.listen=function(t){this.cb=t},bt.prototype.onReady=function(t,e){this.ready?t():(this.readyCbs.push(t),e&&this.readyErrorCbs.push(e))},bt.prototype.onError=function(t){this.errorCbs.push(t)},bt.prototype.transitionTo=function(t,e,n){var r=this,o=this.router.match(t,this.current);this.confirmTransition(o,function(){r.updateRoute(o),e&&e(o),r.ensureURL(),r.ready||(r.ready=!0,r.readyCbs.forEach(function(t){t(o)}))},function(t){n&&n(t),t&&!r.ready&&(r.ready=!0,r.readyErrorCbs.forEach(function(e){e(t)}))})},bt.prototype.confirmTransition=function(t,e,n){var i=this,a=this.current,s=function(t){o(t)&&(i.errorCbs.length?i.errorCbs.forEach(function(e){e(t)}):(r(),console.error(t))),n&&n(t)};if(g(t,a)&&t.matched.length===a.matched.length)return this.ensureURL(),s();var c=function(t,e){var n,r=Math.max(t.length,e.length);for(n=0;n<r&&t[n]===e[n];n++);return{updated:e.slice(0,n),activated:e.slice(n),deactivated:t.slice(n)}}(this.current.matched,t.matched),u=c.updated,f=c.deactivated,l=c.activated,p=[].concat(_t(f,"beforeRouteLeave",wt,!0),this.router.beforeHooks,_t(u,"beforeRouteUpdate",wt),l.map(function(t){return t.beforeEnter}),dt(l));this.pending=t;var h=function(e,n){if(i.pending!==t)return s();try{e(t,a,function(t){!1===t||o(t)?(i.ensureURL(!0),s(t)):"string"==typeof t||"object"==typeof t&&("string"==typeof t.path||"string"==typeof t.name)?(s(),"object"==typeof t&&t.replace?i.replace(t):i.push(t)):n(t)})}catch(t){s(t)}};ht(p,h,function(){var n,r,o=[];ht((n=o,r=function(){return i.current===t},_t(l,"beforeRouteEnter",function(t,e,o,i){return a=t,s=o,c=i,u=n,f=r,function(t,e,n){return a(t,e,function(t){n(t),"function"==typeof t&&u.push(function(){!function t(e,n,r,o){n[r]?e(n[r]):o()&&setTimeout(function(){t(e,n,r,o)},16)}(t,s.instances,c,f)})})};var a,s,c,u,f})).concat(i.router.resolveHooks),h,function(){if(i.pending!==t)return s();i.pending=null,e(t),i.router.app&&i.router.app.$nextTick(function(){o.forEach(function(t){t()})})})})},bt.prototype.updateRoute=function(t){var e=this.current;this.current=t,this.cb&&this.cb(t),this.router.afterHooks.forEach(function(n){n&&n(t,e)})};var xt=function(t){function e(e,n){var r=this;t.call(this,e,n);var o=e.options.scrollBehavior;o&&X();var i=Ot(this.base);window.addEventListener("popstate",function(t){var n=r.current,a=Ot(r.base);r.current===y&&a===i||r.transitionTo(a,function(t){o&&Z(e,t,n,!0)})})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.go=function(t){window.history.go(t)},e.prototype.push=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,function(t){lt(j(r.base+t.fullPath)),Z(r.router,t,o,!1),e&&e(t)},n)},e.prototype.replace=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,function(t){pt(j(r.base+t.fullPath)),Z(r.router,t,o,!1),e&&e(t)},n)},e.prototype.ensureURL=function(t){if(Ot(this.base)!==this.current.fullPath){var e=j(this.base+this.current.fullPath);t?lt(e):pt(e)}},e.prototype.getCurrentLocation=function(){return Ot(this.base)},e}(bt);function Ot(t){var e=window.location.pathname;return t&&0===e.indexOf(t)&&(e=e.slice(t.length)),(e||"/")+window.location.search+window.location.hash}var kt=function(t){function e(e,n,r){t.call(this,e,n),r&&function(t){var e=Ot(t);if(!/^\/#/.test(e))return window.location.replace(j(t+"/#"+e)),!0}(this.base)||At()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setupListeners=function(){var t=this,e=this.router.options.scrollBehavior,n=at&&e;n&&X(),window.addEventListener(at?"popstate":"hashchange",function(){var e=t.current;At()&&t.transitionTo(Ct(),function(r){n&&Z(t.router,r,e,!0),at||Et(r.fullPath)})})},e.prototype.push=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,function(t){jt(t.fullPath),Z(r.router,t,o,!1),e&&e(t)},n)},e.prototype.replace=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,function(t){Et(t.fullPath),Z(r.router,t,o,!1),e&&e(t)},n)},e.prototype.go=function(t){window.history.go(t)},e.prototype.ensureURL=function(t){var e=this.current.fullPath;Ct()!==e&&(t?jt(e):Et(e))},e.prototype.getCurrentLocation=function(){return Ct()},e}(bt);function At(){var t=Ct();return"/"===t.charAt(0)||(Et("/"+t),!1)}function Ct(){var t=window.location.href,e=t.indexOf("#");return-1===e?"":t.slice(e+1)}function St(t){var e=window.location.href,n=e.indexOf("#");return(n>=0?e.slice(0,n):e)+"#"+t}function jt(t){at?lt(St(t)):window.location.hash=t}function Et(t){at?pt(St(t)):window.location.replace(St(t))}var $t=function(t){function e(e,n){t.call(this,e,n),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,n){var r=this;this.transitionTo(t,function(t){r.stack=r.stack.slice(0,r.index+1).concat(t),r.index++,e&&e(t)},n)},e.prototype.replace=function(t,e,n){var r=this;this.transitionTo(t,function(t){r.stack=r.stack.slice(0,r.index).concat(t),e&&e(t)},n)},e.prototype.go=function(t){var e=this,n=this.index+t;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,function(){e.index=n,e.updateRoute(r)})}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(bt),Tt=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=Q(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!at&&!1!==t.fallback,this.fallback&&(e="hash"),C||(e="abstract"),this.mode=e,e){case"history":this.history=new xt(this,t.base);break;case"hash":this.history=new kt(this,t.base,this.fallback);break;case"abstract":this.history=new $t(this,t.base);break;default:0}},Mt={currentRoute:{configurable:!0}};function Pt(t,e){return t.push(e),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}Tt.prototype.match=function(t,e,n){return this.matcher.match(t,e,n)},Mt.currentRoute.get=function(){return this.history&&this.history.current},Tt.prototype.init=function(t){var e=this;if(this.apps.push(t),!this.app){this.app=t;var n=this.history;if(n instanceof xt)n.transitionTo(n.getCurrentLocation());else if(n instanceof kt){var r=function(){n.setupListeners()};n.transitionTo(n.getCurrentLocation(),r,r)}n.listen(function(t){e.apps.forEach(function(e){e._route=t})})}},Tt.prototype.beforeEach=function(t){return Pt(this.beforeHooks,t)},Tt.prototype.beforeResolve=function(t){return Pt(this.resolveHooks,t)},Tt.prototype.afterEach=function(t){return Pt(this.afterHooks,t)},Tt.prototype.onReady=function(t,e){this.history.onReady(t,e)},Tt.prototype.onError=function(t){this.history.onError(t)},Tt.prototype.push=function(t,e,n){this.history.push(t,e,n)},Tt.prototype.replace=function(t,e,n){this.history.replace(t,e,n)},Tt.prototype.go=function(t){this.history.go(t)},Tt.prototype.back=function(){this.go(-1)},Tt.prototype.forward=function(){this.go(1)},Tt.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map(function(t){return Object.keys(t.components).map(function(e){return t.components[e]})})):[]},Tt.prototype.resolve=function(t,e,n){var r,o,i,a,s=K(t,e||this.history.current,n,this),c=this.match(s,e),u=c.redirectedFrom||c.fullPath,f=this.history.base;return{location:s,route:c,href:(r=f,o=u,i=this.mode,a="hash"===i?"#"+o:o,r?j(r+"/"+a):a),normalizedTo:s,resolved:c}},Tt.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==y&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(Tt.prototype,Mt),Tt.install=A,Tt.version="3.0.1",C&&window.Vue&&window.Vue.use(Tt),e.default=Tt},0:function(t,e,n){n("/5sW"),n("/ocq"),n("p3jY"),t.exports=n("NYxO")},"06OY":function(t,e,n){var r=n("3Eo+")("meta"),o=n("EqjI"),i=n("D2L2"),a=n("evD5").f,s=0,c=Object.isExtensible||function(){return!0},u=!n("S82l")(function(){return c(Object.preventExtensions({}))}),f=function(t){a(t,r,{value:{i:"O"+ ++s,w:{}}})},l=t.exports={KEY:r,NEED:!1,fastKey:function(t,e){if(!o(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!i(t,r)){if(!c(t))return"F";if(!e)return"E";f(t)}return t[r].i},getWeak:function(t,e){if(!i(t,r)){if(!c(t))return!0;if(!e)return!1;f(t)}return t[r].w},onFreeze:function(t){return u&&l.NEED&&c(t)&&!i(t,r)&&f(t),t}}},"162o":function(t,e,n){var r=Function.prototype.apply;function o(t,e){this._id=t,this._clearFn=e}e.setTimeout=function(){return new o(r.call(setTimeout,window,arguments),clearTimeout)},e.setInterval=function(){return new o(r.call(setInterval,window,arguments),clearInterval)},e.clearTimeout=e.clearInterval=function(t){t&&t.close()},o.prototype.unref=o.prototype.ref=function(){},o.prototype.close=function(){this._clearFn.call(window,this._id)},e.enroll=function(t,e){clearTimeout(t._idleTimeoutId),t._idleTimeout=e},e.unenroll=function(t){clearTimeout(t._idleTimeoutId),t._idleTimeout=-1},e._unrefActive=e.active=function(t){clearTimeout(t._idleTimeoutId);var e=t._idleTimeout;e>=0&&(t._idleTimeoutId=setTimeout(function(){t._onTimeout&&t._onTimeout()},e))},n("mypn"),e.setImmediate=setImmediate,e.clearImmediate=clearImmediate},"1kS7":function(t,e){e.f=Object.getOwnPropertySymbols},"2KxR":function(t,e){t.exports=function(t,e,n,r){if(!(t instanceof e)||void 0!==r&&r in t)throw TypeError(n+": incorrect invocation!");return t}},"3Eo+":function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},"3fs2":function(t,e,n){var r=n("RY/4"),o=n("dSzd")("iterator"),i=n("/bQp");t.exports=n("FeBl").getIteratorMethod=function(t){if(void 0!=t)return t[o]||t["@@iterator"]||i[r(t)]}},"4mcu":function(t,e){t.exports=function(){}},"52gC":function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on  "+t);return t}},"5QVw":function(t,e,n){t.exports={default:n("BwfY"),__esModule:!0}},"77Pl":function(t,e,n){var r=n("EqjI");t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},"7KvD":function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},"7UMu":function(t,e,n){var r=n("R9M2");t.exports=Array.isArray||function(t){return"Array"==r(t)}},"82Mu":function(t,e,n){var r=n("7KvD"),o=n("L42u").set,i=r.MutationObserver||r.WebKitMutationObserver,a=r.process,s=r.Promise,c="process"==n("R9M2")(a);t.exports=function(){var t,e,n,u=function(){var r,o;for(c&&(r=a.domain)&&r.exit();t;){o=t.fn,t=t.next;try{o()}catch(r){throw t?n():e=void 0,r}}e=void 0,r&&r.enter()};if(c)n=function(){a.nextTick(u)};else if(!i||r.navigator&&r.navigator.standalone)if(s&&s.resolve){var f=s.resolve();n=function(){f.then(u)}}else n=function(){o.call(r,u)};else{var l=!0,p=document.createTextNode("");new i(u).observe(p,{characterData:!0}),n=function(){p.data=l=!l}}return function(r){var o={fn:r,next:void 0};e&&(e.next=o),t||(t=o,n()),e=o}}},"880/":function(t,e,n){t.exports=n("hJx8")},"94VQ":function(t,e,n){"use strict";var r=n("Yobk"),o=n("X8DO"),i=n("e6n0"),a={};n("hJx8")(a,n("dSzd")("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=r(a,{next:o(1,n)}),i(t,e+" Iterator")}},"9bBU":function(t,e,n){n("mClu");var r=n("FeBl").Object;t.exports=function(t,e,n){return r.defineProperty(t,e,n)}},BO1k:function(t,e,n){t.exports={default:n("fxRn"),__esModule:!0}},BwfY:function(t,e,n){n("fWfb"),n("M6a0"),n("OYls"),n("QWe/"),t.exports=n("FeBl").Symbol},C4MV:function(t,e,n){t.exports={default:n("9bBU"),__esModule:!0}},CXw9:function(t,e,n){"use strict";var r,o,i,a,s=n("O4g8"),c=n("7KvD"),u=n("+ZMJ"),f=n("RY/4"),l=n("kM2E"),p=n("EqjI"),h=n("lOnJ"),d=n("2KxR"),v=n("NWt+"),y=n("t8x9"),m=n("L42u").set,g=n("82Mu")(),b=n("qARP"),_=n("dNDb"),w=n("fJUb"),x="Promise",O=c.TypeError,k=c.process,A=c[x],C="process"==f(k),S=function(){},j=o=b.f,E=!!function(){try{var t=A.resolve(1),e=(t.constructor={})[n("dSzd")("species")]=function(t){t(S,S)};return(C||"function"==typeof PromiseRejectionEvent)&&t.then(S)instanceof e}catch(t){}}(),$=function(t){var e;return!(!p(t)||"function"!=typeof(e=t.then))&&e},T=function(t,e){if(!t._n){t._n=!0;var n=t._c;g(function(){for(var r=t._v,o=1==t._s,i=0,a=function(e){var n,i,a=o?e.ok:e.fail,s=e.resolve,c=e.reject,u=e.domain;try{a?(o||(2==t._h&&L(t),t._h=1),!0===a?n=r:(u&&u.enter(),n=a(r),u&&u.exit()),n===e.promise?c(O("Promise-chain cycle")):(i=$(n))?i.call(n,s,c):s(n)):c(r)}catch(t){c(t)}};n.length>i;)a(n[i++]);t._c=[],t._n=!1,e&&!t._h&&M(t)})}},M=function(t){m.call(c,function(){var e,n,r,o=t._v,i=P(t);if(i&&(e=_(function(){C?k.emit("unhandledRejection",o,t):(n=c.onunhandledrejection)?n({promise:t,reason:o}):(r=c.console)&&r.error&&r.error("Unhandled promise rejection",o)}),t._h=C||P(t)?2:1),t._a=void 0,i&&e.e)throw e.v})},P=function(t){return 1!==t._h&&0===(t._a||t._c).length},L=function(t){m.call(c,function(){var e;C?k.emit("rejectionHandled",t):(e=c.onrejectionhandled)&&e({promise:t,reason:t._v})})},I=function(t){var e=this;e._d||(e._d=!0,(e=e._w||e)._v=t,e._s=2,e._a||(e._a=e._c.slice()),T(e,!0))},N=function(t){var e,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===t)throw O("Promise can't be resolved itself");(e=$(t))?g(function(){var r={_w:n,_d:!1};try{e.call(t,u(N,r,1),u(I,r,1))}catch(t){I.call(r,t)}}):(n._v=t,n._s=1,T(n,!1))}catch(t){I.call({_w:n,_d:!1},t)}}};E||(A=function(t){d(this,A,x,"_h"),h(t),r.call(this);try{t(u(N,this,1),u(I,this,1))}catch(t){I.call(this,t)}},(r=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=n("xH/j")(A.prototype,{then:function(t,e){var n=j(y(this,A));return n.ok="function"!=typeof t||t,n.fail="function"==typeof e&&e,n.domain=C?k.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&T(this,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),i=function(){var t=new r;this.promise=t,this.resolve=u(N,t,1),this.reject=u(I,t,1)},b.f=j=function(t){return t===A||t===a?new i(t):o(t)}),l(l.G+l.W+l.F*!E,{Promise:A}),n("e6n0")(A,x),n("bRrM")(x),a=n("FeBl")[x],l(l.S+l.F*!E,x,{reject:function(t){var e=j(this);return(0,e.reject)(t),e.promise}}),l(l.S+l.F*(s||!E),x,{resolve:function(t){return w(s&&this===a?A:this,t)}}),l(l.S+l.F*!(E&&n("dY0y")(function(t){A.all(t).catch(S)})),x,{all:function(t){var e=this,n=j(e),r=n.resolve,o=n.reject,i=_(function(){var n=[],i=0,a=1;v(t,!1,function(t){var s=i++,c=!1;n.push(void 0),a++,e.resolve(t).then(function(t){c||(c=!0,n[s]=t,--a||r(n))},o)}),--a||r(n)});return i.e&&o(i.v),n.promise},race:function(t){var e=this,n=j(e),r=n.reject,o=_(function(){v(t,!1,function(t){e.resolve(t).then(n.resolve,r)})});return o.e&&r(o.v),n.promise}})},Cdx3:function(t,e,n){var r=n("sB3e"),o=n("lktj");n("uqUo")("keys",function(){return function(t){return o(r(t))}})},D2L2:function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},Dd8w:function(t,e,n){"use strict";e.__esModule=!0;var r,o=n("woOf"),i=(r=o)&&r.__esModule?r:{default:r};e.default=i.default||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t}},DuR2:function(t,e){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(n=window)}t.exports=n},EGZi:function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},EqBC:function(t,e,n){"use strict";var r=n("kM2E"),o=n("FeBl"),i=n("7KvD"),a=n("t8x9"),s=n("fJUb");r(r.P+r.R,"Promise",{finally:function(t){var e=a(this,o.Promise||i.Promise),n="function"==typeof t;return this.then(n?function(n){return s(e,t()).then(function(){return n})}:t,n?function(n){return s(e,t()).then(function(){throw n})}:t)}})},EqjI:function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},FeBl:function(t,e){var n=t.exports={version:"2.5.3"};"number"==typeof __e&&(__e=n)},"Fqd/":function(t,e,n){t.exports=n.p+"img/fontawesome-webfont.912ec66.svg"},IMLV:function(t,e,n){t.exports=n.p+"fonts/fontawesome-webfont.b06871f.ttf"},Ibhu:function(t,e,n){var r=n("D2L2"),o=n("TcQ7"),i=n("vFc/")(!1),a=n("ax3d")("IE_PROTO");t.exports=function(t,e){var n,s=o(t),c=0,u=[];for(n in s)n!=a&&r(s,n)&&u.push(n);for(;e.length>c;)r(s,n=e[c++])&&(~i(u,n)||u.push(n));return u}},Kh4W:function(t,e,n){e.f=n("dSzd")},L42u:function(t,e,n){var r,o,i,a=n("+ZMJ"),s=n("knuC"),c=n("RPLV"),u=n("ON07"),f=n("7KvD"),l=f.process,p=f.setImmediate,h=f.clearImmediate,d=f.MessageChannel,v=f.Dispatch,y=0,m={},g="onreadystatechange",b=function(){var t=+this;if(m.hasOwnProperty(t)){var e=m[t];delete m[t],e()}},_=function(t){b.call(t.data)};p&&h||(p=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return m[++y]=function(){s("function"==typeof t?t:Function(t),e)},r(y),y},h=function(t){delete m[t]},"process"==n("R9M2")(l)?r=function(t){l.nextTick(a(b,t,1))}:v&&v.now?r=function(t){v.now(a(b,t,1))}:d?(i=(o=new d).port2,o.port1.onmessage=_,r=a(i.postMessage,i,1)):f.addEventListener&&"function"==typeof postMessage&&!f.importScripts?(r=function(t){f.postMessage(t+"","*")},f.addEventListener("message",_,!1)):r=g in u("script")?function(t){c.appendChild(u("script"))[g]=function(){c.removeChild(this),b.call(t)}}:function(t){setTimeout(a(b,t,1),0)}),t.exports={set:p,clear:h}},LKZe:function(t,e,n){var r=n("NpIQ"),o=n("X8DO"),i=n("TcQ7"),a=n("MmMw"),s=n("D2L2"),c=n("SfB7"),u=Object.getOwnPropertyDescriptor;e.f=n("+E39")?u:function(t,e){if(t=i(t),e=a(e,!0),c)try{return u(t,e)}catch(t){}if(s(t,e))return o(!r.f.call(t,e),t[e])}},M6a0:function(t,e){},MU5D:function(t,e,n){var r=n("R9M2");t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},MU8w:function(t,e,n){"use strict";t.exports=n("hKoQ").polyfill()},Mhyx:function(t,e,n){var r=n("/bQp"),o=n("dSzd")("iterator"),i=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||i[o]===t)}},MmMw:function(t,e,n){var r=n("EqjI");t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},"NWt+":function(t,e,n){var r=n("+ZMJ"),o=n("msXi"),i=n("Mhyx"),a=n("77Pl"),s=n("QRG4"),c=n("3fs2"),u={},f={};(e=t.exports=function(t,e,n,l,p){var h,d,v,y,m=p?function(){return t}:c(t),g=r(n,l,e?2:1),b=0;if("function"!=typeof m)throw TypeError(t+" is not iterable!");if(i(m)){for(h=s(t.length);h>b;b++)if((y=e?g(a(d=t[b])[0],d[1]):g(t[b]))===u||y===f)return y}else for(v=m.call(t);!(d=v.next()).done;)if((y=o(v,g,d.value,e))===u||y===f)return y}).BREAK=u,e.RETURN=f},NYxO:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),n.d(e,"Store",function(){return f}),n.d(e,"install",function(){return g}),n.d(e,"mapState",function(){return b}),n.d(e,"mapMutations",function(){return _}),n.d(e,"mapGetters",function(){return w}),n.d(e,"mapActions",function(){return x}),n.d(e,"createNamespacedHelpers",function(){return O});var r=function(t){if(Number(t.version.split(".")[0])>=2)t.mixin({beforeCreate:n});else{var e=t.prototype._init;t.prototype._init=function(t){void 0===t&&(t={}),t.init=t.init?[n].concat(t.init):n,e.call(this,t)}}function n(){var t=this.$options;t.store?this.$store="function"==typeof t.store?t.store():t.store:t.parent&&t.parent.$store&&(this.$store=t.parent.$store)}},o="undefined"!=typeof window&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function i(t,e){Object.keys(t).forEach(function(n){return e(t[n],n)})}var a=function(t,e){this.runtime=e,this._children=Object.create(null),this._rawModule=t;var n=t.state;this.state=("function"==typeof n?n():n)||{}},s={namespaced:{configurable:!0}};s.namespaced.get=function(){return!!this._rawModule.namespaced},a.prototype.addChild=function(t,e){this._children[t]=e},a.prototype.removeChild=function(t){delete this._children[t]},a.prototype.getChild=function(t){return this._children[t]},a.prototype.update=function(t){this._rawModule.namespaced=t.namespaced,t.actions&&(this._rawModule.actions=t.actions),t.mutations&&(this._rawModule.mutations=t.mutations),t.getters&&(this._rawModule.getters=t.getters)},a.prototype.forEachChild=function(t){i(this._children,t)},a.prototype.forEachGetter=function(t){this._rawModule.getters&&i(this._rawModule.getters,t)},a.prototype.forEachAction=function(t){this._rawModule.actions&&i(this._rawModule.actions,t)},a.prototype.forEachMutation=function(t){this._rawModule.mutations&&i(this._rawModule.mutations,t)},Object.defineProperties(a.prototype,s);var c=function(t){this.register([],t,!1)};c.prototype.get=function(t){return t.reduce(function(t,e){return t.getChild(e)},this.root)},c.prototype.getNamespace=function(t){var e=this.root;return t.reduce(function(t,n){return t+((e=e.getChild(n)).namespaced?n+"/":"")},"")},c.prototype.update=function(t){!function t(e,n,r){0;n.update(r);if(r.modules)for(var o in r.modules){if(!n.getChild(o))return void 0;t(e.concat(o),n.getChild(o),r.modules[o])}}([],this.root,t)},c.prototype.register=function(t,e,n){var r=this;void 0===n&&(n=!0);var o=new a(e,n);0===t.length?this.root=o:this.get(t.slice(0,-1)).addChild(t[t.length-1],o);e.modules&&i(e.modules,function(e,o){r.register(t.concat(o),e,n)})},c.prototype.unregister=function(t){var e=this.get(t.slice(0,-1)),n=t[t.length-1];e.getChild(n).runtime&&e.removeChild(n)};var u;var f=function(t){var e=this;void 0===t&&(t={}),!u&&"undefined"!=typeof window&&window.Vue&&g(window.Vue);var n=t.plugins;void 0===n&&(n=[]);var r=t.strict;void 0===r&&(r=!1);var i=t.state;void 0===i&&(i={}),"function"==typeof i&&(i=i()||{}),this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new c(t),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._watcherVM=new u;var a,s=this,f=this.dispatch,l=this.commit;this.dispatch=function(t,e){return f.call(s,t,e)},this.commit=function(t,e,n){return l.call(s,t,e,n)},this.strict=r,v(this,i,[],this._modules.root),d(this,i),n.forEach(function(t){return t(e)}),u.config.devtools&&(a=this,o&&(a._devtoolHook=o,o.emit("vuex:init",a),o.on("vuex:travel-to-state",function(t){a.replaceState(t)}),a.subscribe(function(t,e){o.emit("vuex:mutation",t,e)})))},l={state:{configurable:!0}};function p(t,e){return e.indexOf(t)<0&&e.push(t),function(){var n=e.indexOf(t);n>-1&&e.splice(n,1)}}function h(t,e){t._actions=Object.create(null),t._mutations=Object.create(null),t._wrappedGetters=Object.create(null),t._modulesNamespaceMap=Object.create(null);var n=t.state;v(t,n,[],t._modules.root,!0),d(t,n,e)}function d(t,e,n){var r=t._vm;t.getters={};var o={};i(t._wrappedGetters,function(e,n){o[n]=function(){return e(t)},Object.defineProperty(t.getters,n,{get:function(){return t._vm[n]},enumerable:!0})});var a=u.config.silent;u.config.silent=!0,t._vm=new u({data:{$$state:e},computed:o}),u.config.silent=a,t.strict&&t._vm.$watch(function(){return this._data.$$state},function(){},{deep:!0,sync:!0}),r&&(n&&t._withCommit(function(){r._data.$$state=null}),u.nextTick(function(){return r.$destroy()}))}function v(t,e,n,r,o){var i=!n.length,a=t._modules.getNamespace(n);if(r.namespaced&&(t._modulesNamespaceMap[a]=r),!i&&!o){var s=y(e,n.slice(0,-1)),c=n[n.length-1];t._withCommit(function(){u.set(s,c,r.state)})}var f,l,p,h,d,g=r.context=(f=t,p=n,d={dispatch:(h=""===(l=a))?f.dispatch:function(t,e,n){var r=m(t,e,n),o=r.payload,i=r.options,a=r.type;return i&&i.root||(a=l+a),f.dispatch(a,o)},commit:h?f.commit:function(t,e,n){var r=m(t,e,n),o=r.payload,i=r.options,a=r.type;i&&i.root||(a=l+a),f.commit(a,o,i)}},Object.defineProperties(d,{getters:{get:h?function(){return f.getters}:function(){return t=f,n={},r=(e=l).length,Object.keys(t.getters).forEach(function(o){if(o.slice(0,r)===e){var i=o.slice(r);Object.defineProperty(n,i,{get:function(){return t.getters[o]},enumerable:!0})}}),n;var t,e,n,r}},state:{get:function(){return y(f.state,p)}}}),d);r.forEachMutation(function(e,n){var r,o,i,s;o=a+n,i=e,s=g,((r=t)._mutations[o]||(r._mutations[o]=[])).push(function(t){i.call(r,s.state,t)})}),r.forEachAction(function(e,n){var r,o,i,s,c=e.root?n:a+n,u=e.handler||e;o=c,i=u,s=g,((r=t)._actions[o]||(r._actions[o]=[])).push(function(t,e){var n,o=i.call(r,{dispatch:s.dispatch,commit:s.commit,getters:s.getters,state:s.state,rootGetters:r.getters,rootState:r.state},t,e);return(n=o)&&"function"==typeof n.then||(o=Promise.resolve(o)),r._devtoolHook?o.catch(function(t){throw r._devtoolHook.emit("vuex:error",t),t}):o})}),r.forEachGetter(function(e,n){!function(t,e,n,r){if(t._wrappedGetters[e])return void 0;t._wrappedGetters[e]=function(t){return n(r.state,r.getters,t.state,t.getters)}}(t,a+n,e,g)}),r.forEachChild(function(r,i){v(t,e,n.concat(i),r,o)})}function y(t,e){return e.length?e.reduce(function(t,e){return t[e]},t):t}function m(t,e,n){var r;return null!==(r=t)&&"object"==typeof r&&t.type&&(n=e,e=t,t=t.type),{type:t,payload:e,options:n}}function g(t){u&&t===u||r(u=t)}l.state.get=function(){return this._vm._data.$$state},l.state.set=function(t){0},f.prototype.commit=function(t,e,n){var r=this,o=m(t,e,n),i=o.type,a=o.payload,s=(o.options,{type:i,payload:a}),c=this._mutations[i];c&&(this._withCommit(function(){c.forEach(function(t){t(a)})}),this._subscribers.forEach(function(t){return t(s,r.state)}))},f.prototype.dispatch=function(t,e){var n=this,r=m(t,e),o=r.type,i=r.payload,a={type:o,payload:i},s=this._actions[o];if(s)return this._actionSubscribers.forEach(function(t){return t(a,n.state)}),s.length>1?Promise.all(s.map(function(t){return t(i)})):s[0](i)},f.prototype.subscribe=function(t){return p(t,this._subscribers)},f.prototype.subscribeAction=function(t){return p(t,this._actionSubscribers)},f.prototype.watch=function(t,e,n){var r=this;return this._watcherVM.$watch(function(){return t(r.state,r.getters)},e,n)},f.prototype.replaceState=function(t){var e=this;this._withCommit(function(){e._vm._data.$$state=t})},f.prototype.registerModule=function(t,e,n){void 0===n&&(n={}),"string"==typeof t&&(t=[t]),this._modules.register(t,e),v(this,this.state,t,this._modules.get(t),n.preserveState),d(this,this.state)},f.prototype.unregisterModule=function(t){var e=this;"string"==typeof t&&(t=[t]),this._modules.unregister(t),this._withCommit(function(){var n=y(e.state,t.slice(0,-1));u.delete(n,t[t.length-1])}),h(this)},f.prototype.hotUpdate=function(t){this._modules.update(t),h(this,!0)},f.prototype._withCommit=function(t){var e=this._committing;this._committing=!0,t(),this._committing=e},Object.defineProperties(f.prototype,l);var b=A(function(t,e){var n={};return k(e).forEach(function(e){var r=e.key,o=e.val;n[r]=function(){var e=this.$store.state,n=this.$store.getters;if(t){var r=C(this.$store,"mapState",t);if(!r)return;e=r.context.state,n=r.context.getters}return"function"==typeof o?o.call(this,e,n):e[o]},n[r].vuex=!0}),n}),_=A(function(t,e){var n={};return k(e).forEach(function(e){var r=e.key,o=e.val;n[r]=function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];var r=this.$store.commit;if(t){var i=C(this.$store,"mapMutations",t);if(!i)return;r=i.context.commit}return"function"==typeof o?o.apply(this,[r].concat(e)):r.apply(this.$store,[o].concat(e))}}),n}),w=A(function(t,e){var n={};return k(e).forEach(function(e){var r=e.key,o=e.val;o=t+o,n[r]=function(){if(!t||C(this.$store,"mapGetters",t))return this.$store.getters[o]},n[r].vuex=!0}),n}),x=A(function(t,e){var n={};return k(e).forEach(function(e){var r=e.key,o=e.val;n[r]=function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];var r=this.$store.dispatch;if(t){var i=C(this.$store,"mapActions",t);if(!i)return;r=i.context.dispatch}return"function"==typeof o?o.apply(this,[r].concat(e)):r.apply(this.$store,[o].concat(e))}}),n}),O=function(t){return{mapState:b.bind(null,t),mapGetters:w.bind(null,t),mapMutations:_.bind(null,t),mapActions:x.bind(null,t)}};function k(t){return Array.isArray(t)?t.map(function(t){return{key:t,val:t}}):Object.keys(t).map(function(e){return{key:e,val:t[e]}})}function A(t){return function(e,n){return"string"!=typeof e?(n=e,e=""):"/"!==e.charAt(e.length-1)&&(e+="/"),t(e,n)}}function C(t,e,n){return t._modulesNamespaceMap[n]}var S={Store:f,install:g,version:"3.0.1",mapState:b,mapMutations:_,mapGetters:w,mapActions:x,createNamespacedHelpers:O};e.default=S},NpIQ:function(t,e){e.f={}.propertyIsEnumerable},O4g8:function(t,e){t.exports=!0},OEdS:function(t,e,n){(function(e){var n="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},r=function(){var t=/\blang(?:uage)?-(\w+)\b/i,e=0,r=n.Prism={manual:n.Prism&&n.Prism.manual,disableWorkerMessageHandler:n.Prism&&n.Prism.disableWorkerMessageHandler,util:{encode:function(t){return t instanceof o?new o(t.type,r.util.encode(t.content),t.alias):"Array"===r.util.type(t)?t.map(r.util.encode):t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/\u00a0/g," ")},type:function(t){return Object.prototype.toString.call(t).match(/\[object (\w+)\]/)[1]},objId:function(t){return t.__id||Object.defineProperty(t,"__id",{value:++e}),t.__id},clone:function(t){switch(r.util.type(t)){case"Object":var e={};for(var n in t)t.hasOwnProperty(n)&&(e[n]=r.util.clone(t[n]));return e;case"Array":return t.map(function(t){return r.util.clone(t)})}return t}},languages:{extend:function(t,e){var n=r.util.clone(r.languages[t]);for(var o in e)n[o]=e[o];return n},insertBefore:function(t,e,n,o){var i=(o=o||r.languages)[t];if(2==arguments.length){n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(i[a]=n[a]);return i}var s={};for(var c in i)if(i.hasOwnProperty(c)){if(c==e)for(var a in n)n.hasOwnProperty(a)&&(s[a]=n[a]);s[c]=i[c]}return r.languages.DFS(r.languages,function(e,n){n===o[t]&&e!=t&&(this[e]=s)}),o[t]=s},DFS:function(t,e,n,o){o=o||{};for(var i in t)t.hasOwnProperty(i)&&(e.call(t,i,t[i],n||i),"Object"!==r.util.type(t[i])||o[r.util.objId(t[i])]?"Array"!==r.util.type(t[i])||o[r.util.objId(t[i])]||(o[r.util.objId(t[i])]=!0,r.languages.DFS(t[i],e,i,o)):(o[r.util.objId(t[i])]=!0,r.languages.DFS(t[i],e,null,o)))}},plugins:{},highlightAll:function(t,e){r.highlightAllUnder(document,t,e)},highlightAllUnder:function(t,e,n){var o={callback:n,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};r.hooks.run("before-highlightall",o);for(var i,a=o.elements||t.querySelectorAll(o.selector),s=0;i=a[s++];)r.highlightElement(i,!0===e,o.callback)},highlightElement:function(e,o,i){for(var a,s,c=e;c&&!t.test(c.className);)c=c.parentNode;c&&(a=(c.className.match(t)||[,""])[1].toLowerCase(),s=r.languages[a]),e.className=e.className.replace(t,"").replace(/\s+/g," ")+" language-"+a,e.parentNode&&(c=e.parentNode,/pre/i.test(c.nodeName)&&(c.className=c.className.replace(t,"").replace(/\s+/g," ")+" language-"+a));var u={element:e,language:a,grammar:s,code:e.textContent};if(r.hooks.run("before-sanity-check",u),!u.code||!u.grammar)return u.code&&(r.hooks.run("before-highlight",u),u.element.textContent=u.code,r.hooks.run("after-highlight",u)),void r.hooks.run("complete",u);if(r.hooks.run("before-highlight",u),o&&n.Worker){var f=new Worker(r.filename);f.onmessage=function(t){u.highlightedCode=t.data,r.hooks.run("before-insert",u),u.element.innerHTML=u.highlightedCode,i&&i.call(u.element),r.hooks.run("after-highlight",u),r.hooks.run("complete",u)},f.postMessage(JSON.stringify({language:u.language,code:u.code,immediateClose:!0}))}else u.highlightedCode=r.highlight(u.code,u.grammar,u.language),r.hooks.run("before-insert",u),u.element.innerHTML=u.highlightedCode,i&&i.call(e),r.hooks.run("after-highlight",u),r.hooks.run("complete",u)},highlight:function(t,e,n){var i=r.tokenize(t,e);return o.stringify(r.util.encode(i),n)},matchGrammar:function(t,e,n,o,i,a,s){var c=r.Token;for(var u in n)if(n.hasOwnProperty(u)&&n[u]){if(u==s)return;var f=n[u];f="Array"===r.util.type(f)?f:[f];for(var l=0;l<f.length;++l){var p=f[l],h=p.inside,d=!!p.lookbehind,v=!!p.greedy,y=0,m=p.alias;if(v&&!p.pattern.global){var g=p.pattern.toString().match(/[imuy]*$/)[0];p.pattern=RegExp(p.pattern.source,g+"g")}p=p.pattern||p;for(var b=o,_=i;b<e.length;_+=e[b].length,++b){var w=e[b];if(e.length>t.length)return;if(!(w instanceof c)){p.lastIndex=0;var x=1;if(!(j=p.exec(w))&&v&&b!=e.length-1){if(p.lastIndex=_,!(j=p.exec(t)))break;for(var O=j.index+(d?j[1].length:0),k=j.index+j[0].length,A=b,C=_,S=e.length;A<S&&(C<k||!e[A].type&&!e[A-1].greedy);++A)O>=(C+=e[A].length)&&(++b,_=C);if(e[b]instanceof c||e[A-1].greedy)continue;x=A-b,w=t.slice(_,C),j.index-=_}if(j){d&&(y=j[1].length);k=(O=j.index+y)+(j=j[0].slice(y)).length;var j,E=w.slice(0,O),$=w.slice(k),T=[b,x];E&&(++b,_+=E.length,T.push(E));var M=new c(u,h?r.tokenize(j,h):j,m,j,v);if(T.push(M),$&&T.push($),Array.prototype.splice.apply(e,T),1!=x&&r.matchGrammar(t,e,n,b,_,!0,u),a)break}else if(a)break}}}}},tokenize:function(t,e,n){var o=[t],i=e.rest;if(i){for(var a in i)e[a]=i[a];delete e.rest}return r.matchGrammar(t,o,e,0,0,!1),o},hooks:{all:{},add:function(t,e){var n=r.hooks.all;n[t]=n[t]||[],n[t].push(e)},run:function(t,e){var n=r.hooks.all[t];if(n&&n.length)for(var o,i=0;o=n[i++];)o(e)}}},o=r.Token=function(t,e,n,r,o){this.type=t,this.content=e,this.alias=n,this.length=0|(r||"").length,this.greedy=!!o};if(o.stringify=function(t,e,n){if("string"==typeof t)return t;if("Array"===r.util.type(t))return t.map(function(n){return o.stringify(n,e,t)}).join("");var i={type:t.type,content:o.stringify(t.content,e,n),tag:"span",classes:["token",t.type],attributes:{},language:e,parent:n};if(t.alias){var a="Array"===r.util.type(t.alias)?t.alias:[t.alias];Array.prototype.push.apply(i.classes,a)}r.hooks.run("wrap",i);var s=Object.keys(i.attributes).map(function(t){return t+'="'+(i.attributes[t]||"").replace(/"/g,"&quot;")+'"'}).join(" ");return"<"+i.tag+' class="'+i.classes.join(" ")+'"'+(s?" "+s:"")+">"+i.content+"</"+i.tag+">"},!n.document)return n.addEventListener?(r.disableWorkerMessageHandler||n.addEventListener("message",function(t){var e=JSON.parse(t.data),o=e.language,i=e.code,a=e.immediateClose;n.postMessage(r.highlight(i,r.languages[o],o)),a&&n.close()},!1),n.Prism):n.Prism;var i=document.currentScript||[].slice.call(document.getElementsByTagName("script")).pop();return i&&(r.filename=i.src,r.manual||i.hasAttribute("data-manual")||("loading"!==document.readyState?window.requestAnimationFrame?window.requestAnimationFrame(r.highlightAll):window.setTimeout(r.highlightAll,16):document.addEventListener("DOMContentLoaded",r.highlightAll))),n.Prism}();void 0!==t&&t.exports&&(t.exports=r),void 0!==e&&(e.Prism=r),r.languages.markup={comment:/<!--[\s\S]*?-->/,prolog:/<\?[\s\S]+?\?>/,doctype:/<!DOCTYPE[\s\S]+?>/i,cdata:/<!\[CDATA\[[\s\S]*?]]>/i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+)/i,inside:{punctuation:[/^=/,{pattern:/(^|[^\\])["']/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/&#?[\da-z]{1,8};/i},r.languages.markup.tag.inside["attr-value"].inside.entity=r.languages.markup.entity,r.hooks.add("wrap",function(t){"entity"===t.type&&(t.attributes.title=t.content.replace(/&amp;/,"&"))}),r.languages.xml=r.languages.markup,r.languages.html=r.languages.markup,r.languages.mathml=r.languages.markup,r.languages.svg=r.languages.markup,r.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-]+?.*?(?:;|(?=\s*\{))/i,inside:{rule:/@[\w-]+/}},url:/url\((?:(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|.*?)\)/i,selector:/[^{}\s][^{};]*?(?=\s*\{)/,string:{pattern:/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},property:/[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i,important:/\B!important\b/i,function:/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:]/},r.languages.css.atrule.inside.rest=r.util.clone(r.languages.css),r.languages.markup&&(r.languages.insertBefore("markup","tag",{style:{pattern:/(<style[\s\S]*?>)[\s\S]*?(?=<\/style>)/i,lookbehind:!0,inside:r.languages.css,alias:"language-css",greedy:!0}}),r.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i,inside:{"attr-name":{pattern:/^\s*style/i,inside:r.languages.markup.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/i,inside:r.languages.css}},alias:"language-css"}},r.languages.markup.tag)),r.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/[a-z0-9_]+(?=\()/i,number:/\b-?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)\b/i,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,punctuation:/[{}[\];(),.:]/},r.languages.javascript=r.languages.extend("clike",{keyword:/\b(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/,number:/\b-?(?:0[xX][\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+|\d*\.?\d+(?:[Ee][+-]?\d+)?|NaN|Infinity)\b/,function:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*\()/i,operator:/-[-=]?|\+[+=]?|!=?=?|<<?=?|>>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/}),r.languages.insertBefore("javascript","keyword",{regex:{pattern:/(^|[^/])\/(?!\/)(\[[^\]\r\n]+]|\\.|[^/\\\[\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})]))/,lookbehind:!0,greedy:!0},"function-variable":{pattern:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=\s*(?:function\b|(?:\([^()]*\)|[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/i,alias:"function"}}),r.languages.insertBefore("javascript","string",{"template-string":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,greedy:!0,inside:{interpolation:{pattern:/\$\{[^}]+\}/,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:r.languages.javascript}},string:/[\s\S]+/}}}),r.languages.markup&&r.languages.insertBefore("markup","tag",{script:{pattern:/(<script[\s\S]*?>)[\s\S]*?(?=<\/script>)/i,lookbehind:!0,inside:r.languages.javascript,alias:"language-javascript",greedy:!0}}),r.languages.js=r.languages.javascript,"undefined"!=typeof self&&self.Prism&&self.document&&document.querySelector&&(self.Prism.fileHighlight=function(){var t={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"};Array.prototype.slice.call(document.querySelectorAll("pre[data-src]")).forEach(function(e){for(var n,o=e.getAttribute("data-src"),i=e,a=/\blang(?:uage)?-(?!\*)(\w+)\b/i;i&&!a.test(i.className);)i=i.parentNode;if(i&&(n=(e.className.match(a)||[,""])[1]),!n){var s=(o.match(/\.(\w+)$/)||[,""])[1];n=t[s]||s}var c=document.createElement("code");c.className="language-"+n,e.textContent="",c.textContent="Loading…",e.appendChild(c);var u=new XMLHttpRequest;u.open("GET",o,!0),u.onreadystatechange=function(){4==u.readyState&&(u.status<400&&u.responseText?(c.textContent=u.responseText,r.highlightElement(c)):u.status>=400?c.textContent="✖ Error "+u.status+" while fetching file: "+u.statusText:c.textContent="✖ Error: File does not exist or is empty")},u.send(null)})},document.addEventListener("DOMContentLoaded",self.Prism.fileHighlight))}).call(e,n("DuR2"))},ON07:function(t,e,n){var r=n("EqjI"),o=n("7KvD").document,i=r(o)&&r(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},OYls:function(t,e,n){n("crlp")("asyncIterator")},PzxK:function(t,e,n){var r=n("D2L2"),o=n("sB3e"),i=n("ax3d")("IE_PROTO"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=o(t),r(t,i)?t[i]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?a:null}},QRG4:function(t,e,n){var r=n("UuGF"),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},"QWe/":function(t,e,n){n("crlp")("observable")},QnYn:function(t,e){t.exports=function(t){return/^['"].*['"]$/.test(t)&&(t=t.slice(1,-1)),/["'() \t\n]/.test(t)?'"'+t.replace(/"/g,'\\"').replace(/\n/g,"\\n")+'"':t}},R4wc:function(t,e,n){var r=n("kM2E");r(r.S+r.F,"Object",{assign:n("To3L")})},R9M2:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},RPLV:function(t,e,n){var r=n("7KvD").document;t.exports=r&&r.documentElement},"RY/4":function(t,e,n){var r=n("R9M2"),o=n("dSzd")("toStringTag"),i="Arguments"==r(function(){return arguments}());t.exports=function(t){var e,n,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),o))?n:i?r(e):"Object"==(a=r(e))&&"function"==typeof e.callee?"Arguments":a}},Rrel:function(t,e,n){var r=n("TcQ7"),o=n("n0T6").f,i={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&"[object Window]"==i.call(t)?function(t){try{return o(t)}catch(t){return a.slice()}}(t):o(r(t))}},S82l:function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},SfB7:function(t,e,n){t.exports=!n("+E39")&&!n("S82l")(function(){return 7!=Object.defineProperty(n("ON07")("div"),"a",{get:function(){return 7}}).a})},SldL:function(t,e){!function(e){"use strict";var n,r=Object.prototype,o=r.hasOwnProperty,i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",c=i.toStringTag||"@@toStringTag",u="object"==typeof t,f=e.regeneratorRuntime;if(f)u&&(t.exports=f);else{(f=e.regeneratorRuntime=u?t.exports:{}).wrap=_;var l="suspendedStart",p="suspendedYield",h="executing",d="completed",v={},y={};y[a]=function(){return this};var m=Object.getPrototypeOf,g=m&&m(m(T([])));g&&g!==r&&o.call(g,a)&&(y=g);var b=k.prototype=x.prototype=Object.create(y);O.prototype=b.constructor=k,k.constructor=O,k[c]=O.displayName="GeneratorFunction",f.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===O||"GeneratorFunction"===(e.displayName||e.name))},f.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,k):(t.__proto__=k,c in t||(t[c]="GeneratorFunction")),t.prototype=Object.create(b),t},f.awrap=function(t){return{__await:t}},A(C.prototype),C.prototype[s]=function(){return this},f.AsyncIterator=C,f.async=function(t,e,n,r){var o=new C(_(t,e,n,r));return f.isGeneratorFunction(e)?o:o.next().then(function(t){return t.done?t.value:o.next()})},A(b),b[c]="Generator",b[a]=function(){return this},b.toString=function(){return"[object Generator]"},f.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function n(){for(;e.length;){var r=e.pop();if(r in t)return n.value=r,n.done=!1,n}return n.done=!0,n}},f.values=T,$.prototype={constructor:$,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=n,this.done=!1,this.delegate=null,this.method="next",this.arg=n,this.tryEntries.forEach(E),!t)for(var e in this)"t"===e.charAt(0)&&o.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=n)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(r,o){return s.type="throw",s.arg=t,e.next=r,o&&(e.method="next",e.arg=n),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var c=o.call(a,"catchLoc"),u=o.call(a,"finallyLoc");if(c&&u){if(this.prev<a.catchLoc)return r(a.catchLoc,!0);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}else if(c){if(this.prev<a.catchLoc)return r(a.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return r(a.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&o.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var i=r;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method="next",this.next=i.finallyLoc,v):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),v},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),E(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var o=r.arg;E(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:T(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=n),v}}}function _(t,e,n,r){var o,i,a,s,c=e&&e.prototype instanceof x?e:x,u=Object.create(c.prototype),f=new $(r||[]);return u._invoke=(o=t,i=n,a=f,s=l,function(t,e){if(s===h)throw new Error("Generator is already running");if(s===d){if("throw"===t)throw e;return M()}for(a.method=t,a.arg=e;;){var n=a.delegate;if(n){var r=S(n,a);if(r){if(r===v)continue;return r}}if("next"===a.method)a.sent=a._sent=a.arg;else if("throw"===a.method){if(s===l)throw s=d,a.arg;a.dispatchException(a.arg)}else"return"===a.method&&a.abrupt("return",a.arg);s=h;var c=w(o,i,a);if("normal"===c.type){if(s=a.done?d:p,c.arg===v)continue;return{value:c.arg,done:a.done}}"throw"===c.type&&(s=d,a.method="throw",a.arg=c.arg)}}),u}function w(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}function x(){}function O(){}function k(){}function A(t){["next","throw","return"].forEach(function(e){t[e]=function(t){return this._invoke(e,t)}})}function C(t){var e;this._invoke=function(n,r){function i(){return new Promise(function(e,i){!function e(n,r,i,a){var s=w(t[n],t,r);if("throw"!==s.type){var c=s.arg,u=c.value;return u&&"object"==typeof u&&o.call(u,"__await")?Promise.resolve(u.__await).then(function(t){e("next",t,i,a)},function(t){e("throw",t,i,a)}):Promise.resolve(u).then(function(t){c.value=t,i(c)},a)}a(s.arg)}(n,r,e,i)})}return e=e?e.then(i,i):i()}}function S(t,e){var r=t.iterator[e.method];if(r===n){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=n,S(t,e),"throw"===e.method))return v;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var o=w(r,t.iterator,e.arg);if("throw"===o.type)return e.method="throw",e.arg=o.arg,e.delegate=null,v;var i=o.arg;return i?i.done?(e[t.resultName]=i.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=n),e.delegate=null,v):i:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,v)}function j(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function E(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function $(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(j,this),this.reset(!0)}function T(t){if(t){var e=t[a];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r<t.length;)if(o.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=n,e.done=!0,e};return i.next=i}}return{next:M}}function M(){return{value:n,done:!0}}}(function(){return this}()||Function("return this")())},TcQ7:function(t,e,n){var r=n("MU5D"),o=n("52gC");t.exports=function(t){return r(o(t))}},To3L:function(t,e,n){"use strict";var r=n("lktj"),o=n("1kS7"),i=n("NpIQ"),a=n("sB3e"),s=n("MU5D"),c=Object.assign;t.exports=!c||n("S82l")(function(){var t={},e={},n=Symbol(),r="abcdefghijklmnopqrst";return t[n]=7,r.split("").forEach(function(t){e[t]=t}),7!=c({},t)[n]||Object.keys(c({},e)).join("")!=r})?function(t,e){for(var n=a(t),c=arguments.length,u=1,f=o.f,l=i.f;c>u;)for(var p,h=s(arguments[u++]),d=f?r(h).concat(f(h)):r(h),v=d.length,y=0;v>y;)l.call(h,p=d[y++])&&(n[p]=h[p]);return n}:c},U5ju:function(t,e,n){n("M6a0"),n("zQR9"),n("+tPU"),n("CXw9"),n("EqBC"),n("jKW+"),t.exports=n("FeBl").Promise},UuGF:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},V3tA:function(t,e,n){n("R4wc"),t.exports=n("FeBl").Object.assign},"VU/8":function(t,e){t.exports=function(t,e,n,r,o,i){var a,s=t=t||{},c=typeof t.default;"object"!==c&&"function"!==c||(a=t,s=t.default);var u,f="function"==typeof s?s.options:s;if(e&&(f.render=e.render,f.staticRenderFns=e.staticRenderFns,f._compiled=!0),n&&(f.functional=!0),o&&(f._scopeId=o),i?(u=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(i)},f._ssrRegister=u):r&&(u=r),u){var l=f.functional,p=l?f.render:f.beforeCreate;l?(f._injectStyles=u,f.render=function(t,e){return u.call(e),p(t,e)}):f.beforeCreate=p?[].concat(p,u):[u]}return{esModule:a,exports:s,options:f}}},W2nU:function(t,e){var n,r,o=t.exports={};function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(t){if(n===setTimeout)return setTimeout(t,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(t,0);try{return n(t,0)}catch(e){try{return n.call(null,t,0)}catch(e){return n.call(this,t,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:i}catch(t){n=i}try{r="function"==typeof clearTimeout?clearTimeout:a}catch(t){r=a}}();var c,u=[],f=!1,l=-1;function p(){f&&c&&(f=!1,c.length?u=c.concat(u):l=-1,u.length&&h())}function h(){if(!f){var t=s(p);f=!0;for(var e=u.length;e;){for(c=u,u=[];++l<e;)c&&c[l].run();l=-1,e=u.length}c=null,f=!1,function(t){if(r===clearTimeout)return clearTimeout(t);if((r===a||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(t);try{r(t)}catch(e){try{return r.call(null,t)}catch(e){return r.call(this,t)}}}(t)}}function d(t,e){this.fun=t,this.array=e}function v(){}o.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];u.push(new d(t,e)),1!==u.length||f||s(h)},d.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=v,o.addListener=v,o.once=v,o.off=v,o.removeListener=v,o.removeAllListeners=v,o.emit=v,o.prependListener=v,o.prependOnceListener=v,o.listeners=function(t){return[]},o.binding=function(t){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(t){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}},X8DO:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},Xc4G:function(t,e,n){var r=n("lktj"),o=n("1kS7"),i=n("NpIQ");t.exports=function(t){var e=r(t),n=o.f;if(n)for(var a,s=n(t),c=i.f,u=0;s.length>u;)c.call(t,a=s[u++])&&e.push(a);return e}},Xxa5:function(t,e,n){t.exports=n("jyFz")},YHym:function(t,e){t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var n=function(t,e){var n=t[1]||"",r=t[3];if(!r)return n;if(e&&"function"==typeof btoa){var o=(a=r,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(a))))+" */"),i=r.sources.map(function(t){return"/*# sourceURL="+r.sourceRoot+t+" */"});return[n].concat(i).concat([o]).join("\n")}var a;return[n].join("\n")}(e,t);return e[2]?"@media "+e[2]+"{"+n+"}":n}).join("")},e.i=function(t,n){"string"==typeof t&&(t=[[null,t,""]]);for(var r={},o=0;o<this.length;o++){var i=this[o][0];"number"==typeof i&&(r[i]=!0)}for(o=0;o<t.length;o++){var a=t[o];"number"==typeof a[0]&&r[a[0]]||(n&&!a[2]?a[2]=n:n&&(a[2]="("+a[2]+") and ("+n+")"),e.push(a))}},e}},Yobk:function(t,e,n){var r=n("77Pl"),o=n("qio6"),i=n("xnc9"),a=n("ax3d")("IE_PROTO"),s=function(){},c=function(){var t,e=n("ON07")("iframe"),r=i.length;for(e.style.display="none",n("RPLV").appendChild(e),e.src="javascript:",(t=e.contentWindow.document).open(),t.write("<script>document.F=Object<\/script>"),t.close(),c=t.F;r--;)delete c.prototype[i[r]];return c()};t.exports=Object.create||function(t,e){var n;return null!==t?(s.prototype=r(t),n=new s,s.prototype=null,n[a]=t):n=c(),void 0===e?n:o(n,e)}},Zzip:function(t,e,n){t.exports={default:n("/n6Q"),__esModule:!0}},ax3d:function(t,e,n){var r=n("e8AB")("keys"),o=n("3Eo+");t.exports=function(t){return r[t]||(r[t]=o(t))}},bRrM:function(t,e,n){"use strict";var r=n("7KvD"),o=n("FeBl"),i=n("evD5"),a=n("+E39"),s=n("dSzd")("species");t.exports=function(t){var e="function"==typeof o[t]?o[t]:r[t];a&&e&&!e[s]&&i.f(e,s,{configurable:!0,get:function(){return this}})}},cEaC:function(t,e,n){t.exports=n.p+"fonts/fontawesome-webfont.674f50d.eot"},cmUn:function(t,e,n){t.exports=n.p+"fonts/fontawesome-webfont.674f50d.eot"},crlp:function(t,e,n){var r=n("7KvD"),o=n("FeBl"),i=n("O4g8"),a=n("Kh4W"),s=n("evD5").f;t.exports=function(t){var e=o.Symbol||(o.Symbol=i?{}:r.Symbol||{});"_"==t.charAt(0)||t in e||s(e,t,{value:a.f(t)})}},dNDb:function(t,e){t.exports=function(t){try{return{e:!1,v:t()}}catch(t){return{e:!0,v:t}}}},dSzd:function(t,e,n){var r=n("e8AB")("wks"),o=n("3Eo+"),i=n("7KvD").Symbol,a="function"==typeof i;(t.exports=function(t){return r[t]||(r[t]=a&&i[t]||(a?i:o)("Symbol."+t))}).store=r},dY0y:function(t,e,n){var r=n("dSzd")("iterator"),o=!1;try{var i=[7][r]();i.return=function(){o=!0},Array.from(i,function(){throw 2})}catch(t){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i=[7],a=i[r]();a.next=function(){return{done:n=!0}},i[r]=function(){return a},t(i)}catch(t){}return n}},e6n0:function(t,e,n){var r=n("evD5").f,o=n("D2L2"),i=n("dSzd")("toStringTag");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},e8AB:function(t,e,n){var r=n("7KvD"),o=r["__core-js_shared__"]||(r["__core-js_shared__"]={});t.exports=function(t){return o[t]||(o[t]={})}},evD5:function(t,e,n){var r=n("77Pl"),o=n("SfB7"),i=n("MmMw"),a=Object.defineProperty;e.f=n("+E39")?Object.defineProperty:function(t,e,n){if(r(t),e=i(e,!0),r(n),o)try{return a(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},exGp:function(t,e,n){"use strict";e.__esModule=!0;var r,o=n("//Fk"),i=(r=o)&&r.__esModule?r:{default:r};e.default=function(t){return function(){var e=t.apply(this,arguments);return new i.default(function(t,n){return function r(o,a){try{var s=e[o](a),c=s.value}catch(t){return void n(t)}if(!s.done)return i.default.resolve(c).then(function(t){r("next",t)},function(t){r("throw",t)});t(c)}("next")})}}},fJUb:function(t,e,n){var r=n("77Pl"),o=n("EqjI"),i=n("qARP");t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t);return(0,n.resolve)(e),n.promise}},fWfb:function(t,e,n){"use strict";var r=n("7KvD"),o=n("D2L2"),i=n("+E39"),a=n("kM2E"),s=n("880/"),c=n("06OY").KEY,u=n("S82l"),f=n("e8AB"),l=n("e6n0"),p=n("3Eo+"),h=n("dSzd"),d=n("Kh4W"),v=n("crlp"),y=n("Xc4G"),m=n("7UMu"),g=n("77Pl"),b=n("EqjI"),_=n("TcQ7"),w=n("MmMw"),x=n("X8DO"),O=n("Yobk"),k=n("Rrel"),A=n("LKZe"),C=n("evD5"),S=n("lktj"),j=A.f,E=C.f,$=k.f,T=r.Symbol,M=r.JSON,P=M&&M.stringify,L="prototype",I=h("_hidden"),N=h("toPrimitive"),R={}.propertyIsEnumerable,F=f("symbol-registry"),D=f("symbols"),B=f("op-symbols"),U=Object[L],q="function"==typeof T,z=r.QObject,V=!z||!z[L]||!z[L].findChild,G=i&&u(function(){return 7!=O(E({},"a",{get:function(){return E(this,"a",{value:7}).a}})).a})?function(t,e,n){var r=j(U,e);r&&delete U[e],E(t,e,n),r&&t!==U&&E(U,e,r)}:E,H=function(t){var e=D[t]=O(T[L]);return e._k=t,e},K=q&&"symbol"==typeof T.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof T},W=function(t,e,n){return t===U&&W(B,e,n),g(t),e=w(e,!0),g(n),o(D,e)?(n.enumerable?(o(t,I)&&t[I][e]&&(t[I][e]=!1),n=O(n,{enumerable:x(0,!1)})):(o(t,I)||E(t,I,x(1,{})),t[I][e]=!0),G(t,e,n)):E(t,e,n)},Q=function(t,e){g(t);for(var n,r=y(e=_(e)),o=0,i=r.length;i>o;)W(t,n=r[o++],e[n]);return t},J=function(t){var e=R.call(this,t=w(t,!0));return!(this===U&&o(D,t)&&!o(B,t))&&(!(e||!o(this,t)||!o(D,t)||o(this,I)&&this[I][t])||e)},Y=function(t,e){if(t=_(t),e=w(e,!0),t!==U||!o(D,e)||o(B,e)){var n=j(t,e);return!n||!o(D,e)||o(t,I)&&t[I][e]||(n.enumerable=!0),n}},X=function(t){for(var e,n=$(_(t)),r=[],i=0;n.length>i;)o(D,e=n[i++])||e==I||e==c||r.push(e);return r},Z=function(t){for(var e,n=t===U,r=$(n?B:_(t)),i=[],a=0;r.length>a;)!o(D,e=r[a++])||n&&!o(U,e)||i.push(D[e]);return i};q||(s((T=function(){if(this instanceof T)throw TypeError("Symbol is not a constructor!");var t=p(arguments.length>0?arguments[0]:void 0),e=function(n){this===U&&e.call(B,n),o(this,I)&&o(this[I],t)&&(this[I][t]=!1),G(this,t,x(1,n))};return i&&V&&G(U,t,{configurable:!0,set:e}),H(t)})[L],"toString",function(){return this._k}),A.f=Y,C.f=W,n("n0T6").f=k.f=X,n("NpIQ").f=J,n("1kS7").f=Z,i&&!n("O4g8")&&s(U,"propertyIsEnumerable",J,!0),d.f=function(t){return H(h(t))}),a(a.G+a.W+a.F*!q,{Symbol:T});for(var tt="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),et=0;tt.length>et;)h(tt[et++]);for(var nt=S(h.store),rt=0;nt.length>rt;)v(nt[rt++]);a(a.S+a.F*!q,"Symbol",{for:function(t){return o(F,t+="")?F[t]:F[t]=T(t)},keyFor:function(t){if(!K(t))throw TypeError(t+" is not a symbol!");for(var e in F)if(F[e]===t)return e},useSetter:function(){V=!0},useSimple:function(){V=!1}}),a(a.S+a.F*!q,"Object",{create:function(t,e){return void 0===e?O(t):Q(O(t),e)},defineProperty:W,defineProperties:Q,getOwnPropertyDescriptor:Y,getOwnPropertyNames:X,getOwnPropertySymbols:Z}),M&&a(a.S+a.F*(!q||u(function(){var t=T();return"[null]"!=P([t])||"{}"!=P({a:t})||"{}"!=P(Object(t))})),"JSON",{stringify:function(t){for(var e,n,r=[t],o=1;arguments.length>o;)r.push(arguments[o++]);if(n=e=r[1],(b(e)||void 0!==t)&&!K(t))return m(e)||(e=function(t,e){if("function"==typeof n&&(e=n.call(this,t,e)),!K(e))return e}),r[1]=e,P.apply(M,r)}}),T[L][N]||n("hJx8")(T[L],N,T[L].valueOf),l(T,"Symbol"),l(Math,"Math",!0),l(r.JSON,"JSON",!0)},fZjL:function(t,e,n){t.exports={default:n("jFbC"),__esModule:!0}},fkB2:function(t,e,n){var r=n("UuGF"),o=Math.max,i=Math.min;t.exports=function(t,e){return(t=r(t))<0?o(t+e,0):i(t,e)}},fxRn:function(t,e,n){n("+tPU"),n("zQR9"),t.exports=n("g8Ux")},g8Ux:function(t,e,n){var r=n("77Pl"),o=n("3fs2");t.exports=n("FeBl").getIterator=function(t){var e=o(t);if("function"!=typeof e)throw TypeError(t+" is not iterable!");return r(e.call(t))}},h65t:function(t,e,n){var r=n("UuGF"),o=n("52gC");t.exports=function(t){return function(e,n){var i,a,s=String(o(e)),c=r(n),u=s.length;return c<0||c>=u?t?"":void 0:(i=s.charCodeAt(c))<55296||i>56319||c+1===u||(a=s.charCodeAt(c+1))<56320||a>57343?t?s.charAt(c):i:t?s.slice(c,c+2):a-56320+(i-55296<<10)+65536}}},hJx8:function(t,e,n){var r=n("evD5"),o=n("X8DO");t.exports=n("+E39")?function(t,e,n){return r.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},hKoQ:function(t,e){var n,r;n=this,r=function(){"use strict";function t(t){return"function"==typeof t}var e=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)},n=0,r=void 0,o=void 0,i=function(t,e){p[n]=t,p[n+1]=e,2===(n+=2)&&(o?o(h):g())};var a="undefined"!=typeof window?window:void 0,s=a||{},c=s.MutationObserver||s.WebKitMutationObserver,u="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),f="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel;function l(){var t=setTimeout;return function(){return t(h,1)}}var p=new Array(1e3);function h(){for(var t=0;t<n;t+=2){(0,p[t])(p[t+1]),p[t]=void 0,p[t+1]=void 0}n=0}var d,v,y,m,g=void 0;function b(t,e){var n=this,r=new this.constructor(x);void 0===r[w]&&D(r);var o=n._state;if(o){var a=arguments[o-1];i(function(){return R(o,r,a,n._result)})}else P(n,r,t,e);return r}function _(t){if(t&&"object"==typeof t&&t.constructor===this)return t;var e=new this(x);return E(e,t),e}u?g=function(){return process.nextTick(h)}:c?(v=0,y=new c(h),m=document.createTextNode(""),y.observe(m,{characterData:!0}),g=function(){m.data=v=++v%2}):f?((d=new MessageChannel).port1.onmessage=h,g=function(){return d.port2.postMessage(0)}):g=void 0===a&&"function"==typeof require?function(){try{var t=require("vertx");return void 0!==(r=t.runOnLoop||t.runOnContext)?function(){r(h)}:l()}catch(t){return l()}}():l();var w=Math.random().toString(36).substring(16);function x(){}var O=void 0,k=1,A=2,C=new I;function S(t){try{return t.then}catch(t){return C.error=t,C}}function j(e,n,r){var o,a,s,c;n.constructor===e.constructor&&r===b&&n.constructor.resolve===_?(s=e,(c=n)._state===k?T(s,c._result):c._state===A?M(s,c._result):P(c,void 0,function(t){return E(s,t)},function(t){return M(s,t)})):r===C?(M(e,C.error),C.error=null):void 0===r?T(e,n):t(r)?(o=n,a=r,i(function(t){var e=!1,n=function(t,e,n,r){try{t.call(e,n,r)}catch(t){return t}}(a,o,function(n){e||(e=!0,o!==n?E(t,n):T(t,n))},function(n){e||(e=!0,M(t,n))},t._label);!e&&n&&(e=!0,M(t,n))},e)):T(e,n)}function E(t,e){var n,r;t===e?M(t,new TypeError("You cannot resolve a promise with itself")):(r=typeof(n=e),null===n||"object"!==r&&"function"!==r?T(t,e):j(t,e,S(e)))}function $(t){t._onerror&&t._onerror(t._result),L(t)}function T(t,e){t._state===O&&(t._result=e,t._state=k,0!==t._subscribers.length&&i(L,t))}function M(t,e){t._state===O&&(t._state=A,t._result=e,i($,t))}function P(t,e,n,r){var o=t._subscribers,a=o.length;t._onerror=null,o[a]=e,o[a+k]=n,o[a+A]=r,0===a&&t._state&&i(L,t)}function L(t){var e=t._subscribers,n=t._state;if(0!==e.length){for(var r=void 0,o=void 0,i=t._result,a=0;a<e.length;a+=3)r=e[a],o=e[a+n],r?R(n,r,o,i):o(i);t._subscribers.length=0}}function I(){this.error=null}var N=new I;function R(e,n,r,o){var i=t(r),a=void 0,s=void 0,c=void 0,u=void 0;if(i){if((a=function(t,e){try{return t(e)}catch(t){return N.error=t,N}}(r,o))===N?(u=!0,s=a.error,a.error=null):c=!0,n===a)return void M(n,new TypeError("A promises callback cannot return that same promise."))}else a=o,c=!0;n._state!==O||(i&&c?E(n,a):u?M(n,s):e===k?T(n,a):e===A&&M(n,a))}var F=0;function D(t){t[w]=F++,t._state=void 0,t._result=void 0,t._subscribers=[]}var B=function(){function t(t,n){this._instanceConstructor=t,this.promise=new t(x),this.promise[w]||D(this.promise),e(n)?(this.length=n.length,this._remaining=n.length,this._result=new Array(this.length),0===this.length?T(this.promise,this._result):(this.length=this.length||0,this._enumerate(n),0===this._remaining&&T(this.promise,this._result))):M(this.promise,new Error("Array Methods must be provided an Array"))}return t.prototype._enumerate=function(t){for(var e=0;this._state===O&&e<t.length;e++)this._eachEntry(t[e],e)},t.prototype._eachEntry=function(t,e){var n=this._instanceConstructor,r=n.resolve;if(r===_){var o=S(t);if(o===b&&t._state!==O)this._settledAt(t._state,e,t._result);else if("function"!=typeof o)this._remaining--,this._result[e]=t;else if(n===U){var i=new n(x);j(i,t,o),this._willSettleAt(i,e)}else this._willSettleAt(new n(function(e){return e(t)}),e)}else this._willSettleAt(r(t),e)},t.prototype._settledAt=function(t,e,n){var r=this.promise;r._state===O&&(this._remaining--,t===A?M(r,n):this._result[e]=n),0===this._remaining&&T(r,this._result)},t.prototype._willSettleAt=function(t,e){var n=this;P(t,void 0,function(t){return n._settledAt(k,e,t)},function(t){return n._settledAt(A,e,t)})},t}();var U=function(){function t(e){this[w]=F++,this._result=this._state=void 0,this._subscribers=[],x!==e&&("function"!=typeof e&&function(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}(),this instanceof t?function(t,e){try{e(function(e){E(t,e)},function(e){M(t,e)})}catch(e){M(t,e)}}(this,e):function(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}())}return t.prototype.catch=function(t){return this.then(null,t)},t.prototype.finally=function(t){var e=this.constructor;return this.then(function(n){return e.resolve(t()).then(function(){return n})},function(n){return e.resolve(t()).then(function(){throw n})})},t}();return U.prototype.then=b,U.all=function(t){return new B(this,t).promise},U.race=function(t){var n=this;return e(t)?new n(function(e,r){for(var o=t.length,i=0;i<o;i++)n.resolve(t[i]).then(e,r)}):new n(function(t,e){return e(new TypeError("You must pass an array to race."))})},U.resolve=_,U.reject=function(t){var e=new this(x);return M(e,t),e},U._setScheduler=function(t){o=t},U._setAsap=function(t){i=t},U._asap=i,U.polyfill=function(){var t=void 0;if("undefined"!=typeof global)t=global;else if("undefined"!=typeof self)t=self;else try{t=Function("return this")()}catch(t){throw new Error("polyfill failed because global object is unavailable in this environment")}var e=t.Promise;if(e){var n=null;try{n=Object.prototype.toString.call(e.resolve())}catch(t){}if("[object Promise]"===n&&!e.cast)return}t.Promise=U},U.Promise=U,U},"object"==typeof e&&void 0!==t?t.exports=r():"function"==typeof define&&define.amd?define(r):n.ES6Promise=r()},jFbC:function(t,e,n){n("Cdx3"),t.exports=n("FeBl").Object.keys},"jKW+":function(t,e,n){"use strict";var r=n("kM2E"),o=n("qARP"),i=n("dNDb");r(r.S,"Promise",{try:function(t){var e=o.f(this),n=i(t);return(n.e?e.reject:e.resolve)(n.v),e.promise}})},jNsU:function(t,e,n){t.exports=n.p+"fonts/fontawesome-webfont.fee66e7.woff"},jyFz:function(t,e,n){var r=function(){return this}()||Function("return this")(),o=r.regeneratorRuntime&&Object.getOwnPropertyNames(r).indexOf("regeneratorRuntime")>=0,i=o&&r.regeneratorRuntime;if(r.regeneratorRuntime=void 0,t.exports=n("SldL"),o)r.regeneratorRuntime=i;else try{delete r.regeneratorRuntime}catch(t){r.regeneratorRuntime=void 0}},kM2E:function(t,e,n){var r=n("7KvD"),o=n("FeBl"),i=n("+ZMJ"),a=n("hJx8"),s="prototype",c=function(t,e,n){var u,f,l,p=t&c.F,h=t&c.G,d=t&c.S,v=t&c.P,y=t&c.B,m=t&c.W,g=h?o:o[e]||(o[e]={}),b=g[s],_=h?r:d?r[e]:(r[e]||{})[s];h&&(n=e);for(u in n)(f=!p&&_&&void 0!==_[u])&&u in g||(l=f?_[u]:n[u],g[u]=h&&"function"!=typeof _[u]?n[u]:y&&f?i(l,r):m&&_[u]==l?function(t){var e=function(e,n,r){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,r)}return t.apply(this,arguments)};return e[s]=t[s],e}(l):v&&"function"==typeof l?i(Function.call,l):l,v&&((g.virtual||(g.virtual={}))[u]=l,t&c.R&&b&&!b[u]&&a(b,u,l)))};c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,t.exports=c},knuC:function(t,e){t.exports=function(t,e,n){var r=void 0===n;switch(e.length){case 0:return r?t():t.call(n);case 1:return r?t(e[0]):t.call(n,e[0]);case 2:return r?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return r?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return r?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},lOnJ:function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},lktj:function(t,e,n){var r=n("Ibhu"),o=n("xnc9");t.exports=Object.keys||function(t){return r(t,o)}},"m6/3":function(t,e){Prism.languages.json={property:/"(?:\\.|[^\\"\r\n])*"(?=\s*:)/i,string:{pattern:/"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,greedy:!0},number:/\b-?(?:0x[\dA-Fa-f]+|\d*\.?\d+(?:[Ee][+-]?\d+)?)\b/,punctuation:/[{}[\]);,]/,operator:/:/g,boolean:/\b(?:true|false)\b/i,null:/\bnull\b/i},Prism.languages.jsonp=Prism.languages.json},mClu:function(t,e,n){var r=n("kM2E");r(r.S+r.F*!n("+E39"),"Object",{defineProperty:n("evD5").f})},msXi:function(t,e,n){var r=n("77Pl");t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(e){var i=t.return;throw void 0!==i&&r(i.call(t)),e}}},mvHQ:function(t,e,n){t.exports={default:n("qkKv"),__esModule:!0}},mypn:function(t,e,n){(function(t,e){!function(t,n){"use strict";if(!t.setImmediate){var r,o,i,a,s,c=1,u={},f=!1,l=t.document,p=Object.getPrototypeOf&&Object.getPrototypeOf(t);p=p&&p.setTimeout?p:t,"[object process]"==={}.toString.call(t.process)?r=function(t){e.nextTick(function(){d(t)})}:!function(){if(t.postMessage&&!t.importScripts){var e=!0,n=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=n,e}}()?t.MessageChannel?((i=new MessageChannel).port1.onmessage=function(t){d(t.data)},r=function(t){i.port2.postMessage(t)}):l&&"onreadystatechange"in l.createElement("script")?(o=l.documentElement,r=function(t){var e=l.createElement("script");e.onreadystatechange=function(){d(t),e.onreadystatechange=null,o.removeChild(e),e=null},o.appendChild(e)}):r=function(t){setTimeout(d,0,t)}:(a="setImmediate$"+Math.random()+"$",s=function(e){e.source===t&&"string"==typeof e.data&&0===e.data.indexOf(a)&&d(+e.data.slice(a.length))},t.addEventListener?t.addEventListener("message",s,!1):t.attachEvent("onmessage",s),r=function(e){t.postMessage(a+e,"*")}),p.setImmediate=function(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),n=0;n<e.length;n++)e[n]=arguments[n+1];var o={callback:t,args:e};return u[c]=o,r(c),c++},p.clearImmediate=h}function h(t){delete u[t]}function d(t){if(f)setTimeout(d,0,t);else{var e=u[t];if(e){f=!0;try{!function(t){var e=t.callback,r=t.args;switch(r.length){case 0:e();break;case 1:e(r[0]);break;case 2:e(r[0],r[1]);break;case 3:e(r[0],r[1],r[2]);break;default:e.apply(n,r)}}(e)}finally{h(t),f=!1}}}}}("undefined"==typeof self?void 0===t?this:t:self)}).call(e,n("DuR2"),n("W2nU"))},n0T6:function(t,e,n){var r=n("Ibhu"),o=n("xnc9").concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},"of+2":function(t,e,n){t.exports=n.p+"fonts/fontawesome-webfont.af7ae50.woff2"},p3jY:function(t,e,n){var r;r=function(){"use strict";var t=Object.getOwnPropertySymbols,e=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable;var r=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(t){r[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(t){return!1}}()?Object.assign:function(r,o){for(var i,a,s=arguments,c=function(t){if(null===t||void 0===t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}(r),u=1;u<arguments.length;u++){i=Object(s[u]);for(var f in i)e.call(i,f)&&(c[f]=i[f]);if(t){a=t(i);for(var l=0;l<a.length;l++)n.call(i,a[l])&&(c[a[l]]=i[a[l]])}}return c},o=function(t){return!(o=t,!o||"object"!=typeof o||(e=t,n=Object.prototype.toString.call(e),"[object RegExp]"===n||"[object Date]"===n||(r=e,r.$$typeof===i)));var e,n,r,o};var i="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function a(t,e){var n;return(!e||!1!==e.clone)&&o(t)?c((n=t,Array.isArray(n)?[]:{}),t,e):t}function s(t,e,n){return t.concat(e).map(function(t){return a(t,n)})}function c(t,e,n){var r,i,u,f,l=Array.isArray(e);return l===Array.isArray(t)?l?((n||{arrayMerge:s}).arrayMerge||s)(t,e,n):(i=e,u=n,f={},o(r=t)&&Object.keys(r).forEach(function(t){f[t]=a(r[t],u)}),Object.keys(i).forEach(function(t){o(i[t])&&r[t]?f[t]=c(r[t],i[t],u):f[t]=a(i[t],u)}),f):a(e,n)}c.all=function(t,e){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(t,n){return c(t,n,e)},{})};var u=c,f="[object Object]";var l,p,h=Function.prototype,d=Object.prototype,v=h.toString,y=d.hasOwnProperty,m=v.call(Object),g=d.toString,b=(l=Object.getPrototypeOf,p=Object,function(t){return l(p(t))});var _=function(t){if(!(e=t)||"object"!=typeof e||g.call(t)!=f||function(t){var e=!1;if(null!=t&&"function"!=typeof t.toString)try{e=!!(t+"")}catch(t){}return e}(t))return!1;var e,n=b(t);if(null===n)return!0;var r=y.call(n,"constructor")&&n.constructor;return"function"==typeof r&&r instanceof r&&v.call(r)==m};var w=function(t){return"undefined"==typeof window?String(t).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;"):String(t).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'")};function x(t){void 0===t&&(t={});var e=t.keyName,n=t.tagIDKeyName;return function(t){var r=function t(e,n){void 0===n&&(n={});var r=e.component,o=e.option,i=e.deep,a=e.arrayMerge,s=r.$options;if(r._inactive)return n;if(void 0!==s[o]&&null!==s[o]){var c=s[o];"function"==typeof c&&(c=c.call(r)),n="object"==typeof c?u(n,c,{arrayMerge:a}):c}return i&&r.$children.length&&r.$children.forEach(function(e){n=t({component:e,option:o,deep:i,arrayMerge:a},n)}),n}({component:t,option:e,deep:!0,arrayMerge:function(t,e){var r=[];for(var o in t){var i=t[o],a=!1;for(var s in e){var c=e[s];if(i[n]&&i[n]===c[n]){a=!0;break}}a||r.push(i)}return r.concat(e)}});r.title&&(r.titleChunk=r.title),r.titleTemplate&&("function"==typeof r.titleTemplate?r.title=r.titleTemplate.call(t,r.titleChunk):r.title=r.titleTemplate.replace(/%s/g,r.titleChunk)),r.base&&(r.base=Object.keys(r.base).length?[r.base]:[]);var o=r.__dangerouslyDisableSanitizers,i=r.__dangerouslyDisableSanitizersByTagID,a=function(t){return Object.keys(t).reduce(function(e,r){var s=o&&o.indexOf(r)>-1,c=t[n];!s&&c&&(s=i&&i[c]&&i[c].indexOf(r)>-1);var u,f=t[r];return e[r]=f,"__dangerouslyDisableSanitizers"===r||"__dangerouslyDisableSanitizersByTagID"===r?e:(s?e[r]=f:"string"==typeof f?e[r]=w(f):_(f)?e[r]=a(f):(u=f,(Array.isArray?Array.isArray(u):"[object Array]"===Object.prototype.toString.call(u))?e[r]=f.map(a):e[r]=f),e)},{})};return r=u({title:"",titleChunk:"",titleTemplate:"%s",htmlAttrs:{},bodyAttrs:{},headAttrs:{},meta:[],base:[],link:[],style:[],script:[],noscript:[],__dangerouslyDisableSanitizers:[],__dangerouslyDisableSanitizersByTagID:{}},r),r=a(r)}}function O(t){return void 0===t&&(t={}),function(e,n){switch(e){case"title":return function(t){void 0===t&&(t={});var e=t.attribute;return function(t,n){return{text:function(){return"<"+t+" "+e+'="true">'+n+"</"+t+">"}}}}(t)(e,n);case"htmlAttrs":case"bodyAttrs":case"headAttrs":return function(t){void 0===t&&(t={});var e=t.attribute;return function(t,n){return{text:function(){var t="",r=[];for(var o in n)n.hasOwnProperty(o)&&(r.push(o),t+=(void 0!==n[o]?o+'="'+n[o]+'"':o)+" ");return(t+=e+'="'+r.join(",")+'"').trim()}}}}(t)(e,n);default:return function(t){void 0===t&&(t={});var e=t.attribute;return function(n,r){return{text:function(o){void 0===o&&(o={});var i=o.body;return void 0===i&&(i=!1),r.reduce(function(r,o){if(!!o.body!==i)return r;var a=Object.keys(o).reduce(function(e,n){switch(n){case"innerHTML":case"cssText":case"once":return e;default:return-1!==[t.tagIDKeyName,"body"].indexOf(n)?e+" data-"+n+'="'+o[n]+'"':void 0===o[n]?e+" "+n:e+" "+n+'="'+o[n]+'"'}},"").trim(),s=o.innerHTML||o.cssText||"",c=-1===["noscript","script","style"].indexOf(n),u=o.once?"":e+'="true" ';return c?r+"<"+n+" "+u+a+"/>":r+"<"+n+" "+u+a+">"+s+"</"+n+">"},"")}}}}(t)(e,n)}}}function k(t){void 0===t&&(t={});var e=t.attribute;return function(t,n){var r=n.getAttribute(e),o=r?r.split(","):[],i=[].concat(o);for(var a in t)if(t.hasOwnProperty(a)){var s=t[a]||"";n.setAttribute(a,s),-1===o.indexOf(a)&&o.push(a);var c=i.indexOf(a);-1!==c&&i.splice(c,1)}for(var u=i.length-1;u>=0;u--)n.removeAttribute(i[u]);o.length===i.length?n.removeAttribute(e):n.setAttribute(e,o.join(","))}}var A=Function.prototype.call.bind(Array.prototype.slice);function C(t){void 0===t&&(t={});var e=t.ssrAttribute;return function(n){var r=document.getElementsByTagName("html")[0];if(null===r.getAttribute(e)){var o={},i={};Object.keys(n).forEach(function(e){switch(e){case"title":void 0===(l=n.title)&&(l=document.title),document.title=l;break;case"htmlAttrs":k(t)(n[e],r);break;case"bodyAttrs":k(t)(n[e],document.getElementsByTagName("body")[0]);break;case"headAttrs":k(t)(n[e],document.getElementsByTagName("head")[0]);break;case"titleChunk":case"titleTemplate":case"changed":case"__dangerouslyDisableSanitizers":break;default:var a=document.getElementsByTagName("head")[0],s=document.getElementsByTagName("body")[0],c=function(t){void 0===t&&(t={});var e=t.attribute;return function(n,r,o,i){var a,s=A(o.querySelectorAll(n+"["+e+"]")),c=A(i.querySelectorAll(n+"["+e+'][data-body="true"]')),u=[];if(r.length>1){var f=[];r=r.map(function(t){var e=JSON.stringify(t);if(f.indexOf(e)<0)return f.push(e),t}).filter(function(t){return t})}r&&r.length&&r.forEach(function(r){var o=document.createElement(n),i=!0!==r.body?s:c;for(var f in r)if(r.hasOwnProperty(f))if("innerHTML"===f)o.innerHTML=r.innerHTML;else if("cssText"===f)o.styleSheet?o.styleSheet.cssText=r.cssText:o.appendChild(document.createTextNode(r.cssText));else if(-1!==[t.tagIDKeyName,"body"].indexOf(f)){var l="data-"+f,p=void 0===r[f]?"":r[f];o.setAttribute(l,p)}else{var h=void 0===r[f]?"":r[f];o.setAttribute(f,h)}o.setAttribute(e,"true"),i.some(function(t,e){return a=e,o.isEqualNode(t)})?i.splice(a,1):u.push(o)});var l=s.concat(c);return l.forEach(function(t){return t.parentNode.removeChild(t)}),u.forEach(function(t){"true"===t.getAttribute("data-body")?i.appendChild(t):o.appendChild(t)}),{oldTags:l,newTags:u}}}(t)(e,n[e],a,s),u=c.oldTags,f=c.newTags;f.length&&(o[e]=f,i[e]=u)}var l}),"function"==typeof n.changed&&n.changed.call(this,n,o,i)}else r.removeAttribute(e)}}function S(t){return void 0===t&&(t={}),function(){return{inject:(n=t,void 0===n&&(n={}),function(){var t=x(n)(this.$root);for(var e in t)t.hasOwnProperty(e)&&"titleTemplate"!==e&&"titleChunk"!==e&&(t[e]=O(n)(e,t[e]));return t}).bind(this),refresh:(e=t,void 0===e&&(e={}),function(){var t=x(e)(this.$root);return C(e).call(this,t),t}).bind(this)};var e,n}}var j=("undefined"!=typeof window?window.cancelAnimationFrame:null)||clearTimeout,E=("undefined"!=typeof window?window.requestAnimationFrame:null)||function(t){return setTimeout(t,0)};function $(t,e){return j(t),E(function(){t=null,e()})}var T="metaInfo",M="data-vue-meta",P="data-vue-meta-server-rendered",L="vmid";function I(t,e){void 0===e&&(e={}),e=r({keyName:T,attribute:M,ssrAttribute:P,tagIDKeyName:L},e),t.prototype.$meta=S(e);var n=null;t.mixin({beforeCreate:function(){void 0!==this.$options[e.keyName]&&(this._hasMetaInfo=!0),"function"==typeof this.$options[e.keyName]&&(void 0===this.$options.computed&&(this.$options.computed={}),this.$options.computed.$metaInfo=this.$options[e.keyName])},created:function(){var t=this;!this.$isServer&&this.$metaInfo&&this.$watch("$metaInfo",function(){n=$(n,function(){return t.$meta().refresh()})})},activated:function(){var t=this;this._hasMetaInfo&&(n=$(n,function(){return t.$meta().refresh()}))},deactivated:function(){var t=this;this._hasMetaInfo&&(n=$(n,function(){return t.$meta().refresh()}))},beforeMount:function(){var t=this;this._hasMetaInfo&&(n=$(n,function(){return t.$meta().refresh()}))},destroyed:function(){var t=this;if(!this.$isServer&&this._hasMetaInfo)var e=setInterval(function(){null===t.$el.offsetParent&&(clearInterval(e),n=$(n,function(){return t.$meta().refresh()}))},50)}})}"undefined"!=typeof window&&void 0!==window.Vue&&Vue.use(I);return I.version="1.4.2",I},t.exports=r()},pFYg:function(t,e,n){"use strict";e.__esModule=!0;var r=a(n("Zzip")),o=a(n("5QVw")),i="function"==typeof o.default&&"symbol"==typeof r.default?function(t){return typeof t}:function(t){return t&&"function"==typeof o.default&&t.constructor===o.default&&t!==o.default.prototype?"symbol":typeof t};function a(t){return t&&t.__esModule?t:{default:t}}e.default="function"==typeof o.default&&"symbol"===i(r.default)?function(t){return void 0===t?"undefined":i(t)}:function(t){return t&&"function"==typeof o.default&&t.constructor===o.default&&t!==o.default.prototype?"symbol":void 0===t?"undefined":i(t)}},qARP:function(t,e,n){"use strict";var r=n("lOnJ");t.exports.f=function(t){return new function(t){var e,n;this.promise=new t(function(t,r){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=r}),this.resolve=r(e),this.reject=r(n)}(t)}},qio6:function(t,e,n){var r=n("evD5"),o=n("77Pl"),i=n("lktj");t.exports=n("+E39")?Object.defineProperties:function(t,e){o(t);for(var n,a=i(e),s=a.length,c=0;s>c;)r.f(t,n=a[c++],e[n]);return t}},qkKv:function(t,e,n){var r=n("FeBl"),o=r.JSON||(r.JSON={stringify:JSON.stringify});t.exports=function(t){return o.stringify.apply(o,arguments)}},rjj0:function(t,e,n){var r="undefined"!=typeof document;if("undefined"!=typeof DEBUG&&DEBUG&&!r)throw new Error("vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.");var o=n("tTVk"),i={},a=r&&(document.head||document.getElementsByTagName("head")[0]),s=null,c=0,u=!1,f=function(){},l="undefined"!=typeof navigator&&/msie [6-9]\b/.test(navigator.userAgent.toLowerCase());function p(t){for(var e=0;e<t.length;e++){var n=t[e],r=i[n.id];if(r){r.refs++;for(var o=0;o<r.parts.length;o++)r.parts[o](n.parts[o]);for(;o<n.parts.length;o++)r.parts.push(d(n.parts[o]));r.parts.length>n.parts.length&&(r.parts.length=n.parts.length)}else{var a=[];for(o=0;o<n.parts.length;o++)a.push(d(n.parts[o]));i[n.id]={id:n.id,refs:1,parts:a}}}}function h(){var t=document.createElement("style");return t.type="text/css",a.appendChild(t),t}function d(t){var e,n,r=document.querySelector('style[data-vue-ssr-id~="'+t.id+'"]');if(r){if(u)return f;r.parentNode.removeChild(r)}if(l){var o=c++;r=s||(s=h()),e=m.bind(null,r,o,!1),n=m.bind(null,r,o,!0)}else r=h(),e=function(t,e){var n=e.css,r=e.media,o=e.sourceMap;r&&t.setAttribute("media",r);o&&(n+="\n/*# sourceURL="+o.sources[0]+" */",n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+" */");if(t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}.bind(null,r),n=function(){r.parentNode.removeChild(r)};return e(t),function(r){if(r){if(r.css===t.css&&r.media===t.media&&r.sourceMap===t.sourceMap)return;e(t=r)}else n()}}t.exports=function(t,e,n){u=n;var r=o(t,e);return p(r),function(e){for(var n=[],a=0;a<r.length;a++){var s=r[a];(c=i[s.id]).refs--,n.push(c)}e?p(r=o(t,e)):r=[];for(a=0;a<n.length;a++){var c;if(0===(c=n[a]).refs){for(var u=0;u<c.parts.length;u++)c.parts[u]();delete i[c.id]}}}};var v,y=(v=[],function(t,e){return v[t]=e,v.filter(Boolean).join("\n")});function m(t,e,n,r){var o=n?"":r.css;if(t.styleSheet)t.styleSheet.cssText=y(e,o);else{var i=document.createTextNode(o),a=t.childNodes;a[e]&&t.removeChild(a[e]),a.length?t.insertBefore(i,a[e]):t.appendChild(i)}}},sB3e:function(t,e,n){var r=n("52gC");t.exports=function(t){return Object(r(t))}},t8x9:function(t,e,n){var r=n("77Pl"),o=n("lOnJ"),i=n("dSzd")("species");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||void 0==(n=r(a)[i])?e:o(n)}},tTVk:function(t,e){t.exports=function(t,e){for(var n=[],r={},o=0;o<e.length;o++){var i=e[o],a=i[0],s={id:t+":"+o,css:i[1],media:i[2],sourceMap:i[3]};r[a]?r[a].parts.push(s):n.push(r[a]={id:a,parts:[s]})}return n}},uqUo:function(t,e,n){var r=n("kM2E"),o=n("FeBl"),i=n("S82l");t.exports=function(t,e){var n=(o.Object||{})[t]||Object[t],a={};a[t]=e(n),r(r.S+r.F*i(function(){n(1)}),"Object",a)}},"vFc/":function(t,e,n){var r=n("TcQ7"),o=n("QRG4"),i=n("fkB2");t.exports=function(t){return function(e,n,a){var s,c=r(e),u=o(c.length),f=i(a,u);if(t&&n!=n){for(;u>f;)if((s=c[f++])!=s)return!0}else for(;u>f;f++)if((t||f in c)&&c[f]===n)return t||f||0;return!t&&-1}}},"vIB/":function(t,e,n){"use strict";var r=n("O4g8"),o=n("kM2E"),i=n("880/"),a=n("hJx8"),s=n("D2L2"),c=n("/bQp"),u=n("94VQ"),f=n("e6n0"),l=n("PzxK"),p=n("dSzd")("iterator"),h=!([].keys&&"next"in[].keys()),d=function(){return this};t.exports=function(t,e,n,v,y,m,g){u(n,e,v);var b,_,w,x=function(t){if(!h&&t in C)return C[t];switch(t){case"keys":case"values":return function(){return new n(this,t)}}return function(){return new n(this,t)}},O=e+" Iterator",k="values"==y,A=!1,C=t.prototype,S=C[p]||C["@@iterator"]||y&&C[y],j=!h&&S||x(y),E=y?k?x("entries"):j:void 0,$="Array"==e?C.entries||S:S;if($&&(w=l($.call(new t)))!==Object.prototype&&w.next&&(f(w,O,!0),r||s(w,p)||a(w,p,d)),k&&S&&"values"!==S.name&&(A=!0,j=function(){return S.call(this)}),r&&!g||!h&&!A&&C[p]||a(C,p,j),c[e]=j,c[O]=d,y)if(b={values:k?j:x("values"),keys:m?j:x("keys"),entries:E},g)for(_ in b)_ in C||i(C,_,b[_]);else o(o.P+o.F*(h||A),e,b);return b}},woOf:function(t,e,n){t.exports={default:n("V3tA"),__esModule:!0}},xGkn:function(t,e,n){"use strict";var r=n("4mcu"),o=n("EGZi"),i=n("/bQp"),a=n("TcQ7");t.exports=n("vIB/")(Array,"Array",function(t,e){this._t=a(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,o(1)):o(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])},"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},"xH/j":function(t,e,n){var r=n("hJx8");t.exports=function(t,e,n){for(var o in e)n&&t[o]?t[o]=e[o]:r(t,o,e[o]);return t}},xnc9:function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},zQR9:function(t,e,n){"use strict";var r=n("h65t")(!0);n("vIB/")(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})})}},[0]);
\ No newline at end of file
diff --git a/files/vendor.3960437a749191406982.js b/files/vendor.3960437a749191406982.js
new file mode 100644
index 0000000..d359907
--- /dev/null
+++ b/files/vendor.3960437a749191406982.js
@@ -0,0 +1,2 @@
+/*! For license information please see LICENSES */
+webpackJsonp([15],{"+E39":function(t,e,n){t.exports=!n("S82l")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},"+ZMJ":function(t,e,n){var r=n("lOnJ");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},"+tPU":function(t,e,n){n("xGkn");for(var r=n("7KvD"),o=n("hJx8"),i=n("/bQp"),a=n("dSzd")("toStringTag"),s="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),c=0;c<s.length;c++){var u=s[c],f=r[u],l=f&&f.prototype;l&&!l[a]&&o(l,a,u),i[u]=i.Array}},"//Fk":function(t,e,n){t.exports={default:n("U5ju"),__esModule:!0}},"/5sW":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t,n){var r=Object.freeze({});function o(t){return void 0===t||null===t}function i(t){return void 0!==t&&null!==t}function a(t){return!0===t}function s(t){return"string"==typeof t||"number"==typeof t||"symbol"==typeof t||"boolean"==typeof t}function c(t){return null!==t&&"object"==typeof t}var u=Object.prototype.toString;function f(t){return"[object Object]"===u.call(t)}function l(t){return"[object RegExp]"===u.call(t)}function p(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function h(t){return null==t?"":"object"==typeof t?JSON.stringify(t,null,2):String(t)}function d(t){var e=parseFloat(t);return isNaN(e)?t:e}function v(t,e){for(var n=Object.create(null),r=t.split(","),o=0;o<r.length;o++)n[r[o]]=!0;return e?function(t){return n[t.toLowerCase()]}:function(t){return n[t]}}v("slot,component",!0);var y=v("key,ref,slot,slot-scope,is");function m(t,e){if(t.length){var n=t.indexOf(e);if(n>-1)return t.splice(n,1)}}var g=Object.prototype.hasOwnProperty;function b(t,e){return g.call(t,e)}function _(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}var w=/-(\w)/g,x=_(function(t){return t.replace(w,function(t,e){return e?e.toUpperCase():""})}),O=_(function(t){return t.charAt(0).toUpperCase()+t.slice(1)}),k=/\B([A-Z])/g,A=_(function(t){return t.replace(k,"-$1").toLowerCase()});function C(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n}function S(t,e){e=e||0;for(var n=t.length-e,r=new Array(n);n--;)r[n]=t[n+e];return r}function j(t,e){for(var n in e)t[n]=e[n];return t}function E(t){for(var e={},n=0;n<t.length;n++)t[n]&&j(e,t[n]);return e}function $(t,e,n){}var T=function(t,e,n){return!1},M=function(t){return t};function P(t,e){if(t===e)return!0;var n=c(t),r=c(e);if(!n||!r)return!n&&!r&&String(t)===String(e);try{var o=Array.isArray(t),i=Array.isArray(e);if(o&&i)return t.length===e.length&&t.every(function(t,n){return P(t,e[n])});if(o||i)return!1;var a=Object.keys(t),s=Object.keys(e);return a.length===s.length&&a.every(function(n){return P(t[n],e[n])})}catch(t){return!1}}function L(t,e){for(var n=0;n<t.length;n++)if(P(t[n],e))return n;return-1}function I(t){var e=!1;return function(){e||(e=!0,t.apply(this,arguments))}}var N="data-server-rendered",R=["component","directive","filter"],F=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeDestroy","destroyed","activated","deactivated","errorCaptured"],D={optionMergeStrategies:Object.create(null),silent:!1,productionTip:!1,devtools:!1,performance:!1,errorHandler:null,warnHandler:null,ignoredElements:[],keyCodes:Object.create(null),isReservedTag:T,isReservedAttr:T,isUnknownElement:T,getTagNamespace:$,parsePlatformTagName:M,mustUseProp:T,_lifecycleHooks:F};function B(t){var e=(t+"").charCodeAt(0);return 36===e||95===e}function U(t,e,n,r){Object.defineProperty(t,e,{value:n,enumerable:!!r,writable:!0,configurable:!0})}var q=/[^\w.$]/;var z,V="__proto__"in{},G="undefined"!=typeof window,H="undefined"!=typeof WXEnvironment&&!!WXEnvironment.platform,K=H&&WXEnvironment.platform.toLowerCase(),W=G&&window.navigator.userAgent.toLowerCase(),Q=W&&/msie|trident/.test(W),J=W&&W.indexOf("msie 9.0")>0,Y=W&&W.indexOf("edge/")>0,X=W&&W.indexOf("android")>0||"android"===K,Z=W&&/iphone|ipad|ipod|ios/.test(W)||"ios"===K,tt=(W&&/chrome\/\d+/.test(W),{}.watch),et=!1;if(G)try{var nt={};Object.defineProperty(nt,"passive",{get:function(){et=!0}}),window.addEventListener("test-passive",null,nt)}catch(t){}var rt=function(){return void 0===z&&(z=!G&&void 0!==t&&"server"===t.process.env.VUE_ENV),z},ot=G&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function it(t){return"function"==typeof t&&/native code/.test(t.toString())}var at,st="undefined"!=typeof Symbol&&it(Symbol)&&"undefined"!=typeof Reflect&&it(Reflect.ownKeys);at="undefined"!=typeof Set&&it(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var ct=$,ut=0,ft=function(){this.id=ut++,this.subs=[]};ft.prototype.addSub=function(t){this.subs.push(t)},ft.prototype.removeSub=function(t){m(this.subs,t)},ft.prototype.depend=function(){ft.target&&ft.target.addDep(this)},ft.prototype.notify=function(){for(var t=this.subs.slice(),e=0,n=t.length;e<n;e++)t[e].update()},ft.target=null;var lt=[];var pt=function(t,e,n,r,o,i,a,s){this.tag=t,this.data=e,this.children=n,this.text=r,this.elm=o,this.ns=void 0,this.context=i,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=e&&e.key,this.componentOptions=a,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=s,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1},ht={child:{configurable:!0}};ht.child.get=function(){return this.componentInstance},Object.defineProperties(pt.prototype,ht);var dt=function(t){void 0===t&&(t="");var e=new pt;return e.text=t,e.isComment=!0,e};function vt(t){return new pt(void 0,void 0,void 0,String(t))}function yt(t,e){var n=t.componentOptions,r=new pt(t.tag,t.data,t.children,t.text,t.elm,t.context,n,t.asyncFactory);return r.ns=t.ns,r.isStatic=t.isStatic,r.key=t.key,r.isComment=t.isComment,r.fnContext=t.fnContext,r.fnOptions=t.fnOptions,r.fnScopeId=t.fnScopeId,r.isCloned=!0,e&&(t.children&&(r.children=mt(t.children,!0)),n&&n.children&&(n.children=mt(n.children,!0))),r}function mt(t,e){for(var n=t.length,r=new Array(n),o=0;o<n;o++)r[o]=yt(t[o],e);return r}var gt=Array.prototype,bt=Object.create(gt);["push","pop","shift","unshift","splice","sort","reverse"].forEach(function(t){var e=gt[t];U(bt,t,function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];var o,i=e.apply(this,n),a=this.__ob__;switch(t){case"push":case"unshift":o=n;break;case"splice":o=n.slice(2)}return o&&a.observeArray(o),a.dep.notify(),i})});var _t=Object.getOwnPropertyNames(bt),wt={shouldConvert:!0},xt=function(t){(this.value=t,this.dep=new ft,this.vmCount=0,U(t,"__ob__",this),Array.isArray(t))?((V?Ot:kt)(t,bt,_t),this.observeArray(t)):this.walk(t)};function Ot(t,e,n){t.__proto__=e}function kt(t,e,n){for(var r=0,o=n.length;r<o;r++){var i=n[r];U(t,i,e[i])}}function At(t,e){var n;if(c(t)&&!(t instanceof pt))return b(t,"__ob__")&&t.__ob__ instanceof xt?n=t.__ob__:wt.shouldConvert&&!rt()&&(Array.isArray(t)||f(t))&&Object.isExtensible(t)&&!t._isVue&&(n=new xt(t)),e&&n&&n.vmCount++,n}function Ct(t,e,n,r,o){var i=new ft,a=Object.getOwnPropertyDescriptor(t,e);if(!a||!1!==a.configurable){var s=a&&a.get,c=a&&a.set,u=!o&&At(n);Object.defineProperty(t,e,{enumerable:!0,configurable:!0,get:function(){var e=s?s.call(t):n;return ft.target&&(i.depend(),u&&(u.dep.depend(),Array.isArray(e)&&function t(e){for(var n=void 0,r=0,o=e.length;r<o;r++)(n=e[r])&&n.__ob__&&n.__ob__.dep.depend(),Array.isArray(n)&&t(n)}(e))),e},set:function(e){var r=s?s.call(t):n;e===r||e!=e&&r!=r||(c?c.call(t,e):n=e,u=!o&&At(e),i.notify())}})}}function St(t,e,n){if(Array.isArray(t)&&p(e))return t.length=Math.max(t.length,e),t.splice(e,1,n),n;if(e in t&&!(e in Object.prototype))return t[e]=n,n;var r=t.__ob__;return t._isVue||r&&r.vmCount?n:r?(Ct(r.value,e,n),r.dep.notify(),n):(t[e]=n,n)}function jt(t,e){if(Array.isArray(t)&&p(e))t.splice(e,1);else{var n=t.__ob__;t._isVue||n&&n.vmCount||b(t,e)&&(delete t[e],n&&n.dep.notify())}}xt.prototype.walk=function(t){for(var e=Object.keys(t),n=0;n<e.length;n++)Ct(t,e[n],t[e[n]])},xt.prototype.observeArray=function(t){for(var e=0,n=t.length;e<n;e++)At(t[e])};var Et=D.optionMergeStrategies;function $t(t,e){if(!e)return t;for(var n,r,o,i=Object.keys(e),a=0;a<i.length;a++)r=t[n=i[a]],o=e[n],b(t,n)?f(r)&&f(o)&&$t(r,o):St(t,n,o);return t}function Tt(t,e,n){return n?function(){var r="function"==typeof e?e.call(n,n):e,o="function"==typeof t?t.call(n,n):t;return r?$t(r,o):o}:e?t?function(){return $t("function"==typeof e?e.call(this,this):e,"function"==typeof t?t.call(this,this):t)}:e:t}function Mt(t,e){return e?t?t.concat(e):Array.isArray(e)?e:[e]:t}function Pt(t,e,n,r){var o=Object.create(t||null);return e?j(o,e):o}Et.data=function(t,e,n){return n?Tt(t,e,n):e&&"function"!=typeof e?t:Tt(t,e)},F.forEach(function(t){Et[t]=Mt}),R.forEach(function(t){Et[t+"s"]=Pt}),Et.watch=function(t,e,n,r){if(t===tt&&(t=void 0),e===tt&&(e=void 0),!e)return Object.create(t||null);if(!t)return e;var o={};j(o,t);for(var i in e){var a=o[i],s=e[i];a&&!Array.isArray(a)&&(a=[a]),o[i]=a?a.concat(s):Array.isArray(s)?s:[s]}return o},Et.props=Et.methods=Et.inject=Et.computed=function(t,e,n,r){if(!t)return e;var o=Object.create(null);return j(o,t),e&&j(o,e),o},Et.provide=Tt;var Lt=function(t,e){return void 0===e?t:e};function It(t,e,n){"function"==typeof e&&(e=e.options),function(t,e){var n=t.props;if(n){var r,o,i={};if(Array.isArray(n))for(r=n.length;r--;)"string"==typeof(o=n[r])&&(i[x(o)]={type:null});else if(f(n))for(var a in n)o=n[a],i[x(a)]=f(o)?o:{type:o};t.props=i}}(e),function(t,e){var n=t.inject;if(n){var r=t.inject={};if(Array.isArray(n))for(var o=0;o<n.length;o++)r[n[o]]={from:n[o]};else if(f(n))for(var i in n){var a=n[i];r[i]=f(a)?j({from:i},a):{from:a}}}}(e),function(t){var e=t.directives;if(e)for(var n in e){var r=e[n];"function"==typeof r&&(e[n]={bind:r,update:r})}}(e);var r=e.extends;if(r&&(t=It(t,r,n)),e.mixins)for(var o=0,i=e.mixins.length;o<i;o++)t=It(t,e.mixins[o],n);var a,s={};for(a in t)c(a);for(a in e)b(t,a)||c(a);function c(r){var o=Et[r]||Lt;s[r]=o(t[r],e[r],n,r)}return s}function Nt(t,e,n,r){if("string"==typeof n){var o=t[e];if(b(o,n))return o[n];var i=x(n);if(b(o,i))return o[i];var a=O(i);return b(o,a)?o[a]:o[n]||o[i]||o[a]}}function Rt(t,e,n,r){var o=e[t],i=!b(n,t),a=n[t];if(Dt(Boolean,o.type)&&(i&&!b(o,"default")?a=!1:Dt(String,o.type)||""!==a&&a!==A(t)||(a=!0)),void 0===a){a=function(t,e,n){if(!b(e,"default"))return;var r=e.default;0;if(t&&t.$options.propsData&&void 0===t.$options.propsData[n]&&void 0!==t._props[n])return t._props[n];return"function"==typeof r&&"Function"!==Ft(e.type)?r.call(t):r}(r,o,t);var s=wt.shouldConvert;wt.shouldConvert=!0,At(a),wt.shouldConvert=s}return a}function Ft(t){var e=t&&t.toString().match(/^\s*function (\w+)/);return e?e[1]:""}function Dt(t,e){if(!Array.isArray(e))return Ft(e)===Ft(t);for(var n=0,r=e.length;n<r;n++)if(Ft(e[n])===Ft(t))return!0;return!1}function Bt(t,e,n){if(e)for(var r=e;r=r.$parent;){var o=r.$options.errorCaptured;if(o)for(var i=0;i<o.length;i++)try{if(!1===o[i].call(r,t,e,n))return}catch(t){Ut(t,r,"errorCaptured hook")}}Ut(t,e,n)}function Ut(t,e,n){if(D.errorHandler)try{return D.errorHandler.call(null,t,e,n)}catch(t){qt(t,null,"config.errorHandler")}qt(t,e,n)}function qt(t,e,n){if(!G&&!H||"undefined"==typeof console)throw t;console.error(t)}var zt,Vt,Gt=[],Ht=!1;function Kt(){Ht=!1;var t=Gt.slice(0);Gt.length=0;for(var e=0;e<t.length;e++)t[e]()}var Wt=!1;if(void 0!==n&&it(n))Vt=function(){n(Kt)};else if("undefined"==typeof MessageChannel||!it(MessageChannel)&&"[object MessageChannelConstructor]"!==MessageChannel.toString())Vt=function(){setTimeout(Kt,0)};else{var Qt=new MessageChannel,Jt=Qt.port2;Qt.port1.onmessage=Kt,Vt=function(){Jt.postMessage(1)}}if("undefined"!=typeof Promise&&it(Promise)){var Yt=Promise.resolve();zt=function(){Yt.then(Kt),Z&&setTimeout($)}}else zt=Vt;function Xt(t,e){var n;if(Gt.push(function(){if(t)try{t.call(e)}catch(t){Bt(t,e,"nextTick")}else n&&n(e)}),Ht||(Ht=!0,Wt?Vt():zt()),!t&&"undefined"!=typeof Promise)return new Promise(function(t){n=t})}var Zt=new at;function te(t){!function t(e,n){var r,o;var i=Array.isArray(e);if(!i&&!c(e)||Object.isFrozen(e))return;if(e.__ob__){var a=e.__ob__.dep.id;if(n.has(a))return;n.add(a)}if(i)for(r=e.length;r--;)t(e[r],n);else for(o=Object.keys(e),r=o.length;r--;)t(e[o[r]],n)}(t,Zt),Zt.clear()}var ee,ne=_(function(t){var e="&"===t.charAt(0),n="~"===(t=e?t.slice(1):t).charAt(0),r="!"===(t=n?t.slice(1):t).charAt(0);return{name:t=r?t.slice(1):t,once:n,capture:r,passive:e}});function re(t){function e(){var t=arguments,n=e.fns;if(!Array.isArray(n))return n.apply(null,arguments);for(var r=n.slice(),o=0;o<r.length;o++)r[o].apply(null,t)}return e.fns=t,e}function oe(t,e,n,r,i){var a,s,c,u;for(a in t)s=t[a],c=e[a],u=ne(a),o(s)||(o(c)?(o(s.fns)&&(s=t[a]=re(s)),n(u.name,s,u.once,u.capture,u.passive,u.params)):s!==c&&(c.fns=s,t[a]=c));for(a in e)o(t[a])&&r((u=ne(a)).name,e[a],u.capture)}function ie(t,e,n){var r;t instanceof pt&&(t=t.data.hook||(t.data.hook={}));var s=t[e];function c(){n.apply(this,arguments),m(r.fns,c)}o(s)?r=re([c]):i(s.fns)&&a(s.merged)?(r=s).fns.push(c):r=re([s,c]),r.merged=!0,t[e]=r}function ae(t,e,n,r,o){if(i(e)){if(b(e,n))return t[n]=e[n],o||delete e[n],!0;if(b(e,r))return t[n]=e[r],o||delete e[r],!0}return!1}function se(t){return s(t)?[vt(t)]:Array.isArray(t)?function t(e,n){var r=[];var c,u,f,l;for(c=0;c<e.length;c++)o(u=e[c])||"boolean"==typeof u||(f=r.length-1,l=r[f],Array.isArray(u)?u.length>0&&(ce((u=t(u,(n||"")+"_"+c))[0])&&ce(l)&&(r[f]=vt(l.text+u[0].text),u.shift()),r.push.apply(r,u)):s(u)?ce(l)?r[f]=vt(l.text+u):""!==u&&r.push(vt(u)):ce(u)&&ce(l)?r[f]=vt(l.text+u.text):(a(e._isVList)&&i(u.tag)&&o(u.key)&&i(n)&&(u.key="__vlist"+n+"_"+c+"__"),r.push(u)));return r}(t):void 0}function ce(t){return i(t)&&i(t.text)&&!1===t.isComment}function ue(t,e){return(t.__esModule||st&&"Module"===t[Symbol.toStringTag])&&(t=t.default),c(t)?e.extend(t):t}function fe(t){return t.isComment&&t.asyncFactory}function le(t){if(Array.isArray(t))for(var e=0;e<t.length;e++){var n=t[e];if(i(n)&&(i(n.componentOptions)||fe(n)))return n}}function pe(t,e,n){n?ee.$once(t,e):ee.$on(t,e)}function he(t,e){ee.$off(t,e)}function de(t,e,n){ee=t,oe(e,n||{},pe,he),ee=void 0}function ve(t,e){var n={};if(!t)return n;for(var r=0,o=t.length;r<o;r++){var i=t[r],a=i.data;if(a&&a.attrs&&a.attrs.slot&&delete a.attrs.slot,i.context!==e&&i.fnContext!==e||!a||null==a.slot)(n.default||(n.default=[])).push(i);else{var s=a.slot,c=n[s]||(n[s]=[]);"template"===i.tag?c.push.apply(c,i.children||[]):c.push(i)}}for(var u in n)n[u].every(ye)&&delete n[u];return n}function ye(t){return t.isComment&&!t.asyncFactory||" "===t.text}function me(t,e){e=e||{};for(var n=0;n<t.length;n++)Array.isArray(t[n])?me(t[n],e):e[t[n].key]=t[n].fn;return e}var ge=null;function be(t){for(;t&&(t=t.$parent);)if(t._inactive)return!0;return!1}function _e(t,e){if(e){if(t._directInactive=!1,be(t))return}else if(t._directInactive)return;if(t._inactive||null===t._inactive){t._inactive=!1;for(var n=0;n<t.$children.length;n++)_e(t.$children[n]);we(t,"activated")}}function we(t,e){var n=t.$options[e];if(n)for(var r=0,o=n.length;r<o;r++)try{n[r].call(t)}catch(n){Bt(n,t,e+" hook")}t._hasHookEvent&&t.$emit("hook:"+e)}var xe=[],Oe=[],ke={},Ae=!1,Ce=!1,Se=0;function je(){var t,e;for(Ce=!0,xe.sort(function(t,e){return t.id-e.id}),Se=0;Se<xe.length;Se++)e=(t=xe[Se]).id,ke[e]=null,t.run();var n=Oe.slice(),r=xe.slice();Se=xe.length=Oe.length=0,ke={},Ae=Ce=!1,function(t){for(var e=0;e<t.length;e++)t[e]._inactive=!0,_e(t[e],!0)}(n),function(t){var e=t.length;for(;e--;){var n=t[e],r=n.vm;r._watcher===n&&r._isMounted&&we(r,"updated")}}(r),ot&&D.devtools&&ot.emit("flush")}var Ee=0,$e=function(t,e,n,r,o){this.vm=t,o&&(t._watcher=this),t._watchers.push(this),r?(this.deep=!!r.deep,this.user=!!r.user,this.lazy=!!r.lazy,this.sync=!!r.sync):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++Ee,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new at,this.newDepIds=new at,this.expression="","function"==typeof e?this.getter=e:(this.getter=function(t){if(!q.test(t)){var e=t.split(".");return function(t){for(var n=0;n<e.length;n++){if(!t)return;t=t[e[n]]}return t}}}(e),this.getter||(this.getter=function(){})),this.value=this.lazy?void 0:this.get()};$e.prototype.get=function(){var t,e;t=this,ft.target&&lt.push(ft.target),ft.target=t;var n=this.vm;try{e=this.getter.call(n,n)}catch(t){if(!this.user)throw t;Bt(t,n,'getter for watcher "'+this.expression+'"')}finally{this.deep&&te(e),ft.target=lt.pop(),this.cleanupDeps()}return e},$e.prototype.addDep=function(t){var e=t.id;this.newDepIds.has(e)||(this.newDepIds.add(e),this.newDeps.push(t),this.depIds.has(e)||t.addSub(this))},$e.prototype.cleanupDeps=function(){for(var t=this.deps.length;t--;){var e=this.deps[t];this.newDepIds.has(e.id)||e.removeSub(this)}var n=this.depIds;this.depIds=this.newDepIds,this.newDepIds=n,this.newDepIds.clear(),n=this.deps,this.deps=this.newDeps,this.newDeps=n,this.newDeps.length=0},$e.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():function(t){var e=t.id;if(null==ke[e]){if(ke[e]=!0,Ce){for(var n=xe.length-1;n>Se&&xe[n].id>t.id;)n--;xe.splice(n+1,0,t)}else xe.push(t);Ae||(Ae=!0,Xt(je))}}(this)},$e.prototype.run=function(){if(this.active){var t=this.get();if(t!==this.value||c(t)||this.deep){var e=this.value;if(this.value=t,this.user)try{this.cb.call(this.vm,t,e)}catch(t){Bt(t,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,t,e)}}},$e.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},$e.prototype.depend=function(){for(var t=this.deps.length;t--;)this.deps[t].depend()},$e.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||m(this.vm._watchers,this);for(var t=this.deps.length;t--;)this.deps[t].removeSub(this);this.active=!1}};var Te={enumerable:!0,configurable:!0,get:$,set:$};function Me(t,e,n){Te.get=function(){return this[e][n]},Te.set=function(t){this[e][n]=t},Object.defineProperty(t,n,Te)}function Pe(t){t._watchers=[];var e=t.$options;e.props&&function(t,e){var n=t.$options.propsData||{},r=t._props={},o=t.$options._propKeys=[],i=!t.$parent;wt.shouldConvert=i;var a=function(i){o.push(i);var a=Rt(i,e,n,t);Ct(r,i,a),i in t||Me(t,"_props",i)};for(var s in e)a(s);wt.shouldConvert=!0}(t,e.props),e.methods&&function(t,e){t.$options.props;for(var n in e)t[n]=null==e[n]?$:C(e[n],t)}(t,e.methods),e.data?function(t){var e=t.$options.data;f(e=t._data="function"==typeof e?function(t,e){try{return t.call(e,e)}catch(t){return Bt(t,e,"data()"),{}}}(e,t):e||{})||(e={});var n=Object.keys(e),r=t.$options.props,o=(t.$options.methods,n.length);for(;o--;){var i=n[o];0,r&&b(r,i)||B(i)||Me(t,"_data",i)}At(e,!0)}(t):At(t._data={},!0),e.computed&&function(t,e){var n=t._computedWatchers=Object.create(null),r=rt();for(var o in e){var i=e[o],a="function"==typeof i?i:i.get;0,r||(n[o]=new $e(t,a||$,$,Le)),o in t||Ie(t,o,i)}}(t,e.computed),e.watch&&e.watch!==tt&&function(t,e){for(var n in e){var r=e[n];if(Array.isArray(r))for(var o=0;o<r.length;o++)Re(t,n,r[o]);else Re(t,n,r)}}(t,e.watch)}var Le={lazy:!0};function Ie(t,e,n){var r=!rt();"function"==typeof n?(Te.get=r?Ne(e):n,Te.set=$):(Te.get=n.get?r&&!1!==n.cache?Ne(e):n.get:$,Te.set=n.set?n.set:$),Object.defineProperty(t,e,Te)}function Ne(t){return function(){var e=this._computedWatchers&&this._computedWatchers[t];if(e)return e.dirty&&e.evaluate(),ft.target&&e.depend(),e.value}}function Re(t,e,n,r){return f(n)&&(r=n,n=n.handler),"string"==typeof n&&(n=t[n]),t.$watch(e,n,r)}function Fe(t,e){if(t){for(var n=Object.create(null),r=st?Reflect.ownKeys(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}):Object.keys(t),o=0;o<r.length;o++){for(var i=r[o],a=t[i].from,s=e;s;){if(s._provided&&a in s._provided){n[i]=s._provided[a];break}s=s.$parent}if(!s)if("default"in t[i]){var c=t[i].default;n[i]="function"==typeof c?c.call(e):c}else 0}return n}}function De(t,e){var n,r,o,a,s;if(Array.isArray(t)||"string"==typeof t)for(n=new Array(t.length),r=0,o=t.length;r<o;r++)n[r]=e(t[r],r);else if("number"==typeof t)for(n=new Array(t),r=0;r<t;r++)n[r]=e(r+1,r);else if(c(t))for(a=Object.keys(t),n=new Array(a.length),r=0,o=a.length;r<o;r++)s=a[r],n[r]=e(t[s],s,r);return i(n)&&(n._isVList=!0),n}function Be(t,e,n,r){var o,i=this.$scopedSlots[t];if(i)n=n||{},r&&(n=j(j({},r),n)),o=i(n)||e;else{var a=this.$slots[t];a&&(a._rendered=!0),o=a||e}var s=n&&n.slot;return s?this.$createElement("template",{slot:s},o):o}function Ue(t){return Nt(this.$options,"filters",t)||M}function qe(t,e,n,r){var o=D.keyCodes[e]||n;return o?Array.isArray(o)?-1===o.indexOf(t):o!==t:r?A(r)!==e:void 0}function ze(t,e,n,r,o){if(n)if(c(n)){var i;Array.isArray(n)&&(n=E(n));var a=function(a){if("class"===a||"style"===a||y(a))i=t;else{var s=t.attrs&&t.attrs.type;i=r||D.mustUseProp(e,s,a)?t.domProps||(t.domProps={}):t.attrs||(t.attrs={})}a in i||(i[a]=n[a],o&&((t.on||(t.on={}))["update:"+a]=function(t){n[a]=t}))};for(var s in n)a(s)}else;return t}function Ve(t,e){var n=this._staticTrees||(this._staticTrees=[]),r=n[t];return r&&!e?Array.isArray(r)?mt(r):yt(r):(He(r=n[t]=this.$options.staticRenderFns[t].call(this._renderProxy,null,this),"__static__"+t,!1),r)}function Ge(t,e,n){return He(t,"__once__"+e+(n?"_"+n:""),!0),t}function He(t,e,n){if(Array.isArray(t))for(var r=0;r<t.length;r++)t[r]&&"string"!=typeof t[r]&&Ke(t[r],e+"_"+r,n);else Ke(t,e,n)}function Ke(t,e,n){t.isStatic=!0,t.key=e,t.isOnce=n}function We(t,e){if(e)if(f(e)){var n=t.on=t.on?j({},t.on):{};for(var r in e){var o=n[r],i=e[r];n[r]=o?[].concat(o,i):i}}else;return t}function Qe(t){t._o=Ge,t._n=d,t._s=h,t._l=De,t._t=Be,t._q=P,t._i=L,t._m=Ve,t._f=Ue,t._k=qe,t._b=ze,t._v=vt,t._e=dt,t._u=me,t._g=We}function Je(t,e,n,o,i){var s=i.options;this.data=t,this.props=e,this.children=n,this.parent=o,this.listeners=t.on||r,this.injections=Fe(s.inject,o),this.slots=function(){return ve(n,o)};var c=Object.create(o),u=a(s._compiled),f=!u;u&&(this.$options=s,this.$slots=this.slots(),this.$scopedSlots=t.scopedSlots||r),s._scopeId?this._c=function(t,e,n,r){var i=on(c,t,e,n,r,f);return i&&(i.fnScopeId=s._scopeId,i.fnContext=o),i}:this._c=function(t,e,n,r){return on(c,t,e,n,r,f)}}function Ye(t,e){for(var n in e)t[x(n)]=e[n]}Qe(Je.prototype);var Xe={init:function(t,e,n,r){if(!t.componentInstance||t.componentInstance._isDestroyed)(t.componentInstance=function(t,e,n,r){var o={_isComponent:!0,parent:e,_parentVnode:t,_parentElm:n||null,_refElm:r||null},a=t.data.inlineTemplate;i(a)&&(o.render=a.render,o.staticRenderFns=a.staticRenderFns);return new t.componentOptions.Ctor(o)}(t,ge,n,r)).$mount(e?t.elm:void 0,e);else if(t.data.keepAlive){var o=t;Xe.prepatch(o,o)}},prepatch:function(t,e){var n=e.componentOptions;!function(t,e,n,o,i){var a=!!(i||t.$options._renderChildren||o.data.scopedSlots||t.$scopedSlots!==r);if(t.$options._parentVnode=o,t.$vnode=o,t._vnode&&(t._vnode.parent=o),t.$options._renderChildren=i,t.$attrs=o.data&&o.data.attrs||r,t.$listeners=n||r,e&&t.$options.props){wt.shouldConvert=!1;for(var s=t._props,c=t.$options._propKeys||[],u=0;u<c.length;u++){var f=c[u];s[f]=Rt(f,t.$options.props,e,t)}wt.shouldConvert=!0,t.$options.propsData=e}if(n){var l=t.$options._parentListeners;t.$options._parentListeners=n,de(t,n,l)}a&&(t.$slots=ve(i,o.context),t.$forceUpdate())}(e.componentInstance=t.componentInstance,n.propsData,n.listeners,e,n.children)},insert:function(t){var e,n=t.context,r=t.componentInstance;r._isMounted||(r._isMounted=!0,we(r,"mounted")),t.data.keepAlive&&(n._isMounted?((e=r)._inactive=!1,Oe.push(e)):_e(r,!0))},destroy:function(t){var e=t.componentInstance;e._isDestroyed||(t.data.keepAlive?function t(e,n){if(!(n&&(e._directInactive=!0,be(e))||e._inactive)){e._inactive=!0;for(var r=0;r<e.$children.length;r++)t(e.$children[r]);we(e,"deactivated")}}(e,!0):e.$destroy())}},Ze=Object.keys(Xe);function tn(t,e,n,s,u){if(!o(t)){var f=n.$options._base;if(c(t)&&(t=f.extend(t)),"function"==typeof t){var l,p,h,d,v,y,m;if(o(t.cid)&&void 0===(t=function(t,e,n){if(a(t.error)&&i(t.errorComp))return t.errorComp;if(i(t.resolved))return t.resolved;if(a(t.loading)&&i(t.loadingComp))return t.loadingComp;if(!i(t.contexts)){var r=t.contexts=[n],s=!0,u=function(){for(var t=0,e=r.length;t<e;t++)r[t].$forceUpdate()},f=I(function(n){t.resolved=ue(n,e),s||u()}),l=I(function(e){i(t.errorComp)&&(t.error=!0,u())}),p=t(f,l);return c(p)&&("function"==typeof p.then?o(t.resolved)&&p.then(f,l):i(p.component)&&"function"==typeof p.component.then&&(p.component.then(f,l),i(p.error)&&(t.errorComp=ue(p.error,e)),i(p.loading)&&(t.loadingComp=ue(p.loading,e),0===p.delay?t.loading=!0:setTimeout(function(){o(t.resolved)&&o(t.error)&&(t.loading=!0,u())},p.delay||200)),i(p.timeout)&&setTimeout(function(){o(t.resolved)&&l(null)},p.timeout))),s=!1,t.loading?t.loadingComp:t.resolved}t.contexts.push(n)}(l=t,f,n)))return p=l,h=e,d=n,v=s,y=u,(m=dt()).asyncFactory=p,m.asyncMeta={data:h,context:d,children:v,tag:y},m;e=e||{},ln(t),i(e.model)&&function(t,e){var n=t.model&&t.model.prop||"value",r=t.model&&t.model.event||"input";(e.props||(e.props={}))[n]=e.model.value;var o=e.on||(e.on={});i(o[r])?o[r]=[e.model.callback].concat(o[r]):o[r]=e.model.callback}(t.options,e);var g=function(t,e,n){var r=e.options.props;if(!o(r)){var a={},s=t.attrs,c=t.props;if(i(s)||i(c))for(var u in r){var f=A(u);ae(a,c,u,f,!0)||ae(a,s,u,f,!1)}return a}}(e,t);if(a(t.options.functional))return function(t,e,n,o,a){var s=t.options,c={},u=s.props;if(i(u))for(var f in u)c[f]=Rt(f,u,e||r);else i(n.attrs)&&Ye(c,n.attrs),i(n.props)&&Ye(c,n.props);var l=new Je(n,c,a,o,t),p=s.render.call(null,l._c,l);return p instanceof pt&&(p.fnContext=o,p.fnOptions=s,n.slot&&((p.data||(p.data={})).slot=n.slot)),p}(t,g,e,n,s);var b=e.on;if(e.on=e.nativeOn,a(t.options.abstract)){var _=e.slot;e={},_&&(e.slot=_)}!function(t){t.hook||(t.hook={});for(var e=0;e<Ze.length;e++){var n=Ze[e],r=t.hook[n],o=Xe[n];t.hook[n]=r?en(o,r):o}}(e);var w=t.options.name||u;return new pt("vue-component-"+t.cid+(w?"-"+w:""),e,void 0,void 0,void 0,n,{Ctor:t,propsData:g,listeners:b,tag:u,children:s},l)}}}function en(t,e){return function(n,r,o,i){t(n,r,o,i),e(n,r,o,i)}}var nn=1,rn=2;function on(t,e,n,r,c,u){return(Array.isArray(n)||s(n))&&(c=r,r=n,n=void 0),a(u)&&(c=rn),function(t,e,n,r,s){if(i(n)&&i(n.__ob__))return dt();i(n)&&i(n.is)&&(e=n.is);if(!e)return dt();0;Array.isArray(r)&&"function"==typeof r[0]&&((n=n||{}).scopedSlots={default:r[0]},r.length=0);s===rn?r=se(r):s===nn&&(r=function(t){for(var e=0;e<t.length;e++)if(Array.isArray(t[e]))return Array.prototype.concat.apply([],t);return t}(r));var c,u;if("string"==typeof e){var f;u=t.$vnode&&t.$vnode.ns||D.getTagNamespace(e),c=D.isReservedTag(e)?new pt(D.parsePlatformTagName(e),n,r,void 0,void 0,t):i(f=Nt(t.$options,"components",e))?tn(f,n,t,r,e):new pt(e,n,r,void 0,void 0,t)}else c=tn(e,n,t,r);return i(c)?(u&&function t(e,n,r){e.ns=n;"foreignObject"===e.tag&&(n=void 0,r=!0);if(i(e.children))for(var s=0,c=e.children.length;s<c;s++){var u=e.children[s];i(u.tag)&&(o(u.ns)||a(r))&&t(u,n,r)}}(c,u),c):dt()}(t,e,n,r,c)}var an,sn,cn,un,fn=0;function ln(t){var e=t.options;if(t.super){var n=ln(t.super);if(n!==t.superOptions){t.superOptions=n;var r=function(t){var e,n=t.options,r=t.extendOptions,o=t.sealedOptions;for(var i in n)n[i]!==o[i]&&(e||(e={}),e[i]=pn(n[i],r[i],o[i]));return e}(t);r&&j(t.extendOptions,r),(e=t.options=It(n,t.extendOptions)).name&&(e.components[e.name]=t)}}return e}function pn(t,e,n){if(Array.isArray(t)){var r=[];n=Array.isArray(n)?n:[n],e=Array.isArray(e)?e:[e];for(var o=0;o<t.length;o++)(e.indexOf(t[o])>=0||n.indexOf(t[o])<0)&&r.push(t[o]);return r}return t}function hn(t){this._init(t)}function dn(t){t.cid=0;var e=1;t.extend=function(t){t=t||{};var n=this,r=n.cid,o=t._Ctor||(t._Ctor={});if(o[r])return o[r];var i=t.name||n.options.name;var a=function(t){this._init(t)};return(a.prototype=Object.create(n.prototype)).constructor=a,a.cid=e++,a.options=It(n.options,t),a.super=n,a.options.props&&function(t){var e=t.options.props;for(var n in e)Me(t.prototype,"_props",n)}(a),a.options.computed&&function(t){var e=t.options.computed;for(var n in e)Ie(t.prototype,n,e[n])}(a),a.extend=n.extend,a.mixin=n.mixin,a.use=n.use,R.forEach(function(t){a[t]=n[t]}),i&&(a.options.components[i]=a),a.superOptions=n.options,a.extendOptions=t,a.sealedOptions=j({},a.options),o[r]=a,a}}function vn(t){return t&&(t.Ctor.options.name||t.tag)}function yn(t,e){return Array.isArray(t)?t.indexOf(e)>-1:"string"==typeof t?t.split(",").indexOf(e)>-1:!!l(t)&&t.test(e)}function mn(t,e){var n=t.cache,r=t.keys,o=t._vnode;for(var i in n){var a=n[i];if(a){var s=vn(a.componentOptions);s&&!e(s)&&gn(n,i,r,o)}}}function gn(t,e,n,r){var o=t[e];!o||r&&o.tag===r.tag||o.componentInstance.$destroy(),t[e]=null,m(n,e)}hn.prototype._init=function(t){var e,n,o,i;this._uid=fn++,this._isVue=!0,t&&t._isComponent?function(t,e){var n=t.$options=Object.create(t.constructor.options),r=e._parentVnode;n.parent=e.parent,n._parentVnode=r,n._parentElm=e._parentElm,n._refElm=e._refElm;var o=r.componentOptions;n.propsData=o.propsData,n._parentListeners=o.listeners,n._renderChildren=o.children,n._componentTag=o.tag,e.render&&(n.render=e.render,n.staticRenderFns=e.staticRenderFns)}(this,t):this.$options=It(ln(this.constructor),t||{},this),this._renderProxy=this,this._self=this,function(t){var e=t.$options,n=e.parent;if(n&&!e.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(t)}t.$parent=n,t.$root=n?n.$root:t,t.$children=[],t.$refs={},t._watcher=null,t._inactive=null,t._directInactive=!1,t._isMounted=!1,t._isDestroyed=!1,t._isBeingDestroyed=!1}(this),function(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t.$options._parentListeners;e&&de(t,e)}(this),function(t){t._vnode=null,t._staticTrees=null;var e=t.$options,n=t.$vnode=e._parentVnode,o=n&&n.context;t.$slots=ve(e._renderChildren,o),t.$scopedSlots=r,t._c=function(e,n,r,o){return on(t,e,n,r,o,!1)},t.$createElement=function(e,n,r,o){return on(t,e,n,r,o,!0)};var i=n&&n.data;Ct(t,"$attrs",i&&i.attrs||r,0,!0),Ct(t,"$listeners",e._parentListeners||r,0,!0)}(this),we(this,"beforeCreate"),(n=Fe((e=this).$options.inject,e))&&(wt.shouldConvert=!1,Object.keys(n).forEach(function(t){Ct(e,t,n[t])}),wt.shouldConvert=!0),Pe(this),(i=(o=this).$options.provide)&&(o._provided="function"==typeof i?i.call(o):i),we(this,"created"),this.$options.el&&this.$mount(this.$options.el)},function(t){var e={};e.get=function(){return this._data};var n={};n.get=function(){return this._props},Object.defineProperty(t.prototype,"$data",e),Object.defineProperty(t.prototype,"$props",n),t.prototype.$set=St,t.prototype.$delete=jt,t.prototype.$watch=function(t,e,n){if(f(e))return Re(this,t,e,n);(n=n||{}).user=!0;var r=new $e(this,t,e,n);return n.immediate&&e.call(this,r.value),function(){r.teardown()}}}(hn),sn=/^hook:/,(an=hn).prototype.$on=function(t,e){if(Array.isArray(t))for(var n=0,r=t.length;n<r;n++)this.$on(t[n],e);else(this._events[t]||(this._events[t]=[])).push(e),sn.test(t)&&(this._hasHookEvent=!0);return this},an.prototype.$once=function(t,e){var n=this;function r(){n.$off(t,r),e.apply(n,arguments)}return r.fn=e,n.$on(t,r),n},an.prototype.$off=function(t,e){if(!arguments.length)return this._events=Object.create(null),this;if(Array.isArray(t)){for(var n=0,r=t.length;n<r;n++)this.$off(t[n],e);return this}var o=this._events[t];if(!o)return this;if(!e)return this._events[t]=null,this;if(e)for(var i,a=o.length;a--;)if((i=o[a])===e||i.fn===e){o.splice(a,1);break}return this},an.prototype.$emit=function(t){var e=this._events[t];if(e){e=e.length>1?S(e):e;for(var n=S(arguments,1),r=0,o=e.length;r<o;r++)try{e[r].apply(this,n)}catch(e){Bt(e,this,'event handler for "'+t+'"')}}return this},(cn=hn).prototype._update=function(t,e){this._isMounted&&we(this,"beforeUpdate");var n=this.$el,r=this._vnode,o=ge;ge=this,this._vnode=t,r?this.$el=this.__patch__(r,t):(this.$el=this.__patch__(this.$el,t,e,!1,this.$options._parentElm,this.$options._refElm),this.$options._parentElm=this.$options._refElm=null),ge=o,n&&(n.__vue__=null),this.$el&&(this.$el.__vue__=this),this.$vnode&&this.$parent&&this.$vnode===this.$parent._vnode&&(this.$parent.$el=this.$el)},cn.prototype.$forceUpdate=function(){this._watcher&&this._watcher.update()},cn.prototype.$destroy=function(){if(!this._isBeingDestroyed){we(this,"beforeDestroy"),this._isBeingDestroyed=!0;var t=this.$parent;!t||t._isBeingDestroyed||this.$options.abstract||m(t.$children,this),this._watcher&&this._watcher.teardown();for(var e=this._watchers.length;e--;)this._watchers[e].teardown();this._data.__ob__&&this._data.__ob__.vmCount--,this._isDestroyed=!0,this.__patch__(this._vnode,null),we(this,"destroyed"),this.$off(),this.$el&&(this.$el.__vue__=null),this.$vnode&&(this.$vnode.parent=null)}},Qe((un=hn).prototype),un.prototype.$nextTick=function(t){return Xt(t,this)},un.prototype._render=function(){var t,e=this.$options,n=e.render,o=e._parentVnode;if(this._isMounted)for(var i in this.$slots){var a=this.$slots[i];(a._rendered||a[0]&&a[0].elm)&&(this.$slots[i]=mt(a,!0))}this.$scopedSlots=o&&o.data.scopedSlots||r,this.$vnode=o;try{t=n.call(this._renderProxy,this.$createElement)}catch(e){Bt(e,this,"render"),t=this._vnode}return t instanceof pt||(t=dt()),t.parent=o,t};var bn,_n,wn,xn=[String,RegExp,Array],On={KeepAlive:{name:"keep-alive",abstract:!0,props:{include:xn,exclude:xn,max:[String,Number]},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var t in this.cache)gn(this.cache,t,this.keys)},watch:{include:function(t){mn(this,function(e){return yn(t,e)})},exclude:function(t){mn(this,function(e){return!yn(t,e)})}},render:function(){var t=this.$slots.default,e=le(t),n=e&&e.componentOptions;if(n){var r=vn(n),o=this.include,i=this.exclude;if(o&&(!r||!yn(o,r))||i&&r&&yn(i,r))return e;var a=this.cache,s=this.keys,c=null==e.key?n.Ctor.cid+(n.tag?"::"+n.tag:""):e.key;a[c]?(e.componentInstance=a[c].componentInstance,m(s,c),s.push(c)):(a[c]=e,s.push(c),this.max&&s.length>parseInt(this.max)&&gn(a,s[0],s,this._vnode)),e.data.keepAlive=!0}return e||t&&t[0]}}};bn=hn,(wn={}).get=function(){return D},Object.defineProperty(bn,"config",wn),bn.util={warn:ct,extend:j,mergeOptions:It,defineReactive:Ct},bn.set=St,bn.delete=jt,bn.nextTick=Xt,bn.options=Object.create(null),R.forEach(function(t){bn.options[t+"s"]=Object.create(null)}),bn.options._base=bn,j(bn.options.components,On),bn.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=S(arguments,1);return n.unshift(this),"function"==typeof t.install?t.install.apply(t,n):"function"==typeof t&&t.apply(null,n),e.push(t),this},bn.mixin=function(t){return this.options=It(this.options,t),this},dn(bn),_n=bn,R.forEach(function(t){_n[t]=function(e,n){return n?("component"===t&&f(n)&&(n.name=n.name||e,n=this.options._base.extend(n)),"directive"===t&&"function"==typeof n&&(n={bind:n,update:n}),this.options[t+"s"][e]=n,n):this.options[t+"s"][e]}}),Object.defineProperty(hn.prototype,"$isServer",{get:rt}),Object.defineProperty(hn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),hn.version="2.5.13";var kn=v("style,class"),An=v("input,textarea,option,select,progress"),Cn=v("contenteditable,draggable,spellcheck"),Sn=v("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),jn="http://www.w3.org/1999/xlink",En=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},$n=function(t){return En(t)?t.slice(6,t.length):""},Tn=function(t){return null==t||!1===t};function Mn(t){for(var e=t.data,n=t,r=t;i(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(e=Pn(r.data,e));for(;i(n=n.parent);)n&&n.data&&(e=Pn(e,n.data));return function(t,e){if(i(t)||i(e))return Ln(t,In(e));return""}(e.staticClass,e.class)}function Pn(t,e){return{staticClass:Ln(t.staticClass,e.staticClass),class:i(t.class)?[t.class,e.class]:e.class}}function Ln(t,e){return t?e?t+" "+e:t:e||""}function In(t){return Array.isArray(t)?function(t){for(var e,n="",r=0,o=t.length;r<o;r++)i(e=In(t[r]))&&""!==e&&(n&&(n+=" "),n+=e);return n}(t):c(t)?function(t){var e="";for(var n in t)t[n]&&(e&&(e+=" "),e+=n);return e}(t):"string"==typeof t?t:""}var Nn={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"},Rn=v("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template,blockquote,iframe,tfoot"),Fn=v("svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view",!0),Dn=function(t){return Rn(t)||Fn(t)};var Bn=Object.create(null);var Un=v("text,number,password,search,email,tel,url");var qn=Object.freeze({createElement:function(t,e){var n=document.createElement(t);return"select"!==t?n:(e.data&&e.data.attrs&&void 0!==e.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n)},createElementNS:function(t,e){return document.createElementNS(Nn[t],e)},createTextNode:function(t){return document.createTextNode(t)},createComment:function(t){return document.createComment(t)},insertBefore:function(t,e,n){t.insertBefore(e,n)},removeChild:function(t,e){t.removeChild(e)},appendChild:function(t,e){t.appendChild(e)},parentNode:function(t){return t.parentNode},nextSibling:function(t){return t.nextSibling},tagName:function(t){return t.tagName},setTextContent:function(t,e){t.textContent=e},setAttribute:function(t,e,n){t.setAttribute(e,n)}}),zn={create:function(t,e){Vn(e)},update:function(t,e){t.data.ref!==e.data.ref&&(Vn(t,!0),Vn(e))},destroy:function(t){Vn(t,!0)}};function Vn(t,e){var n=t.data.ref;if(n){var r=t.context,o=t.componentInstance||t.elm,i=r.$refs;e?Array.isArray(i[n])?m(i[n],o):i[n]===o&&(i[n]=void 0):t.data.refInFor?Array.isArray(i[n])?i[n].indexOf(o)<0&&i[n].push(o):i[n]=[o]:i[n]=o}}var Gn=new pt("",{},[]),Hn=["create","activate","update","remove","destroy"];function Kn(t,e){return t.key===e.key&&(t.tag===e.tag&&t.isComment===e.isComment&&i(t.data)===i(e.data)&&function(t,e){if("input"!==t.tag)return!0;var n,r=i(n=t.data)&&i(n=n.attrs)&&n.type,o=i(n=e.data)&&i(n=n.attrs)&&n.type;return r===o||Un(r)&&Un(o)}(t,e)||a(t.isAsyncPlaceholder)&&t.asyncFactory===e.asyncFactory&&o(e.asyncFactory.error))}function Wn(t,e,n){var r,o,a={};for(r=e;r<=n;++r)i(o=t[r].key)&&(a[o]=r);return a}var Qn={create:Jn,update:Jn,destroy:function(t){Jn(t,Gn)}};function Jn(t,e){(t.data.directives||e.data.directives)&&function(t,e){var n,r,o,i=t===Gn,a=e===Gn,s=Xn(t.data.directives,t.context),c=Xn(e.data.directives,e.context),u=[],f=[];for(n in c)r=s[n],o=c[n],r?(o.oldValue=r.value,Zn(o,"update",e,t),o.def&&o.def.componentUpdated&&f.push(o)):(Zn(o,"bind",e,t),o.def&&o.def.inserted&&u.push(o));if(u.length){var l=function(){for(var n=0;n<u.length;n++)Zn(u[n],"inserted",e,t)};i?ie(e,"insert",l):l()}f.length&&ie(e,"postpatch",function(){for(var n=0;n<f.length;n++)Zn(f[n],"componentUpdated",e,t)});if(!i)for(n in s)c[n]||Zn(s[n],"unbind",t,t,a)}(t,e)}var Yn=Object.create(null);function Xn(t,e){var n,r,o,i=Object.create(null);if(!t)return i;for(n=0;n<t.length;n++)(r=t[n]).modifiers||(r.modifiers=Yn),i[(o=r,o.rawName||o.name+"."+Object.keys(o.modifiers||{}).join("."))]=r,r.def=Nt(e.$options,"directives",r.name);return i}function Zn(t,e,n,r,o){var i=t.def&&t.def[e];if(i)try{i(n.elm,t,n,r,o)}catch(r){Bt(r,n.context,"directive "+t.name+" "+e+" hook")}}var tr=[zn,Qn];function er(t,e){var n=e.componentOptions;if(!(i(n)&&!1===n.Ctor.options.inheritAttrs||o(t.data.attrs)&&o(e.data.attrs))){var r,a,s=e.elm,c=t.data.attrs||{},u=e.data.attrs||{};i(u.__ob__)&&(u=e.data.attrs=j({},u));for(r in u)a=u[r],c[r]!==a&&nr(s,r,a);(Q||Y)&&u.value!==c.value&&nr(s,"value",u.value);for(r in c)o(u[r])&&(En(r)?s.removeAttributeNS(jn,$n(r)):Cn(r)||s.removeAttribute(r))}}function nr(t,e,n){if(Sn(e))Tn(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n));else if(Cn(e))t.setAttribute(e,Tn(n)||"false"===n?"false":"true");else if(En(e))Tn(n)?t.removeAttributeNS(jn,$n(e)):t.setAttributeNS(jn,e,n);else if(Tn(n))t.removeAttribute(e);else{if(Q&&!J&&"TEXTAREA"===t.tagName&&"placeholder"===e&&!t.__ieph){var r=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",r)};t.addEventListener("input",r),t.__ieph=!0}t.setAttribute(e,n)}}var rr={create:er,update:er};function or(t,e){var n=e.elm,r=e.data,a=t.data;if(!(o(r.staticClass)&&o(r.class)&&(o(a)||o(a.staticClass)&&o(a.class)))){var s=Mn(e),c=n._transitionClasses;i(c)&&(s=Ln(s,In(c))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var ir,ar={create:or,update:or},sr="__r",cr="__c";function ur(t,e,n,r,o){var i,a,s,c,u;e=(i=e)._withTask||(i._withTask=function(){Wt=!0;var t=i.apply(null,arguments);return Wt=!1,t}),n&&(a=e,s=t,c=r,u=ir,e=function t(){null!==a.apply(null,arguments)&&fr(s,t,c,u)}),ir.addEventListener(t,e,et?{capture:r,passive:o}:r)}function fr(t,e,n,r){(r||ir).removeEventListener(t,e._withTask||e,n)}function lr(t,e){if(!o(t.data.on)||!o(e.data.on)){var n=e.data.on||{},r=t.data.on||{};ir=e.elm,function(t){if(i(t[sr])){var e=Q?"change":"input";t[e]=[].concat(t[sr],t[e]||[]),delete t[sr]}i(t[cr])&&(t.change=[].concat(t[cr],t.change||[]),delete t[cr])}(n),oe(n,r,ur,fr,e.context),ir=void 0}}var pr={create:lr,update:lr};function hr(t,e){if(!o(t.data.domProps)||!o(e.data.domProps)){var n,r,a,s,c=e.elm,u=t.data.domProps||{},f=e.data.domProps||{};i(f.__ob__)&&(f=e.data.domProps=j({},f));for(n in u)o(f[n])&&(c[n]="");for(n in f){if(r=f[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),r===u[n])continue;1===c.childNodes.length&&c.removeChild(c.childNodes[0])}if("value"===n){c._value=r;var l=o(r)?"":String(r);s=l,(a=c).composing||"OPTION"!==a.tagName&&!function(t,e){var n=!0;try{n=document.activeElement!==t}catch(t){}return n&&t.value!==e}(a,s)&&!function(t,e){var n=t.value,r=t._vModifiers;if(i(r)){if(r.lazy)return!1;if(r.number)return d(n)!==d(e);if(r.trim)return n.trim()!==e.trim()}return n!==e}(a,s)||(c.value=l)}else c[n]=r}}}var dr={create:hr,update:hr},vr=_(function(t){var e={},n=/:(.+)/;return t.split(/;(?![^(]*\))/g).forEach(function(t){if(t){var r=t.split(n);r.length>1&&(e[r[0].trim()]=r[1].trim())}}),e});function yr(t){var e=mr(t.style);return t.staticStyle?j(t.staticStyle,e):e}function mr(t){return Array.isArray(t)?E(t):"string"==typeof t?vr(t):t}var gr,br=/^--/,_r=/\s*!important$/,wr=function(t,e,n){if(br.test(e))t.style.setProperty(e,n);else if(_r.test(n))t.style.setProperty(e,n.replace(_r,""),"important");else{var r=Or(e);if(Array.isArray(n))for(var o=0,i=n.length;o<i;o++)t.style[r]=n[o];else t.style[r]=n}},xr=["Webkit","Moz","ms"],Or=_(function(t){if(gr=gr||document.createElement("div").style,"filter"!==(t=x(t))&&t in gr)return t;for(var e=t.charAt(0).toUpperCase()+t.slice(1),n=0;n<xr.length;n++){var r=xr[n]+e;if(r in gr)return r}});function kr(t,e){var n=e.data,r=t.data;if(!(o(n.staticStyle)&&o(n.style)&&o(r.staticStyle)&&o(r.style))){var a,s,c=e.elm,u=r.staticStyle,f=r.normalizedStyle||r.style||{},l=u||f,p=mr(e.data.style)||{};e.data.normalizedStyle=i(p.__ob__)?j({},p):p;var h=function(t,e){var n,r={};if(e)for(var o=t;o.componentInstance;)(o=o.componentInstance._vnode)&&o.data&&(n=yr(o.data))&&j(r,n);(n=yr(t.data))&&j(r,n);for(var i=t;i=i.parent;)i.data&&(n=yr(i.data))&&j(r,n);return r}(e,!0);for(s in l)o(h[s])&&wr(c,s,"");for(s in h)(a=h[s])!==l[s]&&wr(c,s,null==a?"":a)}}var Ar={create:kr,update:kr};function Cr(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(/\s+/).forEach(function(e){return t.classList.add(e)}):t.classList.add(e);else{var n=" "+(t.getAttribute("class")||"")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function Sr(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(/\s+/).forEach(function(e){return t.classList.remove(e)}):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" "+(t.getAttribute("class")||"")+" ",r=" "+e+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?t.setAttribute("class",n):t.removeAttribute("class")}}function jr(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&j(e,Er(t.name||"v")),j(e,t),e}return"string"==typeof t?Er(t):void 0}}var Er=_(function(t){return{enterClass:t+"-enter",enterToClass:t+"-enter-to",enterActiveClass:t+"-enter-active",leaveClass:t+"-leave",leaveToClass:t+"-leave-to",leaveActiveClass:t+"-leave-active"}}),$r=G&&!J,Tr="transition",Mr="animation",Pr="transition",Lr="transitionend",Ir="animation",Nr="animationend";$r&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Pr="WebkitTransition",Lr="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Ir="WebkitAnimation",Nr="webkitAnimationEnd"));var Rr=G?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function Fr(t){Rr(function(){Rr(t)})}function Dr(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),Cr(t,e))}function Br(t,e){t._transitionClasses&&m(t._transitionClasses,e),Sr(t,e)}function Ur(t,e,n){var r=zr(t,e),o=r.type,i=r.timeout,a=r.propCount;if(!o)return n();var s=o===Tr?Lr:Nr,c=0,u=function(){t.removeEventListener(s,f),n()},f=function(e){e.target===t&&++c>=a&&u()};setTimeout(function(){c<a&&u()},i+1),t.addEventListener(s,f)}var qr=/\b(transform|all)(,|$)/;function zr(t,e){var n,r=window.getComputedStyle(t),o=r[Pr+"Delay"].split(", "),i=r[Pr+"Duration"].split(", "),a=Vr(o,i),s=r[Ir+"Delay"].split(", "),c=r[Ir+"Duration"].split(", "),u=Vr(s,c),f=0,l=0;return e===Tr?a>0&&(n=Tr,f=a,l=i.length):e===Mr?u>0&&(n=Mr,f=u,l=c.length):l=(n=(f=Math.max(a,u))>0?a>u?Tr:Mr:null)?n===Tr?i.length:c.length:0,{type:n,timeout:f,propCount:l,hasTransform:n===Tr&&qr.test(r[Pr+"Property"])}}function Vr(t,e){for(;t.length<e.length;)t=t.concat(t);return Math.max.apply(null,e.map(function(e,n){return Gr(e)+Gr(t[n])}))}function Gr(t){return 1e3*Number(t.slice(0,-1))}function Hr(t,e){var n=t.elm;i(n._leaveCb)&&(n._leaveCb.cancelled=!0,n._leaveCb());var r=jr(t.data.transition);if(!o(r)&&!i(n._enterCb)&&1===n.nodeType){for(var a=r.css,s=r.type,u=r.enterClass,f=r.enterToClass,l=r.enterActiveClass,p=r.appearClass,h=r.appearToClass,v=r.appearActiveClass,y=r.beforeEnter,m=r.enter,g=r.afterEnter,b=r.enterCancelled,_=r.beforeAppear,w=r.appear,x=r.afterAppear,O=r.appearCancelled,k=r.duration,A=ge,C=ge.$vnode;C&&C.parent;)A=(C=C.parent).context;var S=!A._isMounted||!t.isRootInsert;if(!S||w||""===w){var j=S&&p?p:u,E=S&&v?v:l,$=S&&h?h:f,T=S?_||y:y,M=S&&"function"==typeof w?w:m,P=S?x||g:g,L=S?O||b:b,N=d(c(k)?k.enter:k);0;var R=!1!==a&&!J,F=Qr(M),D=n._enterCb=I(function(){R&&(Br(n,$),Br(n,E)),D.cancelled?(R&&Br(n,j),L&&L(n)):P&&P(n),n._enterCb=null});t.data.show||ie(t,"insert",function(){var e=n.parentNode,r=e&&e._pending&&e._pending[t.key];r&&r.tag===t.tag&&r.elm._leaveCb&&r.elm._leaveCb(),M&&M(n,D)}),T&&T(n),R&&(Dr(n,j),Dr(n,E),Fr(function(){Dr(n,$),Br(n,j),D.cancelled||F||(Wr(N)?setTimeout(D,N):Ur(n,s,D))})),t.data.show&&(e&&e(),M&&M(n,D)),R||F||D()}}}function Kr(t,e){var n=t.elm;i(n._enterCb)&&(n._enterCb.cancelled=!0,n._enterCb());var r=jr(t.data.transition);if(o(r)||1!==n.nodeType)return e();if(!i(n._leaveCb)){var a=r.css,s=r.type,u=r.leaveClass,f=r.leaveToClass,l=r.leaveActiveClass,p=r.beforeLeave,h=r.leave,v=r.afterLeave,y=r.leaveCancelled,m=r.delayLeave,g=r.duration,b=!1!==a&&!J,_=Qr(h),w=d(c(g)?g.leave:g);0;var x=n._leaveCb=I(function(){n.parentNode&&n.parentNode._pending&&(n.parentNode._pending[t.key]=null),b&&(Br(n,f),Br(n,l)),x.cancelled?(b&&Br(n,u),y&&y(n)):(e(),v&&v(n)),n._leaveCb=null});m?m(O):O()}function O(){x.cancelled||(t.data.show||((n.parentNode._pending||(n.parentNode._pending={}))[t.key]=t),p&&p(n),b&&(Dr(n,u),Dr(n,l),Fr(function(){Dr(n,f),Br(n,u),x.cancelled||_||(Wr(w)?setTimeout(x,w):Ur(n,s,x))})),h&&h(n,x),b||_||x())}}function Wr(t){return"number"==typeof t&&!isNaN(t)}function Qr(t){if(o(t))return!1;var e=t.fns;return i(e)?Qr(Array.isArray(e)?e[0]:e):(t._length||t.length)>1}function Jr(t,e){!0!==e.data.show&&Hr(e)}var Yr=function(t){var e,n,r={},c=t.modules,u=t.nodeOps;for(e=0;e<Hn.length;++e)for(r[Hn[e]]=[],n=0;n<c.length;++n)i(c[n][Hn[e]])&&r[Hn[e]].push(c[n][Hn[e]]);function f(t){var e=u.parentNode(t);i(e)&&u.removeChild(e,t)}function l(t,e,n,o,s){if(t.isRootInsert=!s,!function(t,e,n,o){var s=t.data;if(i(s)){var c=i(t.componentInstance)&&s.keepAlive;if(i(s=s.hook)&&i(s=s.init)&&s(t,!1,n,o),i(t.componentInstance))return p(t,e),a(c)&&function(t,e,n,o){for(var a,s=t;s.componentInstance;)if(s=s.componentInstance._vnode,i(a=s.data)&&i(a=a.transition)){for(a=0;a<r.activate.length;++a)r.activate[a](Gn,s);e.push(s);break}h(n,t.elm,o)}(t,e,n,o),!0}}(t,e,n,o)){var c=t.data,f=t.children,l=t.tag;i(l)?(t.elm=t.ns?u.createElementNS(t.ns,l):u.createElement(l,t),g(t),d(t,f,e),i(c)&&m(t,e),h(n,t.elm,o)):a(t.isComment)?(t.elm=u.createComment(t.text),h(n,t.elm,o)):(t.elm=u.createTextNode(t.text),h(n,t.elm,o))}}function p(t,e){i(t.data.pendingInsert)&&(e.push.apply(e,t.data.pendingInsert),t.data.pendingInsert=null),t.elm=t.componentInstance.$el,y(t)?(m(t,e),g(t)):(Vn(t),e.push(t))}function h(t,e,n){i(t)&&(i(n)?n.parentNode===t&&u.insertBefore(t,e,n):u.appendChild(t,e))}function d(t,e,n){if(Array.isArray(e))for(var r=0;r<e.length;++r)l(e[r],n,t.elm,null,!0);else s(t.text)&&u.appendChild(t.elm,u.createTextNode(String(t.text)))}function y(t){for(;t.componentInstance;)t=t.componentInstance._vnode;return i(t.tag)}function m(t,n){for(var o=0;o<r.create.length;++o)r.create[o](Gn,t);i(e=t.data.hook)&&(i(e.create)&&e.create(Gn,t),i(e.insert)&&n.push(t))}function g(t){var e;if(i(e=t.fnScopeId))u.setAttribute(t.elm,e,"");else for(var n=t;n;)i(e=n.context)&&i(e=e.$options._scopeId)&&u.setAttribute(t.elm,e,""),n=n.parent;i(e=ge)&&e!==t.context&&e!==t.fnContext&&i(e=e.$options._scopeId)&&u.setAttribute(t.elm,e,"")}function b(t,e,n,r,o,i){for(;r<=o;++r)l(n[r],i,t,e)}function _(t){var e,n,o=t.data;if(i(o))for(i(e=o.hook)&&i(e=e.destroy)&&e(t),e=0;e<r.destroy.length;++e)r.destroy[e](t);if(i(e=t.children))for(n=0;n<t.children.length;++n)_(t.children[n])}function w(t,e,n,r){for(;n<=r;++n){var o=e[n];i(o)&&(i(o.tag)?(x(o),_(o)):f(o.elm))}}function x(t,e){if(i(e)||i(t.data)){var n,o=r.remove.length+1;for(i(e)?e.listeners+=o:e=function(t,e){function n(){0==--n.listeners&&f(t)}return n.listeners=e,n}(t.elm,o),i(n=t.componentInstance)&&i(n=n._vnode)&&i(n.data)&&x(n,e),n=0;n<r.remove.length;++n)r.remove[n](t,e);i(n=t.data.hook)&&i(n=n.remove)?n(t,e):e()}else f(t.elm)}function O(t,e,n,r){for(var o=n;o<r;o++){var a=e[o];if(i(a)&&Kn(t,a))return o}}function k(t,e,n,s){if(t!==e){var c=e.elm=t.elm;if(a(t.isAsyncPlaceholder))i(e.asyncFactory.resolved)?S(t.elm,e,n):e.isAsyncPlaceholder=!0;else if(a(e.isStatic)&&a(t.isStatic)&&e.key===t.key&&(a(e.isCloned)||a(e.isOnce)))e.componentInstance=t.componentInstance;else{var f,p=e.data;i(p)&&i(f=p.hook)&&i(f=f.prepatch)&&f(t,e);var h=t.children,d=e.children;if(i(p)&&y(e)){for(f=0;f<r.update.length;++f)r.update[f](t,e);i(f=p.hook)&&i(f=f.update)&&f(t,e)}o(e.text)?i(h)&&i(d)?h!==d&&function(t,e,n,r,a){for(var s,c,f,p=0,h=0,d=e.length-1,v=e[0],y=e[d],m=n.length-1,g=n[0],_=n[m],x=!a;p<=d&&h<=m;)o(v)?v=e[++p]:o(y)?y=e[--d]:Kn(v,g)?(k(v,g,r),v=e[++p],g=n[++h]):Kn(y,_)?(k(y,_,r),y=e[--d],_=n[--m]):Kn(v,_)?(k(v,_,r),x&&u.insertBefore(t,v.elm,u.nextSibling(y.elm)),v=e[++p],_=n[--m]):Kn(y,g)?(k(y,g,r),x&&u.insertBefore(t,y.elm,v.elm),y=e[--d],g=n[++h]):(o(s)&&(s=Wn(e,p,d)),o(c=i(g.key)?s[g.key]:O(g,e,p,d))?l(g,r,t,v.elm):Kn(f=e[c],g)?(k(f,g,r),e[c]=void 0,x&&u.insertBefore(t,f.elm,v.elm)):l(g,r,t,v.elm),g=n[++h]);p>d?b(t,o(n[m+1])?null:n[m+1].elm,n,h,m,r):h>m&&w(0,e,p,d)}(c,h,d,n,s):i(d)?(i(t.text)&&u.setTextContent(c,""),b(c,null,d,0,d.length-1,n)):i(h)?w(0,h,0,h.length-1):i(t.text)&&u.setTextContent(c,""):t.text!==e.text&&u.setTextContent(c,e.text),i(p)&&i(f=p.hook)&&i(f=f.postpatch)&&f(t,e)}}}function A(t,e,n){if(a(n)&&i(t.parent))t.parent.data.pendingInsert=e;else for(var r=0;r<e.length;++r)e[r].data.hook.insert(e[r])}var C=v("attrs,class,staticClass,staticStyle,key");function S(t,e,n,r){var o,s=e.tag,c=e.data,u=e.children;if(r=r||c&&c.pre,e.elm=t,a(e.isComment)&&i(e.asyncFactory))return e.isAsyncPlaceholder=!0,!0;if(i(c)&&(i(o=c.hook)&&i(o=o.init)&&o(e,!0),i(o=e.componentInstance)))return p(e,n),!0;if(i(s)){if(i(u))if(t.hasChildNodes())if(i(o=c)&&i(o=o.domProps)&&i(o=o.innerHTML)){if(o!==t.innerHTML)return!1}else{for(var f=!0,l=t.firstChild,h=0;h<u.length;h++){if(!l||!S(l,u[h],n,r)){f=!1;break}l=l.nextSibling}if(!f||l)return!1}else d(e,u,n);if(i(c)){var v=!1;for(var y in c)if(!C(y)){v=!0,m(e,n);break}!v&&c.class&&te(c.class)}}else t.data!==e.text&&(t.data=e.text);return!0}return function(t,e,n,s,c,f){if(!o(e)){var p,h=!1,d=[];if(o(t))h=!0,l(e,d,c,f);else{var v=i(t.nodeType);if(!v&&Kn(t,e))k(t,e,d,s);else{if(v){if(1===t.nodeType&&t.hasAttribute(N)&&(t.removeAttribute(N),n=!0),a(n)&&S(t,e,d))return A(e,d,!0),t;p=t,t=new pt(u.tagName(p).toLowerCase(),{},[],void 0,p)}var m=t.elm,g=u.parentNode(m);if(l(e,d,m._leaveCb?null:g,u.nextSibling(m)),i(e.parent))for(var b=e.parent,x=y(e);b;){for(var O=0;O<r.destroy.length;++O)r.destroy[O](b);if(b.elm=e.elm,x){for(var C=0;C<r.create.length;++C)r.create[C](Gn,b);var j=b.data.hook.insert;if(j.merged)for(var E=1;E<j.fns.length;E++)j.fns[E]()}else Vn(b);b=b.parent}i(g)?w(0,[t],0,0):i(t.tag)&&_(t)}}return A(e,d,h),e.elm}i(t)&&_(t)}}({nodeOps:qn,modules:[rr,ar,pr,dr,Ar,G?{create:Jr,activate:Jr,remove:function(t,e){!0!==t.data.show?Kr(t,e):e()}}:{}].concat(tr)});J&&document.addEventListener("selectionchange",function(){var t=document.activeElement;t&&t.vmodel&&io(t,"input")});var Xr={inserted:function(t,e,n,r){"select"===n.tag?(r.elm&&!r.elm._vOptions?ie(n,"postpatch",function(){Xr.componentUpdated(t,e,n)}):Zr(t,e,n.context),t._vOptions=[].map.call(t.options,no)):("textarea"===n.tag||Un(t.type))&&(t._vModifiers=e.modifiers,e.modifiers.lazy||(t.addEventListener("change",oo),X||(t.addEventListener("compositionstart",ro),t.addEventListener("compositionend",oo)),J&&(t.vmodel=!0)))},componentUpdated:function(t,e,n){if("select"===n.tag){Zr(t,e,n.context);var r=t._vOptions,o=t._vOptions=[].map.call(t.options,no);if(o.some(function(t,e){return!P(t,r[e])}))(t.multiple?e.value.some(function(t){return eo(t,o)}):e.value!==e.oldValue&&eo(e.value,o))&&io(t,"change")}}};function Zr(t,e,n){to(t,e,n),(Q||Y)&&setTimeout(function(){to(t,e,n)},0)}function to(t,e,n){var r=e.value,o=t.multiple;if(!o||Array.isArray(r)){for(var i,a,s=0,c=t.options.length;s<c;s++)if(a=t.options[s],o)i=L(r,no(a))>-1,a.selected!==i&&(a.selected=i);else if(P(no(a),r))return void(t.selectedIndex!==s&&(t.selectedIndex=s));o||(t.selectedIndex=-1)}}function eo(t,e){return e.every(function(e){return!P(e,t)})}function no(t){return"_value"in t?t._value:t.value}function ro(t){t.target.composing=!0}function oo(t){t.target.composing&&(t.target.composing=!1,io(t.target,"input"))}function io(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function ao(t){return!t.componentInstance||t.data&&t.data.transition?t:ao(t.componentInstance._vnode)}var so={model:Xr,show:{bind:function(t,e,n){var r=e.value,o=(n=ao(n)).data&&n.data.transition,i=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;r&&o?(n.data.show=!0,Hr(n,function(){t.style.display=i})):t.style.display=r?i:"none"},update:function(t,e,n){var r=e.value;r!==e.oldValue&&((n=ao(n)).data&&n.data.transition?(n.data.show=!0,r?Hr(n,function(){t.style.display=t.__vOriginalDisplay}):Kr(n,function(){t.style.display="none"})):t.style.display=r?t.__vOriginalDisplay:"none")},unbind:function(t,e,n,r,o){o||(t.style.display=t.__vOriginalDisplay)}}},co={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function uo(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?uo(le(e.children)):t}function fo(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];var o=n._parentListeners;for(var i in o)e[x(i)]=o[i];return e}function lo(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}var po={name:"transition",props:co,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(function(t){return t.tag||fe(t)})).length){0;var r=this.mode;0;var o=n[0];if(function(t){for(;t=t.parent;)if(t.data.transition)return!0}(this.$vnode))return o;var i=uo(o);if(!i)return o;if(this._leaving)return lo(t,o);var a="__transition-"+this._uid+"-";i.key=null==i.key?i.isComment?a+"comment":a+i.tag:s(i.key)?0===String(i.key).indexOf(a)?i.key:a+i.key:i.key;var c,u,f=(i.data||(i.data={})).transition=fo(this),l=this._vnode,p=uo(l);if(i.data.directives&&i.data.directives.some(function(t){return"show"===t.name})&&(i.data.show=!0),p&&p.data&&(c=i,(u=p).key!==c.key||u.tag!==c.tag)&&!fe(p)&&(!p.componentInstance||!p.componentInstance._vnode.isComment)){var h=p.data.transition=j({},f);if("out-in"===r)return this._leaving=!0,ie(h,"afterLeave",function(){e._leaving=!1,e.$forceUpdate()}),lo(t,o);if("in-out"===r){if(fe(i))return l;var d,v=function(){d()};ie(f,"afterEnter",v),ie(f,"enterCancelled",v),ie(h,"delayLeave",function(t){d=t})}}return o}}},ho=j({tag:String,moveClass:String},co);function vo(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function yo(t){t.data.newPos=t.elm.getBoundingClientRect()}function mo(t){var e=t.data.pos,n=t.data.newPos,r=e.left-n.left,o=e.top-n.top;if(r||o){t.data.moved=!0;var i=t.elm.style;i.transform=i.WebkitTransform="translate("+r+"px,"+o+"px)",i.transitionDuration="0s"}}delete ho.mode;var go={Transition:po,TransitionGroup:{props:ho,render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,o=this.$slots.default||[],i=this.children=[],a=fo(this),s=0;s<o.length;s++){var c=o[s];if(c.tag)if(null!=c.key&&0!==String(c.key).indexOf("__vlist"))i.push(c),n[c.key]=c,(c.data||(c.data={})).transition=a;else;}if(r){for(var u=[],f=[],l=0;l<r.length;l++){var p=r[l];p.data.transition=a,p.data.pos=p.elm.getBoundingClientRect(),n[p.key]?u.push(p):f.push(p)}this.kept=t(e,null,u),this.removed=f}return t(e,null,i)},beforeUpdate:function(){this.__patch__(this._vnode,this.kept,!1,!0),this._vnode=this.kept},updated:function(){var t=this.prevChildren,e=this.moveClass||(this.name||"v")+"-move";t.length&&this.hasMove(t[0].elm,e)&&(t.forEach(vo),t.forEach(yo),t.forEach(mo),this._reflow=document.body.offsetHeight,t.forEach(function(t){if(t.data.moved){var n=t.elm,r=n.style;Dr(n,e),r.transform=r.WebkitTransform=r.transitionDuration="",n.addEventListener(Lr,n._moveCb=function t(r){r&&!/transform$/.test(r.propertyName)||(n.removeEventListener(Lr,t),n._moveCb=null,Br(n,e))})}}))},methods:{hasMove:function(t,e){if(!$r)return!1;if(this._hasMove)return this._hasMove;var n=t.cloneNode();t._transitionClasses&&t._transitionClasses.forEach(function(t){Sr(n,t)}),Cr(n,e),n.style.display="none",this.$el.appendChild(n);var r=zr(n);return this.$el.removeChild(n),this._hasMove=r.hasTransform}}}};hn.config.mustUseProp=function(t,e,n){return"value"===n&&An(t)&&"button"!==e||"selected"===n&&"option"===t||"checked"===n&&"input"===t||"muted"===n&&"video"===t},hn.config.isReservedTag=Dn,hn.config.isReservedAttr=kn,hn.config.getTagNamespace=function(t){return Fn(t)?"svg":"math"===t?"math":void 0},hn.config.isUnknownElement=function(t){if(!G)return!0;if(Dn(t))return!1;if(t=t.toLowerCase(),null!=Bn[t])return Bn[t];var e=document.createElement(t);return t.indexOf("-")>-1?Bn[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:Bn[t]=/HTMLUnknownElement/.test(e.toString())},j(hn.options.directives,so),j(hn.options.components,go),hn.prototype.__patch__=G?Yr:$,hn.prototype.$mount=function(t,e){return t=t&&G?function(t){if("string"==typeof t){var e=document.querySelector(t);return e||document.createElement("div")}return t}(t):void 0,r=t,o=e,(n=this).$el=r,n.$options.render||(n.$options.render=dt),we(n,"beforeMount"),new $e(n,function(){n._update(n._render(),o)},$,null,!0),o=!1,null==n.$vnode&&(n._isMounted=!0,we(n,"mounted")),n;var n,r,o},hn.nextTick(function(){D.devtools&&ot&&ot.emit("init",hn)},0),e.default=hn}.call(e,n("DuR2"),n("162o").setImmediate)},"/bQp":function(t,e){t.exports={}},"/n6Q":function(t,e,n){n("zQR9"),n("+tPU"),t.exports=n("Kh4W").f("iterator")},"/ocq":function(t,e,n){"use strict";function r(t,e){0}function o(t){return Object.prototype.toString.call(t).indexOf("Error")>-1}Object.defineProperty(e,"__esModule",{value:!0});var i={name:"router-view",functional:!0,props:{name:{type:String,default:"default"}},render:function(t,e){var n=e.props,r=e.children,o=e.parent,i=e.data;i.routerView=!0;for(var a=o.$createElement,s=n.name,c=o.$route,u=o._routerViewCache||(o._routerViewCache={}),f=0,l=!1;o&&o._routerRoot!==o;)o.$vnode&&o.$vnode.data.routerView&&f++,o._inactive&&(l=!0),o=o.$parent;if(i.routerViewDepth=f,l)return a(u[s],i,r);var p=c.matched[f];if(!p)return u[s]=null,a();var h=u[s]=p.components[s];i.registerRouteInstance=function(t,e){var n=p.instances[s];(e&&n!==t||!e&&n===t)&&(p.instances[s]=e)},(i.hook||(i.hook={})).prepatch=function(t,e){p.instances[s]=e.componentInstance};var d=i.props=function(t,e){switch(typeof e){case"undefined":return;case"object":return e;case"function":return e(t);case"boolean":return e?t.params:void 0;default:0}}(c,p.props&&p.props[s]);if(d){d=i.props=function(t,e){for(var n in e)t[n]=e[n];return t}({},d);var v=i.attrs=i.attrs||{};for(var y in d)h.props&&y in h.props||(v[y]=d[y],delete d[y])}return a(h,i,r)}};var a=/[!'()*]/g,s=function(t){return"%"+t.charCodeAt(0).toString(16)},c=/%2C/g,u=function(t){return encodeURIComponent(t).replace(a,s).replace(c,",")},f=decodeURIComponent;function l(t){var e={};return(t=t.trim().replace(/^(\?|#|&)/,""))?(t.split("&").forEach(function(t){var n=t.replace(/\+/g," ").split("="),r=f(n.shift()),o=n.length>0?f(n.join("=")):null;void 0===e[r]?e[r]=o:Array.isArray(e[r])?e[r].push(o):e[r]=[e[r],o]}),e):e}function p(t){var e=t?Object.keys(t).map(function(e){var n=t[e];if(void 0===n)return"";if(null===n)return u(e);if(Array.isArray(n)){var r=[];return n.forEach(function(t){void 0!==t&&(null===t?r.push(u(e)):r.push(u(e)+"="+u(t)))}),r.join("&")}return u(e)+"="+u(n)}).filter(function(t){return t.length>0}).join("&"):null;return e?"?"+e:""}var h=/\/?$/;function d(t,e,n,r){var o=r&&r.options.stringifyQuery,i=e.query||{};try{i=v(i)}catch(t){}var a={name:e.name||t&&t.name,meta:t&&t.meta||{},path:e.path||"/",hash:e.hash||"",query:i,params:e.params||{},fullPath:m(e,o),matched:t?function(t){var e=[];for(;t;)e.unshift(t),t=t.parent;return e}(t):[]};return n&&(a.redirectedFrom=m(n,o)),Object.freeze(a)}function v(t){if(Array.isArray(t))return t.map(v);if(t&&"object"==typeof t){var e={};for(var n in t)e[n]=v(t[n]);return e}return t}var y=d(null,{path:"/"});function m(t,e){var n=t.path,r=t.query;void 0===r&&(r={});var o=t.hash;return void 0===o&&(o=""),(n||"/")+(e||p)(r)+o}function g(t,e){return e===y?t===e:!!e&&(t.path&&e.path?t.path.replace(h,"")===e.path.replace(h,"")&&t.hash===e.hash&&b(t.query,e.query):!(!t.name||!e.name)&&(t.name===e.name&&t.hash===e.hash&&b(t.query,e.query)&&b(t.params,e.params)))}function b(t,e){if(void 0===t&&(t={}),void 0===e&&(e={}),!t||!e)return t===e;var n=Object.keys(t),r=Object.keys(e);return n.length===r.length&&n.every(function(n){var r=t[n],o=e[n];return"object"==typeof r&&"object"==typeof o?b(r,o):String(r)===String(o)})}var _,w=[String,Object],x=[String,Array],O={name:"router-link",props:{to:{type:w,required:!0},tag:{type:String,default:"a"},exact:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,event:{type:x,default:"click"}},render:function(t){var e,n,r=this,o=this.$router,i=this.$route,a=o.resolve(this.to,i,this.append),s=a.location,c=a.route,u=a.href,f={},l=o.options.linkActiveClass,p=o.options.linkExactActiveClass,v=null==l?"router-link-active":l,y=null==p?"router-link-exact-active":p,m=null==this.activeClass?v:this.activeClass,b=null==this.exactActiveClass?y:this.exactActiveClass,w=s.path?d(null,s,null,o):c;f[b]=g(i,w),f[m]=this.exact?f[b]:(n=w,0===(e=i).path.replace(h,"/").indexOf(n.path.replace(h,"/"))&&(!n.hash||e.hash===n.hash)&&function(t,e){for(var n in e)if(!(n in t))return!1;return!0}(e.query,n.query));var x=function(t){k(t)&&(r.replace?o.replace(s):o.push(s))},O={click:k};Array.isArray(this.event)?this.event.forEach(function(t){O[t]=x}):O[this.event]=x;var A={class:f};if("a"===this.tag)A.on=O,A.attrs={href:u};else{var C=function t(e){if(e)for(var n,r=0;r<e.length;r++){if("a"===(n=e[r]).tag)return n;if(n.children&&(n=t(n.children)))return n}}(this.$slots.default);if(C){C.isStatic=!1;var S=_.util.extend;(C.data=S({},C.data)).on=O,(C.data.attrs=S({},C.data.attrs)).href=u}else A.on=O}return t(this.tag,A,this.$slots.default)}};function k(t){if(!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey||t.defaultPrevented||void 0!==t.button&&0!==t.button)){if(t.currentTarget&&t.currentTarget.getAttribute){var e=t.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(e))return}return t.preventDefault&&t.preventDefault(),!0}}function A(t){if(!A.installed||_!==t){A.installed=!0,_=t;var e=function(t){return void 0!==t},n=function(t,n){var r=t.$options._parentVnode;e(r)&&e(r=r.data)&&e(r=r.registerRouteInstance)&&r(t,n)};t.mixin({beforeCreate:function(){e(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),t.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,n(this,this)},destroyed:function(){n(this)}}),Object.defineProperty(t.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(t.prototype,"$route",{get:function(){return this._routerRoot._route}}),t.component("router-view",i),t.component("router-link",O);var r=t.config.optionMergeStrategies;r.beforeRouteEnter=r.beforeRouteLeave=r.beforeRouteUpdate=r.created}}var C="undefined"!=typeof window;function S(t,e,n){var r=t.charAt(0);if("/"===r)return t;if("?"===r||"#"===r)return e+t;var o=e.split("/");n&&o[o.length-1]||o.pop();for(var i=t.replace(/^\//,"").split("/"),a=0;a<i.length;a++){var s=i[a];".."===s?o.pop():"."!==s&&o.push(s)}return""!==o[0]&&o.unshift(""),o.join("/")}function j(t){return t.replace(/\/\//g,"/")}var E=Array.isArray||function(t){return"[object Array]"==Object.prototype.toString.call(t)},$=z,T=N,M=function(t,e){return F(N(t,e))},P=F,L=q,I=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function N(t,e){for(var n,r,o=[],i=0,a=0,s="",c=e&&e.delimiter||"/";null!=(n=I.exec(t));){var u=n[0],f=n[1],l=n.index;if(s+=t.slice(a,l),a=l+u.length,f)s+=f[1];else{var p=t[a],h=n[2],d=n[3],v=n[4],y=n[5],m=n[6],g=n[7];s&&(o.push(s),s="");var b=null!=h&&null!=p&&p!==h,_="+"===m||"*"===m,w="?"===m||"*"===m,x=n[2]||c,O=v||y;o.push({name:d||i++,prefix:h||"",delimiter:x,optional:w,repeat:_,partial:b,asterisk:!!g,pattern:O?(r=O,r.replace(/([=!:$\/()])/g,"\\$1")):g?".*":"[^"+D(x)+"]+?"})}}return a<t.length&&(s+=t.substr(a)),s&&o.push(s),o}function R(t){return encodeURI(t).replace(/[\/?#]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function F(t){for(var e=new Array(t.length),n=0;n<t.length;n++)"object"==typeof t[n]&&(e[n]=new RegExp("^(?:"+t[n].pattern+")$"));return function(n,r){for(var o="",i=n||{},a=(r||{}).pretty?R:encodeURIComponent,s=0;s<t.length;s++){var c=t[s];if("string"!=typeof c){var u,f=i[c.name];if(null==f){if(c.optional){c.partial&&(o+=c.prefix);continue}throw new TypeError('Expected "'+c.name+'" to be defined')}if(E(f)){if(!c.repeat)throw new TypeError('Expected "'+c.name+'" to not repeat, but received `'+JSON.stringify(f)+"`");if(0===f.length){if(c.optional)continue;throw new TypeError('Expected "'+c.name+'" to not be empty')}for(var l=0;l<f.length;l++){if(u=a(f[l]),!e[s].test(u))throw new TypeError('Expected all "'+c.name+'" to match "'+c.pattern+'", but received `'+JSON.stringify(u)+"`");o+=(0===l?c.prefix:c.delimiter)+u}}else{if(u=c.asterisk?encodeURI(f).replace(/[?#]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()}):a(f),!e[s].test(u))throw new TypeError('Expected "'+c.name+'" to match "'+c.pattern+'", but received "'+u+'"');o+=c.prefix+u}}else o+=c}return o}}function D(t){return t.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function B(t,e){return t.keys=e,t}function U(t){return t.sensitive?"":"i"}function q(t,e,n){E(e)||(n=e||n,e=[]);for(var r=(n=n||{}).strict,o=!1!==n.end,i="",a=0;a<t.length;a++){var s=t[a];if("string"==typeof s)i+=D(s);else{var c=D(s.prefix),u="(?:"+s.pattern+")";e.push(s),s.repeat&&(u+="(?:"+c+u+")*"),i+=u=s.optional?s.partial?c+"("+u+")?":"(?:"+c+"("+u+"))?":c+"("+u+")"}}var f=D(n.delimiter||"/"),l=i.slice(-f.length)===f;return r||(i=(l?i.slice(0,-f.length):i)+"(?:"+f+"(?=$))?"),i+=o?"$":r&&l?"":"(?="+f+"|$)",B(new RegExp("^"+i,U(n)),e)}function z(t,e,n){return E(e)||(n=e||n,e=[]),n=n||{},t instanceof RegExp?function(t,e){var n=t.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)e.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return B(t,e)}(t,e):E(t)?function(t,e,n){for(var r=[],o=0;o<t.length;o++)r.push(z(t[o],e,n).source);return B(new RegExp("(?:"+r.join("|")+")",U(n)),e)}(t,e,n):(r=e,q(N(t,o=n),r,o));var r,o}$.parse=T,$.compile=M,$.tokensToFunction=P,$.tokensToRegExp=L;var V=Object.create(null);function G(t,e,n){try{return(V[t]||(V[t]=$.compile(t)))(e||{},{pretty:!0})}catch(t){return""}}function H(t,e,n,r){var o=e||[],i=n||Object.create(null),a=r||Object.create(null);t.forEach(function(t){!function t(e,n,r,o,i,a){var s=o.path;var c=o.name;0;var u=o.pathToRegexpOptions||{};var f=function(t,e,n){n||(t=t.replace(/\/$/,""));if("/"===t[0])return t;if(null==e)return t;return j(e.path+"/"+t)}(s,i,u.strict);"boolean"==typeof o.caseSensitive&&(u.sensitive=o.caseSensitive);var l={path:f,regex:function(t,e){var n=$(t,[],e);return n}(f,u),components:o.components||{default:o.component},instances:{},name:c,parent:i,matchAs:a,redirect:o.redirect,beforeEnter:o.beforeEnter,meta:o.meta||{},props:null==o.props?{}:o.components?o.props:{default:o.props}};o.children&&o.children.forEach(function(o){var i=a?j(a+"/"+o.path):void 0;t(e,n,r,o,l,i)});if(void 0!==o.alias){var p=Array.isArray(o.alias)?o.alias:[o.alias];p.forEach(function(a){var s={path:a,children:o.children};t(e,n,r,s,i,l.path||"/")})}n[l.path]||(e.push(l.path),n[l.path]=l);c&&(r[c]||(r[c]=l))}(o,i,a,t)});for(var s=0,c=o.length;s<c;s++)"*"===o[s]&&(o.push(o.splice(s,1)[0]),c--,s--);return{pathList:o,pathMap:i,nameMap:a}}function K(t,e,n,r){var o="string"==typeof t?{path:t}:t;if(o.name||o._normalized)return o;if(!o.path&&o.params&&e){(o=W({},o))._normalized=!0;var i=W(W({},e.params),o.params);if(e.name)o.name=e.name,o.params=i;else if(e.matched.length){var a=e.matched[e.matched.length-1].path;o.path=G(a,i,e.path)}else 0;return o}var s=function(t){var e="",n="",r=t.indexOf("#");r>=0&&(e=t.slice(r),t=t.slice(0,r));var o=t.indexOf("?");return o>=0&&(n=t.slice(o+1),t=t.slice(0,o)),{path:t,query:n,hash:e}}(o.path||""),c=e&&e.path||"/",u=s.path?S(s.path,c,n||o.append):c,f=function(t,e,n){void 0===e&&(e={});var r,o=n||l;try{r=o(t||"")}catch(t){r={}}for(var i in e)r[i]=e[i];return r}(s.query,o.query,r&&r.options.parseQuery),p=o.hash||s.hash;return p&&"#"!==p.charAt(0)&&(p="#"+p),{_normalized:!0,path:u,query:f,hash:p}}function W(t,e){for(var n in e)t[n]=e[n];return t}function Q(t,e){var n=H(t),r=n.pathList,o=n.pathMap,i=n.nameMap;function a(t,n,a){var s=K(t,n,!1,e),u=s.name;if(u){var f=i[u];if(!f)return c(null,s);var l=f.regex.keys.filter(function(t){return!t.optional}).map(function(t){return t.name});if("object"!=typeof s.params&&(s.params={}),n&&"object"==typeof n.params)for(var p in n.params)!(p in s.params)&&l.indexOf(p)>-1&&(s.params[p]=n.params[p]);if(f)return s.path=G(f.path,s.params),c(f,s,a)}else if(s.path){s.params={};for(var h=0;h<r.length;h++){var d=r[h],v=o[d];if(J(v.regex,s.path,s.params))return c(v,s,a)}}return c(null,s)}function s(t,n){var r=t.redirect,o="function"==typeof r?r(d(t,n,null,e)):r;if("string"==typeof o&&(o={path:o}),!o||"object"!=typeof o)return c(null,n);var s,u=o,f=u.name,l=u.path,p=n.query,h=n.hash,v=n.params;if(p=u.hasOwnProperty("query")?u.query:p,h=u.hasOwnProperty("hash")?u.hash:h,v=u.hasOwnProperty("params")?u.params:v,f){i[f];return a({_normalized:!0,name:f,query:p,hash:h,params:v},void 0,n)}if(l){var y=S(l,(s=t).parent?s.parent.path:"/",!0);return a({_normalized:!0,path:G(y,v),query:p,hash:h},void 0,n)}return c(null,n)}function c(t,n,r){return t&&t.redirect?s(t,r||n):t&&t.matchAs?function(t,e,n){var r=a({_normalized:!0,path:G(n,e.params)});if(r){var o=r.matched,i=o[o.length-1];return e.params=r.params,c(i,e)}return c(null,e)}(0,n,t.matchAs):d(t,n,r,e)}return{match:a,addRoutes:function(t){H(t,r,o,i)}}}function J(t,e,n){var r=e.match(t);if(!r)return!1;if(!n)return!0;for(var o=1,i=r.length;o<i;++o){var a=t.keys[o-1],s="string"==typeof r[o]?decodeURIComponent(r[o]):r[o];a&&(n[a.name]=s)}return!0}var Y=Object.create(null);function X(){window.history.replaceState({key:ft()},""),window.addEventListener("popstate",function(t){var e;tt(),t.state&&t.state.key&&(e=t.state.key,ct=e)})}function Z(t,e,n,r){if(t.app){var o=t.options.scrollBehavior;o&&t.app.$nextTick(function(){var t=function(){var t=ft();if(t)return Y[t]}(),i=o(e,n,r?t:null);i&&("function"==typeof i.then?i.then(function(e){ot(e,t)}).catch(function(t){0}):ot(i,t))})}}function tt(){var t=ft();t&&(Y[t]={x:window.pageXOffset,y:window.pageYOffset})}function et(t){return rt(t.x)||rt(t.y)}function nt(t){return{x:rt(t.x)?t.x:window.pageXOffset,y:rt(t.y)?t.y:window.pageYOffset}}function rt(t){return"number"==typeof t}function ot(t,e){var n,r,o,i,a,s="object"==typeof t;if(s&&"string"==typeof t.selector){var c=document.querySelector(t.selector);if(c){var u=t.offset&&"object"==typeof t.offset?t.offset:{};u={x:rt((a=u).x)?a.x:0,y:rt(a.y)?a.y:0},n=c,r=u,o=document.documentElement.getBoundingClientRect(),e={x:(i=n.getBoundingClientRect()).left-o.left-r.x,y:i.top-o.top-r.y}}else et(t)&&(e=nt(t))}else s&&et(t)&&(e=nt(t));e&&window.scrollTo(e.x,e.y)}var it,at=C&&((-1===(it=window.navigator.userAgent).indexOf("Android 2.")&&-1===it.indexOf("Android 4.0")||-1===it.indexOf("Mobile Safari")||-1!==it.indexOf("Chrome")||-1!==it.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history),st=C&&window.performance&&window.performance.now?window.performance:Date,ct=ut();function ut(){return st.now().toFixed(3)}function ft(){return ct}function lt(t,e){tt();var n=window.history;try{e?n.replaceState({key:ct},"",t):(ct=ut(),n.pushState({key:ct},"",t))}catch(n){window.location[e?"replace":"assign"](t)}}function pt(t){lt(t,!0)}function ht(t,e,n){var r=function(o){o>=t.length?n():t[o]?e(t[o],function(){r(o+1)}):r(o+1)};r(0)}function dt(t){return function(e,n,r){var i=!1,a=0,s=null;vt(t,function(t,e,n,c){if("function"==typeof t&&void 0===t.cid){i=!0,a++;var u,f=gt(function(e){var o;((o=e).__esModule||mt&&"Module"===o[Symbol.toStringTag])&&(e=e.default),t.resolved="function"==typeof e?e:_.extend(e),n.components[c]=e,--a<=0&&r()}),l=gt(function(t){var e="Failed to resolve async component "+c+": "+t;s||(s=o(t)?t:new Error(e),r(s))});try{u=t(f,l)}catch(t){l(t)}if(u)if("function"==typeof u.then)u.then(f,l);else{var p=u.component;p&&"function"==typeof p.then&&p.then(f,l)}}}),i||r()}}function vt(t,e){return yt(t.map(function(t){return Object.keys(t.components).map(function(n){return e(t.components[n],t.instances[n],t,n)})}))}function yt(t){return Array.prototype.concat.apply([],t)}var mt="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function gt(t){var e=!1;return function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];if(!e)return e=!0,t.apply(this,n)}}var bt=function(t,e){this.router=t,this.base=function(t){if(!t)if(C){var e=document.querySelector("base");t=(t=e&&e.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else t="/";"/"!==t.charAt(0)&&(t="/"+t);return t.replace(/\/$/,"")}(e),this.current=y,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[]};function _t(t,e,n,r){var o=vt(t,function(t,r,o,i){var a=function(t,e){"function"!=typeof t&&(t=_.extend(t));return t.options[e]}(t,e);if(a)return Array.isArray(a)?a.map(function(t){return n(t,r,o,i)}):n(a,r,o,i)});return yt(r?o.reverse():o)}function wt(t,e){if(e)return function(){return t.apply(e,arguments)}}bt.prototype.listen=function(t){this.cb=t},bt.prototype.onReady=function(t,e){this.ready?t():(this.readyCbs.push(t),e&&this.readyErrorCbs.push(e))},bt.prototype.onError=function(t){this.errorCbs.push(t)},bt.prototype.transitionTo=function(t,e,n){var r=this,o=this.router.match(t,this.current);this.confirmTransition(o,function(){r.updateRoute(o),e&&e(o),r.ensureURL(),r.ready||(r.ready=!0,r.readyCbs.forEach(function(t){t(o)}))},function(t){n&&n(t),t&&!r.ready&&(r.ready=!0,r.readyErrorCbs.forEach(function(e){e(t)}))})},bt.prototype.confirmTransition=function(t,e,n){var i=this,a=this.current,s=function(t){o(t)&&(i.errorCbs.length?i.errorCbs.forEach(function(e){e(t)}):(r(),console.error(t))),n&&n(t)};if(g(t,a)&&t.matched.length===a.matched.length)return this.ensureURL(),s();var c=function(t,e){var n,r=Math.max(t.length,e.length);for(n=0;n<r&&t[n]===e[n];n++);return{updated:e.slice(0,n),activated:e.slice(n),deactivated:t.slice(n)}}(this.current.matched,t.matched),u=c.updated,f=c.deactivated,l=c.activated,p=[].concat(_t(f,"beforeRouteLeave",wt,!0),this.router.beforeHooks,_t(u,"beforeRouteUpdate",wt),l.map(function(t){return t.beforeEnter}),dt(l));this.pending=t;var h=function(e,n){if(i.pending!==t)return s();try{e(t,a,function(t){!1===t||o(t)?(i.ensureURL(!0),s(t)):"string"==typeof t||"object"==typeof t&&("string"==typeof t.path||"string"==typeof t.name)?(s(),"object"==typeof t&&t.replace?i.replace(t):i.push(t)):n(t)})}catch(t){s(t)}};ht(p,h,function(){var n,r,o=[];ht((n=o,r=function(){return i.current===t},_t(l,"beforeRouteEnter",function(t,e,o,i){return a=t,s=o,c=i,u=n,f=r,function(t,e,n){return a(t,e,function(t){n(t),"function"==typeof t&&u.push(function(){!function t(e,n,r,o){n[r]?e(n[r]):o()&&setTimeout(function(){t(e,n,r,o)},16)}(t,s.instances,c,f)})})};var a,s,c,u,f})).concat(i.router.resolveHooks),h,function(){if(i.pending!==t)return s();i.pending=null,e(t),i.router.app&&i.router.app.$nextTick(function(){o.forEach(function(t){t()})})})})},bt.prototype.updateRoute=function(t){var e=this.current;this.current=t,this.cb&&this.cb(t),this.router.afterHooks.forEach(function(n){n&&n(t,e)})};var xt=function(t){function e(e,n){var r=this;t.call(this,e,n);var o=e.options.scrollBehavior;o&&X();var i=Ot(this.base);window.addEventListener("popstate",function(t){var n=r.current,a=Ot(r.base);r.current===y&&a===i||r.transitionTo(a,function(t){o&&Z(e,t,n,!0)})})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.go=function(t){window.history.go(t)},e.prototype.push=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,function(t){lt(j(r.base+t.fullPath)),Z(r.router,t,o,!1),e&&e(t)},n)},e.prototype.replace=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,function(t){pt(j(r.base+t.fullPath)),Z(r.router,t,o,!1),e&&e(t)},n)},e.prototype.ensureURL=function(t){if(Ot(this.base)!==this.current.fullPath){var e=j(this.base+this.current.fullPath);t?lt(e):pt(e)}},e.prototype.getCurrentLocation=function(){return Ot(this.base)},e}(bt);function Ot(t){var e=window.location.pathname;return t&&0===e.indexOf(t)&&(e=e.slice(t.length)),(e||"/")+window.location.search+window.location.hash}var kt=function(t){function e(e,n,r){t.call(this,e,n),r&&function(t){var e=Ot(t);if(!/^\/#/.test(e))return window.location.replace(j(t+"/#"+e)),!0}(this.base)||At()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setupListeners=function(){var t=this,e=this.router.options.scrollBehavior,n=at&&e;n&&X(),window.addEventListener(at?"popstate":"hashchange",function(){var e=t.current;At()&&t.transitionTo(Ct(),function(r){n&&Z(t.router,r,e,!0),at||Et(r.fullPath)})})},e.prototype.push=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,function(t){jt(t.fullPath),Z(r.router,t,o,!1),e&&e(t)},n)},e.prototype.replace=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,function(t){Et(t.fullPath),Z(r.router,t,o,!1),e&&e(t)},n)},e.prototype.go=function(t){window.history.go(t)},e.prototype.ensureURL=function(t){var e=this.current.fullPath;Ct()!==e&&(t?jt(e):Et(e))},e.prototype.getCurrentLocation=function(){return Ct()},e}(bt);function At(){var t=Ct();return"/"===t.charAt(0)||(Et("/"+t),!1)}function Ct(){var t=window.location.href,e=t.indexOf("#");return-1===e?"":t.slice(e+1)}function St(t){var e=window.location.href,n=e.indexOf("#");return(n>=0?e.slice(0,n):e)+"#"+t}function jt(t){at?lt(St(t)):window.location.hash=t}function Et(t){at?pt(St(t)):window.location.replace(St(t))}var $t=function(t){function e(e,n){t.call(this,e,n),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,n){var r=this;this.transitionTo(t,function(t){r.stack=r.stack.slice(0,r.index+1).concat(t),r.index++,e&&e(t)},n)},e.prototype.replace=function(t,e,n){var r=this;this.transitionTo(t,function(t){r.stack=r.stack.slice(0,r.index).concat(t),e&&e(t)},n)},e.prototype.go=function(t){var e=this,n=this.index+t;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,function(){e.index=n,e.updateRoute(r)})}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(bt),Tt=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=Q(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!at&&!1!==t.fallback,this.fallback&&(e="hash"),C||(e="abstract"),this.mode=e,e){case"history":this.history=new xt(this,t.base);break;case"hash":this.history=new kt(this,t.base,this.fallback);break;case"abstract":this.history=new $t(this,t.base);break;default:0}},Mt={currentRoute:{configurable:!0}};function Pt(t,e){return t.push(e),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}Tt.prototype.match=function(t,e,n){return this.matcher.match(t,e,n)},Mt.currentRoute.get=function(){return this.history&&this.history.current},Tt.prototype.init=function(t){var e=this;if(this.apps.push(t),!this.app){this.app=t;var n=this.history;if(n instanceof xt)n.transitionTo(n.getCurrentLocation());else if(n instanceof kt){var r=function(){n.setupListeners()};n.transitionTo(n.getCurrentLocation(),r,r)}n.listen(function(t){e.apps.forEach(function(e){e._route=t})})}},Tt.prototype.beforeEach=function(t){return Pt(this.beforeHooks,t)},Tt.prototype.beforeResolve=function(t){return Pt(this.resolveHooks,t)},Tt.prototype.afterEach=function(t){return Pt(this.afterHooks,t)},Tt.prototype.onReady=function(t,e){this.history.onReady(t,e)},Tt.prototype.onError=function(t){this.history.onError(t)},Tt.prototype.push=function(t,e,n){this.history.push(t,e,n)},Tt.prototype.replace=function(t,e,n){this.history.replace(t,e,n)},Tt.prototype.go=function(t){this.history.go(t)},Tt.prototype.back=function(){this.go(-1)},Tt.prototype.forward=function(){this.go(1)},Tt.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map(function(t){return Object.keys(t.components).map(function(e){return t.components[e]})})):[]},Tt.prototype.resolve=function(t,e,n){var r,o,i,a,s=K(t,e||this.history.current,n,this),c=this.match(s,e),u=c.redirectedFrom||c.fullPath,f=this.history.base;return{location:s,route:c,href:(r=f,o=u,i=this.mode,a="hash"===i?"#"+o:o,r?j(r+"/"+a):a),normalizedTo:s,resolved:c}},Tt.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==y&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(Tt.prototype,Mt),Tt.install=A,Tt.version="3.0.1",C&&window.Vue&&window.Vue.use(Tt),e.default=Tt},0:function(t,e,n){n("/5sW"),n("/ocq"),n("p3jY"),t.exports=n("NYxO")},"06OY":function(t,e,n){var r=n("3Eo+")("meta"),o=n("EqjI"),i=n("D2L2"),a=n("evD5").f,s=0,c=Object.isExtensible||function(){return!0},u=!n("S82l")(function(){return c(Object.preventExtensions({}))}),f=function(t){a(t,r,{value:{i:"O"+ ++s,w:{}}})},l=t.exports={KEY:r,NEED:!1,fastKey:function(t,e){if(!o(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!i(t,r)){if(!c(t))return"F";if(!e)return"E";f(t)}return t[r].i},getWeak:function(t,e){if(!i(t,r)){if(!c(t))return!0;if(!e)return!1;f(t)}return t[r].w},onFreeze:function(t){return u&&l.NEED&&c(t)&&!i(t,r)&&f(t),t}}},"162o":function(t,e,n){var r=Function.prototype.apply;function o(t,e){this._id=t,this._clearFn=e}e.setTimeout=function(){return new o(r.call(setTimeout,window,arguments),clearTimeout)},e.setInterval=function(){return new o(r.call(setInterval,window,arguments),clearInterval)},e.clearTimeout=e.clearInterval=function(t){t&&t.close()},o.prototype.unref=o.prototype.ref=function(){},o.prototype.close=function(){this._clearFn.call(window,this._id)},e.enroll=function(t,e){clearTimeout(t._idleTimeoutId),t._idleTimeout=e},e.unenroll=function(t){clearTimeout(t._idleTimeoutId),t._idleTimeout=-1},e._unrefActive=e.active=function(t){clearTimeout(t._idleTimeoutId);var e=t._idleTimeout;e>=0&&(t._idleTimeoutId=setTimeout(function(){t._onTimeout&&t._onTimeout()},e))},n("mypn"),e.setImmediate=setImmediate,e.clearImmediate=clearImmediate},"1kS7":function(t,e){e.f=Object.getOwnPropertySymbols},"2KxR":function(t,e){t.exports=function(t,e,n,r){if(!(t instanceof e)||void 0!==r&&r in t)throw TypeError(n+": incorrect invocation!");return t}},"3Eo+":function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},"3fs2":function(t,e,n){var r=n("RY/4"),o=n("dSzd")("iterator"),i=n("/bQp");t.exports=n("FeBl").getIteratorMethod=function(t){if(void 0!=t)return t[o]||t["@@iterator"]||i[r(t)]}},"4mcu":function(t,e){t.exports=function(){}},"52gC":function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on  "+t);return t}},"5QVw":function(t,e,n){t.exports={default:n("BwfY"),__esModule:!0}},"77Pl":function(t,e,n){var r=n("EqjI");t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},"7KvD":function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},"7UMu":function(t,e,n){var r=n("R9M2");t.exports=Array.isArray||function(t){return"Array"==r(t)}},"82Mu":function(t,e,n){var r=n("7KvD"),o=n("L42u").set,i=r.MutationObserver||r.WebKitMutationObserver,a=r.process,s=r.Promise,c="process"==n("R9M2")(a);t.exports=function(){var t,e,n,u=function(){var r,o;for(c&&(r=a.domain)&&r.exit();t;){o=t.fn,t=t.next;try{o()}catch(r){throw t?n():e=void 0,r}}e=void 0,r&&r.enter()};if(c)n=function(){a.nextTick(u)};else if(!i||r.navigator&&r.navigator.standalone)if(s&&s.resolve){var f=s.resolve();n=function(){f.then(u)}}else n=function(){o.call(r,u)};else{var l=!0,p=document.createTextNode("");new i(u).observe(p,{characterData:!0}),n=function(){p.data=l=!l}}return function(r){var o={fn:r,next:void 0};e&&(e.next=o),t||(t=o,n()),e=o}}},"880/":function(t,e,n){t.exports=n("hJx8")},"94VQ":function(t,e,n){"use strict";var r=n("Yobk"),o=n("X8DO"),i=n("e6n0"),a={};n("hJx8")(a,n("dSzd")("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=r(a,{next:o(1,n)}),i(t,e+" Iterator")}},"9bBU":function(t,e,n){n("mClu");var r=n("FeBl").Object;t.exports=function(t,e,n){return r.defineProperty(t,e,n)}},BO1k:function(t,e,n){t.exports={default:n("fxRn"),__esModule:!0}},BwfY:function(t,e,n){n("fWfb"),n("M6a0"),n("OYls"),n("QWe/"),t.exports=n("FeBl").Symbol},C4MV:function(t,e,n){t.exports={default:n("9bBU"),__esModule:!0}},CXw9:function(t,e,n){"use strict";var r,o,i,a,s=n("O4g8"),c=n("7KvD"),u=n("+ZMJ"),f=n("RY/4"),l=n("kM2E"),p=n("EqjI"),h=n("lOnJ"),d=n("2KxR"),v=n("NWt+"),y=n("t8x9"),m=n("L42u").set,g=n("82Mu")(),b=n("qARP"),_=n("dNDb"),w=n("fJUb"),x="Promise",O=c.TypeError,k=c.process,A=c.Promise,C="process"==f(k),S=function(){},j=o=b.f,E=!!function(){try{var t=A.resolve(1),e=(t.constructor={})[n("dSzd")("species")]=function(t){t(S,S)};return(C||"function"==typeof PromiseRejectionEvent)&&t.then(S)instanceof e}catch(t){}}(),$=function(t){var e;return!(!p(t)||"function"!=typeof(e=t.then))&&e},T=function(t,e){if(!t._n){t._n=!0;var n=t._c;g(function(){for(var r=t._v,o=1==t._s,i=0,a=function(e){var n,i,a=o?e.ok:e.fail,s=e.resolve,c=e.reject,u=e.domain;try{a?(o||(2==t._h&&L(t),t._h=1),!0===a?n=r:(u&&u.enter(),n=a(r),u&&u.exit()),n===e.promise?c(O("Promise-chain cycle")):(i=$(n))?i.call(n,s,c):s(n)):c(r)}catch(t){c(t)}};n.length>i;)a(n[i++]);t._c=[],t._n=!1,e&&!t._h&&M(t)})}},M=function(t){m.call(c,function(){var e,n,r,o=t._v,i=P(t);if(i&&(e=_(function(){C?k.emit("unhandledRejection",o,t):(n=c.onunhandledrejection)?n({promise:t,reason:o}):(r=c.console)&&r.error&&r.error("Unhandled promise rejection",o)}),t._h=C||P(t)?2:1),t._a=void 0,i&&e.e)throw e.v})},P=function(t){return 1!==t._h&&0===(t._a||t._c).length},L=function(t){m.call(c,function(){var e;C?k.emit("rejectionHandled",t):(e=c.onrejectionhandled)&&e({promise:t,reason:t._v})})},I=function(t){var e=this;e._d||(e._d=!0,(e=e._w||e)._v=t,e._s=2,e._a||(e._a=e._c.slice()),T(e,!0))},N=function(t){var e,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===t)throw O("Promise can't be resolved itself");(e=$(t))?g(function(){var r={_w:n,_d:!1};try{e.call(t,u(N,r,1),u(I,r,1))}catch(t){I.call(r,t)}}):(n._v=t,n._s=1,T(n,!1))}catch(t){I.call({_w:n,_d:!1},t)}}};E||(A=function(t){d(this,A,x,"_h"),h(t),r.call(this);try{t(u(N,this,1),u(I,this,1))}catch(t){I.call(this,t)}},(r=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=n("xH/j")(A.prototype,{then:function(t,e){var n=j(y(this,A));return n.ok="function"!=typeof t||t,n.fail="function"==typeof e&&e,n.domain=C?k.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&T(this,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),i=function(){var t=new r;this.promise=t,this.resolve=u(N,t,1),this.reject=u(I,t,1)},b.f=j=function(t){return t===A||t===a?new i(t):o(t)}),l(l.G+l.W+l.F*!E,{Promise:A}),n("e6n0")(A,x),n("bRrM")(x),a=n("FeBl").Promise,l(l.S+l.F*!E,x,{reject:function(t){var e=j(this);return(0,e.reject)(t),e.promise}}),l(l.S+l.F*(s||!E),x,{resolve:function(t){return w(s&&this===a?A:this,t)}}),l(l.S+l.F*!(E&&n("dY0y")(function(t){A.all(t).catch(S)})),x,{all:function(t){var e=this,n=j(e),r=n.resolve,o=n.reject,i=_(function(){var n=[],i=0,a=1;v(t,!1,function(t){var s=i++,c=!1;n.push(void 0),a++,e.resolve(t).then(function(t){c||(c=!0,n[s]=t,--a||r(n))},o)}),--a||r(n)});return i.e&&o(i.v),n.promise},race:function(t){var e=this,n=j(e),r=n.reject,o=_(function(){v(t,!1,function(t){e.resolve(t).then(n.resolve,r)})});return o.e&&r(o.v),n.promise}})},Cdx3:function(t,e,n){var r=n("sB3e"),o=n("lktj");n("uqUo")("keys",function(){return function(t){return o(r(t))}})},D2L2:function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},Dd8w:function(t,e,n){"use strict";e.__esModule=!0;var r,o=n("woOf"),i=(r=o)&&r.__esModule?r:{default:r};e.default=i.default||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t}},DuR2:function(t,e){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(n=window)}t.exports=n},EGZi:function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},EqBC:function(t,e,n){"use strict";var r=n("kM2E"),o=n("FeBl"),i=n("7KvD"),a=n("t8x9"),s=n("fJUb");r(r.P+r.R,"Promise",{finally:function(t){var e=a(this,o.Promise||i.Promise),n="function"==typeof t;return this.then(n?function(n){return s(e,t()).then(function(){return n})}:t,n?function(n){return s(e,t()).then(function(){throw n})}:t)}})},EqjI:function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},FeBl:function(t,e){var n=t.exports={version:"2.5.3"};"number"==typeof __e&&(__e=n)},"Fqd/":function(t,e,n){t.exports=n.p+"img/fontawesome-webfont.912ec66.svg"},IMLV:function(t,e,n){t.exports=n.p+"fonts/fontawesome-webfont.b06871f.ttf"},Ibhu:function(t,e,n){var r=n("D2L2"),o=n("TcQ7"),i=n("vFc/")(!1),a=n("ax3d")("IE_PROTO");t.exports=function(t,e){var n,s=o(t),c=0,u=[];for(n in s)n!=a&&r(s,n)&&u.push(n);for(;e.length>c;)r(s,n=e[c++])&&(~i(u,n)||u.push(n));return u}},Kh4W:function(t,e,n){e.f=n("dSzd")},L42u:function(t,e,n){var r,o,i,a=n("+ZMJ"),s=n("knuC"),c=n("RPLV"),u=n("ON07"),f=n("7KvD"),l=f.process,p=f.setImmediate,h=f.clearImmediate,d=f.MessageChannel,v=f.Dispatch,y=0,m={},g=function(){var t=+this;if(m.hasOwnProperty(t)){var e=m[t];delete m[t],e()}},b=function(t){g.call(t.data)};p&&h||(p=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return m[++y]=function(){s("function"==typeof t?t:Function(t),e)},r(y),y},h=function(t){delete m[t]},"process"==n("R9M2")(l)?r=function(t){l.nextTick(a(g,t,1))}:v&&v.now?r=function(t){v.now(a(g,t,1))}:d?(i=(o=new d).port2,o.port1.onmessage=b,r=a(i.postMessage,i,1)):f.addEventListener&&"function"==typeof postMessage&&!f.importScripts?(r=function(t){f.postMessage(t+"","*")},f.addEventListener("message",b,!1)):r="onreadystatechange"in u("script")?function(t){c.appendChild(u("script")).onreadystatechange=function(){c.removeChild(this),g.call(t)}}:function(t){setTimeout(a(g,t,1),0)}),t.exports={set:p,clear:h}},LKZe:function(t,e,n){var r=n("NpIQ"),o=n("X8DO"),i=n("TcQ7"),a=n("MmMw"),s=n("D2L2"),c=n("SfB7"),u=Object.getOwnPropertyDescriptor;e.f=n("+E39")?u:function(t,e){if(t=i(t),e=a(e,!0),c)try{return u(t,e)}catch(t){}if(s(t,e))return o(!r.f.call(t,e),t[e])}},M6a0:function(t,e){},MU5D:function(t,e,n){var r=n("R9M2");t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},MU8w:function(t,e,n){"use strict";t.exports=n("hKoQ").polyfill()},Mhyx:function(t,e,n){var r=n("/bQp"),o=n("dSzd")("iterator"),i=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||i[o]===t)}},MmMw:function(t,e,n){var r=n("EqjI");t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},"NWt+":function(t,e,n){var r=n("+ZMJ"),o=n("msXi"),i=n("Mhyx"),a=n("77Pl"),s=n("QRG4"),c=n("3fs2"),u={},f={};(e=t.exports=function(t,e,n,l,p){var h,d,v,y,m=p?function(){return t}:c(t),g=r(n,l,e?2:1),b=0;if("function"!=typeof m)throw TypeError(t+" is not iterable!");if(i(m)){for(h=s(t.length);h>b;b++)if((y=e?g(a(d=t[b])[0],d[1]):g(t[b]))===u||y===f)return y}else for(v=m.call(t);!(d=v.next()).done;)if((y=o(v,g,d.value,e))===u||y===f)return y}).BREAK=u,e.RETURN=f},NYxO:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),n.d(e,"Store",function(){return f}),n.d(e,"install",function(){return g}),n.d(e,"mapState",function(){return b}),n.d(e,"mapMutations",function(){return _}),n.d(e,"mapGetters",function(){return w}),n.d(e,"mapActions",function(){return x}),n.d(e,"createNamespacedHelpers",function(){return O});var r=function(t){if(Number(t.version.split(".")[0])>=2)t.mixin({beforeCreate:n});else{var e=t.prototype._init;t.prototype._init=function(t){void 0===t&&(t={}),t.init=t.init?[n].concat(t.init):n,e.call(this,t)}}function n(){var t=this.$options;t.store?this.$store="function"==typeof t.store?t.store():t.store:t.parent&&t.parent.$store&&(this.$store=t.parent.$store)}},o="undefined"!=typeof window&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function i(t,e){Object.keys(t).forEach(function(n){return e(t[n],n)})}var a=function(t,e){this.runtime=e,this._children=Object.create(null),this._rawModule=t;var n=t.state;this.state=("function"==typeof n?n():n)||{}},s={namespaced:{configurable:!0}};s.namespaced.get=function(){return!!this._rawModule.namespaced},a.prototype.addChild=function(t,e){this._children[t]=e},a.prototype.removeChild=function(t){delete this._children[t]},a.prototype.getChild=function(t){return this._children[t]},a.prototype.update=function(t){this._rawModule.namespaced=t.namespaced,t.actions&&(this._rawModule.actions=t.actions),t.mutations&&(this._rawModule.mutations=t.mutations),t.getters&&(this._rawModule.getters=t.getters)},a.prototype.forEachChild=function(t){i(this._children,t)},a.prototype.forEachGetter=function(t){this._rawModule.getters&&i(this._rawModule.getters,t)},a.prototype.forEachAction=function(t){this._rawModule.actions&&i(this._rawModule.actions,t)},a.prototype.forEachMutation=function(t){this._rawModule.mutations&&i(this._rawModule.mutations,t)},Object.defineProperties(a.prototype,s);var c=function(t){this.register([],t,!1)};c.prototype.get=function(t){return t.reduce(function(t,e){return t.getChild(e)},this.root)},c.prototype.getNamespace=function(t){var e=this.root;return t.reduce(function(t,n){return t+((e=e.getChild(n)).namespaced?n+"/":"")},"")},c.prototype.update=function(t){!function t(e,n,r){0;n.update(r);if(r.modules)for(var o in r.modules){if(!n.getChild(o))return void 0;t(e.concat(o),n.getChild(o),r.modules[o])}}([],this.root,t)},c.prototype.register=function(t,e,n){var r=this;void 0===n&&(n=!0);var o=new a(e,n);0===t.length?this.root=o:this.get(t.slice(0,-1)).addChild(t[t.length-1],o);e.modules&&i(e.modules,function(e,o){r.register(t.concat(o),e,n)})},c.prototype.unregister=function(t){var e=this.get(t.slice(0,-1)),n=t[t.length-1];e.getChild(n).runtime&&e.removeChild(n)};var u;var f=function(t){var e=this;void 0===t&&(t={}),!u&&"undefined"!=typeof window&&window.Vue&&g(window.Vue);var n=t.plugins;void 0===n&&(n=[]);var r=t.strict;void 0===r&&(r=!1);var i=t.state;void 0===i&&(i={}),"function"==typeof i&&(i=i()||{}),this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new c(t),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._watcherVM=new u;var a,s=this,f=this.dispatch,l=this.commit;this.dispatch=function(t,e){return f.call(s,t,e)},this.commit=function(t,e,n){return l.call(s,t,e,n)},this.strict=r,v(this,i,[],this._modules.root),d(this,i),n.forEach(function(t){return t(e)}),u.config.devtools&&(a=this,o&&(a._devtoolHook=o,o.emit("vuex:init",a),o.on("vuex:travel-to-state",function(t){a.replaceState(t)}),a.subscribe(function(t,e){o.emit("vuex:mutation",t,e)})))},l={state:{configurable:!0}};function p(t,e){return e.indexOf(t)<0&&e.push(t),function(){var n=e.indexOf(t);n>-1&&e.splice(n,1)}}function h(t,e){t._actions=Object.create(null),t._mutations=Object.create(null),t._wrappedGetters=Object.create(null),t._modulesNamespaceMap=Object.create(null);var n=t.state;v(t,n,[],t._modules.root,!0),d(t,n,e)}function d(t,e,n){var r=t._vm;t.getters={};var o={};i(t._wrappedGetters,function(e,n){o[n]=function(){return e(t)},Object.defineProperty(t.getters,n,{get:function(){return t._vm[n]},enumerable:!0})});var a=u.config.silent;u.config.silent=!0,t._vm=new u({data:{$$state:e},computed:o}),u.config.silent=a,t.strict&&t._vm.$watch(function(){return this._data.$$state},function(){},{deep:!0,sync:!0}),r&&(n&&t._withCommit(function(){r._data.$$state=null}),u.nextTick(function(){return r.$destroy()}))}function v(t,e,n,r,o){var i=!n.length,a=t._modules.getNamespace(n);if(r.namespaced&&(t._modulesNamespaceMap[a]=r),!i&&!o){var s=y(e,n.slice(0,-1)),c=n[n.length-1];t._withCommit(function(){u.set(s,c,r.state)})}var f,l,p,h,d,g=r.context=(f=t,p=n,d={dispatch:(h=""===(l=a))?f.dispatch:function(t,e,n){var r=m(t,e,n),o=r.payload,i=r.options,a=r.type;return i&&i.root||(a=l+a),f.dispatch(a,o)},commit:h?f.commit:function(t,e,n){var r=m(t,e,n),o=r.payload,i=r.options,a=r.type;i&&i.root||(a=l+a),f.commit(a,o,i)}},Object.defineProperties(d,{getters:{get:h?function(){return f.getters}:function(){return t=f,n={},r=(e=l).length,Object.keys(t.getters).forEach(function(o){if(o.slice(0,r)===e){var i=o.slice(r);Object.defineProperty(n,i,{get:function(){return t.getters[o]},enumerable:!0})}}),n;var t,e,n,r}},state:{get:function(){return y(f.state,p)}}}),d);r.forEachMutation(function(e,n){var r,o,i,s;o=a+n,i=e,s=g,((r=t)._mutations[o]||(r._mutations[o]=[])).push(function(t){i.call(r,s.state,t)})}),r.forEachAction(function(e,n){var r,o,i,s,c=e.root?n:a+n,u=e.handler||e;o=c,i=u,s=g,((r=t)._actions[o]||(r._actions[o]=[])).push(function(t,e){var n,o=i.call(r,{dispatch:s.dispatch,commit:s.commit,getters:s.getters,state:s.state,rootGetters:r.getters,rootState:r.state},t,e);return(n=o)&&"function"==typeof n.then||(o=Promise.resolve(o)),r._devtoolHook?o.catch(function(t){throw r._devtoolHook.emit("vuex:error",t),t}):o})}),r.forEachGetter(function(e,n){!function(t,e,n,r){if(t._wrappedGetters[e])return void 0;t._wrappedGetters[e]=function(t){return n(r.state,r.getters,t.state,t.getters)}}(t,a+n,e,g)}),r.forEachChild(function(r,i){v(t,e,n.concat(i),r,o)})}function y(t,e){return e.length?e.reduce(function(t,e){return t[e]},t):t}function m(t,e,n){var r;return null!==(r=t)&&"object"==typeof r&&t.type&&(n=e,e=t,t=t.type),{type:t,payload:e,options:n}}function g(t){u&&t===u||r(u=t)}l.state.get=function(){return this._vm._data.$$state},l.state.set=function(t){0},f.prototype.commit=function(t,e,n){var r=this,o=m(t,e,n),i=o.type,a=o.payload,s=(o.options,{type:i,payload:a}),c=this._mutations[i];c&&(this._withCommit(function(){c.forEach(function(t){t(a)})}),this._subscribers.forEach(function(t){return t(s,r.state)}))},f.prototype.dispatch=function(t,e){var n=this,r=m(t,e),o=r.type,i=r.payload,a={type:o,payload:i},s=this._actions[o];if(s)return this._actionSubscribers.forEach(function(t){return t(a,n.state)}),s.length>1?Promise.all(s.map(function(t){return t(i)})):s[0](i)},f.prototype.subscribe=function(t){return p(t,this._subscribers)},f.prototype.subscribeAction=function(t){return p(t,this._actionSubscribers)},f.prototype.watch=function(t,e,n){var r=this;return this._watcherVM.$watch(function(){return t(r.state,r.getters)},e,n)},f.prototype.replaceState=function(t){var e=this;this._withCommit(function(){e._vm._data.$$state=t})},f.prototype.registerModule=function(t,e,n){void 0===n&&(n={}),"string"==typeof t&&(t=[t]),this._modules.register(t,e),v(this,this.state,t,this._modules.get(t),n.preserveState),d(this,this.state)},f.prototype.unregisterModule=function(t){var e=this;"string"==typeof t&&(t=[t]),this._modules.unregister(t),this._withCommit(function(){var n=y(e.state,t.slice(0,-1));u.delete(n,t[t.length-1])}),h(this)},f.prototype.hotUpdate=function(t){this._modules.update(t),h(this,!0)},f.prototype._withCommit=function(t){var e=this._committing;this._committing=!0,t(),this._committing=e},Object.defineProperties(f.prototype,l);var b=A(function(t,e){var n={};return k(e).forEach(function(e){var r=e.key,o=e.val;n[r]=function(){var e=this.$store.state,n=this.$store.getters;if(t){var r=C(this.$store,"mapState",t);if(!r)return;e=r.context.state,n=r.context.getters}return"function"==typeof o?o.call(this,e,n):e[o]},n[r].vuex=!0}),n}),_=A(function(t,e){var n={};return k(e).forEach(function(e){var r=e.key,o=e.val;n[r]=function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];var r=this.$store.commit;if(t){var i=C(this.$store,"mapMutations",t);if(!i)return;r=i.context.commit}return"function"==typeof o?o.apply(this,[r].concat(e)):r.apply(this.$store,[o].concat(e))}}),n}),w=A(function(t,e){var n={};return k(e).forEach(function(e){var r=e.key,o=e.val;o=t+o,n[r]=function(){if(!t||C(this.$store,"mapGetters",t))return this.$store.getters[o]},n[r].vuex=!0}),n}),x=A(function(t,e){var n={};return k(e).forEach(function(e){var r=e.key,o=e.val;n[r]=function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];var r=this.$store.dispatch;if(t){var i=C(this.$store,"mapActions",t);if(!i)return;r=i.context.dispatch}return"function"==typeof o?o.apply(this,[r].concat(e)):r.apply(this.$store,[o].concat(e))}}),n}),O=function(t){return{mapState:b.bind(null,t),mapGetters:w.bind(null,t),mapMutations:_.bind(null,t),mapActions:x.bind(null,t)}};function k(t){return Array.isArray(t)?t.map(function(t){return{key:t,val:t}}):Object.keys(t).map(function(e){return{key:e,val:t[e]}})}function A(t){return function(e,n){return"string"!=typeof e?(n=e,e=""):"/"!==e.charAt(e.length-1)&&(e+="/"),t(e,n)}}function C(t,e,n){return t._modulesNamespaceMap[n]}var S={Store:f,install:g,version:"3.0.1",mapState:b,mapMutations:_,mapGetters:w,mapActions:x,createNamespacedHelpers:O};e.default=S},NpIQ:function(t,e){e.f={}.propertyIsEnumerable},O4g8:function(t,e){t.exports=!0},OEdS:function(t,e,n){(function(e){var n="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},r=function(){var t=/\blang(?:uage)?-(\w+)\b/i,e=0,r=n.Prism={manual:n.Prism&&n.Prism.manual,disableWorkerMessageHandler:n.Prism&&n.Prism.disableWorkerMessageHandler,util:{encode:function(t){return t instanceof o?new o(t.type,r.util.encode(t.content),t.alias):"Array"===r.util.type(t)?t.map(r.util.encode):t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/\u00a0/g," ")},type:function(t){return Object.prototype.toString.call(t).match(/\[object (\w+)\]/)[1]},objId:function(t){return t.__id||Object.defineProperty(t,"__id",{value:++e}),t.__id},clone:function(t){switch(r.util.type(t)){case"Object":var e={};for(var n in t)t.hasOwnProperty(n)&&(e[n]=r.util.clone(t[n]));return e;case"Array":return t.map(function(t){return r.util.clone(t)})}return t}},languages:{extend:function(t,e){var n=r.util.clone(r.languages[t]);for(var o in e)n[o]=e[o];return n},insertBefore:function(t,e,n,o){var i=(o=o||r.languages)[t];if(2==arguments.length){n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(i[a]=n[a]);return i}var s={};for(var c in i)if(i.hasOwnProperty(c)){if(c==e)for(var a in n)n.hasOwnProperty(a)&&(s[a]=n[a]);s[c]=i[c]}return r.languages.DFS(r.languages,function(e,n){n===o[t]&&e!=t&&(this[e]=s)}),o[t]=s},DFS:function(t,e,n,o){o=o||{};for(var i in t)t.hasOwnProperty(i)&&(e.call(t,i,t[i],n||i),"Object"!==r.util.type(t[i])||o[r.util.objId(t[i])]?"Array"!==r.util.type(t[i])||o[r.util.objId(t[i])]||(o[r.util.objId(t[i])]=!0,r.languages.DFS(t[i],e,i,o)):(o[r.util.objId(t[i])]=!0,r.languages.DFS(t[i],e,null,o)))}},plugins:{},highlightAll:function(t,e){r.highlightAllUnder(document,t,e)},highlightAllUnder:function(t,e,n){var o={callback:n,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};r.hooks.run("before-highlightall",o);for(var i,a=o.elements||t.querySelectorAll(o.selector),s=0;i=a[s++];)r.highlightElement(i,!0===e,o.callback)},highlightElement:function(e,o,i){for(var a,s,c=e;c&&!t.test(c.className);)c=c.parentNode;c&&(a=(c.className.match(t)||[,""])[1].toLowerCase(),s=r.languages[a]),e.className=e.className.replace(t,"").replace(/\s+/g," ")+" language-"+a,e.parentNode&&(c=e.parentNode,/pre/i.test(c.nodeName)&&(c.className=c.className.replace(t,"").replace(/\s+/g," ")+" language-"+a));var u={element:e,language:a,grammar:s,code:e.textContent};if(r.hooks.run("before-sanity-check",u),!u.code||!u.grammar)return u.code&&(r.hooks.run("before-highlight",u),u.element.textContent=u.code,r.hooks.run("after-highlight",u)),void r.hooks.run("complete",u);if(r.hooks.run("before-highlight",u),o&&n.Worker){var f=new Worker(r.filename);f.onmessage=function(t){u.highlightedCode=t.data,r.hooks.run("before-insert",u),u.element.innerHTML=u.highlightedCode,i&&i.call(u.element),r.hooks.run("after-highlight",u),r.hooks.run("complete",u)},f.postMessage(JSON.stringify({language:u.language,code:u.code,immediateClose:!0}))}else u.highlightedCode=r.highlight(u.code,u.grammar,u.language),r.hooks.run("before-insert",u),u.element.innerHTML=u.highlightedCode,i&&i.call(e),r.hooks.run("after-highlight",u),r.hooks.run("complete",u)},highlight:function(t,e,n){var i=r.tokenize(t,e);return o.stringify(r.util.encode(i),n)},matchGrammar:function(t,e,n,o,i,a,s){var c=r.Token;for(var u in n)if(n.hasOwnProperty(u)&&n[u]){if(u==s)return;var f=n[u];f="Array"===r.util.type(f)?f:[f];for(var l=0;l<f.length;++l){var p=f[l],h=p.inside,d=!!p.lookbehind,v=!!p.greedy,y=0,m=p.alias;if(v&&!p.pattern.global){var g=p.pattern.toString().match(/[imuy]*$/)[0];p.pattern=RegExp(p.pattern.source,g+"g")}p=p.pattern||p;for(var b=o,_=i;b<e.length;_+=e[b].length,++b){var w=e[b];if(e.length>t.length)return;if(!(w instanceof c)){p.lastIndex=0;var x=1;if(!(j=p.exec(w))&&v&&b!=e.length-1){if(p.lastIndex=_,!(j=p.exec(t)))break;for(var O=j.index+(d?j[1].length:0),k=j.index+j[0].length,A=b,C=_,S=e.length;A<S&&(C<k||!e[A].type&&!e[A-1].greedy);++A)O>=(C+=e[A].length)&&(++b,_=C);if(e[b]instanceof c||e[A-1].greedy)continue;x=A-b,w=t.slice(_,C),j.index-=_}if(j){d&&(y=j[1].length);k=(O=j.index+y)+(j=j[0].slice(y)).length;var j,E=w.slice(0,O),$=w.slice(k),T=[b,x];E&&(++b,_+=E.length,T.push(E));var M=new c(u,h?r.tokenize(j,h):j,m,j,v);if(T.push(M),$&&T.push($),Array.prototype.splice.apply(e,T),1!=x&&r.matchGrammar(t,e,n,b,_,!0,u),a)break}else if(a)break}}}}},tokenize:function(t,e,n){var o=[t],i=e.rest;if(i){for(var a in i)e[a]=i[a];delete e.rest}return r.matchGrammar(t,o,e,0,0,!1),o},hooks:{all:{},add:function(t,e){var n=r.hooks.all;n[t]=n[t]||[],n[t].push(e)},run:function(t,e){var n=r.hooks.all[t];if(n&&n.length)for(var o,i=0;o=n[i++];)o(e)}}},o=r.Token=function(t,e,n,r,o){this.type=t,this.content=e,this.alias=n,this.length=0|(r||"").length,this.greedy=!!o};if(o.stringify=function(t,e,n){if("string"==typeof t)return t;if("Array"===r.util.type(t))return t.map(function(n){return o.stringify(n,e,t)}).join("");var i={type:t.type,content:o.stringify(t.content,e,n),tag:"span",classes:["token",t.type],attributes:{},language:e,parent:n};if(t.alias){var a="Array"===r.util.type(t.alias)?t.alias:[t.alias];Array.prototype.push.apply(i.classes,a)}r.hooks.run("wrap",i);var s=Object.keys(i.attributes).map(function(t){return t+'="'+(i.attributes[t]||"").replace(/"/g,"&quot;")+'"'}).join(" ");return"<"+i.tag+' class="'+i.classes.join(" ")+'"'+(s?" "+s:"")+">"+i.content+"</"+i.tag+">"},!n.document)return n.addEventListener?(r.disableWorkerMessageHandler||n.addEventListener("message",function(t){var e=JSON.parse(t.data),o=e.language,i=e.code,a=e.immediateClose;n.postMessage(r.highlight(i,r.languages[o],o)),a&&n.close()},!1),n.Prism):n.Prism;var i=document.currentScript||[].slice.call(document.getElementsByTagName("script")).pop();return i&&(r.filename=i.src,r.manual||i.hasAttribute("data-manual")||("loading"!==document.readyState?window.requestAnimationFrame?window.requestAnimationFrame(r.highlightAll):window.setTimeout(r.highlightAll,16):document.addEventListener("DOMContentLoaded",r.highlightAll))),n.Prism}();void 0!==t&&t.exports&&(t.exports=r),void 0!==e&&(e.Prism=r),r.languages.markup={comment:/<!--[\s\S]*?-->/,prolog:/<\?[\s\S]+?\?>/,doctype:/<!DOCTYPE[\s\S]+?>/i,cdata:/<!\[CDATA\[[\s\S]*?]]>/i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+)/i,inside:{punctuation:[/^=/,{pattern:/(^|[^\\])["']/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/&#?[\da-z]{1,8};/i},r.languages.markup.tag.inside["attr-value"].inside.entity=r.languages.markup.entity,r.hooks.add("wrap",function(t){"entity"===t.type&&(t.attributes.title=t.content.replace(/&amp;/,"&"))}),r.languages.xml=r.languages.markup,r.languages.html=r.languages.markup,r.languages.mathml=r.languages.markup,r.languages.svg=r.languages.markup,r.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-]+?.*?(?:;|(?=\s*\{))/i,inside:{rule:/@[\w-]+/}},url:/url\((?:(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|.*?)\)/i,selector:/[^{}\s][^{};]*?(?=\s*\{)/,string:{pattern:/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},property:/[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i,important:/\B!important\b/i,function:/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:]/},r.languages.css.atrule.inside.rest=r.util.clone(r.languages.css),r.languages.markup&&(r.languages.insertBefore("markup","tag",{style:{pattern:/(<style[\s\S]*?>)[\s\S]*?(?=<\/style>)/i,lookbehind:!0,inside:r.languages.css,alias:"language-css",greedy:!0}}),r.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i,inside:{"attr-name":{pattern:/^\s*style/i,inside:r.languages.markup.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/i,inside:r.languages.css}},alias:"language-css"}},r.languages.markup.tag)),r.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/[a-z0-9_]+(?=\()/i,number:/\b-?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)\b/i,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,punctuation:/[{}[\];(),.:]/},r.languages.javascript=r.languages.extend("clike",{keyword:/\b(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/,number:/\b-?(?:0[xX][\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+|\d*\.?\d+(?:[Ee][+-]?\d+)?|NaN|Infinity)\b/,function:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*\()/i,operator:/-[-=]?|\+[+=]?|!=?=?|<<?=?|>>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/}),r.languages.insertBefore("javascript","keyword",{regex:{pattern:/(^|[^/])\/(?!\/)(\[[^\]\r\n]+]|\\.|[^/\\\[\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})]))/,lookbehind:!0,greedy:!0},"function-variable":{pattern:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=\s*(?:function\b|(?:\([^()]*\)|[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/i,alias:"function"}}),r.languages.insertBefore("javascript","string",{"template-string":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,greedy:!0,inside:{interpolation:{pattern:/\$\{[^}]+\}/,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:r.languages.javascript}},string:/[\s\S]+/}}}),r.languages.markup&&r.languages.insertBefore("markup","tag",{script:{pattern:/(<script[\s\S]*?>)[\s\S]*?(?=<\/script>)/i,lookbehind:!0,inside:r.languages.javascript,alias:"language-javascript",greedy:!0}}),r.languages.js=r.languages.javascript,"undefined"!=typeof self&&self.Prism&&self.document&&document.querySelector&&(self.Prism.fileHighlight=function(){var t={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"};Array.prototype.slice.call(document.querySelectorAll("pre[data-src]")).forEach(function(e){for(var n,o=e.getAttribute("data-src"),i=e,a=/\blang(?:uage)?-(?!\*)(\w+)\b/i;i&&!a.test(i.className);)i=i.parentNode;if(i&&(n=(e.className.match(a)||[,""])[1]),!n){var s=(o.match(/\.(\w+)$/)||[,""])[1];n=t[s]||s}var c=document.createElement("code");c.className="language-"+n,e.textContent="",c.textContent="Loading…",e.appendChild(c);var u=new XMLHttpRequest;u.open("GET",o,!0),u.onreadystatechange=function(){4==u.readyState&&(u.status<400&&u.responseText?(c.textContent=u.responseText,r.highlightElement(c)):u.status>=400?c.textContent="✖ Error "+u.status+" while fetching file: "+u.statusText:c.textContent="✖ Error: File does not exist or is empty")},u.send(null)})},document.addEventListener("DOMContentLoaded",self.Prism.fileHighlight))}).call(e,n("DuR2"))},ON07:function(t,e,n){var r=n("EqjI"),o=n("7KvD").document,i=r(o)&&r(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},OYls:function(t,e,n){n("crlp")("asyncIterator")},PzxK:function(t,e,n){var r=n("D2L2"),o=n("sB3e"),i=n("ax3d")("IE_PROTO"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=o(t),r(t,i)?t[i]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?a:null}},QRG4:function(t,e,n){var r=n("UuGF"),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},"QWe/":function(t,e,n){n("crlp")("observable")},QnYn:function(t,e){t.exports=function(t){return/^['"].*['"]$/.test(t)&&(t=t.slice(1,-1)),/["'() \t\n]/.test(t)?'"'+t.replace(/"/g,'\\"').replace(/\n/g,"\\n")+'"':t}},R4wc:function(t,e,n){var r=n("kM2E");r(r.S+r.F,"Object",{assign:n("To3L")})},R9M2:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},RPLV:function(t,e,n){var r=n("7KvD").document;t.exports=r&&r.documentElement},"RY/4":function(t,e,n){var r=n("R9M2"),o=n("dSzd")("toStringTag"),i="Arguments"==r(function(){return arguments}());t.exports=function(t){var e,n,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),o))?n:i?r(e):"Object"==(a=r(e))&&"function"==typeof e.callee?"Arguments":a}},Rrel:function(t,e,n){var r=n("TcQ7"),o=n("n0T6").f,i={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&"[object Window]"==i.call(t)?function(t){try{return o(t)}catch(t){return a.slice()}}(t):o(r(t))}},S82l:function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},SfB7:function(t,e,n){t.exports=!n("+E39")&&!n("S82l")(function(){return 7!=Object.defineProperty(n("ON07")("div"),"a",{get:function(){return 7}}).a})},SldL:function(t,e){!function(e){"use strict";var n,r=Object.prototype,o=r.hasOwnProperty,i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",c=i.toStringTag||"@@toStringTag",u="object"==typeof t,f=e.regeneratorRuntime;if(f)u&&(t.exports=f);else{(f=e.regeneratorRuntime=u?t.exports:{}).wrap=_;var l="suspendedStart",p="suspendedYield",h="executing",d="completed",v={},y={};y[a]=function(){return this};var m=Object.getPrototypeOf,g=m&&m(m(T([])));g&&g!==r&&o.call(g,a)&&(y=g);var b=k.prototype=x.prototype=Object.create(y);O.prototype=b.constructor=k,k.constructor=O,k[c]=O.displayName="GeneratorFunction",f.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===O||"GeneratorFunction"===(e.displayName||e.name))},f.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,k):(t.__proto__=k,c in t||(t[c]="GeneratorFunction")),t.prototype=Object.create(b),t},f.awrap=function(t){return{__await:t}},A(C.prototype),C.prototype[s]=function(){return this},f.AsyncIterator=C,f.async=function(t,e,n,r){var o=new C(_(t,e,n,r));return f.isGeneratorFunction(e)?o:o.next().then(function(t){return t.done?t.value:o.next()})},A(b),b[c]="Generator",b[a]=function(){return this},b.toString=function(){return"[object Generator]"},f.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function n(){for(;e.length;){var r=e.pop();if(r in t)return n.value=r,n.done=!1,n}return n.done=!0,n}},f.values=T,$.prototype={constructor:$,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=n,this.done=!1,this.delegate=null,this.method="next",this.arg=n,this.tryEntries.forEach(E),!t)for(var e in this)"t"===e.charAt(0)&&o.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=n)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(r,o){return s.type="throw",s.arg=t,e.next=r,o&&(e.method="next",e.arg=n),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var c=o.call(a,"catchLoc"),u=o.call(a,"finallyLoc");if(c&&u){if(this.prev<a.catchLoc)return r(a.catchLoc,!0);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}else if(c){if(this.prev<a.catchLoc)return r(a.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return r(a.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&o.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var i=r;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method="next",this.next=i.finallyLoc,v):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),v},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),E(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var o=r.arg;E(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:T(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=n),v}}}function _(t,e,n,r){var o,i,a,s,c=e&&e.prototype instanceof x?e:x,u=Object.create(c.prototype),f=new $(r||[]);return u._invoke=(o=t,i=n,a=f,s=l,function(t,e){if(s===h)throw new Error("Generator is already running");if(s===d){if("throw"===t)throw e;return M()}for(a.method=t,a.arg=e;;){var n=a.delegate;if(n){var r=S(n,a);if(r){if(r===v)continue;return r}}if("next"===a.method)a.sent=a._sent=a.arg;else if("throw"===a.method){if(s===l)throw s=d,a.arg;a.dispatchException(a.arg)}else"return"===a.method&&a.abrupt("return",a.arg);s=h;var c=w(o,i,a);if("normal"===c.type){if(s=a.done?d:p,c.arg===v)continue;return{value:c.arg,done:a.done}}"throw"===c.type&&(s=d,a.method="throw",a.arg=c.arg)}}),u}function w(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}function x(){}function O(){}function k(){}function A(t){["next","throw","return"].forEach(function(e){t[e]=function(t){return this._invoke(e,t)}})}function C(t){var e;this._invoke=function(n,r){function i(){return new Promise(function(e,i){!function e(n,r,i,a){var s=w(t[n],t,r);if("throw"!==s.type){var c=s.arg,u=c.value;return u&&"object"==typeof u&&o.call(u,"__await")?Promise.resolve(u.__await).then(function(t){e("next",t,i,a)},function(t){e("throw",t,i,a)}):Promise.resolve(u).then(function(t){c.value=t,i(c)},a)}a(s.arg)}(n,r,e,i)})}return e=e?e.then(i,i):i()}}function S(t,e){var r=t.iterator[e.method];if(r===n){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=n,S(t,e),"throw"===e.method))return v;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var o=w(r,t.iterator,e.arg);if("throw"===o.type)return e.method="throw",e.arg=o.arg,e.delegate=null,v;var i=o.arg;return i?i.done?(e[t.resultName]=i.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=n),e.delegate=null,v):i:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,v)}function j(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function E(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function $(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(j,this),this.reset(!0)}function T(t){if(t){var e=t[a];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r<t.length;)if(o.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=n,e.done=!0,e};return i.next=i}}return{next:M}}function M(){return{value:n,done:!0}}}(function(){return this}()||Function("return this")())},TcQ7:function(t,e,n){var r=n("MU5D"),o=n("52gC");t.exports=function(t){return r(o(t))}},To3L:function(t,e,n){"use strict";var r=n("lktj"),o=n("1kS7"),i=n("NpIQ"),a=n("sB3e"),s=n("MU5D"),c=Object.assign;t.exports=!c||n("S82l")(function(){var t={},e={},n=Symbol(),r="abcdefghijklmnopqrst";return t[n]=7,r.split("").forEach(function(t){e[t]=t}),7!=c({},t)[n]||Object.keys(c({},e)).join("")!=r})?function(t,e){for(var n=a(t),c=arguments.length,u=1,f=o.f,l=i.f;c>u;)for(var p,h=s(arguments[u++]),d=f?r(h).concat(f(h)):r(h),v=d.length,y=0;v>y;)l.call(h,p=d[y++])&&(n[p]=h[p]);return n}:c},U5ju:function(t,e,n){n("M6a0"),n("zQR9"),n("+tPU"),n("CXw9"),n("EqBC"),n("jKW+"),t.exports=n("FeBl").Promise},UuGF:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},V3tA:function(t,e,n){n("R4wc"),t.exports=n("FeBl").Object.assign},"VU/8":function(t,e){t.exports=function(t,e,n,r,o,i){var a,s=t=t||{},c=typeof t.default;"object"!==c&&"function"!==c||(a=t,s=t.default);var u,f="function"==typeof s?s.options:s;if(e&&(f.render=e.render,f.staticRenderFns=e.staticRenderFns,f._compiled=!0),n&&(f.functional=!0),o&&(f._scopeId=o),i?(u=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(i)},f._ssrRegister=u):r&&(u=r),u){var l=f.functional,p=l?f.render:f.beforeCreate;l?(f._injectStyles=u,f.render=function(t,e){return u.call(e),p(t,e)}):f.beforeCreate=p?[].concat(p,u):[u]}return{esModule:a,exports:s,options:f}}},W2nU:function(t,e){var n,r,o=t.exports={};function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(t){if(n===setTimeout)return setTimeout(t,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(t,0);try{return n(t,0)}catch(e){try{return n.call(null,t,0)}catch(e){return n.call(this,t,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:i}catch(t){n=i}try{r="function"==typeof clearTimeout?clearTimeout:a}catch(t){r=a}}();var c,u=[],f=!1,l=-1;function p(){f&&c&&(f=!1,c.length?u=c.concat(u):l=-1,u.length&&h())}function h(){if(!f){var t=s(p);f=!0;for(var e=u.length;e;){for(c=u,u=[];++l<e;)c&&c[l].run();l=-1,e=u.length}c=null,f=!1,function(t){if(r===clearTimeout)return clearTimeout(t);if((r===a||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(t);try{r(t)}catch(e){try{return r.call(null,t)}catch(e){return r.call(this,t)}}}(t)}}function d(t,e){this.fun=t,this.array=e}function v(){}o.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];u.push(new d(t,e)),1!==u.length||f||s(h)},d.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=v,o.addListener=v,o.once=v,o.off=v,o.removeListener=v,o.removeAllListeners=v,o.emit=v,o.prependListener=v,o.prependOnceListener=v,o.listeners=function(t){return[]},o.binding=function(t){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(t){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}},X8DO:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},Xc4G:function(t,e,n){var r=n("lktj"),o=n("1kS7"),i=n("NpIQ");t.exports=function(t){var e=r(t),n=o.f;if(n)for(var a,s=n(t),c=i.f,u=0;s.length>u;)c.call(t,a=s[u++])&&e.push(a);return e}},Xxa5:function(t,e,n){t.exports=n("jyFz")},YHym:function(t,e){t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var n=function(t,e){var n=t[1]||"",r=t[3];if(!r)return n;if(e&&"function"==typeof btoa){var o=(a=r,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(a))))+" */"),i=r.sources.map(function(t){return"/*# sourceURL="+r.sourceRoot+t+" */"});return[n].concat(i).concat([o]).join("\n")}var a;return[n].join("\n")}(e,t);return e[2]?"@media "+e[2]+"{"+n+"}":n}).join("")},e.i=function(t,n){"string"==typeof t&&(t=[[null,t,""]]);for(var r={},o=0;o<this.length;o++){var i=this[o][0];"number"==typeof i&&(r[i]=!0)}for(o=0;o<t.length;o++){var a=t[o];"number"==typeof a[0]&&r[a[0]]||(n&&!a[2]?a[2]=n:n&&(a[2]="("+a[2]+") and ("+n+")"),e.push(a))}},e}},Yobk:function(t,e,n){var r=n("77Pl"),o=n("qio6"),i=n("xnc9"),a=n("ax3d")("IE_PROTO"),s=function(){},c=function(){var t,e=n("ON07")("iframe"),r=i.length;for(e.style.display="none",n("RPLV").appendChild(e),e.src="javascript:",(t=e.contentWindow.document).open(),t.write("<script>document.F=Object<\/script>"),t.close(),c=t.F;r--;)delete c.prototype[i[r]];return c()};t.exports=Object.create||function(t,e){var n;return null!==t?(s.prototype=r(t),n=new s,s.prototype=null,n[a]=t):n=c(),void 0===e?n:o(n,e)}},Zzip:function(t,e,n){t.exports={default:n("/n6Q"),__esModule:!0}},ax3d:function(t,e,n){var r=n("e8AB")("keys"),o=n("3Eo+");t.exports=function(t){return r[t]||(r[t]=o(t))}},bRrM:function(t,e,n){"use strict";var r=n("7KvD"),o=n("FeBl"),i=n("evD5"),a=n("+E39"),s=n("dSzd")("species");t.exports=function(t){var e="function"==typeof o[t]?o[t]:r[t];a&&e&&!e[s]&&i.f(e,s,{configurable:!0,get:function(){return this}})}},cEaC:function(t,e,n){t.exports=n.p+"fonts/fontawesome-webfont.674f50d.eot"},cmUn:function(t,e,n){t.exports=n.p+"fonts/fontawesome-webfont.674f50d.eot"},crlp:function(t,e,n){var r=n("7KvD"),o=n("FeBl"),i=n("O4g8"),a=n("Kh4W"),s=n("evD5").f;t.exports=function(t){var e=o.Symbol||(o.Symbol=i?{}:r.Symbol||{});"_"==t.charAt(0)||t in e||s(e,t,{value:a.f(t)})}},dNDb:function(t,e){t.exports=function(t){try{return{e:!1,v:t()}}catch(t){return{e:!0,v:t}}}},dSzd:function(t,e,n){var r=n("e8AB")("wks"),o=n("3Eo+"),i=n("7KvD").Symbol,a="function"==typeof i;(t.exports=function(t){return r[t]||(r[t]=a&&i[t]||(a?i:o)("Symbol."+t))}).store=r},dY0y:function(t,e,n){var r=n("dSzd")("iterator"),o=!1;try{var i=[7][r]();i.return=function(){o=!0},Array.from(i,function(){throw 2})}catch(t){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i=[7],a=i[r]();a.next=function(){return{done:n=!0}},i[r]=function(){return a},t(i)}catch(t){}return n}},e6n0:function(t,e,n){var r=n("evD5").f,o=n("D2L2"),i=n("dSzd")("toStringTag");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},e8AB:function(t,e,n){var r=n("7KvD"),o=r["__core-js_shared__"]||(r["__core-js_shared__"]={});t.exports=function(t){return o[t]||(o[t]={})}},evD5:function(t,e,n){var r=n("77Pl"),o=n("SfB7"),i=n("MmMw"),a=Object.defineProperty;e.f=n("+E39")?Object.defineProperty:function(t,e,n){if(r(t),e=i(e,!0),r(n),o)try{return a(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},exGp:function(t,e,n){"use strict";e.__esModule=!0;var r,o=n("//Fk"),i=(r=o)&&r.__esModule?r:{default:r};e.default=function(t){return function(){var e=t.apply(this,arguments);return new i.default(function(t,n){return function r(o,a){try{var s=e[o](a),c=s.value}catch(t){return void n(t)}if(!s.done)return i.default.resolve(c).then(function(t){r("next",t)},function(t){r("throw",t)});t(c)}("next")})}}},fJUb:function(t,e,n){var r=n("77Pl"),o=n("EqjI"),i=n("qARP");t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t);return(0,n.resolve)(e),n.promise}},fWfb:function(t,e,n){"use strict";var r=n("7KvD"),o=n("D2L2"),i=n("+E39"),a=n("kM2E"),s=n("880/"),c=n("06OY").KEY,u=n("S82l"),f=n("e8AB"),l=n("e6n0"),p=n("3Eo+"),h=n("dSzd"),d=n("Kh4W"),v=n("crlp"),y=n("Xc4G"),m=n("7UMu"),g=n("77Pl"),b=n("EqjI"),_=n("TcQ7"),w=n("MmMw"),x=n("X8DO"),O=n("Yobk"),k=n("Rrel"),A=n("LKZe"),C=n("evD5"),S=n("lktj"),j=A.f,E=C.f,$=k.f,T=r.Symbol,M=r.JSON,P=M&&M.stringify,L="prototype",I=h("_hidden"),N=h("toPrimitive"),R={}.propertyIsEnumerable,F=f("symbol-registry"),D=f("symbols"),B=f("op-symbols"),U=Object[L],q="function"==typeof T,z=r.QObject,V=!z||!z[L]||!z[L].findChild,G=i&&u(function(){return 7!=O(E({},"a",{get:function(){return E(this,"a",{value:7}).a}})).a})?function(t,e,n){var r=j(U,e);r&&delete U[e],E(t,e,n),r&&t!==U&&E(U,e,r)}:E,H=function(t){var e=D[t]=O(T[L]);return e._k=t,e},K=q&&"symbol"==typeof T.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof T},W=function(t,e,n){return t===U&&W(B,e,n),g(t),e=w(e,!0),g(n),o(D,e)?(n.enumerable?(o(t,I)&&t[I][e]&&(t[I][e]=!1),n=O(n,{enumerable:x(0,!1)})):(o(t,I)||E(t,I,x(1,{})),t[I][e]=!0),G(t,e,n)):E(t,e,n)},Q=function(t,e){g(t);for(var n,r=y(e=_(e)),o=0,i=r.length;i>o;)W(t,n=r[o++],e[n]);return t},J=function(t){var e=R.call(this,t=w(t,!0));return!(this===U&&o(D,t)&&!o(B,t))&&(!(e||!o(this,t)||!o(D,t)||o(this,I)&&this[I][t])||e)},Y=function(t,e){if(t=_(t),e=w(e,!0),t!==U||!o(D,e)||o(B,e)){var n=j(t,e);return!n||!o(D,e)||o(t,I)&&t[I][e]||(n.enumerable=!0),n}},X=function(t){for(var e,n=$(_(t)),r=[],i=0;n.length>i;)o(D,e=n[i++])||e==I||e==c||r.push(e);return r},Z=function(t){for(var e,n=t===U,r=$(n?B:_(t)),i=[],a=0;r.length>a;)!o(D,e=r[a++])||n&&!o(U,e)||i.push(D[e]);return i};q||(s((T=function(){if(this instanceof T)throw TypeError("Symbol is not a constructor!");var t=p(arguments.length>0?arguments[0]:void 0),e=function(n){this===U&&e.call(B,n),o(this,I)&&o(this[I],t)&&(this[I][t]=!1),G(this,t,x(1,n))};return i&&V&&G(U,t,{configurable:!0,set:e}),H(t)})[L],"toString",function(){return this._k}),A.f=Y,C.f=W,n("n0T6").f=k.f=X,n("NpIQ").f=J,n("1kS7").f=Z,i&&!n("O4g8")&&s(U,"propertyIsEnumerable",J,!0),d.f=function(t){return H(h(t))}),a(a.G+a.W+a.F*!q,{Symbol:T});for(var tt="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),et=0;tt.length>et;)h(tt[et++]);for(var nt=S(h.store),rt=0;nt.length>rt;)v(nt[rt++]);a(a.S+a.F*!q,"Symbol",{for:function(t){return o(F,t+="")?F[t]:F[t]=T(t)},keyFor:function(t){if(!K(t))throw TypeError(t+" is not a symbol!");for(var e in F)if(F[e]===t)return e},useSetter:function(){V=!0},useSimple:function(){V=!1}}),a(a.S+a.F*!q,"Object",{create:function(t,e){return void 0===e?O(t):Q(O(t),e)},defineProperty:W,defineProperties:Q,getOwnPropertyDescriptor:Y,getOwnPropertyNames:X,getOwnPropertySymbols:Z}),M&&a(a.S+a.F*(!q||u(function(){var t=T();return"[null]"!=P([t])||"{}"!=P({a:t})||"{}"!=P(Object(t))})),"JSON",{stringify:function(t){for(var e,n,r=[t],o=1;arguments.length>o;)r.push(arguments[o++]);if(n=e=r[1],(b(e)||void 0!==t)&&!K(t))return m(e)||(e=function(t,e){if("function"==typeof n&&(e=n.call(this,t,e)),!K(e))return e}),r[1]=e,P.apply(M,r)}}),T[L][N]||n("hJx8")(T[L],N,T[L].valueOf),l(T,"Symbol"),l(Math,"Math",!0),l(r.JSON,"JSON",!0)},fZjL:function(t,e,n){t.exports={default:n("jFbC"),__esModule:!0}},fkB2:function(t,e,n){var r=n("UuGF"),o=Math.max,i=Math.min;t.exports=function(t,e){return(t=r(t))<0?o(t+e,0):i(t,e)}},fxRn:function(t,e,n){n("+tPU"),n("zQR9"),t.exports=n("g8Ux")},g8Ux:function(t,e,n){var r=n("77Pl"),o=n("3fs2");t.exports=n("FeBl").getIterator=function(t){var e=o(t);if("function"!=typeof e)throw TypeError(t+" is not iterable!");return r(e.call(t))}},h65t:function(t,e,n){var r=n("UuGF"),o=n("52gC");t.exports=function(t){return function(e,n){var i,a,s=String(o(e)),c=r(n),u=s.length;return c<0||c>=u?t?"":void 0:(i=s.charCodeAt(c))<55296||i>56319||c+1===u||(a=s.charCodeAt(c+1))<56320||a>57343?t?s.charAt(c):i:t?s.slice(c,c+2):a-56320+(i-55296<<10)+65536}}},hJx8:function(t,e,n){var r=n("evD5"),o=n("X8DO");t.exports=n("+E39")?function(t,e,n){return r.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},hKoQ:function(t,e){var n,r;n=this,r=function(){"use strict";function t(t){return"function"==typeof t}var e=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)},n=0,r=void 0,o=void 0,i=function(t,e){p[n]=t,p[n+1]=e,2===(n+=2)&&(o?o(h):g())};var a="undefined"!=typeof window?window:void 0,s=a||{},c=s.MutationObserver||s.WebKitMutationObserver,u="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),f="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel;function l(){var t=setTimeout;return function(){return t(h,1)}}var p=new Array(1e3);function h(){for(var t=0;t<n;t+=2){(0,p[t])(p[t+1]),p[t]=void 0,p[t+1]=void 0}n=0}var d,v,y,m,g=void 0;function b(t,e){var n=this,r=new this.constructor(x);void 0===r[w]&&D(r);var o=n._state;if(o){var a=arguments[o-1];i(function(){return R(o,r,a,n._result)})}else P(n,r,t,e);return r}function _(t){if(t&&"object"==typeof t&&t.constructor===this)return t;var e=new this(x);return E(e,t),e}u?g=function(){return process.nextTick(h)}:c?(v=0,y=new c(h),m=document.createTextNode(""),y.observe(m,{characterData:!0}),g=function(){m.data=v=++v%2}):f?((d=new MessageChannel).port1.onmessage=h,g=function(){return d.port2.postMessage(0)}):g=void 0===a&&"function"==typeof require?function(){try{var t=require("vertx");return void 0!==(r=t.runOnLoop||t.runOnContext)?function(){r(h)}:l()}catch(t){return l()}}():l();var w=Math.random().toString(36).substring(16);function x(){}var O=void 0,k=1,A=2,C=new I;function S(t){try{return t.then}catch(t){return C.error=t,C}}function j(e,n,r){var o,a,s,c;n.constructor===e.constructor&&r===b&&n.constructor.resolve===_?(s=e,(c=n)._state===k?T(s,c._result):c._state===A?M(s,c._result):P(c,void 0,function(t){return E(s,t)},function(t){return M(s,t)})):r===C?(M(e,C.error),C.error=null):void 0===r?T(e,n):t(r)?(o=n,a=r,i(function(t){var e=!1,n=function(t,e,n,r){try{t.call(e,n,r)}catch(t){return t}}(a,o,function(n){e||(e=!0,o!==n?E(t,n):T(t,n))},function(n){e||(e=!0,M(t,n))},t._label);!e&&n&&(e=!0,M(t,n))},e)):T(e,n)}function E(t,e){var n,r;t===e?M(t,new TypeError("You cannot resolve a promise with itself")):(r=typeof(n=e),null===n||"object"!==r&&"function"!==r?T(t,e):j(t,e,S(e)))}function $(t){t._onerror&&t._onerror(t._result),L(t)}function T(t,e){t._state===O&&(t._result=e,t._state=k,0!==t._subscribers.length&&i(L,t))}function M(t,e){t._state===O&&(t._state=A,t._result=e,i($,t))}function P(t,e,n,r){var o=t._subscribers,a=o.length;t._onerror=null,o[a]=e,o[a+k]=n,o[a+A]=r,0===a&&t._state&&i(L,t)}function L(t){var e=t._subscribers,n=t._state;if(0!==e.length){for(var r=void 0,o=void 0,i=t._result,a=0;a<e.length;a+=3)r=e[a],o=e[a+n],r?R(n,r,o,i):o(i);t._subscribers.length=0}}function I(){this.error=null}var N=new I;function R(e,n,r,o){var i=t(r),a=void 0,s=void 0,c=void 0,u=void 0;if(i){if((a=function(t,e){try{return t(e)}catch(t){return N.error=t,N}}(r,o))===N?(u=!0,s=a.error,a.error=null):c=!0,n===a)return void M(n,new TypeError("A promises callback cannot return that same promise."))}else a=o,c=!0;n._state!==O||(i&&c?E(n,a):u?M(n,s):e===k?T(n,a):e===A&&M(n,a))}var F=0;function D(t){t[w]=F++,t._state=void 0,t._result=void 0,t._subscribers=[]}var B=function(){function t(t,n){this._instanceConstructor=t,this.promise=new t(x),this.promise[w]||D(this.promise),e(n)?(this.length=n.length,this._remaining=n.length,this._result=new Array(this.length),0===this.length?T(this.promise,this._result):(this.length=this.length||0,this._enumerate(n),0===this._remaining&&T(this.promise,this._result))):M(this.promise,new Error("Array Methods must be provided an Array"))}return t.prototype._enumerate=function(t){for(var e=0;this._state===O&&e<t.length;e++)this._eachEntry(t[e],e)},t.prototype._eachEntry=function(t,e){var n=this._instanceConstructor,r=n.resolve;if(r===_){var o=S(t);if(o===b&&t._state!==O)this._settledAt(t._state,e,t._result);else if("function"!=typeof o)this._remaining--,this._result[e]=t;else if(n===U){var i=new n(x);j(i,t,o),this._willSettleAt(i,e)}else this._willSettleAt(new n(function(e){return e(t)}),e)}else this._willSettleAt(r(t),e)},t.prototype._settledAt=function(t,e,n){var r=this.promise;r._state===O&&(this._remaining--,t===A?M(r,n):this._result[e]=n),0===this._remaining&&T(r,this._result)},t.prototype._willSettleAt=function(t,e){var n=this;P(t,void 0,function(t){return n._settledAt(k,e,t)},function(t){return n._settledAt(A,e,t)})},t}();var U=function(){function t(e){this[w]=F++,this._result=this._state=void 0,this._subscribers=[],x!==e&&("function"!=typeof e&&function(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}(),this instanceof t?function(t,e){try{e(function(e){E(t,e)},function(e){M(t,e)})}catch(e){M(t,e)}}(this,e):function(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}())}return t.prototype.catch=function(t){return this.then(null,t)},t.prototype.finally=function(t){var e=this.constructor;return this.then(function(n){return e.resolve(t()).then(function(){return n})},function(n){return e.resolve(t()).then(function(){throw n})})},t}();return U.prototype.then=b,U.all=function(t){return new B(this,t).promise},U.race=function(t){var n=this;return e(t)?new n(function(e,r){for(var o=t.length,i=0;i<o;i++)n.resolve(t[i]).then(e,r)}):new n(function(t,e){return e(new TypeError("You must pass an array to race."))})},U.resolve=_,U.reject=function(t){var e=new this(x);return M(e,t),e},U._setScheduler=function(t){o=t},U._setAsap=function(t){i=t},U._asap=i,U.polyfill=function(){var t=void 0;if("undefined"!=typeof global)t=global;else if("undefined"!=typeof self)t=self;else try{t=Function("return this")()}catch(t){throw new Error("polyfill failed because global object is unavailable in this environment")}var e=t.Promise;if(e){var n=null;try{n=Object.prototype.toString.call(e.resolve())}catch(t){}if("[object Promise]"===n&&!e.cast)return}t.Promise=U},U.Promise=U,U},"object"==typeof e&&void 0!==t?t.exports=r():"function"==typeof define&&define.amd?define(r):n.ES6Promise=r()},jFbC:function(t,e,n){n("Cdx3"),t.exports=n("FeBl").Object.keys},"jKW+":function(t,e,n){"use strict";var r=n("kM2E"),o=n("qARP"),i=n("dNDb");r(r.S,"Promise",{try:function(t){var e=o.f(this),n=i(t);return(n.e?e.reject:e.resolve)(n.v),e.promise}})},jNsU:function(t,e,n){t.exports=n.p+"fonts/fontawesome-webfont.fee66e7.woff"},jyFz:function(t,e,n){var r=function(){return this}()||Function("return this")(),o=r.regeneratorRuntime&&Object.getOwnPropertyNames(r).indexOf("regeneratorRuntime")>=0,i=o&&r.regeneratorRuntime;if(r.regeneratorRuntime=void 0,t.exports=n("SldL"),o)r.regeneratorRuntime=i;else try{delete r.regeneratorRuntime}catch(t){r.regeneratorRuntime=void 0}},kM2E:function(t,e,n){var r=n("7KvD"),o=n("FeBl"),i=n("+ZMJ"),a=n("hJx8"),s="prototype",c=function(t,e,n){var u,f,l,p=t&c.F,h=t&c.G,d=t&c.S,v=t&c.P,y=t&c.B,m=t&c.W,g=h?o:o[e]||(o[e]={}),b=g[s],_=h?r:d?r[e]:(r[e]||{})[s];h&&(n=e);for(u in n)(f=!p&&_&&void 0!==_[u])&&u in g||(l=f?_[u]:n[u],g[u]=h&&"function"!=typeof _[u]?n[u]:y&&f?i(l,r):m&&_[u]==l?function(t){var e=function(e,n,r){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,r)}return t.apply(this,arguments)};return e[s]=t[s],e}(l):v&&"function"==typeof l?i(Function.call,l):l,v&&((g.virtual||(g.virtual={}))[u]=l,t&c.R&&b&&!b[u]&&a(b,u,l)))};c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,t.exports=c},knuC:function(t,e){t.exports=function(t,e,n){var r=void 0===n;switch(e.length){case 0:return r?t():t.call(n);case 1:return r?t(e[0]):t.call(n,e[0]);case 2:return r?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return r?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return r?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},lOnJ:function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},lktj:function(t,e,n){var r=n("Ibhu"),o=n("xnc9");t.exports=Object.keys||function(t){return r(t,o)}},"m6/3":function(t,e){Prism.languages.json={property:/"(?:\\.|[^\\"\r\n])*"(?=\s*:)/i,string:{pattern:/"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,greedy:!0},number:/\b-?(?:0x[\dA-Fa-f]+|\d*\.?\d+(?:[Ee][+-]?\d+)?)\b/,punctuation:/[{}[\]);,]/,operator:/:/g,boolean:/\b(?:true|false)\b/i,null:/\bnull\b/i},Prism.languages.jsonp=Prism.languages.json},mClu:function(t,e,n){var r=n("kM2E");r(r.S+r.F*!n("+E39"),"Object",{defineProperty:n("evD5").f})},msXi:function(t,e,n){var r=n("77Pl");t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(e){var i=t.return;throw void 0!==i&&r(i.call(t)),e}}},mvHQ:function(t,e,n){t.exports={default:n("qkKv"),__esModule:!0}},mypn:function(t,e,n){(function(t,e){!function(t,n){"use strict";if(!t.setImmediate){var r,o,i,a,s,c=1,u={},f=!1,l=t.document,p=Object.getPrototypeOf&&Object.getPrototypeOf(t);p=p&&p.setTimeout?p:t,"[object process]"==={}.toString.call(t.process)?r=function(t){e.nextTick(function(){d(t)})}:!function(){if(t.postMessage&&!t.importScripts){var e=!0,n=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=n,e}}()?t.MessageChannel?((i=new MessageChannel).port1.onmessage=function(t){d(t.data)},r=function(t){i.port2.postMessage(t)}):l&&"onreadystatechange"in l.createElement("script")?(o=l.documentElement,r=function(t){var e=l.createElement("script");e.onreadystatechange=function(){d(t),e.onreadystatechange=null,o.removeChild(e),e=null},o.appendChild(e)}):r=function(t){setTimeout(d,0,t)}:(a="setImmediate$"+Math.random()+"$",s=function(e){e.source===t&&"string"==typeof e.data&&0===e.data.indexOf(a)&&d(+e.data.slice(a.length))},t.addEventListener?t.addEventListener("message",s,!1):t.attachEvent("onmessage",s),r=function(e){t.postMessage(a+e,"*")}),p.setImmediate=function(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),n=0;n<e.length;n++)e[n]=arguments[n+1];var o={callback:t,args:e};return u[c]=o,r(c),c++},p.clearImmediate=h}function h(t){delete u[t]}function d(t){if(f)setTimeout(d,0,t);else{var e=u[t];if(e){f=!0;try{!function(t){var e=t.callback,r=t.args;switch(r.length){case 0:e();break;case 1:e(r[0]);break;case 2:e(r[0],r[1]);break;case 3:e(r[0],r[1],r[2]);break;default:e.apply(n,r)}}(e)}finally{h(t),f=!1}}}}}("undefined"==typeof self?void 0===t?this:t:self)}).call(e,n("DuR2"),n("W2nU"))},n0T6:function(t,e,n){var r=n("Ibhu"),o=n("xnc9").concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},"of+2":function(t,e,n){t.exports=n.p+"fonts/fontawesome-webfont.af7ae50.woff2"},p3jY:function(t,e,n){var r;r=function(){"use strict";var t=Object.getOwnPropertySymbols,e=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable;var r=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(t){r[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(t){return!1}}()?Object.assign:function(r,o){for(var i,a,s=arguments,c=function(t){if(null===t||void 0===t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}(r),u=1;u<arguments.length;u++){i=Object(s[u]);for(var f in i)e.call(i,f)&&(c[f]=i[f]);if(t){a=t(i);for(var l=0;l<a.length;l++)n.call(i,a[l])&&(c[a[l]]=i[a[l]])}}return c},o=function(t){return!(o=t,!o||"object"!=typeof o||(e=t,n=Object.prototype.toString.call(e),"[object RegExp]"===n||"[object Date]"===n||(r=e,r.$$typeof===i)));var e,n,r,o};var i="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function a(t,e){var n;return(!e||!1!==e.clone)&&o(t)?c((n=t,Array.isArray(n)?[]:{}),t,e):t}function s(t,e,n){return t.concat(e).map(function(t){return a(t,n)})}function c(t,e,n){var r,i,u,f,l=Array.isArray(e);return l===Array.isArray(t)?l?((n||{arrayMerge:s}).arrayMerge||s)(t,e,n):(i=e,u=n,f={},o(r=t)&&Object.keys(r).forEach(function(t){f[t]=a(r[t],u)}),Object.keys(i).forEach(function(t){o(i[t])&&r[t]?f[t]=c(r[t],i[t],u):f[t]=a(i[t],u)}),f):a(e,n)}c.all=function(t,e){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(t,n){return c(t,n,e)},{})};var u=c,f="[object Object]";var l,p,h=Function.prototype,d=Object.prototype,v=h.toString,y=d.hasOwnProperty,m=v.call(Object),g=d.toString,b=(l=Object.getPrototypeOf,p=Object,function(t){return l(p(t))});var _=function(t){if(!(e=t)||"object"!=typeof e||g.call(t)!=f||function(t){var e=!1;if(null!=t&&"function"!=typeof t.toString)try{e=!!(t+"")}catch(t){}return e}(t))return!1;var e,n=b(t);if(null===n)return!0;var r=y.call(n,"constructor")&&n.constructor;return"function"==typeof r&&r instanceof r&&v.call(r)==m};var w=function(t){return"undefined"==typeof window?String(t).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;"):String(t).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'")};function x(t){void 0===t&&(t={});var e=t.keyName,n=t.tagIDKeyName;return function(t){var r=function t(e,n){void 0===n&&(n={});var r=e.component,o=e.option,i=e.deep,a=e.arrayMerge,s=r.$options;if(r._inactive)return n;if(void 0!==s[o]&&null!==s[o]){var c=s[o];"function"==typeof c&&(c=c.call(r)),n="object"==typeof c?u(n,c,{arrayMerge:a}):c}return i&&r.$children.length&&r.$children.forEach(function(e){n=t({component:e,option:o,deep:i,arrayMerge:a},n)}),n}({component:t,option:e,deep:!0,arrayMerge:function(t,e){var r=[];for(var o in t){var i=t[o],a=!1;for(var s in e){var c=e[s];if(i[n]&&i[n]===c[n]){a=!0;break}}a||r.push(i)}return r.concat(e)}});r.title&&(r.titleChunk=r.title),r.titleTemplate&&("function"==typeof r.titleTemplate?r.title=r.titleTemplate.call(t,r.titleChunk):r.title=r.titleTemplate.replace(/%s/g,r.titleChunk)),r.base&&(r.base=Object.keys(r.base).length?[r.base]:[]);var o=r.__dangerouslyDisableSanitizers,i=r.__dangerouslyDisableSanitizersByTagID,a=function(t){return Object.keys(t).reduce(function(e,r){var s=o&&o.indexOf(r)>-1,c=t[n];!s&&c&&(s=i&&i[c]&&i[c].indexOf(r)>-1);var u,f=t[r];return e[r]=f,"__dangerouslyDisableSanitizers"===r||"__dangerouslyDisableSanitizersByTagID"===r?e:(s?e[r]=f:"string"==typeof f?e[r]=w(f):_(f)?e[r]=a(f):(u=f,(Array.isArray?Array.isArray(u):"[object Array]"===Object.prototype.toString.call(u))?e[r]=f.map(a):e[r]=f),e)},{})};return r=u({title:"",titleChunk:"",titleTemplate:"%s",htmlAttrs:{},bodyAttrs:{},headAttrs:{},meta:[],base:[],link:[],style:[],script:[],noscript:[],__dangerouslyDisableSanitizers:[],__dangerouslyDisableSanitizersByTagID:{}},r),r=a(r)}}function O(t){return void 0===t&&(t={}),function(e,n){switch(e){case"title":return function(t){void 0===t&&(t={});var e=t.attribute;return function(t,n){return{text:function(){return"<"+t+" "+e+'="true">'+n+"</"+t+">"}}}}(t)(e,n);case"htmlAttrs":case"bodyAttrs":case"headAttrs":return function(t){void 0===t&&(t={});var e=t.attribute;return function(t,n){return{text:function(){var t="",r=[];for(var o in n)n.hasOwnProperty(o)&&(r.push(o),t+=(void 0!==n[o]?o+'="'+n[o]+'"':o)+" ");return(t+=e+'="'+r.join(",")+'"').trim()}}}}(t)(e,n);default:return function(t){void 0===t&&(t={});var e=t.attribute;return function(n,r){return{text:function(o){void 0===o&&(o={});var i=o.body;return void 0===i&&(i=!1),r.reduce(function(r,o){if(!!o.body!==i)return r;var a=Object.keys(o).reduce(function(e,n){switch(n){case"innerHTML":case"cssText":case"once":return e;default:return-1!==[t.tagIDKeyName,"body"].indexOf(n)?e+" data-"+n+'="'+o[n]+'"':void 0===o[n]?e+" "+n:e+" "+n+'="'+o[n]+'"'}},"").trim(),s=o.innerHTML||o.cssText||"",c=-1===["noscript","script","style"].indexOf(n),u=o.once?"":e+'="true" ';return c?r+"<"+n+" "+u+a+"/>":r+"<"+n+" "+u+a+">"+s+"</"+n+">"},"")}}}}(t)(e,n)}}}function k(t){void 0===t&&(t={});var e=t.attribute;return function(t,n){var r=n.getAttribute(e),o=r?r.split(","):[],i=[].concat(o);for(var a in t)if(t.hasOwnProperty(a)){var s=t[a]||"";n.setAttribute(a,s),-1===o.indexOf(a)&&o.push(a);var c=i.indexOf(a);-1!==c&&i.splice(c,1)}for(var u=i.length-1;u>=0;u--)n.removeAttribute(i[u]);o.length===i.length?n.removeAttribute(e):n.setAttribute(e,o.join(","))}}var A=Function.prototype.call.bind(Array.prototype.slice);function C(t){void 0===t&&(t={});var e=t.ssrAttribute;return function(n){var r=document.getElementsByTagName("html")[0];if(null===r.getAttribute(e)){var o={},i={};Object.keys(n).forEach(function(e){switch(e){case"title":void 0===(l=n.title)&&(l=document.title),document.title=l;break;case"htmlAttrs":k(t)(n[e],r);break;case"bodyAttrs":k(t)(n[e],document.getElementsByTagName("body")[0]);break;case"headAttrs":k(t)(n[e],document.getElementsByTagName("head")[0]);break;case"titleChunk":case"titleTemplate":case"changed":case"__dangerouslyDisableSanitizers":break;default:var a=document.getElementsByTagName("head")[0],s=document.getElementsByTagName("body")[0],c=function(t){void 0===t&&(t={});var e=t.attribute;return function(n,r,o,i){var a,s=A(o.querySelectorAll(n+"["+e+"]")),c=A(i.querySelectorAll(n+"["+e+'][data-body="true"]')),u=[];if(r.length>1){var f=[];r=r.map(function(t){var e=JSON.stringify(t);if(f.indexOf(e)<0)return f.push(e),t}).filter(function(t){return t})}r&&r.length&&r.forEach(function(r){var o=document.createElement(n),i=!0!==r.body?s:c;for(var f in r)if(r.hasOwnProperty(f))if("innerHTML"===f)o.innerHTML=r.innerHTML;else if("cssText"===f)o.styleSheet?o.styleSheet.cssText=r.cssText:o.appendChild(document.createTextNode(r.cssText));else if(-1!==[t.tagIDKeyName,"body"].indexOf(f)){var l="data-"+f,p=void 0===r[f]?"":r[f];o.setAttribute(l,p)}else{var h=void 0===r[f]?"":r[f];o.setAttribute(f,h)}o.setAttribute(e,"true"),i.some(function(t,e){return a=e,o.isEqualNode(t)})?i.splice(a,1):u.push(o)});var l=s.concat(c);return l.forEach(function(t){return t.parentNode.removeChild(t)}),u.forEach(function(t){"true"===t.getAttribute("data-body")?i.appendChild(t):o.appendChild(t)}),{oldTags:l,newTags:u}}}(t)(e,n[e],a,s),u=c.oldTags,f=c.newTags;f.length&&(o[e]=f,i[e]=u)}var l}),"function"==typeof n.changed&&n.changed.call(this,n,o,i)}else r.removeAttribute(e)}}function S(t){return void 0===t&&(t={}),function(){return{inject:(n=t,void 0===n&&(n={}),function(){var t=x(n)(this.$root);for(var e in t)t.hasOwnProperty(e)&&"titleTemplate"!==e&&"titleChunk"!==e&&(t[e]=O(n)(e,t[e]));return t}).bind(this),refresh:(e=t,void 0===e&&(e={}),function(){var t=x(e)(this.$root);return C(e).call(this,t),t}).bind(this)};var e,n}}var j=("undefined"!=typeof window?window.cancelAnimationFrame:null)||clearTimeout,E=("undefined"!=typeof window?window.requestAnimationFrame:null)||function(t){return setTimeout(t,0)};function $(t,e){return j(t),E(function(){t=null,e()})}var T="metaInfo",M="data-vue-meta",P="data-vue-meta-server-rendered",L="vmid";function I(t,e){void 0===e&&(e={}),e=r({keyName:T,attribute:M,ssrAttribute:P,tagIDKeyName:L},e),t.prototype.$meta=S(e);var n=null;t.mixin({beforeCreate:function(){void 0!==this.$options[e.keyName]&&(this._hasMetaInfo=!0),"function"==typeof this.$options[e.keyName]&&(void 0===this.$options.computed&&(this.$options.computed={}),this.$options.computed.$metaInfo=this.$options[e.keyName])},created:function(){var t=this;!this.$isServer&&this.$metaInfo&&this.$watch("$metaInfo",function(){n=$(n,function(){return t.$meta().refresh()})})},activated:function(){var t=this;this._hasMetaInfo&&(n=$(n,function(){return t.$meta().refresh()}))},deactivated:function(){var t=this;this._hasMetaInfo&&(n=$(n,function(){return t.$meta().refresh()}))},beforeMount:function(){var t=this;this._hasMetaInfo&&(n=$(n,function(){return t.$meta().refresh()}))},destroyed:function(){var t=this;if(!this.$isServer&&this._hasMetaInfo)var e=setInterval(function(){null===t.$el.offsetParent&&(clearInterval(e),n=$(n,function(){return t.$meta().refresh()}))},50)}})}"undefined"!=typeof window&&void 0!==window.Vue&&Vue.use(I);return I.version="1.4.2",I},t.exports=r()},pFYg:function(t,e,n){"use strict";e.__esModule=!0;var r=a(n("Zzip")),o=a(n("5QVw")),i="function"==typeof o.default&&"symbol"==typeof r.default?function(t){return typeof t}:function(t){return t&&"function"==typeof o.default&&t.constructor===o.default&&t!==o.default.prototype?"symbol":typeof t};function a(t){return t&&t.__esModule?t:{default:t}}e.default="function"==typeof o.default&&"symbol"===i(r.default)?function(t){return void 0===t?"undefined":i(t)}:function(t){return t&&"function"==typeof o.default&&t.constructor===o.default&&t!==o.default.prototype?"symbol":void 0===t?"undefined":i(t)}},qARP:function(t,e,n){"use strict";var r=n("lOnJ");t.exports.f=function(t){return new function(t){var e,n;this.promise=new t(function(t,r){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=r}),this.resolve=r(e),this.reject=r(n)}(t)}},qio6:function(t,e,n){var r=n("evD5"),o=n("77Pl"),i=n("lktj");t.exports=n("+E39")?Object.defineProperties:function(t,e){o(t);for(var n,a=i(e),s=a.length,c=0;s>c;)r.f(t,n=a[c++],e[n]);return t}},qkKv:function(t,e,n){var r=n("FeBl"),o=r.JSON||(r.JSON={stringify:JSON.stringify});t.exports=function(t){return o.stringify.apply(o,arguments)}},rjj0:function(t,e,n){var r="undefined"!=typeof document;if("undefined"!=typeof DEBUG&&DEBUG&&!r)throw new Error("vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.");var o=n("tTVk"),i={},a=r&&(document.head||document.getElementsByTagName("head")[0]),s=null,c=0,u=!1,f=function(){},l="undefined"!=typeof navigator&&/msie [6-9]\b/.test(navigator.userAgent.toLowerCase());function p(t){for(var e=0;e<t.length;e++){var n=t[e],r=i[n.id];if(r){r.refs++;for(var o=0;o<r.parts.length;o++)r.parts[o](n.parts[o]);for(;o<n.parts.length;o++)r.parts.push(d(n.parts[o]));r.parts.length>n.parts.length&&(r.parts.length=n.parts.length)}else{var a=[];for(o=0;o<n.parts.length;o++)a.push(d(n.parts[o]));i[n.id]={id:n.id,refs:1,parts:a}}}}function h(){var t=document.createElement("style");return t.type="text/css",a.appendChild(t),t}function d(t){var e,n,r=document.querySelector('style[data-vue-ssr-id~="'+t.id+'"]');if(r){if(u)return f;r.parentNode.removeChild(r)}if(l){var o=c++;r=s||(s=h()),e=m.bind(null,r,o,!1),n=m.bind(null,r,o,!0)}else r=h(),e=function(t,e){var n=e.css,r=e.media,o=e.sourceMap;r&&t.setAttribute("media",r);o&&(n+="\n/*# sourceURL="+o.sources[0]+" */",n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+" */");if(t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}.bind(null,r),n=function(){r.parentNode.removeChild(r)};return e(t),function(r){if(r){if(r.css===t.css&&r.media===t.media&&r.sourceMap===t.sourceMap)return;e(t=r)}else n()}}t.exports=function(t,e,n){u=n;var r=o(t,e);return p(r),function(e){for(var n=[],a=0;a<r.length;a++){var s=r[a];(c=i[s.id]).refs--,n.push(c)}e?p(r=o(t,e)):r=[];for(a=0;a<n.length;a++){var c;if(0===(c=n[a]).refs){for(var u=0;u<c.parts.length;u++)c.parts[u]();delete i[c.id]}}}};var v,y=(v=[],function(t,e){return v[t]=e,v.filter(Boolean).join("\n")});function m(t,e,n,r){var o=n?"":r.css;if(t.styleSheet)t.styleSheet.cssText=y(e,o);else{var i=document.createTextNode(o),a=t.childNodes;a[e]&&t.removeChild(a[e]),a.length?t.insertBefore(i,a[e]):t.appendChild(i)}}},sB3e:function(t,e,n){var r=n("52gC");t.exports=function(t){return Object(r(t))}},t8x9:function(t,e,n){var r=n("77Pl"),o=n("lOnJ"),i=n("dSzd")("species");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||void 0==(n=r(a)[i])?e:o(n)}},tTVk:function(t,e){t.exports=function(t,e){for(var n=[],r={},o=0;o<e.length;o++){var i=e[o],a=i[0],s={id:t+":"+o,css:i[1],media:i[2],sourceMap:i[3]};r[a]?r[a].parts.push(s):n.push(r[a]={id:a,parts:[s]})}return n}},uqUo:function(t,e,n){var r=n("kM2E"),o=n("FeBl"),i=n("S82l");t.exports=function(t,e){var n=(o.Object||{})[t]||Object[t],a={};a[t]=e(n),r(r.S+r.F*i(function(){n(1)}),"Object",a)}},"vFc/":function(t,e,n){var r=n("TcQ7"),o=n("QRG4"),i=n("fkB2");t.exports=function(t){return function(e,n,a){var s,c=r(e),u=o(c.length),f=i(a,u);if(t&&n!=n){for(;u>f;)if((s=c[f++])!=s)return!0}else for(;u>f;f++)if((t||f in c)&&c[f]===n)return t||f||0;return!t&&-1}}},"vIB/":function(t,e,n){"use strict";var r=n("O4g8"),o=n("kM2E"),i=n("880/"),a=n("hJx8"),s=n("D2L2"),c=n("/bQp"),u=n("94VQ"),f=n("e6n0"),l=n("PzxK"),p=n("dSzd")("iterator"),h=!([].keys&&"next"in[].keys()),d=function(){return this};t.exports=function(t,e,n,v,y,m,g){u(n,e,v);var b,_,w,x=function(t){if(!h&&t in C)return C[t];switch(t){case"keys":case"values":return function(){return new n(this,t)}}return function(){return new n(this,t)}},O=e+" Iterator",k="values"==y,A=!1,C=t.prototype,S=C[p]||C["@@iterator"]||y&&C[y],j=!h&&S||x(y),E=y?k?x("entries"):j:void 0,$="Array"==e?C.entries||S:S;if($&&(w=l($.call(new t)))!==Object.prototype&&w.next&&(f(w,O,!0),r||s(w,p)||a(w,p,d)),k&&S&&"values"!==S.name&&(A=!0,j=function(){return S.call(this)}),r&&!g||!h&&!A&&C[p]||a(C,p,j),c[e]=j,c[O]=d,y)if(b={values:k?j:x("values"),keys:m?j:x("keys"),entries:E},g)for(_ in b)_ in C||i(C,_,b[_]);else o(o.P+o.F*(h||A),e,b);return b}},woOf:function(t,e,n){t.exports={default:n("V3tA"),__esModule:!0}},xGkn:function(t,e,n){"use strict";var r=n("4mcu"),o=n("EGZi"),i=n("/bQp"),a=n("TcQ7");t.exports=n("vIB/")(Array,"Array",function(t,e){this._t=a(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,o(1)):o(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])},"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},"xH/j":function(t,e,n){var r=n("hJx8");t.exports=function(t,e,n){for(var o in e)n&&t[o]?t[o]=e[o]:r(t,o,e[o]);return t}},xnc9:function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},zQR9:function(t,e,n){"use strict";var r=n("h65t")(!0);n("vIB/")(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})})}},[0]);
\ No newline at end of file
diff --git a/images/componentOverview.svg b/images/componentOverview.svg
deleted file mode 100644
index b0557ee..0000000
--- a/images/componentOverview.svg
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="349px" preserveAspectRatio="none" style="width:580px;height:349px;" version="1.1" viewBox="0 0 580 349" width="580px" zoomAndPan="magnify"><defs><filter height="300%" id="f1jix2jleldpzu" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><!--cluster PPMP Producer / Machine--><polygon fill="#FFFFFF" filter="url(#f1jix2jleldpzu)" points="22,34,32,24,558,24,558,109,548,119,22,119,22,34" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="548" x2="557" y1="34" y2="25"/><line style="stroke: #000000; stroke-width: 1.5;" x1="22" x2="548" y1="34" y2="34"/><line style="stroke: #000000; stroke-width: 1.5;" x1="548" x2="548" y1="34" y2="119"/><text fill="#50237F" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="181" x="195.5" y="51.5332">PPMP Producer / Machine</text><!--cluster PPMP Consumer--><polygon fill="#FFFFFF" filter="url(#f1jix2jleldpzu)" points="25,252,35,242,460,242,460,327,450,337,25,337,25,252" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="450" x2="459" y1="252" y2="243"/><line style="stroke: #000000; stroke-width: 1.5;" x1="25" x2="450" y1="252" y2="252"/><line style="stroke: #000000; stroke-width: 1.5;" x1="450" x2="450" y1="252" y2="337"/><text fill="#50237F" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="116" x="180.5" y="269.5332">PPMP Consumer</text><!--entity Information / Alarms--><rect fill="#F5F5F5" filter="url(#f1jix2jleldpzu)" height="37.6094" style="stroke: #000000; stroke-width: 1.5;" width="145" x="38.5" y="65"/><rect fill="#F5F5F5" height="5" style="stroke: #000000; stroke-width: 1.5;" width="10" x="33.5" y="70"/><rect fill="#F5F5F5" height="5" style="stroke: #000000; stroke-width: 1.5;" width="10" x="33.5" y="92.6094"/><text fill="#50237F" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="125" x="48.5" y="89.5332">Information / Alarms</text><!--entity Sensor values--><rect fill="#F5F5F5" filter="url(#f1jix2jleldpzu)" height="37.6094" style="stroke: #000000; stroke-width: 1.5;" width="110" x="219" y="65"/><rect fill="#F5F5F5" height="5" style="stroke: #000000; stroke-width: 1.5;" width="10" x="214" y="70"/><rect fill="#F5F5F5" height="5" style="stroke: #000000; stroke-width: 1.5;" width="10" x="214" y="92.6094"/><text fill="#50237F" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="90" x="229" y="89.5332">Sensor values</text><!--entity End-to-end process data--><rect fill="#F5F5F5" filter="url(#f1jix2jleldpzu)" height="37.6094" style="stroke: #000000; stroke-width: 1.5;" width="177" x="364.5" y="65"/><rect fill="#F5F5F5" height="5" style="stroke: #000000; stroke-width: 1.5;" width="10" x="359.5" y="70"/><rect fill="#F5F5F5" height="5" style="stroke: #000000; stroke-width: 1.5;" width="10" x="359.5" y="92.6094"/><text fill="#50237F" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="157" x="374.5" y="89.5332">End-to-end process data</text><!--entity Machine Messages--><rect fill="#F5F5F5" filter="url(#f1jix2jleldpzu)" height="37.6094" style="stroke: #000000; stroke-width: 1.5;" width="141" x="41.5" y="283"/><rect fill="#F5F5F5" height="5" style="stroke: #000000; stroke-width: 1.5;" width="10" x="36.5" y="288"/><rect fill="#F5F5F5" height="5" style="stroke: #000000; stroke-width: 1.5;" width="10" x="36.5" y="310.6094"/><text fill="#50237F" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="121" x="51.5" y="307.5332">Machine Messages</text><!--entity Measurements--><rect fill="#F5F5F5" filter="url(#f1jix2jleldpzu)" height="37.6094" style="stroke: #000000; stroke-width: 1.5;" width="113" x="217.5" y="283"/><rect fill="#F5F5F5" height="5" style="stroke: #000000; stroke-width: 1.5;" width="10" x="212.5" y="288"/><rect fill="#F5F5F5" height="5" style="stroke: #000000; stroke-width: 1.5;" width="10" x="212.5" y="310.6094"/><text fill="#50237F" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="93" x="227.5" y="307.5332">Measurements</text><!--entity Processs--><rect fill="#F5F5F5" filter="url(#f1jix2jleldpzu)" height="37.6094" style="stroke: #000000; stroke-width: 1.5;" width="78" x="366" y="283"/><rect fill="#F5F5F5" height="5" style="stroke: #000000; stroke-width: 1.5;" width="10" x="361" y="288"/><rect fill="#F5F5F5" height="5" style="stroke: #000000; stroke-width: 1.5;" width="10" x="361" y="310.6094"/><text fill="#50237F" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="58" x="376" y="307.5332">Processs</text><!--entity p--><ellipse cx="429" cy="193" fill="#78BE20" filter="url(#f1jix2jleldpzu)" rx="8" ry="8" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#50237F" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="54" x="402" y="224.5332">/process</text><!--entity m--><ellipse cx="111" cy="193" fill="#78BE20" filter="url(#f1jix2jleldpzu)" rx="8" ry="8" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#50237F" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="61" x="80.5" y="224.5332">/message</text><!--entity s--><ellipse cx="274" cy="193" fill="#78BE20" filter="url(#f1jix2jleldpzu)" rx="8" ry="8" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#50237F" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="90" x="229" y="224.5332">/measurement</text><!--link Information / Alarms to m--><path d="M111,103.151 C111,124.441 111,159.248 111,178.364 " fill="none" id="Information / Alarms-m" style="stroke: #000000; stroke-width: 1.0;"/><polygon fill="#000000" points="111,183.761,115,174.761,111,178.761,107,174.761,111,183.761" style="stroke: #000000; stroke-width: 1.0;"/><!--link m to Machine Messages--><path d="M111.075,202.042 C111.223,217.857 111.556,253.5389 111.78,277.4483 " fill="none" id="m-Machine Messages" style="stroke: #000000; stroke-width: 1.0;"/><polygon fill="#000000" points="111.829,282.6574,115.7445,273.6203,111.7821,277.6576,107.7448,273.6953,111.829,282.6574" style="stroke: #000000; stroke-width: 1.0;"/><!--link Sensor values to s--><path d="M274,103.151 C274,124.441 274,159.248 274,178.364 " fill="none" id="Sensor values-s" style="stroke: #000000; stroke-width: 1.0;"/><polygon fill="#000000" points="274,183.761,278,174.761,274,178.761,270,174.761,274,183.761" style="stroke: #000000; stroke-width: 1.0;"/><!--link s to Measurements--><path d="M274,202.042 C274,217.857 274,253.5389 274,277.4483 " fill="none" id="s-Measurements" style="stroke: #000000; stroke-width: 1.0;"/><polygon fill="#000000" points="274,282.6574,278,273.6574,274,277.6574,270,273.6574,274,282.6574" style="stroke: #000000; stroke-width: 1.0;"/><!--link End-to-end process data to p--><path d="M448.929,103.151 C444.112,124.624 436.211,159.849 431.948,178.855 " fill="none" id="End-to-end process data-p" style="stroke: #000000; stroke-width: 1.0;"/><polygon fill="#000000" points="430.848,183.761,436.7208,175.8547,431.9423,178.8822,428.9148,174.1037,430.848,183.761" style="stroke: #000000; stroke-width: 1.0;"/><!--link p to Processs--><path d="M427.196,202.042 C423.634,217.923 415.578,253.8391 410.215,277.749 " fill="none" id="p-Processs" style="stroke: #000000; stroke-width: 1.0;"/><polygon fill="#000000" points="409.114,282.6574,414.9868,274.7511,410.2083,277.7786,407.1808,273.0001,409.114,282.6574" style="stroke: #000000; stroke-width: 1.0;"/><!--
-@startuml
-skinparam interface {
-  BackgroundColor #78be20
-  FontColor #50237f
-  BorderColor black
-}
-
-skinparam node {
-  FontColor #50237f
-}
-
-skinparam component {
-  BorderColor black
-  FontColor #50237f
-  BackgroundColor #f5f5f5
-  ArrowColor black
-}
-
-() "/process" as p
-() "/message" as m
-() "/measurement" as s
-
-node "PPMP Producer / Machine" {
-  [Information / Alarms]
-  [Sensor values]
-  [End-to-end process data]
-} 
-node "PPMP Consumer" {
-  [Machine Messages]
-  [Measurements]
-  [Processs]
-} 
-
-[Information / Alarms] - ->  m
-m - -> [Machine Messages]
-[Sensor values] - -> s
-s - -> [Measurements]
-[End-to-end process data] - -> p
-p - -> [Processs]
-@enduml
-
-PlantUML version 1.2018.01(Sun Jan 28 19:08:22 CET 2018)
-(EPL source distribution)
-Java Runtime: Java(TM) SE Runtime Environment
-JVM: Java HotSpot(TM) 64-Bit Server VM
-Java Version: 1.8.0_144-b01
-Operating System: Windows 10
-OS Version: 10.0
-Default Encoding: Cp1252
-Language: en
-Country: US
---></g></svg>
\ No newline at end of file
diff --git a/images/componentOverview.uml b/images/componentOverview.uml
deleted file mode 100644
index 1c21adb..0000000
--- a/images/componentOverview.uml
+++ /dev/null
@@ -1,40 +0,0 @@
-@startuml
-skinparam interface {
-  BackgroundColor #78be20
-  FontColor #50237f
-  BorderColor black
-}
-
-skinparam node {
-  FontColor #50237f
-}
-
-skinparam component {
-  BorderColor black
-  FontColor #50237f
-  BackgroundColor #f5f5f5
-  ArrowColor black
-}
-
-() "/process" as p
-() "/message" as m
-() "/measurement" as s
-
-node "PPMP Producer / Machine" {
-  [Information / Alarms]
-  [Sensor values]
-  [End-to-end process data]
-} 
-node "PPMP Consumer" {
-  [Machine Messages]
-  [Measurements]
-  [Processs]
-} 
-
-[Information / Alarms] -->  m
-m --> [Machine Messages]
-[Sensor values] --> s
-s --> [Measurements]
-[End-to-end process data] --> p
-p --> [Processs]
-@enduml
diff --git a/images/measurementPayload.uml b/images/measurementPayload.uml
deleted file mode 100644
index dc6b65c..0000000
--- a/images/measurementPayload.uml
+++ /dev/null
@@ -1,70 +0,0 @@
-@startuml
-
-skinparam class {
-	BorderColor black
-	FontColor #50237f
-	BackgroundColor #f5f5f5
-	ArrowColor black
-}
-
-skinparam stereotype {
-	CBackgroundColor white
-	EBackgroundColor white
-}
-
-class MeasurementPayload {
-	content-spec : String
-	device : Device
-	measurements : Measurements
-	part[0..1] : Part
-}
-
-class Device {
-	deviceID : String
-	metaData[0..1] : <String, String>
-	operationalStatus[0..1] : String
-}
-
-class Part {
-	code[0..1] : String
-	metaData[0..1] : <String, String>
-	partID[0..1] : String
-	partTypeID[0..1] : String
-	result[0..1] : Result
-}
-
-class Measurement {
-	code[0..1] : String
-	limits[0..1] : LimitsList
-	result[0..1] : Result
-	series : Series
-	ts : Date
-}
-
-class Limits {
-	lowerError[0..1] : Float
-	lowerWarn[0..1] : Float
-	target[0..1] :  Float
-	upperError[0..1] : Float,
-	upperWarn[0..1] : Float
-}
-
-class Series {
-	$_time : [Integer]
-	<values>[1..*] : [Float]
-}
-
-enum Result {
-	OK
-	NOK
-	UNKNOWN
-}
-
-MeasurementPayload -- Device
-MeasurementPayload -- Part
-MeasurementPayload "1" o-- "1..*" Measurement : Measurements
-
-Measurement -- Series
-Measurement "1" *-- "0..1" Limits : LimitsList
-
-@enduml
\ No newline at end of file
diff --git a/images/processPayload.uml b/images/processPayload.uml
deleted file mode 100644
index e3e5084..0000000
--- a/images/processPayload.uml
+++ /dev/null
@@ -1,131 +0,0 @@
-@startuml
-
-skinparam class {
-	BorderColor black
-	FontColor #50237f
-	BackgroundColor #f5f5f5
-	ArrowColor black
-}
-skinparam stereotype {
-	CBackgroundColor white
-	EBackgroundColor white
-}
-
-class ProcessPayload {
-	content-spec : String
-	device : Device
-	measurements : Measurements
-	part[0..1] : Part
-	process : Process
-}
-
-class Device {
-	deviceID : String
-	metaData[0..1] : <String, String>
-	operationalStatus[0..1] : String
-}
-
-class Part {
-	code[0..1] : String
-	metaData[0..1] : <String, String>
-	partID[0..1] : String
-	partTypeID[0..1] : String
-	result[0..1] : Result
-	type[0..1] : PartType
-}
-
-class Process {
-	externalProcessId[0..1] : String
-	metaData[0..1] : <String, String>
-	program[0..1] : Program
-	result[0..1] : Result
-	shutoffPhase[0..1] : String
-	shutoffValues[0..1] : ShutoffValues
-	ts : Date
-}
-
-class Measurement {
-	code[0..1] : String
-	limits[0..1] : LimitsList
-	name[0..1] : String
-	phase[0..1] ; String
-	result[0..1] : Result
-	series : Series
-	specialValues[0..1] : SpecialValues
-	ts : Date
-}
-
-class Program {
-	id : String
-	lastChangeDate[0..1] : Date
-	name[0..1] : String
-}
-
-class ShutoffValue {
-	lowerError[0..1] : Float
-	lowerWarn[0..1] : Float
-	target[0..1] : Float
-	ts[0..1] : Date
-	upperError[0..1] : Float
-	upperWarn[0..1] : Float
-	value : Float
-}
-
-class Series {
-	$_time[0..1] : [Integer]
-	<value>[0..*] : [Float]
-}
-
-abstract class Limits {
-}
-
-class LimitsSingle {
-	lowerError[0..1] : Float
-	lowerWarn[0..1] : Float
-	target[0..1] : Float
-	upperError[0..1] : Float
-	upperWarn[0..1] : Float
-}
-
-class LimitsList {
-	lowerError[0..1] : [Float]
-	lowerWarn[0..1] : [Float]
-	target[0..1] : [Float]
-	upperError[0..1] : [Float]
-	upperWarn[0..1] : [Float]
-}
-
-
-class SpecialValue {
-	$_time[0..1] : Integer
-	name[0..1] : String
-	value : <String, Float>
-}
-
-enum PartType {
-	SINGLE
-	BATCH
-}
-
-enum Result {
-	OK
-	NOK
-	UNKNOWN
-}
-
-ProcessPayload -- Device
-ProcessPayload -- Part
-ProcessPayload -- Process
-ProcessPayload "1" o-- "0..*" Measurement : Measurements
-
-Process -- Program
-Process "1" *-- "0..*" ShutoffValue : ShutoffValues
-
-Measurement -- Series
-Measurement "1" *-- "0..*" Limits : LimitsList
-Measurement "1" o-- "0..*" SpecialValue : SpecialValues
-
-Limits <|-- LimitsSingle
-Limits <|-- LimitsList
-
-@enduml
\ No newline at end of file
diff --git a/images/measurementPayload.svg b/images/specification/v2/measurementPayload.svg
similarity index 100%
rename from images/measurementPayload.svg
rename to images/specification/v2/measurementPayload.svg
diff --git a/images/messagePayload.svg b/images/specification/v2/messagePayload.svg
similarity index 100%
rename from images/messagePayload.svg
rename to images/specification/v2/messagePayload.svg
diff --git a/images/processPayload.svg b/images/specification/v2/processPayload.svg
similarity index 100%
rename from images/processPayload.svg
rename to images/specification/v2/processPayload.svg
diff --git a/images/specification/v3/definitions.iuml b/images/specification/v3/definitions.iuml
new file mode 100644
index 0000000..3ba8bf7
--- /dev/null
+++ b/images/specification/v3/definitions.iuml
@@ -0,0 +1,79 @@
+@startuml
+
+skinparam class {
+	BorderColor black
+	FontColor #50237f
+	BackgroundColor #f5f5f5
+	ArrowColor black
+}
+skinparam stereotype{
+	CBackgroundColor white
+	EBackgroundColor white
+}
+
+class Device {
+	id: String
+	mode[0..1]: String
+	state[0..1]: DeviceState
+}
+
+class Measurement {
+	code[0..1]: String
+	context[0..1]: ContextList
+	result[0..1]: Result
+	series: Series
+	ts: Date
+}
+
+class Context {
+	accuracy[0..1]: Float | [Float]
+	limits[0..1]: Limits
+	offset[0..1]: Float | [Float]
+	type[0..1]: String
+	unit[0..1]: String
+}
+
+class Limits {
+	lowerError[0..1]: Float | [Float]
+	lowerWarn[0..1]: Float | [Float]
+	target[0..1]:  Float | [Float]
+	upperError[0..1]: Float | [Float]
+	upperWarn[0..1]: Float | [Float]
+}
+
+class Series {
+	time: [Integer]
+	<values>[1..*]: [Float]
+}
+
+class Part {
+	code[0..1]: String
+	id[0..1]: String
+	type[0..1]: PartType
+	typeId[0..1]: String
+	result[0..1]: Result
+}
+
+enum DeviceState {
+	OK
+	INFO
+	WARN
+	ERROR
+	UNKNOWN
+}
+
+enum Result {
+	OK
+	NOK
+	UNKNOWN
+}
+
+enum PartType {
+	SINGLE
+	BATCH
+}
+
+Measurement "1" *-- "0..1" Context : ContextList
+Context "1" *-- "0..*" Limits
+
+@enduml
\ No newline at end of file
diff --git a/images/specification/v3/measurementPayload.svg b/images/specification/v3/measurementPayload.svg
new file mode 100644
index 0000000..bcece42
--- /dev/null
+++ b/images/specification/v3/measurementPayload.svg
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="704px" preserveAspectRatio="none" style="width:572px;height:704px;" version="1.1" viewBox="0 0 572 704" width="572px" zoomAndPan="magnify"><defs><filter height="300%" id="f1o0ehwjily0ac" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><!--class Device--><rect fill="#F5F5F5" filter="url(#f1o0ehwjily0ac)" height="89.5078" id="Device" style="stroke: #000000; stroke-width: 1.5;" width="124" x="129.5" y="216.5"/><ellipse cx="169.25" cy="232.5" fill="#FFFFFF" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><path d="M172.0156,228.375 Q172.1719,228.1563 172.3594,228.0469 Q172.5469,227.9375 172.7656,227.9375 Q173.1406,227.9375 173.375,228.1953 Q173.6094,228.4531 173.6094,229.0625 L173.6094,230.5156 Q173.6094,231.125 173.375,231.3906 Q173.1406,231.6563 172.7656,231.6563 Q172.4219,231.6563 172.2188,231.4531 Q172.0156,231.2656 171.9063,230.75 Q171.8594,230.3906 171.6719,230.2031 Q171.3438,229.8281 170.7344,229.6094 Q170.125,229.3906 169.5,229.3906 Q168.7344,229.3906 168.1016,229.7188 Q167.4688,230.0469 166.9766,230.7969 Q166.4844,231.5469 166.4844,232.5781 L166.4844,233.6719 Q166.4844,234.9063 167.375,235.7266 Q168.2656,236.5469 169.8594,236.5469 Q170.7969,236.5469 171.4531,236.2969 Q171.8438,236.1406 172.2656,235.7031 Q172.5313,235.4375 172.6797,235.3594 Q172.8281,235.2813 173.0313,235.2813 Q173.3594,235.2813 173.6172,235.5391 Q173.875,235.7969 173.875,236.1406 Q173.875,236.4844 173.5313,236.8906 Q173.0313,237.4688 172.2344,237.7969 Q171.1563,238.25 169.8594,238.25 Q168.3438,238.25 167.1406,237.625 Q166.1563,237.125 165.4688,236.0547 Q164.7813,234.9844 164.7813,233.7031 L164.7813,232.5469 Q164.7813,231.2188 165.3984,230.0703 Q166.0156,228.9219 167.1094,228.3047 Q168.2031,227.6875 169.4375,227.6875 Q170.1719,227.6875 170.8203,227.8516 Q171.4688,228.0156 172.0156,228.375 Z "/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="37" x="188.75" y="237.4102">Device</text><line style="stroke: #000000; stroke-width: 1.5;" x1="130.5" x2="252.5" y1="248.5" y2="248.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="42" x="135.5" y="263.9189">id: String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="84" x="135.5" y="277.7549">mode[0..1]: String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="112" x="135.5" y="291.5908">state[0..1]: DeviceState</text><line style="stroke: #000000; stroke-width: 1.5;" x1="130.5" x2="252.5" y1="298.0078" y2="298.0078"/><!--class Measurement--><rect fill="#F5F5F5" filter="url(#f1o0ehwjily0ac)" height="117.1797" id="Measurement" style="stroke: #000000; stroke-width: 1.5;" width="132" x="288.5" y="203"/><ellipse cx="314.3" cy="219" fill="#FFFFFF" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><path d="M317.0656,214.875 Q317.2219,214.6563 317.4094,214.5469 Q317.5969,214.4375 317.8156,214.4375 Q318.1906,214.4375 318.425,214.6953 Q318.6594,214.9531 318.6594,215.5625 L318.6594,217.0156 Q318.6594,217.625 318.425,217.8906 Q318.1906,218.1563 317.8156,218.1563 Q317.4719,218.1563 317.2688,217.9531 Q317.0656,217.7656 316.9563,217.25 Q316.9094,216.8906 316.7219,216.7031 Q316.3938,216.3281 315.7844,216.1094 Q315.175,215.8906 314.55,215.8906 Q313.7844,215.8906 313.1516,216.2188 Q312.5188,216.5469 312.0266,217.2969 Q311.5344,218.0469 311.5344,219.0781 L311.5344,220.1719 Q311.5344,221.4063 312.425,222.2266 Q313.3156,223.0469 314.9094,223.0469 Q315.8469,223.0469 316.5031,222.7969 Q316.8938,222.6406 317.3156,222.2031 Q317.5813,221.9375 317.7297,221.8594 Q317.8781,221.7813 318.0813,221.7813 Q318.4094,221.7813 318.6672,222.0391 Q318.925,222.2969 318.925,222.6406 Q318.925,222.9844 318.5813,223.3906 Q318.0813,223.9688 317.2844,224.2969 Q316.2063,224.75 314.9094,224.75 Q313.3938,224.75 312.1906,224.125 Q311.2063,223.625 310.5188,222.5547 Q309.8313,221.4844 309.8313,220.2031 L309.8313,219.0469 Q309.8313,217.7188 310.4484,216.5703 Q311.0656,215.4219 312.1594,214.8047 Q313.2531,214.1875 314.4875,214.1875 Q315.2219,214.1875 315.8703,214.3516 Q316.5188,214.5156 317.0656,214.875 Z "/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="330.7" y="223.9102">Measurement</text><line style="stroke: #000000; stroke-width: 1.5;" x1="289.5" x2="419.5" y1="235" y2="235"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="82" x="294.5" y="250.4189">code[0..1]: String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="120" x="294.5" y="264.2549">context[0..1]: ContextList</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="87" x="294.5" y="278.0908">result[0..1]: Result</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="67" x="294.5" y="291.9268">series: Series</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="37" x="294.5" y="305.7627">ts: Date</text><line style="stroke: #000000; stroke-width: 1.5;" x1="289.5" x2="419.5" y1="312.1797" y2="312.1797"/><!--class Context--><rect fill="#F5F5F5" filter="url(#f1o0ehwjily0ac)" height="117.1797" id="Context" style="stroke: #000000; stroke-width: 1.5;" width="148" x="280.5" y="398"/><ellipse cx="329.75" cy="414" fill="#FFFFFF" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><path d="M332.5156,409.875 Q332.6719,409.6563 332.8594,409.5469 Q333.0469,409.4375 333.2656,409.4375 Q333.6406,409.4375 333.875,409.6953 Q334.1094,409.9531 334.1094,410.5625 L334.1094,412.0156 Q334.1094,412.625 333.875,412.8906 Q333.6406,413.1563 333.2656,413.1563 Q332.9219,413.1563 332.7188,412.9531 Q332.5156,412.7656 332.4063,412.25 Q332.3594,411.8906 332.1719,411.7031 Q331.8438,411.3281 331.2344,411.1094 Q330.625,410.8906 330,410.8906 Q329.2344,410.8906 328.6016,411.2188 Q327.9688,411.5469 327.4766,412.2969 Q326.9844,413.0469 326.9844,414.0781 L326.9844,415.1719 Q326.9844,416.4063 327.875,417.2266 Q328.7656,418.0469 330.3594,418.0469 Q331.2969,418.0469 331.9531,417.7969 Q332.3438,417.6406 332.7656,417.2031 Q333.0313,416.9375 333.1797,416.8594 Q333.3281,416.7813 333.5313,416.7813 Q333.8594,416.7813 334.1172,417.0391 Q334.375,417.2969 334.375,417.6406 Q334.375,417.9844 334.0313,418.3906 Q333.5313,418.9688 332.7344,419.2969 Q331.6563,419.75 330.3594,419.75 Q328.8438,419.75 327.6406,419.125 Q326.6563,418.625 325.9688,417.5547 Q325.2813,416.4844 325.2813,415.2031 L325.2813,414.0469 Q325.2813,412.7188 325.8984,411.5703 Q326.5156,410.4219 327.6094,409.8047 Q328.7031,409.1875 329.9375,409.1875 Q330.6719,409.1875 331.3203,409.3516 Q331.9688,409.5156 332.5156,409.875 Z "/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="41" x="350.25" y="418.9102">Context</text><line style="stroke: #000000; stroke-width: 1.5;" x1="281.5" x2="427.5" y1="430" y2="430"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="286.5" y="445.4189">accuracy[0..1]: Float | [Float]</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="80" x="286.5" y="459.2549">limits[0..1]: Limits</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="119" x="286.5" y="473.0908">offset[0..1]: Float | [Float]</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="79" x="286.5" y="486.9268">type[0..1]: String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="75" x="286.5" y="500.7627">unit[0..1]: String</text><line style="stroke: #000000; stroke-width: 1.5;" x1="281.5" x2="427.5" y1="507.1797" y2="507.1797"/><!--class Limits--><rect fill="#F5F5F5" filter="url(#f1o0ehwjily0ac)" height="117.1797" id="Limits" style="stroke: #000000; stroke-width: 1.5;" width="156" x="276.5" y="576"/><ellipse cx="333.25" cy="592" fill="#FFFFFF" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><path d="M336.0156,587.875 Q336.1719,587.6563 336.3594,587.5469 Q336.5469,587.4375 336.7656,587.4375 Q337.1406,587.4375 337.375,587.6953 Q337.6094,587.9531 337.6094,588.5625 L337.6094,590.0156 Q337.6094,590.625 337.375,590.8906 Q337.1406,591.1563 336.7656,591.1563 Q336.4219,591.1563 336.2188,590.9531 Q336.0156,590.7656 335.9063,590.25 Q335.8594,589.8906 335.6719,589.7031 Q335.3438,589.3281 334.7344,589.1094 Q334.125,588.8906 333.5,588.8906 Q332.7344,588.8906 332.1016,589.2188 Q331.4688,589.5469 330.9766,590.2969 Q330.4844,591.0469 330.4844,592.0781 L330.4844,593.1719 Q330.4844,594.4063 331.375,595.2266 Q332.2656,596.0469 333.8594,596.0469 Q334.7969,596.0469 335.4531,595.7969 Q335.8438,595.6406 336.2656,595.2031 Q336.5313,594.9375 336.6797,594.8594 Q336.8281,594.7813 337.0313,594.7813 Q337.3594,594.7813 337.6172,595.0391 Q337.875,595.2969 337.875,595.6406 Q337.875,595.9844 337.5313,596.3906 Q337.0313,596.9688 336.2344,597.2969 Q335.1563,597.75 333.8594,597.75 Q332.3438,597.75 331.1406,597.125 Q330.1563,596.625 329.4688,595.5547 Q328.7813,594.4844 328.7813,593.2031 L328.7813,592.0469 Q328.7813,590.7188 329.3984,589.5703 Q330.0156,588.4219 331.1094,587.8047 Q332.2031,587.1875 333.4375,587.1875 Q334.1719,587.1875 334.8203,587.3516 Q335.4688,587.5156 336.0156,587.875 Z "/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="34" x="353.75" y="596.9102">Limits</text><line style="stroke: #000000; stroke-width: 1.5;" x1="277.5" x2="431.5" y1="608" y2="608"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="142" x="282.5" y="623.4189">lowerError[0..1]: Float | [Float]</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="144" x="282.5" y="637.2549">lowerWarn[0..1]: Float | [Float]</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="121" x="282.5" y="651.0908">target[0..1]:  Float | [Float]</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="142" x="282.5" y="664.9268">upperError[0..1]: Float | [Float]</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="144" x="282.5" y="678.7627">upperWarn[0..1]: Float | [Float]</text><line style="stroke: #000000; stroke-width: 1.5;" x1="277.5" x2="431.5" y1="685.1797" y2="685.1797"/><!--class Part--><rect fill="#F5F5F5" filter="url(#f1o0ehwjily0ac)" height="117.1797" id="Part" style="stroke: #000000; stroke-width: 1.5;" width="106" x="455.5" y="203"/><ellipse cx="493.9" cy="219" fill="#FFFFFF" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><path d="M496.6656,214.875 Q496.8219,214.6563 497.0094,214.5469 Q497.1969,214.4375 497.4156,214.4375 Q497.7906,214.4375 498.025,214.6953 Q498.2594,214.9531 498.2594,215.5625 L498.2594,217.0156 Q498.2594,217.625 498.025,217.8906 Q497.7906,218.1563 497.4156,218.1563 Q497.0719,218.1563 496.8688,217.9531 Q496.6656,217.7656 496.5563,217.25 Q496.5094,216.8906 496.3219,216.7031 Q495.9938,216.3281 495.3844,216.1094 Q494.775,215.8906 494.15,215.8906 Q493.3844,215.8906 492.7516,216.2188 Q492.1188,216.5469 491.6266,217.2969 Q491.1344,218.0469 491.1344,219.0781 L491.1344,220.1719 Q491.1344,221.4063 492.025,222.2266 Q492.9156,223.0469 494.5094,223.0469 Q495.4469,223.0469 496.1031,222.7969 Q496.4938,222.6406 496.9156,222.2031 Q497.1813,221.9375 497.3297,221.8594 Q497.4781,221.7813 497.6813,221.7813 Q498.0094,221.7813 498.2672,222.0391 Q498.525,222.2969 498.525,222.6406 Q498.525,222.9844 498.1813,223.3906 Q497.6813,223.9688 496.8844,224.2969 Q495.8063,224.75 494.5094,224.75 Q492.9938,224.75 491.7906,224.125 Q490.8063,223.625 490.1188,222.5547 Q489.4313,221.4844 489.4313,220.2031 L489.4313,219.0469 Q489.4313,217.7188 490.0484,216.5703 Q490.6656,215.4219 491.7594,214.8047 Q492.8531,214.1875 494.0875,214.1875 Q494.8219,214.1875 495.4703,214.3516 Q496.1188,214.5156 496.6656,214.875 Z "/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="22" x="513.1" y="223.9102">Part</text><line style="stroke: #000000; stroke-width: 1.5;" x1="456.5" x2="560.5" y1="235" y2="235"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="82" x="461.5" y="250.4189">code[0..1]: String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="66" x="461.5" y="264.2549">id[0..1]: String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="94" x="461.5" y="278.0908">type[0..1]: PartType</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="87" x="461.5" y="291.9268">typeId[0..1]: String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="87" x="461.5" y="305.7627">result[0..1]: Result</text><line style="stroke: #000000; stroke-width: 1.5;" x1="456.5" x2="560.5" y1="312.1797" y2="312.1797"/><!--class DeviceState--><rect fill="#F5F5F5" filter="url(#f1o0ehwjily0ac)" height="117.1797" id="DeviceState" style="stroke: #000000; stroke-width: 1.5;" width="97" x="6" y="8"/><ellipse cx="21" cy="24" fill="#FFFFFF" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><path d="M19.8594,24.7969 L19.8594,27.2969 L24.1875,27.2969 L24.1875,26.375 Q24.1875,25.7656 24.4297,25.5 Q24.6719,25.2344 25.0469,25.2344 Q25.4219,25.2344 25.6563,25.5 Q25.8906,25.7656 25.8906,26.375 L25.8906,29 L17.8906,29 Q17.2656,29 17.0078,28.7656 Q16.75,28.5313 16.75,28.1406 Q16.75,27.7656 17.0156,27.5313 Q17.2813,27.2969 17.8906,27.2969 L18.1563,27.2969 L18.1563,20.6406 L17.8906,20.6406 Q17.2656,20.6406 17.0078,20.4063 Q16.75,20.1719 16.75,19.7813 Q16.75,19.4063 17.0078,19.1719 Q17.2656,18.9375 17.8906,18.9375 L25.5156,18.9375 L25.5156,21.5313 Q25.5156,22.1406 25.2891,22.3984 Q25.0625,22.6563 24.6719,22.6563 Q24.2969,22.6563 24.0625,22.3984 Q23.8281,22.1406 23.8281,21.5313 L23.8281,20.6406 L19.8594,20.6406 L19.8594,23.0938 L21.3438,23.0938 Q21.3438,22.4375 21.4688,22.25 Q21.7344,21.8438 22.2031,21.8438 Q22.5781,21.8438 22.8125,22.1016 Q23.0469,22.3594 23.0469,22.9688 L23.0469,24.9375 Q23.0469,25.4844 22.9219,25.6719 Q22.6563,26.0625 22.2031,26.0625 Q21.7344,26.0625 21.4688,25.6563 Q21.3438,25.4688 21.3438,24.7969 L19.8594,24.7969 Z "/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="65" x="35" y="28.9102">DeviceState</text><line style="stroke: #000000; stroke-width: 1.5;" x1="7" x2="102" y1="40" y2="40"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="15" x="12" y="55.4189">OK</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="23" x="12" y="69.2549">INFO</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="32" x="12" y="83.0908">WARN</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="35" x="12" y="96.9268">ERROR</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="53" x="12" y="110.7627">UNKNOWN</text><line style="stroke: #000000; stroke-width: 1.5;" x1="7" x2="102" y1="117.1797" y2="117.1797"/><!--class Result--><rect fill="#F5F5F5" filter="url(#f1o0ehwjily0ac)" height="89.5078" id="Result" style="stroke: #000000; stroke-width: 1.5;" width="68" x="138.5" y="21.5"/><ellipse cx="153.5" cy="37.5" fill="#FFFFFF" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><path d="M152.3594,38.2969 L152.3594,40.7969 L156.6875,40.7969 L156.6875,39.875 Q156.6875,39.2656 156.9297,39 Q157.1719,38.7344 157.5469,38.7344 Q157.9219,38.7344 158.1563,39 Q158.3906,39.2656 158.3906,39.875 L158.3906,42.5 L150.3906,42.5 Q149.7656,42.5 149.5078,42.2656 Q149.25,42.0313 149.25,41.6406 Q149.25,41.2656 149.5156,41.0313 Q149.7813,40.7969 150.3906,40.7969 L150.6563,40.7969 L150.6563,34.1406 L150.3906,34.1406 Q149.7656,34.1406 149.5078,33.9063 Q149.25,33.6719 149.25,33.2813 Q149.25,32.9063 149.5078,32.6719 Q149.7656,32.4375 150.3906,32.4375 L158.0156,32.4375 L158.0156,35.0313 Q158.0156,35.6406 157.7891,35.8984 Q157.5625,36.1563 157.1719,36.1563 Q156.7969,36.1563 156.5625,35.8984 Q156.3281,35.6406 156.3281,35.0313 L156.3281,34.1406 L152.3594,34.1406 L152.3594,36.5938 L153.8438,36.5938 Q153.8438,35.9375 153.9688,35.75 Q154.2344,35.3438 154.7031,35.3438 Q155.0781,35.3438 155.3125,35.6016 Q155.5469,35.8594 155.5469,36.4688 L155.5469,38.4375 Q155.5469,38.9844 155.4219,39.1719 Q155.1563,39.5625 154.7031,39.5625 Q154.2344,39.5625 153.9688,39.1563 Q153.8438,38.9688 153.8438,38.2969 L152.3594,38.2969 Z "/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="36" x="167.5" y="42.4102">Result</text><line style="stroke: #000000; stroke-width: 1.5;" x1="139.5" x2="205.5" y1="53.5" y2="53.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="15" x="144.5" y="68.9189">OK</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="22" x="144.5" y="82.7549">NOK</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="53" x="144.5" y="96.5908">UNKNOWN</text><line style="stroke: #000000; stroke-width: 1.5;" x1="139.5" x2="205.5" y1="103.0078" y2="103.0078"/><!--class PartType--><rect fill="#F5F5F5" filter="url(#f1o0ehwjily0ac)" height="75.6719" id="PartType" style="stroke: #000000; stroke-width: 1.5;" width="80" x="14.5" y="223.5"/><ellipse cx="29.5" cy="239.5" fill="#FFFFFF" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><path d="M28.3594,240.2969 L28.3594,242.7969 L32.6875,242.7969 L32.6875,241.875 Q32.6875,241.2656 32.9297,241 Q33.1719,240.7344 33.5469,240.7344 Q33.9219,240.7344 34.1563,241 Q34.3906,241.2656 34.3906,241.875 L34.3906,244.5 L26.3906,244.5 Q25.7656,244.5 25.5078,244.2656 Q25.25,244.0313 25.25,243.6406 Q25.25,243.2656 25.5156,243.0313 Q25.7813,242.7969 26.3906,242.7969 L26.6563,242.7969 L26.6563,236.1406 L26.3906,236.1406 Q25.7656,236.1406 25.5078,235.9063 Q25.25,235.6719 25.25,235.2813 Q25.25,234.9063 25.5078,234.6719 Q25.7656,234.4375 26.3906,234.4375 L34.0156,234.4375 L34.0156,237.0313 Q34.0156,237.6406 33.7891,237.8984 Q33.5625,238.1563 33.1719,238.1563 Q32.7969,238.1563 32.5625,237.8984 Q32.3281,237.6406 32.3281,237.0313 L32.3281,236.1406 L28.3594,236.1406 L28.3594,238.5938 L29.8438,238.5938 Q29.8438,237.9375 29.9688,237.75 Q30.2344,237.3438 30.7031,237.3438 Q31.0781,237.3438 31.3125,237.6016 Q31.5469,237.8594 31.5469,238.4688 L31.5469,240.4375 Q31.5469,240.9844 31.4219,241.1719 Q31.1563,241.5625 30.7031,241.5625 Q30.2344,241.5625 29.9688,241.1563 Q29.8438,240.9688 29.8438,240.2969 L28.3594,240.2969 Z "/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="48" x="43.5" y="244.4102">PartType</text><line style="stroke: #000000; stroke-width: 1.5;" x1="15.5" x2="93.5" y1="255.5" y2="255.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="36" x="20.5" y="270.9189">SINGLE</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="35" x="20.5" y="284.7549">BATCH</text><line style="stroke: #000000; stroke-width: 1.5;" x1="15.5" x2="93.5" y1="291.1719" y2="291.1719"/><!--class MeasurementPayload--><rect fill="#F5F5F5" filter="url(#f1o0ehwjily0ac)" height="103.3438" id="MeasurementPayload" style="stroke: #000000; stroke-width: 1.5;" width="163" x="273" y="15"/><ellipse cx="292.95" cy="31" fill="#FFFFFF" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><path d="M295.7156,26.875 Q295.8719,26.6563 296.0594,26.5469 Q296.2469,26.4375 296.4656,26.4375 Q296.8406,26.4375 297.075,26.6953 Q297.3094,26.9531 297.3094,27.5625 L297.3094,29.0156 Q297.3094,29.625 297.075,29.8906 Q296.8406,30.1563 296.4656,30.1563 Q296.1219,30.1563 295.9188,29.9531 Q295.7156,29.7656 295.6063,29.25 Q295.5594,28.8906 295.3719,28.7031 Q295.0438,28.3281 294.4344,28.1094 Q293.825,27.8906 293.2,27.8906 Q292.4344,27.8906 291.8016,28.2188 Q291.1688,28.5469 290.6766,29.2969 Q290.1844,30.0469 290.1844,31.0781 L290.1844,32.1719 Q290.1844,33.4063 291.075,34.2266 Q291.9656,35.0469 293.5594,35.0469 Q294.4969,35.0469 295.1531,34.7969 Q295.5438,34.6406 295.9656,34.2031 Q296.2313,33.9375 296.3797,33.8594 Q296.5281,33.7813 296.7313,33.7813 Q297.0594,33.7813 297.3172,34.0391 Q297.575,34.2969 297.575,34.6406 Q297.575,34.9844 297.2313,35.3906 Q296.7313,35.9688 295.9344,36.2969 Q294.8563,36.75 293.5594,36.75 Q292.0438,36.75 290.8406,36.125 Q289.8563,35.625 289.1688,34.5547 Q288.4813,33.4844 288.4813,32.2031 L288.4813,31.0469 Q288.4813,29.7188 289.0984,28.5703 Q289.7156,27.4219 290.8094,26.8047 Q291.9031,26.1875 293.1375,26.1875 Q293.8719,26.1875 294.5203,26.3516 Q295.1688,26.5156 295.7156,26.875 Z "/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="120" x="308.05" y="35.9102">MeasurementPayload</text><line style="stroke: #000000; stroke-width: 1.5;" x1="274" x2="435" y1="47" y2="47"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="101" x="279" y="62.4189">content-spec : String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="279" y="76.2549">device : Device</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="151" x="279" y="90.0908">measurements : Measurements</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="71" x="279" y="103.9268">part[0..1] : Part</text><line style="stroke: #000000; stroke-width: 1.5;" x1="274" x2="435" y1="110.3438" y2="110.3438"/><!--link Measurement to Context--><path d="M354.5,333.42 C354.5,354.614 354.5,377.583 354.5,397.819 " fill="none" id="Measurement-Context" style="stroke: #000000; stroke-width: 1.0;"/><polygon fill="#000000" points="354.5,320.145,350.5,326.145,354.5,332.145,358.5,326.145,354.5,320.145" style="stroke: #000000; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="66" x="355.5" y="364.4951">ContextList</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="7" x="347.0734" y="341.773">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="22" x="331.1594" y="387.1978">0..1</text><!--link Context to Limits--><path d="M354.5,528.169 C354.5,543.966 354.5,560.539 354.5,575.742 " fill="none" id="Context-Limits" style="stroke: #000000; stroke-width: 1.0;"/><polygon fill="#000000" points="354.5,515.129,350.5,521.129,354.5,527.129,358.5,521.129,354.5,515.129" style="stroke: #000000; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="7" x="347.0734" y="536.755">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="333.2813" y="565.1115">0..*</text><!--link MeasurementPayload to Device--><path d="M311.674,118.208 C285.923,148.698 253.467,187.128 228.777,216.362 " fill="none" id="MeasurementPayload-Device" style="stroke: #000000; stroke-width: 1.0;"/><!--link MeasurementPayload to Part--><path d="M416.169,118.124 C428.297,129.57 440.384,142.156 450.5,155 C461.946,169.531 472.41,186.624 481.202,202.77 " fill="none" id="MeasurementPayload-Part" style="stroke: #000000; stroke-width: 1.0;"/><!--link MeasurementPayload to Measurement--><path d="M354.5,131.436 C354.5,154.536 354.5,180.456 354.5,202.973 " fill="none" id="MeasurementPayload-Measurement" style="stroke: #000000; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="354.5,118.208,350.5,124.208,354.5,130.208,358.5,124.208,354.5,118.208" style="stroke: #000000; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="355.5" y="169.4951">Measurements</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="7" x="347.0297" y="139.7269">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="333.2188" y="191.9554">1..*</text><!--link DeviceState to Result--><!--link DeviceState to PartType--><!--
+@startuml
+
+skinparam class {
+	BorderColor black
+	FontColor #50237f
+	BackgroundColor #f5f5f5
+	ArrowColor black
+}
+skinparam stereotype{
+	CBackgroundColor white
+	EBackgroundColor white
+}
+
+class Device {
+	id: String
+	mode[0..1]: String
+	state[0..1]: DeviceState
+}
+
+class Measurement {
+	code[0..1]: String
+	context[0..1]: ContextList
+	result[0..1]: Result
+	series: Series
+	ts: Date
+}
+
+class Context {
+	accuracy[0..1]: Float | [Float]
+	limits[0..1]: Limits
+	offset[0..1]: Float | [Float]
+	type[0..1]: String
+	unit[0..1]: String
+}
+
+class Limits {
+	lowerError[0..1]: Float | [Float]
+	lowerWarn[0..1]: Float | [Float]
+	target[0..1]:  Float | [Float]
+	upperError[0..1]: Float | [Float]
+	upperWarn[0..1]: Float | [Float]
+}
+
+class Series {
+	time: [Integer]
+	<values>[1..*]: [Float]
+}
+
+class Part {
+	code[0..1]: String
+	id[0..1]: String
+	type[0..1]: PartType
+	typeId[0..1]: String
+	result[0..1]: Result
+}
+
+enum DeviceState {
+	OK
+	INFO
+	WARN
+	ERROR
+	UNKNOWN
+}
+
+enum Result {
+	OK
+	NOK
+	UNKNOWN
+}
+
+enum PartType {
+	SINGLE
+	BATCH
+}
+
+Measurement "1" *- - "0..1" Context : ContextList
+Context "1" *- - "0..*" Limits
+
+
+skinparam class {
+	BorderColor black
+	FontColor #50237f
+	BackgroundColor #f5f5f5
+	ArrowColor black
+}
+
+skinparam stereotype {
+	CBackgroundColor white
+	EBackgroundColor white
+}
+
+class MeasurementPayload {
+	content-spec : String
+	device : Device
+	measurements : Measurements
+	part[0..1] : Part
+}
+
+MeasurementPayload - - Device
+MeasurementPayload - - Part
+MeasurementPayload "1" o- - "1..*" Measurement : Measurements
+
+Measurement - - Series
+
+hide Series
+
+@enduml
+
+PlantUML version 1.2018.01(Sun Jan 28 19:08:22 CET 2018)
+(EPL source distribution)
+Java Runtime: Java(TM) SE Runtime Environment
+JVM: Java HotSpot(TM) 64-Bit Server VM
+Java Version: 9.0.4+11
+Operating System: Windows 10
+OS Version: 10.0
+Default Encoding: Cp1252
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/images/specification/v3/measurementPayload.uml b/images/specification/v3/measurementPayload.uml
new file mode 100644
index 0000000..07982f7
--- /dev/null
+++ b/images/specification/v3/measurementPayload.uml
@@ -0,0 +1,31 @@
+@startuml
+!include definitions.iuml
+
+skinparam class {
+	BorderColor black
+	FontColor #50237f
+	BackgroundColor #f5f5f5
+	ArrowColor black
+}
+
+skinparam stereotype {
+	CBackgroundColor white
+	EBackgroundColor white
+}
+
+class MeasurementPayload {
+	content-spec : String
+	device : Device
+	measurements : Measurements
+	part[0..1] : Part
+}
+
+MeasurementPayload -- Device
+MeasurementPayload -- Part
+MeasurementPayload "1" o-- "1..*" Measurement : Measurements
+
+Measurement -- Series
+
+hide Series
+
+@enduml
\ No newline at end of file
diff --git a/images/specification/v3/messagePayload.svg b/images/specification/v3/messagePayload.svg
new file mode 100644
index 0000000..89dc2aa
--- /dev/null
+++ b/images/specification/v3/messagePayload.svg
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="386px" preserveAspectRatio="none" style="width:605px;height:386px;" version="1.1" viewBox="0 0 605 386" width="605px" zoomAndPan="magnify"><defs><filter height="300%" id="fr8havgld92gc" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><!--class Device--><rect fill="#F5F5F5" filter="url(#fr8havgld92gc)" height="89.5078" id="Device" style="stroke: #000000; stroke-width: 1.5;" width="124" x="6" y="244.5"/><ellipse cx="45.75" cy="260.5" fill="#FFFFFF" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><path d="M48.5156,256.375 Q48.6719,256.1563 48.8594,256.0469 Q49.0469,255.9375 49.2656,255.9375 Q49.6406,255.9375 49.875,256.1953 Q50.1094,256.4531 50.1094,257.0625 L50.1094,258.5156 Q50.1094,259.125 49.875,259.3906 Q49.6406,259.6563 49.2656,259.6563 Q48.9219,259.6563 48.7188,259.4531 Q48.5156,259.2656 48.4063,258.75 Q48.3594,258.3906 48.1719,258.2031 Q47.8438,257.8281 47.2344,257.6094 Q46.625,257.3906 46,257.3906 Q45.2344,257.3906 44.6016,257.7188 Q43.9688,258.0469 43.4766,258.7969 Q42.9844,259.5469 42.9844,260.5781 L42.9844,261.6719 Q42.9844,262.9063 43.875,263.7266 Q44.7656,264.5469 46.3594,264.5469 Q47.2969,264.5469 47.9531,264.2969 Q48.3438,264.1406 48.7656,263.7031 Q49.0313,263.4375 49.1797,263.3594 Q49.3281,263.2813 49.5313,263.2813 Q49.8594,263.2813 50.1172,263.5391 Q50.375,263.7969 50.375,264.1406 Q50.375,264.4844 50.0313,264.8906 Q49.5313,265.4688 48.7344,265.7969 Q47.6563,266.25 46.3594,266.25 Q44.8438,266.25 43.6406,265.625 Q42.6563,265.125 41.9688,264.0547 Q41.2813,262.9844 41.2813,261.7031 L41.2813,260.5469 Q41.2813,259.2188 41.8984,258.0703 Q42.5156,256.9219 43.6094,256.3047 Q44.7031,255.6875 45.9375,255.6875 Q46.6719,255.6875 47.3203,255.8516 Q47.9688,256.0156 48.5156,256.375 Z "/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="37" x="65.25" y="265.4102">Device</text><line style="stroke: #000000; stroke-width: 1.5;" x1="7" x2="129" y1="276.5" y2="276.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="42" x="12" y="291.9189">id: String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="84" x="12" y="305.7549">mode[0..1]: String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="112" x="12" y="319.5908">state[0..1]: DeviceState</text><line style="stroke: #000000; stroke-width: 1.5;" x1="7" x2="129" y1="326.0078" y2="326.0078"/><!--class DeviceState--><rect fill="#F5F5F5" filter="url(#fr8havgld92gc)" height="117.1797" id="DeviceState" style="stroke: #000000; stroke-width: 1.5;" width="97" x="255.5" y="8"/><ellipse cx="270.5" cy="24" fill="#FFFFFF" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><path d="M269.3594,24.7969 L269.3594,27.2969 L273.6875,27.2969 L273.6875,26.375 Q273.6875,25.7656 273.9297,25.5 Q274.1719,25.2344 274.5469,25.2344 Q274.9219,25.2344 275.1563,25.5 Q275.3906,25.7656 275.3906,26.375 L275.3906,29 L267.3906,29 Q266.7656,29 266.5078,28.7656 Q266.25,28.5313 266.25,28.1406 Q266.25,27.7656 266.5156,27.5313 Q266.7813,27.2969 267.3906,27.2969 L267.6563,27.2969 L267.6563,20.6406 L267.3906,20.6406 Q266.7656,20.6406 266.5078,20.4063 Q266.25,20.1719 266.25,19.7813 Q266.25,19.4063 266.5078,19.1719 Q266.7656,18.9375 267.3906,18.9375 L275.0156,18.9375 L275.0156,21.5313 Q275.0156,22.1406 274.7891,22.3984 Q274.5625,22.6563 274.1719,22.6563 Q273.7969,22.6563 273.5625,22.3984 Q273.3281,22.1406 273.3281,21.5313 L273.3281,20.6406 L269.3594,20.6406 L269.3594,23.0938 L270.8438,23.0938 Q270.8438,22.4375 270.9688,22.25 Q271.2344,21.8438 271.7031,21.8438 Q272.0781,21.8438 272.3125,22.1016 Q272.5469,22.3594 272.5469,22.9688 L272.5469,24.9375 Q272.5469,25.4844 272.4219,25.6719 Q272.1563,26.0625 271.7031,26.0625 Q271.2344,26.0625 270.9688,25.6563 Q270.8438,25.4688 270.8438,24.7969 L269.3594,24.7969 Z "/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="65" x="284.5" y="28.9102">DeviceState</text><line style="stroke: #000000; stroke-width: 1.5;" x1="256.5" x2="351.5" y1="40" y2="40"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="15" x="261.5" y="55.4189">OK</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="23" x="261.5" y="69.2549">INFO</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="32" x="261.5" y="83.0908">WARN</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="35" x="261.5" y="96.9268">ERROR</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="53" x="261.5" y="110.7627">UNKNOWN</text><line style="stroke: #000000; stroke-width: 1.5;" x1="256.5" x2="351.5" y1="117.1797" y2="117.1797"/><!--class MessagePayload--><rect fill="#F5F5F5" filter="url(#fr8havgld92gc)" height="89.5078" id="MessagePayload" style="stroke: #000000; stroke-width: 1.5;" width="127" x="93.5" y="21.5"/><ellipse cx="108.5" cy="37.5" fill="#FFFFFF" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><path d="M111.2656,33.375 Q111.4219,33.1563 111.6094,33.0469 Q111.7969,32.9375 112.0156,32.9375 Q112.3906,32.9375 112.625,33.1953 Q112.8594,33.4531 112.8594,34.0625 L112.8594,35.5156 Q112.8594,36.125 112.625,36.3906 Q112.3906,36.6563 112.0156,36.6563 Q111.6719,36.6563 111.4688,36.4531 Q111.2656,36.2656 111.1563,35.75 Q111.1094,35.3906 110.9219,35.2031 Q110.5938,34.8281 109.9844,34.6094 Q109.375,34.3906 108.75,34.3906 Q107.9844,34.3906 107.3516,34.7188 Q106.7188,35.0469 106.2266,35.7969 Q105.7344,36.5469 105.7344,37.5781 L105.7344,38.6719 Q105.7344,39.9063 106.625,40.7266 Q107.5156,41.5469 109.1094,41.5469 Q110.0469,41.5469 110.7031,41.2969 Q111.0938,41.1406 111.5156,40.7031 Q111.7813,40.4375 111.9297,40.3594 Q112.0781,40.2813 112.2813,40.2813 Q112.6094,40.2813 112.8672,40.5391 Q113.125,40.7969 113.125,41.1406 Q113.125,41.4844 112.7813,41.8906 Q112.2813,42.4688 111.4844,42.7969 Q110.4063,43.25 109.1094,43.25 Q107.5938,43.25 106.3906,42.625 Q105.4063,42.125 104.7188,41.0547 Q104.0313,39.9844 104.0313,38.7031 L104.0313,37.5469 Q104.0313,36.2188 104.6484,35.0703 Q105.2656,33.9219 106.3594,33.3047 Q107.4531,32.6875 108.6875,32.6875 Q109.4219,32.6875 110.0703,32.8516 Q110.7188,33.0156 111.2656,33.375 Z "/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="95" x="122.5" y="42.4102">MessagePayload</text><line style="stroke: #000000; stroke-width: 1.5;" x1="94.5" x2="219.5" y1="53.5" y2="53.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="101" x="99.5" y="68.9189">content-spec : String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="99.5" y="82.7549">device : Device</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="109" x="99.5" y="96.5908">messages : Messages</text><line style="stroke: #000000; stroke-width: 1.5;" x1="94.5" x2="219.5" y1="103.0078" y2="103.0078"/><!--class Message--><rect fill="#F5F5F5" filter="url(#fr8havgld92gc)" height="172.5234" id="Message" style="stroke: #000000; stroke-width: 1.5;" width="164" x="165" y="203"/><ellipse cx="217.25" cy="219" fill="#FFFFFF" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><path d="M220.0156,214.875 Q220.1719,214.6563 220.3594,214.5469 Q220.5469,214.4375 220.7656,214.4375 Q221.1406,214.4375 221.375,214.6953 Q221.6094,214.9531 221.6094,215.5625 L221.6094,217.0156 Q221.6094,217.625 221.375,217.8906 Q221.1406,218.1563 220.7656,218.1563 Q220.4219,218.1563 220.2188,217.9531 Q220.0156,217.7656 219.9063,217.25 Q219.8594,216.8906 219.6719,216.7031 Q219.3438,216.3281 218.7344,216.1094 Q218.125,215.8906 217.5,215.8906 Q216.7344,215.8906 216.1016,216.2188 Q215.4688,216.5469 214.9766,217.2969 Q214.4844,218.0469 214.4844,219.0781 L214.4844,220.1719 Q214.4844,221.4063 215.375,222.2266 Q216.2656,223.0469 217.8594,223.0469 Q218.7969,223.0469 219.4531,222.7969 Q219.8438,222.6406 220.2656,222.2031 Q220.5313,221.9375 220.6797,221.8594 Q220.8281,221.7813 221.0313,221.7813 Q221.3594,221.7813 221.6172,222.0391 Q221.875,222.2969 221.875,222.6406 Q221.875,222.9844 221.5313,223.3906 Q221.0313,223.9688 220.2344,224.2969 Q219.1563,224.75 217.8594,224.75 Q216.3438,224.75 215.1406,224.125 Q214.1563,223.625 213.4688,222.5547 Q212.7813,221.4844 212.7813,220.2031 L212.7813,219.0469 Q212.7813,217.7188 213.3984,216.5703 Q214.0156,215.4219 215.1094,214.8047 Q216.2031,214.1875 217.4375,214.1875 Q218.1719,214.1875 218.8203,214.3516 Q219.4688,214.5156 220.0156,214.875 Z "/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="51" x="237.75" y="223.9102">Message</text><line style="stroke: #000000; stroke-width: 1.5;" x1="166" x2="328" y1="235" y2="235"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="61" x="171" y="250.4189">code : String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="114" x="171" y="264.2549">description[0..1] : String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="78" x="171" y="278.0908">hint[0..1] : String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="152" x="171" y="291.9268">metaData[0..1] : &lt;String, String&gt;</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="87" x="171" y="305.7627">origin[0..1] : String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="112" x="171" y="319.5986">severity[0..1] : Severity</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="77" x="171" y="333.4346">title[0..1] : String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="40" x="171" y="347.2705">ts : Date</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="78" x="171" y="361.1064">type[0..1] : Type</text><line style="stroke: #000000; stroke-width: 1.5;" x1="166" x2="328" y1="367.5234" y2="367.5234"/><!--class Type--><rect fill="#F5F5F5" filter="url(#fr8havgld92gc)" height="75.6719" id="Type" style="stroke: #000000; stroke-width: 1.5;" width="97" x="387.5" y="28.5"/><ellipse cx="420.05" cy="44.5" fill="#FFFFFF" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><path d="M418.9094,45.2969 L418.9094,47.7969 L423.2375,47.7969 L423.2375,46.875 Q423.2375,46.2656 423.4797,46 Q423.7219,45.7344 424.0969,45.7344 Q424.4719,45.7344 424.7063,46 Q424.9406,46.2656 424.9406,46.875 L424.9406,49.5 L416.9406,49.5 Q416.3156,49.5 416.0578,49.2656 Q415.8,49.0313 415.8,48.6406 Q415.8,48.2656 416.0656,48.0313 Q416.3313,47.7969 416.9406,47.7969 L417.2063,47.7969 L417.2063,41.1406 L416.9406,41.1406 Q416.3156,41.1406 416.0578,40.9063 Q415.8,40.6719 415.8,40.2813 Q415.8,39.9063 416.0578,39.6719 Q416.3156,39.4375 416.9406,39.4375 L424.5656,39.4375 L424.5656,42.0313 Q424.5656,42.6406 424.3391,42.8984 Q424.1125,43.1563 423.7219,43.1563 Q423.3469,43.1563 423.1125,42.8984 Q422.8781,42.6406 422.8781,42.0313 L422.8781,41.1406 L418.9094,41.1406 L418.9094,43.5938 L420.3938,43.5938 Q420.3938,42.9375 420.5188,42.75 Q420.7844,42.3438 421.2531,42.3438 Q421.6281,42.3438 421.8625,42.6016 Q422.0969,42.8594 422.0969,43.4688 L422.0969,45.4375 Q422.0969,45.9844 421.9719,46.1719 Q421.7063,46.5625 421.2531,46.5625 Q420.7844,46.5625 420.5188,46.1563 Q420.3938,45.9688 420.3938,45.2969 L418.9094,45.2969 Z "/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="26" x="437.95" y="49.4102">Type</text><line style="stroke: #000000; stroke-width: 1.5;" x1="388.5" x2="483.5" y1="60.5" y2="60.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="36" x="393.5" y="75.9189">DEVICE</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="85" x="393.5" y="89.7549">TECHNICAL_INFO</text><line style="stroke: #000000; stroke-width: 1.5;" x1="388.5" x2="483.5" y1="96.1719" y2="96.1719"/><!--class Severity--><rect fill="#F5F5F5" filter="url(#fr8havgld92gc)" height="103.3438" id="Severity" style="stroke: #000000; stroke-width: 1.5;" width="74" x="520" y="15"/><ellipse cx="535" cy="31" fill="#FFFFFF" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><path d="M533.8594,31.7969 L533.8594,34.2969 L538.1875,34.2969 L538.1875,33.375 Q538.1875,32.7656 538.4297,32.5 Q538.6719,32.2344 539.0469,32.2344 Q539.4219,32.2344 539.6563,32.5 Q539.8906,32.7656 539.8906,33.375 L539.8906,36 L531.8906,36 Q531.2656,36 531.0078,35.7656 Q530.75,35.5313 530.75,35.1406 Q530.75,34.7656 531.0156,34.5313 Q531.2813,34.2969 531.8906,34.2969 L532.1563,34.2969 L532.1563,27.6406 L531.8906,27.6406 Q531.2656,27.6406 531.0078,27.4063 Q530.75,27.1719 530.75,26.7813 Q530.75,26.4063 531.0078,26.1719 Q531.2656,25.9375 531.8906,25.9375 L539.5156,25.9375 L539.5156,28.5313 Q539.5156,29.1406 539.2891,29.3984 Q539.0625,29.6563 538.6719,29.6563 Q538.2969,29.6563 538.0625,29.3984 Q537.8281,29.1406 537.8281,28.5313 L537.8281,27.6406 L533.8594,27.6406 L533.8594,30.0938 L535.3438,30.0938 Q535.3438,29.4375 535.4688,29.25 Q535.7344,28.8438 536.2031,28.8438 Q536.5781,28.8438 536.8125,29.1016 Q537.0469,29.3594 537.0469,29.9688 L537.0469,31.9375 Q537.0469,32.4844 536.9219,32.6719 Q536.6563,33.0625 536.2031,33.0625 Q535.7344,33.0625 535.4688,32.6563 Q535.3438,32.4688 535.3438,31.7969 L533.8594,31.7969 Z "/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="42" x="549" y="35.9102">Severity</text><line style="stroke: #000000; stroke-width: 1.5;" x1="521" x2="593" y1="47" y2="47"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="24" x="526" y="62.4189">HIGH</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="38" x="526" y="76.2549">MEDIUM</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="24" x="526" y="90.0908">LOW</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="53" x="526" y="103.9268">UNKNOWN</text><line style="stroke: #000000; stroke-width: 1.5;" x1="521" x2="593" y1="110.3438" y2="110.3438"/><!--link MessagePayload to Device--><path d="M139.203,111.691 C123.681,150.236 101.2792,205.863 85.7657,244.385 " fill="none" id="MessagePayload-Device" style="stroke: #000000; stroke-width: 1.0;"/><!--link MessagePayload to Message--><path d="M179.921,123.785 C189.688,147.766 201.298,176.277 212.092,202.783 " fill="none" id="MessagePayload-Message" style="stroke: #000000; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="174.997,111.691,173.556,118.7566,179.5239,122.8044,180.9649,115.7387,174.997,111.691" style="stroke: #000000; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="60" x="201" y="169.4951">Messages</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="7" x="169.945" y="132.3903">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="188.2327" y="192.174">1..*</text><!--
+@startuml
+
+skinparam class {
+	BorderColor black
+	FontColor #50237f
+	BackgroundColor #f5f5f5
+	ArrowColor black
+}
+skinparam stereotype{
+	CBackgroundColor white
+	EBackgroundColor white
+}
+
+class Device {
+	id: String
+	mode[0..1]: String
+	state[0..1]: DeviceState
+}
+
+class Measurement {
+	code[0..1]: String
+	context[0..1]: ContextList
+	result[0..1]: Result
+	series: Series
+	ts: Date
+}
+
+class Context {
+	accuracy[0..1]: Float | [Float]
+	limits[0..1]: Limits
+	offset[0..1]: Float | [Float]
+	type[0..1]: String
+	unit[0..1]: String
+}
+
+class Limits {
+	lowerError[0..1]: Float | [Float]
+	lowerWarn[0..1]: Float | [Float]
+	target[0..1]:  Float | [Float]
+	upperError[0..1]: Float | [Float]
+	upperWarn[0..1]: Float | [Float]
+}
+
+class Series {
+	time: [Integer]
+	<values>[1..*]: [Float]
+}
+
+class Part {
+	code[0..1]: String
+	id[0..1]: String
+	type[0..1]: PartType
+	typeId[0..1]: String
+	result[0..1]: Result
+}
+
+enum DeviceState {
+	OK
+	INFO
+	WARN
+	ERROR
+	UNKNOWN
+}
+
+enum Result {
+	OK
+	NOK
+	UNKNOWN
+}
+
+enum PartType {
+	SINGLE
+	BATCH
+}
+
+Measurement "1" *- - "0..1" Context : ContextList
+Context "1" *- - "0..*" Limits
+
+
+skinparam class {
+	BorderColor black
+	FontColor #50237f
+	BackgroundColor #f5f5f5
+	ArrowColor black
+}
+skinparam stereotype{
+	CBackgroundColor white
+	EBackgroundColor white
+}
+
+class MessagePayload {
+	content-spec : String
+	device : Device
+	messages : Messages
+}
+
+class Message {
+	code : String
+	description[0..1] : String
+	hint[0..1] : String
+	metaData[0..1] : <String, String>
+	origin[0..1] : String
+	severity[0..1] : Severity
+	title[0..1] : String
+	ts : Date
+	type[0..1] : Type
+}
+
+enum Type {
+	DEVICE
+	TECHNICAL_INFO
+}
+
+enum Severity {
+	HIGH
+	MEDIUM
+	LOW
+	UNKNOWN
+}
+
+MessagePayload - - Device
+MessagePayload "1" o- - "1..*" Message : Messages
+
+hide Context
+hide Limits
+hide Measurement
+hide Part
+hide PartType
+hide Result
+hide Series
+
+@enduml
+
+PlantUML version 1.2018.01(Sun Jan 28 19:08:22 CET 2018)
+(EPL source distribution)
+Java Runtime: Java(TM) SE Runtime Environment
+JVM: Java HotSpot(TM) 64-Bit Server VM
+Java Version: 9.0.4+11
+Operating System: Windows 10
+OS Version: 10.0
+Default Encoding: Cp1252
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/images/messagePayload.uml b/images/specification/v3/messagePayload.uml
similarity index 84%
rename from images/messagePayload.uml
rename to images/specification/v3/messagePayload.uml
index d58bd78..591494f 100644
--- a/images/messagePayload.uml
+++ b/images/specification/v3/messagePayload.uml
@@ -1,4 +1,5 @@
 @startuml
+!include definitions.iuml
 
 skinparam class {
 	BorderColor black
@@ -17,12 +18,6 @@
 	messages : Messages
 }
 
-class Device {
-	deviceID : String
-	metaData[0..1] : <String, String>
-	operationalStatus[0..1] : String
-}
-
 class Message {
 	code : String
 	description[0..1] : String
@@ -50,4 +45,12 @@
 MessagePayload -- Device
 MessagePayload "1" o-- "1..*" Message : Messages
 
+hide Context
+hide Limits
+hide Measurement
+hide Part
+hide PartType
+hide Result
+hide Series
+
 @enduml
\ No newline at end of file
diff --git a/images/specification/v3/processPayload.svg b/images/specification/v3/processPayload.svg
new file mode 100644
index 0000000..b8e6115
--- /dev/null
+++ b/images/specification/v3/processPayload.svg
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="704px" preserveAspectRatio="none" style="width:855px;height:704px;" version="1.1" viewBox="0 0 855 704" width="855px" zoomAndPan="magnify"><defs><filter height="300%" id="fzi1h3odwm3pk" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><!--class Device--><rect fill="#F5F5F5" filter="url(#fzi1h3odwm3pk)" height="89.5078" id="Device" style="stroke: #000000; stroke-width: 1.5;" width="124" x="206" y="216.5"/><ellipse cx="245.75" cy="232.5" fill="#FFFFFF" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><path d="M248.5156,228.375 Q248.6719,228.1563 248.8594,228.0469 Q249.0469,227.9375 249.2656,227.9375 Q249.6406,227.9375 249.875,228.1953 Q250.1094,228.4531 250.1094,229.0625 L250.1094,230.5156 Q250.1094,231.125 249.875,231.3906 Q249.6406,231.6563 249.2656,231.6563 Q248.9219,231.6563 248.7188,231.4531 Q248.5156,231.2656 248.4063,230.75 Q248.3594,230.3906 248.1719,230.2031 Q247.8438,229.8281 247.2344,229.6094 Q246.625,229.3906 246,229.3906 Q245.2344,229.3906 244.6016,229.7188 Q243.9688,230.0469 243.4766,230.7969 Q242.9844,231.5469 242.9844,232.5781 L242.9844,233.6719 Q242.9844,234.9063 243.875,235.7266 Q244.7656,236.5469 246.3594,236.5469 Q247.2969,236.5469 247.9531,236.2969 Q248.3438,236.1406 248.7656,235.7031 Q249.0313,235.4375 249.1797,235.3594 Q249.3281,235.2813 249.5313,235.2813 Q249.8594,235.2813 250.1172,235.5391 Q250.375,235.7969 250.375,236.1406 Q250.375,236.4844 250.0313,236.8906 Q249.5313,237.4688 248.7344,237.7969 Q247.6563,238.25 246.3594,238.25 Q244.8438,238.25 243.6406,237.625 Q242.6563,237.125 241.9688,236.0547 Q241.2813,234.9844 241.2813,233.7031 L241.2813,232.5469 Q241.2813,231.2188 241.8984,230.0703 Q242.5156,228.9219 243.6094,228.3047 Q244.7031,227.6875 245.9375,227.6875 Q246.6719,227.6875 247.3203,227.8516 Q247.9688,228.0156 248.5156,228.375 Z "/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="37" x="265.25" y="237.4102">Device</text><line style="stroke: #000000; stroke-width: 1.5;" x1="207" x2="329" y1="248.5" y2="248.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="42" x="212" y="263.9189">id: String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="84" x="212" y="277.7549">mode[0..1]: String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="112" x="212" y="291.5908">state[0..1]: DeviceState</text><line style="stroke: #000000; stroke-width: 1.5;" x1="207" x2="329" y1="298.0078" y2="298.0078"/><!--class Measurement--><rect fill="#F5F5F5" filter="url(#fzi1h3odwm3pk)" height="117.1797" id="Measurement" style="stroke: #000000; stroke-width: 1.5;" width="132" x="365" y="203"/><ellipse cx="390.8" cy="219" fill="#FFFFFF" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><path d="M393.5656,214.875 Q393.7219,214.6563 393.9094,214.5469 Q394.0969,214.4375 394.3156,214.4375 Q394.6906,214.4375 394.925,214.6953 Q395.1594,214.9531 395.1594,215.5625 L395.1594,217.0156 Q395.1594,217.625 394.925,217.8906 Q394.6906,218.1563 394.3156,218.1563 Q393.9719,218.1563 393.7688,217.9531 Q393.5656,217.7656 393.4563,217.25 Q393.4094,216.8906 393.2219,216.7031 Q392.8938,216.3281 392.2844,216.1094 Q391.675,215.8906 391.05,215.8906 Q390.2844,215.8906 389.6516,216.2188 Q389.0188,216.5469 388.5266,217.2969 Q388.0344,218.0469 388.0344,219.0781 L388.0344,220.1719 Q388.0344,221.4063 388.925,222.2266 Q389.8156,223.0469 391.4094,223.0469 Q392.3469,223.0469 393.0031,222.7969 Q393.3938,222.6406 393.8156,222.2031 Q394.0813,221.9375 394.2297,221.8594 Q394.3781,221.7813 394.5813,221.7813 Q394.9094,221.7813 395.1672,222.0391 Q395.425,222.2969 395.425,222.6406 Q395.425,222.9844 395.0813,223.3906 Q394.5813,223.9688 393.7844,224.2969 Q392.7063,224.75 391.4094,224.75 Q389.8938,224.75 388.6906,224.125 Q387.7063,223.625 387.0188,222.5547 Q386.3313,221.4844 386.3313,220.2031 L386.3313,219.0469 Q386.3313,217.7188 386.9484,216.5703 Q387.5656,215.4219 388.6594,214.8047 Q389.7531,214.1875 390.9875,214.1875 Q391.7219,214.1875 392.3703,214.3516 Q393.0188,214.5156 393.5656,214.875 Z "/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="407.2" y="223.9102">Measurement</text><line style="stroke: #000000; stroke-width: 1.5;" x1="366" x2="496" y1="235" y2="235"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="82" x="371" y="250.4189">code[0..1]: String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="120" x="371" y="264.2549">context[0..1]: ContextList</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="87" x="371" y="278.0908">result[0..1]: Result</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="67" x="371" y="291.9268">series: Series</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="37" x="371" y="305.7627">ts: Date</text><line style="stroke: #000000; stroke-width: 1.5;" x1="366" x2="496" y1="312.1797" y2="312.1797"/><!--class Context--><rect fill="#F5F5F5" filter="url(#fzi1h3odwm3pk)" height="117.1797" id="Context" style="stroke: #000000; stroke-width: 1.5;" width="148" x="10" y="398"/><ellipse cx="59.25" cy="414" fill="#FFFFFF" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><path d="M62.0156,409.875 Q62.1719,409.6563 62.3594,409.5469 Q62.5469,409.4375 62.7656,409.4375 Q63.1406,409.4375 63.375,409.6953 Q63.6094,409.9531 63.6094,410.5625 L63.6094,412.0156 Q63.6094,412.625 63.375,412.8906 Q63.1406,413.1563 62.7656,413.1563 Q62.4219,413.1563 62.2188,412.9531 Q62.0156,412.7656 61.9063,412.25 Q61.8594,411.8906 61.6719,411.7031 Q61.3438,411.3281 60.7344,411.1094 Q60.125,410.8906 59.5,410.8906 Q58.7344,410.8906 58.1016,411.2188 Q57.4688,411.5469 56.9766,412.2969 Q56.4844,413.0469 56.4844,414.0781 L56.4844,415.1719 Q56.4844,416.4063 57.375,417.2266 Q58.2656,418.0469 59.8594,418.0469 Q60.7969,418.0469 61.4531,417.7969 Q61.8438,417.6406 62.2656,417.2031 Q62.5313,416.9375 62.6797,416.8594 Q62.8281,416.7813 63.0313,416.7813 Q63.3594,416.7813 63.6172,417.0391 Q63.875,417.2969 63.875,417.6406 Q63.875,417.9844 63.5313,418.3906 Q63.0313,418.9688 62.2344,419.2969 Q61.1563,419.75 59.8594,419.75 Q58.3438,419.75 57.1406,419.125 Q56.1563,418.625 55.4688,417.5547 Q54.7813,416.4844 54.7813,415.2031 L54.7813,414.0469 Q54.7813,412.7188 55.3984,411.5703 Q56.0156,410.4219 57.1094,409.8047 Q58.2031,409.1875 59.4375,409.1875 Q60.1719,409.1875 60.8203,409.3516 Q61.4688,409.5156 62.0156,409.875 Z "/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="41" x="79.75" y="418.9102">Context</text><line style="stroke: #000000; stroke-width: 1.5;" x1="11" x2="157" y1="430" y2="430"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="16" y="445.4189">accuracy[0..1]: Float | [Float]</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="80" x="16" y="459.2549">limits[0..1]: Limits</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="119" x="16" y="473.0908">offset[0..1]: Float | [Float]</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="79" x="16" y="486.9268">type[0..1]: String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="75" x="16" y="500.7627">unit[0..1]: String</text><line style="stroke: #000000; stroke-width: 1.5;" x1="11" x2="157" y1="507.1797" y2="507.1797"/><!--class Limits--><rect fill="#F5F5F5" filter="url(#fzi1h3odwm3pk)" height="117.1797" id="Limits" style="stroke: #000000; stroke-width: 1.5;" width="156" x="6" y="576"/><ellipse cx="62.75" cy="592" fill="#FFFFFF" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><path d="M65.5156,587.875 Q65.6719,587.6563 65.8594,587.5469 Q66.0469,587.4375 66.2656,587.4375 Q66.6406,587.4375 66.875,587.6953 Q67.1094,587.9531 67.1094,588.5625 L67.1094,590.0156 Q67.1094,590.625 66.875,590.8906 Q66.6406,591.1563 66.2656,591.1563 Q65.9219,591.1563 65.7188,590.9531 Q65.5156,590.7656 65.4063,590.25 Q65.3594,589.8906 65.1719,589.7031 Q64.8438,589.3281 64.2344,589.1094 Q63.625,588.8906 63,588.8906 Q62.2344,588.8906 61.6016,589.2188 Q60.9688,589.5469 60.4766,590.2969 Q59.9844,591.0469 59.9844,592.0781 L59.9844,593.1719 Q59.9844,594.4063 60.875,595.2266 Q61.7656,596.0469 63.3594,596.0469 Q64.2969,596.0469 64.9531,595.7969 Q65.3438,595.6406 65.7656,595.2031 Q66.0313,594.9375 66.1797,594.8594 Q66.3281,594.7813 66.5313,594.7813 Q66.8594,594.7813 67.1172,595.0391 Q67.375,595.2969 67.375,595.6406 Q67.375,595.9844 67.0313,596.3906 Q66.5313,596.9688 65.7344,597.2969 Q64.6563,597.75 63.3594,597.75 Q61.8438,597.75 60.6406,597.125 Q59.6563,596.625 58.9688,595.5547 Q58.2813,594.4844 58.2813,593.2031 L58.2813,592.0469 Q58.2813,590.7188 58.8984,589.5703 Q59.5156,588.4219 60.6094,587.8047 Q61.7031,587.1875 62.9375,587.1875 Q63.6719,587.1875 64.3203,587.3516 Q64.9688,587.5156 65.5156,587.875 Z "/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="34" x="83.25" y="596.9102">Limits</text><line style="stroke: #000000; stroke-width: 1.5;" x1="7" x2="161" y1="608" y2="608"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="142" x="12" y="623.4189">lowerError[0..1]: Float | [Float]</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="144" x="12" y="637.2549">lowerWarn[0..1]: Float | [Float]</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="121" x="12" y="651.0908">target[0..1]:  Float | [Float]</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="142" x="12" y="664.9268">upperError[0..1]: Float | [Float]</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="144" x="12" y="678.7627">upperWarn[0..1]: Float | [Float]</text><line style="stroke: #000000; stroke-width: 1.5;" x1="7" x2="161" y1="685.1797" y2="685.1797"/><!--class Series--><rect fill="#F5F5F5" filter="url(#fzi1h3odwm3pk)" height="75.6719" id="Series" style="stroke: #000000; stroke-width: 1.5;" width="113" x="193.5" y="418.5"/><ellipse cx="228.75" cy="434.5" fill="#FFFFFF" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><path d="M231.5156,430.375 Q231.6719,430.1563 231.8594,430.0469 Q232.0469,429.9375 232.2656,429.9375 Q232.6406,429.9375 232.875,430.1953 Q233.1094,430.4531 233.1094,431.0625 L233.1094,432.5156 Q233.1094,433.125 232.875,433.3906 Q232.6406,433.6563 232.2656,433.6563 Q231.9219,433.6563 231.7188,433.4531 Q231.5156,433.2656 231.4063,432.75 Q231.3594,432.3906 231.1719,432.2031 Q230.8438,431.8281 230.2344,431.6094 Q229.625,431.3906 229,431.3906 Q228.2344,431.3906 227.6016,431.7188 Q226.9688,432.0469 226.4766,432.7969 Q225.9844,433.5469 225.9844,434.5781 L225.9844,435.6719 Q225.9844,436.9063 226.875,437.7266 Q227.7656,438.5469 229.3594,438.5469 Q230.2969,438.5469 230.9531,438.2969 Q231.3438,438.1406 231.7656,437.7031 Q232.0313,437.4375 232.1797,437.3594 Q232.3281,437.2813 232.5313,437.2813 Q232.8594,437.2813 233.1172,437.5391 Q233.375,437.7969 233.375,438.1406 Q233.375,438.4844 233.0313,438.8906 Q232.5313,439.4688 231.7344,439.7969 Q230.6563,440.25 229.3594,440.25 Q227.8438,440.25 226.6406,439.625 Q225.6563,439.125 224.9688,438.0547 Q224.2813,436.9844 224.2813,435.7031 L224.2813,434.5469 Q224.2813,433.2188 224.8984,432.0703 Q225.5156,430.9219 226.6094,430.3047 Q227.7031,429.6875 228.9375,429.6875 Q229.6719,429.6875 230.3203,429.8516 Q230.9688,430.0156 231.5156,430.375 Z "/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="36" x="247.25" y="439.4102">Series</text><line style="stroke: #000000; stroke-width: 1.5;" x1="194.5" x2="305.5" y1="450.5" y2="450.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="64" x="199.5" y="465.9189">time: [Integer]</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="101" x="199.5" y="479.7549">&lt;values&gt;[1..*]: [Float]</text><line style="stroke: #000000; stroke-width: 1.5;" x1="194.5" x2="305.5" y1="486.1719" y2="486.1719"/><!--class Part--><rect fill="#F5F5F5" filter="url(#fzi1h3odwm3pk)" height="117.1797" id="Part" style="stroke: #000000; stroke-width: 1.5;" width="106" x="532" y="203"/><ellipse cx="570.4" cy="219" fill="#FFFFFF" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><path d="M573.1656,214.875 Q573.3219,214.6563 573.5094,214.5469 Q573.6969,214.4375 573.9156,214.4375 Q574.2906,214.4375 574.525,214.6953 Q574.7594,214.9531 574.7594,215.5625 L574.7594,217.0156 Q574.7594,217.625 574.525,217.8906 Q574.2906,218.1563 573.9156,218.1563 Q573.5719,218.1563 573.3688,217.9531 Q573.1656,217.7656 573.0563,217.25 Q573.0094,216.8906 572.8219,216.7031 Q572.4938,216.3281 571.8844,216.1094 Q571.275,215.8906 570.65,215.8906 Q569.8844,215.8906 569.2516,216.2188 Q568.6188,216.5469 568.1266,217.2969 Q567.6344,218.0469 567.6344,219.0781 L567.6344,220.1719 Q567.6344,221.4063 568.525,222.2266 Q569.4156,223.0469 571.0094,223.0469 Q571.9469,223.0469 572.6031,222.7969 Q572.9938,222.6406 573.4156,222.2031 Q573.6813,221.9375 573.8297,221.8594 Q573.9781,221.7813 574.1813,221.7813 Q574.5094,221.7813 574.7672,222.0391 Q575.025,222.2969 575.025,222.6406 Q575.025,222.9844 574.6813,223.3906 Q574.1813,223.9688 573.3844,224.2969 Q572.3063,224.75 571.0094,224.75 Q569.4938,224.75 568.2906,224.125 Q567.3063,223.625 566.6188,222.5547 Q565.9313,221.4844 565.9313,220.2031 L565.9313,219.0469 Q565.9313,217.7188 566.5484,216.5703 Q567.1656,215.4219 568.2594,214.8047 Q569.3531,214.1875 570.5875,214.1875 Q571.3219,214.1875 571.9703,214.3516 Q572.6188,214.5156 573.1656,214.875 Z "/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="22" x="589.6" y="223.9102">Part</text><line style="stroke: #000000; stroke-width: 1.5;" x1="533" x2="637" y1="235" y2="235"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="82" x="538" y="250.4189">code[0..1]: String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="66" x="538" y="264.2549">id[0..1]: String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="94" x="538" y="278.0908">type[0..1]: PartType</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="87" x="538" y="291.9268">typeId[0..1]: String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="87" x="538" y="305.7627">result[0..1]: Result</text><line style="stroke: #000000; stroke-width: 1.5;" x1="533" x2="637" y1="312.1797" y2="312.1797"/><!--class DeviceState--><rect fill="#F5F5F5" filter="url(#fzi1h3odwm3pk)" height="117.1797" id="DeviceState" style="stroke: #000000; stroke-width: 1.5;" width="97" x="82.5" y="8"/><ellipse cx="97.5" cy="24" fill="#FFFFFF" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><path d="M96.3594,24.7969 L96.3594,27.2969 L100.6875,27.2969 L100.6875,26.375 Q100.6875,25.7656 100.9297,25.5 Q101.1719,25.2344 101.5469,25.2344 Q101.9219,25.2344 102.1563,25.5 Q102.3906,25.7656 102.3906,26.375 L102.3906,29 L94.3906,29 Q93.7656,29 93.5078,28.7656 Q93.25,28.5313 93.25,28.1406 Q93.25,27.7656 93.5156,27.5313 Q93.7813,27.2969 94.3906,27.2969 L94.6563,27.2969 L94.6563,20.6406 L94.3906,20.6406 Q93.7656,20.6406 93.5078,20.4063 Q93.25,20.1719 93.25,19.7813 Q93.25,19.4063 93.5078,19.1719 Q93.7656,18.9375 94.3906,18.9375 L102.0156,18.9375 L102.0156,21.5313 Q102.0156,22.1406 101.7891,22.3984 Q101.5625,22.6563 101.1719,22.6563 Q100.7969,22.6563 100.5625,22.3984 Q100.3281,22.1406 100.3281,21.5313 L100.3281,20.6406 L96.3594,20.6406 L96.3594,23.0938 L97.8438,23.0938 Q97.8438,22.4375 97.9688,22.25 Q98.2344,21.8438 98.7031,21.8438 Q99.0781,21.8438 99.3125,22.1016 Q99.5469,22.3594 99.5469,22.9688 L99.5469,24.9375 Q99.5469,25.4844 99.4219,25.6719 Q99.1563,26.0625 98.7031,26.0625 Q98.2344,26.0625 97.9688,25.6563 Q97.8438,25.4688 97.8438,24.7969 L96.3594,24.7969 Z "/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="65" x="111.5" y="28.9102">DeviceState</text><line style="stroke: #000000; stroke-width: 1.5;" x1="83.5" x2="178.5" y1="40" y2="40"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="15" x="88.5" y="55.4189">OK</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="23" x="88.5" y="69.2549">INFO</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="32" x="88.5" y="83.0908">WARN</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="35" x="88.5" y="96.9268">ERROR</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="53" x="88.5" y="110.7627">UNKNOWN</text><line style="stroke: #000000; stroke-width: 1.5;" x1="83.5" x2="178.5" y1="117.1797" y2="117.1797"/><!--class Result--><rect fill="#F5F5F5" filter="url(#fzi1h3odwm3pk)" height="89.5078" id="Result" style="stroke: #000000; stroke-width: 1.5;" width="68" x="215" y="21.5"/><ellipse cx="230" cy="37.5" fill="#FFFFFF" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><path d="M228.8594,38.2969 L228.8594,40.7969 L233.1875,40.7969 L233.1875,39.875 Q233.1875,39.2656 233.4297,39 Q233.6719,38.7344 234.0469,38.7344 Q234.4219,38.7344 234.6563,39 Q234.8906,39.2656 234.8906,39.875 L234.8906,42.5 L226.8906,42.5 Q226.2656,42.5 226.0078,42.2656 Q225.75,42.0313 225.75,41.6406 Q225.75,41.2656 226.0156,41.0313 Q226.2813,40.7969 226.8906,40.7969 L227.1563,40.7969 L227.1563,34.1406 L226.8906,34.1406 Q226.2656,34.1406 226.0078,33.9063 Q225.75,33.6719 225.75,33.2813 Q225.75,32.9063 226.0078,32.6719 Q226.2656,32.4375 226.8906,32.4375 L234.5156,32.4375 L234.5156,35.0313 Q234.5156,35.6406 234.2891,35.8984 Q234.0625,36.1563 233.6719,36.1563 Q233.2969,36.1563 233.0625,35.8984 Q232.8281,35.6406 232.8281,35.0313 L232.8281,34.1406 L228.8594,34.1406 L228.8594,36.5938 L230.3438,36.5938 Q230.3438,35.9375 230.4688,35.75 Q230.7344,35.3438 231.2031,35.3438 Q231.5781,35.3438 231.8125,35.6016 Q232.0469,35.8594 232.0469,36.4688 L232.0469,38.4375 Q232.0469,38.9844 231.9219,39.1719 Q231.6563,39.5625 231.2031,39.5625 Q230.7344,39.5625 230.4688,39.1563 Q230.3438,38.9688 230.3438,38.2969 L228.8594,38.2969 Z "/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="36" x="244" y="42.4102">Result</text><line style="stroke: #000000; stroke-width: 1.5;" x1="216" x2="282" y1="53.5" y2="53.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="15" x="221" y="68.9189">OK</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="22" x="221" y="82.7549">NOK</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="53" x="221" y="96.5908">UNKNOWN</text><line style="stroke: #000000; stroke-width: 1.5;" x1="216" x2="282" y1="103.0078" y2="103.0078"/><!--class PartType--><rect fill="#F5F5F5" filter="url(#fzi1h3odwm3pk)" height="75.6719" id="PartType" style="stroke: #000000; stroke-width: 1.5;" width="80" x="91" y="223.5"/><ellipse cx="106" cy="239.5" fill="#FFFFFF" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><path d="M104.8594,240.2969 L104.8594,242.7969 L109.1875,242.7969 L109.1875,241.875 Q109.1875,241.2656 109.4297,241 Q109.6719,240.7344 110.0469,240.7344 Q110.4219,240.7344 110.6563,241 Q110.8906,241.2656 110.8906,241.875 L110.8906,244.5 L102.8906,244.5 Q102.2656,244.5 102.0078,244.2656 Q101.75,244.0313 101.75,243.6406 Q101.75,243.2656 102.0156,243.0313 Q102.2813,242.7969 102.8906,242.7969 L103.1563,242.7969 L103.1563,236.1406 L102.8906,236.1406 Q102.2656,236.1406 102.0078,235.9063 Q101.75,235.6719 101.75,235.2813 Q101.75,234.9063 102.0078,234.6719 Q102.2656,234.4375 102.8906,234.4375 L110.5156,234.4375 L110.5156,237.0313 Q110.5156,237.6406 110.2891,237.8984 Q110.0625,238.1563 109.6719,238.1563 Q109.2969,238.1563 109.0625,237.8984 Q108.8281,237.6406 108.8281,237.0313 L108.8281,236.1406 L104.8594,236.1406 L104.8594,238.5938 L106.3438,238.5938 Q106.3438,237.9375 106.4688,237.75 Q106.7344,237.3438 107.2031,237.3438 Q107.5781,237.3438 107.8125,237.6016 Q108.0469,237.8594 108.0469,238.4688 L108.0469,240.4375 Q108.0469,240.9844 107.9219,241.1719 Q107.6563,241.5625 107.2031,241.5625 Q106.7344,241.5625 106.4688,241.1563 Q106.3438,240.9688 106.3438,240.2969 L104.8594,240.2969 Z "/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="48" x="120" y="244.4102">PartType</text><line style="stroke: #000000; stroke-width: 1.5;" x1="92" x2="170" y1="255.5" y2="255.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="36" x="97" y="270.9189">SINGLE</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="35" x="97" y="284.7549">BATCH</text><line style="stroke: #000000; stroke-width: 1.5;" x1="92" x2="170" y1="291.1719" y2="291.1719"/><!--class ProcessPayload--><rect fill="#F5F5F5" filter="url(#fzi1h3odwm3pk)" height="117.1797" id="ProcessPayload" style="stroke: #000000; stroke-width: 1.5;" width="160" x="449" y="8"/><ellipse cx="481.1" cy="24" fill="#FFFFFF" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><path d="M483.8656,19.875 Q484.0219,19.6563 484.2094,19.5469 Q484.3969,19.4375 484.6156,19.4375 Q484.9906,19.4375 485.225,19.6953 Q485.4594,19.9531 485.4594,20.5625 L485.4594,22.0156 Q485.4594,22.625 485.225,22.8906 Q484.9906,23.1563 484.6156,23.1563 Q484.2719,23.1563 484.0688,22.9531 Q483.8656,22.7656 483.7563,22.25 Q483.7094,21.8906 483.5219,21.7031 Q483.1938,21.3281 482.5844,21.1094 Q481.975,20.8906 481.35,20.8906 Q480.5844,20.8906 479.9516,21.2188 Q479.3188,21.5469 478.8266,22.2969 Q478.3344,23.0469 478.3344,24.0781 L478.3344,25.1719 Q478.3344,26.4063 479.225,27.2266 Q480.1156,28.0469 481.7094,28.0469 Q482.6469,28.0469 483.3031,27.7969 Q483.6938,27.6406 484.1156,27.2031 Q484.3813,26.9375 484.5297,26.8594 Q484.6781,26.7813 484.8813,26.7813 Q485.2094,26.7813 485.4672,27.0391 Q485.725,27.2969 485.725,27.6406 Q485.725,27.9844 485.3813,28.3906 Q484.8813,28.9688 484.0844,29.2969 Q483.0063,29.75 481.7094,29.75 Q480.1938,29.75 478.9906,29.125 Q478.0063,28.625 477.3188,27.5547 Q476.6313,26.4844 476.6313,25.2031 L476.6313,24.0469 Q476.6313,22.7188 477.2484,21.5703 Q477.8656,20.4219 478.9594,19.8047 Q480.0531,19.1875 481.2875,19.1875 Q482.0219,19.1875 482.6703,19.3516 Q483.3188,19.5156 483.8656,19.875 Z "/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="90" x="498.9" y="28.9102">ProcessPayload</text><line style="stroke: #000000; stroke-width: 1.5;" x1="450" x2="608" y1="40" y2="40"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="98" x="455" y="55.4189">content-spec: String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="71" x="455" y="69.2549">device: Device</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="148" x="455" y="83.0908">measurements: Measurements</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="68" x="455" y="96.9268">part[0..1]: Part</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="86" x="455" y="110.7627">process: Process</text><line style="stroke: #000000; stroke-width: 1.5;" x1="450" x2="608" y1="117.1797" y2="117.1797"/><!--class Process--><rect fill="#F5F5F5" filter="url(#fzi1h3odwm3pk)" height="117.1797" id="Process" style="stroke: #000000; stroke-width: 1.5;" width="135" x="690.5" y="203"/><ellipse cx="731.15" cy="219" fill="#FFFFFF" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><path d="M733.9156,214.875 Q734.0719,214.6563 734.2594,214.5469 Q734.4469,214.4375 734.6656,214.4375 Q735.0406,214.4375 735.275,214.6953 Q735.5094,214.9531 735.5094,215.5625 L735.5094,217.0156 Q735.5094,217.625 735.275,217.8906 Q735.0406,218.1563 734.6656,218.1563 Q734.3219,218.1563 734.1188,217.9531 Q733.9156,217.7656 733.8063,217.25 Q733.7594,216.8906 733.5719,216.7031 Q733.2438,216.3281 732.6344,216.1094 Q732.025,215.8906 731.4,215.8906 Q730.6344,215.8906 730.0016,216.2188 Q729.3688,216.5469 728.8766,217.2969 Q728.3844,218.0469 728.3844,219.0781 L728.3844,220.1719 Q728.3844,221.4063 729.275,222.2266 Q730.1656,223.0469 731.7594,223.0469 Q732.6969,223.0469 733.3531,222.7969 Q733.7438,222.6406 734.1656,222.2031 Q734.4313,221.9375 734.5797,221.8594 Q734.7281,221.7813 734.9313,221.7813 Q735.2594,221.7813 735.5172,222.0391 Q735.775,222.2969 735.775,222.6406 Q735.775,222.9844 735.4313,223.3906 Q734.9313,223.9688 734.1344,224.2969 Q733.0563,224.75 731.7594,224.75 Q730.2438,224.75 729.0406,224.125 Q728.0563,223.625 727.3688,222.5547 Q726.6813,221.4844 726.6813,220.2031 L726.6813,219.0469 Q726.6813,217.7188 727.2984,216.5703 Q727.9156,215.4219 729.0094,214.8047 Q730.1031,214.1875 731.3375,214.1875 Q732.0719,214.1875 732.7203,214.3516 Q733.3688,214.5156 733.9156,214.875 Z "/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="46" x="750.85" y="223.9102">Process</text><line style="stroke: #000000; stroke-width: 1.5;" x1="691.5" x2="824.5" y1="235" y2="235"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="105" x="696.5" y="250.4189">externalId[0..1]: String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="110" x="696.5" y="264.2549">program[0..1]: Program</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="87" x="696.5" y="278.0908">result[0..1]: Result</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="123" x="696.5" y="291.9268">shutoffPhase[0..1]: String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="37" x="696.5" y="305.7627">ts: Date</text><line style="stroke: #000000; stroke-width: 1.5;" x1="691.5" x2="824.5" y1="312.1797" y2="312.1797"/><!--class ProcessMeasurement--><rect fill="#F5F5F5" filter="url(#fzi1h3odwm3pk)" height="89.5078" id="ProcessMeasurement" style="stroke: #000000; stroke-width: 1.5;" width="179" x="341.5" y="411.5"/><ellipse cx="367.75" cy="427.5" fill="#FFFFFF" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><path d="M370.5156,423.375 Q370.6719,423.1563 370.8594,423.0469 Q371.0469,422.9375 371.2656,422.9375 Q371.6406,422.9375 371.875,423.1953 Q372.1094,423.4531 372.1094,424.0625 L372.1094,425.5156 Q372.1094,426.125 371.875,426.3906 Q371.6406,426.6563 371.2656,426.6563 Q370.9219,426.6563 370.7188,426.4531 Q370.5156,426.2656 370.4063,425.75 Q370.3594,425.3906 370.1719,425.2031 Q369.8438,424.8281 369.2344,424.6094 Q368.625,424.3906 368,424.3906 Q367.2344,424.3906 366.6016,424.7188 Q365.9688,425.0469 365.4766,425.7969 Q364.9844,426.5469 364.9844,427.5781 L364.9844,428.6719 Q364.9844,429.9063 365.875,430.7266 Q366.7656,431.5469 368.3594,431.5469 Q369.2969,431.5469 369.9531,431.2969 Q370.3438,431.1406 370.7656,430.7031 Q371.0313,430.4375 371.1797,430.3594 Q371.3281,430.2813 371.5313,430.2813 Q371.8594,430.2813 372.1172,430.5391 Q372.375,430.7969 372.375,431.1406 Q372.375,431.4844 372.0313,431.8906 Q371.5313,432.4688 370.7344,432.7969 Q369.6563,433.25 368.3594,433.25 Q366.8438,433.25 365.6406,432.625 Q364.6563,432.125 363.9688,431.0547 Q363.2813,429.9844 363.2813,428.7031 L363.2813,427.5469 Q363.2813,426.2188 363.8984,425.0703 Q364.5156,423.9219 365.6094,423.3047 Q366.7031,422.6875 367.9375,422.6875 Q368.6719,422.6875 369.3203,422.8516 Q369.9688,423.0156 370.5156,423.375 Z "/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="122" x="384.25" y="432.4102">ProcessMeasurement</text><line style="stroke: #000000; stroke-width: 1.5;" x1="342.5" x2="519.5" y1="443.5" y2="443.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="84" x="347.5" y="458.9189">name[0..1]: String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="91" x="347.5" y="472.7549">phase[0..1] ; String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="167" x="347.5" y="486.5908">specialValues[0..1]: SpecialValues</text><line style="stroke: #000000; stroke-width: 1.5;" x1="342.5" x2="519.5" y1="493.0078" y2="493.0078"/><!--class Program--><rect fill="#F5F5F5" filter="url(#fzi1h3odwm3pk)" height="89.5078" id="Program" style="stroke: #000000; stroke-width: 1.5;" width="140" x="704" y="411.5"/><ellipse cx="746" cy="427.5" fill="#FFFFFF" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><path d="M748.7656,423.375 Q748.9219,423.1563 749.1094,423.0469 Q749.2969,422.9375 749.5156,422.9375 Q749.8906,422.9375 750.125,423.1953 Q750.3594,423.4531 750.3594,424.0625 L750.3594,425.5156 Q750.3594,426.125 750.125,426.3906 Q749.8906,426.6563 749.5156,426.6563 Q749.1719,426.6563 748.9688,426.4531 Q748.7656,426.2656 748.6563,425.75 Q748.6094,425.3906 748.4219,425.2031 Q748.0938,424.8281 747.4844,424.6094 Q746.875,424.3906 746.25,424.3906 Q745.4844,424.3906 744.8516,424.7188 Q744.2188,425.0469 743.7266,425.7969 Q743.2344,426.5469 743.2344,427.5781 L743.2344,428.6719 Q743.2344,429.9063 744.125,430.7266 Q745.0156,431.5469 746.6094,431.5469 Q747.5469,431.5469 748.2031,431.2969 Q748.5938,431.1406 749.0156,430.7031 Q749.2813,430.4375 749.4297,430.3594 Q749.5781,430.2813 749.7813,430.2813 Q750.1094,430.2813 750.3672,430.5391 Q750.625,430.7969 750.625,431.1406 Q750.625,431.4844 750.2813,431.8906 Q749.7813,432.4688 748.9844,432.7969 Q747.9063,433.25 746.6094,433.25 Q745.0938,433.25 743.8906,432.625 Q742.9063,432.125 742.2188,431.0547 Q741.5313,429.9844 741.5313,428.7031 L741.5313,427.5469 Q741.5313,426.2188 742.1484,425.0703 Q742.7656,423.9219 743.8594,423.3047 Q744.9531,422.6875 746.1875,422.6875 Q746.9219,422.6875 747.5703,422.8516 Q748.2188,423.0156 748.7656,423.375 Z "/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="48" x="766" y="432.4102">Program</text><line style="stroke: #000000; stroke-width: 1.5;" x1="705" x2="843" y1="443.5" y2="443.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="42" x="710" y="458.9189">id: String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="128" x="710" y="472.7549">lastChangeDate[0..1]: Date</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="84" x="710" y="486.5908">name[0..1]: String</text><line style="stroke: #000000; stroke-width: 1.5;" x1="705" x2="843" y1="493.0078" y2="493.0078"/><!--class SpecialValue--><rect fill="#F5F5F5" filter="url(#fzi1h3odwm3pk)" height="89.5078" id="SpecialValue" style="stroke: #000000; stroke-width: 1.5;" width="113" x="555.5" y="411.5"/><ellipse cx="574.55" cy="427.5" fill="#FFFFFF" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><path d="M577.3156,423.375 Q577.4719,423.1563 577.6594,423.0469 Q577.8469,422.9375 578.0656,422.9375 Q578.4406,422.9375 578.675,423.1953 Q578.9094,423.4531 578.9094,424.0625 L578.9094,425.5156 Q578.9094,426.125 578.675,426.3906 Q578.4406,426.6563 578.0656,426.6563 Q577.7219,426.6563 577.5188,426.4531 Q577.3156,426.2656 577.2063,425.75 Q577.1594,425.3906 576.9719,425.2031 Q576.6438,424.8281 576.0344,424.6094 Q575.425,424.3906 574.8,424.3906 Q574.0344,424.3906 573.4016,424.7188 Q572.7688,425.0469 572.2766,425.7969 Q571.7844,426.5469 571.7844,427.5781 L571.7844,428.6719 Q571.7844,429.9063 572.675,430.7266 Q573.5656,431.5469 575.1594,431.5469 Q576.0969,431.5469 576.7531,431.2969 Q577.1438,431.1406 577.5656,430.7031 Q577.8313,430.4375 577.9797,430.3594 Q578.1281,430.2813 578.3313,430.2813 Q578.6594,430.2813 578.9172,430.5391 Q579.175,430.7969 579.175,431.1406 Q579.175,431.4844 578.8313,431.8906 Q578.3313,432.4688 577.5344,432.7969 Q576.4563,433.25 575.1594,433.25 Q573.6438,433.25 572.4406,432.625 Q571.4563,432.125 570.7688,431.0547 Q570.0813,429.9844 570.0813,428.7031 L570.0813,427.5469 Q570.0813,426.2188 570.6984,425.0703 Q571.3156,423.9219 572.4094,423.3047 Q573.5031,422.6875 574.7375,422.6875 Q575.4719,422.6875 576.1203,422.8516 Q576.7688,423.0156 577.3156,423.375 Z "/><text fill="#50237F" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="72" x="589.45" y="432.4102">SpecialValue</text><line style="stroke: #000000; stroke-width: 1.5;" x1="556.5" x2="667.5" y1="443.5" y2="443.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="82" x="561.5" y="458.9189">time[0..1]: Integer</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="84" x="561.5" y="472.7549">name[0..1]: String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="101" x="561.5" y="486.5908">value: &lt;String, Float&gt;</text><line style="stroke: #000000; stroke-width: 1.5;" x1="556.5" x2="667.5" y1="493.0078" y2="493.0078"/><!--link Measurement to Context--><path d="M353.042,316.851 C351.024,317.938 349.008,318.99 347,320 C310.463,338.383 297.252,333.113 260,350 C220.837,367.753 212.905,375.934 176,398 C170.18,401.48 164.178,405.118 158.16,408.801 " fill="none" id="Measurement-Context" style="stroke: #000000; stroke-width: 1.0;"/><polygon fill="#000000" points="364.581,310.291,357.3881,309.7787,354.1487,316.2212,361.3416,316.7335,364.581,310.291" style="stroke: #000000; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="66" x="261" y="364.4951">ContextList</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="7" x="349.9336" y="312.257">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="22" x="166.0107" y="401.1693">0..1</text><!--link Context to Limits--><path d="M84,528.169 C84,543.966 84,560.539 84,575.742 " fill="none" id="Context-Limits" style="stroke: #000000; stroke-width: 1.0;"/><polygon fill="#000000" points="84,515.129,80,521.129,84,527.129,88,521.129,84,515.129" style="stroke: #000000; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="7" x="76.5734" y="536.755">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="62.7813" y="565.1115">0..*</text><!--link ProcessPayload to Device--><path d="M451.045,125.145 C411.54,154.358 364.322,189.274 327.739,216.325 " fill="none" id="ProcessPayload-Device" style="stroke: #000000; stroke-width: 1.0;"/><!--link ProcessPayload to Part--><path d="M545.726,125.145 C552.849,149.693 561.14,178.267 568.263,202.819 " fill="none" id="ProcessPayload-Part" style="stroke: #000000; stroke-width: 1.0;"/><!--link ProcessPayload to Process--><path d="M597.397,125.145 C626.787,149.915 661.043,178.785 690.349,203.484 " fill="none" id="ProcessPayload-Process" style="stroke: #000000; stroke-width: 1.0;"/><!--link ProcessPayload to Measurement--><path d="M470.956,136.083 C466.941,142.285 463.218,148.633 460,155 C452.502,169.834 446.742,186.852 442.408,202.829 " fill="none" id="ProcessPayload-Measurement" style="stroke: #000000; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="478.453,125.102,471.7663,127.8017,471.6865,135.0123,478.3732,132.3127,478.453,125.102" style="stroke: #000000; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="461" y="169.4951">Measurements</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="7" x="464.866" y="146.7247">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="422.5796" y="192.2091">0..*</text><!--link Process to Program--><path d="M762.779,320.145 C765.201,349.358 768.095,384.274 770.338,411.325 " fill="none" id="Process-Program" style="stroke: #000000; stroke-width: 1.0;"/><!--link Measurement to Series--><path d="M376.939,320.145 C347.147,351.912 311.03,390.424 284.95,418.233 " fill="none" id="Measurement-Series" style="stroke: #000000; stroke-width: 1.0;"/><!--link Measurement to SpecialValue--><path d="M494.226,329.917 C519.532,356.902 547.977,387.232 570.572,411.325 " fill="none" id="Measurement-SpecialValue" style="stroke: #000000; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="485.061,320.145,486.2476,327.2578,493.2696,328.8982,492.083,321.7854,485.061,320.145" style="stroke: #000000; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="83" x="528" y="364.4951">SpecialValues</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="7" x="484.2231" y="341.773">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="542.6971" y="400.7423">0..*</text><!--link Measurement to ProcessMeasurement--><path d="M431,340.357 C431,364.516 431,390.297 431,411.325 " fill="none" id="Measurement-ProcessMeasurement" style="stroke: #000000; stroke-width: 1.0;"/><polygon fill="none" points="424,340.145,431,320.145,438,340.145,424,340.145" style="stroke: #000000; stroke-width: 1.0;"/><!--link DeviceState to Result--><!--link DeviceState to PartType--><!--
+@startuml
+
+skinparam class {
+	BorderColor black
+	FontColor #50237f
+	BackgroundColor #f5f5f5
+	ArrowColor black
+}
+skinparam stereotype{
+	CBackgroundColor white
+	EBackgroundColor white
+}
+
+class Device {
+	id: String
+	mode[0..1]: String
+	state[0..1]: DeviceState
+}
+
+class Measurement {
+	code[0..1]: String
+	context[0..1]: ContextList
+	result[0..1]: Result
+	series: Series
+	ts: Date
+}
+
+class Context {
+	accuracy[0..1]: Float | [Float]
+	limits[0..1]: Limits
+	offset[0..1]: Float | [Float]
+	type[0..1]: String
+	unit[0..1]: String
+}
+
+class Limits {
+	lowerError[0..1]: Float | [Float]
+	lowerWarn[0..1]: Float | [Float]
+	target[0..1]:  Float | [Float]
+	upperError[0..1]: Float | [Float]
+	upperWarn[0..1]: Float | [Float]
+}
+
+class Series {
+	time: [Integer]
+	<values>[1..*]: [Float]
+}
+
+class Part {
+	code[0..1]: String
+	id[0..1]: String
+	type[0..1]: PartType
+	typeId[0..1]: String
+	result[0..1]: Result
+}
+
+enum DeviceState {
+	OK
+	INFO
+	WARN
+	ERROR
+	UNKNOWN
+}
+
+enum Result {
+	OK
+	NOK
+	UNKNOWN
+}
+
+enum PartType {
+	SINGLE
+	BATCH
+}
+
+Measurement "1" *- - "0..1" Context : ContextList
+Context "1" *- - "0..*" Limits
+
+
+skinparam class {
+	BorderColor black
+	FontColor #50237f
+	BackgroundColor #f5f5f5
+	ArrowColor black
+}
+skinparam stereotype {
+	CBackgroundColor white
+	EBackgroundColor white
+}
+
+class ProcessPayload {
+	content-spec: String
+	device: Device
+	measurements: Measurements
+	part[0..1]: Part
+	process: Process
+}
+
+class Process {
+	externalId[0..1]: String
+	program[0..1]: Program
+	result[0..1]: Result
+	shutoffPhase[0..1]: String
+	ts: Date
+}
+
+class ProcessMeasurement {
+	name[0..1]: String
+	phase[0..1] ; String
+	specialValues[0..1]: SpecialValues
+}
+
+class Program {
+	id: String
+	lastChangeDate[0..1]: Date
+	name[0..1]: String
+}
+
+class SpecialValue {
+	time[0..1]: Integer
+	name[0..1]: String
+	value: <String, Float>
+}
+
+ProcessPayload - - Device
+ProcessPayload - - Part
+ProcessPayload - - Process
+ProcessPayload "1" o- - "0..*" Measurement: Measurements
+
+Process - - Program
+
+Measurement - - Series
+Measurement "1" o- - "0..*" SpecialValue: SpecialValues
+
+Measurement <|- - ProcessMeasurement
+
+@enduml
+
+PlantUML version 1.2018.01(Sun Jan 28 19:08:22 CET 2018)
+(EPL source distribution)
+Java Runtime: Java(TM) SE Runtime Environment
+JVM: Java HotSpot(TM) 64-Bit Server VM
+Java Version: 9.0.4+11
+Operating System: Windows 10
+OS Version: 10.0
+Default Encoding: Cp1252
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file
diff --git a/images/specification/v3/processPayload.uml b/images/specification/v3/processPayload.uml
new file mode 100644
index 0000000..0f12596
--- /dev/null
+++ b/images/specification/v3/processPayload.uml
@@ -0,0 +1,61 @@
+@startuml
+!include definitions.iuml
+
+skinparam class {
+	BorderColor black
+	FontColor #50237f
+	BackgroundColor #f5f5f5
+	ArrowColor black
+}
+skinparam stereotype {
+	CBackgroundColor white
+	EBackgroundColor white
+}
+
+class ProcessPayload {
+	content-spec: String
+	device: Device
+	measurements: Measurements
+	part[0..1]: Part
+	process: Process
+}
+
+class Process {
+	externalId[0..1]: String
+	program[0..1]: Program
+	result[0..1]: Result
+	shutoffPhase[0..1]: String
+	ts: Date
+}
+
+class ProcessMeasurement {
+	name[0..1]: String
+	phase[0..1] ; String
+	specialValues[0..1]: SpecialValues
+}
+
+class Program {
+	id: String
+	lastChangeDate[0..1]: Date
+	name[0..1]: String
+}
+
+class SpecialValue {
+	time[0..1]: Integer
+	name[0..1]: String
+	value: <String, Float>
+}
+
+ProcessPayload -- Device
+ProcessPayload -- Part
+ProcessPayload -- Process
+ProcessPayload "1" o-- "0..*" Measurement: Measurements
+
+Process -- Program
+
+Measurement -- Series
+Measurement "1" o-- "0..*" SpecialValue: SpecialValues
+
+Measurement <|-- ProcessMeasurement
+
+@enduml
\ No newline at end of file
diff --git a/index.html b/index.html
index 9d6126e..7580533 100644
--- a/index.html
+++ b/index.html
@@ -26,6 +26,6 @@
     We started to capture this information in a simple payload specification and just like in the introducing language example where you can use phrases via phone, letter or in person, the payload is meant to be sent over different protocols (REST, MQTT, AMQP). This payload is the Production Performance Management Protocol (<i>PPMP</i>).
     <div class="card is-pulled-left"><div class="card-image"><figure class="image"><img src="images/eclipse-426x100.png" alt="Eclipse logo" title="Eclipse logo"></figure></div></div><p>
     In order to, first, leverage the Eclipse IoT stack in Industry 4.0 scenarios and, second, build a lively community around the specification, we consider the Eclipse iot working group as the premier place to host Unide. 
-    </div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"default",data:[{}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_default.2114b4fdc743f1b2e00e.js"></script><script defer src="/unide/files/pages_index.7d76ce931d19b81f54ec.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"default",data:[{}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_default.19e29c13ea8f8ffe3260.js"></script><script defer src="/unide/files/pages_index.922f1427ed81a1db7207.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/proposal/index.html b/proposal/index.html
index a8936f8..030f478 100644
--- a/proposal/index.html
+++ b/proposal/index.html
@@ -70,6 +70,6 @@
         October 2016
       </a>
       (4)
-    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_sidebar.9ce19a6b4466cfb04342.js"></script><script defer src="/unide/files/pages_proposal.05a0b52aa840e2ad9ee2.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+    </ul></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"sidebar",data:[{}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_sidebar.7c421ad9e58e5e68f949.js"></script><script defer src="/unide/files/pages_proposal.60a77f13238c99a592be.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/specification/index.html b/specification/index.html
index 4aef604..898076c 100644
--- a/specification/index.html
+++ b/specification/index.html
@@ -28,7 +28,7 @@
     The specification is structured into three payload formats: Measurement payload, message payload and process payload. The Measurement payload contains measurements from machines such as the temperature of a machine at a specific point in time together with the currently produced part. The message payload contains arbitrary messages sent by a machine, e.g. alerts or the like. A process message consists of information about a discrete e.g. tightening or welding processes with all their characterising data which are needed to describe and analyze it.
     <p>
     The default way of transporting the json payload is via http to allow for an easy integration into various backend systems. Other transportation methods are possible and welcome.
-    </div><div class="columns" id="messageDetail"><div class="column"><a href="/unide/specification#messageDetail">Overview</a></div><div class="column"><a href="/unide/specification/machine-message#messageDetail">Machine Message</a></div><div class="column"><a href="/unide/specification/measurement-message#messageDetail">Measurement Message</a></div><div class="column"><a href="/unide/specification/process-message#messageDetail">Process Message</a></div></div><div class="content"><h1><a href="#Communicating-Parties" title="Communicating Parties"></a>
+    </div><div class="columns" id="messageDetail"><div class="column"><a href="/unide/specification#messageDetail">Overview</a></div><div class="column"><a href="/unide/specification/v2/machine-message#messageDetail">Machine Message</a></div><div class="column"><a href="/unide/specification/v2/measurement-message#messageDetail">Measurement Message</a></div><div class="column"><a href="/unide/specification/v2/process-message#messageDetail">Process Message</a></div></div><div class="content"><h1><a href="#Communicating-Parties" title="Communicating Parties"></a>
     Communicating Parties
   </h1><p>
   Two parties are involved in a PPMP message exchange: the sender and the receiver. The sender pushes a message to the receiver. Usually the sender is a machine or a sensor of a machine.
@@ -36,6 +36,6 @@
   The receiver waits for messages. It offers a API that allows for sending either measurement payloads or message payloads.
   <p>
   The communication is unidirectional. Only the sender can contact the receiver and send messages. No feedback from receiver to sender is provided.
-  </p><img src="images/collaborators_v2.svg" alt="Overview PPMP" title="Overview PPMP" class="is-centered"></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"default",data:[{isStatic:!0},{}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_default.2114b4fdc743f1b2e00e.js"></script><script defer src="/unide/files/pages_specification.6def4404f10957a24495.js"></script><script defer src="/unide/files/pages_specification_index.06dad5cb3f63c35339f3.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+  </p><img src="images/collaborators_v2.svg" alt="Overview PPMP" title="Overview PPMP" class="is-centered"></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"default",data:[{isStatic:!0},{}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_default.19e29c13ea8f8ffe3260.js"></script><script defer src="/unide/files/pages_specification.019a3d73137721bf46a2.js"></script><script defer src="/unide/files/pages_specification_index.815252d9cf4fccce90f1.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/specification/machine-message/index.html b/specification/v2/machine-message/index.html
similarity index 84%
copy from specification/machine-message/index.html
copy to specification/v2/machine-message/index.html
index 5d0b918..24c57be 100644
--- a/specification/machine-message/index.html
+++ b/specification/v2/machine-message/index.html
@@ -28,9 +28,9 @@
     The specification is structured into three payload formats: Measurement payload, message payload and process payload. The Measurement payload contains measurements from machines such as the temperature of a machine at a specific point in time together with the currently produced part. The message payload contains arbitrary messages sent by a machine, e.g. alerts or the like. A process message consists of information about a discrete e.g. tightening or welding processes with all their characterising data which are needed to describe and analyze it.
     <p>
     The default way of transporting the json payload is via http to allow for an easy integration into various backend systems. Other transportation methods are possible and welcome.
-    </div><div class="columns" id="messageDetail"><div class="column"><a href="/unide/specification#messageDetail">Overview</a></div><div class="column"><a href="/unide/specification/machine-message#messageDetail">Machine Message</a></div><div class="column"><a href="/unide/specification/measurement-message#messageDetail">Measurement Message</a></div><div class="column"><a href="/unide/specification/process-message#messageDetail">Process Message</a></div></div><div class="machine-message content"><h1><a id="Message-Payload" title="Machine Message Payload"></a>
+    </div><div class="columns" id="messageDetail"><div class="column"><a href="/unide/specification#messageDetail">Overview</a></div><div class="column"><a href="/unide/specification/v2/machine-message#messageDetail">Machine Message</a></div><div class="column"><a href="/unide/specification/v2/measurement-message#messageDetail">Measurement Message</a></div><div class="column"><a href="/unide/specification/v2/process-message#messageDetail">Process Message</a></div></div><div class="machine-message content"><h1><a id="Message-Payload" title="Machine Message payload"></a>
     Machine Message Payload
-  </h1><p>The main purpose of the machine message format is to allow devices and integrators to send messages containing an interpretation of measurement data or status.</p><img src="images/messagePayload.svg" alt="Class diagram of the message payload" title="Class diagram of the message payload" class="is-centered"><div class="schemaDetail is-loading" id="schema-detail"><div class="accordion"><!----><div class="card collapsibleCard collapsed"><header class="card-header"><p class="card-header-title">
+  </h1><p>The main purpose of the machine message format is to allow devices and integrators to send messages containing an interpretation of measurement data or status.</p><img src="images/specification/v2/messagePayload.svg" alt="Class diagram of the Machine Message payload" title="Class diagram of the Machine Message payload" class="is-centered"><div class="schemaDetail is-loading" id="schema-detail"><div class="accordion"><!----><div class="card collapsibleCard collapsed"><header class="card-header"><p class="card-header-title">
         Minimal message example
       </p><a class="card-header-icon"><span class="icon"><i class="fa fa-angle-up"></i></span></a></header><div style="display:none"><div class="card-content"><pre class="language-json"><code class="language-json"><span class="token punctuation">{</span>
   <span class="token property">"content-spec"</span><span class="token operator">:</span> <span class="token string">"urn:spec://eclipse.org/unide/machine-message#v2"</span><span class="token punctuation">,</span>
@@ -39,7 +39,7 @@
   <span class="token punctuation">}</span><span class="token punctuation">,</span>
   <span class="token property">"messages"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
     <span class="token punctuation">{</span>
-      <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-11T08:51:59.206Z"</span><span class="token punctuation">,</span>
+      <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-27T08:52:01.873Z"</span><span class="token punctuation">,</span>
       <span class="token property">"code"</span><span class="token operator">:</span> <span class="token string">"190ABT"</span>
     <span class="token punctuation">}</span>
   <span class="token punctuation">]</span>
@@ -58,7 +58,7 @@
   <span class="token property">"messages"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
     <span class="token punctuation">{</span>
       <span class="token property">"origin"</span><span class="token operator">:</span> <span class="token string">"sensor-id-992.2393.22"</span><span class="token punctuation">,</span>
-      <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-11T08:51:59.206Z"</span><span class="token punctuation">,</span>
+      <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-27T08:52:01.873Z"</span><span class="token punctuation">,</span>
       <span class="token property">"type"</span><span class="token operator">:</span> <span class="token string">"DEVICE"</span><span class="token punctuation">,</span>
       <span class="token property">"severity"</span><span class="token operator">:</span> <span class="token string">"HIGH"</span><span class="token punctuation">,</span>
       <span class="token property">"code"</span><span class="token operator">:</span> <span class="token string">"190ABT"</span><span class="token punctuation">,</span>
@@ -70,7 +70,7 @@
       <span class="token punctuation">}</span>
     <span class="token punctuation">}</span><span class="token punctuation">,</span>
     <span class="token punctuation">{</span>
-      <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-11T08:51:59.306Z"</span><span class="token punctuation">,</span>
+      <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-27T08:52:01.973Z"</span><span class="token punctuation">,</span>
       <span class="token property">"type"</span><span class="token operator">:</span> <span class="token string">"TECHNICAL_INFO"</span><span class="token punctuation">,</span>
       <span class="token property">"severity"</span><span class="token operator">:</span> <span class="token string">"HIGH"</span><span class="token punctuation">,</span>
       <span class="token property">"code"</span><span class="token operator">:</span> <span class="token string">"33-02"</span><span class="token punctuation">,</span>
@@ -78,8 +78,8 @@
       <span class="token property">"description"</span><span class="token operator">:</span> <span class="token string">"Disk size has reached limit. Unable to write log files."</span>
     <span class="token punctuation">}</span>
   <span class="token punctuation">]</span>
-<span class="token punctuation">}</span></code></pre></div></div></div></div><h1><a id="message-schema-detail" title="message Fields definition"></a>
-      Fields definition
-    </h1></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"default",data:[{isStatic:!0},{}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_default.2114b4fdc743f1b2e00e.js"></script><script defer src="/unide/files/pages_specification.6def4404f10957a24495.js"></script><script defer src="/unide/files/pages_specification_machine-message.9d83bf77d0c0e786c248.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+<span class="token punctuation">}</span></code></pre></div></div></div></div><h1><a id="v2/message-schema-detail" title="v2/message Fields definition"></a>
+    Fields definition
+  </h1></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"default",data:[{isStatic:!0},{}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_default.19e29c13ea8f8ffe3260.js"></script><script defer src="/unide/files/pages_specification.019a3d73137721bf46a2.js"></script><script defer src="/unide/files/pages_specification_v2_machine-message.0c8aa5390a849fab62a9.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/specification/measurement-message/index.html b/specification/v2/measurement-message/index.html
similarity index 87%
rename from specification/measurement-message/index.html
rename to specification/v2/measurement-message/index.html
index ca62d41..65640e3 100644
--- a/specification/measurement-message/index.html
+++ b/specification/v2/measurement-message/index.html
@@ -28,9 +28,9 @@
     The specification is structured into three payload formats: Measurement payload, message payload and process payload. The Measurement payload contains measurements from machines such as the temperature of a machine at a specific point in time together with the currently produced part. The message payload contains arbitrary messages sent by a machine, e.g. alerts or the like. A process message consists of information about a discrete e.g. tightening or welding processes with all their characterising data which are needed to describe and analyze it.
     <p>
     The default way of transporting the json payload is via http to allow for an easy integration into various backend systems. Other transportation methods are possible and welcome.
-    </div><div class="columns" id="messageDetail"><div class="column"><a href="/unide/specification#messageDetail">Overview</a></div><div class="column"><a href="/unide/specification/machine-message#messageDetail">Machine Message</a></div><div class="column"><a href="/unide/specification/measurement-message#messageDetail">Measurement Message</a></div><div class="column"><a href="/unide/specification/process-message#messageDetail">Process Message</a></div></div><div class="measurement-message content"><h1><a id="Measurement-Payload" title="Measurement Payload"></a>
+    </div><div class="columns" id="messageDetail"><div class="column"><a href="/unide/specification#messageDetail">Overview</a></div><div class="column"><a href="/unide/specification/v2/machine-message#messageDetail">Machine Message</a></div><div class="column"><a href="/unide/specification/v2/measurement-message#messageDetail">Measurement Message</a></div><div class="column"><a href="/unide/specification/v2/process-message#messageDetail">Process Message</a></div></div><div class="measurement-message content"><h1><a id="Measurement-Payload" title="Measurement Payload"></a>
     Measurement Payload
-  </h1><p>The measurement message is the format to exchange simple (non-structured, non-complex ) measurement data. It also allows to transport multiple measurement data (eg. values over time), called 'series'.</p><img src="images/measurementPayload.svg" alt="Class diagram of the measurement payload" title="Class diagram of the measurement payload" class="is-centered"><div class="schemaDetail is-loading" id="schema-detail"><div class="accordion"><!----><div class="card collapsibleCard collapsed"><header class="card-header"><p class="card-header-title">
+  </h1><p>The measurement message is the format to exchange simple (non-structured, non-complex ) measurement data. It also allows to transport multiple measurement data (eg. values over time), called 'series'.</p><img src="images/specification/v2/measurementPayload.svg" alt="Class diagram of the measurement payload" title="Class diagram of the measurement payload" class="is-centered"><div class="schemaDetail is-loading" id="schema-detail"><div class="accordion"><!----><div class="card collapsibleCard collapsed"><header class="card-header"><p class="card-header-title">
         Minimal message example
       </p><a class="card-header-icon"><span class="icon"><i class="fa fa-angle-up"></i></span></a></header><div style="display:none"><div class="card-content"><pre class="language-json"><code class="language-json"><span class="token punctuation">{</span>
   <span class="token property">"content-spec"</span><span class="token operator">:</span> <span class="token string">"urn:spec://eclipse.org/unide/measurement-message#v2"</span><span class="token punctuation">,</span>
@@ -39,7 +39,7 @@
   <span class="token punctuation">}</span><span class="token punctuation">,</span>
   <span class="token property">"measurements"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
     <span class="token punctuation">{</span>
-      <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-11T08:51:59.221Z"</span><span class="token punctuation">,</span>
+      <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-27T08:52:01.826Z"</span><span class="token punctuation">,</span>
       <span class="token property">"series"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
         <span class="token property">"$_time"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
           <span class="token number">0</span><span class="token punctuation">,</span>
@@ -78,7 +78,7 @@
   <span class="token punctuation">}</span><span class="token punctuation">,</span>
   <span class="token property">"measurements"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
     <span class="token punctuation">{</span>
-      <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-11T08:51:59.221Z"</span><span class="token punctuation">,</span>
+      <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-27T08:52:01.826Z"</span><span class="token punctuation">,</span>
       <span class="token property">"code"</span><span class="token operator">:</span> <span class="token string">"190ABT"</span><span class="token punctuation">,</span>
       <span class="token property">"result"</span><span class="token operator">:</span> <span class="token string">"OK"</span><span class="token punctuation">,</span>
       <span class="token property">"series"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
@@ -103,7 +103,7 @@
       <span class="token punctuation">}</span>
     <span class="token punctuation">}</span><span class="token punctuation">,</span>
     <span class="token punctuation">{</span>
-      <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-11T08:51:54.221Z"</span><span class="token punctuation">,</span>
+      <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-27T08:51:56.826Z"</span><span class="token punctuation">,</span>
       <span class="token property">"series"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
         <span class="token property">"$_time"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
           <span class="token number">0</span><span class="token punctuation">,</span>
@@ -118,8 +118,8 @@
       <span class="token punctuation">}</span>
     <span class="token punctuation">}</span>
   <span class="token punctuation">]</span>
-<span class="token punctuation">}</span></code></pre></div></div></div></div><h1><a id="measurement-schema-detail" title="measurement Fields definition"></a>
-      Fields definition
-    </h1></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"default",data:[{isStatic:!0},{}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_default.2114b4fdc743f1b2e00e.js"></script><script defer src="/unide/files/pages_specification.6def4404f10957a24495.js"></script><script defer src="/unide/files/pages_specification_measurement-message.0d15bcfe330182da8363.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+<span class="token punctuation">}</span></code></pre></div></div></div></div><h1><a id="v2/measurement-schema-detail" title="v2/measurement Fields definition"></a>
+    Fields definition
+  </h1></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"default",data:[{isStatic:!0},{}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_default.19e29c13ea8f8ffe3260.js"></script><script defer src="/unide/files/pages_specification.019a3d73137721bf46a2.js"></script><script defer src="/unide/files/pages_specification_v2_measurement-message.31b7192747b3c0fbb2e0.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/specification/process-message/index.html b/specification/v2/process-message/index.html
similarity index 90%
rename from specification/process-message/index.html
rename to specification/v2/process-message/index.html
index d57eaf1..15c87ce 100644
--- a/specification/process-message/index.html
+++ b/specification/v2/process-message/index.html
@@ -28,9 +28,9 @@
     The specification is structured into three payload formats: Measurement payload, message payload and process payload. The Measurement payload contains measurements from machines such as the temperature of a machine at a specific point in time together with the currently produced part. The message payload contains arbitrary messages sent by a machine, e.g. alerts or the like. A process message consists of information about a discrete e.g. tightening or welding processes with all their characterising data which are needed to describe and analyze it.
     <p>
     The default way of transporting the json payload is via http to allow for an easy integration into various backend systems. Other transportation methods are possible and welcome.
-    </div><div class="columns" id="messageDetail"><div class="column"><a href="/unide/specification#messageDetail">Overview</a></div><div class="column"><a href="/unide/specification/machine-message#messageDetail">Machine Message</a></div><div class="column"><a href="/unide/specification/measurement-message#messageDetail">Measurement Message</a></div><div class="column"><a href="/unide/specification/process-message#messageDetail">Process Message</a></div></div><div class="process-message content"><h1><a id="Process-Payload" title="Process Payload"></a>
+    </div><div class="columns" id="messageDetail"><div class="column"><a href="/unide/specification#messageDetail">Overview</a></div><div class="column"><a href="/unide/specification/v2/machine-message#messageDetail">Machine Message</a></div><div class="column"><a href="/unide/specification/v2/measurement-message#messageDetail">Measurement Message</a></div><div class="column"><a href="/unide/specification/v2/process-message#messageDetail">Process Message</a></div></div><div class="process-message content"><h1><a id="Process-Payload" title="Process Payload"></a>
     Process Payload
-  </h1><p>The process message is the format to exchange data out of discrete processes. It also allows to transport process information, part information and measurement data for each phase of the process.</p><img src="images/processPayload.svg" alt="Class diagram of the process data payload" title="Class diagram of the process data payload" class="is-center"><div class="schemaDetail is-loading" id="schema-detail"><div class="accordion"><!----><div class="card collapsibleCard collapsed"><header class="card-header"><p class="card-header-title">
+  </h1><p>The process message is the format to exchange data out of discrete processes. It also allows to transport process information, part information and measurement data for each phase of the process.</p><img src="images/specification/v2/processPayload.svg" alt="Class diagram of the process data payload" title="Class diagram of the process data payload" class="is-center"><div class="schemaDetail is-loading" id="schema-detail"><div class="accordion"><!----><div class="card collapsibleCard collapsed"><header class="card-header"><p class="card-header-title">
         Minimal message example 
       </p><a class="card-header-icon"><span class="icon"><i class="fa fa-angle-up"></i></span></a></header><div style="display:none"><div class="card-content"><pre class="language-json"><code class="language-json"><span class="token punctuation">{</span>
   <span class="token property">"content-spec"</span><span class="token operator">:</span> <span class="token string">"urn:spec://eclipse.org/unide/process-message#v2"</span><span class="token punctuation">,</span>
@@ -38,11 +38,11 @@
     <span class="token property">"deviceID"</span><span class="token operator">:</span> <span class="token string">"a4927dad-58d4-4580-b460-79cefd56775b"</span>
   <span class="token punctuation">}</span><span class="token punctuation">,</span>
   <span class="token property">"process"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
-    <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-11T08:51:59.190Z"</span>
+    <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-27T08:52:01.888Z"</span>
   <span class="token punctuation">}</span><span class="token punctuation">,</span>
   <span class="token property">"measurements"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
     <span class="token punctuation">{</span>
-      <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-11T08:51:59.290Z"</span><span class="token punctuation">,</span>
+      <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-27T08:52:01.988Z"</span><span class="token punctuation">,</span>
       <span class="token property">"series"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
         <span class="token property">"force"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
           <span class="token number">26</span><span class="token punctuation">,</span>
@@ -81,7 +81,7 @@
   <span class="token punctuation">}</span><span class="token punctuation">,</span>
   <span class="token property">"process"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
     <span class="token property">"externalProcessId"</span><span class="token operator">:</span> <span class="token string">"b4927dad-58d4-4580-b460-79cefd56775b"</span><span class="token punctuation">,</span>
-    <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-11T08:51:59.190Z"</span><span class="token punctuation">,</span>
+    <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-27T08:52:01.888Z"</span><span class="token punctuation">,</span>
     <span class="token property">"result"</span><span class="token operator">:</span> <span class="token string">"NOK"</span><span class="token punctuation">,</span>
     <span class="token property">"shutoffPhase"</span><span class="token operator">:</span> <span class="token string">"phase 2"</span><span class="token punctuation">,</span>
     <span class="token property">"program"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
@@ -91,7 +91,7 @@
     <span class="token punctuation">}</span><span class="token punctuation">,</span>
     <span class="token property">"shutoffValues"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
       <span class="token property">"force"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
-        <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-11T08:52:09.190Z"</span><span class="token punctuation">,</span>
+        <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-27T08:52:11.888Z"</span><span class="token punctuation">,</span>
         <span class="token property">"value"</span><span class="token operator">:</span> <span class="token number">24</span><span class="token punctuation">,</span>
         <span class="token property">"upperError"</span><span class="token operator">:</span> <span class="token number">26</span><span class="token punctuation">,</span>
         <span class="token property">"lowerError"</span><span class="token operator">:</span> <span class="token number">22</span><span class="token punctuation">,</span>
@@ -112,7 +112,7 @@
   <span class="token punctuation">}</span><span class="token punctuation">,</span>
   <span class="token property">"measurements"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
     <span class="token punctuation">{</span>
-      <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-11T08:51:59.290Z"</span><span class="token punctuation">,</span>
+      <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-27T08:52:01.988Z"</span><span class="token punctuation">,</span>
       <span class="token property">"phase"</span><span class="token operator">:</span> <span class="token string">"phase 1"</span><span class="token punctuation">,</span>
       <span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"heating up"</span><span class="token punctuation">,</span>
       <span class="token property">"result"</span><span class="token operator">:</span> <span class="token string">"OK"</span><span class="token punctuation">,</span>
@@ -172,7 +172,7 @@
       <span class="token punctuation">}</span>
     <span class="token punctuation">}</span><span class="token punctuation">,</span>
     <span class="token punctuation">{</span>
-      <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-11T08:51:59.620Z"</span><span class="token punctuation">,</span>
+      <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-27T08:52:02.318Z"</span><span class="token punctuation">,</span>
       <span class="token property">"phase"</span><span class="token operator">:</span> <span class="token string">"phase 2"</span><span class="token punctuation">,</span>
       <span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"processing"</span><span class="token punctuation">,</span>
       <span class="token property">"result"</span><span class="token operator">:</span> <span class="token string">"OK"</span><span class="token punctuation">,</span>
@@ -190,8 +190,8 @@
       <span class="token punctuation">}</span>
     <span class="token punctuation">}</span>
   <span class="token punctuation">]</span>
-<span class="token punctuation">}</span></code></pre></div></div></div></div><h1><a id="process-schema-detail" title="process Fields definition"></a>
-      Fields definition
-    </h1></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"default",data:[{isStatic:!0},{}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_default.2114b4fdc743f1b2e00e.js"></script><script defer src="/unide/files/pages_specification.6def4404f10957a24495.js"></script><script defer src="/unide/files/pages_specification_process-message.4a591726be19200d1dcf.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+<span class="token punctuation">}</span></code></pre></div></div></div></div><h1><a id="v2/process-schema-detail" title="v2/process Fields definition"></a>
+    Fields definition
+  </h1></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"default",data:[{isStatic:!0},{}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_default.19e29c13ea8f8ffe3260.js"></script><script defer src="/unide/files/pages_specification.019a3d73137721bf46a2.js"></script><script defer src="/unide/files/pages_specification_v2_process-message.4c628f89a8a036d97abc.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/specification/machine-message/index.html b/specification/v3/machine-message/index.html
similarity index 84%
rename from specification/machine-message/index.html
rename to specification/v3/machine-message/index.html
index 5d0b918..ca2d21e 100644
--- a/specification/machine-message/index.html
+++ b/specification/v3/machine-message/index.html
@@ -28,25 +28,25 @@
     The specification is structured into three payload formats: Measurement payload, message payload and process payload. The Measurement payload contains measurements from machines such as the temperature of a machine at a specific point in time together with the currently produced part. The message payload contains arbitrary messages sent by a machine, e.g. alerts or the like. A process message consists of information about a discrete e.g. tightening or welding processes with all their characterising data which are needed to describe and analyze it.
     <p>
     The default way of transporting the json payload is via http to allow for an easy integration into various backend systems. Other transportation methods are possible and welcome.
-    </div><div class="columns" id="messageDetail"><div class="column"><a href="/unide/specification#messageDetail">Overview</a></div><div class="column"><a href="/unide/specification/machine-message#messageDetail">Machine Message</a></div><div class="column"><a href="/unide/specification/measurement-message#messageDetail">Measurement Message</a></div><div class="column"><a href="/unide/specification/process-message#messageDetail">Process Message</a></div></div><div class="machine-message content"><h1><a id="Message-Payload" title="Machine Message Payload"></a>
+    </div><div class="columns" id="messageDetail"><div class="column"><a href="/unide/specification#messageDetail">Overview</a></div><div class="column"><a href="/unide/specification/v2/machine-message#messageDetail">Machine Message</a></div><div class="column"><a href="/unide/specification/v2/measurement-message#messageDetail">Measurement Message</a></div><div class="column"><a href="/unide/specification/v2/process-message#messageDetail">Process Message</a></div></div><div class="machine-message content"><h1><a id="Message-Payload" title="Machine Message Payload"></a>
     Machine Message Payload
-  </h1><p>The main purpose of the machine message format is to allow devices and integrators to send messages containing an interpretation of measurement data or status.</p><img src="images/messagePayload.svg" alt="Class diagram of the message payload" title="Class diagram of the message payload" class="is-centered"><div class="schemaDetail is-loading" id="schema-detail"><div class="accordion"><!----><div class="card collapsibleCard collapsed"><header class="card-header"><p class="card-header-title">
+  </h1><p>The main purpose of the machine message format is to allow devices and integrators to send messages containing an interpretation of measurement data or status.</p><img src="images/specification/v3/messagePayload.svg" alt="Class diagram of the message payload" title="Class diagram of the message payload" class="is-centered"><div class="schemaDetail is-loading" id="schema-detail"><div class="accordion"><!----><div class="card collapsibleCard collapsed"><header class="card-header"><p class="card-header-title">
         Minimal message example
       </p><a class="card-header-icon"><span class="icon"><i class="fa fa-angle-up"></i></span></a></header><div style="display:none"><div class="card-content"><pre class="language-json"><code class="language-json"><span class="token punctuation">{</span>
-  <span class="token property">"content-spec"</span><span class="token operator">:</span> <span class="token string">"urn:spec://eclipse.org/unide/machine-message#v2"</span><span class="token punctuation">,</span>
+  <span class="token property">"content-spec"</span><span class="token operator">:</span> <span class="token string">"urn:spec://eclipse.org/unide/machine-message#v3"</span><span class="token punctuation">,</span>
   <span class="token property">"device"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
     <span class="token property">"deviceID"</span><span class="token operator">:</span> <span class="token string">"a4927dad-58d4-4580-b460-79cefd56775b"</span>
   <span class="token punctuation">}</span><span class="token punctuation">,</span>
   <span class="token property">"messages"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
     <span class="token punctuation">{</span>
-      <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-11T08:51:59.206Z"</span><span class="token punctuation">,</span>
+      <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-27T08:52:01.795Z"</span><span class="token punctuation">,</span>
       <span class="token property">"code"</span><span class="token operator">:</span> <span class="token string">"190ABT"</span>
     <span class="token punctuation">}</span>
   <span class="token punctuation">]</span>
 <span class="token punctuation">}</span></code></pre></div></div></div><div class="card collapsibleCard collapsed"><header class="card-header"><p class="card-header-title">
         Multiple message example
       </p><a class="card-header-icon"><span class="icon"><i class="fa fa-angle-up"></i></span></a></header><div style="display:none"><div class="card-content"><pre class="language-json"><code class="language-json"><span class="token punctuation">{</span>
-  <span class="token property">"content-spec"</span><span class="token operator">:</span> <span class="token string">"urn:spec://eclipse.org/unide/machine-message#v2"</span><span class="token punctuation">,</span>
+  <span class="token property">"content-spec"</span><span class="token operator">:</span> <span class="token string">"urn:spec://eclipse.org/unide/machine-message#v3"</span><span class="token punctuation">,</span>
   <span class="token property">"device"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
     <span class="token property">"deviceID"</span><span class="token operator">:</span> <span class="token string">"a4927dad-58d4-4580-b460-79cefd56775b"</span><span class="token punctuation">,</span>
     <span class="token property">"operationalStatus"</span><span class="token operator">:</span> <span class="token string">"normal"</span><span class="token punctuation">,</span>
@@ -58,7 +58,7 @@
   <span class="token property">"messages"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
     <span class="token punctuation">{</span>
       <span class="token property">"origin"</span><span class="token operator">:</span> <span class="token string">"sensor-id-992.2393.22"</span><span class="token punctuation">,</span>
-      <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-11T08:51:59.206Z"</span><span class="token punctuation">,</span>
+      <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-27T08:52:01.795Z"</span><span class="token punctuation">,</span>
       <span class="token property">"type"</span><span class="token operator">:</span> <span class="token string">"DEVICE"</span><span class="token punctuation">,</span>
       <span class="token property">"severity"</span><span class="token operator">:</span> <span class="token string">"HIGH"</span><span class="token punctuation">,</span>
       <span class="token property">"code"</span><span class="token operator">:</span> <span class="token string">"190ABT"</span><span class="token punctuation">,</span>
@@ -70,7 +70,7 @@
       <span class="token punctuation">}</span>
     <span class="token punctuation">}</span><span class="token punctuation">,</span>
     <span class="token punctuation">{</span>
-      <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-11T08:51:59.306Z"</span><span class="token punctuation">,</span>
+      <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-27T08:52:01.895Z"</span><span class="token punctuation">,</span>
       <span class="token property">"type"</span><span class="token operator">:</span> <span class="token string">"TECHNICAL_INFO"</span><span class="token punctuation">,</span>
       <span class="token property">"severity"</span><span class="token operator">:</span> <span class="token string">"HIGH"</span><span class="token punctuation">,</span>
       <span class="token property">"code"</span><span class="token operator">:</span> <span class="token string">"33-02"</span><span class="token punctuation">,</span>
@@ -78,8 +78,8 @@
       <span class="token property">"description"</span><span class="token operator">:</span> <span class="token string">"Disk size has reached limit. Unable to write log files."</span>
     <span class="token punctuation">}</span>
   <span class="token punctuation">]</span>
-<span class="token punctuation">}</span></code></pre></div></div></div></div><h1><a id="message-schema-detail" title="message Fields definition"></a>
-      Fields definition
-    </h1></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"default",data:[{isStatic:!0},{}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_default.2114b4fdc743f1b2e00e.js"></script><script defer src="/unide/files/pages_specification.6def4404f10957a24495.js"></script><script defer src="/unide/files/pages_specification_machine-message.9d83bf77d0c0e786c248.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+<span class="token punctuation">}</span></code></pre></div></div></div></div><h1><a id="v3/message-schema-detail" title="v3/message Fields definition"></a>
+    Fields definition
+  </h1></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"default",data:[{isStatic:!0},{}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_default.19e29c13ea8f8ffe3260.js"></script><script defer src="/unide/files/pages_specification.019a3d73137721bf46a2.js"></script><script defer src="/unide/files/pages_specification_v3_machine-message.f44c94ee92582a4b1543.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/specification/measurement-message/index.html b/specification/v3/measurement-message/index.html
similarity index 64%
copy from specification/measurement-message/index.html
copy to specification/v3/measurement-message/index.html
index ca62d41..f4d4784 100644
--- a/specification/measurement-message/index.html
+++ b/specification/v3/measurement-message/index.html
@@ -28,20 +28,20 @@
     The specification is structured into three payload formats: Measurement payload, message payload and process payload. The Measurement payload contains measurements from machines such as the temperature of a machine at a specific point in time together with the currently produced part. The message payload contains arbitrary messages sent by a machine, e.g. alerts or the like. A process message consists of information about a discrete e.g. tightening or welding processes with all their characterising data which are needed to describe and analyze it.
     <p>
     The default way of transporting the json payload is via http to allow for an easy integration into various backend systems. Other transportation methods are possible and welcome.
-    </div><div class="columns" id="messageDetail"><div class="column"><a href="/unide/specification#messageDetail">Overview</a></div><div class="column"><a href="/unide/specification/machine-message#messageDetail">Machine Message</a></div><div class="column"><a href="/unide/specification/measurement-message#messageDetail">Measurement Message</a></div><div class="column"><a href="/unide/specification/process-message#messageDetail">Process Message</a></div></div><div class="measurement-message content"><h1><a id="Measurement-Payload" title="Measurement Payload"></a>
+    </div><div class="columns" id="messageDetail"><div class="column"><a href="/unide/specification#messageDetail">Overview</a></div><div class="column"><a href="/unide/specification/v2/machine-message#messageDetail">Machine Message</a></div><div class="column"><a href="/unide/specification/v2/measurement-message#messageDetail">Measurement Message</a></div><div class="column"><a href="/unide/specification/v2/process-message#messageDetail">Process Message</a></div></div><div class="measurement-message content"><h1><a id="Measurement-Payload" title="Measurement Message payload"></a>
     Measurement Payload
-  </h1><p>The measurement message is the format to exchange simple (non-structured, non-complex ) measurement data. It also allows to transport multiple measurement data (eg. values over time), called 'series'.</p><img src="images/measurementPayload.svg" alt="Class diagram of the measurement payload" title="Class diagram of the measurement payload" class="is-centered"><div class="schemaDetail is-loading" id="schema-detail"><div class="accordion"><!----><div class="card collapsibleCard collapsed"><header class="card-header"><p class="card-header-title">
+  </h1><p>The measurement message is the format to exchange simple (non-structured, non-complex ) measurement data. It also allows to transport multiple measurement data (eg. values over time), called 'series'.</p><img src="images/specification/v3/measurementPayload.svg" alt="Class diagram of the Measurement Message payload" title="Class diagram of the Measurement Message payload" class="is-centered"><div class="schemaDetail is-loading" id="schema-detail"><div class="accordion"><!----><div class="card collapsibleCard collapsed"><header class="card-header"><p class="card-header-title">
         Minimal message example
       </p><a class="card-header-icon"><span class="icon"><i class="fa fa-angle-up"></i></span></a></header><div style="display:none"><div class="card-content"><pre class="language-json"><code class="language-json"><span class="token punctuation">{</span>
-  <span class="token property">"content-spec"</span><span class="token operator">:</span> <span class="token string">"urn:spec://eclipse.org/unide/measurement-message#v2"</span><span class="token punctuation">,</span>
+  <span class="token property">"content-spec"</span><span class="token operator">:</span> <span class="token string">"urn:spec://eclipse.org/unide/measurement-message#v3"</span><span class="token punctuation">,</span>
   <span class="token property">"device"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
-    <span class="token property">"deviceID"</span><span class="token operator">:</span> <span class="token string">"a4927dad-58d4-4580-b460-79cefd56775b"</span>
+    <span class="token property">"id"</span><span class="token operator">:</span> <span class="token string">"a4927dad-58d4-4580-b460-79cefd56775b"</span>
   <span class="token punctuation">}</span><span class="token punctuation">,</span>
   <span class="token property">"measurements"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
     <span class="token punctuation">{</span>
-      <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-11T08:51:59.221Z"</span><span class="token punctuation">,</span>
+      <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-27T08:52:01.904Z"</span><span class="token punctuation">,</span>
       <span class="token property">"series"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
-        <span class="token property">"$_time"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
+        <span class="token property">"time"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
           <span class="token number">0</span><span class="token punctuation">,</span>
           <span class="token number">23</span><span class="token punctuation">,</span>
           <span class="token number">24</span>
@@ -57,55 +57,66 @@
 <span class="token punctuation">}</span></code></pre></div></div></div><div class="card collapsibleCard collapsed"><header class="card-header"><p class="card-header-title">
         Multiple message example
       </p><a class="card-header-icon"><span class="icon"><i class="fa fa-angle-up"></i></span></a></header><div style="display:none"><div class="card-content"><pre class="language-json"><code class="language-json"><span class="token punctuation">{</span>
-  <span class="token property">"content-spec"</span><span class="token operator">:</span> <span class="token string">"urn:spec://eclipse.org/unide/measurement-message#v2"</span><span class="token punctuation">,</span>
+  <span class="token property">"content-spec"</span><span class="token operator">:</span> <span class="token string">"urn:spec://eclipse.org/unide/measurement-message#v3"</span><span class="token punctuation">,</span>
   <span class="token property">"device"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
-    <span class="token property">"deviceID"</span><span class="token operator">:</span> <span class="token string">"a4927dad-58d4-4580-b460-79cefd56775b"</span><span class="token punctuation">,</span>
-    <span class="token property">"operationalStatus"</span><span class="token operator">:</span> <span class="token string">"MM"</span><span class="token punctuation">,</span>
-    <span class="token property">"metaData"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
-      <span class="token property">"swVersion"</span><span class="token operator">:</span> <span class="token string">"2.0.3.13"</span><span class="token punctuation">,</span>
-      <span class="token property">"swBuildID"</span><span class="token operator">:</span> <span class="token string">"41535"</span>
-    <span class="token punctuation">}</span>
+    <span class="token property">"id"</span><span class="token operator">:</span> <span class="token string">"a4927dad-58d4-4580-b460-79cefd56775b"</span><span class="token punctuation">,</span>
+    <span class="token property">"mode"</span><span class="token operator">:</span> <span class="token string">"maintenance"</span><span class="token punctuation">,</span>
+    <span class="token property">"state"</span><span class="token operator">:</span> <span class="token string">"WARN"</span><span class="token punctuation">,</span>
+    <span class="token property">"swVersion"</span><span class="token operator">:</span> <span class="token string">"2.0.3.13"</span><span class="token punctuation">,</span>
+    <span class="token property">"swBuildID"</span><span class="token operator">:</span> <span class="token string">"41535"</span>
   <span class="token punctuation">}</span><span class="token punctuation">,</span>
   <span class="token property">"part"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
-    <span class="token property">"partTypeID"</span><span class="token operator">:</span> <span class="token string">"F00VH07328"</span><span class="token punctuation">,</span>
-    <span class="token property">"partID"</span><span class="token operator">:</span> <span class="token string">"420003844"</span><span class="token punctuation">,</span>
-    <span class="token property">"result"</span><span class="token operator">:</span> <span class="token string">"OK"</span><span class="token punctuation">,</span>
     <span class="token property">"code"</span><span class="token operator">:</span> <span class="token string">"HUH289"</span><span class="token punctuation">,</span>
-    <span class="token property">"metaData"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
-      <span class="token property">"lotID"</span><span class="token operator">:</span> <span class="token string">"845849"</span><span class="token punctuation">,</span>
-      <span class="token property">"toolID"</span><span class="token operator">:</span> <span class="token string">"32324-432143"</span>
-    <span class="token punctuation">}</span>
+    <span class="token property">"id"</span><span class="token operator">:</span> <span class="token string">"420003844"</span><span class="token punctuation">,</span>
+    <span class="token property">"type"</span><span class="token operator">:</span> <span class="token string">"BATCH"</span><span class="token punctuation">,</span>
+    <span class="token property">"typeId"</span><span class="token operator">:</span> <span class="token string">"F00VH07328"</span><span class="token punctuation">,</span>
+    <span class="token property">"result"</span><span class="token operator">:</span> <span class="token string">"OK"</span><span class="token punctuation">,</span>
+    <span class="token property">"lotID"</span><span class="token operator">:</span> <span class="token string">"845849"</span><span class="token punctuation">,</span>
+    <span class="token property">"toolID"</span><span class="token operator">:</span> <span class="token string">"32324-432143"</span>
   <span class="token punctuation">}</span><span class="token punctuation">,</span>
   <span class="token property">"measurements"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
     <span class="token punctuation">{</span>
-      <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-11T08:51:59.221Z"</span><span class="token punctuation">,</span>
       <span class="token property">"code"</span><span class="token operator">:</span> <span class="token string">"190ABT"</span><span class="token punctuation">,</span>
+      <span class="token property">"context"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
+        <span class="token property">"temperature"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
+          <span class="token property">"accuracy"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
+            <span class="token number">0.112</span><span class="token punctuation">,</span>
+            <span class="token number">0.115</span><span class="token punctuation">,</span>
+            <span class="token number">0.129</span>
+          <span class="token punctuation">]</span><span class="token punctuation">,</span>
+          <span class="token property">"limits"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
+            <span class="token property">"lowerError"</span><span class="token operator">:</span> -<span class="token number">2</span><span class="token punctuation">,</span>
+            <span class="token property">"lowerWarn"</span><span class="token operator">:</span> -<span class="token number">1</span><span class="token punctuation">,</span>
+            <span class="token property">"upperError"</span><span class="token operator">:</span> <span class="token number">5</span><span class="token punctuation">,</span>
+            <span class="token property">"upperWarn"</span><span class="token operator">:</span> <span class="token number">1.5</span>
+          <span class="token punctuation">}</span><span class="token punctuation">,</span>
+          <span class="token property">"offset"</span><span class="token operator">:</span> <span class="token number">37</span><span class="token punctuation">,</span>
+          <span class="token property">"unit"</span><span class="token operator">:</span> <span class="token string">"Cel"</span>
+        <span class="token punctuation">}</span>
+      <span class="token punctuation">}</span><span class="token punctuation">,</span>
       <span class="token property">"result"</span><span class="token operator">:</span> <span class="token string">"OK"</span><span class="token punctuation">,</span>
       <span class="token property">"series"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
-        <span class="token property">"$_time"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
+        <span class="token property">"time"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
           <span class="token number">0</span><span class="token punctuation">,</span>
           <span class="token number">23</span><span class="token punctuation">,</span>
           <span class="token number">24</span>
         <span class="token punctuation">]</span><span class="token punctuation">,</span>
         <span class="token property">"temperature"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
-          <span class="token number">45.4231</span><span class="token punctuation">,</span>
-          <span class="token number">46.4222</span><span class="token punctuation">,</span>
-          <span class="token number">44.2432</span>
+          <span class="token number">0.4231</span><span class="token punctuation">,</span>
+          <span class="token number">2.4222</span><span class="token punctuation">,</span>
+          <span class="token number">4.2432</span>
         <span class="token punctuation">]</span>
       <span class="token punctuation">}</span><span class="token punctuation">,</span>
-      <span class="token property">"limits"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
-        <span class="token property">"temperature"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
-          <span class="token property">"lowerError"</span><span class="token operator">:</span> <span class="token number">40</span><span class="token punctuation">,</span>
-          <span class="token property">"lowerWarn"</span><span class="token operator">:</span> <span class="token number">45</span><span class="token punctuation">,</span>
-          <span class="token property">"upperError"</span><span class="token operator">:</span> <span class="token number">50</span><span class="token punctuation">,</span>
-          <span class="token property">"upperWarn"</span><span class="token operator">:</span> <span class="token number">47.5</span>
-        <span class="token punctuation">}</span>
-      <span class="token punctuation">}</span>
+      <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-27T08:52:01.904Z"</span>
     <span class="token punctuation">}</span><span class="token punctuation">,</span>
     <span class="token punctuation">{</span>
-      <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-11T08:51:54.221Z"</span><span class="token punctuation">,</span>
+      <span class="token property">"context"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
+        <span class="token property">"scanData"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
+          <span class="token property">"type"</span><span class="token operator">:</span> <span class="token string">"BASE64"</span>
+        <span class="token punctuation">}</span>
+      <span class="token punctuation">}</span><span class="token punctuation">,</span>
       <span class="token property">"series"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
-        <span class="token property">"$_time"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
+        <span class="token property">"time"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
           <span class="token number">0</span><span class="token punctuation">,</span>
           <span class="token number">130</span><span class="token punctuation">,</span>
           <span class="token number">2633</span>
@@ -114,12 +125,18 @@
           <span class="token number">52.4</span><span class="token punctuation">,</span>
           <span class="token number">46.32</span><span class="token punctuation">,</span>
           <span class="token number">44.2432</span>
+        <span class="token punctuation">]</span><span class="token punctuation">,</span>
+        <span class="token property">"scanData"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
+          <span class="token string">"Zm9vCg=="</span><span class="token punctuation">,</span>
+          <span class="token string">"YmFyCg=="</span><span class="token punctuation">,</span>
+          <span class="token string">"Y2hlZXNlCg=="</span>
         <span class="token punctuation">]</span>
-      <span class="token punctuation">}</span>
+      <span class="token punctuation">}</span><span class="token punctuation">,</span>
+      <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-27T08:51:56.904Z"</span>
     <span class="token punctuation">}</span>
   <span class="token punctuation">]</span>
-<span class="token punctuation">}</span></code></pre></div></div></div></div><h1><a id="measurement-schema-detail" title="measurement Fields definition"></a>
-      Fields definition
-    </h1></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"default",data:[{isStatic:!0},{}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_default.2114b4fdc743f1b2e00e.js"></script><script defer src="/unide/files/pages_specification.6def4404f10957a24495.js"></script><script defer src="/unide/files/pages_specification_measurement-message.0d15bcfe330182da8363.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+<span class="token punctuation">}</span></code></pre></div></div></div></div><h1><a id="v3/measurement-schema-detail" title="v3/measurement Fields definition"></a>
+    Fields definition
+  </h1></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"default",data:[{isStatic:!0},{}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_default.19e29c13ea8f8ffe3260.js"></script><script defer src="/unide/files/pages_specification.019a3d73137721bf46a2.js"></script><script defer src="/unide/files/pages_specification_v3_measurement-message.add054bcac744c963fba.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
diff --git a/specification/process-message/index.html b/specification/v3/process-message/index.html
similarity index 81%
copy from specification/process-message/index.html
copy to specification/v3/process-message/index.html
index d57eaf1..38059b2 100644
--- a/specification/process-message/index.html
+++ b/specification/v3/process-message/index.html
@@ -28,9 +28,9 @@
     The specification is structured into three payload formats: Measurement payload, message payload and process payload. The Measurement payload contains measurements from machines such as the temperature of a machine at a specific point in time together with the currently produced part. The message payload contains arbitrary messages sent by a machine, e.g. alerts or the like. A process message consists of information about a discrete e.g. tightening or welding processes with all their characterising data which are needed to describe and analyze it.
     <p>
     The default way of transporting the json payload is via http to allow for an easy integration into various backend systems. Other transportation methods are possible and welcome.
-    </div><div class="columns" id="messageDetail"><div class="column"><a href="/unide/specification#messageDetail">Overview</a></div><div class="column"><a href="/unide/specification/machine-message#messageDetail">Machine Message</a></div><div class="column"><a href="/unide/specification/measurement-message#messageDetail">Measurement Message</a></div><div class="column"><a href="/unide/specification/process-message#messageDetail">Process Message</a></div></div><div class="process-message content"><h1><a id="Process-Payload" title="Process Payload"></a>
+    </div><div class="columns" id="messageDetail"><div class="column"><a href="/unide/specification#messageDetail">Overview</a></div><div class="column"><a href="/unide/specification/v2/machine-message#messageDetail">Machine Message</a></div><div class="column"><a href="/unide/specification/v2/measurement-message#messageDetail">Measurement Message</a></div><div class="column"><a href="/unide/specification/v2/process-message#messageDetail">Process Message</a></div></div><div class="process-message content"><h1><a id="Process-Payload" title="Process Message payload"></a>
     Process Payload
-  </h1><p>The process message is the format to exchange data out of discrete processes. It also allows to transport process information, part information and measurement data for each phase of the process.</p><img src="images/processPayload.svg" alt="Class diagram of the process data payload" title="Class diagram of the process data payload" class="is-center"><div class="schemaDetail is-loading" id="schema-detail"><div class="accordion"><!----><div class="card collapsibleCard collapsed"><header class="card-header"><p class="card-header-title">
+  </h1><p>The process message is the format to exchange data out of discrete processes. It also allows to transport process information, part information and measurement data for each phase of the process.</p><img src="images/specification/v3/processPayload.svg" alt="Class diagram of the Process message payload" title="Class diagram of the Process Message payload" class="is-center"><div class="schemaDetail is-loading" id="schema-detail"><div class="accordion"><!----><div class="card collapsibleCard collapsed"><header class="card-header"><p class="card-header-title">
         Minimal message example 
       </p><a class="card-header-icon"><span class="icon"><i class="fa fa-angle-up"></i></span></a></header><div style="display:none"><div class="card-content"><pre class="language-json"><code class="language-json"><span class="token punctuation">{</span>
   <span class="token property">"content-spec"</span><span class="token operator">:</span> <span class="token string">"urn:spec://eclipse.org/unide/process-message#v2"</span><span class="token punctuation">,</span>
@@ -38,11 +38,11 @@
     <span class="token property">"deviceID"</span><span class="token operator">:</span> <span class="token string">"a4927dad-58d4-4580-b460-79cefd56775b"</span>
   <span class="token punctuation">}</span><span class="token punctuation">,</span>
   <span class="token property">"process"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
-    <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-11T08:51:59.190Z"</span>
+    <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-27T08:52:01.779Z"</span>
   <span class="token punctuation">}</span><span class="token punctuation">,</span>
   <span class="token property">"measurements"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
     <span class="token punctuation">{</span>
-      <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-11T08:51:59.290Z"</span><span class="token punctuation">,</span>
+      <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-27T08:52:01.879Z"</span><span class="token punctuation">,</span>
       <span class="token property">"series"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
         <span class="token property">"force"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
           <span class="token number">26</span><span class="token punctuation">,</span>
@@ -81,7 +81,7 @@
   <span class="token punctuation">}</span><span class="token punctuation">,</span>
   <span class="token property">"process"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
     <span class="token property">"externalProcessId"</span><span class="token operator">:</span> <span class="token string">"b4927dad-58d4-4580-b460-79cefd56775b"</span><span class="token punctuation">,</span>
-    <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-11T08:51:59.190Z"</span><span class="token punctuation">,</span>
+    <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-27T08:52:01.779Z"</span><span class="token punctuation">,</span>
     <span class="token property">"result"</span><span class="token operator">:</span> <span class="token string">"NOK"</span><span class="token punctuation">,</span>
     <span class="token property">"shutoffPhase"</span><span class="token operator">:</span> <span class="token string">"phase 2"</span><span class="token punctuation">,</span>
     <span class="token property">"program"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
@@ -91,7 +91,7 @@
     <span class="token punctuation">}</span><span class="token punctuation">,</span>
     <span class="token property">"shutoffValues"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
       <span class="token property">"force"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
-        <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-11T08:52:09.190Z"</span><span class="token punctuation">,</span>
+        <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-27T08:52:11.779Z"</span><span class="token punctuation">,</span>
         <span class="token property">"value"</span><span class="token operator">:</span> <span class="token number">24</span><span class="token punctuation">,</span>
         <span class="token property">"upperError"</span><span class="token operator">:</span> <span class="token number">26</span><span class="token punctuation">,</span>
         <span class="token property">"lowerError"</span><span class="token operator">:</span> <span class="token number">22</span><span class="token punctuation">,</span>
@@ -112,35 +112,37 @@
   <span class="token punctuation">}</span><span class="token punctuation">,</span>
   <span class="token property">"measurements"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
     <span class="token punctuation">{</span>
-      <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-11T08:51:59.290Z"</span><span class="token punctuation">,</span>
+      <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-27T08:52:01.879Z"</span><span class="token punctuation">,</span>
       <span class="token property">"phase"</span><span class="token operator">:</span> <span class="token string">"phase 1"</span><span class="token punctuation">,</span>
       <span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"heating up"</span><span class="token punctuation">,</span>
       <span class="token property">"result"</span><span class="token operator">:</span> <span class="token string">"OK"</span><span class="token punctuation">,</span>
       <span class="token property">"code"</span><span class="token operator">:</span> <span class="token string">"0000 EE01"</span><span class="token punctuation">,</span>
-      <span class="token property">"limits"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
-        <span class="token property">"pressure"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
-          <span class="token property">"upperError"</span><span class="token operator">:</span> <span class="token number">4444</span><span class="token punctuation">,</span>
-          <span class="token property">"lowerError"</span><span class="token operator">:</span> <span class="token number">44</span><span class="token punctuation">,</span>
-          <span class="token property">"upperWarn"</span><span class="token operator">:</span> <span class="token number">2222</span><span class="token punctuation">,</span>
-          <span class="token property">"lowerWarn"</span><span class="token operator">:</span> <span class="token number">46</span><span class="token punctuation">,</span>
-          <span class="token property">"target"</span><span class="token operator">:</span> <span class="token number">35</span>
-        <span class="token punctuation">}</span><span class="token punctuation">,</span>
-        <span class="token property">"force"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
-          <span class="token property">"upperError"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
-            <span class="token number">27</span><span class="token punctuation">,</span>
-            <span class="token number">24</span><span class="token punctuation">,</span>
-            <span class="token number">25</span>
-          <span class="token punctuation">]</span><span class="token punctuation">,</span>
-          <span class="token property">"lowerError"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
-            <span class="token number">25</span><span class="token punctuation">,</span>
-            <span class="token number">22</span><span class="token punctuation">,</span>
-            <span class="token number">23</span>
-          <span class="token punctuation">]</span>
+      <span class="token property">"context"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
+        <span class="token property">"limits"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
+          <span class="token property">"pressure"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
+            <span class="token property">"upperError"</span><span class="token operator">:</span> <span class="token number">4444</span><span class="token punctuation">,</span>
+            <span class="token property">"lowerError"</span><span class="token operator">:</span> <span class="token number">44</span><span class="token punctuation">,</span>
+            <span class="token property">"upperWarn"</span><span class="token operator">:</span> <span class="token number">2222</span><span class="token punctuation">,</span>
+            <span class="token property">"lowerWarn"</span><span class="token operator">:</span> <span class="token number">46</span><span class="token punctuation">,</span>
+            <span class="token property">"target"</span><span class="token operator">:</span> <span class="token number">35</span>
+          <span class="token punctuation">}</span><span class="token punctuation">,</span>
+          <span class="token property">"force"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
+            <span class="token property">"upperError"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
+              <span class="token number">27</span><span class="token punctuation">,</span>
+              <span class="token number">24</span><span class="token punctuation">,</span>
+              <span class="token number">25</span>
+            <span class="token punctuation">]</span><span class="token punctuation">,</span>
+            <span class="token property">"lowerError"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
+              <span class="token number">25</span><span class="token punctuation">,</span>
+              <span class="token number">22</span><span class="token punctuation">,</span>
+              <span class="token number">23</span>
+            <span class="token punctuation">]</span>
+          <span class="token punctuation">}</span>
         <span class="token punctuation">}</span>
       <span class="token punctuation">}</span><span class="token punctuation">,</span>
       <span class="token property">"specialValues"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
         <span class="token punctuation">{</span>
-          <span class="token property">"$_time"</span><span class="token operator">:</span> <span class="token number">12</span><span class="token punctuation">,</span>
+          <span class="token property">"time"</span><span class="token operator">:</span> <span class="token number">12</span><span class="token punctuation">,</span>
           <span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"turning point"</span><span class="token punctuation">,</span>
           <span class="token property">"value"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
             <span class="token property">"pressure"</span><span class="token operator">:</span> <span class="token number">24</span><span class="token punctuation">,</span>
@@ -172,12 +174,12 @@
       <span class="token punctuation">}</span>
     <span class="token punctuation">}</span><span class="token punctuation">,</span>
     <span class="token punctuation">{</span>
-      <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-11T08:51:59.620Z"</span><span class="token punctuation">,</span>
+      <span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-27T08:52:02.209Z"</span><span class="token punctuation">,</span>
       <span class="token property">"phase"</span><span class="token operator">:</span> <span class="token string">"phase 2"</span><span class="token punctuation">,</span>
       <span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"processing"</span><span class="token punctuation">,</span>
       <span class="token property">"result"</span><span class="token operator">:</span> <span class="token string">"OK"</span><span class="token punctuation">,</span>
       <span class="token property">"series"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
-        <span class="token property">"$_time"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
+        <span class="token property">"time"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
           <span class="token number">0</span><span class="token punctuation">,</span>
           <span class="token number">23</span><span class="token punctuation">,</span>
           <span class="token number">24</span>
@@ -190,8 +192,8 @@
       <span class="token punctuation">}</span>
     <span class="token punctuation">}</span>
   <span class="token punctuation">]</span>
-<span class="token punctuation">}</span></code></pre></div></div></div></div><h1><a id="process-schema-detail" title="process Fields definition"></a>
-      Fields definition
-    </h1></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"default",data:[{isStatic:!0},{}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.35d6b9d600e48ddc67a4.js"></script><script defer src="/unide/files/layouts_default.2114b4fdc743f1b2e00e.js"></script><script defer src="/unide/files/pages_specification.6def4404f10957a24495.js"></script><script defer src="/unide/files/pages_specification_process-message.4a591726be19200d1dcf.js"></script><script defer src="/unide/files/vendor.21b6003b92f8fb004a4d.js"></script><script defer src="/unide/files/app.50a262a5ae4922a8876e.js"></script>
+<span class="token punctuation">}</span></code></pre></div></div></div></div><h1><a id="v3/process-schema-detail" title="v3/process Fields definition"></a>
+    Fields definition
+  </h1></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"default",data:[{isStatic:!0},{}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_default.19e29c13ea8f8ffe3260.js"></script><script defer src="/unide/files/pages_specification.019a3d73137721bf46a2.js"></script><script defer src="/unide/files/pages_specification_v3_process-message.bc1cd203958888d66862.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>
   
 
