vault backup: 2025-06-16 16:22:20
|
@ -1,8 +1,6 @@
|
||||||
[
|
[
|
||||||
"mousewheel-image-zoom",
|
"mousewheel-image-zoom",
|
||||||
"obsidian-image-toolkit",
|
"obsidian-image-toolkit",
|
||||||
"copy-as-html",
|
|
||||||
"copy-document-as-html",
|
|
||||||
"obsidian-pandoc",
|
"obsidian-pandoc",
|
||||||
"obsidian-enhancing-export",
|
"obsidian-enhancing-export",
|
||||||
"obsidian-excalidraw-plugin",
|
"obsidian-excalidraw-plugin",
|
||||||
|
@ -26,5 +24,7 @@
|
||||||
"obsidian-plantuml",
|
"obsidian-plantuml",
|
||||||
"mcp-tools",
|
"mcp-tools",
|
||||||
"obsidian-local-rest-api",
|
"obsidian-local-rest-api",
|
||||||
"obsidian-excel-to-markdown-table"
|
"obsidian-excel-to-markdown-table",
|
||||||
|
"copy-document-as-html",
|
||||||
|
"copy-as-html"
|
||||||
]
|
]
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"id": "advanced-canvas",
|
"id": "advanced-canvas",
|
||||||
"name": "Advanced Canvas",
|
"name": "Advanced Canvas",
|
||||||
"version": "4.0.2",
|
"version": "5.1.0",
|
||||||
"minAppVersion": "1.1.0",
|
"minAppVersion": "1.1.0",
|
||||||
"description": "Supercharge your canvas experience! Create presentations, flowcharts and more!",
|
"description": "Supercharge your canvas experience! Create presentations, flowcharts and more!",
|
||||||
"author": "Developer-Mike",
|
"author": "Developer-Mike",
|
||||||
|
|
|
@ -16,12 +16,22 @@
|
||||||
.ac-settings-heading:not(:first-child) {
|
.ac-settings-heading:not(:first-child) {
|
||||||
margin-top: var(--size-4-10) !important;
|
margin-top: var(--size-4-10) !important;
|
||||||
}
|
}
|
||||||
|
.ac-settings-heading:has(.checkbox-container:not(.is-enabled)) {
|
||||||
|
border-bottom-color: var(--background-modifier-border-hover);
|
||||||
|
}
|
||||||
.ac-settings-heading .setting-item-description {
|
.ac-settings-heading .setting-item-description {
|
||||||
margin-inline-end: 20px;
|
margin-inline-end: 20px;
|
||||||
}
|
}
|
||||||
|
.settings-header-children {
|
||||||
|
transform-origin: top center;
|
||||||
|
transform: scaleY(1);
|
||||||
|
transition: transform 0.2s ease-in-out;
|
||||||
|
}
|
||||||
.ac-settings-heading:has(.checkbox-container:not(.is-enabled)) + .settings-header-children {
|
.ac-settings-heading:has(.checkbox-container:not(.is-enabled)) + .settings-header-children {
|
||||||
opacity: 0.5;
|
opacity: 0.5;
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
|
height: 0;
|
||||||
|
transform: scaleY(0);
|
||||||
}
|
}
|
||||||
details.setting-item[open] > summary {
|
details.setting-item[open] > summary {
|
||||||
margin-bottom: 0.75em;
|
margin-bottom: 0.75em;
|
||||||
|
@ -99,15 +109,9 @@ body.is-mobile .kofi-button.sticky {
|
||||||
.kofi-overlay .no-button {
|
.kofi-overlay .no-button {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
.quicksettings-suggestion {
|
.canvas-wrapper > .document-search-container {
|
||||||
display: flex;
|
transform: translateZ(0);
|
||||||
flex-direction: column;
|
margin: 0;
|
||||||
}
|
|
||||||
.quicksettings-suggestion .quicksettings-suggestion-label {
|
|
||||||
font-weight: 500;
|
|
||||||
}
|
|
||||||
.quicksettings-suggestion .quicksettings-suggestion-description {
|
|
||||||
color: var(--text-muted);
|
|
||||||
}
|
}
|
||||||
.canvas-wrapper:not(.mod-readonly) .show-while-readonly {
|
.canvas-wrapper:not(.mod-readonly) .show-while-readonly {
|
||||||
display: none;
|
display: none;
|
||||||
|
@ -386,7 +390,7 @@ body.is-mobile .kofi-button.sticky {
|
||||||
pointer-events: none !important;
|
pointer-events: none !important;
|
||||||
transition: none !important;
|
transition: none !important;
|
||||||
}
|
}
|
||||||
.canvas.is-exporting #group-collapse-button {
|
.canvas.is-exporting .collapse-button {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
.canvas.is-exporting #watermark-ac {
|
.canvas.is-exporting #watermark-ac {
|
||||||
|
@ -408,7 +412,7 @@ body.is-mobile .kofi-button.sticky {
|
||||||
.canvas-wrapper.mod-readonly[data-hide-background-grid-when-in-readonly=true] .canvas-background {
|
.canvas-wrapper.mod-readonly[data-hide-background-grid-when-in-readonly=true] .canvas-background {
|
||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
}
|
}
|
||||||
#group-collapse-button {
|
.collapse-button {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 0;
|
left: 0;
|
||||||
top: calc(-1 * var(--size-4-1) * var(--zoom-multiplier));
|
top: calc(-1 * var(--size-4-1) * var(--zoom-multiplier));
|
||||||
|
@ -427,29 +431,29 @@ body.is-mobile .kofi-button.sticky {
|
||||||
.canvas-wrapper[data-collapsible-groups-feature-enabled=true] .canvas-node .canvas-group-label {
|
.canvas-wrapper[data-collapsible-groups-feature-enabled=true] .canvas-node .canvas-group-label {
|
||||||
left: calc(40px * var(--zoom-multiplier));
|
left: calc(40px * var(--zoom-multiplier));
|
||||||
}
|
}
|
||||||
.canvas-node[data-is-collapsed] .canvas-node-container {
|
.canvas-node[data-collapsed] .canvas-node-container {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
.canvas-node[data-is-collapsed] .canvas-group-label {
|
.canvas-node[data-collapsed] .canvas-group-label {
|
||||||
max-width: initial;
|
max-width: initial;
|
||||||
}
|
}
|
||||||
.canvas-wrapper[data-collapsed-group-preview-on-drag=true][data-is-dragging] .canvas-node[data-is-collapsed] .canvas-node-container {
|
.canvas-wrapper[data-collapsed-group-preview-on-drag=true][data-is-dragging] .canvas-node[data-collapsed] .canvas-node-container {
|
||||||
display: block;
|
display: block;
|
||||||
opacity: 0.5;
|
opacity: 0.5;
|
||||||
border-style: dashed;
|
border-style: dashed;
|
||||||
}
|
}
|
||||||
.canvas-wrapper[data-collapsed-group-preview-on-drag=true][data-is-dragging] .canvas-node[data-is-collapsed] .canvas-node-container .canvas-node-content {
|
.canvas-wrapper[data-collapsed-group-preview-on-drag=true][data-is-dragging] .canvas-node[data-collapsed] .canvas-node-container .canvas-node-content {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
}
|
}
|
||||||
.canvas-node-interaction-layer[data-target-is-collapsed] .canvas-node-resizer {
|
.canvas-node-interaction-layer[data-target-collapsed] .canvas-node-resizer {
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
cursor: inherit;
|
cursor: inherit;
|
||||||
}
|
}
|
||||||
.canvas-node-interaction-layer[data-target-is-collapsed] .canvas-node-resizer .canvas-node-connection-point {
|
.canvas-node-interaction-layer[data-target-collapsed] .canvas-node-resizer .canvas-node-connection-point {
|
||||||
display: none;
|
display: none;
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
}
|
}
|
||||||
.canvas-wrapper[data-floating-edge-feature-enabled=true] .canvas.is-connecting .canvas-node:not(.canvas-node-group)::after {
|
.canvas-wrapper[data-allow-floating-edge-creation=true] .canvas.is-connecting .canvas-node:not(.canvas-node-group)::after {
|
||||||
all: unset;
|
all: unset;
|
||||||
content: "";
|
content: "";
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
|
@ -462,7 +466,7 @@ body.is-mobile .kofi-button.sticky {
|
||||||
border-radius: var(--radius-m);
|
border-radius: var(--radius-m);
|
||||||
outline: calc(4px * var(--zoom-multiplier)) dashed hsla(var(--color-accent-hsl), 0.5);
|
outline: calc(4px * var(--zoom-multiplier)) dashed hsla(var(--color-accent-hsl), 0.5);
|
||||||
}
|
}
|
||||||
.canvas-wrapper[data-floating-edge-feature-enabled=true] .canvas.is-connecting .canvas-node:not(.canvas-node-group).hovering-floating-edge-zone::after {
|
.canvas-wrapper[data-allow-floating-edge-creation=true] .canvas.is-connecting .canvas-node:not(.canvas-node-group).hovering-floating-edge-zone::after {
|
||||||
outline-color: var(--color-accent);
|
outline-color: var(--color-accent);
|
||||||
outline-style: solid;
|
outline-style: solid;
|
||||||
background-color: hsla(var(--color-accent-hsl), 0.1);
|
background-color: hsla(var(--color-accent-hsl), 0.1);
|
||||||
|
@ -496,26 +500,26 @@ body.is-mobile .kofi-button.sticky {
|
||||||
color: var(--color-green);
|
color: var(--color-green);
|
||||||
background-color: rgba(var(--color-green-rgb), 0.1);
|
background-color: rgba(var(--color-green-rgb), 0.1);
|
||||||
}
|
}
|
||||||
.canvas-node[data-portal-to-file] {
|
.canvas-node[data-is-portal-loaded=true] {
|
||||||
pointer-events: all;
|
pointer-events: all;
|
||||||
}
|
}
|
||||||
.canvas-node[data-portal-to-file]:not(.is-focused) {
|
.canvas-node[data-is-portal-loaded=true]:not(.is-focused) {
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
}
|
}
|
||||||
.canvas-node[data-portal-to-file]:not(.is-focused) .canvas-node-label {
|
.canvas-node[data-is-portal-loaded=true]:not(.is-focused) .canvas-node-label {
|
||||||
pointer-events: all;
|
pointer-events: all;
|
||||||
}
|
}
|
||||||
.canvas-node[data-portal-to-file] .canvas-node-container {
|
.canvas-node[data-is-portal-loaded=true] .canvas-node-container {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
border-style: dashed;
|
border-style: dashed;
|
||||||
}
|
}
|
||||||
.canvas-node[data-portal-to-file] .canvas-node-container .canvas-node-content {
|
.canvas-node[data-is-portal-loaded=true] .canvas-node-container .canvas-node-content {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
.canvas-node-interaction-layer[data-target-portal-id] .canvas-node-resizer {
|
.canvas-node-interaction-layer[data-is-from-portal=true] .canvas-node-resizer {
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
cursor: inherit;
|
cursor: inherit;
|
||||||
}
|
}
|
||||||
.canvas-node-interaction-layer[data-target-portal-id] .canvas-node-resizer .canvas-node-connection-point {
|
.canvas-node-interaction-layer[data-is-from-portal=true] .canvas-node-resizer .canvas-node-connection-point {
|
||||||
pointer-events: all;
|
pointer-events: all;
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
"debug": false,
|
"debug": false,
|
||||||
"isTimestamp": false,
|
"isTimestamp": false,
|
||||||
"enabledCss": false,
|
"enabledCss": false,
|
||||||
|
"concurrency": "5",
|
||||||
"prevConfig": {
|
"prevConfig": {
|
||||||
"pageSize": "A4",
|
"pageSize": "A4",
|
||||||
"marginType": "1",
|
"marginType": "1",
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"id": "better-export-pdf",
|
"id": "better-export-pdf",
|
||||||
"name": "Better Export PDF",
|
"name": "Better Export PDF",
|
||||||
"version": "1.10.2",
|
"version": "1.11.0",
|
||||||
"minAppVersion": "0.15.0",
|
"minAppVersion": "0.15.0",
|
||||||
"description": "Export your notes to PDF, support export preview, add bookmarks outline and header/footer.",
|
"description": "Export your notes to PDF, support export preview, add bookmarks outline and header/footer.",
|
||||||
"author": "l1xnan",
|
"author": "l1xnan",
|
||||||
|
|
|
@ -36,6 +36,12 @@
|
||||||
height: 100%;
|
height: 100%;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
#better-export-pdf .pdf-preview > div.progress {
|
||||||
|
flex: none;
|
||||||
|
height: auto;
|
||||||
|
width: 100%;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
#better-export-pdf .pdf-preview .filename {
|
#better-export-pdf .pdf-preview .filename {
|
||||||
font-size: 0.75rem;
|
font-size: 0.75rem;
|
||||||
|
|
|
@ -46,6 +46,60 @@
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"isBuiltIn": true,
|
"isBuiltIn": true,
|
||||||
"core": true,
|
"core": true,
|
||||||
|
"plusExclusive": true,
|
||||||
|
"projectEnabled": false,
|
||||||
|
"capabilities": [
|
||||||
|
"vision"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "gpt-4.1",
|
||||||
|
"provider": "openai",
|
||||||
|
"enabled": true,
|
||||||
|
"isBuiltIn": true,
|
||||||
|
"core": true,
|
||||||
|
"projectEnabled": true,
|
||||||
|
"capabilities": [
|
||||||
|
"vision"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "gpt-4.1-mini",
|
||||||
|
"provider": "openai",
|
||||||
|
"enabled": true,
|
||||||
|
"isBuiltIn": true,
|
||||||
|
"core": true,
|
||||||
|
"projectEnabled": true,
|
||||||
|
"capabilities": [
|
||||||
|
"vision"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "gpt-4.1-nano",
|
||||||
|
"provider": "openai",
|
||||||
|
"enabled": true,
|
||||||
|
"isBuiltIn": true,
|
||||||
|
"core": true,
|
||||||
|
"capabilities": [
|
||||||
|
"vision"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "o4-mini",
|
||||||
|
"provider": "openai",
|
||||||
|
"enabled": true,
|
||||||
|
"isBuiltIn": true,
|
||||||
|
"core": true,
|
||||||
|
"capabilities": [
|
||||||
|
"reasoning"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "claude-3-5-sonnet-latest",
|
||||||
|
"provider": "anthropic",
|
||||||
|
"enabled": true,
|
||||||
|
"isBuiltIn": true,
|
||||||
|
"core": true,
|
||||||
"capabilities": [
|
"capabilities": [
|
||||||
"vision"
|
"vision"
|
||||||
]
|
]
|
||||||
|
@ -70,16 +124,6 @@
|
||||||
"vision"
|
"vision"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "claude-3-5-sonnet-latest",
|
|
||||||
"provider": "anthropic",
|
|
||||||
"enabled": true,
|
|
||||||
"isBuiltIn": true,
|
|
||||||
"core": true,
|
|
||||||
"capabilities": [
|
|
||||||
"vision"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "o1-mini",
|
"name": "o1-mini",
|
||||||
"provider": "openai",
|
"provider": "openai",
|
||||||
|
@ -148,7 +192,8 @@
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"isBuiltIn": true,
|
"isBuiltIn": true,
|
||||||
"isEmbeddingModel": true,
|
"isEmbeddingModel": true,
|
||||||
"core": true
|
"core": true,
|
||||||
|
"plusExclusive": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "copilot-plus-large",
|
"name": "copilot-plus-large",
|
||||||
|
@ -157,6 +202,7 @@
|
||||||
"isBuiltIn": true,
|
"isBuiltIn": true,
|
||||||
"isEmbeddingModel": true,
|
"isEmbeddingModel": true,
|
||||||
"core": true,
|
"core": true,
|
||||||
|
"plusExclusive": true,
|
||||||
"believerExclusive": true,
|
"believerExclusive": true,
|
||||||
"dimensions": 1024
|
"dimensions": 1024
|
||||||
},
|
},
|
||||||
|
@ -167,6 +213,7 @@
|
||||||
"isBuiltIn": true,
|
"isBuiltIn": true,
|
||||||
"isEmbeddingModel": true,
|
"isEmbeddingModel": true,
|
||||||
"core": true,
|
"core": true,
|
||||||
|
"plusExclusive": true,
|
||||||
"dimensions": 512
|
"dimensions": 512
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -290,5 +337,11 @@
|
||||||
"prompt": "<instruction>Convert to a markdown obsidian compatible table the text below. .</instruction>\n\n<text>{copilot-selection}</text>",
|
"prompt": "<instruction>Convert to a markdown obsidian compatible table the text below. .</instruction>\n\n<text>{copilot-selection}</text>",
|
||||||
"showInContextMenu": true
|
"showInContextMenu": true
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"userId": "d7dbf2b1-50ab-4501-a8b6-0d88adbe729a",
|
||||||
|
"includeActiveNoteAsContext": true,
|
||||||
|
"passMarkdownImages": true,
|
||||||
|
"enableCustomPromptTemplating": true,
|
||||||
|
"allowAdditionalContext": true,
|
||||||
|
"enableWordCompletion": false
|
||||||
}
|
}
|
|
@ -1,9 +1,9 @@
|
||||||
{
|
{
|
||||||
"id": "copilot",
|
"id": "copilot",
|
||||||
"name": "Copilot",
|
"name": "Copilot",
|
||||||
"version": "2.8.7",
|
"version": "2.9.0",
|
||||||
"minAppVersion": "0.15.0",
|
"minAppVersion": "0.15.0",
|
||||||
"description": "An AI Copilot in Obsidian.",
|
"description": "Your AI Copilot: Chat with Your Second Brain, Learn Faster, Work Smarter.",
|
||||||
"author": "Logan Yang",
|
"author": "Logan Yang",
|
||||||
"authorUrl": "https://twitter.com/logancyang",
|
"authorUrl": "https://twitter.com/logancyang",
|
||||||
"fundingUrl": {
|
"fundingUrl": {
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
{
|
||||||
|
"removeFrontMatter": true,
|
||||||
|
"convertSvgToBitmap": true,
|
||||||
|
"useCustomStylesheet": false,
|
||||||
|
"useCustomHtmlTemplate": false,
|
||||||
|
"embedExternalLinks": true,
|
||||||
|
"removeDataviewMetadataLines": false,
|
||||||
|
"formatCodeWithTables": true,
|
||||||
|
"formatCalloutsWithTables": true,
|
||||||
|
"footnoteHandling": 2,
|
||||||
|
"internalLinkHandling": 0,
|
||||||
|
"styleSheet": "body,input {\n font-family: \"Roboto\",\"Helvetica Neue\",Helvetica,Arial,sans-serif\n}\n\ncode, kbd, pre {\n font-family: \"Roboto Mono\", \"Courier New\", Courier, monospace;\n background-color: #f5f5f5;\n}\n\npre {\n padding: 1em 0.5em;\n}\n\ntable {\n background: white;\n border: 1px solid #666;\n border-collapse: collapse;\n padding: 0.5em;\n}\n\ntable thead th,\ntable tfoot th {\n text-align: left;\n background-color: #eaeaea;\n color: black;\n}\n\ntable th, table td {\n border: 1px solid #ddd;\n padding: 0.5em;\n}\n\ntable td {\n color: #222222;\n}\n\n.callout[data-callout=\"abstract\"] .callout-title,\n.callout[data-callout=\"summary\"] .callout-title,\n.callout[data-callout=\"tldr\"] .callout-title,\n.callout[data-callout=\"faq\"] .callout-title,\n.callout[data-callout=\"info\"] .callout-title,\n.callout[data-callout=\"help\"] .callout-title {\n background-color: #828ee7;\n}\n.callout[data-callout=\"tip\"] .callout-title,\n.callout[data-callout=\"hint\"] .callout-title,\n.callout[data-callout=\"important\"] .callout-title {\n background-color: #34bbe6;\n}\n.callout[data-callout=\"success\"] .callout-title,\n.callout[data-callout=\"check\"] .callout-title,\n.callout[data-callout=\"done\"] .callout-title {\n background-color: #a3e048;\n}\n.callout[data-callout=\"question\"] .callout-title,\n.callout[data-callout=\"todo\"] .callout-title {\n background-color: #49da9a;\n}\n.callout[data-callout=\"caution\"] .callout-title,\n.callout[data-callout=\"attention\"] .callout-title {\n background-color: #f7d038;\n}\n.callout[data-callout=\"warning\"] .callout-title,\n.callout[data-callout=\"missing\"] .callout-title,\n.callout[data-callout=\"bug\"] .callout-title {\n background-color: #eb7532;\n}\n.callout[data-callout=\"failure\"] .callout-title,\n.callout[data-callout=\"fail\"] .callout-title,\n.callout[data-callout=\"danger\"] .callout-title,\n.callout[data-callout=\"error\"] .callout-title {\n background-color: #e6261f;\n}\n.callout[data-callout=\"example\"] .callout-title {\n background-color: #d23be7;\n}\n.callout[data-callout=\"quote\"] .callout-title,\n.callout[data-callout=\"cite\"] .callout-title {\n background-color: #aaaaaa;\n}\n\n.callout-icon {\n flex: 0 0 auto;\n display: flex;\n align-self: center;\n}\n\nsvg.svg-icon {\n height: 18px;\n width: 18px;\n stroke-width: 1.75px;\n}\n\n.callout {\n overflow: hidden;\n margin: 1em 0;\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2);\n border-radius: 4px;\n}\n\n.callout-title {\n padding: .5em;\n display: flex;\n gap: 8px;\n font-size: inherit;\n color: black;\n line-height: 1.3em;\n}\n\n.callout-title-inner {\n font-weight: bold;\n color: black;\n}\n\n.callout-content {\n overflow-x: auto;\n padding: 0.25em .5em;\n color: #222222;\n background-color: white !important;\n}\n\nul.contains-task-list {\n padding-left: 0;\n list-style: none;\n}\n\nul.contains-task-list ul.contains-task-list {\n padding-left: 2em;\n}\n\nul.contains-task-list li input[type=\"checkbox\"] {\n margin-right: .5em;\n}\n\n.callout-table,\n.callout-table tr,\n.callout-table p {\n width: 100%;\n padding: 0;\n}\n\n.callout-table td {\n width: 100%;\n padding: 0 1em;\n}\n\n.callout-table p {\n padding-bottom: 0.5em;\n}\n\n.source-table {\n width: 100%;\n background-color: #f5f5f5;\n}\n",
|
||||||
|
"htmlTemplate": "<!DOCTYPE html>\n<html>\n<head>\n <meta charset=\"utf-8\">\n <title>${title}</title>\n <style>\n ${MERMAID_STYLESHEET}\n ${stylesheet}\n </style>\n</head>\n<body>\n${body}\n</body>\n</html>\n",
|
||||||
|
"bareHtmlOnly": false,
|
||||||
|
"fileNameAsHeader": false,
|
||||||
|
"disableImageEmbedding": false
|
||||||
|
}
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"id": "mousewheel-image-zoom",
|
"id": "mousewheel-image-zoom",
|
||||||
"name": "Mousewheel Image zoom",
|
"name": "Mousewheel Image zoom",
|
||||||
"version": "1.0.22",
|
"version": "1.0.24",
|
||||||
"minAppVersion": "0.9.12",
|
"minAppVersion": "0.9.12",
|
||||||
"description": "This plugin enables you to increase/decrease the size of an image by scrolling",
|
"description": "This plugin enables you to increase/decrease the size of an image by scrolling",
|
||||||
"author": "Nico Jeske",
|
"author": "Nico Jeske",
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"id": "numerals",
|
"id": "numerals",
|
||||||
"name": "Numerals",
|
"name": "Numerals",
|
||||||
"version": "1.5.0",
|
"version": "1.5.5",
|
||||||
"minAppVersion": "0.16.0",
|
"minAppVersion": "0.16.0",
|
||||||
"description": "Numerals turns any code block into an advanced calculator. Evaluates math expressions on each line of a code block, including units, currency, and optional TeX rendering.",
|
"description": "Numerals turns any code block into an advanced calculator. Evaluates math expressions on each line of a code block, including units, currency, and optional TeX rendering.",
|
||||||
"author": "RyanC",
|
"author": "RyanC",
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{
|
{
|
||||||
"id": "obsidian-excalidraw-plugin",
|
"id": "obsidian-excalidraw-plugin",
|
||||||
"name": "Excalidraw",
|
"name": "Excalidraw",
|
||||||
"version": "2.9.2",
|
"version": "2.12.2",
|
||||||
"minAppVersion": "1.1.6",
|
"minAppVersion": "1.1.6",
|
||||||
"description": "An Obsidian plugin to edit and view Excalidraw drawings",
|
"description": "An Obsidian plugin to edit and view Excalidraw drawings",
|
||||||
"author": "Zsolt Viczian",
|
"author": "Zsolt Viczian",
|
||||||
"authorUrl": "https://www.zsolt.blog",
|
"authorUrl": "https://excalidraw-obsidian.online",
|
||||||
"fundingUrl": "https://ko-fi.com/zsolt",
|
"fundingUrl": "https://ko-fi.com/zsolt",
|
||||||
"helpUrl": "https://github.com/zsviczian/obsidian-excalidraw-plugin#readme",
|
"helpUrl": "https://github.com/zsviczian/obsidian-excalidraw-plugin#readme",
|
||||||
"isDesktopOnly": false
|
"isDesktopOnly": false
|
||||||
|
|
|
@ -6,5 +6,5 @@
|
||||||
"description": "Integrate Git version control with automatic backup and other advanced features.",
|
"description": "Integrate Git version control with automatic backup and other advanced features.",
|
||||||
"isDesktopOnly": false,
|
"isDesktopOnly": false,
|
||||||
"fundingUrl": "https://ko-fi.com/vinzent",
|
"fundingUrl": "https://ko-fi.com/vinzent",
|
||||||
"version": "2.32.1"
|
"version": "2.33.0"
|
||||||
}
|
}
|
||||||
|
|
|
@ -574,3 +574,32 @@
|
||||||
.git-split-diff-view .cm-insertedLine .cm-changedText {
|
.git-split-diff-view .cm-insertedLine .cm-changedText {
|
||||||
background-color: #22bb2230;
|
background-color: #22bb2230;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Limits the scrollbar to the view body */
|
||||||
|
.git-view {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
position: relative;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.git-obscure-prompt[git-is-obscured="true"] #git-show-password:after {
|
||||||
|
-webkit-mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svg-icon lucide-eye"><path d="M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0"></path><circle cx="12" cy="12" r="3"></circle></svg>');
|
||||||
|
}
|
||||||
|
|
||||||
|
.git-obscure-prompt[git-is-obscured="false"] #git-show-password:after {
|
||||||
|
-webkit-mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svg-icon lucide-eye-off"><path d="M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49"></path><path d="M14.084 14.158a3 3 0 0 1-4.242-4.242"></path><path d="M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143"></path><path d="m2 2 20 20"></path></svg>');
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Override styling of Codemirror merge view "collapsed lines" indicator */
|
||||||
|
.git-split-diff-view .ͼ2 .cm-collapsedLines {
|
||||||
|
background: var(--interactive-normal);
|
||||||
|
border-radius: var(--radius-m);
|
||||||
|
color: var(--text-accent);
|
||||||
|
font-size: var(--font-small);
|
||||||
|
padding: var(--size-4-1) var(--size-4-1);
|
||||||
|
}
|
||||||
|
.git-split-diff-view .ͼ2 .cm-collapsedLines:hover {
|
||||||
|
background: var(--interactive-hover);
|
||||||
|
color: var(--text-accent-hover);
|
||||||
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"id": "obsidian-importer",
|
"id": "obsidian-importer",
|
||||||
"name": "Importer",
|
"name": "Importer",
|
||||||
"version": "1.6.19",
|
"version": "1.6.21",
|
||||||
"minAppVersion": "0.15.0",
|
"minAppVersion": "0.15.0",
|
||||||
"description": "Import data from Notion, Evernote, Apple Notes, Microsoft OneNote, Google Keep, Bear, Roam, and HTML files.",
|
"description": "Import data from Notion, Evernote, Apple Notes, Microsoft OneNote, Google Keep, Bear, Roam, and HTML files.",
|
||||||
"author": "Obsidian",
|
"author": "Obsidian",
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"id": "obsidian-local-rest-api",
|
"id": "obsidian-local-rest-api",
|
||||||
"name": "Local REST API",
|
"name": "Local REST API",
|
||||||
"version": "3.1.0",
|
"version": "3.2.0",
|
||||||
"minAppVersion": "0.12.0",
|
"minAppVersion": "0.12.0",
|
||||||
"description": "Get, change or otherwise interact with your notes in Obsidian via a REST API.",
|
"description": "Get, change or otherwise interact with your notes in Obsidian via a REST API.",
|
||||||
"author": "Adam Coddington",
|
"author": "Adam Coddington",
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
{
|
{
|
||||||
"version": "2.0",
|
"version": "2.0",
|
||||||
"layout": [
|
"layout": [
|
||||||
|
null,
|
||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
null
|
null
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"id": "obsidian-mindmap-nextgen",
|
"id": "obsidian-mindmap-nextgen",
|
||||||
"name": "Mindmap NextGen",
|
"name": "Mindmap NextGen",
|
||||||
"version": "1.13.2",
|
"version": "1.14.1",
|
||||||
"description": "View your Markdown as a mindmap",
|
"description": "View your Markdown as a mindmap",
|
||||||
"isDesktopOnly": false,
|
"isDesktopOnly": false,
|
||||||
"minAppVersion": "1.0.0"
|
"minAppVersion": "1.0.0"
|
||||||
|
|
|
@ -25,10 +25,12 @@
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
.markmap div { line-height: var(--mm-line-height, 1em) }
|
|
||||||
|
|
||||||
.katex-html { display: none }
|
.katex-html { display: none }
|
||||||
|
|
||||||
|
.workspace-leaf-content[data-type="mindmap-nextgen-plugin"] .view-content {
|
||||||
|
padding: 0
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Code blocks inside mindmaps */
|
/* Code blocks inside mindmaps */
|
||||||
|
|
||||||
|
@ -44,21 +46,6 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Checkboxes */
|
|
||||||
|
|
||||||
.mm-ng-checkbox {
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mm-ng-checkbox-checked {
|
|
||||||
color: green;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mm-ng-checkbox-unchecked {
|
|
||||||
color: red;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* Inline mindmaps */
|
/* Inline mindmaps */
|
||||||
|
|
||||||
.block-language-markmap { border-radius: 5px }
|
.block-language-markmap { border-radius: 5px }
|
||||||
|
@ -184,30 +171,6 @@
|
||||||
|
|
||||||
.mm-toolbar {
|
.mm-toolbar {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 2rem;
|
bottom: 20px;
|
||||||
right: 1rem;
|
left: 20px;
|
||||||
background-color: white;
|
|
||||||
border-radius: 0.5rem;
|
|
||||||
padding: 0.2rem;
|
|
||||||
box-shadow: 0 0 0.4rem 0 white;
|
|
||||||
z-index: 1;
|
|
||||||
border: 1px solid #ccc;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: row;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: space-between;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mm-toolbar .mm-toolbar-brand {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mm-toolbar .mm-toolbar-item {
|
|
||||||
height: 20px;
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mm-toolbar .mm-toolbar-item.active,
|
|
||||||
.mm-toolbar .mm-toolbar-item:hover {
|
|
||||||
color: brown;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"id": "obsidian-tasks-plugin",
|
"id": "obsidian-tasks-plugin",
|
||||||
"name": "Tasks",
|
"name": "Tasks",
|
||||||
"version": "7.18.4",
|
"version": "7.19.1",
|
||||||
"minAppVersion": "1.4.0",
|
"minAppVersion": "1.4.0",
|
||||||
"description": "Track tasks across your vault. Supports due dates, recurring tasks, done dates, sub-set of checklist items, and filtering.",
|
"description": "Track tasks across your vault. Supports due dates, recurring tasks, done dates, sub-set of checklist items, and filtering.",
|
||||||
"helpUrl": "https://publish.obsidian.md/tasks/",
|
"helpUrl": "https://publish.obsidian.md/tasks/",
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"id": "omnisearch",
|
"id": "omnisearch",
|
||||||
"name": "Omnisearch",
|
"name": "Omnisearch",
|
||||||
"version": "1.26.1",
|
"version": "1.27.1",
|
||||||
"minAppVersion": "1.7.2",
|
"minAppVersion": "1.7.2",
|
||||||
"description": "A search engine that just works",
|
"description": "A search engine that just works",
|
||||||
"author": "Simon Cambier",
|
"author": "Simon Cambier",
|
||||||
|
|
|
@ -320,5 +320,7 @@
|
||||||
"vimSmoothOutlineMode": true,
|
"vimSmoothOutlineMode": true,
|
||||||
"vimHintChars": "hjklasdfgyuiopqwertnmzxcvb",
|
"vimHintChars": "hjklasdfgyuiopqwertnmzxcvb",
|
||||||
"vimHintArgs": "all",
|
"vimHintArgs": "all",
|
||||||
"PATH": ""
|
"PATH": "",
|
||||||
|
"autoCheckForUpdates": true,
|
||||||
|
"fixObsidianTextSelectionBug": true
|
||||||
}
|
}
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"id": "pdf-plus",
|
"id": "pdf-plus",
|
||||||
"name": "PDF++",
|
"name": "PDF++",
|
||||||
"version": "0.40.28",
|
"version": "0.40.30",
|
||||||
"minAppVersion": "1.5.8",
|
"minAppVersion": "1.5.8",
|
||||||
"description": "The most Obsidian-native PDF annotation tool ever.",
|
"description": "The most Obsidian-native PDF annotation tool ever.",
|
||||||
"author": "Ryota Ushio",
|
"author": "Ryota Ushio",
|
||||||
|
|
|
@ -1,17 +1,193 @@
|
||||||
{
|
{
|
||||||
"recentFiles": [
|
"recentFiles": [
|
||||||
{
|
{
|
||||||
"basename": "PLC IO Tags",
|
"basename": "Untitled",
|
||||||
"path": "03-VM/44 - 98050 - Fiera/IO/PLC IO Tags.md"
|
"path": "04-SIDEL/13 - E5.007560 - Modifica O&U - SAE235/Untitled.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "Report Javier Vargas - SAE052",
|
||||||
|
"path": "04-SIDEL/12 - SAE052 - Syrup Update & GSD Update/Report Javier Vargas - SAE052.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "Layout - Anello-Ring",
|
||||||
|
"path": "03-VM/44 - 98050 - Fiera/Layout - Anello-Ring.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "Facturazion Electronica - Fatturazione Elecctronica",
|
||||||
|
"path": "01-Documentation/Facturazion/Facturazion Electronica - Fatturazione Elecctronica.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "IO - Ips Nodes",
|
||||||
|
"path": "03-VM/44 - 98050 - Fiera/IO - Ips Nodes.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "Notes - Git - Gitea",
|
||||||
|
"path": "01-Documentation/GIT - GitHub/Notes - Git - Gitea.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "GIT commands HELP",
|
||||||
|
"path": "01-Documentation/GIT - GitHub/GIT commands HELP.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "98050_Hardware PEW - PAW",
|
||||||
|
"path": "03-VM/44 - 98050 - Fiera/98050_Hardware PEW - PAW.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.1 - Esp",
|
||||||
|
"path": "03-VM/44 - 98050 - Fiera/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.1 - Esp.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "Especifica General",
|
||||||
|
"path": "03-VM/44 - 98050 - Fiera/Especifica General.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.1 - Ita",
|
||||||
|
"path": "03-VM/44 - 98050 - Fiera/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.1 - Ita.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.2 - en",
|
||||||
|
"path": "03-VM/44 - 98050 - Fiera/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.2 - en.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "Conda - Anaconda - miniconda",
|
||||||
|
"path": "01-Documentation/Python/Scripts Python/Conda - Anaconda - miniconda.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "Shortcuts",
|
||||||
|
"path": "DB/Shortcuts/Shortcuts.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "AWL - STL Types",
|
||||||
|
"path": "01-Documentation/Python/Scripts Python/XML to SCL Siemens/AWL - STL Types.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "DAR Description - DIET AS REGULAR - SAE452 San Giorgio in Bosco",
|
||||||
|
"path": "04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/DAR Description - DIET AS REGULAR - SAE452 San Giorgio in Bosco.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "Excel - VBA - AdjustOffset",
|
||||||
|
"path": "01-Documentation/Scripts Excel - VBA/Excel - VBA - AdjustOffset.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "ADAM 4021 - 485 to 4..20ma - Commissioning & Firmware update",
|
||||||
|
"path": "01-Documentation/Dispositivos - Manuales/ADAM/ADAM 4021 - 485 to 4..20ma - Commissioning & Firmware update.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "Notes for Windows - Chris Titus Tool - Online - Offline",
|
||||||
|
"path": "01-Documentation/Windows/Notes for Windows - Chris Titus Tool - Online - Offline.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"basename": "Problem with drag&drop or Left Click",
|
"basename": "Problem with drag&drop or Left Click",
|
||||||
"path": "01-Documentation/Dispositivos - Manuales/Mouse/Problem with drag&drop or Left Click.md"
|
"path": "01-Documentation/Dispositivos - Manuales/Mouse/Problem with drag&drop or Left Click.md"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"basename": "GEO - Master UP",
|
||||||
|
"path": "01-Documentation/Vetromeccanica/GEO - Master UP/GEO - Master UP.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "Motor_Framework_Insight",
|
||||||
|
"path": "03-VM/44 - 98050 - Fiera/Motor_Framework_Insight.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "AWL - STL Types - Parámetros Típicos",
|
||||||
|
"path": "01-Documentation/Python/Scripts Python/XML to SCL Siemens/AWL - STL Types - Parámetros Típicos.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "LAD Descriptions from XDA files from Tia Portal",
|
||||||
|
"path": "01-Documentation/Python/Scripts Python/XML to SCL Siemens/LAD Descriptions from XDA files from Tia Portal.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "Conversión LAD a SCL Siemens",
|
||||||
|
"path": "01-Documentation/Python/Scripts Python/XML to SCL Siemens/Conversión LAD a SCL Siemens.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "Excel - VBA - Cell Reference Increment Functions",
|
||||||
|
"path": "01-Documentation/Scripts Excel - VBA/Excel - VBA - Cell Reference Increment Functions.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.0 - Ita",
|
||||||
|
"path": "03-VM/44 - 98050 - Fiera/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.0 - Ita.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "Openness Python Library - siemens_tia_scripting",
|
||||||
|
"path": "01-Documentation/Siemens/Openness/Openness Python Library - siemens_tia_scripting.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "Openness Python Library - siemens_tia_scripting - Parsing TIA Portal `_XRef.xml` Files for Call Tree Generation",
|
||||||
|
"path": "01-Documentation/Siemens/Openness/Openness Python Library - siemens_tia_scripting - Parsing TIA Portal `_XRef.xml` Files for Call Tree Generation.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "Import external source files into TIA Portal and generate blocks from them .db",
|
||||||
|
"path": "01-Documentation/Siemens/TIA Portal/Import external source files into TIA Portal and generate blocks from them .db.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "SIMATIC ET 200S 2AI I 4WIRE ST",
|
||||||
|
"path": "01-Documentation/Siemens/Peripherics - Schede - IM/SIMATIC ET 200S 2AI I 4WIRE ST.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "Waveshare RS232-485 Ethernet - Wifi - ADAM 4021 - Using com0com - MaselliSimulatorApp Python",
|
||||||
|
"path": "01-Documentation/Dispositivos - Manuales/Waveshare RS232-485 Ethernet - Wifi/Waveshare RS232-485 Ethernet - Wifi - ADAM 4021 - Using com0com - MaselliSimulatorApp Python.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "FB2121 - Analog Input 4-20mA Management",
|
||||||
|
"path": "04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/FB2121 - Read AI 4.20ma/FB2121 - Analog Input 4-20mA Management.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "FB2120 - MasseliTCP Read - Descrizzione Software - v1.8",
|
||||||
|
"path": "04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/FB2120 - MasseliTCP/FB2120 - MasseliTCP Read - Descrizzione Software - v1.8.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "FB2120 - MasseliTCP Read - v1.8",
|
||||||
|
"path": "04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/FB2120 - MasseliTCP/FB2120 - MasseliTCP Read - v1.8.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "Versiones",
|
||||||
|
"path": "04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/FB2120 - MasseliTCP/Versiones.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "Hardware used for 485-TCP",
|
||||||
|
"path": "04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/FB2120 - MasseliTCP/Hardware used for 485-TCP.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "Visit to Maselli 06-05-2025",
|
||||||
|
"path": "04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/Documentation/Visit to Maselli 06-05-2025.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "Test in SIDEL",
|
||||||
|
"path": "04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/Documentation/Test in SIDEL.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "Test - Fatto su Maselli - 06-05-2025",
|
||||||
|
"path": "04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/Documentation/Test - Fatto su Maselli - 06-05-2025.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "RDSYSST - SFC51",
|
||||||
|
"path": "01-Documentation/Siemens/PLC Siemens/RDSYSST - SFC51.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "TCON, TDISCON, TSEND, and TRCV (TCP communication) instructions",
|
||||||
|
"path": "01-Documentation/Siemens/PLC Siemens/TCON, TDISCON, TSEND, and TRCV (TCP communication) instructions.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "Difference between 2-wire, 3-wire, and 4-wire signal transmitter connections",
|
||||||
|
"path": "01-Documentation/Dispositivos - Manuales/4-20ma Analog setup wiring/Difference between 2-wire, 3-wire, and 4-wire signal transmitter connections.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "IPs & Address - Master - Vetromeccanica",
|
||||||
|
"path": "03-VM/9..... MASTER Transport/Standard Transport/IPs & Address - Master - Vetromeccanica.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "PLC IO Tags",
|
||||||
|
"path": "03-VM/44 - 98050 - Fiera/IO/PLC IO Tags.md"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"basename": "Mapping Divider",
|
"basename": "Mapping Divider",
|
||||||
"path": "03-VM/44 - 98050 - Fiera/IO/Mapping Divider.md"
|
"path": "03-VM/44 - 98050 - Fiera/IO/Mapping Divider.md"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"basename": "Cronología del Proyecto 169423 - AJETHAI CO., LTD.",
|
||||||
|
"path": "04-SIDEL/14 - E5.007172 - Modifica O&U - SAE340/Cronología del Proyecto 169423 - AJETHAI CO., LTD..md"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"basename": "SysInternals Tools - WinInternals",
|
"basename": "SysInternals Tools - WinInternals",
|
||||||
"path": "01-Documentation/Windows/SysInternals Tools - WinInternals.md"
|
"path": "01-Documentation/Windows/SysInternals Tools - WinInternals.md"
|
||||||
|
@ -23,182 +199,6 @@
|
||||||
{
|
{
|
||||||
"basename": "AI Prompts useful",
|
"basename": "AI Prompts useful",
|
||||||
"path": "01-Documentation/AI - IA - LLM - Artificial Intelligence/AI Prompts useful.md"
|
"path": "01-Documentation/AI - IA - LLM - Artificial Intelligence/AI Prompts useful.md"
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "Layout - Anello-Ring",
|
|
||||||
"path": "03-VM/44 - 98050 - Fiera/Layout - Anello-Ring.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "IO - Ips Nodes",
|
|
||||||
"path": "03-VM/44 - 98050 - Fiera/IO - Ips Nodes.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "DAR Description - DIET AS REGULAR - SAE452 San Giorgio in Bosco",
|
|
||||||
"path": "04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/DAR Description - DIET AS REGULAR - SAE452 San Giorgio in Bosco.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "98050_Hardware",
|
|
||||||
"path": "03-VM/44 - 98050 - Fiera/98050_Hardware.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "Conda - Anaconda - miniconda",
|
|
||||||
"path": "01-Documentation/Python/Scripts Python/Conda - Anaconda - miniconda.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.1 - Esp",
|
|
||||||
"path": "03-VM/44 - 98050 - Fiera/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.1 - Esp.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "Calc v0.3 Pure",
|
|
||||||
"path": "01-Documentation/Python/Scripts Python/Calc/Calc v0.3 Pure.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "Calc v0.2",
|
|
||||||
"path": "01-Documentation/Python/Scripts Python/Calc/Calc v0.2.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "Calc v0.1",
|
|
||||||
"path": "01-Documentation/Python/Scripts Python/Calc/Calc v0.1.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "Miniconda Como hacer un backup completo de un entorno creado con Miniconda",
|
|
||||||
"path": "01-Documentation/Python/Scripts Python/Miniconda Como hacer un backup completo de un entorno creado con Miniconda.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "Group Scripts Manager",
|
|
||||||
"path": "01-Documentation/Python/Scripts Python/Group Scripts Manager.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "Notes - Update Multilane Table",
|
|
||||||
"path": "03-VM/41 - 94154 - Update Multilane Table/Notes - Update Multilane Table.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "Backups - Mikrotik",
|
|
||||||
"path": "01-Documentation/Routers/Mikrotik - Network Redes/Backups - Mikrotik.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "Mikrotik - Comandos WIFI - Clientes de wlan y CAP",
|
|
||||||
"path": "01-Documentation/Routers/Mikrotik - Network Redes/Mikrotik - Comandos WIFI - Clientes de wlan y CAP.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "Mikrotik - Setup Commands for Layer 2 Wi-Fi Bridge",
|
|
||||||
"path": "01-Documentation/Routers/Mikrotik - Network Redes/Mikrotik - Setup Commands for Layer 2 Wi-Fi Bridge.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.0 - Ita",
|
|
||||||
"path": "03-VM/44 - 98050 - Fiera/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.0 - Ita.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "Drawing 2025-02-24 19.56.40.excalidraw",
|
|
||||||
"path": "03-VM/41 - 94154 - Update Multilane Table/Drawing 2025-02-24 19.56.40.excalidraw.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "Drawing 2025-02-25 18.12.26.excalidraw",
|
|
||||||
"path": "03-VM/41 - 94154 - Update Multilane Table/Drawing 2025-02-25 18.12.26.excalidraw.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "IPs & Address - Master - Vetromeccanica",
|
|
||||||
"path": "03-VM/9..... MASTER Transport/Standard Transport/IPs & Address - Master - Vetromeccanica.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "Autocad - useful Commands",
|
|
||||||
"path": "01-Documentation/Autocad - Acad/Autocad - useful Commands.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "Autocad - Acad - show all layers - unlock all layers",
|
|
||||||
"path": "01-Documentation/Autocad - Acad/Autocad - Acad - show all layers - unlock all layers.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "Minimotor - Setup - Chingiolli - FC6",
|
|
||||||
"path": "01-Documentation/Vetromeccanica/Minimotor - FC6/Minimotor - Setup - Chingiolli - FC6.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "Minimotor - Encoder setup",
|
|
||||||
"path": "01-Documentation/Vetromeccanica/Minimotor - FC6/Minimotor - Encoder setup.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "Drawing 2024-04-03 11.29.20.excalidraw",
|
|
||||||
"path": "01-Documentation/Vetromeccanica/Minimotor - FC6/Drawing 2024-04-03 11.29.20.excalidraw.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "Siemens HMI Translate - Python - LLM - Google Translate",
|
|
||||||
"path": "01-Documentation/Python/Scripts Python/Siemens HMI Translate - Python - LLM - Google Translate.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "MR-J4",
|
|
||||||
"path": "01-Documentation/Inverters/Mitsubishi/MR-J4.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "Test - Fatto su Maselli - 06-05-2025",
|
|
||||||
"path": "04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/Documentation/Test - Fatto su Maselli - 06-05-2025.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "Hardware used for 485-TCP",
|
|
||||||
"path": "04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/FB2120 - MasseliTCP/Hardware used for 485-TCP.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "FB2120 - MasseliTCP Read - v1.8",
|
|
||||||
"path": "04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/FB2120 - MasseliTCP/FB2120 - MasseliTCP Read - v1.8.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "FB2120 - MasseliTCP Read - Descrizzione Software - v1.8",
|
|
||||||
"path": "04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/FB2120 - MasseliTCP/FB2120 - MasseliTCP Read - Descrizzione Software - v1.8.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "Versiones",
|
|
||||||
"path": "04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/FB2120 - MasseliTCP/Versiones.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "S7-300 - TCON - TRCV",
|
|
||||||
"path": "01-Documentation/Siemens/PLC Siemens/S7-300 - TCON - TRCV.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "Maselli - ADAM - Protocol",
|
|
||||||
"path": "01-Documentation/Dispositivos - Manuales/Maselli/Maselli - ADAM - Protocol.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "Install Docker on Ubuntu",
|
|
||||||
"path": "01-Documentation/Dockers/Install Docker on Ubuntu.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "FB Scan Time - FB1",
|
|
||||||
"path": "03-VM/9..... MASTER Transport/Standard Transport/FB Scan Time - FB1.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "5.007382-EXMU01UF - RVU008 - EQPT24731 - Initial Data",
|
|
||||||
"path": "04-SIDEL/03 - 5.007382-EXMU01UF - RVU008 - EQPT24731/5.007382-EXMU01UF - RVU008 - EQPT24731 - Initial Data.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "OB30 Calculation",
|
|
||||||
"path": "03-VM/9..... MASTER Transport/Standard Transport/OB30 Calculation.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "FB Scan Time OB1 - FB4",
|
|
||||||
"path": "03-VM/9..... MASTER Transport/Standard Transport/FB Scan Time OB1 - FB4.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "Docker Basics - Essential Commands and Usage Guide",
|
|
||||||
"path": "01-Documentation/Dockers/Docker Basics - Essential Commands and Usage Guide.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "Waveshare RS232-485 Ethernet - Wifi - ADAM 4021 - Using Serial200",
|
|
||||||
"path": "01-Documentation/Dispositivos - Manuales/Waveshare RS232-485 Ethernet - Wifi/Waveshare RS232-485 Ethernet - Wifi - ADAM 4021 - Using Serial200.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "GIT commands HELP",
|
|
||||||
"path": "01-Documentation/GIT - GitHub/GIT commands HELP.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "Notes - Git - Gitea",
|
|
||||||
"path": "01-Documentation/GIT - GitHub/Notes - Git - Gitea.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "Git - Start New Repository with Visual Studio Code - VS Code",
|
|
||||||
"path": "01-Documentation/GIT - GitHub/Git - Start New Repository with Visual Studio Code - VS Code.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "GitHub Privacy",
|
|
||||||
"path": "01-Documentation/GIT - GitHub/GitHub Privacy.md"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"omittedPaths": [],
|
"omittedPaths": [],
|
||||||
|
|
|
@ -3,5 +3,6 @@
|
||||||
"eng",
|
"eng",
|
||||||
"ita"
|
"ita"
|
||||||
],
|
],
|
||||||
"rightClickMenu": true
|
"rightClickMenu": true,
|
||||||
|
"useSystemOCR": false
|
||||||
}
|
}
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"id": "text-extractor",
|
"id": "text-extractor",
|
||||||
"name": "Text Extractor",
|
"name": "Text Extractor",
|
||||||
"version": "0.5.2",
|
"version": "0.6.0",
|
||||||
"minAppVersion": "1.4.16",
|
"minAppVersion": "1.4.16",
|
||||||
"description": "A (companion) plugin to facilitate the extraction of text from images (OCR) and PDFs.",
|
"description": "A (companion) plugin to facilitate the extraction of text from images (OCR) and PDFs.",
|
||||||
"author": "Simon Cambier",
|
"author": "Simon Cambier",
|
||||||
|
|
|
@ -8,49 +8,67 @@
|
||||||
"type": "tabs",
|
"type": "tabs",
|
||||||
"children": [
|
"children": [
|
||||||
{
|
{
|
||||||
"id": "db16746106a49cac",
|
"id": "5db613eb1ce999fb",
|
||||||
"type": "leaf",
|
"type": "leaf",
|
||||||
"state": {
|
"state": {
|
||||||
"type": "markdown",
|
"type": "markdown",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "03-VM/44 - 98050 - Fiera/IO/Mapping Divider.md",
|
"file": "03-VM/44 - 98050 - Fiera/IO - Ips Nodes.md",
|
||||||
"mode": "source",
|
"mode": "source",
|
||||||
"source": false,
|
"source": false,
|
||||||
"backlinks": false
|
"backlinks": false
|
||||||
},
|
},
|
||||||
"icon": "lucide-file",
|
"icon": "lucide-file",
|
||||||
"title": "Mapping Divider"
|
"title": "IO - Ips Nodes"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "5db613eb1ce999fb",
|
"id": "7ee6dc040af732b6",
|
||||||
"type": "leaf",
|
|
||||||
"state": {
|
|
||||||
"type": "excalidraw",
|
|
||||||
"state": {
|
|
||||||
"file": "03-VM/44 - 98050 - Fiera/Layout - Anello-Ring.md"
|
|
||||||
},
|
|
||||||
"icon": "excalidraw-icon",
|
|
||||||
"title": "Layout - Anello-Ring"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "075404432f3ecddb",
|
|
||||||
"type": "leaf",
|
"type": "leaf",
|
||||||
"state": {
|
"state": {
|
||||||
"type": "markdown",
|
"type": "markdown",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "03-VM/44 - 98050 - Fiera/IO/PLC IO Tags.md",
|
"file": "03-VM/44 - 98050 - Fiera/98050_Hardware PEW - PAW.md",
|
||||||
"mode": "preview",
|
"mode": "source",
|
||||||
"source": false,
|
"source": false,
|
||||||
"backlinks": false
|
"backlinks": false
|
||||||
},
|
},
|
||||||
"icon": "lucide-file",
|
"icon": "lucide-file",
|
||||||
"title": "PLC IO Tags"
|
"title": "98050_Hardware PEW - PAW"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "e149ba8053d0496f",
|
||||||
|
"type": "leaf",
|
||||||
|
"state": {
|
||||||
|
"type": "markdown",
|
||||||
|
"state": {
|
||||||
|
"file": "03-VM/44 - 98050 - Fiera/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.1 - Esp.md",
|
||||||
|
"mode": "source",
|
||||||
|
"source": false,
|
||||||
|
"backlinks": false
|
||||||
|
},
|
||||||
|
"icon": "lucide-file",
|
||||||
|
"title": "Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.1 - Esp"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "70e719f291c2a1c4",
|
||||||
|
"type": "leaf",
|
||||||
|
"state": {
|
||||||
|
"type": "markdown",
|
||||||
|
"state": {
|
||||||
|
"file": "04-SIDEL/13 - E5.007560 - Modifica O&U - SAE235/Untitled.md",
|
||||||
|
"mode": "source",
|
||||||
|
"source": false,
|
||||||
|
"backlinks": false
|
||||||
|
},
|
||||||
|
"icon": "lucide-file",
|
||||||
|
"title": "Untitled"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"currentTab": 2
|
"currentTab": 3
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"direction": "vertical"
|
"direction": "vertical"
|
||||||
|
@ -70,7 +88,7 @@
|
||||||
"type": "file-explorer",
|
"type": "file-explorer",
|
||||||
"state": {
|
"state": {
|
||||||
"sortOrder": "alphabetical",
|
"sortOrder": "alphabetical",
|
||||||
"autoReveal": true
|
"autoReveal": false
|
||||||
},
|
},
|
||||||
"icon": "lucide-folder-closed",
|
"icon": "lucide-folder-closed",
|
||||||
"title": "Files"
|
"title": "Files"
|
||||||
|
@ -117,8 +135,7 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"direction": "horizontal",
|
"direction": "horizontal",
|
||||||
"width": 286.5,
|
"width": 286.5
|
||||||
"collapsed": true
|
|
||||||
},
|
},
|
||||||
"right": {
|
"right": {
|
||||||
"id": "403186784ae0fd88",
|
"id": "403186784ae0fd88",
|
||||||
|
@ -246,54 +263,54 @@
|
||||||
"obsidian-importer:Open Importer": false
|
"obsidian-importer:Open Importer": false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"active": "075404432f3ecddb",
|
"active": "863e4e6efbd0fda5",
|
||||||
"lastOpenFiles": [
|
"lastOpenFiles": [
|
||||||
"01-Documentation/Dispositivos - Manuales/Mouse/Problem with drag&drop or Left Click.md",
|
"04-SIDEL/12 - SAE052 - Syrup Update & GSD Update/Report Javier Vargas - SAE052.md",
|
||||||
"01-Documentation/Dispositivos - Manuales/Mouse",
|
|
||||||
"03-VM/44 - 98050 - Fiera/IO/PLC IO Tags.md",
|
|
||||||
"03-VM/44 - 98050 - Fiera/IO/Mapping Divider.md",
|
|
||||||
"01-Documentation/Windows/SysInternals Tools - WinInternals.md",
|
|
||||||
"03-VM/44 - 98050 - Fiera/IO/Device IO Tags.md",
|
|
||||||
"01-Documentation/AI - IA - LLM - Artificial Intelligence/AI Prompts useful.md",
|
|
||||||
"03-VM/44 - 98050 - Fiera/Layout - Anello-Ring.md",
|
"03-VM/44 - 98050 - Fiera/Layout - Anello-Ring.md",
|
||||||
"03-VM/44 - 98050 - Fiera/IO",
|
"01-Documentation/Facturazion/Facturazion Electronica - Fatturazione Elecctronica.md",
|
||||||
"03-VM/44 - 98050 - Fiera/IO - Ips Nodes.md",
|
"03-VM/44 - 98050 - Fiera/IO - Ips Nodes.md",
|
||||||
"04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/DAR Description - DIET AS REGULAR - SAE452 San Giorgio in Bosco.md",
|
"03-VM/44 - 98050 - Fiera/adjuntos/Pasted image 20250616120243.png",
|
||||||
"03-VM/44 - 98050 - Fiera/98050_Hardware.md",
|
"03-VM/44 - 98050 - Fiera/adjuntos/Pasted image 20250616115153.png",
|
||||||
"01-Documentation/Python/Scripts Python/Conda - Anaconda - miniconda.md",
|
"03-VM/44 - 98050 - Fiera/adjuntos/Pasted image 20250616114855.png",
|
||||||
|
"01-Documentation/GIT - GitHub/Notes - Git - Gitea.md",
|
||||||
|
"01-Documentation/GIT - GitHub/GIT commands HELP.md",
|
||||||
|
"03-VM/44 - 98050 - Fiera/98050_Hardware PEW - PAW.md",
|
||||||
"03-VM/44 - 98050 - Fiera/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.1 - Esp.md",
|
"03-VM/44 - 98050 - Fiera/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.1 - Esp.md",
|
||||||
"03-VM/44 - 98050 - Fiera/98050_PLC_01_CAx_Export_Hardware_Tree.md",
|
"03-VM/44 - 98050 - Fiera/Especifica General.md",
|
||||||
"03-VM/44 - 98050 - Fiera/98050_PLC_01_CAx_Summary.md",
|
"03-VM/44 - 98050 - Fiera/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.1 - Ita.md",
|
||||||
"01-Documentation/Python/Scripts Python/Calc/Calc v0.3 Pure.md",
|
"03-VM/44 - 98050 - Fiera/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.2 - en.md",
|
||||||
"01-Documentation/Python/Scripts Python/Calc/Calc v0.2.md",
|
"01-Documentation/Python/Scripts Python/Conda - Anaconda - miniconda.md",
|
||||||
"01-Documentation/Python/Scripts Python/Calc/Calc v0.1.md",
|
"DB/Shortcuts/Shortcuts.md",
|
||||||
"01-Documentation/Python/Scripts Python/Calc/Untitled 1.md",
|
"DB/Shortcuts",
|
||||||
"01-Documentation/Python/Scripts Python/Untitled.md",
|
"01-Documentation/Python/Scripts Python/XML to SCL Siemens/AWL - STL Types.md",
|
||||||
"01-Documentation/Python/Scripts Python/Miniconda Como hacer un backup completo de un entorno creado con Miniconda.md",
|
"04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/DAR Description - DIET AS REGULAR - SAE452 San Giorgio in Bosco.md",
|
||||||
"01-Documentation/Python/Scripts Python/Calc",
|
"01-Documentation/Scripts Excel - VBA/Excel - VBA - AdjustOffset.md",
|
||||||
"01-Documentation/Python/Scripts Python/Group Scripts Manager.md",
|
"01-Documentation/Dispositivos - Manuales/ADAM/ADAM 4021 - 485 to 4..20ma - Commissioning & Firmware update.md",
|
||||||
"03-VM/41 - 94154 - Update Multilane Table/Notes - Update Multilane Table.md",
|
"01-Documentation/Windows/Notes for Windows - Chris Titus Tool - Online - Offline.md",
|
||||||
"01-Documentation/Routers/Mikrotik - Network Redes/Backups - Mikrotik.md",
|
"01-Documentation/Dispositivos - Manuales/Mouse/Problem with drag&drop or Left Click.md",
|
||||||
"01-Documentation/Routers/Mikrotik - Network Redes/Mikrotik - Comandos WIFI - Clientes de wlan y CAP.md",
|
"01-Documentation/Vetromeccanica/GEO - Master UP/GEO - Master UP.md",
|
||||||
"01-Documentation/Routers/Mikrotik - Network Redes/Mikrotik - Setup Commands for Layer 2 Wi-Fi Bridge.md",
|
"03-VM/44 - 98050 - Fiera/Motor_Framework_Insight.md",
|
||||||
|
"01-Documentation/Python/Scripts Python/XML to SCL Siemens/AWL - STL Types - Parámetros Típicos.md",
|
||||||
|
"01-Documentation/Python/Scripts Python/XML to SCL Siemens/LAD Descriptions from XDA files from Tia Portal.md",
|
||||||
|
"01-Documentation/Python/Scripts Python/XML to SCL Siemens/Conversión LAD a SCL Siemens.md",
|
||||||
|
"01-Documentation/Scripts Excel - VBA/Excel - VBA - Cell Reference Increment Functions.md",
|
||||||
"03-VM/44 - 98050 - Fiera/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.0 - Ita.md",
|
"03-VM/44 - 98050 - Fiera/Progetto 98050 Fiera - Tavolo di accumulo - Logica - v 0.0 - Ita.md",
|
||||||
"03-VM/44 - 98050 - Fiera/adjuntos/Layout-Model.png",
|
"03-VM/44 - 98050 - Fiera/adjuntos/Pasted image 20250611204519.png",
|
||||||
|
"03-VM/44 - 98050 - Fiera/adjuntos/Pasted image 20250611204506.png",
|
||||||
|
"04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/FB2121 - Read AI 4.20ma",
|
||||||
|
"04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/Documentation/adjuntos/Pasted image 20250610121735.png",
|
||||||
|
"01-Documentation/Dispositivos - Manuales/4-20ma Analog setup wiring/adjuntos/Pasted image 20250610121656.png",
|
||||||
|
"01-Documentation/Dispositivos - Manuales/4-20ma Analog setup wiring/adjuntos/Pasted image 20250610121639.png",
|
||||||
|
"01-Documentation/Dispositivos - Manuales/4-20ma Analog setup wiring/adjuntos/Pasted image 20250610121625.png",
|
||||||
|
"01-Documentation/Dispositivos - Manuales/4-20ma Analog setup wiring/adjuntos/Pasted image 20250610121530.png",
|
||||||
|
"01-Documentation/Dispositivos - Manuales/4-20ma Analog setup wiring/adjuntos",
|
||||||
|
"01-Documentation/Dispositivos - Manuales/4-20ma Analog setup wiring",
|
||||||
|
"04-SIDEL/14 - E5.007172 - Modifica O&U - SAE340",
|
||||||
|
"01-Documentation/Dispositivos - Manuales/Mouse",
|
||||||
|
"03-VM/44 - 98050 - Fiera/IO",
|
||||||
|
"01-Documentation/Python/Scripts Python/Calc",
|
||||||
"03-VM/44 - 98050 - Fiera/adjuntos",
|
"03-VM/44 - 98050 - Fiera/adjuntos",
|
||||||
"04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/FB2120 - MasseliTCP/Untitled",
|
"04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/FB2120 - MasseliTCP/Untitled",
|
||||||
"04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/FB2120 - MasseliTCP/adjuntos/Pasted image 20250530095111.png",
|
|
||||||
"04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/FB2120 - MasseliTCP/adjuntos/Pasted image 20250530095053.png",
|
|
||||||
"04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/FB2120 - MasseliTCP/adjuntos/Pasted image 20250529221344.png",
|
|
||||||
"04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/FB2120 - MasseliTCP/adjuntos/Pasted image 20250529221334.png",
|
|
||||||
"04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/FB2120 - MasseliTCP/adjuntos/Pasted image 20250526165501.png",
|
|
||||||
"04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/FB2120 - MasseliTCP/adjuntos",
|
|
||||||
"04-SIDEL/09 - SAE452 - Diet as Regular - San Giovanni in Bosco/FB2120 - MasseliTCP",
|
|
||||||
"01-Documentation/Dispositivos - Manuales/Waveshare RS232-485 Ethernet - Wifi/adjuntos/Pasted image 20250523122653.png",
|
|
||||||
"01-Documentation/Dispositivos - Manuales/Waveshare RS232-485 Ethernet - Wifi/adjuntos/Pasted image 20250523122629.png",
|
|
||||||
"01-Documentation/Dispositivos - Manuales/Waveshare RS232-485 Ethernet - Wifi/adjuntos/Pasted image 20250523122530.png",
|
|
||||||
"01-Documentation/Dispositivos - Manuales/Waveshare RS232-485 Ethernet - Wifi/adjuntos",
|
|
||||||
"01-Documentation/Dispositivos - Manuales/Waveshare RS232-485 Ethernet - Wifi",
|
|
||||||
"01-Documentation/Dispositivos - Manuales/COM - Virtual COM com0com/adjuntos/Pasted image 20250523122236.png",
|
|
||||||
"01-Documentation/Dispositivos - Manuales/COM - Virtual COM com0com/adjuntos",
|
|
||||||
"03-Revised/93789 Sipa Italia - Tinny - HSCounters - Piattaforma/Divider/Untitled.canvas",
|
"03-Revised/93789 Sipa Italia - Tinny - HSCounters - Piattaforma/Divider/Untitled.canvas",
|
||||||
"04-InLavoro/9..... MASTER Transport/Standard Transport/FB500 Logic.canvas",
|
"04-InLavoro/9..... MASTER Transport/Standard Transport/FB500 Logic.canvas",
|
||||||
"04-InLavoro/HENKEL/93040 - HENKEL - BowlingGreen/TL22-L25/Synoptic Change/Q3.canvas",
|
"04-InLavoro/HENKEL/93040 - HENKEL - BowlingGreen/TL22-L25/Synoptic Change/Q3.canvas",
|
||||||
|
|
|
@ -0,0 +1,56 @@
|
||||||
|
|
||||||
|
[Difference between 2-wire, 3-wire, and 4-wire signal transmitter connections](https://www.electricalclassroom.com/signal-transmitter-connections-4-wire/)
|
||||||
|
|
||||||
|
4–20mA sensor transmitters are very common in industries to measure physical parameters such as pressure, temperature, flow, etc. Based on how they are connected to the process control and automation systems, they are classified into 2-wire, 3-wire, and 4-wire signal transmitters. This article will help you understand the underlying concepts and the difference between 2-wire, 3-wire, and 4-wire signal transmitter connections.
|
||||||
|
|
||||||
|
![[Pasted image 20250610121530.png]]
|
||||||
|
|
||||||
|
## Difference between 2-wire, 3-wire, and 4-wire signal transmitter connections
|
||||||
|
|
||||||
|
In order to understand the difference in connections, one should first know the components used in a signal transfer loop and their roles.
|
||||||
|
|
||||||
|
The below are basic elements of a current loop:
|
||||||
|
|
||||||
|
- **Power supply**: Typically a 24VDC power source is used to power the loop.
|
||||||
|
- **Receiver**: The receiver receives the transmitted signal. In most cases, it is the [analog input](https://www.electricalclassroom.com/digital-i-o-and-analog-i-o/) channel of a PLC.
|
||||||
|
- **Transmitter**: The transmitter transmits data from a sensor to the receiver.
|
||||||
|
- **Wires:** To interconnect the power supply, receiver, and transmitter.
|
||||||
|
|
||||||
|
### 2-Wire signal transmitter connection diagram
|
||||||
|
|
||||||
|
The connection diagram for a 2-wire current loop is shown below:
|
||||||
|
|
||||||
|
![[Pasted image 20250610121625.png]]
|
||||||
|
|
||||||
|
- A 2-wire 4-20mA signal transmission loop does not require an external power source.
|
||||||
|
- The analog input module should be of source type.
|
||||||
|
- A 2-wire transmitter connection uses only two wires for both power supply and signal transmission.
|
||||||
|
- It is the simplest and most cost-effective configuration.
|
||||||
|
- Typically, it relies on a constant current source to power the transmitter and transmit the signal. The current varies to represent the measured parameter.
|
||||||
|
- Because the same wires are used for power and signal, there can be a voltage drop along the wires, affecting the accuracy of the measurement.
|
||||||
|
- Suitable for applications where simplicity and cost are primary concerns, and where signal accuracy is not critical.
|
||||||
|
|
||||||
|
[Understand the concepts of a 4-20mA current Loop](https://www.electricalclassroom.com/4-20ma-current-loop-concept/)
|
||||||
|
|
||||||
|
### 3-Wire signal transmitter connection diagram
|
||||||
|
|
||||||
|
The connection diagram for a 3-wire current loop is shown below:
|
||||||
|
|
||||||
|
![[Pasted image 20250610121639.png]]
|
||||||
|
- A 3-wire transmitter uses three wires: two for power supply and one for signal transmission.
|
||||||
|
- It provides better signal accuracy than a 2-wire transmitter because a dedicated wire is used for the signal.
|
||||||
|
- The three-wire configuration helps mitigate the voltage drop issues encountered in 2-wire setups.
|
||||||
|
- Commonly used in applications that require higher accuracy and where cost is less of a concern.
|
||||||
|
|
||||||
|
### 4-Wire transmitter connection diagram
|
||||||
|
|
||||||
|
The connection diagram for a 4-wire current loop is shown below:
|
||||||
|
|
||||||
|
![[Pasted image 20250610121656.png]]
|
||||||
|
|
||||||
|
- A 4-wire transmitter uses four wires: two for power supply and two for signal transmission.
|
||||||
|
- This configuration offers the highest signal accuracy because there is complete separation between power and signal wires.
|
||||||
|
- It eliminates the voltage drop issue entirely, making it ideal for precise measurements.
|
||||||
|
- Often used in laboratory settings, scientific research, and industrial applications where accuracy is critical.
|
||||||
|
|
||||||
|
In summary, the choice between 2-wire, 3-wire, and 4-wire signal transmitter connections depends on the specific requirements of the application. 2-wire transmitters are the most cost-effective but may sacrifice some accuracy. 3-wire transmitters strike a balance between cost and accuracy, while 4-wire transmitters provide the highest accuracy but come at a higher cost. The selection depends on the trade-off between these factors and the precision required for the measurements in a given system.
|
After Width: | Height: | Size: 313 KiB |
After Width: | Height: | Size: 117 KiB |
After Width: | Height: | Size: 202 KiB |
After Width: | Height: | Size: 265 KiB |
|
@ -11,10 +11,18 @@ The quick steps to run SFC and DISM scans include the following:
|
||||||
|
|
||||||
**Step 3.** Type the command sfc / scannow and press enter.
|
**Step 3.** Type the command sfc / scannow and press enter.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sfc /scannow
|
||||||
|
```
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
**Step 4.** Wait until the SFC scan is complete.
|
**Step 4.** Wait until the SFC scan is complete.
|
||||||
|
|
||||||
**Step 5.** Now, type the command DISM /Online /Cleanup-Image /RestoreHealth and press enter.
|
**Step 5.** Now, type the command DISM /Online /Cleanup-Image /RestoreHealth and press enter.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
DISM /Online /Cleanup-Image /RestoreHealth
|
||||||
|
```
|
||||||
|
|
||||||
**Step 6.** Wait until the DISM scan is complete, then reboot your system to check if drag-and-drop is functioning properly.
|
**Step 6.** Wait until the DISM scan is complete, then reboot your system to check if drag-and-drop is functioning properly.
|
|
@ -0,0 +1,303 @@
|
||||||
|
# Reading a System Status List or Partial List with SFC 51 "RDSYSST"
|
||||||
|
|
||||||
|
Description
|
||||||
|
|
||||||
|
With system function SFC 51 "RDSYSST" (read system status), you read a system status list or a partial system status list.
|
||||||
|
|
||||||
|
You start the reading by assigning the value 1 to the input parameter REQ when SFC 51 is called. If the system status could be read immediately, the SFC returns the value 0 at the BUSY output parameter. If BUSY has the value 1, the read function is not yet completed.
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| --- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
|
| | Note<br><br>If you call SFC 51 "RDSYSST" in the diagnostic interrupt OB with the SSL-ID W#16#00B1 or W#16#00B2 or W#16#00B3 and access the module that initiated the diagnostic interrupt, the system status is read immediately.<br><br>With SFC51 "RDSYSST" only complete data records are transferred. |
|
||||||
|
|
||||||
|
System Resources
|
||||||
|
|
||||||
|
If you start several asynchronous read functions (the jobs with SSL_ID W#16#00B4 and W#16#4C91 and W#16#4092 and W#16#4292 and W#16#4692 and possibly W#16#00B1 and W#16#00B3) one after the other at brief intervals, the operating system ensures that all the read jobs are executed and that they do not interfere with each other. If the limits of the system resources are reached, this is indicated in RET_VAL. You can remedy this temporary error situation by repeating the job.
|
||||||
|
|
||||||
|
The maximum number of "simultaneously" active SFC 51 jobs depends on the CPU. You will find this information in /70/ and /101/.
|
||||||
|
|
||||||
|
| | | | | |
|
||||||
|
| -------------------------------------------------------------------------------------------------------- | ----------- | --------- | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
|
| Note<br><br>For S7-400 CPUs, a maximum of 432 bytes can be transferred to the target area by the SFC 51- | | | | |
|
||||||
|
| Parameter | Declaration | Data Type | Memory Area | Description |
|
||||||
|
| REQ | INPUT | BOOL | I, Q, M, D, L, <br>constant | REQ=1: Starts processing |
|
||||||
|
| SSL_ID | INPUT | WORD | I, Q, M, D, L, <br>constant | SSL-ID of the system status list or <br>partial list to be read. |
|
||||||
|
| INDEX | INPUT | WORD | I, Q, M, D, L, <br>constant | Type or number of an object in a <br>partial list. |
|
||||||
|
| RET_VAL | OUTPUT | INT | I, Q, M, D, L | If an error occurs while executing the <br>SFC, the RET_VAL parameter <br>contains an error code. |
|
||||||
|
| BUSY | OUTPUT | BOOL | I, Q, M, D, L | TRUE: Reading not yet completed. |
|
||||||
|
| SSL_HEADER | OUTPUT | STRUCT | D, L | See below. |
|
||||||
|
| DR | OUTPUT | ANY | I, Q, M, L, D | Destination area of the SSL list read <br>or the SSL partial list read:<br><br>If you have only read out the header information of an SSL list, <br>you must not evaluate DR but <br>only SSL_HEADER.<br><br>Otherwise, the product of <br>LENTHDR and N_DR indicates <br>how many bytes were entered in <br>DR. |
|
||||||
|
|
||||||
|
SSL_HEADER
|
||||||
|
|
||||||
|
The SSL_HEADER parameter is a structure defined as follows:
|
||||||
|
|
||||||
|
SSL_HEADER: STRUCT
|
||||||
|
LENTHDR: WORD
|
||||||
|
N_DR: WORD
|
||||||
|
END_STRUCT
|
||||||
|
|
||||||
|
LENTHDR is the length of a data record of the SSL list or the SSL partial list.
|
||||||
|
|
||||||
|
- If you have only read out the header information of an SSL list, N_DR contains the number of data records belonging to it.
|
||||||
|
|
||||||
|
- Otherwise, N_DR contains the number of data records transferred to the destination area.
|
||||||
|
|
||||||
|
|
||||||
|
Error Information
|
||||||
|
|
||||||
|
| | |
|
||||||
|
|---|---|
|
||||||
|
|Error Code <br>(W#16#...)|Description|
|
||||||
|
|0000|No error.|
|
||||||
|
|0081|Result field too short. (Nevertheless as many data records as possible are supplied. The <br>SSL header indicates this number.)|
|
||||||
|
|7000|First call with REQ=0: No data transfer active; BUSY has the value 0.|
|
||||||
|
|7001|First call with REQ=1: Data transfer started; BUSY has the value 1.|
|
||||||
|
|7002|Interim call (REQ irrelevant): Data transfer already active; BUSY has the value 1.|
|
||||||
|
|8081|Result field too short (not enough space for one data record).|
|
||||||
|
|8082|SSL_ID is wrong or is unknown in the CPU or SFC.|
|
||||||
|
|8083|INDEX wrong or not permitted.|
|
||||||
|
|8085|Due to a problem in the system, information is not currently available (for example, due <br>to a lack of resources).|
|
||||||
|
|8086|The data record cannot be read due to a system error (bus, modules, operating system).|
|
||||||
|
|8087|Data record cannot be read because the module does not exist or does not acknowledge.|
|
||||||
|
|8088|Data record cannot be read because the actual module identifier is different from the <br>expected module identifier.|
|
||||||
|
|8089|Data record cannot be read because the module is not capable of diagnostics or the data record is not supported.|
|
||||||
|
|80A2|DP protocol error (layer 2 error) (temporary error)|
|
||||||
|
|80A3|DP protocol error with user interface/user (temporary error)|
|
||||||
|
|80A4|Communication problem on communication bus (error occurs between the CPU and the <br>external DP interface module)|
|
||||||
|
|80C5|Distributed I/Os not available (temporary error).|
|
||||||
|
|80C6|Data record transfer stopped due to priority class abort (restart or background)|
|
||||||
|
|80D2|Data record cannot be read because the module is not capable of diagnostics.|
|
||||||
|
|8xyy|General error information, see [Evaluating Errors with the Output Parameter RET_VAL](RET_VAL.htm)|
|
||||||
|
|
||||||
|
SSL_IDs
|
||||||
|
|
||||||
|
| | |
|
||||||
|
|---|---|
|
||||||
|
||Note<br><br>For the partial lists that can be read out with SFC 51 "RDSYSST" refer to<br><br>- /72/ for the S7-300<br> <br>- The following table for the S7-400.|
|
||||||
|
|
||||||
|
| | | |
|
||||||
|
|---|---|---|
|
||||||
|
|SSL_ID (W#16#...)|Partial List|INDEX (W#16#...)|
|
||||||
|
||Module ID||
|
||||||
|
|[0111](SZL_ID_W_16_xy_11.htm)|One identification data record||
|
||||||
|
||Identification of the module|0001|
|
||||||
|
||Identification of the system expansion card|0004|
|
||||||
|
||Identification of the basic hardware|0006|
|
||||||
|
||Identification of the basic firmware|0007|
|
||||||
|
||CPU characteristics||
|
||||||
|
|[0012](SZL_ID_W_16_xy_12.htm)|All characteristics|Irrelevant|
|
||||||
|
|[0112](SZL_ID_W_16_xy_12.htm)|Characteristics of one group||
|
||||||
|
||MC7 processing unit|0000|
|
||||||
|
||Time system|0100|
|
||||||
|
||System behavior|0200|
|
||||||
|
||MC7 language description|0300|
|
||||||
|
||Availability of SFC 87 and SFC 88|0400|
|
||||||
|
|[0F12](SZL_ID_W_16_xy_12.htm)|Only SSL partial list header information|Irrelevant|
|
||||||
|
||User memory areas||
|
||||||
|
|[0113](SZL_ID_W_16_xy_13.htm)|One data record for the memory area specified||
|
||||||
|
||Work memory|0001|
|
||||||
|
||System areas||
|
||||||
|
|[0014](SZL_ID_W_16_xy_14.htm)|Data records of all system areas|Irrelevant|
|
||||||
|
|[0F14](SZL_ID_W_16_xy_14.htm)|Only SSL partial list header information|Irrelevant|
|
||||||
|
||Block types||
|
||||||
|
|[0015](SZL_ID_W_16_xy_15.htm)|Data records of all block types|Irrelevant|
|
||||||
|
||Identification of one component||
|
||||||
|
|[001C](SZL_ID_W_16_xy_1C.htm)|Identification of all components|Irrelevant|
|
||||||
|
|[011C](SZL_ID_W_16_xy_1C.htm)|Identification of one component||
|
||||||
|
||Name of the automation system|0001|
|
||||||
|
||Name of the module|0002|
|
||||||
|
||System ID of the module|0003|
|
||||||
|
||Copyright entry|0004|
|
||||||
|
||Serial number of the module|0005|
|
||||||
|
||Module type name|0007|
|
||||||
|
||Serial number of the memory card|0008|
|
||||||
|
||Manufacturer and profile of a CPU module|0009|
|
||||||
|
||Location designation of a module|000B|
|
||||||
|
||Serial number of sync module 1|000C|
|
||||||
|
||Serial number of sync module 2|000D|
|
||||||
|
||Serial number of the system expansion card|000E|
|
||||||
|
|[021C](SZL_ID_W_16_xy_1C.htm)|Identification of all components in a CPU of an H system|Rack no.|
|
||||||
|
|[031C](SZL_ID_W_16_xy_1C.htm)|Identification of one component in all redundant CPUs of an H system|Index|
|
||||||
|
|[0F1C](SZL_ID_W_16_xy_1C.htm)|Only SSL partial list header information|Irrelevant|
|
||||||
|
||Interrupt status||
|
||||||
|
|[0222](SZL_ID_W_16_xy22_Alarmstatus.htm)|Data record for indicated interrupt|OB number|
|
||||||
|
||Assignment of process image partitions and CPUs||
|
||||||
|
|[0025](SZL_ID_W_16_xy25.htm)|Assigning all process image partitions to OBs|Irrelevant|
|
||||||
|
|[0125](SZL_ID_W_16_xy25.htm)|Assignment of a process image partition to the corresponding OB|Process image partition number.|
|
||||||
|
|[0225](SZL_ID_W_16_xy25.htm)|Assignment of an OB to the corresponding process image partitions|OB number.|
|
||||||
|
|[0F25](SZL_ID_W_16_xy25.htm)|Only info on SSL partial list headers|Irrelevant|
|
||||||
|
||Communication status data||
|
||||||
|
|[0132](SZL_ID_W_16_xy_32.htm)|Status data for one communication unit||
|
||||||
|
||Diagnostics|0005|
|
||||||
|
||Time system|0008|
|
||||||
|
|[0232](SZL_ID_W_16_xy_32.htm)|Status data for one communication unit||
|
||||||
|
||CPU protection level and operator control settings|0004|
|
||||||
|
||H CPU group information||
|
||||||
|
|[0071](SZL_ID_W_16_xy_71.htm)|Information about the current state of the H system|Irrelevant|
|
||||||
|
|[0F71](SZL_ID_W_16_xy_71.htm)|Only SSL partial list header information|Irrelevant|
|
||||||
|
||Status of the module LEDs (cannot be read out from all CPUs, see /102/).||
|
||||||
|
|[0174](SZL_ID_W_16_xy_74.htm)|Status of an LED|LED ID|
|
||||||
|
||Switched DP slaves in the H system||
|
||||||
|
|[0C75](SZL_ID_W_16_xy_75.htm)|Communication status between the H system and a switched DP slave|Diagnostics address of the DP slave interface|
|
||||||
|
||DP Master system information||
|
||||||
|
|[0090](SZL_ID_W_16_xy_90.htm)|Information DP Master systems known to the CPU|0000|
|
||||||
|
|[0190](SZL_ID_W_16_xy_90.htm)|Information about a DP Master system|DP master system ID|
|
||||||
|
|[0F90](SZL_ID_W_16_xy_90.htm)|Only SSL partial list header information|0000|
|
||||||
|
||||
|
||||||
|
||Module status information (a maximum of 27 data records is supplied)||
|
||||||
|
|[0091](SZL_ID_W_16_xy_91.htm)|Status information of all modules / submodules inserted|Irrelevant|
|
||||||
|
|[0191](SZL_ID_W_16_xy_91.htm)|Module status information of all non-deactivated modules / racks with <br>incorrect type ID|Irrelevant|
|
||||||
|
|[0291](SZL_ID_W_16_xy_91.htm)|Module status information of all faulty and non-deactivated modules|Irrelevant|
|
||||||
|
|[0391](SZL_ID_W_16_xy_91.htm)|Module status information of all unobtainable modules|Irrelevant|
|
||||||
|
|[0591](SZL_ID_W_16_xy_91.htm)|Module status information of all submodules of the host <br>module|Irrelevant|
|
||||||
|
|[0991](SZL_ID_W_16_xy_91.htm)|Module status information of a DP master system|DP master <br>system ID|
|
||||||
|
|[0C91](SZL_ID_W_16_xy_91.htm)|Module status information of a module in a central <br>configuration or connected to an integrated DP <br>communications processor or on a PROFINET interface module (integrated or external)|Logical base address|
|
||||||
|
|[4C91](SZL_ID_W_16_xy_91.htm)|Module status information of a module connected to an <br>external DP communications processor|Logical base address|
|
||||||
|
|[0D91](SZL_ID_W_16_xy_91.htm)|Module status information of all modules in the rack / DP <br>station specified (DP or PROFINET)|Rack or DP master system ID and station number or station number and the last two positions of the PNIO subsystem ID|
|
||||||
|
|[0E91](SZL_ID_W_16_xy_91.htm)|Module status information of all assigned modules|Irrelevant|
|
||||||
|
|[0F91](SZL_ID_W_16_xy_91.htm)|Only SSL partial list header information|irrelevant|
|
||||||
|
||Rack/station status information||
|
||||||
|
|[0092](SZL_ID_W_16_xy_92.htm)|Expected status of the rack in the central configuration / <br>of the stations of a DP master system|0 / DP master system <br>ID|
|
||||||
|
|[4092](SZL_ID_W_16_xy_92.htm)|Expected status of the stations of a DP master system <br>connected to an external DP interface|DP master system ID|
|
||||||
|
|[0192](SZL_ID_W_16_xy_92.htm)|Activation status of the stations in a DP master system that is connected via an integrated DP interface|DP master system ID|
|
||||||
|
|[0292](SZL_ID_W_16_xy_92.htm)|Current status of the rack in the central configuration / of the <br>stations of a DP master system|0 / DP master system <br>ID|
|
||||||
|
|[4292](SZL_ID_W_16_xy_92.htm)|Current status of the stations in a DP master system that is connected via an external DP interface module.|DP master system <br>ID|
|
||||||
|
|[0392](SZL_ID_W_16_xy_92.htm)|Status of the backup batteries in a rack/module rack of a CPU after at least one battery has failed|0|
|
||||||
|
|[0492](SZL_ID_W_16_xy_92.htm)|Status of the overall battery backup status of all racks/module racks of a CPU|0|
|
||||||
|
|[0592](SZL_ID_W_16_xy_92.htm)|Status of the 24-V power supply to all racks/module racks of a CPU|0|
|
||||||
|
|[0692](SZL_ID_W_16_xy_92.htm)|Diagnostic status of the expansion racks in a central configuration / <br>of the stations of a DP master system connected via an <br>integrated DP interface module|0 / DP master system <br>ID|
|
||||||
|
|[4692](SZL_ID_W_16_xy_92.htm)|Diagnostic status of the stations of a DP master system connected <br>via an external DP interface module|DP master system ID|
|
||||||
|
||Rack /station status information||
|
||||||
|
|[0094](SZL_ID_W_16_0x94.htm)|Expected status of the rack in the central rack / stations of an IO controller system|0 / PNIO subsystem ID|
|
||||||
|
|[0194](SZL_ID_W_16_0x94.htm)|Activation status of an IO controller system that is configured and deactivated|PNIO subsystem ID|
|
||||||
|
|[0294](SZL_ID_W_16_0x94.htm)|Actual status of the rack in the central rack / stations of an IO controller system|0 / PNIO subsystem ID|
|
||||||
|
|[0694](SZL_ID_W_16_0x94.htm)|Diagnostic status of the expansion units in the central rack / stations of an IO controller system|0 / PNIO subsystem ID|
|
||||||
|
|[0794](SZL_ID_W_16_0x94.htm)|Maintenance status of the central rack / stations of an IO controller system|0 / PNIO subsystem ID|
|
||||||
|
|[0F94](SZL_ID_W_16_0x94.htm)|Only header information|-|
|
||||||
|
||Extended DP master system / PROFINET IO system information||
|
||||||
|
|[0195](SZL_ID_W_16_xy95.htm)|Extended information about a DP master system|DP master system ID|
|
||||||
|
|[0F95](SZL_ID_W_16_xy95.htm)|Only SSL partial list header information|0000|
|
||||||
|
||Module status information PROFINET IO and PROFIBUS DP||
|
||||||
|
|[0696](SZL_ID_W_16_xy96.htm)|Module status information of all submodules of a specified module (only with PROFINET IO on an integrated interface module)|Address with I/O ID|
|
||||||
|
|[0C96](SZL_ID_W_16_xy96.htm)|Module status information of a module / a submodule centrally or on an integrated PROFIBUS DP interface module or an a PROFINET interface module (integrated or external)|Start address with I/O ID|
|
||||||
|
||Tool changer information (PROFINET IO)||
|
||||||
|
|[009C](SZL_ID_W_16_xy9C.htm)|Information on all tool changers and their tools in a PROFINET IO system|PROFINET IO system ID|
|
||||||
|
|[019C](SZL_ID_W_16_xy9C.htm)|Information on all tool changers in a PROFINET IO system|PROFINET IO system ID|
|
||||||
|
|[029C](SZL_ID_W_16_xy9C.htm)|Information on one tool changer and its tools|Logical address of the tool changer|
|
||||||
|
|[039C](SZL_ID_W_16_xy9C.htm)|Information on a tool and its IO devices|Logical address of one of the IO devices of the tool|
|
||||||
|
|[0F9C](SZL_ID_W_16_xy9C.htm)|Only SSL partial list header information|irrelevant|
|
||||||
|
||Diagnostic buffer (a maximum of 21 data records is supplied)||
|
||||||
|
|[00A0](SZL_ID_W_16_xy_A0.htm)|All entries that can be supplied in the currently active <br>operating mode|Irrelevant|
|
||||||
|
|[01A0](SZL_ID_W_16_xy_A0.htm)|The most recent entries, the number is specified in the <br>index|Quantity|
|
||||||
|
|[0FA0](SZL_ID_W_16_xy_A0.htm)|Only SSL partial list header information|Irrelevant|
|
||||||
|
||Diagnostic data on modules||
|
||||||
|
|[00B1](SZL_ID_W_16_00B1.htm)|The first four diagnostic bytes of one module (data record 0)|Logical base address|
|
||||||
|
|[00B2](SZL_ID_W_16_00B2.htm)|All diagnostic data of one module (< 220 bytes, data record 1) (no DP module)|Rack, slot|
|
||||||
|
|[00B3](SZL_ID_W_16_00B3.htm)|All diagnostic data of one module (< 220 bytes, data record 1)|Logical base address|
|
||||||
|
|[00B4](SZL_ID_W_16_00B4.htm)|Diagnostic data of a DP slave|Configured diagnostic <br>address|
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
|
# Evaluating Errors with Output Parameter RET_VAL
|
||||||
|
|
||||||
|
Types of Error Information
|
||||||
|
|
||||||
|
A system function (SFC) executed in your user program indicates whether or not the CPU was able to execute the function of the SFC successfully.
|
||||||
|
You can obtain information about any errors that occurred in two ways:
|
||||||
|
|
||||||
|
- In the BR bit of the status word
|
||||||
|
|
||||||
|
- In the output parameter RET_VAL (return value)
|
||||||
|
|
||||||
|
|
||||||
|
| | |
|
||||||
|
|---|---|
|
||||||
|
||Note<br><br>Before evaluating the output parameters specific to an SFC, you should always follow the steps below:<br><br>- First, evaluate the BR bit of the status word.<br> <br>- Then check the output parameter RET_VAL.<br> <br><br>If the BR bit indicates that an error has occurred or if RET_VAL contains a general error code, you must not evaluate the SFC output parameter!|
|
||||||
|
|
||||||
|
Error Information in the Return Value
|
||||||
|
|
||||||
|
A system function (SFC) indicates that an error occurred during its execution by entering the value "0" in the binary result bit (BR) of the status word. Some system functions provide an additional error code at an output known as the return value (RET_VAL) output. If a general error is entered in the output parameter RET_VAL (see below for explanation), this is only indicated by the value "0" in the BR bit of the status word.
|
||||||
|
|
||||||
|
The return value is of the data type integer (INT). The relationship of the return value to the value "0" indicates whether or not an error occurred during execution of the function.
|
||||||
|
|
||||||
|
| | | | |
|
||||||
|
|---|---|---|---|
|
||||||
|
|CPU Execution of the SFC|BR|Return Value|Sign of the Integer|
|
||||||
|
|With error(s)|0|less than "0"|negative <br>(sign bit is "1")|
|
||||||
|
|Without error|1|greater than or <br>equal to "0"|positive <br>(sign bit is "0")|
|
||||||
|
|
||||||
|
Reactions to Error Information
|
||||||
|
|
||||||
|
There are two different types of error code in RET_VAL as follows:
|
||||||
|
|
||||||
|
- A general error code, that all system functions can output and
|
||||||
|
|
||||||
|
- A specific error code, that the system function can output and which relates to its specific function.
|
||||||
|
|
||||||
|
|
||||||
|
You can write your program so that it reacts to the errors that occur during execution of a system function. This way you prevent further errors occurring as a result of the first error.
|
||||||
|
|
||||||
|
General and Specific Error Information
|
||||||
|
|
||||||
|
The return value (RET_VAL) of a system function provides one of the two following types of error codes:
|
||||||
|
|
||||||
|
- A general error code, that relates to errors that can occur in any system function.
|
||||||
|
|
||||||
|
- A specific error code, that relates only to the particular system function.
|
||||||
|
|
||||||
|
|
||||||
|
Although the data type of the output parameter RET_VAL is integer (INT), the error codes for system functions are grouped according to hexadecimal values. If you want to examine a return value and compare the value with the error codes listed in this manual, then display the error code in hexadecimal format.
|
||||||
|
|
||||||
|
The figure below shows the structure of a system function error code in hexadecimal format.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
General Error Information
|
||||||
|
|
||||||
|
The general error code indicates errors that can occur in any system function. A general error code consists of the following two numbers:
|
||||||
|
|
||||||
|
- A parameter number from 1 to 111, where 1 indicates the first parameter, 2 indicates the second parameter of the SFC, etc.
|
||||||
|
|
||||||
|
- An event number from 0 to 127. The event number indicates that a synchronous error occurred.
|
||||||
|
|
||||||
|
|
||||||
|
The following table lists the codes for general errors and an explanation of each error.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
| | |
|
||||||
|
|---|---|
|
||||||
|
||Note<br><br>If a general error code was entered in RET_VAL, the following situations are possible:<br><br>- The action associated with the SFC may have been started or already completed.<br> <br>- A specific SFC error may have occurred when the action was performed. As a result of a general error that occurred later, the specific error could, however, no longer be indicated.|
|
||||||
|
|
||||||
|
Specific Error Information
|
||||||
|
|
||||||
|
Some system functions (SFCs) have a return value that provides a specific error code. This error code indicates that an error pertaining to a particular system function occurred during the execution of the function (see figure). A specific error code consists of the following two numbers:
|
||||||
|
|
||||||
|
- An error class from 0 to 7.
|
||||||
|
|
||||||
|
- An error number from 0 to 15.
|
||||||
|
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
General Error Codes
|
||||||
|
|
||||||
|
The following table explains the general error codes of a return value. The error code is shown in hexadecimal format. The letter x in each code number is simply a place holder and represents the number of the system function parameter that caused the error.
|
||||||
|
|
||||||
|
| | |
|
||||||
|
|---|---|
|
||||||
|
|Error Code (W#16#...)|Explanation|
|
||||||
|
|8x7F|Internal error<br><br>This error code indicates an internal error at parameter x.|
|
||||||
|
|8x01|Illegal syntax ID at an ANYparameter|
|
||||||
|
|8x22<br><br>8x23|Range length error when reading a parameter. <br>Range length error when writing a parameter. <br>This error code indicates that the parameter x is located either entirely or partly outside the range of an address or that the length of a bit range is not a multiple of 8 with an ANY parameter.|
|
||||||
|
|8x24<br><br>8x25|Range error when reading a parameter.<br><br>Range error when writing a parameter.<br><br>This error code indicates that the parameter x is located in a range that is illegal for the system function. Refer to the descriptions of the individual functions for information about the illegal ranges.|
|
||||||
|
|8x24 <br>8x25|Range error when reading a parameter. <br>Range error when writing a parameter. <br>This error code indicates that the parameter x is located in a range that is illegal for the system function. Refer to the descriptions of the individual functions for information about the illegal ranges.|
|
||||||
|
|8x26|The parameter contains a timer number that is too high. <br>This error code indicates that the timer specified in parameter x does not exist.|
|
||||||
|
|8x27|The parameter contains a counter number that is too high (counter number error). <br>This error code indicates that the counter specified in parameter x does not exist.|
|
||||||
|
|8x28 <br>8x29|Alignment error when reading a parameter. <br>Alignment error when writing a parameter. <br>This error code indicates that the reference to parameter x is a bit address that is not equal to 0.|
|
||||||
|
|8x30 <br>8x31|The parameter is located in a read-only global DB. <br>The parameter is located in a read-only instance DB. <br>This error code indicates that parameter x is located in a read-only data block. If the data block was opened by the system function itself, the system function always returns the value W#16#8x30.|
|
||||||
|
|8x32 <br>8x34 <br>8x35|The parameter contains a DB number that is too high (DB number error). <br>The parameter contains an FC number that is too high (FC number error). <br>The parameter contains an FB number that is too high (FB number error). <br>This error code indicates that parameter x contains a block number higher than the highest permitted number.|
|
||||||
|
|8x3A <br>8x3C <br>8x3E|The parameter contains the number of a DB that is not loaded. <br>The parameter contains the number of an FC that is not loaded. <br>The parameter contains the number of an FB that is not loaded.|
|
||||||
|
|8x42 <br> <br>8x43|An access error occurred while the system was attempting to read a parameter from the peripheral input area. <br>An access error occurred while the system was attempting to write a parameter to the peripheral output area.|
|
||||||
|
|8x44<br><br>8x45|Error in the nth (n > 1) read access after an error occurred.<br><br>Error in the nth (n > 1) write access after an error occurred.<br><br>This error code indicates that access to the required parameter is denied.|
|
|
@ -0,0 +1,39 @@
|
||||||
|
***
|
||||||
|
|
||||||
|
[Application](https://support.industry.siemens.com/cs/document/79168964/import-external-source-files-into-tia-portal-and-generate-blocks-from-them?dti=0&lc=en-IT)
|
||||||
|
|
||||||
|
How do you import blocks in a TIA Portal project that were created in other projects or with earlier versions of STEP 7?
|
||||||
|
|
||||||
|
**Instructions**
|
||||||
|
Data blocks and blocks that were created in the programming languages STL and SCL can also be imported and exported as sources.
|
||||||
|
|
||||||
|
In this video we will show you how to import a source created from STEP 7 V5.7 into TIA Portal and create a block from it.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
**Example 1: Import an external source into TIA Portal and generate a block from it.**
|
||||||
|
|
||||||
|
1. In the project tree, open the "Program blocks" folder and the =="External source files"== folder.
|
||||||
|
2. Click on the "Add new external file" function.
|
||||||
|
3. Navigate to folder where you have stored your source and select that source.
|
||||||
|
4. Click on "Open" to import the selected source into TIA Portal. The source is then saved in the "External source files" folder.
|
||||||
|
5. You then right-click the external source and from the context menu you select "Generate blocks from source".
|
||||||
|
6. You receive a message informing you that any existing blocks will be overwritten. Confirm with "OK". Now the block is compiled and stored in the "Program Blocks" folder.
|
||||||
|
|
||||||
|
The imported block is now available for further program processing.
|
||||||
|
|
||||||
|
**Example 2: Generate a source from a block and export it from TIA Portal.**
|
||||||
|
|
||||||
|
1. In the "Program Blocks" folder, right-click on the block and select "Generate source from blocks" from the context menu.
|
||||||
|
2. There are two menu commands available here:
|
||||||
|
- "Selected blocks only": With this command the marked blocks are generated into a source.
|
||||||
|
- "Including all dependent blocks": With this command all the dependent blocks are also generated into a source.
|
||||||
|
3. Select the folder to save your generated source and click "Save".
|
||||||
|
|
||||||
|
The generated source is now available for further projects with different TIA Portal versions.
|
||||||
|
|
||||||
|
**Further Information**
|
||||||
|
you will find in the TIA Portal manual, under [Basics of using external source files](https://support.industry.siemens.com/cs/ww/en/view/109773506/122059506315 "Entry id: 109773506").
|
||||||
|
|
||||||
|
**FAQ changes since last release**
|
||||||
|
The FAQ has been revised and the video has been added.
|
|
@ -34,3 +34,102 @@
|
||||||
| M34310 | 10.1.30.73 | DBS55-XXX Extend-A | | | DS402_Extend-A | | 2160 | 2160 | 176 | 352 |
|
| M34310 | 10.1.30.73 | DBS55-XXX Extend-A | | | DS402_Extend-A | | 2160 | 2160 | 176 | 352 |
|
||||||
| M34410 | 10.1.30.74 | DFC2xA V1.0 | | | Module I/O (08 words) | Module I/O (08 words) | 2208 | 2208 | 128 | 128 |
|
| M34410 | 10.1.30.74 | DFC2xA V1.0 | | | Module I/O (08 words) | Module I/O (08 words) | 2208 | 2208 | 128 | 128 |
|
||||||
| E44010-Encoder | 10.1.30.170 | Multiturn 30 Bit V2.x | | | EO Encoder Multiturn V2.x_1 | | 2228 | 2228 | 128 | 32 |
|
| E44010-Encoder | 10.1.30.170 | Multiturn 30 Bit V2.x | | | EO Encoder Multiturn V2.x_1 | | 2228 | 2228 | 128 | 32 |
|
||||||
|
|
||||||
|
### IO PLC
|
||||||
|
***
|
||||||
|
|
||||||
|
| Tag | IO | Description Italian |
|
||||||
|
| --------- | -------- | ----------------------------------------------------- |
|
||||||
|
| HL53010 | %A0.0 | COL. LUMINOSA MARCIAAUTOMATICA |
|
||||||
|
| HL53020 | %A0.1 | SEGNALAZIONE COL. LUMINOSA |
|
||||||
|
| HL53030 | %A0.2 | ALLARME COL. LUMINOSA |
|
||||||
|
| HA53040 | %A0.3 | COL. LUMINOSA SIRENA |
|
||||||
|
| SH50510 | %A0.5 | MARCIA SEGN. LUMINOSA |
|
||||||
|
| SH50560 | %A0.6 | SEGN. LUMINOSA RICHIESTAACCESSO |
|
||||||
|
| SH50560 | %A0.6 | RICHIESTA ACCESSO |
|
||||||
|
| SH50570 | %A0.7 | SEGN. RESET LUMINOSA ALLARMI |
|
||||||
|
| SH50570 | %A0.7 | RESET ALLARMI |
|
||||||
|
| KA53210 | %A2.0 | RELE EMERGENZA GENERALE RESET R |
|
||||||
|
| KA53220 | %A2.1 | CARTER DIVISORE RESET RELE |
|
||||||
|
| KA53230 | %A2.2 | TAVOLO SMISTATORE CARTER INGRESSO RESET RELE |
|
||||||
|
| KA53240 | %A2.3 | TAVOLO RELE CARTER SMISTATORE USCITA RESETF |
|
||||||
|
| KA53250 | %A2.4 | ABILTAZIONE DIVISORE GATEWAY USCITA E 1GRUPPO |
|
||||||
|
| KA53260 | %A2.5 | GATEWAY USCITA ABILTAZIONE DIVISORE E 2GRUPPO |
|
||||||
|
| KA53270 | %A2.6 | GATEWAYUSCITA ADIMSORE ABILITAZIONE 3GRUPPO |
|
||||||
|
| KA53280 | %A2.7 | DIVSORE GATEWAY USCITA E 4GRUPPO ABILITAZIONE |
|
||||||
|
| KA53310 | %A3.0 | GATEWAY INGRESSO DIVISORE ABILITAZIONE E 1 GRUPPO |
|
||||||
|
| KA53320 | %A3.1 | GATEWAY INGRESSO ABILITAZIONE DIVISORE E 2 GRUPPO |
|
||||||
|
| KA53330 | %A3.2 | GATEWAY INGRESSO DIVISORE ABILITAZIONE 3 GRUPPO |
|
||||||
|
| KA53340 | %A3.3 | DIVISORE GATEWAY INGRESSO ABILITAZIONE 4GRUPPO |
|
||||||
|
| KA53350 | %A3.4 | DIVISORE ABILTAZIONE LLUMINAZIONE |
|
||||||
|
| U30110EN | %A3.5 | ASSE ABILITAZIONE LONGITUDINALE DIVSORE |
|
||||||
|
| U30210EN | %A3.6 | TRASVERSALE ASSE ABILITAZIONE DIVISORE |
|
||||||
|
| M31910HOM | %A3.7 | TAVOLO AZZERAMENTO EINGRESSO SMISTATORE TRASLAZIONE |
|
||||||
|
| M34010HOM | %A4.0 | AZZERAMENTOTRASLAZIONE SMISTATORE USCITA TAVOLO |
|
||||||
|
| QF10410 | %E0.0 | LINEA ALIMENTAZIONE MOVIGEAR |
|
||||||
|
| SERIETDIV | %E0.1 | AZIONAMENT ALIMENTAZIONE DIVISORE |
|
||||||
|
| QF31110 | %E0.2 | ALIMENTAZIONE SPAZIATORE USCITA DIVISORE |
|
||||||
|
| QF27110 | %E0.3 | ALIMENT. REG. LARGHEZZA USCITA SPAZIATORE DIVSORF |
|
||||||
|
| QF31610 | %E0.4 | ALIMENTAZIONE TAVOLO SPAZIATORE INGRESSO |
|
||||||
|
| QF27130 | %E0.5 | TAVOLO ALIMENT.REG. LARGHEZZA INGRESSO SPAZIATORE |
|
||||||
|
| QF31910 | %E0.6 | ALIMENTAZIONE SMISTATORE TRASLAZIONE FINGRESSO TAVOLO |
|
||||||
|
| SERIETTAV | %E0.7 | TAVOLO ALIMENTAZIONE INVERTER |
|
||||||
|
| QF27170 | %E1.0 | ALIMENTAZIONE CINGHIOLI REG. DIVISORE |
|
||||||
|
| QF34010 | %E1.1 | SMISTATORE TRASLAZIONE ALIMENTAZIONE ATAVOLO USCITA |
|
||||||
|
| QF34110 | %E1.2 | TAVOLO ALIMENTAZIONE SPAZIATORE USCITA |
|
||||||
|
| QF27150 | %E1.3 | ALIMENT. REG. LARGHEZZA SPAZIATORE USCITA LTAVOLO |
|
||||||
|
| FA10910 | %E1.4 | 24VDC QUADRO ALIMENTAZIONE INTERNO |
|
||||||
|
| FA10970 | %E1.5 | ALIMENTAZIONE MICROMECCANICA MOTORIN |
|
||||||
|
| QF11030 | %E1.6 | ALIMENTAZIONE ILLUMINAZIONE DIVISORE |
|
||||||
|
| AIRQE | %E1.7 | CONDIZIONATORE ALLARME |
|
||||||
|
| K14010 | %E2.0 | EMERGENZA GENERALE RELEE |
|
||||||
|
| SB14110FK | %E2.1 | PB1 PULSANTE EM. PUI SANTIERA |
|
||||||
|
| SPARE2 | %E2.2 | PULSANTE SCORTA EM. |
|
||||||
|
| SPARE1 | %E2.3 | PULSANTE SCORTA EM. |
|
||||||
|
| SPARE3 | %E2.4 | PULSANTE SCORTA EM. |
|
||||||
|
| K15010 | %E3.0 | EMERGENZA CARTER DIVISORE RELE E |
|
||||||
|
| S20010 | %E3.1 | PORTA1DIVISORE MICRO ABILITAZIONE |
|
||||||
|
| S20010 | %E3.1 | DIVISORE MICRO 0PORTA1 |
|
||||||
|
| S20110 | %E3.2 | MICRO ABILITAZIONE PORTA 2 DIVISORE |
|
||||||
|
| S20110 | %E3.2 | MICRO PORTA 2 DIVISORE |
|
||||||
|
| S20210 | %E3.3 | MICRO ABILITAZIONE PORTA 3 DIVSORE |
|
||||||
|
| S20210 | %E3.3 | MICRO PORTA 3 DIVISORE |
|
||||||
|
| S20310 | %E3.4 | MICRO ABILITAZIONE PORTA 4 DIVISORE |
|
||||||
|
| S20310 | %E3.4 | DIVISORE MICRO PORTA 4 |
|
||||||
|
| S20410 | %E3.5 | MICRO ABILITAZIONE PORTA 5 DIVSORE |
|
||||||
|
| S20410 | %E3.5 | DIVISORE MICRO PORTA 5 |
|
||||||
|
| S20510 | %E3.6 | MICRO ABILITAZIONE PORTA 6 DIMSORE |
|
||||||
|
| S20510 | %E3.6 | MICRO PORTA 6 DIVISORE |
|
||||||
|
| S20610 | %E3.7 | MICRO ABILITAZIONE PORTA 7 DIVSORE |
|
||||||
|
| S20610 | %E3.7 | DIVISORE MICRO 0PORTA7 |
|
||||||
|
| S20710 | %E4.0 | MICRO ABILITAZIONE PORTA 8 DIVISORE |
|
||||||
|
| S20710 | %E4.0 | PORTA 8 MICRO DIVSORE |
|
||||||
|
| K16010 | %E4.2 | RELE CARTER SMISTATORE TAVOLO N INGRESSO MULTIMA |
|
||||||
|
| S20810 | %E4.3 | TAVOLO SMISTATORE INGRESSO MICRO PORTA 1 |
|
||||||
|
| S20910 | %E4.4 | SMISTATORE TAVOLO MICRO INGRESSO PORTA 2 |
|
||||||
|
| K17010 | %E4.5 | USCITA RELE CARTER SMISTATORE TAVOLO MULTIMA |
|
||||||
|
| S21010 | %E4.6 | TAVOLO SMISTATORE MICRO USCITA PORTA 1 |
|
||||||
|
| S21110 | %E4.7 | TAVOLO SMISTATORE MICRO PORTA 2 USCITA |
|
||||||
|
| SB50510 | %E5.0 | MARCIA |
|
||||||
|
| SB50520 | %E5.1 | ARRESTO |
|
||||||
|
| SA50530 | %E5.2 | MANUALE/AUTOMATICO |
|
||||||
|
| SA50540FF | %E5.3 | AVANTI MANUAL COMANDI |
|
||||||
|
| SA50540BW | %E5.4 | INDIETRO COMANDI MANUAL |
|
||||||
|
| B50610 | %E6.0 | CONTEGGIO DIVSORE FORMATO 1 |
|
||||||
|
| B50620 | %E6.1 | CONTEGGIO DIVISORE FORMATO 2 |
|
||||||
|
| B50630 | %E6.2 | TRASLAZIONE SICUREZZA DIVISORE ALTA |
|
||||||
|
| B50640 | %E6.3 | TRASLAZIONE BASSA DIVISORE SICURE77A |
|
||||||
|
| S31040 | %E1413.0 | Sensore Di Asse Longitudinale |
|
||||||
|
| S31050 | %E1413.1 | Sensore de Asse Transversale |
|
||||||
|
| S31051 | %E1413.2 | Sensore de Reg Spaziatore Uscita Divisore |
|
||||||
|
| B31060 | %E1413.3 | Sicurezza uscita spaziatore |
|
||||||
|
| B31440 | %E1577.0 | Minimo Polmone Ingresso Tavolo |
|
||||||
|
| B31540 | %E1597.0 | CONTEGGIO INGRESSO TAVOLO |
|
||||||
|
| B31550 | %E1597.1 | SICUREZA TRASLAZIONE SMISTATORE INGRESSO |
|
||||||
|
| S31550 | %E1597.2 | SENSORE DI HOMING SPAZIATORE ING. TAVOLO |
|
||||||
|
| S31560 | %E1597.3 | SENSORE DI HOMING TRASL SMISTATORE INGRESO |
|
||||||
|
| B34440 | %E2217.0 | SICUREZZA TRALAZIONE SMISTATORE USCITA |
|
||||||
|
| B34450 | %E2217.1 | CONTEGGIO USCITA TAVOLO |
|
||||||
|
| B34451 | %E2217.2 | INTASAMENTO USCITA TAVOLO |
|
||||||
|
| S34460 | %E2217.3 | SENSORE DI HOMING TRASL SMISTATORE USCITA |
|
||||||
|
| S34461 | %E2217.4 | SENSORE DE HOMING SPAZIATORE USCITA TAVOLO |
|
|
@ -0,0 +1,778 @@
|
||||||
|
|
||||||
|
## 1. System Architecture
|
||||||
|
|
||||||
|
### 1.1 Call Structure
|
||||||
|
```
|
||||||
|
OB1
|
||||||
|
├── FC_Ttop_Run
|
||||||
|
│ ├── FC_Table_Motor_M316() → "DB Motor M316"(FB_Motors_Manage)
|
||||||
|
│ ├── FC_Table_Motor_M317() → "DB Motor M317"(FB_Motors_Manage)
|
||||||
|
│ ├── FC_Table_Motor_M318() → "DB Motor M318"(FB_Motors_Manage)
|
||||||
|
│ ├── FC_Table_Motor_M319() → "DB Motor M319"(FB_Motors_Manage)
|
||||||
|
│ ├── FC_Table_Motor_M328() → "DB Motor M328"(FB_Motors_Manage) // Channel 1
|
||||||
|
│ ├── FC_Table_Motor_M329() → "DB Motor M329"(FB_Motors_Manage) // Channel 2
|
||||||
|
│ ├── FC_Table_Motor_M330() → "DB Motor M330"(FB_Motors_Manage) // Channel 3
|
||||||
|
│ ├── FC_Table_Motor_M331() → "DB Motor M331"(FB_Motors_Manage) // Channel 4
|
||||||
|
│ ├── FC_Table_Motor_M332() → "DB Motor M332"(FB_Motors_Manage) // Channel 5 (center)
|
||||||
|
│ ├── FC_Table_Motor_M333() → "DB Motor M333"(FB_Motors_Manage) // Channel 6
|
||||||
|
│ ├── FC_Table_Motor_M334() → "DB Motor M334"(FB_Motors_Manage) // Channel 7
|
||||||
|
│ ├── FC_Table_Motor_M335() → "DB Motor M335"(FB_Motors_Manage) // Channel 8
|
||||||
|
│ ├── FC_Table_Motor_M336() → "DB Motor M336"(FB_Motors_Manage) // Channel 9
|
||||||
|
│ ├── FC_Table_Motor_M340() → "DB Motor M340"(FB_Motors_Manage)
|
||||||
|
│ ├── FC_Table_Motor_M341() → "DB Motor M341"(FB_Motors_Manage)
|
||||||
|
│ ├── FC_Table_Motor_M342() → "DB Motor M342"(FB_Motors_Manage)
|
||||||
|
│ └── FC_Table_Motor_M343() → "DB Motor M343"(FB_Motors_Manage)
|
||||||
|
└── FC_Table_Devices
|
||||||
|
└── "DB Table"(FB_Table)
|
||||||
|
```
|
||||||
|
|
||||||
|
### 1.2 Component Mapping
|
||||||
|
- **M316, M317**: Input feeders (left, right)
|
||||||
|
- **M318**: Format change input feeders
|
||||||
|
- **M319**: Input selector
|
||||||
|
- **M328-M336**: Channels 1-9 (1=leftmost, 5=center/bypass, 9=rightmost)
|
||||||
|
- **M340**: Output selector
|
||||||
|
- **M341, M342**: Output feeders (left, right)
|
||||||
|
- **M343**: Format change output feeders
|
||||||
|
|
||||||
|
## 2. Data Structures
|
||||||
|
|
||||||
|
### 2.1 Format Data Structure
|
||||||
|
```pascal
|
||||||
|
TYPE T_Format_Data:
|
||||||
|
STRUCT
|
||||||
|
Format_Number : Int; // Format number (1 or 2)
|
||||||
|
Accumulation_Side : Int; // 1=Left (channels 1-4), 2=Right (channels 6-9)
|
||||||
|
Bottle_Dimension_mm : Real; // Bottle dimension in mm
|
||||||
|
Max_Speed_mm_min : Real; // Maximum speed in mm/min
|
||||||
|
Target_Channels : Array[1..4] of Int; // Channels to use for this format
|
||||||
|
END_STRUCT;
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2.2 External Exchange Database
|
||||||
|
```pascal
|
||||||
|
DB_ATable_Exchange:
|
||||||
|
STRUCT
|
||||||
|
// === INPUT SIGNALS (from external systems) ===
|
||||||
|
IN : STRUCT
|
||||||
|
// From Ring/Divider
|
||||||
|
Ring_Input_Product_Available : Bool; // Product available at input
|
||||||
|
Ring_Output_Request : Bool; // Ring requests product output
|
||||||
|
Ring_Empty_And_Auto : Bool; // Ring empty and divider in auto
|
||||||
|
Ring_Bypass_Speed_Request : Real; // Requested bypass speed
|
||||||
|
|
||||||
|
// Commands
|
||||||
|
Load_Request : Bool; // Request to start loading
|
||||||
|
Format_Change_Command : Bool; // Format change command from HMI
|
||||||
|
Unload_Enable : Bool; // Enable automatic unload after format change
|
||||||
|
|
||||||
|
// System status
|
||||||
|
System_Auto_Mode : Bool; // System in automatic mode
|
||||||
|
Emergency_Stop : Bool; // Emergency stop signal
|
||||||
|
END_STRUCT;
|
||||||
|
|
||||||
|
// === OUTPUT SIGNALS (to external systems) ===
|
||||||
|
OUT : STRUCT
|
||||||
|
// To Ring/Divider
|
||||||
|
Input_Request_Product : Bool; // Table ready and requesting input
|
||||||
|
Format_Change_Allowed : Bool; // Loading complete and ring empty
|
||||||
|
Output_Speed_Reference : Real; // Speed reference for output motor
|
||||||
|
Table_In_Bypass : Bool; // Table in bypass mode
|
||||||
|
|
||||||
|
// Status
|
||||||
|
Table_State : Int; // Current table state
|
||||||
|
Current_Format : Int; // Currently stored format
|
||||||
|
Table_Ready : Bool; // Table ready for operation
|
||||||
|
Loading_Complete : Bool; // Loading sequence complete
|
||||||
|
Unloading_Complete : Bool; // Unloading sequence complete
|
||||||
|
END_STRUCT;
|
||||||
|
END_STRUCT;
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2.3 Table States
|
||||||
|
```pascal
|
||||||
|
CONST
|
||||||
|
TABLE_STATE_STOPPED : Int := 0;
|
||||||
|
TABLE_STATE_LOADING : Int := 1;
|
||||||
|
TABLE_STATE_BYPASS : Int := 2;
|
||||||
|
TABLE_STATE_UNLOADING : Int := 3;
|
||||||
|
TABLE_STATE_ERROR : Int := 4;
|
||||||
|
END_CONST;
|
||||||
|
```
|
||||||
|
|
||||||
|
## 3. Main Function Block - FB_Table
|
||||||
|
|
||||||
|
### 3.1 Interface
|
||||||
|
```pascal
|
||||||
|
FB_Table:
|
||||||
|
VAR_INPUT
|
||||||
|
Enable : Bool; // Table enable
|
||||||
|
Target_Format : Int; // Target format (1 or 2)
|
||||||
|
Manual_Mode : Bool; // Manual operation mode
|
||||||
|
END_VAR
|
||||||
|
|
||||||
|
VAR_IN_OUT
|
||||||
|
// Motor structure references (pointers)
|
||||||
|
Motor_M316 : UDT_Motor_Manage; // Input feeder left
|
||||||
|
Motor_M317 : UDT_Motor_Manage; // Input feeder right
|
||||||
|
Motor_M318 : UDT_Motor_Manage; // Format change input
|
||||||
|
Motor_M319 : UDT_Motor_Manage; // Input selector
|
||||||
|
Motor_M328 : UDT_Motor_Manage; // Channel 1
|
||||||
|
Motor_M329 : UDT_Motor_Manage; // Channel 2
|
||||||
|
Motor_M330 : UDT_Motor_Manage; // Channel 3
|
||||||
|
Motor_M331 : UDT_Motor_Manage; // Channel 4
|
||||||
|
Motor_M332 : UDT_Motor_Manage; // Channel 5 (center)
|
||||||
|
Motor_M333 : UDT_Motor_Manage; // Channel 6
|
||||||
|
Motor_M334 : UDT_Motor_Manage; // Channel 7
|
||||||
|
Motor_M335 : UDT_Motor_Manage; // Channel 8
|
||||||
|
Motor_M336 : UDT_Motor_Manage; // Channel 9
|
||||||
|
Motor_M340 : UDT_Motor_Manage; // Output selector
|
||||||
|
Motor_M341 : UDT_Motor_Manage; // Output feeder left
|
||||||
|
Motor_M342 : UDT_Motor_Manage; // Output feeder right
|
||||||
|
Motor_M343 : UDT_Motor_Manage; // Format change output
|
||||||
|
|
||||||
|
Exchange : DB_ATable_Exchange; // External communication
|
||||||
|
END_VAR
|
||||||
|
|
||||||
|
VAR_OUTPUT
|
||||||
|
Table_State : Int; // Current state
|
||||||
|
Error_Code : Word; // Error code
|
||||||
|
Diagnostics : T_Table_Diagnostics; // Diagnostic information
|
||||||
|
END_VAR
|
||||||
|
|
||||||
|
VAR_STAT
|
||||||
|
// === COMMAND STRUCTURE (Read by FC motors) ===
|
||||||
|
Status : STRUCT
|
||||||
|
// Input feeders
|
||||||
|
Input_Feeders_Enable : Bool;
|
||||||
|
Input_Feeders_Speed_mm_min : Real;
|
||||||
|
Input_Feeders_Stop_After_Bottle : Bool;
|
||||||
|
|
||||||
|
// Output feeders
|
||||||
|
Output_Feeders_Enable : Bool;
|
||||||
|
Output_Feeders_Speed_mm_min : Real;
|
||||||
|
Output_Feeders_Stop_After_Bottle : Bool;
|
||||||
|
|
||||||
|
// Input selector
|
||||||
|
Input_Selector_Enable : Bool;
|
||||||
|
Input_Selector_Target_Channel : Int;
|
||||||
|
Input_Selector_Positioning_Mode : Bool;
|
||||||
|
|
||||||
|
// Output selector
|
||||||
|
Output_Selector_Enable : Bool;
|
||||||
|
Output_Selector_Target_Channel : Int;
|
||||||
|
Output_Selector_Positioning_Mode : Bool;
|
||||||
|
|
||||||
|
// Channels
|
||||||
|
Channel_Enable : Array[1..9] of Bool;
|
||||||
|
Channel_Speed_mm_min : Array[1..9] of Real;
|
||||||
|
|
||||||
|
// Format change motors
|
||||||
|
Format_Change_Input_Enable : Bool;
|
||||||
|
Format_Change_Input_Target_mm : Real;
|
||||||
|
Format_Change_Output_Enable : Bool;
|
||||||
|
Format_Change_Output_Target_mm : Real;
|
||||||
|
END_STRUCT;
|
||||||
|
|
||||||
|
// === INTERNAL LOGIC VARIABLES ===
|
||||||
|
Current_State : Int;
|
||||||
|
Previous_State : Int;
|
||||||
|
Loading_Step : Int;
|
||||||
|
Unloading_Step : Int;
|
||||||
|
Current_Loading_Channel : Int;
|
||||||
|
Current_Unloading_Channel : Int;
|
||||||
|
|
||||||
|
// Format configuration
|
||||||
|
Format_Data : Array[1..2] of T_Format_Data;
|
||||||
|
Current_Format_Stored : Int;
|
||||||
|
|
||||||
|
// Timers
|
||||||
|
State_Timer : TON;
|
||||||
|
Operation_Timeout : TON;
|
||||||
|
|
||||||
|
// Area management instances
|
||||||
|
Area_Input_Selector : FB_Area_Management;
|
||||||
|
Area_Channel : Array[1..9] of FB_Area_Management;
|
||||||
|
Area_Output_Selector : FB_Area_Management;
|
||||||
|
|
||||||
|
// Virtual encoders for position tracking
|
||||||
|
Encoder_M332 : FB_Virtual_Encoder; // Center channel for bypass tracking
|
||||||
|
Encoder_Input_Selector : FB_Virtual_Encoder;
|
||||||
|
Encoder_Output_Selector : FB_Virtual_Encoder;
|
||||||
|
END_VAR
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3.2 Main Logic (Pseudocode)
|
||||||
|
```pascal
|
||||||
|
// === STATE MACHINE MANAGEMENT ===
|
||||||
|
CASE Current_State OF
|
||||||
|
TABLE_STATE_STOPPED:
|
||||||
|
IF Enable AND Exchange.IN.System_Auto_Mode THEN
|
||||||
|
IF Exchange.IN.Load_Request THEN
|
||||||
|
Current_State := TABLE_STATE_LOADING;
|
||||||
|
Loading_Step := 1;
|
||||||
|
ELSIF Exchange.IN.Ring_Output_Request AND (Current_Format_Stored > 0) THEN
|
||||||
|
Current_State := TABLE_STATE_UNLOADING;
|
||||||
|
Unloading_Step := 1;
|
||||||
|
END_IF;
|
||||||
|
END_IF;
|
||||||
|
|
||||||
|
TABLE_STATE_LOADING:
|
||||||
|
Execute_Loading_Sequence();
|
||||||
|
IF Loading_Complete THEN
|
||||||
|
Current_State := TABLE_STATE_BYPASS;
|
||||||
|
Exchange.OUT.Loading_Complete := TRUE;
|
||||||
|
END_IF;
|
||||||
|
|
||||||
|
TABLE_STATE_BYPASS:
|
||||||
|
Execute_Bypass_Mode();
|
||||||
|
IF Exchange.IN.Format_Change_Command AND Exchange.IN.Ring_Empty_And_Auto THEN
|
||||||
|
Current_State := TABLE_STATE_UNLOADING;
|
||||||
|
Unloading_Step := 1;
|
||||||
|
END_IF;
|
||||||
|
|
||||||
|
TABLE_STATE_UNLOADING:
|
||||||
|
Execute_Unloading_Sequence();
|
||||||
|
IF Unloading_Complete THEN
|
||||||
|
Current_State := TABLE_STATE_BYPASS;
|
||||||
|
Exchange.OUT.Unloading_Complete := TRUE;
|
||||||
|
Current_Format_Stored := 0;
|
||||||
|
END_IF;
|
||||||
|
|
||||||
|
TABLE_STATE_ERROR:
|
||||||
|
Execute_Error_Recovery();
|
||||||
|
END_CASE;
|
||||||
|
|
||||||
|
// === UPDATE EXTERNAL SIGNALS ===
|
||||||
|
Exchange.OUT.Table_State := Current_State;
|
||||||
|
Exchange.OUT.Current_Format := Current_Format_Stored;
|
||||||
|
Exchange.OUT.Table_Ready := (Current_State <> TABLE_STATE_ERROR);
|
||||||
|
Exchange.OUT.Format_Change_Allowed := (Current_State = TABLE_STATE_BYPASS) AND
|
||||||
|
(Current_Format_Stored > 0) AND
|
||||||
|
Exchange.IN.Ring_Empty_And_Auto;
|
||||||
|
|
||||||
|
// === AREA MANAGEMENT UPDATES ===
|
||||||
|
FOR i := 1 TO 9 DO
|
||||||
|
Area_Channel[i](
|
||||||
|
Motor := Get_Channel_Motor_Reference(i),
|
||||||
|
Enable := Status.Channel_Enable[i],
|
||||||
|
Area_Length_mm := Get_Channel_Length(i),
|
||||||
|
Bottle_Length_mm := Format_Data[Target_Format].Bottle_Dimension_mm
|
||||||
|
);
|
||||||
|
END_FOR;
|
||||||
|
```
|
||||||
|
|
||||||
|
## 4. Loading Sequence Logic
|
||||||
|
|
||||||
|
### 4.1 Loading Sequence Steps
|
||||||
|
```pascal
|
||||||
|
PROCEDURE Execute_Loading_Sequence:
|
||||||
|
VAR
|
||||||
|
Target_Channels : Array[1..4] of Int;
|
||||||
|
Current_Channel : Int;
|
||||||
|
Channel_Index : Int;
|
||||||
|
BEGIN
|
||||||
|
// Get target channels for current format
|
||||||
|
Target_Channels := Get_Target_Channels_For_Format(Target_Format);
|
||||||
|
|
||||||
|
CASE Loading_Step OF
|
||||||
|
1: // Initialize loading
|
||||||
|
Current_Loading_Channel := Get_Outermost_Channel(Target_Format);
|
||||||
|
Channel_Index := 1;
|
||||||
|
Position_Input_Selector(Target_Channels[Channel_Index]);
|
||||||
|
Loading_Step := 2;
|
||||||
|
|
||||||
|
2: // Wait for selector positioning
|
||||||
|
IF Input_Selector_In_Position THEN
|
||||||
|
Enable_Channel_Motors_For_Loading(Current_Loading_Channel);
|
||||||
|
Enable_Input_Feeders();
|
||||||
|
Loading_Step := 3;
|
||||||
|
END_IF;
|
||||||
|
|
||||||
|
3: // Load current channel
|
||||||
|
IF Channel_Loading_Complete(Current_Loading_Channel) THEN
|
||||||
|
Disable_Input_Feeders();
|
||||||
|
Channel_Index := Channel_Index + 1;
|
||||||
|
IF Channel_Index <= 4 THEN
|
||||||
|
Current_Loading_Channel := Target_Channels[Channel_Index];
|
||||||
|
Position_Input_Selector(Current_Loading_Channel);
|
||||||
|
Loading_Step := 2;
|
||||||
|
ELSE
|
||||||
|
Loading_Step := 4; // All channels loaded
|
||||||
|
END_IF;
|
||||||
|
END_IF;
|
||||||
|
|
||||||
|
4: // Loading complete
|
||||||
|
Disable_All_Channel_Motors();
|
||||||
|
Position_Selectors_To_Bypass();
|
||||||
|
Current_Format_Stored := Target_Format;
|
||||||
|
Loading_Complete := TRUE;
|
||||||
|
END_CASE;
|
||||||
|
END_PROCEDURE;
|
||||||
|
|
||||||
|
FUNCTION Get_Target_Channels_For_Format(Format : Int) : Array[1..4] of Int:
|
||||||
|
BEGIN
|
||||||
|
IF Format_Data[Format].Accumulation_Side = 1 THEN // Left side
|
||||||
|
RETURN [1, 2, 3, 4]; // Load from outside to inside
|
||||||
|
ELSE // Right side
|
||||||
|
RETURN [9, 8, 7, 6]; // Load from outside to inside
|
||||||
|
END_IF;
|
||||||
|
END_FUNCTION;
|
||||||
|
|
||||||
|
FUNCTION Get_Outermost_Channel(Format : Int) : Int:
|
||||||
|
BEGIN
|
||||||
|
IF Format_Data[Format].Accumulation_Side = 1 THEN
|
||||||
|
RETURN 1; // Leftmost channel
|
||||||
|
ELSE
|
||||||
|
RETURN 9; // Rightmost channel
|
||||||
|
END_IF;
|
||||||
|
END_FUNCTION;
|
||||||
|
|
||||||
|
PROCEDURE Enable_Channel_Motors_For_Loading(Target_Channel : Int):
|
||||||
|
BEGIN
|
||||||
|
// Enable all channels from center to target channel
|
||||||
|
FOR i := 5 TO Target_Channel DO // or FROM Target_Channel TO 5
|
||||||
|
Status.Channel_Enable[i] := TRUE;
|
||||||
|
Status.Channel_Speed_mm_min[i] := Format_Data[Target_Format].Max_Speed_mm_min;
|
||||||
|
END_FOR;
|
||||||
|
END_PROCEDURE;
|
||||||
|
```
|
||||||
|
|
||||||
|
## 5. Unloading Sequence Logic
|
||||||
|
|
||||||
|
### 5.1 Unloading Sequence Steps
|
||||||
|
```pascal
|
||||||
|
PROCEDURE Execute_Unloading_Sequence:
|
||||||
|
VAR
|
||||||
|
Stored_Channels : Array[1..4] of Int;
|
||||||
|
Current_Channel : Int;
|
||||||
|
Channel_Index : Int;
|
||||||
|
BEGIN
|
||||||
|
// Get channels where current format is stored
|
||||||
|
Stored_Channels := Get_Target_Channels_For_Format(Current_Format_Stored);
|
||||||
|
|
||||||
|
CASE Unloading_Step OF
|
||||||
|
1: // Initialize unloading - start from innermost channel
|
||||||
|
Channel_Index := 4; // Start from innermost
|
||||||
|
Current_Unloading_Channel := Stored_Channels[Channel_Index];
|
||||||
|
Position_Output_Selector(Current_Unloading_Channel);
|
||||||
|
Unloading_Step := 2;
|
||||||
|
|
||||||
|
2: // Wait for selector positioning
|
||||||
|
IF Output_Selector_In_Position THEN
|
||||||
|
Enable_Channel_Motors_For_Unloading(Current_Unloading_Channel);
|
||||||
|
Enable_Output_Feeders();
|
||||||
|
Unloading_Step := 3;
|
||||||
|
END_IF;
|
||||||
|
|
||||||
|
3: // Unload current channel
|
||||||
|
IF Channel_Unloading_Complete(Current_Unloading_Channel) THEN
|
||||||
|
Disable_Output_Feeders();
|
||||||
|
Channel_Index := Channel_Index - 1;
|
||||||
|
IF Channel_Index >= 1 THEN
|
||||||
|
Current_Unloading_Channel := Stored_Channels[Channel_Index];
|
||||||
|
Position_Output_Selector(Current_Unloading_Channel);
|
||||||
|
Unloading_Step := 2;
|
||||||
|
ELSE
|
||||||
|
Unloading_Step := 4; // All channels unloaded
|
||||||
|
END_IF;
|
||||||
|
END_IF;
|
||||||
|
|
||||||
|
4: // Unloading complete
|
||||||
|
Disable_All_Channel_Motors();
|
||||||
|
Position_Selectors_To_Bypass();
|
||||||
|
Unloading_Complete := TRUE;
|
||||||
|
END_CASE;
|
||||||
|
END_PROCEDURE;
|
||||||
|
|
||||||
|
PROCEDURE Enable_Channel_Motors_For_Unloading(Target_Channel : Int):
|
||||||
|
BEGIN
|
||||||
|
// Enable all channels from target channel to center
|
||||||
|
FOR i := Target_Channel TO 5 DO // or FROM 5 TO Target_Channel
|
||||||
|
Status.Channel_Enable[i] := TRUE;
|
||||||
|
Status.Channel_Speed_mm_min[i] := Format_Data[Current_Format_Stored].Max_Speed_mm_min;
|
||||||
|
END_FOR;
|
||||||
|
END_PROCEDURE;
|
||||||
|
```
|
||||||
|
|
||||||
|
## 6. Bypass Mode Logic
|
||||||
|
|
||||||
|
### 6.1 Bypass Operation
|
||||||
|
```pascal
|
||||||
|
PROCEDURE Execute_Bypass_Mode:
|
||||||
|
BEGIN
|
||||||
|
// Enable only center channel for bypass
|
||||||
|
Status.Channel_Enable[5] := TRUE;
|
||||||
|
Status.Channel_Speed_mm_min[5] := Exchange.IN.Ring_Bypass_Speed_Request;
|
||||||
|
|
||||||
|
// Disable all other channels
|
||||||
|
FOR i := 1 TO 9 DO
|
||||||
|
IF i <> 5 THEN
|
||||||
|
Status.Channel_Enable[i] := FALSE;
|
||||||
|
END_IF;
|
||||||
|
END_FOR;
|
||||||
|
|
||||||
|
// Position selectors to bypass (channel 5)
|
||||||
|
Status.Input_Selector_Target_Channel := 5;
|
||||||
|
Status.Output_Selector_Target_Channel := 5;
|
||||||
|
Status.Input_Selector_Enable := TRUE;
|
||||||
|
Status.Output_Selector_Enable := TRUE;
|
||||||
|
|
||||||
|
// Update external signals
|
||||||
|
Exchange.OUT.Table_In_Bypass := TRUE;
|
||||||
|
Exchange.OUT.Output_Speed_Reference := Exchange.IN.Ring_Bypass_Speed_Request;
|
||||||
|
Exchange.OUT.Input_Request_Product := Exchange.IN.Ring_Input_Product_Available;
|
||||||
|
END_PROCEDURE;
|
||||||
|
```
|
||||||
|
|
||||||
|
## 7. Auxiliary Function Blocks
|
||||||
|
|
||||||
|
### 7.1 FB_Virtual_Encoder
|
||||||
|
```pascal
|
||||||
|
FB_Virtual_Encoder:
|
||||||
|
VAR_IN_OUT
|
||||||
|
Motor : UDT_Motor_Manage; // Motor structure reference
|
||||||
|
END_VAR
|
||||||
|
|
||||||
|
VAR_INPUT
|
||||||
|
Enable : Bool; // Enable calculation
|
||||||
|
Ratio_Hz_to_mm_min : Real; // Conversion factor Hz to mm/min
|
||||||
|
Reset_Position : Bool; // Reset total position
|
||||||
|
END_VAR
|
||||||
|
|
||||||
|
VAR_OUTPUT
|
||||||
|
Displacement_mm : Real; // Displacement since last call
|
||||||
|
Current_Speed_mm_min : Real; // Current speed in mm/min
|
||||||
|
Total_Distance_mm : Real; // Total accumulated distance
|
||||||
|
Motor_Running : Bool; // Motor running status
|
||||||
|
END_VAR
|
||||||
|
|
||||||
|
VAR_STAT
|
||||||
|
Last_Frequency_Hz : Real;
|
||||||
|
Last_Scan_Time : Time;
|
||||||
|
Position_Accumulated : Real;
|
||||||
|
END_VAR
|
||||||
|
|
||||||
|
// Pseudocode:
|
||||||
|
BEGIN
|
||||||
|
IF Enable THEN
|
||||||
|
Current_Frequency := Read_Motor_Frequency(Motor);
|
||||||
|
Current_Time := Get_System_Time();
|
||||||
|
|
||||||
|
IF First_Scan THEN
|
||||||
|
Last_Frequency_Hz := Current_Frequency;
|
||||||
|
Last_Scan_Time := Current_Time;
|
||||||
|
ELSE
|
||||||
|
Time_Delta := Current_Time - Last_Scan_Time;
|
||||||
|
Avg_Frequency := (Current_Frequency + Last_Frequency_Hz) / 2;
|
||||||
|
Speed_mm_min := Avg_Frequency * Ratio_Hz_to_mm_min;
|
||||||
|
Displacement_mm := Speed_mm_min * Time_Delta_In_Minutes;
|
||||||
|
|
||||||
|
IF NOT Reset_Position THEN
|
||||||
|
Total_Distance_mm := Total_Distance_mm + Displacement_mm;
|
||||||
|
ELSE
|
||||||
|
Total_Distance_mm := 0;
|
||||||
|
END_IF;
|
||||||
|
|
||||||
|
Last_Frequency_Hz := Current_Frequency;
|
||||||
|
Last_Scan_Time := Current_Time;
|
||||||
|
END_IF;
|
||||||
|
|
||||||
|
Current_Speed_mm_min := Current_Frequency * Ratio_Hz_to_mm_min;
|
||||||
|
Motor_Running := Motor.STATUS_RUN;
|
||||||
|
ELSE
|
||||||
|
Displacement_mm := 0;
|
||||||
|
Current_Speed_mm_min := 0;
|
||||||
|
END_IF;
|
||||||
|
END_FUNCTION_BLOCK;
|
||||||
|
```
|
||||||
|
|
||||||
|
### 7.2 FB_Area_Management
|
||||||
|
```pascal
|
||||||
|
FB_Area_Management:
|
||||||
|
VAR_IN_OUT
|
||||||
|
Motor : UDT_Motor_Manage; // Motor of this area
|
||||||
|
END_VAR
|
||||||
|
|
||||||
|
VAR_INPUT
|
||||||
|
Enable : Bool; // Area enable
|
||||||
|
Area_Length_mm : Real; // Total area length
|
||||||
|
Bottle_Length_mm : Real; // Bottle dimension
|
||||||
|
Photocell_Pulse : Bool; // Entry photocell pulse
|
||||||
|
Reset_Bottles : Bool; // Reset bottle tracking
|
||||||
|
END_VAR
|
||||||
|
|
||||||
|
VAR_OUTPUT
|
||||||
|
First_Bottle_Position : Real; // Position of first bottle
|
||||||
|
Last_Bottle_Position : Real; // Position of last bottle
|
||||||
|
Area_Empty : Bool; // Area completely empty
|
||||||
|
Bottles_In_Initial_Zone : Bool; // Bottles in initial zone
|
||||||
|
Bottles_In_Final_Zone : Bool; // Bottles in final zone
|
||||||
|
Bottle_Count : Int; // Number of bottles in area
|
||||||
|
END_VAR
|
||||||
|
|
||||||
|
VAR_STAT
|
||||||
|
Virtual_Encoder : FB_Virtual_Encoder;
|
||||||
|
Bottle_Positions : Array[1..50] of Real; // Track up to 50 bottles
|
||||||
|
Active_Bottles : Int;
|
||||||
|
Photocell_Pulse_Edge : R_TRIG;
|
||||||
|
END_VAR
|
||||||
|
|
||||||
|
// Pseudocode:
|
||||||
|
BEGIN
|
||||||
|
Virtual_Encoder(
|
||||||
|
Motor := Motor,
|
||||||
|
Enable := Enable,
|
||||||
|
Ratio_Hz_to_mm_min := Calculate_Area_Ratio()
|
||||||
|
);
|
||||||
|
|
||||||
|
// Detect new bottle entry
|
||||||
|
Photocell_Pulse_Edge(CLK := Photocell_Pulse);
|
||||||
|
IF Photocell_Pulse_Edge.Q THEN
|
||||||
|
Add_New_Bottle_To_Tracking();
|
||||||
|
END_IF;
|
||||||
|
|
||||||
|
// Update all bottle positions
|
||||||
|
FOR i := 1 TO Active_Bottles DO
|
||||||
|
Bottle_Positions[i] := Bottle_Positions[i] - Virtual_Encoder.Displacement_mm;
|
||||||
|
|
||||||
|
// Remove bottles that have exited the area
|
||||||
|
IF Bottle_Positions[i] <= 0 THEN
|
||||||
|
Remove_Bottle_From_Tracking(i);
|
||||||
|
END_IF;
|
||||||
|
END_FOR;
|
||||||
|
|
||||||
|
// Calculate outputs
|
||||||
|
IF Active_Bottles = 0 THEN
|
||||||
|
Area_Empty := TRUE;
|
||||||
|
First_Bottle_Position := 0;
|
||||||
|
Last_Bottle_Position := 0;
|
||||||
|
ELSE
|
||||||
|
Area_Empty := FALSE;
|
||||||
|
First_Bottle_Position := Find_Minimum_Position();
|
||||||
|
Last_Bottle_Position := Find_Maximum_Position();
|
||||||
|
END_IF;
|
||||||
|
|
||||||
|
Bottles_In_Initial_Zone := Check_Bottles_In_Zone(Area_Length_mm * 0.8, Area_Length_mm);
|
||||||
|
Bottles_In_Final_Zone := Check_Bottles_In_Zone(0, Area_Length_mm * 0.2);
|
||||||
|
Bottle_Count := Active_Bottles;
|
||||||
|
END_FUNCTION_BLOCK;
|
||||||
|
```
|
||||||
|
|
||||||
|
## 8. Motor-Specific Function Examples
|
||||||
|
|
||||||
|
### 8.1 FC_Table_Motor_M316 (Input Feeder Left)
|
||||||
|
```pascal
|
||||||
|
FC_Table_Motor_M316:
|
||||||
|
VAR_IN_OUT
|
||||||
|
Motor : UDT_Motor_Manage;
|
||||||
|
Table_Status : T_Table_Status_Commands; // Reference to FB_Table.Status
|
||||||
|
END_VAR
|
||||||
|
|
||||||
|
// Pseudocode:
|
||||||
|
BEGIN
|
||||||
|
// === MOTOR CONFIGURATION ===
|
||||||
|
Motor.CFG_VFD := TRUE;
|
||||||
|
Motor.CFG_PN := TRUE;
|
||||||
|
Motor.CFG_Inverter_Type := Inverter_Type_MINIMOTOR;
|
||||||
|
Motor.CFG_Min_Speed_Hz := 10;
|
||||||
|
Motor.CFG_Max_Speed_Hz := 500;
|
||||||
|
|
||||||
|
// === READ COMMANDS FROM TABLE LOGIC ===
|
||||||
|
Motor.REQ_EN_Run := Table_Status.Input_Feeders_Enable;
|
||||||
|
|
||||||
|
IF Table_Status.Input_Feeders_Enable THEN
|
||||||
|
Motor.REQ_Speed_Fix_01 := TRUE;
|
||||||
|
Motor.OUT_VFD_REQ_Speed_User := Convert_mm_min_to_User_Units(Table_Status.Input_Feeders_Speed_mm_min);
|
||||||
|
|
||||||
|
// Feeder-specific logic: synchronized operation with M317
|
||||||
|
Check_Synchronization_With_M317();
|
||||||
|
|
||||||
|
// Stop after bottle detection if requested
|
||||||
|
IF Table_Status.Input_Feeders_Stop_After_Bottle THEN
|
||||||
|
Implement_Stop_After_Bottle_Logic();
|
||||||
|
END_IF;
|
||||||
|
ELSE
|
||||||
|
Motor.REQ_Speed_Fix_01 := FALSE;
|
||||||
|
END_IF;
|
||||||
|
|
||||||
|
// === CALL MOTOR MANAGEMENT FB ===
|
||||||
|
FB_Motors_Manage(Motor);
|
||||||
|
END_FUNCTION;
|
||||||
|
```
|
||||||
|
|
||||||
|
### 8.2 FC_Table_Motor_M319 (Input Selector)
|
||||||
|
```pascal
|
||||||
|
FC_Table_Motor_M319:
|
||||||
|
VAR_IN_OUT
|
||||||
|
Motor : UDT_Motor_Manage;
|
||||||
|
Table_Status : T_Table_Status_Commands;
|
||||||
|
END_VAR
|
||||||
|
|
||||||
|
// Pseudocode:
|
||||||
|
BEGIN
|
||||||
|
// === MOTOR CONFIGURATION ===
|
||||||
|
Motor.CFG_VFD := TRUE;
|
||||||
|
Motor.CFG_PN := TRUE;
|
||||||
|
Motor.CFG_Inverter_Type := Inverter_Type_MINIMOTOR;
|
||||||
|
|
||||||
|
// === POSITIONING MODE SETUP ===
|
||||||
|
IF Table_Status.Input_Selector_Positioning_Mode THEN
|
||||||
|
Setup_Positioning_Mode();
|
||||||
|
Target_Position := Get_Position_For_Channel(Table_Status.Input_Selector_Target_Channel);
|
||||||
|
Motor.REQ_Target_Position := Target_Position;
|
||||||
|
Motor.REQ_Positioning_Enable := Table_Status.Input_Selector_Enable;
|
||||||
|
ELSE
|
||||||
|
Setup_Velocity_Mode();
|
||||||
|
Motor.REQ_EN_Run := Table_Status.Input_Selector_Enable;
|
||||||
|
END_IF;
|
||||||
|
|
||||||
|
// === CALL MOTOR MANAGEMENT FB ===
|
||||||
|
FB_Motors_Manage(Motor);
|
||||||
|
END_FUNCTION;
|
||||||
|
```
|
||||||
|
|
||||||
|
### 8.3 FC_Table_Motor_M332 (Center Channel - Bypass)
|
||||||
|
```pascal
|
||||||
|
FC_Table_Motor_M332:
|
||||||
|
VAR_IN_OUT
|
||||||
|
Motor : UDT_Motor_Manage;
|
||||||
|
Table_Status : T_Table_Status_Commands;
|
||||||
|
END_VAR
|
||||||
|
|
||||||
|
// Pseudocode:
|
||||||
|
BEGIN
|
||||||
|
// === MOTOR CONFIGURATION ===
|
||||||
|
Motor.CFG_VFD := TRUE;
|
||||||
|
Motor.CFG_PN := TRUE;
|
||||||
|
Motor.CFG_Inverter_Type := Inverter_Type_G120C_SIEMENS;
|
||||||
|
|
||||||
|
// === READ COMMANDS FROM TABLE LOGIC ===
|
||||||
|
Motor.REQ_EN_Run := Table_Status.Channel_Enable[5]; // Channel 5 = center
|
||||||
|
|
||||||
|
IF Table_Status.Channel_Enable[5] THEN
|
||||||
|
Motor.REQ_Speed_Fix_01 := TRUE;
|
||||||
|
Motor.OUT_VFD_REQ_Speed_User := Convert_mm_min_to_User_Units(Table_Status.Channel_Speed_mm_min[5]);
|
||||||
|
ELSE
|
||||||
|
Motor.REQ_Speed_Fix_01 := FALSE;
|
||||||
|
END_IF;
|
||||||
|
|
||||||
|
// === CALL MOTOR MANAGEMENT FB ===
|
||||||
|
FB_Motors_Manage(Motor);
|
||||||
|
END_FUNCTION;
|
||||||
|
```
|
||||||
|
|
||||||
|
## 9. Error Handling
|
||||||
|
|
||||||
|
### 9.1 Basic Error Detection
|
||||||
|
```pascal
|
||||||
|
PROCEDURE Check_Basic_Errors:
|
||||||
|
BEGIN
|
||||||
|
Error_Code := 0;
|
||||||
|
|
||||||
|
// Check motor inverter errors
|
||||||
|
IF Motor_M316.Alarm_02 OR Motor_M317.Alarm_02 THEN
|
||||||
|
Error_Code := Error_Code OR 16#0001; // Input feeders inverter error
|
||||||
|
END_IF;
|
||||||
|
|
||||||
|
IF Motor_M341.Alarm_02 OR Motor_M342.Alarm_02 THEN
|
||||||
|
Error_Code := Error_Code OR 16#0002; // Output feeders inverter error
|
||||||
|
END_IF;
|
||||||
|
|
||||||
|
// Check selector positioning errors
|
||||||
|
IF Motor_M319.Alarm_02 THEN
|
||||||
|
Error_Code := Error_Code OR 16#0004; // Input selector error
|
||||||
|
END_IF;
|
||||||
|
|
||||||
|
IF Motor_M340.Alarm_02 THEN
|
||||||
|
Error_Code := Error_Code OR 16#0008; // Output selector error
|
||||||
|
END_IF;
|
||||||
|
|
||||||
|
// Check channel motor errors
|
||||||
|
FOR i := 1 TO 9 DO
|
||||||
|
IF Get_Channel_Motor_Alarm(i) THEN
|
||||||
|
Error_Code := Error_Code OR (16#0010 SHL i); // Channel motor error
|
||||||
|
END_IF;
|
||||||
|
END_FOR;
|
||||||
|
|
||||||
|
// Transition to error state if errors detected
|
||||||
|
IF Error_Code <> 0 THEN
|
||||||
|
Current_State := TABLE_STATE_ERROR;
|
||||||
|
END_IF;
|
||||||
|
END_PROCEDURE;
|
||||||
|
```
|
||||||
|
|
||||||
|
## 10. Configuration and Initialization
|
||||||
|
|
||||||
|
### 10.1 Format Configuration Example
|
||||||
|
```pascal
|
||||||
|
PROCEDURE Initialize_Format_Data:
|
||||||
|
BEGIN
|
||||||
|
// Format 1 - Left side accumulation
|
||||||
|
Format_Data[1].Format_Number := 1;
|
||||||
|
Format_Data[1].Accumulation_Side := 1; // Left side
|
||||||
|
Format_Data[1].Bottle_Dimension_mm := 85.0;
|
||||||
|
Format_Data[1].Max_Speed_mm_min := 12000.0;
|
||||||
|
Format_Data[1].Target_Channels := [1, 2, 3, 4];
|
||||||
|
|
||||||
|
// Format 2 - Right side accumulation
|
||||||
|
Format_Data[2].Format_Number := 2;
|
||||||
|
Format_Data[2].Accumulation_Side := 2; // Right side
|
||||||
|
Format_Data[2].Bottle_Dimension_mm := 65.0;
|
||||||
|
Format_Data[2].Max_Speed_mm_min := 15000.0;
|
||||||
|
Format_Data[2].Target_Channels := [9, 8, 7, 6];
|
||||||
|
END_PROCEDURE;
|
||||||
|
```
|
||||||
|
|
||||||
|
### 10.2 Area Configuration
|
||||||
|
```pascal
|
||||||
|
PROCEDURE Initialize_Area_Management:
|
||||||
|
BEGIN
|
||||||
|
// Configure each area with its specific dimensions
|
||||||
|
Area_Input_Selector.Area_Length_mm := 500.0;
|
||||||
|
Area_Output_Selector.Area_Length_mm := 500.0;
|
||||||
|
|
||||||
|
FOR i := 1 TO 9 DO
|
||||||
|
Area_Channel[i].Area_Length_mm := Get_Channel_Length(i);
|
||||||
|
END_FOR;
|
||||||
|
END_PROCEDURE;
|
||||||
|
```
|
||||||
|
|
||||||
|
## 11. Integration Points
|
||||||
|
|
||||||
|
### 11.1 FC_Table_Devices Integration
|
||||||
|
```pascal
|
||||||
|
FC_Table_Devices:
|
||||||
|
BEGIN
|
||||||
|
// Call Table FB with all motor references and exchange data
|
||||||
|
"DB Table"(
|
||||||
|
Enable := System_Enable,
|
||||||
|
Target_Format := HMI_Selected_Format,
|
||||||
|
Manual_Mode := System_Manual_Mode,
|
||||||
|
|
||||||
|
Motor_M316 := "DB Motor M316".Manage,
|
||||||
|
Motor_M317 := "DB Motor M317".Manage,
|
||||||
|
Motor_M318 := "DB Motor M318".Manage,
|
||||||
|
Motor_M319 := "DB Motor M319".Manage,
|
||||||
|
Motor_M328 := "DB Motor M328".Manage,
|
||||||
|
Motor_M329 := "DB Motor M329".Manage,
|
||||||
|
Motor_M330 := "DB Motor M330".Manage,
|
||||||
|
Motor_M331 := "DB Motor M331".Manage,
|
||||||
|
Motor_M332 := "DB Motor M332".Manage,
|
||||||
|
Motor_M333 := "DB Motor M333".Manage,
|
||||||
|
Motor_M334 := "DB Motor M334".Manage,
|
||||||
|
Motor_M335 := "DB Motor M335".Manage,
|
||||||
|
Motor_M336 := "DB Motor M336".Manage,
|
||||||
|
Motor_M340 := "DB Motor M340".Manage,
|
||||||
|
Motor_M341 := "DB Motor M341".Manage,
|
||||||
|
Motor_M342 := "DB Motor M342".Manage,
|
||||||
|
Motor_M343 := "DB Motor M343".Manage,
|
||||||
|
|
||||||
|
Exchange := "DB ATable Exchange"
|
||||||
|
);
|
||||||
|
|
||||||
|
// Additional device coordination logic if needed
|
||||||
|
END_FUNCTION;
|
||||||
|
```
|
||||||
|
|
||||||
|
This specification provides a complete framework for implementing the table accumulation system while maintaining consistency with the existing motor management framework. The design allows for clear separation of concerns, easy debugging, and flexible implementation of motor-specific behaviors.
|
|
@ -1,72 +1,70 @@
|
||||||
***
|
***
|
||||||
|
|
||||||
= 139 = 139 = 139 = 170
|
### IP network: 10.1.30.0/20
|
||||||
|
|
||||||
### IP network: 10.1.30.0/20
|
| Device | Tag | Funtion | IP | Device | Mask | DB Motor | DB Minimotor | Page | description | | |
|
||||||
|
| ------------ | ------ | ----------------------------------- | :-: | ------ | ---- | :------: | :----------: | ---- | -------------------------- | ----------- | --------------------------- |
|
||||||
| | | | IP | Mask | Page | | | | | |
|
| PLC | | CPU 1514SP T-2 PN | 11 | | /12 | | | 405 | 6ES7 514-2VN03-0AB0 | | |
|
||||||
| ------------ | ------ | ----------------------------------- | :-: | ---- | ---- | -------------------------- | ----------- | ---------- | ---------- | --------------------------- |
|
| HMI | | | 10 | | /12 | | | | | | |
|
||||||
| PLC | | CPU 1514SP T-2 PN | 11 | /12 | 405 | 6ES7 514-2VN03-0AB0 | | | | |
|
| | | | | | | | | | | | |
|
||||||
| HMI | | | 10 | /12 | | | | | | |
|
| Divider | E44010 | Encoder Divider | 170 | 170 | /12 | | | 440 | | | |
|
||||||
| | | | | | | | | | | |
|
| Divider | U30110 | Axis-X | 31 | 31 | | | | 301 | LinMot C1250-MI-XC-0S-000 | Isochronous | |
|
||||||
| Divider | E44010 | Encoder Divider | 170 | /12 | 440 | | | | | |
|
| Divider | U30210 | Axis-Y | 32 | 32 | | | | 302 | LinMot C1250-MI-XC-0S-000 | Isochronous | |
|
||||||
| Divider | U30110 | Axis-X | 31 | | 301 | LinMot C1250-MI-XC-0S-000 | Isochronous | E100..E119 | A100..A119 | |
|
| Divider | U30310 | Timing Belt DX 1 | 33 | 33 | | 322 | | 303 | Mitsubishi MR-J4-60TM4-PNT | | |
|
||||||
| Divider | U30210 | Axis-Y | 32 | | 302 | LinMot C1250-MI-XC-0S-000 | Isochronous | E120..E139 | A120..A139 | |
|
| Divider | U30410 | Timing Belt DX 2 | 34 | 34 | | 323 | | 304 | Mitsubishi MR-J4-60TM4-PNT | | |
|
||||||
| Divider | U30310 | Timing Belt DX 1 | 33 | | 303 | Mitsubishi MR-J4-60TM4-PNT | | E256.. | | |
|
| Divider | U30510 | Timing Belt SX 1 | 35 | 35 | | 324 | | 305 | Mitsubishi MR-J4-60TM4-PNT | | |
|
||||||
| Divider | U30410 | Timing Belt DX 2 | 34 | | 304 | Mitsubishi MR-J4-60TM4-PNT | | | | |
|
| Divider | U30610 | Timing Belt SX 2 | 36 | 36 | | 325 | | 306 | Mitsubishi MR-J4-60TM4-PNT | | |
|
||||||
| Divider | U30510 | Timing Belt SX 1 | 35 | | 305 | Mitsubishi MR-J4-60TM4-PNT | | | | |
|
| Divider | M30710 | Dosser Format | 37 | 37 | | 326 | 710-810 | 307 | Minimotor | | |
|
||||||
| Divider | U30610 | Timing Belt SX 2 | 36 | | 306 | Mitsubishi MR-J4-60TM4-PNT | | | | |
|
| Divider | M31010 | Transport Inside | 40 | 40 | | 327 | | 310 | SEW MGFAS-2 | | S31040,S31050,S31051,B31060 |
|
||||||
| Divider | M30710 | Dosser Format | 37 | | 307 | Minimotor | | | | |
|
| Divider | M31110 | Combiner 1 DX | 41 | 41 | | 328 | 711-811 | 311 | Minimotor | | |
|
||||||
| Divider | M31010 | Transport Inside | 40 | | 310 | SEW MGFAS-2 | | | | S31040,S31050,S31051,B31060 |
|
| Divider | M31210 | Combiner 2 SX | 42 | 42 | | 329 | 712-812 | 312 | Minimotor | | |
|
||||||
| Divider | M31110 | Combiner 1 DX | 41 | | 311 | Minimotor | | | | |
|
| Divider | M31310 | Format Change Outfeed | 43 | 43 | | 330 | 713-813 | 313 | Minimotor | | |
|
||||||
| Divider | M31210 | Combiner 2 SX | 42 | | 312 | Minimotor | | | | |
|
| Divider/Ring | M31410 | Transport Outfeed | 44 | 44 | | 331 | | 314 | SEW MGFAS-2 | | B31440 |
|
||||||
| Divider | M31310 | Format Change Outfeed | 43 | | 313 | Minimotor | | | | |
|
| | | | | | | | | | | | |
|
||||||
| Divider/Ring | M31410 | Transport Outfeed | 44 | | 314 | SEW MGFAS-2 | | | | B31440 |
|
| | | | | | | | | | | | |
|
||||||
| | | | | | | | | | | |
|
| Table | M31510 | Infeed | 45 | 45 | | 301 | | 315 | SEW MGFAS-2 | | B31540,B31550,S31550,S31560 |
|
||||||
| | | | | | | | | | | |
|
| Table | M31610 | Dosser SX Infeed | 46 | 46 | | 302 | 702-802 | 316 | Minimotor | | |
|
||||||
| Table | M31510 | Infeed | 45 | | 315 | SEW MGFAS-2 | | | | B31540,B31550,S31550,S31560 |
|
| Table | M31710 | Dosser DX Infeed | 47 | 47 | | 303 | 703-803 | 317 | Minimotor | | |
|
||||||
| Table | M31610 | Dosser SX Infeed | 46 | | 316 | Minimotor | | | | |
|
| Table | M31810 | Dosser Format Infeed | 48 | 48 | | 304 | 704-804 | 318 | Minimotor | | |
|
||||||
| Table | M31610 | Dosser DX Infeed | 47 | | 317 | Minimotor | | | | |
|
| Table | M31910 | Channel Selection Infeed | 49 | 49 | | 305 | 705-805 | 319 | Minimotor | | |
|
||||||
| Table | M31810 | Dosser Format Infeed | 48 | | 318 | Minimotor | | | | |
|
| Table | U32810 | Canale 1 | 58 | 58 | | 306 | | 328 | Siemens G120C | | |
|
||||||
| Table | M31910 | Channel Selection Infeed | 49 | | 319 | Minimotor | | | | |
|
| Table | U32910 | Canale 2 | 59 | 59 | | 307 | | 329 | Siemens G120C | | |
|
||||||
| Table | U32810 | Canale 1 | 58 | | 328 | Siemens G120C | | | | |
|
| Table | U33010 | Canale 3 | 60 | 60 | | 308 | | 330 | Siemens G120C | | |
|
||||||
| Table | U32910 | Canale 2 | 59 | | 329 | Siemens G120C | | | | |
|
| Table | U33110 | Canale 4 | 61 | 61 | | 309 | | 331 | Siemens G120C | | |
|
||||||
| Table | U33010 | Canale 3 | 60 | | 330 | Siemens G120C | | | | |
|
| Table | U33210 | Canale 5 | 62 | 62 | | 310 | | 332 | Siemens G120C | | |
|
||||||
| Table | U33110 | Canale 4 | 61 | | 331 | Siemens G120C | | | | |
|
| Table | U33310 | Canale 6 | 63 | 63 | | 311 | | 333 | Siemens G120C | | |
|
||||||
| Table | U33210 | Canale 5 | 62 | | 332 | Siemens G120C | | | | |
|
| Table | U33410 | Canale 7 | 64 | 64 | | 312 | | 334 | Siemens G120C | | |
|
||||||
| Table | U33310 | Canale 6 | 63 | | 333 | Siemens G120C | | | | |
|
| Table | U33510 | Canale 8 | 65 | 65 | | 313 | | 335 | Siemens G120C | | |
|
||||||
| Table | U33410 | Canale 7 | 64 | | 334 | Siemens G120C | | | | |
|
| Table | U33610 | Canale 9 | 66 | 66 | | 314 | | 336 | Siemens G120C | | |
|
||||||
| Table | U33510 | Canale 8 | 65 | | 335 | Siemens G120C | | | | |
|
| Table | M34010 | Channel Selection Outfeed | 70 | 70 | | 315 | 706-806 | 340 | Minimotor | | |
|
||||||
| Table | U33610 | Canale 9 | 66 | | 336 | Siemens G120C | | | | |
|
| Table | M34110 | Motore 1 Dosser Outfeed | 71 | 71 | | 316 | 707-807 | 341 | Minimotor | | |
|
||||||
| Table | M34010 | Channel Selection Outfeed | 70 | | 340 | Minimotor | | | | |
|
| Table | M34210 | Motore 1 Dosser Outfeed | 72 | 72 | | 317 | 708-808 | 342 | Minimotor | | |
|
||||||
| Table | M34110 | Motore 1 Dosser Outfeed | 71 | | 341 | Minimotor | | | | |
|
| Table | M34310 | Regolazione Largheza Dosser Outfeed | 73 | 73 | | 318 | 709-809 | 343 | Minimotor | | |
|
||||||
| Table | M34210 | Motore 1 Dosser Outfeed | 72 | | 342 | Minimotor | | | | |
|
| Table/Ring | M34410 | Transport outfeed | 74 | 74 | | 319 | | 344 | SEW MGFAS-2 | | |
|
||||||
| Table | M34310 | Regolazione Largheza Dosser Outfeed | 73 | | 343 | Minimotor | | | | |
|
| | | | | | | | | | | | |
|
||||||
| Table/Ring | M34410 | Transport outfeed | 74 | | 344 | SEW MGFAS-2 | | | | |
|
| Ring | E44520 | Gateway Outfeed Divider | 175 | 175 | | | | 445 | | | |
|
||||||
| | | | | | | | | | | |
|
| Ring | E44620 | Gateway Infeed Divider | 176 | 176 | | | | 446 | | | |
|
||||||
| Ring | E44520 | Gateway Outfeed Divider | 175 | | 445 | | | | | |
|
|
||||||
| Ring | E44620 | Gateway Infeed Divider | 176 | | 446 | | | | | |
|
|
||||||
|
|
||||||
|
|
||||||
|
### Photocells / Sensors - Connected to Motors
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Photocells / Sensors
|
|
||||||
***
|
***
|
||||||
|
|
||||||
| | Tag | Description | Connected to |
|
| Tag | IO | Description | Motor |
|
||||||
| --- | ------ | ----------------------------------------- | ------------ |
|
| ------ | ------- | ------------------------------------------ | ------ |
|
||||||
| | S31040 | Sensore Di Asse Longitudinale | M31010 |
|
| S31040 | E1413.0 | Sensore Di Asse Longitudinale | M31010 |
|
||||||
| | S31050 | Sensore de Asse Transversale | M31010 |
|
| S31050 | E1413.1 | Sensore de Asse Transversale | M31010 |
|
||||||
| | S31051 | Sensore de Reg Spaziatore Uscita Divisore | M31010 |
|
| S31051 | E1413.2 | Sensore de Reg Spaziatore Uscita Divisore | M31010 |
|
||||||
| | B31060 | Sicurezza uscita spaziatore | M31010 |
|
| B31060 | E1413.3 | Sicurezza uscita spaziatore | M31010 |
|
||||||
| | B31440 | Minimo Polmone Ingresso Tavolor | M31410 |
|
| B31440 | E1577.0 | Minimo Polmone Ingresso Tavolo | M31410 |
|
||||||
| | | | |
|
| B31540 | E1597.0 | CONTEGGIO INGRESSO TAVOLO | M31510 |
|
||||||
| | B31540 | Conteggio Ingresso Tavolo | M31510 |
|
| B31550 | E1597.1 | SICUREZA TRASLAZIONE SMISTATORE INGRESSO | M31510 |
|
||||||
| | B31550 | Sicurezza Tranlazione Ingresso | M31510 |
|
| S31550 | E1597.2 | SENSORE DI HOMING SPAZIATORE ING. TAVOLO | M31510 |
|
||||||
| | S31550 | Homing Dosser Infeed Table | M31510 |
|
| S31560 | E1597.3 | SENSORE DI HOMING TRASL SMISTATORE INGRESO | M31510 |
|
||||||
| | S31560 | Sensore de homing Trasl. Dosser Infeed | M31510 |
|
| B34440 | E2217.0 | SICUREZZA TRALAZIONE SMISTATORE USCITA | M34410 |
|
||||||
|
| B34450 | E2217.1 | CONTEGGIO USCITA TAVOLO | M34410 |
|
||||||
|
| B34451 | E2217.2 | INTASAMENTO USCITA TAVOLO | M34410 |
|
||||||
|
| S34460 | E2217.3 | SENSORE DI HOMING TRASL SMISTATORE USCITA | M34410 |
|
||||||
|
| S34461 | E2217.4 | SENSORE DE HOMING SPAZIATORE USCITA TAVOLO | M34410 |
|
||||||
|
|
||||||
|
|
||||||
### Emergency circuit
|
### Emergency circuit
|
||||||
|
@ -107,7 +105,24 @@
|
||||||
| Table | M33660 | Canale 9 | | 336 | .75kw | 1.9A |
|
| Table | M33660 | Canale 9 | | 336 | .75kw | 1.9A |
|
||||||
| | | | | | | |
|
| | | | | | | |
|
||||||
|
|
||||||
|
| Motor | Homing | Descripcion |
|
||||||
|
| ----- | ------ | --------------- |
|
||||||
|
| M307 | S34470 | Divider Infeed |
|
||||||
|
| M313 | S31051 | Divider Outfeed |
|
||||||
|
| M318 | S31550 | Table Infeed |
|
||||||
|
| M319 | S31560 | Selector In |
|
||||||
|
| M340 | S34460 | Selector Out |
|
||||||
|
| M343 | S34461 | Table Outfeed |
|
||||||
|
|
||||||
|
Questi sono 6: DBSE-S1 -> Force 8
|
||||||
|
![[Pasted image 20250616114855.png|800]]
|
||||||
|
|
||||||
|
|
||||||
|
Questi sono 1: FC6 -> Force 4
|
||||||
|
![[Pasted image 20250616115153.png|800]]
|
||||||
|
![[Pasted image 20250616120243.png]]
|
||||||
|
|
||||||
|
|
||||||
|
Tilter: gsdml-v2.32-minimotor-dbs55-20190315.xml
|
||||||
|
FC de ALPLA: gsdml-v2.32-minimotor-dbs55-20190315.xml
|
||||||
|
|
||||||
|
|
|
@ -94,7 +94,7 @@ S31051 ^eoUd3YsC
|
||||||
|
|
||||||
S34461 ^heswS0PC
|
S34461 ^heswS0PC
|
||||||
|
|
||||||
S34460 ^bwPm9Dz6
|
S31560 ^bwPm9Dz6
|
||||||
|
|
||||||
## Embedded Files
|
## Embedded Files
|
||||||
cc2e866f5ab74b824891b9e6e5d79ed0c73485aa: [[Layout-Model.png]]
|
cc2e866f5ab74b824891b9e6e5d79ed0c73485aa: [[Layout-Model.png]]
|
||||||
|
@ -102,340 +102,344 @@ cc2e866f5ab74b824891b9e6e5d79ed0c73485aa: [[Layout-Model.png]]
|
||||||
%%
|
%%
|
||||||
## Drawing
|
## Drawing
|
||||||
```compressed-json
|
```compressed-json
|
||||||
N4KAkARALgngDgUwgLgAQQQDwMYEMA2AlgCYBOuA7hADTgQBuCpAzoQPYB2KqATLZMzYBXUtiRoIACyhQ4zZAHoFAc0JRJQgEYA6bGwC2CgF7N6hbEcK4OCtptbErHALRY8RMpWdx8Q1TdIEfARcZgRmBShcZQUebQBObR4aOiCEfQQOKGZuAG1wMFAwYogSbghiHiMoCgAhACtMFOLIWERywn1opH4SprRneIBGIaSAVl7IGG5nMfiADm0ANh4J
|
N4KAkARALgngDgUwgLgAQQQDwMYEMA2AlgCYBOuA7hADTgQBuCpAzoQPYB2KqATLZMzYBXUtiRoIACyhQ4zZAHoFAc0JRJQgEYA6bGwC2CgF7N6hbEcK4OCtptbErHALRY8RMpWdx8Q1TdIEfARcZgRmBShcZQUebQBGOJ4aOiCEfQQOKGZuAG1wMFAwYogSbghiHiMoCgAhACtMFOLIWERywn1opH4SprRnAE54+O0eAFZeyBhuZ3HBgA5tADYJ
|
||||||
|
|
||||||
gsgKEnVuIfieAAZJqQRCZWkd/fnD9YhrZWDua5aIZihSNgBrBABhNnw2UjlN7WZhwXCBLLNEqaXDYD7Kd5CDjEX7/QESYEcUHgzJQKGQABmhHw+AAyrAHhJJLCNIF8S83p8EAB1LaSHZHV7vL7kmCU9CCDz0xFnDjhHJoIZHNhg7BqaaS/ZPEqI5Fi5gS1AcIQkzkIBDEbjDeYAdgAzEdGCx2Fw0Ga+DcraxOAA5Thibg8IZKngmpXxE1HIRwYi4
|
qYgKEnVueMGeAAZ1yQRCZWkd/YXDgshrZWDua5aIZihSNgBrBABhNnw2UjlN7WZhwXCBLLNEqaXDYD7Kd5CDjEX7/QESYEcUHgzJQKGQABmhHw+AAyrAHhJJLCNIF8S83p8EAB1LaSHbrV7vL7kmCU9CCDz0xFnDjhHJoeLrNhg7BqGaS/ZPEqI5Fi5gS1AcIQkzkIBDEbjDBYAdgAzOtGCx2Fw0Ga+DcGExWJwAHKcMTcHjxJU8E1KwYm9ZCODE
|
||||||
|
|
||||||
KAGnYmgAs8X2YzNlzGQx48yOhGYABE0uHDWgCQQwkcEcI4ABJYia3IAXSOmmEyIAosEMllKzWbkQOB9uNrdR22HCI2g3kIEEcicFy+VsNgeAh5kslgSxrhNNHNPMeFH5sNNPEEEsEGNiCb98R9thzduV7h6cx3OJUPkWmApetX+t289CMisOVcPs9IEuQGRTmgvb4JyURQEImoQIgyI/so9LYO8cA9jq+AFAAvr0RQlGUEjxPo9CaB8DYAGIAKoA
|
XBQA07E0AFkG+3GZsu40SC3WhGYABE0hHDWgCQQwusEcI4ABJYia3IAXXWmmEyIAosEMllKzXHUQOB9uNrdR22HDI2g3kIEOsicFy+VsNgeAgFstlgTxrhNDHNAseNGFsNNIMEMsEONiCb98R9thzduV7h6cx3OJUPkWmApTdXzd289CMisOVcPs9IEuQGRTmgvb4JyURQEImoQIgyI/so9LYO8cA9jq+AFAAvr0RQlGUEiDPo9CaB8DYAGIAKoA
|
||||||
|
|
||||||
IIADIAPK4IQuwAFoEqSTAmvSbSPrcpDvFQRz9KgzhRjwcT7Es+xmksUbiWa3pyUcCq8Fu2jyUMczmma8RzF6UZHJsxDbIqiwpvEmljDG+xRnMFo3JIJxnHiaDKpAdz8u5DLcj8fwAuUADECAyUMin0jCcLFkiKL+ei6CYtiEJ4uOxJkhSfGCmUUG+ayJnsmgDrPFyTK8vyLx/NlNwipI6qat5MqwvKFzedFZYVnkX4lMBuCgbmWqYWmv4ibcyRHK
|
IIADIAPK4IQuwAFoEqSTAmvSbSPhA4LvFQ6z9KgzjRjwcT7Ms+xmss0biWaPpyesCq8Fu2jyfE8zmmagzzN60brJsxDbIqSw8DumnjLG+zRvMFqOscpznGgyq3Bw9yPm5DLcj8fwAuUADECAyfEin0jCcLFkiKL+ei6CYtiEJ4uOxJkhSfGCmUUG+ayJnsmgDrPFyTK8vyLx/NljoipI6qat5MqwvKFzedFZYVnkX4lMBuCgbmWqYWmv4ifxyTrK
|
||||||
|
|
||||||
qxB1RhfbFfq/VaUq+wmmM8y6ZaTDOraqAmqmjobTabocB6aBjEsSY7jwZ1ppm2ZDqg+b4IWNx1jFTbpLibZBiGYZ3UM0axvGYXyQcRydt24GDf2g79Q9T3PHAbA/tkeTvs+L7ucU+zvl1xRoy0zjeuZO5WTZdnxA5L5gFjL5Vp+oOhFAvz6Poag5gACojkIQzNJSvOCUC1D+jgcMh3OQTcmTEILiEi9N4vFVEpBQDRAlsBQTm4P1EFHJLKuCRr/X
|
qxB1RhfbFfq/VaUq+wmuMCy6Zazo2twJqpo6Vouhw7ocJ6aDjMsyY7jwZ1ppm2ZDqg+b4IWjp1jFTbpLibbBqG4Z3fEMZxgmYXyQc6ydt24GDf2g79Q9T3PHAbA/tkeTvs+L5ucU+zvl1xRoy0zg+uZlnRlpNl2YMDkvmAWMvlWn6g6EUC/Po+hqDmAAKiOQhDM0lK84JQLUP6OB502QY6mTEELiGizz4vFVEpBQDRpCCccuD9RB6ySyrashP10C
|
||||||
|
|
||||||
QKQTj3D0Ev4HWFB3bDCA4XhNyEegACKHDxBmVEAI64B8mgsXRAAa+jfAAUgASkY8xRk0Ry8f+qtCTcIkE162hmpHslDJuUZafE8QqTMElmsseyyZuuzLeau3PMZpmoHpyx/b6KZjCaYVLBTJROac5xuUcnmPt5JVfKiAUSMFoXhbWsLwhNI/xUbIJgslQFpWVmWVYaOVMnltdFbzjI8hl5RZZv1XCKK4qPNKsrNYqrWIu1n03D1fVy0NxB/hIuBm
|
kE4nn0kEdYUHdsMIDheGOoR6AAIocIMGZUQAjrgHyaCxdEABr6N8ABSABKRgLNGTTrLx/6q2wQmOiJBPetoZrh7J8SbiT8yDCpswSWaKx7LJm67Mt5o7c8xmmagekrH9foWeMJphcslMlE5Zx4q56x3Py3klV8qIBRIwWheFtawvCE1D/FhsgmCyVAWlZWZZVho5UyeXV0VfOMjyGXlFl6/VcIorio80qys1iqtYi7WfY6PV9WLQ3EH+Ei4Gawr1
|
||||||
|
|
||||||
sK9aTZfYs9R3S9EtXOl0W7rWtJwT0exIGbUOsdOuslxJyTfN+G6wQczcBtrWP+b0WzIzQNWL6oYsGSn+nGRSYw4y7FBj+cGA0eaQH+NDbBBYxw3ARkjSsqN3xU0mJjbGAi8bFHrksRuJpm6t1kh3Fo1MWi0wUfTV4TMWYyANBzJGb8bh8yVtLYWotGHyxKJLfRSFtEK35nrNWBsLEmORNY9WIRDZvBNg8HWFs1bW3YXbAo+FICOwgBmHgdEKBQA4
|
pN59y3qd1vRLUGHsM6QZdobU4F6PY61rRug9I+CmclLok2ulmYIOZuBW1rD/N6LZkZoGrF9MMmDJT/XjIpcY8Zdigx/ODAavNID/GhlggsY5HQIyRpWVG75qZTExtjfheNii12WPXE0jdm6yTbi0GmLQ6byIZq8ZmrMZAGk5kjF+jp+ZK2liLZC/8JbIj0UhLRCsBa6zjurTWkNng61jhQaxQIja9x6BLfA5tLZsJtgUfCkB7YQAzDwOiFAoAcFI
|
||||||
|
|
||||||
KQE0zB4wcDog0R68RiQAGkeLwD4oEbAUQRbuMTjMU6RcdzWVznJL0vo843FUs4LciQzpmnNCmeYK1M7lOrmybg2dtCbnbo0hS8wtLmiWEcLuLkdiLG3EMFBIx/q5zWM8fuV8dEHz8miIKQwEBrLWRFae0VkRzyCgSA5hyV4kjXsfDed4lk7wKqgNB+9fKnIkCfX+fhaoANQA1G+sAWpFgfuWHhL4IAmnqHATAMAMwUFDrgBimAli1AAPo0W+Kxck
|
CaZgCYOB0QaI9QYxIADSPF4B8UCNgKIHkHjCVmKdAuO5rIgOQYkU8ucBhbkGCsBM5oLILBWhnHOjoq4FVQCTbQm5W51IUgsLS5plhHBOJ3HYSxtzxHEmIv6sYQGTEdK4i+2i95+TREFeICBVmrIipPaKyIZ5BQJPsg5S8SQr0PmvO8iyt4tLfArXyJyJBH2/n4Wqf9UANSvrAFqRY77lm4S+CAJp6hwEwDADMFBg64AYpgZYtQAD6NFvisXJM4L+
|
||||||
|
|
||||||
zgf502fiBBAYEjHv0/ugXA8Rnlqjef41oaTuBmnWLhHRc12lJiWMMOMgY9pQK2smWZJQnQHXdI+TO+w9iLnNNdLMmDvGPQ4c8F6jZmwfU6iQn680KHxjNNuKMSwq4lDBnY5hA4vgwx8cUalxR/GlENk7AA4nAWoDFmBs1Dqk9oGIsApVyQMMYp1tDRmkmaGRIwzTWXzgMLcJpOm6X2N6PYqxNwpiMm0wqSxOmrQDF6JYp51XLSGc5HuNyxhJCuKa
|
9NH4gQQGBBh8sCLDX/IMR5aoXl+NaKk7gZobi4W0XNbgdl4jLGGPGcBzw9qbUlGsCBcCDoIOGfsUByxzRoNujDNhODXrNg+p1YhP15rkITGabc0ZlgVxKGDMxKqBxfGFY9a2xRKXFD8aUA2DsADicBagMWYOzYOKT2gYiwClBOuTTraBjNJM00iRhmmsmU0SW4TTtN0vsH0ewJibgskZNkXpljtNWoGb0/LBhKuWgM5yXdUBaTGFcU0IxbILj0oG
|
||||||
|
|
||||||
EYtkFx6QDH3bJA8t7DziqsgMQxZxbKirPatY9DlHNSico+jzzmVpZHG3gPaHkCm7WfF5U1e43EanKL5d8fklj+SjAFQKQVgohVCmF8LEXIqgKiiA6LngvyxVrSG35hr/hokS/+GptUvFpZKCScxpLZw5ZALl0C0CSMMiy+BPLuArHEZIq6DsMEIDIfddhuDXoytbHKm4wZSG/SVT61V6q6FdmvSwvVbDxUx2deUAAsopJYwpKAABVcMSAI0MIj45
|
HuWSvIb0HnFFZgZ4izk2VFaeZaR4HMOalY5B97lnJLSySNhV213IFG2k+Typrd0dI1OUHyb5fJLD8lGfyAVApBWCiFULYXwsRVAZFEBUXPCfhimxjDSi4o/jRAlv8NRqoENStlExE22S0rA/aW0tx3ptIdY6qBVhiIkVdO2N0MFeO1aKxs4rWySsdCGEhv1ZXuoVUq2hXYz0QGYZq1h/7HQRkwGmiAABZRSyxhSUAACr2vKNhulQFOBQFJIQIwj5
|
||||||
|
|
||||||
OBQFJIQIwvK4gSTVfEdVq1Cmpo1YSWjFFerElUtx6AzqaJEGUFtCAwQCQuueFaKA5gCCidOBJqAMoUK0eYmKUg2LtYTuNv4AgZHMCuXQJR6jNxcBCFU6HcIDHHwjglZqn8CAAASWaTOjFWL441DtDbKAAGr7AJEsJJzhQsEtYjACimgYAAE0GJhZIw69JCBMnzOEnkuSyx+W1tQWXFpJRKkHEWDQ/YElLgMszguWN+V2mjC6WnayPA079Nkpm7uH
|
EhjC3PSpVq0Cn8uVYScjFFerElUqx6A9qaJEGULadAwQCQOuZUwKA5gCD8dOEJ6AMoULkeYmKUgmKtbDqNv4AghH0PEZw/SXAQgoBsGDuEKjj4RzsOeJ2BAAAJQZLl01jHGD4/VdsDbKAAGr7AJMsRJzh/O4EGKxGAFFNAwAAJoMQC/hm1aSEAZLmTkgYp1owrF5RWuSGdvSNOeKpZwBwljUP2BJS49KM4LgjflGlowOmp2sjwVOvTZIpqGZKEZP
|
||||||
|
|
||||||
mxl9MmX9GMMyy2mwWQrXyeyx4bPWWbSV2ym0rJba2gkxz0p8nXkKHtVyOSLPuZ2odq2R0XyveO54k7b43KVLO4M86iHvggHh/AGY6IUSjE7D25rJCaDgEMF7sWfaWBdLupRGLeqHuvULPFtxagXrHagUl0ByV2ipUA/qJpozWRWLIhg+0303IzV+7lR1HzRt2P6mSwrbr6uw89PBUHCFPhxhAODCrIw2WVfGZatzmH0PQ7qsVYRvOFF8+Uf2FBYt
|
TxkjH+tMwtJsh03KZLske6y1luOeJFKeP9hvoECg2/ZRz0p8lXkKdtlyOQLNuS23tq3+1n1PQNkoI7r7pqVBOkMU7CHviw/gDMdEKLRgdm7Y1khNBwHiM9iLXtLCug3YotFvUd3weFu/dAuBajHsHagYl0BSV2gpQA/qJoYzWVWDIp0nKowzPE5yl9j4w27C9TJQVv6tVw2hLgoDBCnw4wgGB6VUYbJyuqcmWD9D1PWY1X+sIrnCjufKL7CgEXlg
|
||||||
|
|
||||||
LFi7UTAyEY5w4SrhjLbqW4aWktQ/JlweDk0DaJA4CbmvtyVMmUuElmWtNq/GxNulJFUbTaaZ9xwOs7FzSmS4rdvTbgZdpAbXke2jfQIFcudaxrPWm3/b3EBArzYW+2pb5Unlrb7XvAQSzB0VV288GqUOPlNWnad++c6OpXYBbd+7j3nuvfe598133NC/f+8UOnB6dPHoIqer+3xIdvN07NO61l2W6STHAm03BkdCdfRwBBvLs7srssj0norydw2h
|
RdqJgZCUc4cJSI8l0S4wm4aWklQvJlweAUx9QVqSYxpFKkSMXCSTKSjNKjTG3SEi6WniTdj9uDm00ZospcZuPptz0u0n1vu7aZsQECqXStY1npbNrcs+t83Fs9oqrtwbXx1tds26VbbEeqrPBqlDt5TUx2ndvpOjqV2/mYdu/dx7z3Xvvc+99wgv3N3dXRWp2xOK34jVwN8SHLyOd8wvagayiQEx6WuSUFlUC0DI54wPrlR0aMk273ZZHJOECkPu
|
||||||
|
|
||||||
FT960GiF04Z6B3rAMfUt1PEbpzaHAFQ0w3mcDNxwzGfw4pbi41SPkdM5foCtH6OMZ2MxrcDL2Npz0lxmjWQ+Ms3wIJjhsZkpuJuUFJjJpykwPJu4CASpmpkcHoFkJpkwA3kwhAACKcD+IZrfjdvfn3FZmwDZqwM/sOKQKOKhq5u5jsOMHziaoEsHHWuavUHhkYGzBwC5rUP7PUGaJIASCaBQDAEYEMMluUBklkoNnLqJNJCGhJCsJZLIUtO6hrlU
|
iK56lP3rAcIbT+n8/JkA3dU3U8humF0Pg4h7nVmShoYwyR7i40CNEYkJfsjWRKPUZ2EkejiaFhMb0ix8c7HOP4G41HHxgJnJiJmJv3hJlJvgDJoJkCApusHoFkMpkwLXnugCKcD+NprfugPfj3EZiZmZs/sOKQKOLBnZrbjsM5rzgagEoHJWsavUJhkYOzBwLZrUL7PUGaJIASCaBQDAEYPEHFuUOkpkibLLs4NJP6hJKsIMOJJdEtPLhrmrnEHG
|
||||||
|
|
||||||
nsAkKFHJHUmMAcLnDVrXB0g1j0s1n0i3G1o5FQZKF1hMpdFMn1npB7o+FGJ6vrvMDuFcGnKxl7s2j7uNpslPI2sHl4aHuHotknjHpttvH2uzj5KVNtsnlVKnufK8gdu8tfJnqpN6Dnhdnnk+NdvgKFrUMHPMKSP7C5v7KCkkqxJoE7KHPAEMMhHut1JiqgcYgEs3vihmG3skTDrHPDi0EarzLejclPkhnsAVi+pjltDrv3q6D+uQi4SaNJJZDbum
|
DhtGGaMtAcCAlVtXG0nVl0o1j0k3C1o5OQe1hpJ1pdN1lMnpO7o+Gls3AYTuFcKnIqrlrvL5F7j7mNhshPDWtNnWrNvNgSGHgng8mtp2umt2qEX2snqfM8gdq8pfOnqpD6Fnhdjnk+NdvgP5rUIHAsKSL7LZr7MCokqxJoA7MHPAPEMhFXoSDXrutiv4gemDhmC3gkTDtHPDi0Hqu3r9NPlBnsG4ZAKPl6MYTjvtHjlGB/iaNJDIdbv4j+nPifgB
|
||||||
|
|
||||||
CKiBjzo5pAFKsQPgrKivvKuvohmnFcJnKhgwh3pqtznPrbIavbN+IbGMEIBQOTKQBwPMCIU6ufpIbMLnNoNZFJFGIpNnM1rZMoWrvsAkH0hMisEmGxrJDbjXNcpdGbsmpbmxtbu1iMpKA7vms7kWm7qWhZuWu0k4UYa4TJJHAyp4bNt4bWvWn4TPAEdSUEfNiEbEWEcNhESbv2uEYfMtmciniqIkenqkVOukWdjcG1JdjkQCnkc4AUUUSUWUTABU
|
sQHghKmvlKpvpBqnFcBnGzkflzmTjqmAD0dQQbOMEIBQBTKQBwAsIIXarpmIdnNoNZFJGoWMnrrZIoXGNoIsCMIqhMLsK3F+pXBEZdKbnGhbu/smiYamjsOMJmo7jmi7vmvvvxEWjSi6nrh/osDJOHPSp7gEd7r7lWr4VNjFJ4UESEctqcpHu4ZvGCVETSa2nSZACni8mnqOikWdo6G1JdpkX8tkc4LkfkYUcUTAKUeUZUe9jUf9luvUcDs0fxA2
|
||||||
|
|
||||||
VUTUR9vUQDvuk0UemgaDiNLgA2J0ZqOcQIIMd6NIisFRlESPtwBxtMaPrMagGGmnJcH0jPmsVcRBtKkvjTsQrBt9Acczj6i4eGkJlqgfs8BhusUASZrgVpMRhQEZrGZRmMA/lkE/kxkkG/miRxl/jtD/lAH/gJraTGbAWAQgNJvSHJgpvgGWRiPATcIgVEM5tpjqS0egfplgfgEmRfvGfgdZrZiQagA5hQW5nbpKDQTcX4gLhIKWEkjAPsEkmwGa
|
G0ZqG3uer9EtC3PGn3sMZAkJkxk+vAuPmSioVmj0rPvPtgkvmKivtTkQqBt9FsUzu6h/kGjxqqoYpziwnmIvs8OfnplpHhhQDphfpQg/hRuZi/nRq4YxqnF/ttD/lkBxqzP/twDxuftASAQgKJvSFaJJu4FmbAehPAUpj+MgQ0dKJphgfgKGYGeMAZngaZqwIQagJZqQfZnCZKJQbqrbN+AbKWIkjAPsIkmwGaJoGaLZq8JhoHL7DAPoDRB8EYEY
|
||||||
|
|
||||||
JoGaC5q8HhsHP7DAPoDRB8EYEYO8egGIelq6qJCtAmtuC4aaKsOJFeMoZnLmtJGFFoVpNnApPHhAAiZ6LmmqlGAsf0nZLZFJOjsMtmiMOMJnNIuTI1jbvModnckyCHr7hNr4YHv4TFMhcEZHqEcOhyV8OtpKAOmyXhYKaOm8hnqKd8hKb8tkSIhADRFRKxMHC5vQE7BmJgJIN8MQDakkk7BJMQFRIeQ0YSNqSDm0bcBREadwN0dLpSn0YjjsHUjG
|
PcegMIUlo6ilguOYR/qaBMOJFeBrhnAidJGFOMN6F3gpDvJAMboVAiYqtGDMb0nZLZFJOjh3I5iMM5hnFIhTPVvMeif1okXHqWsHrNqNj4QHn4RSUSXNqHk2ktuVGESBR2tVpKEyUhTESqHEankkVyZ8ryd8hkcIhADRFRKxIHLZvQA7BmJgJIN8MQBaokg7BJMQFRCubURANuigY0fug3v+BRKqdwB0VLuSt0YjjsOobGJuDuGiSMYVDQhyhMdy
|
||||||
|
|
||||||
JuDuLvuMayp6LQrjjMfjqMluKpf+e6aBjgpTpBj6U/M8GvghkGVGFJK3GGZzhGRcawsfuKrQTOegKHEMJgCRnAKQHAP7EecJp8WebMJuNoG3BMqdGdOXGMRAJUpnI4TGLFV6MMGrhMrodclRqnKmgsPyi3KFKsBidmokAmD6ktKtMjrZGqoMoSYNghQniNoEb7rSQHlNhhbsi1dhc/KvCRQKU1ZybvMRXyV2gNRAGnhRSKSdhkedo/Aus8Ixcxax
|
u1luDJY+ZacsTaYBnaQ/M8BvhBi6dGFJM3B6Yfl6eqj6QvtqlQfzhIMHPEJgPhnAKQHAL7Kubxo8ZuXLpuAkOnHZIuMmIGEMRAPlhnGlrGGdIkLsIkMMIZE0hEXSinAmlcHpP6IpOys8B+WmpUomO6ktKtMjrZIqv0rMhiYdgIIsp4SSf7hNoHv4WBd7lSQheHshVHqhdvBhStknthQOhyXhSdqkedvfNOs8GRRRVRTRXRQxUxSxTwGxRxXKdXoD
|
||||||
|
|
||||||
exZxdxbxfxTwIJcJZqY0UDs0bivqeatJc5aab9F6DuEtCqjbjaWgGXPaWPr+gsV6FRkZUBqsSZSfpKovgQpZSUNZYqrZfZScR2E5TioftGafjgZRm8dfomdDYpLDc/I/nZoPhpCgmqr6OGu3CYQWUWQASWVDcAWJhJuAVWVATWXWQlA2c8E2cga2dehgQZt2QjZnPSJZgOcQfZmQRsZJs5mOZiTcpOWAP0XQYbBQHRGzLdh7B7EYAFaSC5qSEkv5
|
jxa/KDvxMakJRZRqfNN6DuEtPKgBfJagCXEaWPq+vyqsCMHJGiemOgksUcSsWsavjTpsYZdvsZfynsR2OZViqDIcchuTq0FgVhopHcdfiGSDSRuDY/ORk/o+P6sDHJKsP6HSl6gKrDcmX/gAahkAbJuUKAXmRAYWcAcWYpogeWappWRpugRwJgbpnfmDY2cZs2VGUQSQT9WKJ2W1k5hMLZf2eUBQHROzPnm7G7EYK5aSLZqSIkp5iYIkASONmflL
|
||||||
|
|
||||||
iYMmASJNiUD0cealuITks8EnP+UXIoTuCUvldpc8JUkhpFQysDLGK7luFlcSQWiqhkWropGAiVR5o4UqEmJQqtOJOTASXMkSY1dEVWkya1a3HSehQyZhd1SyThf1fEYhQRXHiNdHqRZAJNckZRTNeKc8JKXRddk7CRvaM4DRJoMyGaLUGzFAHRO7FGB8GwJIPgIeQIhACRkYN9ggKSF0EIB8PQEMHhvoEsEYNuR8GaM4DXmAHXmJadaUBJbgOasd
|
hAOuRiWIY+QXPITuMgriYpXlrMFBgkPSsDHGC7o+glWha0u0lIiTL6BTLsDArCTzWMtoEqMmBQqtOJBTAWmVUBf3FVbBTVdWuSTsrBc1Y/MvNEayT5AyVbdebHfvMyTtj1WyThf1cOu8tyWkSNbns8A7PhvaM4DRJoMyGaLUOzFAHRK7NGB8GwJIPgCufwhAPhkYF9ggKSF0EIB8PQPEJhvoMsEYHOR8GaM4H9sULTtxdTd+EqbgMapteND/FDiJ
|
||||||
|
|
||||||
eNH/FDrJY6k6QjjSjZTtGlXGPae0u3A9Y6ctNnMjmrupaUMBp9RTt9eZb9TBlZQGTZZvjuLsCTqDfvuDZGZcVhrzlOT5nceUBmEklRLUPEMQE7FGA2JIHAP5g2FREMIQDwLUEkjwFJVLpvXzWKPSAbX6KnGrnZHUhQqeMoe7QkCqk+ktKmlQ47aHWBR5gmAkI3MTKzmxihvVZ7jycsqPDSVHe1dCEHnHRHT1fun1aNTtsnYNanVyZ+UPD3bEcQGw
|
baqgGJb2VSoZdtDlvGGdTSq3GdZMUPl3sjmrrdYsVaX6RTrafgnpSUAZTKi6TuLsMTpzeznXkwgDb6TZRvW5gLRIBmIklRLUIMMQA7NGA2JIHAJ5g2FRPEIQDwLUIkjwIJZLqvQhuWfSInI+fsCnGrnZOoeQqUo6PlopJUhTFZEtPyvKvFaCVbd5NlZJbg8MBIpZNUomjBn7R7ihdVRWqSVBaHbFI1XBQ2tSZhTHQPB1S0gnZI+HsQGwGosfLEX1
|
||||||
|
|
||||||
OoqfAkeRTndNVnrNTRbnv8s8CXWXRXVXTXXXQ3U3S3W3ddp3d3b3ZZgPUPSPWPTABPVPSJRAPXm2Ydf+Oav5iddDtdlrTwNvZ3kjo0gmKglfbdagOMifXpe+jGNQqsMMMZZDffd6Y/Xsf6fBoDW/cMLGOjuGT/S5UfmBnfSUFwsvtKS0CIvwnwvIrXsIvUwIq+Mw8MJImw3Uhw/MNjO4/gAzKoqzBopzCZiaQyPzGYrLPPaYkLOYvPbosrPHLYtM
|
QkZyYNTyc8HycRddgXUXSXWXRXVXTXXXQ3U3ddq3e3Z3YZj3X3QPUPTACPWPZxVPYqfxR/Map5ltdDtdp0bwAjpvUjnUomFlnJfqTShaUpc+ipagP9FQlerqaUBfVpRNsvrfSBvpU6e9Z7cMCofsdtQhl/dZUDfBFzPaTwlTBjNTIIuU+jPwq+ImL8fXGw+oRwwsNjJxfgIzComzOoqU/BjooLMLKYvk5LCYrLH9QshYg4k4iM8iJYo4vrPBgjP/
|
||||||
|
|
||||||
w4ks84nLB5cAxIP5lRB/AgAxPEEYDwC5nRC5nhtgDRMwPMMQJgBwKSMFSeUSV8duIkC3F0i3HZQ0p+Zbe3LlYpCMFpKsFoVfd+XaCVl6P6ouCmtQlEYwzsKMNjXJO6hGhMrpJ+sHQ1TEySUcfle4ZSTw8hT4RrZscI11aIwnb1R2pI3EWoynb2lyeCTbgo7heNdnfVFo2KZkfNfngY/MAgGwDxZgASMHPQEIEIP5tgP5h7GwFGASEYCvdY13TyH3
|
soIPkU8cacXZegJ5lRG/AgAxIMEYDwLZnRLZphtgDRMwAsMQJgBwKSB5WraId5WJDuC8dvWAsZbUgnaQ63MlYpCMFpBMOeWibeWvUVt6F6ouPGlQgk4w5KKMEGouHZB7XFbpLQyUHMmgPYdiU4Xia4YScIxBUrZAJNtskI8PIEfBZHc2snYnko/SdHhEbgwBbI9HanarenaowNRnkNYRdnr8vnQsAgGwIxZgASIHPQEIEIJ5tgJ5m7GwNGASEYAv
|
||||||
|
|
||||||
Q48PaPePZPdPbPftV4w7IvS5v42M2EL9MUuItoTdRMRSpuHE4gitEC8CcsTfWkwvg/bsbTvsa/X7fk5/ZGWDWM1GVcZswRIbEMDABzPQEYHoMFWfhAZAAbQuMsFcG/rsNvi4XVRbTMBnL8WnKXMjqmuIgfTcKC06d7Qyn6Gro+smHbZ7RcKnAKuVuGok9GJ+fBVi63KSbixSfFQo4S21Q2rHWS3w8ya2qydS+yXS4RdyfhYo2O5nRNUKVNROp8py
|
eY23TyF3TY/3YPcPaPePWAJPQqfkyDo3rZl4+qS8B3o7YuIkLykdWE3aJuIfdEytEC41rvd+vdZfShikzfesa9Y6eBo/dvs/bk2/QcVZVbPzQRAbPEDAJzPQEYHoB5QGRrduUqiVoqrsLvh/qVQbQMOnC8anMXMjpdT6ABaC/Km7fSv6GrtJCTGrl8c7Z+bg7pJdKVkGrGE3OJLYZiQ4TsbiS4QSTw0HXw7VdCPVTBcIxHVulHbS21Qy1I16F1bS
|
||||||
|
|
||||||
3NVKfRU7HywK9CsK6K+K5K9K7K/K/iJADY8q/Y4PWq84641q+OHPcU60R/PqaWIa43mdf1K4ZHK+Ra5pWgGxui5Aayo9XeoCb6NGOjisWTv/bzVsTsVU36c/Tk0znkx/YU366+5Jn/W5fPq0DgbUFQnZQmT2RIHh2+YBAWRmbaanBMvygseGrsGdOrsjb/vxgTXdaWSTdOLiEwOTUrJTRx/WehAgRpi2QdXppgRwNgefsR/h2RxZgQUQajVh7zZ2
|
ey+yVy5nckQRZo0RQKyUA7EKyK5CuK5K9K7K/K4q8q/iJABY+q9Y73Vq/Y443qwaytdPfXutbgKWGax/Ra3dE4eHOebepE2s4mui3qbjtE3rmMn6DGOjndUKoDafiS6k36w6Rk4G4zsGzk6/dZr9ea8fo9bjQzegLUJQsZcGXWRIKR6TIBEmZGa2UsIpMZYGKeUCfZHRymVxumYAehkWRIGIFkEwETUrJAXxwlHAY6AgVEJTatTTVprWSDdR68cz
|
||||||
|
|
||||||
JQeOULV5oA/zls+gHANgMyCaN8P7FgHCnhvsMbAaMwOaqQE7I9g8zraefrZm1lluOGgsYVX6MquQ/GJFcDPGFJKVvJPQ3XNoDJOJFcNvrFZZLC+YbwLmgGP6jFdITGJnC2yHSkQSy1X7tHR1QO7FOSyO4nbO+NQo5O/I4nknbS1nQu5o0u2kdRQXbRfo4VmwP5mzGzHAGMBwHOZFjAFGHACRi6N8EsPoBHtdpkEMBREYCaLUHhpZLFt8EIOCFuCE
|
fgS2Y+Nabh1zaYbzS5r/Xzv/egHANgMyCaN8L7FgDCphvsEbAaMwMaqQA7A9g8wliIdks87JGlluEGjMU3EtBQujqQwmAkMDAmFJMVvJNoS0pUjJOJFcLvlFTIbC9pxML8eaPLouBIbGNlj2xVYnUshS8SaOyHWS5SVSzOzS+I+y5IzHrwMuyyau5y/VNy9ncNfySRTAGwJ5uzOzHAOMBwIOSFjANGHAPhq6N8MsPoMEc3ZkPEBREYCaLUJhjIRF
|
||||||
|
|
||||||
C6LFje4Dq/PPXqf+Ekgq+o8Sl0YE3JSEwMXdEBTtMC4fYVJcDa4+OTCsPUuGqk56WZRk26/B/9S/bk37Y0nJFfUU/65h2UwAyLbccG+UCRkktXQ2PoP5qWEZ8HAxGwC6PgN8DADwGwEYFRMFSp3g5m3MD54uI0q9S3OTFfZbUidGGF+aFoXi0F95HC4VOJJ6mxmCVoQCZZEJq24PEsr2wI/2zsnl0O2HhS+I1SxncV5cmnTw0nso6o88vtuy7V1R
|
t8EIOCFuCEK6BFs++OIaxMzPW42Dokiq8o4Su0T46Jf47NHdC+dtMC3vYVJcE6yaWgEgn6PaEGppYRz6zpWkxsQGwzmQk/XUjdXk/t5ZUht/Tznp2ceUPhokuXQ2PoJ5qWOZ4HAxGwK6PgN8DADwGwEYFRB5TZlg4bfMMF4uHUnStPhTGiaQ+CTGLF2lwYYqpF/Mllcl+JC6omg2+eWoTITxpi8Be1bw83Pw3VdBWHVO2V91LO5V/S5VblIyShXI
|
||||||
|
|
||||||
TOro1kU11MC121x111xUTAL1/14N8N6NwCuN5N9N7N1GPN4t6QMt7gKt+t1qTq+JY+zt346vTFOvUd5vcEwpTvfNFYSBS+Vd2pOmwB9+vE6dtQopD6iMM91B16dsdTn9ZAADUhz96dG9b69/YD65cD7zZU76bwpTBjFTEIsX+jC01uHEGmmz1uGiz0zTH0wMwYGouzCM9egs5M4YmMzMzLD3+hws44ss/exgKs/rOs2LEGwEobPQA2HZOraxFRM4
|
wo5govSo01xu/heOny+kbu9MJ19171/16UTAENyN2NxN1N9djN3Nwt0t9GCt2t6QBt7gFtztwDs/Ea7PbLV4yvY+DwFd70fNNB2+WeQ92pLm+ARBy96dlQopO6iMF94h09VTnfZAA/Zh57SDxpWG/kwRynxwqU/r8InwrwnIhPUIuX3U1uHEJbjz1uGi207TB010wYKohzH0/kwM2MwYuD5AKM0M+M+awM/MzM/3xgHM9M4s/k8szAKs0JpGzD1s
|
||||||
|
|
||||||
N8N8KRNgEkqPh8MxaxHZ2lk82FXUmMuW9UtFbrmH1MJm5HJFQl1Wzm7JCC32mnCFxCzFdC092YWpxBYi3ZL7cMBz/+w8hpdHC7bHFm4S7ZUlheRLAXjNmF5iNuoEjCXtIzDr0ta4jLdOitmQFsshsJQY7No3zolBC6GvCAOan0AfBg4mANgKc3MBxhGkYwZkPUH4rMhd+7dM3lNxm5zcFuS3KMCtzW7uNPGLvMHLgDogvs0CxreaPGHdTSFU0Ifc
|
wwA2HZIraxFRM4N8N8KRNgIkgdB8BRaxM54lure59tBpDWxUmMirlH9MIbeHH5fLrFUW7JCCxEanG7RC6dFdWdJ902ztwIs6UckF/ryjGRoscu1tPtjiWcL4kQqkjaqt4WJYQBSWQeAriI0bTUtEK3VeXnlxq7Ms6uKdPAWu017PBjsPLDRiUC0b68IAxqfQB8EDiYA2ApzcwPGDqTjBmQ9QFisyBP7TcOAs3ebot2W6rd1u0YTbtt2cZ7dzWxrf
|
||||||
|
|
||||||
SIAIxyAdHSSVdKqaEaTx8lOifWDr6VXxfd0+8YFwpn3+5oc0CAbKDtP1NTlAAQDEBiFRHiBJJCUWDPiDGzx4DBNCvxSRAcFZw+13C5DCKopCWgedoSdkKIsWxVQhcy2ZWNjLZCrYglP+gtb0HW0ugNsJkekZtvYWJKgCXCnbDwhlwjpZdBGJLTqkL3ngi8CulLKPJgMq4oDSuGA/klgOq5K8jsy7eroQMa4LUSgpA8gZQOoHYBaB7qBgUwJYFjcO
|
8HRG/Z7owgv0BMOlyoahNMcWLC2uMSiax9wqwwCyHd2T5Q8kOqAlDi9TQ731MmQbbPqljRKekJ+BfYwVG38QGwAQDEBiFREGCJJ8UaDPiCmwv4Ikm4pWapO7RcIa5U4cQRSEtH9CnR9yrOS2tXErZSRAwJWa9PWzNqtZm2KcUBO2zGRpVu2XDOwliUcIDt4BBLDAcHTJIldw60vQkLL1wHnJFe8dIgXS0eT7YyBR2LOlu2oE7tRqJQegYwOYGsDs
|
||||||
|
|
||||||
AE3dgZb2t7cDeBjvPapt1H7bcv4eGUQe2XEEXBhgyYJ9CHwyLxUR8QHG5M3GaxaFj671SDhoNe5J8LKT9T7oh3IRBkDBf3U4lzjz6mVngzg6TlpGoSEdcOVCD4eR0U6oBFggJGjs+Xo72Q8aLHQAkTWVj8d0AYgLINx0gTQFFM0I6ADTRKB00ROurI7J2Qk4s0pO6AEju6lk5zJ5Og5R8M8L3yqd4hwtUWp5QwDhpSwsEOAGWCM4fB1AbFUsFGAr
|
A7A+XFwJ4F8CbeAgu3sIMd6iCXe4gt3pIKWp1FX2rjD9phgUG8UlB80cAYkCzgR9UiIVUfEfXTSNxGs55A+h6wQ7GDU+uldJpYIw5A9g2OfOwXhx/aOD1mPHDDEpyoQUdFOlCP4XR3hrpkU4YyXlDMSDRsd1cmNKAJxzTJoAMyeNGAvx1xBCdYEBZaTKTQxASdngUnJAlTXgxoF5OlHEjoCNo6zImyBBdTlfQPxacuyOnZwYanKAhR4gpYWCHADL
|
||||||
|
|
||||||
CEA9+utYlhACTjuo4glWGMPemaw+oHyjSXKrUlkLR8UuQXBISpUS6SCdocYT8oz1OwaQFgSo/1CqK0LpDQ6PbTLn23pKC8sKovBAeL0qEXJcofadATLwq4K8kijQ3Ac0NV4Nc9G7QyAEYDYCYAKI/sCwPgBdDMAgxJoOFEIAzCsQ8MBIGAEjQBRQACQi5UsPaBDikgwkBIc1DREICYB5ucwaYaJWd5bdF6eGPbmRQO7GlB+ZpawvGDSrWlLWhUMK
|
DmcPg6gaiqWGjAVhCAp/VzigMTjy44g5WWMBJHPLuoAuswY8slTOj2hLo8fbLgkKuS4NpKv/JUU3Di4J04Wp2DSIsG1EqDto8YBOoLwDoeER2ovMdiSwnaS8MB07GXhVwaHhF6GLxFofOzToa82enQzdjr23b8s+hkAIwGwEwAURfYFgfAK6GYCxiTQMKIQBmFYiYYCQMAGGn8igAEgRypYe0EHFJChICQxqGiIQEwArd5gHveUmsO96Hd+ImGE7
|
||||||
|
|
||||||
Ld0jC2Q9gcwc2gRCdYvd0m5wzJu62yaM4bhm+PYH6Bu5f0zi6HUwUp3MGBIGIwcZgMyGPB7kXMHwOFJoAIyxZnsRgYgHRGwA49nMLg88loScJ+hs4ucFBBJAlG5pL81PEMuIk4bG5a4CQlMM1mNDUI0clWGtoqDzTPjHyUkHXMpC4YVpchUA40THVNHx0yhYvCoXUKqEldbRvxWoWNXqEaNnRkAPASuzV7ctqmJQb0b6P9FGBAxwY5gKGPDGRjox
|
r1TO5qkf2Owl/GIgTA5YEmx1CFs91fR/RbIeweYPrQIhJNvu19X7qh3XxWCs+PeP0EqDMpwZ8+hTJficT7LRtygDEQOMwGZDHhFytmD4DCk0DYYIsT2IwMQDojYAiemDJ4ueSxL+gSYICcZBJCPJ1IwRMYAwW6TEScM6G1cH0JmkazGgqEaOcrJkLty4MLIAE48lJEaxIsoBVoobDaL9zFd0Bs8TAQthapss8B1XJlp6OV6YS2h8RDoZAAoEtdde
|
||||||
|
|
||||||
sYl4QmKSRJieAKYtMRmKzE5jCU/Au9mM3mH4o8M7vEdGWM75mkAK6qX0OjmiZJVGxaANVO7WUqOsPqzrTYj9Xe46Drh2OIMkOKVCOUc+44oHuSMgCF8NetTUvg0xnpNNKYj4zcLpB/FviUmfCYyd+MaS/jZIckXprtWYQt9mYQzYgJoi5ij8u+szKZqPz74GJO+isRZhP01jXpdYazEKVP005i1ygHsfzKQAbAXMWYJGGAPUFh4uhJA2AUsFak0D
|
udAUs8DDERioxRgGMXGOYAJikxKYtMRmP9LZjEkuYngPmMLHFjSx5Y/FFIOrET9ZBH8TDJ43V5Nj+mlrJ8kqne6HDw4vYuwq3EJwo4jBXw7SqsTT4PCM+0454RQj2D+gnuefBwcuNpElMuEIY0vpUwr76sq+VMP8RBN0hQTgJwwOpg5M3BOS6k0E2SHJHaYrCEMbfFmD02IAaJuYE/HvkPz77mtB+MsKKS2MVjKxp+GseDPYj1jJTZ+fwefmsxXG
|
||||||
|
|
||||||
0BdxuDL4oKKPHRDTxSQ75jMEzhFx4wDKR3Cqj9AMp0cxbRYDjTC61Jqq8YeQeqKan+oWprODziqn1Hpdp2fPf3DAMZJwDzRhIRAVaNjwMt4J9oorkhMV44DUJro7PKuyLoAocJfogMUGJDFhiIxUYmMce2gCUTqJtE+MfROzHfBcxzEgsXMKLH4AlhilQqO6iaSnhaxP7G5GoJ0oOlI+YUc0D7VOhX0IOs+BPmcK0Ep96cuggcZQmUkjjs+Y4kwR
|
bMDOEAN2J5lIANgLmrMfDDAHqDI9XQkgbAKWDNSaB6AV4sUCTxSy3jm494x2k+O+byjVohbelA7nlT+h6U6OUFksFbgNYFw1SGIfKlAmgixpsXJUUVQTBgdAK3DYXohLF7jsJe5LVCc6LqGuiV2WEi5DhJZaLJWqWFH0e0L9HESuhgYnocGLzolAqJkY6MbGPjGJjkxqY9MVe2gDsTOJ3ErMbxLLHfAKxgkr3sJNnr54thElO8vLh6Sngux9rdNH
|
||||||
|
|
||||||
pK+oVMRmOk5pvU3L4vhamXUprAuF6mUJABxQXGT1JIaEyHJjTDsM5Lb7DMtE8zQKd31CnIhGZ9MqxOFMxH2JiAw/SfkYinGGwQkocBsN8CojMAhAFEOAPEFYgUAGIZoWLJIDGCsQMwOQRwWAT3EFTDxrcY8bsHkIrAypAwTOKMH+YJhtCCYYPkWz7QJpTJ24e0IuBazNZouanS8gcDKxNx705pLnmlx57NU8hIEnLmBPy5tpyhLLZAbBNmlMtyuC
|
UkUmSVzQ7tU6OfU9bJNxxmk+4f93Q6A900kGAyfOLB74dTJ3rEoJwnME1NZEdTGyTjDACl9RpXqeaZNIoRgdigLM8aQtKmnRg/JlfDsIFI769NNE3fBKb3xSnGJIp/TBKWPxn4T9UpViBWeazn4L9EOTIgJMEmDgNhvgVEZgEIAohwBgsFABiGaAiySBxgrEDMDkF8EE1rxzzcUXeJvSPi22XUgYBnFGD/NEwmhRMOH3VHcBo0Tk7cPaEXBNZGsS
|
||||||
|
|
||||||
0qodgNDpoSWhkAIgZ6IgBbS8JBEvaSRMOnkTNap05McHFTEXTMxV0m6Y5I8YsT0ObE24H9g97cT5mgxcBFW2/abR9KIk7aH6iuCXAoiIMj0mDK7EQzLhqfaGYpMHFY14Ze+RGe2QnH58jg2kz0bpJab6ScYYAWppbP/6rRLo3SfXOzmKBOyfQrs1YO7IpkGSqZKiVvq5PcmjNB+DM7yQPzQJ+S5mnkwKdzIim+Tx+NiHmRBD5nlAkkYwIwImXAaV
|
XBkdGnEi+gG40on0ImUKFXS8uIvJCVUJQl7JahXFeoQdMaFx1q4hAvCXO3OkctfRuXEid0MgA0CQxEAJ6TRLolvSmJn01iWfl+l5jA4BYgGSWKBkgz/JLjGsR+1+wSST0zYxQR3hVGxU7WGgpGQnROHRMncqcecQk3g6k5C+P3XGX939YEznS2+EmUZM07v090nwjTlTOL6WTq+5fapi+FL5By4qq0S6J0ig51No5BwErHHMBIFUBZtkoWconb7B
|
||||||
|
|
||||||
E4A8wQQLUCGCxYtqFEPsqfmlw4M+RAojWX9GKk6zzxFScqTtFThXhlokcXODtBBr3jrklU86OfQ4ziJToaomLkXBjD/kVgN5ZMFRg9mYsvZSFI0fzxNGwCSh8AyaZaOgnWihq1yO0dO2DlRyGhy09AqtJ0buj1eic5OTtMInESDpZE46fGMTE5y856YguYxLzEly7prExei6E4n7dL05YsQYMTTinhCMZDH6U3J+m7CFiAJFaACQ7kdju5LrN7nB
|
TQpaaEfhLJlmzMpYIC8KXLKSlvsB+U/NKdApKYrNsp3iZfnlMSTjAjAIZYBmUTgALBBAtQeIBFnmoUQgydsiQMTxvF19+xD4mQm7KPKX91CA0laFMm2jfUfxLSAuC/3Dh/QmM7Y1YDNLtBGjHyqwPctFW/EYtyqQvBdqnI2n2itppXURhhOLkSMjpHok6VtiUUNcy5ki66QGMzytdtGfyOuS9PomMSPpLE76VmJzHtzO5RY7ufxMrHLUwZMg2eq6
|
||||||
|
|
||||||
3kn9jB5sM4eapLHmgxkZ5TLSWjJnkYyS+WMmpnwnwVJU/oRCrSCsBabkLLIz1ahSmkb4KJm+x8lyaozPkBSJmV8pmVLFyWsylYj8jmZADCnBS2yH8iQJ0FJB0QysmAOALpGYBURMAxAIYOajwzfBCAwcIkZrSgWPMJCYVGKlRy0gjAvQLcahPIMSoE8fUdSSFkDEjhBdn+ZWF8lCyowwsPxNyBFlRiRZ/9UWlkAaSGnCYLAqMPqAMPJFWiQCSh0A
|
HEn9pJJ3fDvKnFPA4ZiG2gtZmqP8XnUEackL1GnGXmji15OM56vaSnFPCiZLpPeQuMPm8Vj5Zk6mWU2vkXyKmV8loKXw4XnQSY20VOLwuvLFAC4sYIRQYO9Dxpm+8iVvr/KCmKMAFssgWJLNAXtKIFUzOBVLOIDyz0pE/NWUgp/qrjfEK/ToKSDoglZMAcAXSMwCoiYBiA8QY1Jhm+CEBA4FI/0irUeZudngYoxcGCK0gjALyy0Rtnm1EhaRcq7q
|
||||||
|
|
||||||
lhWNLYUTSPGU0rhTNLQFzT+FDoj3ktJjmiKCB8ctoTy1RkZghg+AEVqHBojBxsAmgb4KQBIzEBvK/sTQJg0CbZyaJucuiWouulMTi5Agwsa7y/gMQnp/vI0E3BIbT4LFJ0WIbJgmK7CA6a8pMOB0cWnCe5yfPuVDIUkb5PFw47xY8NKY2xKl6AOiHRGQY4B+U0bWXIMrOjjAdo1VXOC7MmXlTpI2beSNZH/Jajqpiy0tgGEiGVswSHUmLgkN0ilS
|
NLmInlQKSA5Drb/meShZ0oYW/C9NMAKRZgDUWMhKAf6iCZ/FW4ZueSKtHKGoSiWyEhqk6KzkTgcBuc90QXNwntUzpMdUgcnIrm3Sq5vQh6ZAARgZh4g+ACVsHBoiBxsAmgb4KQHwzEAHKvsTQKgx8ZtyuJHcniXYuBkCS+50gn9iJLBwMQoZATI0A3EIYz5gOQmKhMtLnmx9vaD85MHB0iW3CNJMS9PnTl0kJLd5c4/eSqneFHyKZ0PUZX/XXESA
|
||||||
|
|
||||||
9cTbcSAcs6Txhjl7cc3OcvRyGifZzC0Cawv2T3KJwUExCTBKl5yMEJUjQRchOEWxy3RrQj0f8oCWArgV9AUFeCshXQrYVQweFYirjHIrzpqihiRio0XYr7puK/FGzAJWhMlK+TQkRAjJWnYLJlKxQZH27xENW46gyeeDOZVZMEO7i9leaq8UPD56E8zSSFVjKkhvhPSrOjfjxEQBu17w3tR4xRpDkAR1HAMMCLYygimOhZcEYTReEiZkRsI8MICA
|
6IdEeBjgF5TJsZcjss6M5m2hFUQEb85aWFWkiFt5I1kR8saL6ms87QaWZITWzSGxUzlNuBkX+NbarBX5eQrthaIkX/Ke8PSIFYGBBXo5EB60u0agIdHbTM5Ci7ASiqq4qLOqRcuXgRNwpa91GOdNrtdjxUEqiVJKslRSqpU0q6VFixlf9NsV8S2VDi1YU4q5Wz12YfK67vNCcl6Rlc6g+9IqFckirThXefBs3DUknzkOvrcwXEsJlb59J6q5JeG0
|
||||||
|
|
||||||
RF8dlMQIVEZAHRFaZROWI8TpJy7U9r2aJIrmk4o5xigBa4FakWDxn7lBNAzSsYGwHoz0BCipIZQPoCdgEg8M4mc1IQCnoqyJA/SvWn0E9DX9AS6aW2ZZFMIZtXBrcELjZAu40LYwQmYtvoUuiNZekrWC/rbniGWEes0yOwgBIyHOEySeLbtrz0y6oU+RkUXLmaIgkWjXV3q7hbIwfFeqaWjo4Usrzzpcs1212egDAFwCMAjAtQKiKQFiy29JA9Sj
|
h7qT/SINUkOSP+HEcIAO6rSECNhEgjERYI5jpCJGCJp2OsI+ETjS3W8dsR6AAThGEBAYjROT6+TCWUk5lkVMsncgdWTpoKd91h6+XJsoxZUi1OUSukWQSDU9k9V+nA1egE0ALLxgbASjPQDyKkhlA+gB2ASEwyCZjUhAMeqQrXIucNyeyr0E/yY5Jow5MhMYiUFIbNw3aNkO7tFTjA8ZQWuhS6PVm6TNZ7+UgbThnHMLQcJkPWGwknKxbFD+2cA/
|
||||||
|
|
||||||
4HhgzDKAPY9QNNaXN1KL1seVcgxTJW96Ph5KmnN9jsG3Bq465gkusbwGkjNyXyAyU8F6GrUdqYOda3sQ2sDJv1+UfWVtaP3bUGpQe05bThAGZBCAlg+AbALFnqA7jgNMuUKo50KjDBPUjSYmBlQXB+hyeTnRIOcuOI+1rceG4tkiRcLm4U0VuHHM8HVFaQ80TuQtK7hLRX1W2IA8jdkPxZDSmFI0m5SI3GlMaOFLGrjc8sRKcbx2VXX1V8rq4Brf
|
FsO0JbIDIVk7aFZmvK5wr6uh0pob+K9Ely0V5cm6XorIllq/k9AGALgEYBGBagVEUgBFhd6SAZlHwTDBmGUBux6g7aripyr3Tcr+IhPYecvQu6r116CGnajsG3BKEoq6ObsdJBRmSh0a7/PYBEqxlji51E4hdW9WsEJhUqUyMmR8J1UbM1xLg8oMyCEDLB8A2ACLPUEvGkbPKYBSACJDVyjA7ulkBrQuH9C09Da9KDSNuF2Lu1TQp0T1bwGjQf4z
|
||||||
|
|
||||||
lQarCS+mE2ibxNkm6TbJvk2KblNt02YdoszW3A9FpYrTTXN+gVTqOy0UzZ9NNDeQdhjpQkb+J3B2aUZMk11q4o9bfd9BbmnQqOO5XSTO1F+FMJ8IHUEY3tvwocsmCzKsYP8nGfMnOvxoQil1xNLdRIFXXwiWUiI2ssiNUyCdGywnfdSUo7JHrcRyZe0JnNuDnq/hI5L+pSNvUacfNQDcHhICjAMQTQ/sD2NgFqVGBlAUYUgOrVDh4Z6gVeM0IsIi
|
c8aS3H1veX24s0TuXNK7l9rPBBe2LEobJqHZrTCWRXdOVCp2kwqc5GmvOYy2aH5q3Re2QieioM28sgxevGuaZvM0IBLN1m2zTwHs1wBHNzm1ze5v7ngzaxuANxadxHlSTfoGcJjvIUi2IzTQ3kCVa+jA3QSdwM6syS9FS2xL0tM4xeTIS0LGTyZEbMyQGUZoWQ91YZXHcCLZpnCYyDGYbcxkTlbpf8qZe9WfmRFyYX16IjlJiKgKfrjM36vEb+or
|
||||||
|
|
||||||
0TV7OB/aLU6V2C/FXSLcKEnMBcLkNENzYyqkmH3roa+0mG7pE1hawmE8NJWwjdYQ3z9ZSNok7FlkPAE5DGteQ2jaNNa13L2tDyzhW6rY2oDsqvWudtHMGkuihta0jCQJoBQURI4JoEjE2H0AmhmQdEHgKSEzDKBtxUAQSipq0VlzF6zIfxhvV00ncDNv7F5nZVCgh8MqzcvSI1jfySSThNaplRcPrVXDG1iGK4JZAe0IyntgbKKbSKEDEB6g/mFz
|
JEjAN9NfHS3P4iQaid7ZTmrBpdrwbcpSGiANGAYgmhfYbsbAFMqMDKBowpARWsHEwz1BNARgM0JsOq07LRRZKXYC8UuB1Jm4iqeYB/nCHMaBxBVZMDvU40RFuNnSBrE1iMICaDRwm0ZF1i3y9ZJN0AnFqULk2raKhimjbcpq22qaXR6m4gXtsXboVDt8K47UWvIFnaqBWK+6RRJKAURw4JofDE2H0AmhmQdEHgKSEzDKALxUANiu9s828VvNuAZk
|
||||||
|
|
||||||
CrVvBc7nBkhG2RCSVDtxkcdkQuOLvBJbh/ySTRYpdAWJBdctSaC3HlXTQ24St2JcrS7mLTu4tdbbOrXroa10thp2XIRkUMY2BzIJAiq3TUPmlICfVnyh3StKd1iLA1Ei4NRAHd3/kvd+AH3X7oD1B6Q9YexbcDhxVCCgqmmqHEa0GIlo7yBaEPrGDw1Ha/pF5OMB3uz2gzGVzi7sXJJu16CXSpe+KgD3UlPCLtL2ijPaAcHVR+1mOtXGmTox/Dft
|
H7wC2PggtPRELa923AyElQikCPg1pi01xMtvPEEiOKS3QbTB86xHQDx3me1eU2W9Hblsx0jKJdhWiQEIGID1BPMtmOWreGq3+DKNdocEriTfLI47I+cK3eBPkinK5CoCGYgNvBLDbISCaK3BNoRIO5s0zuPNG7j92LaZNeLFbVIuTVKbHREerAWpuzWab850jHTaisa6nbdF52u6ZdpxUQBs9j5PPfgAL1F6S9ZeivVXtBlA4B5jedyn5tbwtiO8
|
||||||
|
|
||||||
LGd/HlsB1CYCQvGBdWx0hFU0IAUO9dTDs3WgEBO6mJAhiMZrYjj1r2vA8SM5p46eao5PVXet81k70A9AO1LFiSRJJ5gwcOFFLHqBRJmA+gUgGaDgAEhEdLwvpTzoGV86dRThYGGFEuqnQKVhWTNhLuQ3E8ZdQXeXdhqMK4aNlmcDSN1nV3Ea4KwAnXRRogFASrlRulrYO1N277mN++7rRtjeWRzuNi7JoRfp+UQAE5N+2oGwCdhU7agHwGFBRCgA
|
+aA8tmgj5xgBNEOmjCtCVxKgh9CxEffKvXmKrtJyq+Jcusy0z60dB89ddjOBr7rsMauPHXplEOE7WytGCSLGTJ0JkeMBIKnVx0RHfCxOEABnW+qZ0fr8aOI9nSUHxEyd4FxImsqSNBoSHKRLNakdwGF2adRdn5cXQVuZESB6AVqCLIkkSQLBA4MKKWPUEiTMB9ApAM0HAAJB6GSU6DfXc1LXoK4zd4kMKPtVOgBqH++ba3axsp726BtTu3jQYX40
|
||||||
|
|
||||||
exaoCK5wGwAzAew3GWK1Te2XLm4A1uv+klDpopTx6b0d0NOMk3DSMdS1jcu0H9Es3jIykWo87f4ogAOb89TmwvS5r9r3a0Dxg8eX4pB40i/NmgEjE7BfW7cqhWtF7a3olWPkqF2NAMHpDlUIa+98kZaGViH0yDzZcjBNHlpRKT70ScQ8CrPoLTz78S1W7w5kN8P6719TWzfYUIY3gTQjHW8Izw0P1RHj9MRmrnEZV7O7xFmE+iikbSP+wMjWRnI3
|
TaOsomqwiAgk3zaJF3+2Ab/oQGB0FNo2QA+mpDyR69p0e1oQiquRQHNFl0/TXAbT0QBq5SB2oGwAdiy7agHwKFBRCgBuxaodK5wGwAzBuwnGHKoSc4q+3bdiD53TMZd3Er8qHWV6INDCKCWG7h1OgvsaMj9AgJkZ1w1eaweiVaT8ZjwpdZBiy18HNVi4kyQvt1VL6nDyG/DA7DQ3Hc8BvjGrZEdkgIljywixFsFW9QkNDa/oMYBfriazFLoH/eOk
|
||||||
|
|
||||||
kYogFGijJRymU7yW2R6VtuAIYfor/0VjgE/oKqdoRAN1Jm5WhZJvaHFHHDYDue+A73IL39y2Vxe8Yx5tz48qsDrwu/AmHe2Y7eT32zMuQZzKf4gZ1B2g//lB2a1l1EOmEVxxYOlrYdjBhHZwebIo6eD6OojjyZHUc1CCpI7gPjuz6E6PM4h0nQ+okAsgjAYwF0C5nwDKA4AUAZkBwAogMQoVNETAB7CSSGkudoGmBRSksiepLoUkXrDuAf7i6EWN
|
NtjTm5H942wAfCURJv6ZtqJKAaUdxaDsKj1otbbaJqPyKQDUesA7Hpq4yNTp+E9Xu0e0UQAMVhmi7eRJIp9GBjvsIYyMbGMTGKIUxmY3McFlVjO1Xm2epMN+1Q4R+48gMAmFWC8oqD6hPveeSvT2h3UsOymSlo3mTikdekng6jpCr2CMdG62dQCcZqJgxDFp8DWxkfxE7pDb+OMuToUNKGERJ1VQ5+o0PCdmdahtneTWk5/qjDPO4DWGUtO4FLDU
|
||||||
|
|
||||||
h6XR/Vl1ckHDhhJXQMhcNq7xEGukjRi35C1aO2q+qjd7KgGBGHVtyp1WbpdUAnp2k7KIsy3eV7YnRfq75fxo2nPAhgQgMYPJjwxDBmQFEF0HRDsAkZ9AFAKiIUVDhRhw9WJtTTiab1cSNtATOMcdz965qsSm4V0q5xD7+o9tEfW1s1lYxii+j2HAY7JOu19jRjd21A+yYwOcn3KVevzaWHmAwAhgpYViPsG7DN6xVfOz5pFWTTqo6k6qZ8ilv2NJ
|
G9miYJszc17DfNFBZLpZBGBxgroWzPgGUBwAoAzIDgBRAYgUqaImAN2IkhVJ67yN5/PfWvRkIuo5CH6Dve/yt0ItUjdul+g7qtqZH9CruvpLkZE3e7xNAFBbdJrKOEmwVKyUPQI2qFS96j2c/abtuaMbZkV9JpPRnRT2dHS1Bi54PECEDjBJMmGeIMyAoiug6IdgfDPoAoBUQ8iwcaMNXoWNdqvt2+9xX9rQD+8yUQfNvemhdYm7vOEfL1CDpj6Q
|
||||||
|
|
||||||
BDjg+/lJdBjO7wLj4+grWiSK2dw9V9x3EpVsX3pmHCPh+rTmcYV2rmtBZk3UWb+Pm7OtfW6odL2BPTTqzPG8E3xvWnECmzLZwgG2Y7NdmezfZgc/MCHMjnP9GaoQZoBzWnd5oSoQEufRAMj6rFSggEreOoT8odz0Hfc9oKQMwzjz7mx7W2umO81uTuBSePgfhofbY+xBijnej+0UHcyYpsEZKcXXSnwd7BuU3CIVMAclT8OndUweR0oFUdTNLslq
|
7GsrhRrLKpYObqrjeMrebcan0GnZ9/Bpca8fy1jK8ppYBYDADZGsR9g3YHfRaorOfMEgcaJVOoSVSnl2tyR8/Y+ThO8pLorZ7eMiZG1Qkn9GJyUC/qm3IkP9c28RUBXxOB6/9CvBCSSbTnjmM5dRikw0apNznY8C5jRSQJgMdHterJhA+yeuybntzhAXc/ucPPHnTz55hYJeevNina9s9TQL2uD4tQmORSqgzfvHWQc1CX4qhIqfOMPVR98OnU2l
|
||||||
|
|
||||||
dUvCF+yepi9aQXIIE6b1Jp4nbMckMQA5SDYHwGzBgB0QnYagOFCaCEBmgGI9QUojwElyQLsGvp/cU+MiqmhOe8hCJujkqSrRU4ukYpD6jVxJb5BGG+rFhvjPGFEztxzrG4asIpnPDA0zM2APJLvGZGvDAI+NmN3BHsLByUdiCYiNEUj9xF9Rqftzr4D6zxAzAD7Q9jMhSQYwAOM4FYhDBiAJGKMMrGZAwA4UrFg9U3hxPhbJzXvGc5vT00k7uLg+
|
sn1ZNoLjxukSkv+rwXvhemceNVBvzCHE+EZU9cTpkOk7P8GMl01jWp3cciOysT02iM0M44fTrO3Efoc52Ej8mxhoDaYewwBX5tgu1sjYaeN2G7cDhxC5LuFINgfA7MGAHRAdhqAYUJoIQGaAYj1AiiPACXKhm2VlmnmFZiCQkFND88aFwTOUQMB6nupCjQKtXK1uWlcbasPGjs4YS7OMWkZPZywj7qKMcX+QXF5bUSb4sh7qjYeoAxmpEvTnGj3o
|
||||||
|
|
||||||
WnrZH9QfT2jTpMrF0e6xSq19ASBlfScu0uLpLh5z1voP0gJH0DSMzAxecuvRSJAzFfzPUCog2YuAz5qLeBsKg7hlgrY16SfwWDKE+knqc3FVjXmtwlCZx0C8iQn2Fbp9MFsrQ8bxJVbWryF7M5cprT2q/ZjqubMWceWW6RrU7OlqWbIqTWOWccxI38rG38j5ri15a/7FWvrXNr213a/tdR0VGfV1czyWaQXAucgWIBzo0Jcj6tw5IaqY4hJc0GOa
|
/AYlVaPSWtFajSgWudoGYB3absZkKSHGB+xnArEeIMQHwzRhlYzIGADCj0v4HPtH7KrQ+f81rHAtr539kjhlG2QvUCM6eT7L71jJOsNqni4kxAtmnnL7Bm4zpK4P3H9IXR40/PtNPIKENsPCQBRU8z1AqIpmLgFha8qDXXmZ0YYPLl84SRFgGuHpC6jNwVYH5zcBQg8sG0QlUTY2mEuzyDXMWkS7+2bWiQHMwCCTZQ+TRUPW2CXNt519CVmsXPtU
|
||||||
|
|
||||||
PuzJovbcIBveQgbUxkG7uZUsEZZIfJi/HbcFMv49LIpqg0ZeLL0GwdUI2U0wflM8cbLPtlU0Jy4Pqn56zlnEa5dtvmZBDnl4Qz5aNN+XqCAV+9RYIoxOxvRFEDMDQewCYB/YYwc1CRlIBzAhADYWoMrNSspZ9+BhxG/zpDRNGRgkcapLeMxtFxTlJV3A+VfsNVWFdOG5XUmcatEbbCXhzFm1d10dW3rKAwlvmaZuFmWbOFks1WbLORFbdrLIRYNo
|
aTd1wtcuf9FyX4D6exA5nrq1vWPrX132D9b+sA2gbINsG/+vfaN57rHi8KZawXBecgWVBv6H3ubhyRFUuxTU8UwJvXGILxNu40/TJveQKb2q3ywlf8u4YIa+V91OnZPX2nX8shqK9/lvXY14rD6xKzoefXJXvT2hlEeJ1CPqGsr7t4icGczuyQVOrNEq8QWjPllYzFV+MzTZX6YYHYYYiiBmEUPYBMAvscYManwykB5gQgBsLUFtm9Xwj/V3ZX0H
|
||||||
|
|
||||||
hOX6Rt1+oWxmBIygqGIHwKMKSBdC1AKIhAViEkkKLKBsAgcD2LLcEH6k+RE0U67ofOv1GVhkoTVWdDOgAkVzNJto3jkQR/R/UFkXSPSqkmdiGThttxUecax7BAbkx3xVbeuJg3aR9AF7EsFgYmg+RqxlvWeXtCOFwm9oZXA0j7zIKBgEVSQUT3bkeCJ7OWsC/ltRJT6XDsFirQvqDolAattN8e6hfDrATGbW+n4wHMGuFdhrgJwi1zcXs82az698
|
2MpwS44VCpF+P5sFxprRSd1HNf5QLXHdS153Xxrd3dmvdW1vs3icHNq2g9/+qo2NjJM1CpzsKsSyhRq4JNWWUlk2+uxXPm2ujPR624EnwzEqGIHwaMKSFdC1AKIhAViIkjyLKBsA/sN2G7fgV16UBE0GG1srhsbG+1OwFIWdDOhqFvzGpqy7oKZ47hdIwFm4aBe1OE2Y7nBuO8GwTs5bk7VNxfY4YCT0BnsywSBiaBQH/Hd969/fWliCb2hlctSe
|
||||||
|
|
||||||
iy7obMlBd7+9w+8fdPvn3L78wa+7ffvtf79SJvdbQSaMVd5yYEkFNvdYHy/t4wzcg1WF1OgOKIHl6vc1dp+vOa/rcD52aeeBvnnrbCNf1PbZwN+Onbul4UwDrzLinmOxlz26Ze9vmXfbll/22wbgI6G0RDlhmmHd4MY6HbqZDywpyHKGmKRidicsnYkPmn0AHsUgKjxNChxWIpAeYMwLGCrXSQJGZQASHwBsw77Pp/Q2BrjYUp3UvxU0PxMFTZwx
|
IecucC+UVBFPS4PXEughVQWd+lE6NuhIAUPd8t7EyiU/3FHOLD97i4ddAqa3STp12o5Sw/s7aY94l2rgntnNLnAHZtktfotoEZgIHNEKBzA7gcIOkHKDtB/oAwd4HG7fFD9tbylMkGx5d0eyBJCzao2R1/e388pVj6ttYup0RLQw/xtmCJ9289y/Vj2Dk2tVqSvLX5YtMNkM7UNHfKFdzsk738Bdind1FdM06hDZdmu+ocrvvqSa5dr9f6YJERPc
|
||||||
|
|
||||||
d5D0SIVbbuwkO7qaCq3Lu7uOGEzcG6C1/2TM2Fc4aZzhy8ZX08P6bY2ae4I/9ltb57bN1jRzYrMRyxHE1mR2fpEXxGZricoznABgDxBzUmAD4JxEIDzB9AzANVGjwZFNAP9B1h9kIJSv4majZ1uPXOauvkJ7KKttcxY6dJzB090aFHHZH1u1qhjRt1lSbbfpm3PHlt7xyg8CulOIAocB7P7BdBcEChsObBng8MO/NaBWQtXO1OayY24gVD9VDQ9k
|
rvO/y9U4sOqchdndjskJsqv6rl96AN2KQGx4mhg4rEUgAsF4HjAfrpIfDMoAJD4B2YGD0s2fwGviOojgQ00LJMXAxgKse9lOLpEPv2hFgJ9jI+fayOdmGNkAD3Xkd7PWF+zJR0xwdZHMjYxz4vQRuSb1ugGDbC7H+8bYZMnbZLHjozeuZKDmc4AMAQYMakwAfBOIhABYPoGYCKoce7IpoOE6wez0erMT1Y/g+b3w3WxZCEyn7bSesoojxw/UqcMW
|
||||||
|
|
||||||
INS48DDq46TZYcU24L7D54yPe4eUadn/DDCzPawtz2RHQcqR11aBOSPojHyq51NfQlQnXdzwB5085edvOTgnz750sF+dCB/npRiPWOaEHshqjyRf/V3mazLQUwikEAwss1tAPW44aIGVY9pNdy4DX1hAwedce3b3HCDtSV4+e022kM/jnk8OaCd7CXboTwy8DroP/D2OPt5gwk5gK2Xknu61J4C7R3M1I7UbnJ/qe8vKd+aYh4p2adTvoBnApYUk
|
AG47IdkCOyYKjvgWLBsdqC8U9fmcPyn8FzWQbGDj3ZfYrodgimtEfYXzn0iN2itBxJq4lpjWfm3ECUfps4ZUhYaWCVosP7pbujoTfo+m2GP2L7kEx6rbMcgvwKWt8FxOZU0XXP7ML3i/trzWSWC1CL5Pe46eueOa56LzF9i9xcnACXRL5YCS6EBkv5j+ltao3nZArHR52wjvDKI0KrRknrLxYOKo5eQdm4QaDGQmD5d3DN5Qr1hyK7qQlPE7ZTny
|
||||||
|
|
||||||
MyAhTmpWISwKAHCmUChxvgCtfYGuB+EV3RCXTv03aFUJzATHxsyRKeJbtFW1nlqsq9M67udJqriu2q4s8gCq6B7HhoezTdeMoWJXoea5Zhf6uyv9H/xhVwRa5JnOtsKrki7Ecd0b2EjSRoW8wFLANgeAMATALXThQexSQMACgNElqD+ZagzgZwNmoBdy3F63Im15qFj11HIXCenNHGHzZ+g4XWOXvBSY0IxgM4aLvPT2Mxdp9ZLIb824g4hqV7UH
|
9w+KbY7sCUGK0y2/lT1OpDedyK/GWiscdi7KhhK2oa9O9OsR/Tv06WQpqBnudtNUZxaavPhnJnHdjmrYZ7sUE+77xgJM4FLCkhmQYKY1KxGWBQAYUygYON8Clr7A1wx62l0IVXsG67QewF4iAnVMlYJEj4+5wfcTRH2XnMYN5+0mWsu7VrXzwTUGt+e33/n99+18C41vgqwXm0iF+/fdf2Omj3926844ceuOiJzJ1Pc9ZrnMBSwDYHgDAEwCV0YU
|
||||||
|
|
||||||
fmtgP7HzCSAfRsbal04JfM13k9IXDzhW0FESR4qBVtl5Cw5d9IPBUFjYDy+JsQXmH9V+3IK7YdPHt3Wz8V/4YZtSv9nzNn3Owtwvc3FXEjrq6p/nYDbrn/qyE1fuhPXZn3r7995++/e/v/3gH4D6B/Nejnyji9ZTVB54kmsVgi0VaOY6xzehbNbr3lKi0JFnafXt9Xc4Mdw8wO3HjSeB0R7Df4uI3vjn+HDSLc+ptLpB1/P9soNhP3brHVNwwZXV
|
bsUkDAAoBRJagnmWoM4GcA9ryX6wxvEKNTfCUm9L5whyZaYvxhLq6Vb8ztfA7pPIdoS2MOnDLcKro7lbzPvqdFelPnjJpk/FK/KBsBfY+YSQOGNq2w50GYjurTSiVBu0YhtbcUbzZ1eFtf+WaVRzLaNzGvJb2jhi7LZdqWvWLStyDwHug/B7wVzr+D66+ANQvKTnrm6wdt9dHblGjJx66RLZPGbioBHojyR+PfkfKP1H2j/R8Y8Jvwbixj9m5rY+
|
||||||
|
|
||||||
+2N1WbwO3Zb3WOWNThb2L2eqEN5ORDvlyt2MD5UQAXYdEFEC5iKPMgnY2ACgDRDZhjA8MdETpU7HPSdOq73T/ke0jVwJA2MuwYhrZFTS/mxnrd4q5M7nfRgF3BhZd84dE8WEN3zVrd0vtHtvGJ7tqvM71aCPFCBrJ7lT2e9DkcaxrTym92CbvdyPNXCjyABRAog0QoApYb0VRAQDK0keMV7AMwFIDmoPYqZMDw/f/BPmTrYL1+xC/00NH+ooBlse
|
eLfo3PRaNm8OElYc3xpPsRALA0w6HLXrSO/k6VUyfVVntDh3Pq4eCHzT7br+DU+CvupO3NGbt0097eF3KdsV5Q+6aHdJXBOKV6PmlfHcZXIABh6dzlebu1Puvi79uxZmmci6133ZDd7w6NQxIUQtmGY8yAdjYAKANEdmOMEwx0Q1lDsI9Cc5FGRHvavxRNLsAIa2R+UJF0SFNcedfvnn81v93oUA85H1rnuiwmJog9f6gX5Rx18STg+yKEPk5pDz
|
||||||
|
|
||||||
AlkE4Lw+gDhwvlQsgNiAvz24L4gd+vBvwvHjhS55qUt1fMApYEjEdCjDYAnYoqhGz09El1JFc0YOjitFMka34NYzrjzFXzSNxfQ8JQT5cZJuQWybX/Vh48epu7exXfhg3fw/k/fGDnIRuV3vsu8erhqN39m3d5Qk3P73dzm/a9/e+fe2A33372wH++A/gfoPmz2xeW1CDHpjnzbf1ERo4somZml3G77LWIIDgkiI/kTmw9QOMXoXwn7i5J8cmYvm
|
OYw+G20PIXxPWF8RdMmWTFt7o9irAcUQKINEKAKWDDFUQEAstDHi1ewDMBSAxqN2A2SY8EH/wmF6G0Sg49dE9Ob56g4OJVER8SYI+At5KtxIWRhg9Di44w7H0I66vKq7g3J7rcKfKbSnhMws4gCYBSw+GI6NGGwAOxzVbN852oURon2oRK0JyUHchOTXdXkLfV1Z/La2f79UtnR8/qxNWu2LytwF1B+h8wfy0Vj7W+Ht1vROAv/9xx7SfUV+vMPs
|
||||||
|
|
||||||
l+0NG9UtUuaD6ZZLwm7S9Jv90Epj21l69uMGM3eXpEQV5zf2WQ7xX9J5qd8dUvdTuT7mvHYKc1e6vC3ZgDJo9giz/MuAHgIQBNAewYI8wIwOqhEGDfeR+4/8kKKvB9IY+LzWb6igJ4FtIm1CVuNuCC6JBQujuCLjCWzgbLVgCQGnolyWjJdrWS+hhXw6uW+yFPs9pT86uOddbxHnqzXyc+1+1nbnFFxOS5m+AfBqQnwXZqLndCEAnYVsCiBQE53X
|
B4B7h6QOE/ifpPtgOT8p9sBqftP+n4z/S8RO69+AYy2+bBr9sDjAS2yAX+CVeglojWFhbseH25O4dtXjg/V7l81uxXzXiV425MHNvQa9oNtx35TWKG7TXbxp06fkP9u4rg70u8O56daG+nXTidz+qndc7Fvs7kM/5ZTWGYIzUzld2Va2+MiVfHxiAKt2YD2a3Y+szzLgB4CEATQbsGCAsCMBKp5B93ijQb4kQrArwPSBPh3s+/IoyeYiN4n9CoRm
|
||||||
|
|
||||||
YhANELFj+wbMN6JHQ/mOrTEASSKOBmgTsC6AJWOjuxb6k+gDHq1GvRHD4f2QxJkL2KK5iDDeeVrGjhYaAfv66MmwxsbawOsYK6SfkFtkg4EudXv5i+wShtgD6AGYCtCSAHwBRBsAzAGaAjCmAEiB5SQ7jEzI4nqIuDJorcBN6Z85DD6hJASkLRziQK0PFTFsDPDFzV8LPHISqiAAnQrcMcvgf4COivop7DsRzhbrX+S9pf5EW5QHLxYIqrqRYPe0
|
7qLUXG7TyoDuPFxBUqCOtYpcgYF6jaiS0FlyOsfuvBIWOXnr74uuQlrY5I+V1iXLYSwXguxf2mPgG46KUfsG5IGtmN8AfA1IJ8C7MIuB6CEADsBbAUQFALrrXYQgDRARYvsOzBhiR0J5iK0xAIkijgZoA7CugHVpg7Me/4PoCN6sNnS5ceb5mMgwC7xN+YgwVDq+glKjWDxoSebBlJ6LqIrnGAm6CdEnYt+yvv3Z5SnmN7DeG2APoAZgK0JIAfAF
|
||||||
|
|
||||||
1vf436j/s/64Ar/sQDv+R0J/7f+v/sdIABQASAHug4AQaBQBCADAFwBC2jb75uFRnDZQ+h3OC6eg79oMTqowzi8wNy8LsGSWatUvygjK8VJ3KBekls46Qy+Hh4rmqKkjv7l6ilsg5TygSsGqzymMjTCGSlfHwgqBtfADD18nPAfJ04/TOko0ybkh3yFKAsAUrPy+Sv3zZKRSuzJ5KxShsyXmQVl1zaGLFM4C4AbMLnJuwFEGzAaAPAMwD4A+Kr34
|
EGwDMAZoAIKYASII1L3urSMjguoi4HGjNwL3qljhC7qGMBKQkIuJArQ6jkyzvKtfFzzSE5onzzbgcEjD4+43nvD6+eAfmIyhesLkrzo+EgPIyKMADlh44+IDvj4kUpAeQG4AlAcQDUBR0LQH0BjAd9IsBbARwEeg3AQaB8BCAAIFCBbmkz4Q2jeCzZs+NLsrSr0gfNIEI2gclwrhwBSBQ6C+f5jRgDS4AkFTqBYFhW5aBRTjoEf4egfW5QwrfusA
|
||||||
|
|
||||||
OcjHitDo0KqLgbv47tHsaiQYaNlgf0VGM3DZwFhgJ5ckSyq/yrKZ0B/zFaeqlsqLgv/CiwACUnlmbbOsnrs7Heh7qd7HuQ1uNYTscEuHJXuFztI7WB5+nr52BQtn7r7AFEI277AcWGaC4AHXBLhswCtFRCxY0wO3TeBwAaAGSsEAYEHBB8AWD66O/4GwBcW8HgcCrAXTJbgh8VUs3LheXerZDAyH1vZpSW+QQPJNqYaJQF4uNAesR1eNEEsCs6r2
|
ZKJfNkrowuSrjC7BLQBEH18AMI3z88X8rTidMjSiLIhSXfF0q6I4CtFLSysUq0pKw/SvApKyCzAMqqymUurJOCO/gEj9cIRpRTOAuAOzAdyLsBRDswGgDwDMA+ALyr3+5Zgb4rQXWvKjPODGGQwOqhtD8SnkcYHSiNwdtKfZW0X/MV7W+0LAAKOen5J8qgCKLBAK/KkPp77Dm3vqC4nWfvmdbCW/nqJaBe2AYipqK8eMH4R+SLkG4outAkXr7AFE
|
||||||
|
|
||||||
PMAdO/bh8S0eIkGqiGy75FoRJg75FMi+CiwMjj42SPv9AzOtwRqrlsUQkCTVsG3hqIGquskaqpCJqtL47udNr8GSuXxgMaksgISf6s2Rgef4mBGvmYFa+lztCG6+j3vp5auJQAiFIhFACiGxYaIRiHKAWIS5g4heIf/6ABhIX4Ekh0AbAHkhYQeB44mefs/bt4hJv1ClIr1iqqbCYUIdpUqjpLGDvSfSOIhEBTjt9Y8hLJkpKmGlYWH5nmEfrGR4
|
Hu77AkWGaC4AvXOLjswUtFRARYMwM3R1B7AZwGysPAS0FtBwgZ0GZejeGwA5+wwY9wTALTBbgR88pn3o1ux+kX7zBTDpoF6mDXj3jzi8AbBYvGrfsp4SANEMsAa6L2AsDHOy9n4LKuenlixiIKcCTAn6yYBGHdY4Qh/guoyOJcoTAfoJUoDaSQtWypCdbP6rLSHui2w5CYap2zvibnktpe+nnj74CWqATrYchgflyEChqPjgFeuHdIF56a2Pjh7E
|
||||||
|
|
||||||
c8kARzxeXwu2EjqcfiQbjqVHHZRTqdHDOqtG3UKn6ZeQmDGyZ+uXqwb5esTkHZI6Bfmk6j84dnwbSc3YeV6x2Q5B2oqchTupy1ekwcS7BwCAA2ANumAA3pQAZoCEDKADEB7AwALoKxDOA2APGq9KaVoO77ip0L+QD6Z9DJAqoTwZYb6y9oBpBWkdlG55YK1wV+SRE4JIqKLgtSG8yqiLhtBGqqi4MqLhcqXPQp7ukdAr4Oh2+r8Yq+YRmr42iYci
|
BYDmKEShFAFKERYMoXKHKACobZhKhKocwGsB6oY0Fah/AYIG6hGfhS5faddrg6xO6boAglIVzm6qHCYUODpC+r6HGDwysajk4S+eTuPoy+JNokpxGYiOK4NurXu36kc8kORydePwjQx3hOdgxznqEIqxzXqlfraZwiA7qN5j+43q+pV2U/nJgz+HOnP7ZWE/CM5L+VHI+E2mAumv6tkZpjGazOO3lVaq+gcAgANgu7pgCb6UAGaAhAygAxBuwMAK
|
||||||
|
|
||||||
vaLSarnzbDaAtqNr0UHADRIwA8mPoBUQSSPQCxYLmASChwzIFobBwbMEMA5ukALFg+BYwF14kY8YC5hHQCWHADMgpYMeD2oFIYgH/gUoaC62uOYZGCPkbnGrip6sYJZpUKMVH+RVhePoG4jGr9OyhjKd5IKEkeZgoeE1u9XuahjApIGwApgQwMHDi4ygKSA8APsE7BkgtpvwEfhEquJB0hMVBMiEwD5EBEP8MkBv7HGsCITbZUfeiZIvitku+LGh
|
6CsQzgNgD0qN7hIARGsuKdD3k5FstDGUUGBSGMa8ovaBvMZ0BNK7kVPIia/imou6qBU6NHqITafESDwCRuouaJxBzIU64oBPnmgFNU22sj4oedYbyHwugoS2GrmbYSRQcAXEjACSY+gFRCJI9ABFi2YBIMHDMgwRoHDsw8QKEaQAEWPUHjAF3vhgJgtmEdDRYcAMyClgx4Nah6ht5h+wBh1Lmm7QyRMseQ+cauD3pjqQSqcL2gtKGFBhQdoVL4uW
|
||||||
|
|
||||||
VkqZI2Sb4v+KIWwiod46B2EfRpK+Z3sCG3e7obwqvKyrpCH9avNrxq2B8jsQI0RaPPRGMRzEaxHsRnEdxG8REAPxHABgkWMDCRa5GJHeAkkdJEIBdvvqRWW/WorZ2uCPmri5wWkOSZFq1hM3IAkw/gsB2UekdyEsqBQRvjGRb5L6BmRv9OUGcIlQWNrVBISrUEV8LQElFxR5kpvKvgMUdZKvif4lGBtByiIzAnymSj0H3yOSkMErMgwf5K9B4wV9
|
BTpBbvUrDGjT6CF4RsGGBm7kajGo4wKSBsAFkPECBwYuMoCkgPAF7AOwZIGmYuBkRrREaQpWBMDWsdtDxhhUbEcCwhyALPiReoA2u5KQSXki5KRyLtOBIeSgEt5KwSCAfEGVCbITY7yRdjopHXWPIS0iFymQSj69U4Xs1yVyePhnpaROkXpEGRRkSZFmRFkVZE2REAHZHsBDkeMBORk5K5HeAHkV5EiBzPh/CTePot7Yymd0IMQgIWkMqYiqUaLP
|
||||||
|
|
||||||
F/RvMpZGBIcKBQCXQHsN8AUAlmE7CVAVEG8DfAUrHRDOA5djD6qy+UmeSfhGkOVirAi4IFEjyl/IBGMs+MnZLY0FuIL5ckJMimCtSfUrqpqcFMUTFtS/Urv6YR+Qn1ZOhBgfhGnu17oVGPAxURp5nu9uuq782j7tRG0RdUUxEsRbERxHCsLUcdLtRXXkJEiRvURJFSRsKoNHYmQgsjEGO2YUY7zQFbLsYecqerEp4BiepXBk8eGtkG4+q0UyZYuL
|
JbhNGLsAG47UvFECuiwY6Fb4qUa3Bi+GUd6SbBRfBZI4qVkvTL7BTMrwi9RnkkBIwSEUS+AYxo0cBK+SLfP5JXBTMH/LNKdwUAptKjwT+wxS+iK8GJSPSqArvBSzL8HDKbxrt7lAMKBQCXQbsN8AUAhmA7CVAVEG8DfAcrHRDOAS9pRHCYDshWZ1RshCVi/8HxBqpJGFyg0yuoXLmEpZcK0ANrcybMoQwcy7yrrEWQvMgbETRUkYVwyRSQXJFoS1
|
||||||
|
|
||||||
mptFNYRglF5ChkDgErcIQSiXxzyoSrjB8IdMVTGEyLTD7EEy7Uo9FHyz0Rkrt8dMu9F6I/Qb3zMy0cRfJsy5SmMGjBkUmR5BWBIM4BCApYHChjAHXGaBEShAJPSb8pAMAqaA2TtKHoAuPJIQYxfkWVgBRVwUJiJUKYLlQZBUkKO5SqOobXDLyEyKvK2yfSPbIbK28i7IeCe8pVQDSe/t1Zye9oTlH6BpQoYF4Wc7Fd5FR4ITERcxUIbe4whfoVvY
|
YZdZ4B6QaoqqR+AabaEByLlF6oukANpE48e0YZHGRpkeZHisJ0d9LnRF3o5HORt0e5GeR1Ko9FdB/4JLGNij5j7a/QtbHpA4MU8ik5qBSgY+AxqF5GcbfgcqpL5gxupm5ZBsUMU5Lo4+gZeHJa5kjTJZKFTCjG0wdki+BGxE0vrFLSdTC3EmxS0hcFKIpMU0qd8YsvcGDMLwR0rUxigpAqMxisrArKy3wT+xDKi/NTbZR5QASDOAQgKWAwo4wL1x
|
||||||
|
|
||||||
GeAKDVF0RnQPVESxTUdLE8RssQJEKxPUdgDiR/UarGyRQ0f+C0eWYUpE6xg+I7iqo/9mj5Y4yTOnrI4ylBMjyCFsc7HVhAbi46GRuTHbGmRTYeG6AJ08lUHBK6MJ7GLyfCF3HWya8nbLOuSCZjE7yw8b7Q7QwcZGTUyp8m9FGsl8p9EDBLMpHFBSr8k/IxxXMsnGAxqccS4MQmgBmDYAxAEIC9CJoLFiuAp4KvwZgEYkMB4mr4XxCVx6Mb5FYxdc
|
mgDEoQCj0B/KQD4KmgOM5SxGDE1I0RVqvLGNRYiM1FHkFkC8Q/8WWClTm+bCoHLZCmNqHKPyEcu8ovyschIjxyBVJJGlhI2IkGpqcioh6chdsdyG5qS0Uiq4BTYTJbqRRASKE1yXsbpGdA+0X7FHRgcdZHBx9kWHE3R2AG5H3R0cT5HimX2lp4LhCRO9FI4DuAqiUOexoVDRaWcTSh+yXSE3CgxtfkTZVuKUYVHQxcUc35Vxo+tsHny9cZfKNxtM
|
||||||
|
|
||||||
UFGjOycL+TAkkcNnA20KqJ+ShCvxAQpRKacMQpGxzwWpzxKlCimAW4ySmPHMxh/noHH+7Med4L2q8Wp7ERV/m6Frx93hvGVRT3tVGix+8eLGNRUsVxEnx7dHLGdR3UaJGXxfUSrEyRaYeD5fwQgDSHw+WlLhqYKqeoi7GxCHjbILADtDj6AJ+kSAlkBRkasAmR20ZAnRe0CQdEiIR0fAknR2MuEoqJkSjtDqJMSvHjFAOiYkr6JtCngmaoBCa9ER
|
sUC3y78Q/Lhy3erwg/xb8n/Efy20D3E/yfcTcEtK4slTEjxU8WAo6JlMW8FQKvSszEZSiCgvE8OqEbv4MQmgBmDYAxAEIAjCJoBFiuAp4DvwZgyYvECSm/QXxDkK3lHLENRisTfEW+Fyilym+oXH9CEWjcKmEvEhStwolKWkHwrrWFSjIQzE1SqIoC8EiogH5cyAeWGyRlYegEQJHrrWEOxKkeh5KRa0Vj4Rem0aA47R3segm+xh0QHGWROCc3Qh
|
||||||
|
|
||||||
xxCR9E/RZCXHFiCD8nQk0JAMe/JAxhsBRCsUbMPgAEgbMFGBdu+wKSD+Y/sC06JIpIAxDZqWwbzo12yLIu7LQmfMVb3oD5FJCpwq0FQx8o8kHsAgWeCuCwrKlpI8EOy8Qq8E7KHwWiymqRyhWGnKVPBcq2h+7ns4mJMrs6FzxmnovE8xy8bySlRWnuVFkWjif6HPeDAKwD+wVEJ3TzALmK+7+YVSHEjCyeGFGDPs3iWfFdRisQEnKxA0bfHqx+pL
|
xl0ddEuRhCXdFRx3kTOGiBH8EIBGhDLrwAjAbuuHDsu08nIQY2ngSALWQAFCvKOWlxvaGCuSwaXG8J5cbDEQ8rXsIlIxhwQIjiJdcS+AFK4VHEkLgCSWUpgAySVUoiKtSqonWYwsv/IUx8Utol0xo8fonPJhiZPFPBfSkYmmJWUuYnsxliQEgUQVFOzD4ABIOzDRg57vsCkgnmL7D7OCSKSAMQPaoiFnOIYZ3jJg/7stCpYjztKJHkWuNZDqEO4D
|
||||||
|
|
||||||
lKO+StkSb7CEkMVRFqTSM3IvU7TLRwrReQWtG8h/0OAk5JpQaT7IOdXvUAewFEEICsQzAN8DWu5cWsboxh4i4QjAAMDFSvieySGh2KIFNN6E4j/LqHhCmqhWzRCOqohGJCZoY2wWh6EfyCHK5qi8lWq1skYm6BOEUI6HOHMRd6WJ57h6ElRIIWVFkRFURq6QpxAvQAwpcKRHCIpPAMikhItQGikYpp8R1Hnx/iVfFBJasZa76kCcIpGGKywmaR6Q
|
TxUW06uLYkhD8X/xvKIPtSHIswaHSHLSgvNGq6QsatNYM8oKubFeErIRWH++VYakEY+JSTAl8hSdOH7Oxbjq7HCh7sbQL0ArAL7BUQrdAsC2YhHp5gFYsSHrKYY0YF+ytJeCVdHhxXSZHEPRpCQZZfaDUjl5Jx/UAcDnCEkJlTR8KTi6wY2juJPjRUHCUeF1+svv9BlxMMQImZRRxJ6HoA9QG7AUQQgKxDMA3wCm6BhQIMGFq+3AE7If4V6vGC/8
|
||||||
|
|
||||||
TDhw4aUD1lMie+65ndx/QcwIKKMpNYcyl1h6VF+wQJHKeH6AJKlt2ryQ0kNH4VpaqD2FjqBOAOFAiw4Qxzo4vYSDomWOHGZYSYWfrOE5+84YV55uTlhk6uWNaVWkluXlp9bQKe4Z5gHhDCVZGSAVwM4BQA8QN8BmgDYPQA0QRgAxCsQ8QAxCkALoKHDEAHRKsnV2jPqgDnQCQMViNIGVI2zBRXcXpB7ydirjRRRdWIu492Thn3aJRKzqmbD2/INr
|
QEvin+oDPFQhukHnHSiph3qumG1sN6A2zZhQmrmFuyuuAWEFCxjvyDMpgKmykJqk0SAloC+SbNEYB9sQ2FG2ZSddbNhVSZipbRVtiRQyphAHKkKpSqTwAqpwSLUDqpmqbgkXR+CZ0lEJPSTHH6h/4PHABR/2vNC94j+ja4Y4KTiMD3KkUdExo4VwHJJVerXkXGuWhTmsle0gOstKVxPqaPrt+O6vJDSQXfvemKosEb370c+OK+EscUIh+Ho4b6Xe
|
||||||
|
|
||||||
hue4TEtB/QekNVgfJKFP8HSuR7r8nWpFiSCkApo1p6HGBdiTr66em9pRHb29FNcz0A8QC6D7ArEA2D7AdEIAEIAJoMQD+wq4M/5EYhKVGn/g0cFEHQeqAVvRwekSZKDXgvoCcooeW0AP6WaYHI3Cpo9jjnpchTKdbHrRiGAsCQkeGtQHmRk4kMnlANEE7DABwcBQD0AJKSKm0u6yb6BZWVwBPjmg4mWP5AwLPJbhiWGelJCj6vLiL4ieWifEIS+V
|
ol2tOo+r9OI7pP5ju0/rN712YEcM5LeIGjQyPpq3lYZLJp8eVbruunEYGS6kgFcDOAUAIMDfAZoA2D0ANEEYAMQrEIMAMQpAK6DBwxAK0Sopa9uinnQvxIVh1IDWh2xHkskG/F6QgJEwpGEAPgB6X2a1pSF24YHuD6FGALkBTRoFkGDShcbUnpCVYnKRCrWOkLrbFFJoqYKnzmcCcUkXSlSRtFdpNSddjXM9AIMCug+wKxANg+wHRCsBCACaDEAv
|
||||||
|
|
||||||
NghYbOmLP+mI0fnJrIgZeGplGTxVLtPGmJs8TBln++FvBmc2fMbakCx5EXp5bxAYZABYZOGXhkEZRGbFgkZZGRRmSAVGSEmUhX8LGGxpTnvNB9IC4IUjfSADh55KQaQUTjZp7yeggOOfrkAkkBeHiylKSEqVRg7RJTC2EX4HYepZFurWSn7x+P2il76Wopt/jJukTun7RO04fE7Z+cOrn6qm9NPm6rhmTjgYdZnDrjqVelflerGmSdrOlEuVkaHA
|
sKuDkBuGEalJu/4JHC9BmoM+ac+wWsaHpo14H6Bo0LLmsyPk/0VMGM4ikJ+hkp+cXjY1+rqVwn1+xMnGmZp3qXDFZRHMV6EOw7AYHAUA9AKakRpDxFp4iQwLMNZXAk+OaCLApoGxn2EwwPyh2WekMEy36Jro74Oegak54u+LnriZ+6Emdm5BMWpKeD0GtaZbGgJCPm66FJyHgtHQJS7G2m6aCCZ2nyWltopZ/IBmUZkmZZmRZkRYVmTZl2ZkgA5l
|
||||||
|
|
||||||
ugQwC6BU6PbjwBWo2AHcxl4LSiaBraZKG+FDeAgdIiKq75PlTpUY/gZSaiX5lVIZB/5Gcmvpq3r3Z1WVmeBTfpLVkzFgZB7pBlsxPmeYl+ZC8er426NifhYhZLqULGC2MJgxAUQgQGaBN+cAOuL4AtEPoBUYBIBQBwofjNRl2eOJlYyZZaADB5oBl1vB5E4z1AsTvxKafC69Y6ejJAVsAkrmnAJtYdi5xgyetMiNZOqFymyZEgGaDzkh6ZgD+Yms
|
9JT0WDjDhy6bl7zQPSAuAFIecbamsuOaDQYAxklITjzApvi6nS+bqSeG7y8WQJrXpSWdXHt+2GE+HJ4QVmGTfZrTn369eA/nIZ9uRdiP6/hgGZ0706E/qlbV2wERBnze8/hBEwZf2bBGr+S7ut4b+MGlv6jAKEfM67+wcK6DxAroLLqXuPAGajYAdzG9iOUJ4D9reJt7qc50Z0aUPhhQzqhGG4k+gh/5qURooRbym4Ao+QABNWP+4X22RlfYg+wm
|
||||||
|
|
||||||
Rdn0eDPiN7voBwOMA0MNklhr/h+MZrhqoywKeC3W5uFxhtiNwUTbC+wnjca/ZHmDZnwWyabcCeyZqdlGOhO+r5muh/mVDmegJESfrOp4Ka6nhZUKdago5QQejmY52Objn45hOallyREgJoBKgESRgFgOfKH6gh8yONsIlhf0iqEWQ7Ke2IVZk6Wkmc5R5nZTE4jYSWnNhZaQjTZw0fgRiF5cbmQbZkibv1mdZ86oNmThMprE5k0Y2cqYDpS4dNnD
|
QUa+65acWjyZcPgNnJBfKYoqqZLaWj4aZyuaXLrRxapKkKW0XiUDmoFEIEBmgJ/nAAni+ALRD6AdKASAUAMKJ4yOZdsLPRmM+2d4ySBnHlz5eZKkijRAqhwr+7MJr3DJC1sh6RFnV+WpglHMO0nu6lM4xlLAGeWp8d5Y3p/wehmq+ZoEORUZmAJ5jxxYRkGH6+6KRIjgSf/kqhwmfsooSKoz/mbRspLGMOI3k9vlo70W6JoJmYmr+q76ueZsUAnS
|
||||||
|
|
||||||
pBee5ZycFXhX7lu16tX6C5pmBwDmoFzHhifA/mBQDteGYMGDOA/sKWAugmACkgnpw3iJDtsnSNrIB0fcVVigk+ye/Tc5JCo2zLeL6aJJzONVut5G5oyFt6rOmuulEGi1GoboQZR/j8lmJ+UV6GghF7k7mgmKGXWZwhMJg07m+dEFGDmocKFRBrprEMxFNm0WMiCRpxOWDih5HeWTnTmKMZTn9E1Oagha4/vrNHJJBWb9LuuAGOaQT2ACY47p5+aV
|
RuSVbENpNsfykuOykZAYTZ0Bg9Y6ZM2d2lzZzwPrmG5xuabnm5ludbm2522bHESAmgEqBDJXig7S7E/CQwkxMfimdmleE+B8Si+foPdmJRx4Ww7xgjEUBIJMb2VskfZtTiTBd+X2QISSGQORFb9ezpsP4jeSIkBldOhNKO4s6M3nXaI54EeayQRmdnfkIZkZm2Qbeq7shFoZS8XfgcAxqBcyYYnwJ5gUAp3hmAhgzgL7ClgroJgDJItGa4EOE7SB
|
||||||
|
|
||||||
zl/EW/mXqjyFehZFzpgSKHCxYJGJoDKA9QEMDHpamQx5npYgQkA20lwGAgvUxwVUhxgzHrO6i6Q+Mnm65iJOZkG5/Hvhp3G4npL52ZQAhhFA5xiRam5RQIaI6OpdqT1ow5dumvY6eX+VVGJytQL/lwo/+YAXAFDYKAWxY4BZoCQFROd4wh5ZWOHnxBeVFJATeIfKvK0pnnt6D5IAmXSZCZeaSJm1ZAMHZTZwWHrklOxjjpG7iQReYolJe3WYn4GW
|
1JzW0VJbrBJmuENoMocyQqayBRIToTvOK1sD715ZhDfYiZUubtYy5rebD7cpeSbykFJymSNlYBY2fHorR5SVpkEB2HhpHIJvRts7J+dENGDGoMKFRD4ZrEEZGbmYWMiDzpvkSNBL5j+a5nseLuR5mt67uVlgHAYiJ+GbprLjIYY2p9N/4zEIVAsnVe/LpwksOsWZHlKgPWJsmf0krgCHSuEWPhiaAygPUDxANGTlnS42eczkxMRuomid6xKYk5jI
|
||||||
|
|
||||||
leWOEROafrXldp5ZJWSN52bpNncGRfqV6aW0ReOlx2PeatlFO62SnaBI+wIxS9eHAKGKhirEAxBDAoKt2ZLApYB7B/+iBdrRXZ+4tgrFwGeuTC7Am4KSpc+VSEIFb+1HOVpaErrrgpO00iFcGRC7tJFFn5rGSFylY+goomB0IrloEfG6FlPHW5eEeDl25kOURH2pQWSClw5ruQjlUR12AGkfAQgIoYmgeGGMAIAocGwAUQJoMHBwARzGzDMgwqQC
|
ihPGCGes1hbrD4h+eLaaOdFmibWe3zha4tZitm1nS5yckmr8WMivLnWxu0pAmaZQXj65q5aQRIUuxUhUglSpNcrUByFMKAoVKFKhQ2BqFEWBoWaAWhXbkHc61EvkpqlCYFGbGb6AmjJC54b9GIi9oH3pAIQCHkj7hiyYXGuF4eU9ln5N6OJ6JZ1+bem354xb9l6Y4kD17RkL+YP6g5Q3t+Hg5n+VDkE0OZFp75kcOWTSTuAZkjnAFKOacUr+xVpj
|
||||||
|
|
||||||
gNOjBXYIeRrEDwCsQrEBcxwo+wB7DKA9AAsRQF9hegCh5cXvRnaaMQUgXPS20GdC3keuCHxyQYBvHlAOkyNQiHJ7OdVnB+egsEKHJkXj4rSZ+fHV6hgCKvRAKGVEA2DOANEYxjzGytHRAL5IqSIl86O0MlRkwfSGcoW4DcQXArAoaGsL3osYAZT08ywO3ApoYDsMAzKpmcaGFWMYOaCsMH7FWqA52gR5msxNuYcXzxkvCcVaFiGRUAqMlgTf6yOE
|
ld29ImLp45iGqr77AZFNd4cACYgmKsQDEPEDEqR5ssClgbsEwEnx1Ed5QsKhcDVkO0XLsKryOMHIZ4Rh84qLYWQ9BS0iSOttKkRq4ZDE7QsF3mW7TFYmWsAE+07vv7R9Z7eRUWd5VRSpkNFtRX3liF7aVNlD5uPnpl/IY6R8BCAXhiaCYY4wAgDBwbABRAmggcHABHM7MMyDhpfyNs7BFXgpVGsQPAKxCsQFzDCj7AbsMoD0AMxNoVkJoxTJASBU
|
||||||
|
|
||||||
Ke7nECtxfcUxWTxS8VvFHxV8U8APxX8XPAAJfUBAl+ACCVglEJVCUwlcJXYV6sK2qHmxuKJeTmMZvvOgFmkKQlnm9GRan6Bx5XvndwmSGpdj7lZgmVgZEFgRQWm75FUgmB85GHHtHwwBSadGYwHsSUlhKlMM4DgktsoqWB0YUBVQX8xMvEqalHTNqVDATSU5KdBhCW0nxxUcaQk0J5Ce0kjBicf9F9JmEHV4MQ/mMyDYAcrBjxRg9QDwD+wSwJNB
|
sS3pBRoUa8TMRQnqy7I0GNl1hpp9CVX4HhUWQ9kxZEeQDC0oq0ImDeFBTL4WJ5u/mGB0q9EJ4ZUQDYM4DaR1GJoDw8nmHRD4F4RchmRG20BFTkwPSPGrm4LUXnCrAAaMMCJA2xmpQDauDGHLxodDmL75U7utpw9SsYOaBNM/7OFmcFJRZUaWO7JfWn8FjacNnzRwhVpp8l9ReUDZBavGpHTZwpYUHXYYpRKUtW0pbKXylipcqU8AqpeqXPAmpfUD
|
||||||
|
|
||||||
PhNFq9g8i2wewUbGtaMOL8oLtHwURMSQFxiXASGOnBaQiyhcnce7/DcngUdye8FvZjyVaHSesvjsVHeE2AaUHFz+UhlWJLykCkzs5xboWCxFEcLHXYjbswCtc8QJfFQA9QLFg1KJoJIBrI1HrIDHSPpX6UBl4JTRCQl0JbCUpZGJjMK2+RKY+pxgThXdDqo7PL+LJBWOJ+GWaSkAKhuFKSYQVWxpATbF/WlJRVSllXmqDYbZgSB7BEAa1l1wDerB
|
al+ALqX6lhpcaWml5pcMUe25QEvkLuBhU+Yc+fjEMHDJ/xJ3osp6cay7+gEycJ6IIHkk2Ub5XpesWHhvpW4X+lZ+edD5UIZWkoh5OydbbIxYiSsJoxVMM4CVlrcNWU+0YUHWUdxySc2WsMrZfEB3JKqA8nkxg8QYnDxrybomdK+FSYm6JpFT8FmJGsn4UbinmMyDYASrHjzRg9QDwC+wywJNBkRqli9jCiD/jnlWqvuIZK8o8qIkUUFwTGMAsYlw
|
||||||
|
|
||||||
dLnL56qCFyJphSP9Z4xCVJmy2Qewa3EloNCGTG1wYQq4X6h2qkaHLFJofWzOyKQh8z6pSFtaE/BepWNjKFXmY/lg5AFbYlAVZpQ6kFRyGbf6whBhTfowVcFQhVIVKFWhUIAGFa1HYVfFP6WgleFQRUhlxFYfKYmZFTRkOF0dlrFPx8aV3h1IIZsrkKCqaTEq0piHrISoIpJdA4yWhQTxUll4RbSUdqKlm2FAU0fpVV9uVeTpb/CjaUOGSpLaRl5S
|
FBjhKdvsSHgszylSlOlIHi7S0p3ygylFhP+kyHcFXKa/aKZ4CYIUDlyikOWPAsCQ2HNpGudpla5kXjrkexEAHu7MAXXIMCEJUAPUARYkyiaCSAqyBp6yA30puXblu5QaU0QRpSaVmlW2SKaOKGXjoWnl8YCvl3QBeV5yrAj5Wsy0RGNkpCgIL3kflh5qyTOKBlQFfsU+FHodRUSAbsEQC/W/XHd7plunlEUzERWL3gFIA+srGhUhtLZCohUkLdkA
|
||||||
|
|
||||||
mnaTE7dpM4YqaJO26nn5Fey4WMwzZrljVU6mi2WSJYGu4X3nUFhsGwC9c9QP7CZiHsN9gEodEGHCkA9AFRBlgSWIvnXZ/qO+ax88Dn6BtwoJKeAJA1slRgBCZbAGiH5vAPP6LEeJTeTZWVKfpW/akcNwX/S11L6DTF9mdsVdWU9vfnfJUGU/nqFLlY5WRGzlS/lOpPoahkPuiOddgUAFEIkjBw/mMHD8EhAAgD+Y+gAxC+MHAEYDBwA3PCXhlMBU
|
wQHC/FeqVbCkK5p6QokaKVWQiGq5CpaZGp2u7niWHP2XZeUU9l7IQIXd5q0Srn1heXKZUdpQpQUHbR12LZX2Vjlc5WuV7lQgCeVp0T5XMUO5XqX+VgVYeUhV38qKbhVlpboVSQ0Vf1DVIkyOHbzFHyv1q+5vALx5SEWWOlUOhJcVlWAVwZblWhl8MaXblAN4S+Rd+ENde4A576aCJA6X6Veqc2v6W04AZHTuP4TegEWBnw5ABQ3ZBmi/qYbQ1aOX
|
||||||
|
|
||||||
tAoBaJUxnxlwCGFwGU6CVgWegloVgW7CyYA5Rb+K/mxWVZ+ZZxWiZzOHZSZ85BVeo0lu0bQH95X5LUBCA8QMeHi19PrKGD4ukGapLRMkEixhQesprioK6aIcbSQv4upE3VrhjN4BgxPCQpi+8Qo2V/QUJAlxNIWhPFTc8luXsW4RwjkaX/JDuYVDv5VgevG+htpehnbx1cIjVdKKNWjUY1WNTjV41BNWGUnoEZZcBUVuYVeVJCALO4XUIlmvIS+0
|
8Wj6SEXBrAltNugBsAQ3PUC+wJYm7BfYQWHRAhwpAPQBUQZYLFgEFmZV6h4WifCU6o0wHvlgnGvxB1ESEDhQxG360XLMTI0e5CNY2peRUGpxA4cJcBi+V4MCw7p7ZblylFx1tpXTRSmXNXiFvJepkmV8CYPkWV1SdOV/IFABRAJIgcJ5iBwPBIQAIAnmPoAMQHjBwBGAgcKNwWlxqVaVX4F5c7m2l9LuPKxcalHImb5tfBja+ZVwAzxrFzheW7Fx
|
||||||
|
|
||||||
dKvlVB+hVU2o81ckHzU4MAtU1n55BRciWp4BBi1n51yRX2ENpmHprKXAlaZSatp44W1WdqjBg3m9p42f2l9Vg6SV4uWBecXUeQY1QaZVeCdlNWCVhsGaCIozAB8AkY+ALnAkYo9fjlUQygEIALGqPHuVrJZ6XpDgkwpXyiSCTKPpmSIuVECQD+rha3H2GnSHMWu0AxR7SJR3tGsU5sAdObhjxLDBJAe6xyqqIXB1tZ5n7FdtfZX25ppY7naFq9tp
|
Z6VlW8eMFk8Zx572VRXhlASHUBCAgwOhF51evnllbQukO0gW6jEaAJhQ7sr6iX8SaBfrSQ0EmFHi2wmh96BglPLELmuQapWV/QYyGNKwygLCFSWibJVNVpq+tUrk8li0eNn8lk2WbVAObsVZW0C1tbbX21jtc7Wu17tZ7Xe1x5U0S1iS+fzoTFK6aX73yV1EnyvVXkhjY0KHtDKq/VKyRDGyoxlKlgx5V+XlVXht+R16BWkNMFZqE5xWepiebUpc
|
||||||
|
|
||||||
4QVYWR7URZEAEkgfAVEFXSN0UyaSBLAuAEMD+YTEHRAvOrSsdLRA+AP5ihwpEEYB4YHsO1xzk3wBuTQxSWCHWHWxNQIaJVDGWTUXWyBSxl7CvUvMRplD1l6jZVGhKeLiWbNWnkcVNWYWV/Eu2pnVSZgtcKHC12/PEBOwcwUkjEAMAAxD7AhAG9jMgocOahswj2B0VCJqMQIFDidbDbLrCm5mxgPkEunsCtlD9ZQjcus0sWhVsSkPjKuENMYLRJgk
|
APpqpijXDebpvcVqGP+aBl/54GbjVQZ+NSSKv1bdohmQFWOchk45cziCW7+ZoPCjMAHwPhj4AICPhjYN1uVRDKAQgF8bY83FUiHopekLgy5lGcBQhDqH/vXDJU9bIFnJCLVRkY20QMJSXYlNJU1mfk3qgyVFs3tGbhwSjTBJA56fxOaL4hQ9SmrTVM0V3lj1AqQtV1FJtTUUrV5tbpmW1zwIkgfAVEGXS10UKaSDLAuAPECeYTEHRDYuSyt9LRA+
|
||||||
|
|
||||||
pVFy6QbhOaR316VCmAqqfSM/WaJ35VlE21lqcr721hETwo/15pRYERgLtfYlu1buUA1QpoDeA0qoh9l24wNcDQg1INcBXMj3A6DZg3YNuDUkj4NUAHhiENhNaHXE14lfAUU5vAHEHAIb1eoksuRatGjx18kJnochqef4Uc5xBZnnElC4PIL8NOdY44wJh0XAlyICCbUwNlnSJVg3p35vIHfVLQDY1JodjbizmkfZZJgtJ4cR5ITlfQaOXoct8j5K
|
AJ5jBwpEEYCYYbsD1yDk3wNOSCxsWFvWROd1T4IB17mWvTB1ycZNLTEL5U+Us8H1eYV88neo4UFxP5cfmPZp+a8TLQjzsBV5afqRABH8gwA7CghiSMQAwADEPsCEAr2MyDBwxqOzAPYKJfTlkKMsec4GS2QqHL7CAFomh0KCLAlpH2IAZ6VV5HonmixUSkJxF5u7ypimxoiXCymhQS0KI36CJJaeA9IUjYkmaVU0TykzVfZXpWYBBlRAaT1I5VkG
|
||||||
|
|
||||||
rNAyRs0vyTiNQmzlwtc4D6AMANuS1ArEAgAZgBdi1yaAwcKWDmoGPMoB0+O1fuIgZKibiy2K6cMrUEwyNq2LSQ91YyjGNmlfeVv8ayulUlaL5cixvl+ykvpPkb+OaBD4LzGWHMxXySoUzxynrBkaFAWXwoQ1gFaCku5NgRE1QVm0p2YfAREsjWxYDRVAFQAQsqwDfAQwKpkAoqDek1V4mTWWDZNBDRtYFNJDSNCh5EOKSnjRSlOkFE86afC4oR80
|
q8kYP65NF+QdH5gOOjXo3yo0Due7GNpjeY2WN+hX8g2NdjQ41ONLjYkhuNUAIPb/WPtU5mL5YJTaVVN15W7nDJJJXiRo4EfGGjn18kPVgZFQed6Uh5J6UlHCu7li+Q5sV6esEZ1SGWBXCIEFTkoHJeSrwiwV7SOVgsZRFiEEa1LQEM2POJMKM1RCJoFhVMIOFQPFhS+FcRU0xzwYRUkVvyWRVstFFf8mZ1cBegDOA+gDABzktQKxAIAGYNPadcmg
|
||||||
|
|
||||||
QpDth9OdfRNNeZZw3klslnZS8NExo7FlV3moPXlA4cNZxLA22VfgSV0tZY6JABTNWJJMSYGQ4jFUFMsBbgwLLFTeohbDMV2geoVqoapelUs5G12qckLGqpldwBwtaqAi0ClO4Mi1KF5qTZVA1dlSDWQ1mhYE24tDlfi3Q1+hU4mSKpLeS3+YlLQxDUttLYQD0tjLak1oNGDay04N7LTk15NXLcQ1AuvLfsCt4ArcpHkITRu4TrODOR56EB8SUMUZ
|
IHClgxqHjzKAuvlzWy4smTEkDsahEwqLFFBQ0hPudKGFyxFPoEa4yVTymSGvKClR7rKVtITEFQCJ5PRjmgw+B3o7hk0XLlyNo9frY1FE9a5DGVS1abWa5s9drmzZuuaGIHmHwAxJ21EWDCV8BUALrKsA3wPEDZZNzfcB3NWug81lgTze41vNXjd5pL5EOGanUJklDMEU8xfoHJMGVhbvk0oCkLeGdNuNsHk1e0WX+XbFSTT3hGmyLQcUJ5PLRACh
|
||||||
|
|
||||||
13hcnUheqdUqigRbUnxVKWMZOUA1VKTX2oaWrYVQxJgcRQ2mAiTVSCKjhPGCkUThabrE49p3VXOFJOORaHYrhbeQOpDtm4eX6OOk1V/ymmWnEFYNg/sKxAugcKPuAbVkgFFYuYQgMyCaARIFGC1AObZLkDu3RVXEKqLnGdCQkWhG5oa496H0XdlEaFgrKpehMflren6S9X/ZO3tfnXO7mX8G/lJ3oaWf1xxQE0IZMbbDngVoWWhnEtzwDLIt+cAC
|
wDnMsBE5/tSfEVVIkPmi/EMkB2JxMyYHI4sRHsqaArAW4MCxRUbqO6wdVa9NmndVfqvmnCR2QsWkds+QiNX8glrYqjWtWZcSnjN8mXWkj1ulQbWjZhlRJabN81WZWSF+zZpHXYRgAG1BtnmCG0MQYbRG2EAUbTG3zacbfY0JtzjUm3PNrzZ43z5C6Z83N4WbaQYQYEQi4SCeRbUJiJAVwrumx8m4DMRZcs7V+Xx1knjfX/V+psZSmgMQqk0p2YNd
|
||||||
|
|
||||||
5jQqSwOLlzBIPswC1AG4PgBBUZbQvRh1LBSU2MZVDRiWPkcwMno01H8ZMSBc8SUpBSQSbKaAdt+PkG4UlhMHax9tAudNXlAkjbXQWF2oFLU+RddrGDrCyYC55eeXPobi/Ef8dP7NsskM9UlA9DkJ5MOhuW60yFjuJTam5WxYBKWVdoW/W21VqX422pAWWVwQhGhRcWEtVxRhnXYhHYQDEdpHeR24AlHdR3zAtHdy3ltFFd6bRlZKUjgLEaOOz6x1
|
BEuq1zSqAnFJHbSjf1J1J+mXq0IkA23FH+R6bAZMOVN6vFuhoM6GGM7nA37q0NWR23AJNUhlk1QJbAUpZ6AA2C+wrEK6Awo+4GzWSATVrZhCAzIJoBEg0YLUBftmeQzkPe58efotVPSICwz6PqNKKYl6FcGggIuJTZ5tmjBUD5i5tJaD75G21mJmrSE1bB68FHeb2UKNzrermutkRP3ltG5ld62WVvrdZVmyZ/nAC2YlKssDp5oIQz7MAtQBuD4A
|
||||||
|
|
||||||
9FdgW8oKqAyhAW0rQQXs18rV23c1fqFNGSdBLgO1zZUZQXWjtLWSV0l19VWXmpeiRUDpV57aVE7tVDdRWS0e1ZGu29VG7YX5btxfgUUVd3dV3m91y2VOkD1FRYbAoMocHRiSArEM2b1A+AHRB4YJoBmD6A8mv7BwoI0XR4ftffl8SlWMlWl0yQldQ5Qa4bGBpDa2tigmC2KS0Ct5Lu32au7SFDVuMiD2azr+mPgCaN3G7AphhEyi6l7mhY/laFCD
|
7lGm1KkS+WEVO5/jXaVTFx5PMBR54dTvlCYW4Pm7BZioNJDpsBgtfXgxOHU6HNR9qcDUgVgKfjkBI+TZXS9F2oIXW1R/KNkJBoW4Ah2WpCTKpAG4LxGMi3c74rJDy1GwNXnZFZrs76N5rWUY6a1TJtrU5Jw9WAmI+/Zas05q57U45T1A+V62BuQXSPl+tEAKF2EA4XZF3RduALF3xdCwIl3vN9uTvX7AJZgHXZtQ+DMRo4d2afVi2SHX2Lyo9KJR
|
||||||
|
|
||||||
modEbXi0BZ33cCnudOHfDmQVcNQCgMY2AGMBwoaIa+76cpYKWBZg9APoCSAygAYDhdDHcTUvho0VOalNrHYSrvohafpDuekxApXgGQDscRoky5uw3NNZJTl3BF7wk0YFdgjdJ0SAZ2cyBzghdgpEqNMofuKoo6kMMCZ8chOJAtGR3QCKgcgFNjGUmZmcZ3XGUhTPqyFtmWbmtsr3eMjKlq0KpVukwbVbkOdvjWh0mlGHYFkoCmnh50OJRLVD3fgk
|
bltThcembFmVbh2eoX0YR2g1kOacXnlP2R/V/ZMPbDVhWDpvnYDeLTl+H/po/pDlgNTxVjWQNONZx0LeyOQTW35CPQJ3wR/xTM7k1onUCkGwCDMHAUYkgKxBbm9QPgB0QmGCaAZg+gE5q+wMKC9Hae8WIzmuByKGxG8of3TJD/1plD6iJoV/FTw/myNn/68ZIuZ871loHptbsFsHYLzRomNjFRFsLVX8T2tbnRyUedXJUIVrN3ri0Z+d91nt0SpB
|
||||||
|
|
||||||
bHD0I9PAEj0o9CAGj0Y9WPfR3lyoeSWL49hjslUI+ewKEX+g7hd6BMVBwP+R64MBr64cNwmZzVBF3OSz0lBFBWUGFdkIr2TDtE1IXU4GIwJO3O2ITkn5JF87dXmpFS7aTQtdmbn2nrtwdmqZddg1du2Y6WfUUVLZJRdOnHt4NugAmglRlRAAa65F+4ug0DIFhLW+gM8WRBnRdzqfth/HtUoJ/qEOLv4B+Vz4jKGkD6ipo1fAyiFI4HdchxmUHT9l
|
3SKXfgibOMAwoMoYR4mcpYKWBZg9APoCSAqzOIHJdD3RREJxeDj82ZdRDkPj6C8uAlo969VbQY8oQJLsSYylbS4XVtWxYk1ZwmWmsGK+LXr6kFV6ACaC0Vc4DPb+RPzQCZiE0UY0ypY0hDHKV5DVa9yMcMHM+SNRqpnVl2etebkX9VduM56FF83ba78gWvaMhi+q0Hr0RM8zUe2rdQ2Ss2mVPnaH78h6ueo2BdFtetV/IVGNgCO9zvTwCu97vQgC
|
||||||
|
|
||||||
md93e4bbeT3XfWG45MKdBLEuVo0hX0iHd4SotobaDkYtEOcb3sa0OeaXYd/9bh2w11xQCgfA9QLgBUSTsDeEMQNEPoCRW81XD3+YAqbeDu9ElKHkGspKYT3lN/UGJKmO7qJxmeg/qDxmlwVpCWop5uZf0Yc1XDSQXyJwFNSWUFMmRz3oADYHWhZgHAASBp9uDmwUy5JwU3GzKwRd/Zn9GuNNGRUR1ScnYKSVEC3iFCvfy6JRJucK4H9ZSJCwn9vS
|
e93vQYB3dIxXdUNir0YnEvdNcHsDktAYMC0+gyVQcA4MxbhV2J1yURlpp9EQhD0v1wViMD35/zNR3I9Pbm/lg5THWN79O4DbDlARbxbP4fFQBT+wgFtTh/3gF6/gCUoZ23tT2NdBsCaC4AEWFRBEaU5GR6ug4DN5ifW+gDKU9BqJXe6RGwvfeT3yXqAZIMYPuecpHKGkFnYSI4yIsBpUivR85AeKvS7QS5jnaI0G4FMKdBzEY1qboG9utYs3yNJv
|
||||||
|
|
||||||
IWq2d+7tZXv1jnUb0hyjtab2VmwWeD2XFkPe/3PAn/d/2lgv/dYIADQA3nYE5YA9j0e9+wJinRdgrZ/biIQ4hnruFrNQzWn0/qEmhKgjTdgNBe2XQT5idjwagOlVAjbnV19VLuQBldmfbH71pOfeXl59dXSXUNdQ2U13Iijdau3l9HXZX1TZQ6T10BDe7aW7DkfdVX5HtVbie3EuRgHKxRgd2GwDMg9AHhjEAHwKDFiy6IWt16tI/elbbdqhLjH5
|
fpWbd6zaIWXthtXP37dC/T2nXYHwPUC4AHEg7AERDEDRD6AjVrTWO9nmCGm3gfvVaWmsZqRl2BN/UIqjKiR6v5kFd3UR9URJSqHSgxU9/aemP9WVVq1R5r/dn1Z1BsA2CVoWYBwAEg/Hfz2RpkRYnD2gjHCVln5pDsIPBJ30QkCo08kK3Xbp5DpkX1Z9nnXl8NHfQUU4m3fStJeQdGD4oCD5MN0jsJh7f1mOtJ7Yo095amRe2qNs/YKUaNw+Xb0l
|
||||||
|
|
||||||
IW4DwOAdzWIQwze11IFGLgV3e+kLOKunqqwd+/bqWeNqyFf2yDhvYD2xtwPc7XWlehXf4eVQthwCvENkQ2BGAHADRDzktQLFhswzAEYAxi8QI6YmDkA/sDBwpNZ0VE985nXDtsR/aca01cxJZquFzWFrjgObg7kEBFMfdw3n0r5Cq3Z1/OULWkDEAAHACpYwC5j7A21fq2C97hON45wE8O91SFqkEB2BRiTO+TSi8vfrkmdSveTYWdQrpJ7jDf1Z
|
AKg2oOlgGg+4LaDug5PY25hg3v0nlnzVqnPdkHaukWFJxqW6n14Ad90I0YSoGgHtkLd+U+l8TX6W1tJMP/z2DboYp4357/ccVw9gZD35w0DTpcUg5g3rDUY9EOejWfqwA2x2gDHHe8VDOsDSYYwDvxeT3WGUBZv4wF6TUYBKs0YLdhsAzIPQCYYxAB8DcxhsrKG89XbcX1olFZsiiPuSsXkg9dacEZ2NYeDB96HUHxIuBsDTBbZ3ZDwyGr2S5GvZ
|
||||||
|
|
||||||
8b2dPjXlGzDX9Sb2udK8WBUv9EPYA34dJQGsPzAGw1sM7DMAHsMHDRwzuCnDEA2HU8l8BZYPbQ14Dgnk9g+JM0ZV6PoPiKEYgRp1YDfhXK3R9eA5nkpchwmz3+DvZCOpBDRbt6DZ9wThEO1d4ToX2Lt2Xj7YJD1lj1UcGKQ7kXdd+RXX2jVA3WW6iGeQ+UUlOVkbTrMwFABNx0QO4BmBoNJgCDG1AHAPoACj/PV0Vbdh/E3EAksykDIFUqLqM4HA
|
kkiDkFGINOt0Li60iFvnTt3+dN7a2EyFYDhwC3EuUQ2BGAHADRBDktQBFjswzAEYDpigwFmaDD29VaWBw3zZp3GFQURWhUlGMt7mTBr5RcB9SH3Ih0YdQPcn0g91Xb/45Y3g9y1idEAH7Ahp4wLZj7AnNeVVRpEQ0/xfR8wGPAxUbfQN0pcHxJ2wRhSognQaOGQ630d1zWbN1d9G6YPUVD3Zce1rdE/VAlbd0/SKk8l8gzb2KDo+SUDMjCwKyPsj
|
||||||
|
|
||||||
nmAZTAkUur9yj6v5H9zEKKOMBRHCL1TOlQUYUDBR0ChiUDlTDBveSPyuznYoMg9oFWD10jagwyPW9JQMsF4YUjYLC/9pYPUBXNegKWBRIc4Nb4kV+YrZ4IlAxoRlXDYYzcNQuCLgM4zIYo4VC3dVPQTiKEnnjqU5lCozgMeDonYq0f0+NuqNUFGreTqlg/uk7D+YgYop3bd6kNuDJa1VBvUSjKI2ViEMHDJfRLQbmh9mSglsnlQl6hVIpAGda7jF
|
nIzADcjvI/yM7gQo8YN3VaZU7kn9MYBwIJyJXkJhZlwdvITeB3oK4Owt3CU/3ZYlwjqNIZn2VEKf9PoN/19eVxecPo9P4aA03DOPb/m+mCOXjXcdLw+/3E17w1GaU9Inek0K6LMBQCzcdEDuAZgtjSYBcxtQBwD6A2YzCOkDpfXfFqEDChjK2svLsEkHAuOWpRustuiDy3695DdTtiKOK+QqjCtUpXfk2aHQ7/kgCS52jmhvVUNBjp7YOXSDNI7I
|
||||||
|
|
||||||
xlUv4ZVRkylaXhpW1evd42qF0GU51wZig9SOg9oNXG2u1MNfr5C2LY22Of+ygJ2PdjbAL2PMA/Y2cNh1yjd73axvvUSrtwTNY8PcdtpPTXcdjNd6Aqo//PYPyjkfQz0FVng9uMTeM0bnlQJkRazRd16fcEN34YUHqPbQ6NJdCY0R1TjRCoA2UX2mj9eaX1ZFE2daObtNfekO9k/E2X5ZD+TitnN9+Q630vAr2GUMcA85VGDOAJ4FAwkYmAOajKAR
|
MClM9QoOaNi/c8BQhmGAU1CwGg6WD1AorXoClgkSHODp+oVR2o3VvtXdV3+fjVeUh93HlEZXO0yIWOjEl2cV0nU8hD6C+ZFYyflQWD4lqQAUT9SDXJZNPeUCapxeg7CeYMYu11bjEVGDrI4qNHFzEtNfZ9WRCtbNIRtaM+oLmSgQcilS2s6VN3jvKuVDJCJgxSkVQPpAmn6Mj9lQ4GPj9342b1x623f+PT11vc0Vz1wXbQJgTEE7QHKA0E7BNsA8
|
||||||
|
|
||||||
gC5grGehmP186qKPXAOuC0B3Z2UeGoJiLAn4bJAloJrb+OQRsZsfVAwp9YsWkKX/JfWJ119W7Rq9FueBOkjkE8DWVjME9/VO1v9aRHxtyw4m036SSPUDBwSSBxKD9ZHWnC+lsWBQBduzIEczHSSSMjiCyjAN2r0AzIGdDEAHsOYBswzgPMCAgfI8TWVy0XbAPMZGARxkaluBkyGo+jbcl07AaJFMhhFa4yxOKj3w8qPcVL1LKW+D3TSQMHj6AFmJ
|
E8wCITwo942RVlTUf3SmYwwKrKSfoPyjAtZafl2nCOaPKhxUMw6qPVxMLZRPwtQJGFBvCmfQYG7DYZGFBNjb9TcVhWiNOMgAkqNGNIY0NxZcNdjQAz2MQNfY9A0QD0GcT3v9iUxBqjjSDQgOoNFNSvx2cGntmYMQnmNGDOAJ4GAz4YmAMajKARgLZh/GfVoL1kDukC/rqEC0H96fUPqHGG0RskPmiDt43VxqcNQlfbTUl+okJoCNl9UI1UlvoySP
|
||||||
|
|
||||||
QAjRcyAew9APUAugpILYIkYhAGzBC4/mBmA/6vJWrKH8qhMho0M2oYBhz9D423JWqm5tWLZaYIXllM1KqFVStiA8UXAjAyqgmDqEHPCWNSDWERBPotp/kcX391utG1nFfEME3O5mU+5XZTQtrlP5ThU6dD+YJU/EBlTFU1VPt0NU1U7rpPdGaCNTzU61PYA7U51METxNZsF9TsZXAP24WJZnzpV0TPIEvDmHs+KZ1mXVH0LTCrUVVvDbnHuOVZvT
|
+jK3YNl+ewY1SOhjTsRUn0j0ha0VIGiSPUCBwiSGJKEDUXanBblEWBQDnuzIEczfSiSMjg6yjADur0AzIGdDEAbsOYDswCjoCCZjkVUPKYTRhQE03llrECpNlzzhaGsKvk5Bzv43WHsVLDmHRoHYdSdbh3eg+wmupwW+Vb4MdA6GLCXMgbsPQD1AroKSCeC+GIQDswguJ5gZgRBumW+JcI62xGifnDMT/Q5uj6hkT7SF3rxqAFh2ICaoLMywnZJS
|
||||||
|
|
||||||
YUn9NgiLWVex9ZYTEgZP09bLLQmAy0C/MQM/U28Wr1LpALNHQaHFdBWSr0Hjluzd9F3y2zTOU3yezSPyDJII5ChswLoDAClgs9fOCaAUAVnbwMwcBRD+YtHqsZNDYVBPjY2iaX+ws5E9qpDTKFdUDB05fWJ9O3BILQ8HrKiUZC27KnwR+XfBMnhDPA5D+WG239sMwoOpT7yLzFm9/MaoOed6g950Aopk2MCSAvBHCj0AJnBmDMgeGA2AkdSSFZOF
|
HcrqEQ4t/EFwoyWC1d6svQPVbT6kwGNj9e09pNSD5vRs0NDfEGOU7NE5atUHNJFBdNXTN06dCeY904MCPTz069PN0706s4EZHdGaA/Tf0wDPYAQMwsAgzIHRFWfNCIRDNSxgwX82WstEY1HGUBEydCVeswxcBieAEjHmA9IU8D231keaoE+cdY5L5otEiWXyYtUFaXy4tIQfUjvcIcstA4xLQL8xyzahArOhKgwNS0BS1wY8l4VHyQRXDMRFWPHb
|
||||||
|
|
||||||
21U7VNkzDU01PHg1M7TNdTQeXfEOFKyRYM1tmym/jWtOeVRNM+orbpTe+OcHCSTz71rK0bjSo0LNp1y07P6rTQI+z0bTEAKxCYAYwDABmgocHABMdYY6KlOToEZ0jUMxJrx7HB4iO+Y62dSJuZryl0OqqqpOlS60QRJWuCSmhnrXqlfB7VmnMTDVlSG3TDFY6r5Vjec3BO1jCExb3hNXnZ7UlAFc1XMEgNc3XMNzTc6QAtzBdiNGQAJM3VPkzlMz
|
CE8TPEfB08V8HwK88bqOMT9lGCGugMAKWDEN84JoB8Bo9tAyBwFEJ5hae/xrCPnOYkF+QlZQVHJD+5ONqpBk8w0wLVCKAU803kpslYa3/8g0VSFu0IAnSn85kAgyFjVGlW+Mshog3wVLNnnZSPed1I8tH6Tu3QF1ATLQ1o0lAzU+MCSAXBDCj0AlnBmDMgmGA2ARdiSB1Mz2b0x9OOz3079PHgbsx7NezyEx5o3mt1ZFUopow3E4h89GJO1zFm+Y
|
||||||
|
|
||||||
3NtTHU/3ODjmisONE1Fbc80jzz8aJI08rPtK1CSxxtY6oIX5jGDCdBkRkm3afkWFC3lW82WXJ9XtoO3+CY6W1lfC/HSJMTqg4bRzNVs6vV0puaRR1Wcco2U3VN5rdS3lpDdo6ItSLDfeNX9Gh7VSJ6TtIjylUQCWBRDC5zALIYMQBIC35djuzIcNL1p6fQPOAusqGiJggMFMha1mnSnA74t5AsAz+YHAMPzOK7sMPLOF+T+ngzIC5f0A1aLd5nZz
|
b5LFlykCZELwU05aJzVXdwaxGeM2nM5Seo6xCYA4wDABmgwcHABpdxfT22zAeHe0hZwi0LJmTIPqGGFAkYLRIjABULCLOf8C7b6qZhy7SD5FpoaiWkbtalUObq2KsztMK5s1TUNXtU/UdONF4qUZM+th3dZX/zgCwSDALoC+AuQLpANAvT2L0ZAD2zn007MuzyC4DPAzDk+m37AcrbgtLhlg2lwxgCk0V6XQfehmmEWsYBRMJNVE4k6UIDC1joAi
|
||||||
|
|
||||||
xpbnMm9NY+b3FzlvYgvANPAJ8WnAQQW4vrk/dKSB4Yq4EID+wJoJxbdTFbfagwDLHSzN3UkiCeVT4mwrr0ODkfCp1qoK0Gw2zTOQQbYp17E8LMG1XKkn07zo3eUBGArPGcBjAlw/DYGtUhKVrqophuTB64bhJ0NFwKZlOqr17hE9Y3VY+ow6K9hteZ04kEnlL7wd48RvoJT0My6FJL7qtAsLD3oUhMJtbqYnLZLcALkuT0SwAUtvOxS5oClL5S/T
|
SkLBHkABw9BFJL1HYxzgiiNfR3v5IDcx1dOIGSAPY1YA6BFFTzw3laJLYXAg0QFiEd3bfDOfRAABpVENFgUQyecwBuGDEASBn+ME7sx8jFDWilRF4hBJABoSYIDDdYjdecqJOXPBIiFI2aI+RpDc7e2Y2dAmfiOsFYPkSNOdXBXfPgUDrZpPqzui4bU+dv9nSZqNTQ/P3ATSg38g8ASpacCtB4hFOTd0pIJhirgQgL7AmgRlqDOfN1qGYNYTFg+m
|
||||||
|
|
||||||
MVt9zNW30LNyOTAdLK0El2D4mkXx2mK1kFQgfD64+4OrzTPdzlBmQMGLOTpkbhMgxFWK6Xk9Zrtul4yTJoxn7xDCk+ovZFyk9X3ocQ1azR9dOOo6PZDQ3UYtE6ro9W6BIFAOaB2o+wP5j0ALoEYAPm0DdEBUY25OdkbdIGu+FfEAyJ6hvMJCki1MTKuQTA71UQrXGYecY7wOzFIUz6Bn1Sxdv2GaqxVFP+0MU9Z2eg/5hy664JimVg+sMS9INgL5
|
S55FDOUOb5nsn3p4h5uqlRRLaw6n2NRoaPEsWJKA+UBGA3PGcDjAYo6zZF1AwO2IrAr/rQ664zhKiMFwEyCxzUNLhCVjN9DvpkNt9ejrkPWuLJc50Nh0irI17LKQQctntv42GONhpy4BNRjFyzGOQA1y3AC3Lo9MsAPLuLs8uaAry+8teLKXTCkPVxDr92wyCVUWNxgthfwPvEUw+jNqjv5Sn0xLp5NNJ1dFTqnaM0YyE2Ok9XFMcP9+pw804xWj
|
||||||
|
|
||||||
Y2oXJTWLbBN3LrlTaVW9GgyUDzAVEDwCWodEPxEogjzi6Bohj4YcykAZ830DzASSDag8ATEP2Y0QzFGaCZS4ay8XCElSxRXQjzHZQ11LvAOyGKECkLiWLzko7PMY+wQvCtzTK84LPIr9se/SdNxHn4P7joyxIA+6SSKQBHT+wBYWLgbzh7AfAYwPUDmofKw57XTaMU5M2KSQBwxXgoBknVSJpjp6ialaGo+hgdcpfIFNIAkkrP/TxoWrNvkAJJrM
|
HXkuAD3+XlNFLePSUuZWMDYOMVL7/Wavo5a3h8PINwnXGbID6DdnXmgVqPsCeY9AK6BGA6FkY3RAdKHOR05Eo2Rr9TYhH0guouorEK2tQUyrEEwT/tegKxYnvuN6tOhPNN20qQktMTaq02WzrTzJVAJJAYdm+R4kNbDhzbLFsarO7TLK153j11IxyvLVZy9/NTlIEyUALAVEDwCmodEHZEogGLq6AyhpEYcykAXC30ALAiSBag8ATEGeY0QFFGaA
|
||||||
|
|
||||||
sNA0sxi62CqeasHANqrfny+UMwkswz1ywfrqehc9SzIzH+W5WbxkTcQIerXq3AA+rsWH6v3hga4MBy0oa3Gzhrka9Gu0QcawmtJISa/8sUVGmkzNk1cZVTk0Nr1G/hb4DDfC71IaQVqIyqkg8xM9L6Lp239L68ztD/86Kx2oSzVZXUzHRjkoglyz/TgrPLrf0yrNbygMxusgzhGBzw6zSzbTIrNw5Ws2dJY5d0nLCvSVOUDBOzSSD0lNEJHAV4yK
|
1SS67KUCEny8homj4o6EOSjUxTf1taLuhHzWsfepUpX1R6QnPqjScwGV+gz9Ei3RTgic216jBeokikA1M492HuywLi5uwHwOMD1AxqFGvZeLMzU3opzgKh1jAHDFeDUGt63iXJwyOGQxlYA4oGA8RQqeLOFzhVNLPrWZc6TAVzoUFXO1rMJumytwjayVjNrDKwAY6VX46ys/jWs/UMettLHrNW9X8zys/zg65ADDro63ADjrEWJOvERM60MAS0C6
|
||||||
|
|
||||||
RS5bZwcPMbBw7BGzANg4SS80SrY3gAJ++0/g1lSJgLEkDty9kIFGG4Gleckv8lyY+UuGicw8kwt8HQmgloKbC423koZii1xL1/QD32rCE9i0Fzyg7SNgpJc42NurkAGMBJIp8+agZgpABQBsw9AIg2mAc1nCjzA/mDVPHSmAP+t4TgG7GvBw8a9eagb3lOBsOFIq4/FxpGJbWllWxVkyFXALw+d0C+9rZhuWxSK7hvdtX1QRuCL/FTMb1rm0w0XM
|
3VpLrK62uu0Qm69uuJIu69KsPdvmv7M/Ngc55m3lyCFYNUDEfDUgY2D5XapArlC0hmhT0S/C3PrcVHCvFMGc4cl0ykFchPQVL4HnM4bL/lLMlzkibLNEbiYCRt88NcyTHdMuFfS2NzjLXui0xzc6y1fJTLT8mRbe6L3Mfr/c+gB9K4cMagRYKqfK6E5gcEmWBwLBOzANggyfK3PMb7gwP0aLCn/4JZ8joCxjAKjvZD75foNJWJCh87/zkhJ80AJn
|
||||||
|
|
||||||
AygDADmoNA1ArqZZ6c4ATuWZK3HLQOtpdyabh4vrjWETLrpljTgU5pVOt6qYaHfzeqr/OGV5oSZUDSVm62IPpjdtZD2b8U3+Uf1FI+h0P9CM9euebBLRkulzSC35sBbVzcFuhb4W+aiRb+wNFuxbDQ/rSJbUa5QBAbqWyBtgbKaw4XR6QK6RPXcv3JZBnQEK5KB/Q+JemXwsKZsZFZBnIfNMtNBZfgPGaoEYRtcmki/JBajGffiJ8WdaV1lTtk6n
|
zXyma1XzxRWgDRo+aFmwkl+5LQ6kjKAp+NaTjGzpMEC7rX/aND3K8Yu29v85ADjAiSJwvGoGYKQAUA7MPQAWNpgK9YwoCwJ5jvT30pgBSbdkzJsbrgcFuvIWCmw5RKbVpQmulyb0W5OhhqQsM0WhVwA6mJgB5MriQrNbdCvbQlmwathlLbYg4WoygDADGoIQ0q7hDswEVulYYCKlgn6jDbeJ64lhJq4lZiM102JCsixmF5pGQoourtyi+u0RqUAj
|
||||||
|
|
||||||
IuztNdQu111U4Tl5qLiQ83UV9i4VX0DVVK7X26L2O5kMTpO4RW4ujdXpmCkAygJ1OxYocPEBisb2GLjdeMDcwChj77WKuOTNdmJAC61gzCSazqkeQxr+E3nDu5walEomzOb6aEun5Oq5t4Pdm7mMOWbeaE5kJgLmReQObyHQCHObkCylMpLTq1DUPLWU08s36MAMyCptpIKxA0Q9c4poqwLoA2AEgVdE7DMgGpBQvpqg84iX7AV0+mvXDmaw3YTu
|
1tDinGeHADblhUt1lhWi5UUKRG3eAbMbekzrNKN17Xs0MjZ02A6Lby26tvrbm28ajbb+wLtv7b0I4uvLrJ25QCyb52/JuKb+66gL7ADehB14Lh9SUNnQSqzsB/QREwqPwsEyN3gTLxmxsUPrNC3fVKEeHVZtt+iS/JDJLFHWSLDdr6RasfpCNXR0/puS+041aGNQBG9j6VoVNPD7q3O427lu9UtE6tS4CUBr6TZmCkAygJ7MRYwcIMBSsr2KLiXe
|
||||||
|
|
||||||
AnTPNcZUhYuNGg7qAP5JgvhaWuIr5azVvc1iNFEoY7Alc1sQASwDsNDASSKAqCJUu5FqzLcu4bK085E4mMLRKu44QZwMyvVJ2sIQkL7gWOIwcvG5KvVZ3rbpu4+Tm7wGZbt7bKHf+WHbcM0q6IzcC+ksILl28A3u7nu97u+7HsP7uB7we6HtZbUe1UZ0LwO9tBs4+jXElPDmyplR8dFkGjhXjXC+klcVvC/aBHGDsYCNCLzWZn1kNI7TqNf7o6oT
|
xjcwDrjia6rSbjzzA+J1wveDoH/McQ/I7SOvxF+IAspxnGg4jyy8B4/OhIzwPtZmaFJmKTf0LJkCaVO/fNkjj8+IN07k/dSPHLYfhGN9rXGwOuXLeWMyDPtpIKxA0QYCy5oqwroA2AEgZdA7DMgspOgsfaoHQevMz6Xb8vQzAOnuTUGZWa9XkWoK/LiBZyYHHVarqwz9tUTYNNwpm76TcsCcj8QIkiEKXians8LAwJPgpwMoh5MdsqcOELqQ6cLK
|
||||||
|
|
||||||
vhDNXX1lRDBfTEPKLI2Wupl9tO8kP07qQ+3UR2rNL/uaTE6dpPDdXO8LU8AUAAKlAqiKQxCxYhAHRCqYojf5jyy+AF6W17o/RGOvmEpTvjvZb5F3qzeSVL8TWSpitrZvjMTJB03d4SwRqRLAOactW7f3ZnM3956w7V5zqS0XP1j3m3h1NjkWW+7fO3XvoBmg/sE36PhJoA810QskOhD/bUezXtaeitv1MU1CPt+Z+t5rVPO8AWfLRNKCxhBy45w9
|
JDSLrAkxujLfTkWejn5J315Dm0+Jm17x5PXs9ZcmZotMrasx2svzXa4dOW9uQZH7GTpi7QIwAw+y5Vj7E+27BT7M+3PsL7N23dXLGfi/aXLQQMZcrrhwlVHNsoOtABa77mq/evarGo7Qv2gpylFPp1TbZL4NjuwE2O+NSUycOOmZw2j3mrwDa7uZk/4YzpOrBUwT2fFUA98XGroh+VMY5vq1VP1LRMxIA8AUACGkEqSqQxARYhAHRDGY2TZ5iWy+
|
||||||
|
|
||||||
+xnncVylDeTF7TW26OBISSJMkUuDYHXrnjZ5KxhnVNtPIktw87qM6ZwlsuolKtx/dWJsHuy3y6i+ArviPHL8hebmKF6czIO2rUE/IM3LVI47uITYTchPf512JuAwAch8PSKHyh31tqHGh/vujjE5oKOjzpjttqWr407aS5jFh5HzEwaGguAlrWGzh4idoCRSXqJ1Jk4fKWCNCTWdhmlqMdzqVXXisV5wB3/vGjFO3Xkl9mRWStKTMBzaOqTOizgY
|
AOuWp7C8+ikAk0ywLmkwx+p97hU98Z5I+KIduJOtI1nfxkV7QmtwN32LeS2taVre+51PzEg/TvUmquczu1Dhi3kHs789TXKbgMAES6Xe+gGaC+wJ/qREmg0rXRCyQ6ELLtL5T+/duJx5g5vv9Q7+MjS0HPernxMHSMgkm7E8wN9s6r8LVJR7k1+w0uJIkKfK4Ng6+hxPeUrhCLUm0Gw03CvO8Q9uSuka88tCu4kQ+Ss15oBzN0sWPo3StbLtG2UV
|
||||||
|
|
||||||
THMdvu1Oj1Xmgc2zPAM4DNupYAgBswTsGGx2ABdkYCkg2AIFr9rjQ+Kv4OCqjOq8e6qFgoOuGuB6iAZSy87IHavHQ63sHOuyfnQd+u19I8HcHT9U2dVq+BnW7/3TPsubkbfMPpTKM87tozruzvZRgMAJoB5E3lPMANgLoKQDumtQC6DHgFAPZFVHoeZxY1LGawNOViNCn6Ae6hseT2M1quGVZs4th603cVfw1fvcTeSXWsuHhsMyDkwedqHBUQ1I
|
IH7a4rmdrLO/osYHuzUYu3tjIyRRpHGR/3TZHuRzBsFHRRxQeRV95jmOPbakNulRCtg+mR3jcHacKWQHGguDi+yw9C3UL2M9V0lK6pmbuVOLbktCf9UJ0/kXFEh9asu7aNW7vdjuZJ7v/5yh5AOoEah5Cci7cEVodjjm3rocttwcDwDOAB7qWAIA7MA7BxsdgNPZGApINgAlaEGyQPJr3lLJDMMHERrvEpEi597OoXWRTDUbjuMVRl7AR5wOfkwR
|
||||||
|
|
||||||
TMv7ipcJFSAsVVP6CPBNuKHNNS2uSpSlWIDh3F8D2I/stxHRy3IWxTyRzCcsx0+wduInQPY6sond6y6uZLUKRmBYnOJ0kh4nBJ0SeYAJJ2ScUnWh6OPHWtR8CvWDJ5eRPuF5iq0uIIZ/Ttt3WnJyjuZ5NcWtANb/bSn1bHtK9qMjHtK72FTHCRUAdGjoB8X0ZFrXRTTtdVo2scqTTO2pPxnbO8UXOjxiyysFDVkVRDewpYC6aNeNEJIAngNEMyCk
|
xD5dbi3Z2WudD85Eft7c0TEeOO3ezP297M2yccc7JFBmDRgMAJoDZEDlAsANgroKQAFmtQK6DHgFAAVH3HnzUZY/LkM9hMyBNSv2I56PehQvOlxbWZC82fWifscHZ++0dP9RSlGHdHeh+gDMgFMJPbBwVEIaHorgJkqgJAgLIVQBg//ABSbzo0hXnSUR9l6haClnTRYgH03SD4QHtK6+ObHk1dsfaLyzRrMM7ukz2uetnG7NvRjR3dqe6n+pxnBG
|
||||||
|
|
||||||
CeU1xG/7Ps08d0uzGPIGukAFHF1sDx3WTy1oSoUUjmHYhZ9nXdH6Vv1/jES4bt79V+VCcZRx6z1Zwngh7bsERUCw7sWnoTZ/ku7dpYnJUQeduxRSN/TCzp+dFAHADLiuAPUDEAA49FWkV4QecMK2BPbUt0nd0GSQ7bAixfumy80d6CtlcfPT1I7jPfnvBFd5DSkxnUnbvMVgj7aHCaA7Zt4d0uaWleXRg8xFRgCoQ5+qGHCoK/MTheBm56ASF/ez
|
nJp5gBmnFp1aclHF4HKvdbL9Egh5d7pwaTb5w598dNw1kKtAjtzBon0J1bg3C0BnpWGtAA7kPR056YtkNCdmrb6Uj2tjkhzavZT+S9mSon+U17sYnxUzx1hkG53APLuOh1T3pNVEJ7ClguZnRB9KkgCeA0QzIPQKXTlkRof2H6exWZjdzmPtTTEH6NiPxD0vTTwVo55IfspJIp6LkrL94+KdV7IR1KdZJSAh+PMrux6gf7HXewYus7xx8kcmTNcl
|
||||||
|
|
||||||
qdz6qvUas35uZl40XLZ61csiHWR7ueLDADVIe+bEAMedjAp5/sDnneGJefXncKLef3nlJ/sBP2a9CRNsdGuy4R2Qv9kWqRo/57IRV14Zz8P4DAJBlQ24XTdvMajWxwlXf7Ix1pdzHqZ7n2GjrVR2n11JK8sc07Gi512M7aBNSvjHul0gdln+xxWd1eLmPMH7AGYE7AIANEDABUQBIJ6uZGU3LVBJItK12cy7Z6Y7i/EGtdWICoE+KCQBmIvb5Px9
|
RCT2NFAU2dM6uqd0UAz2jCi4A9QMQBITV1WFWZ+Mq17YVHG+0HN/suJJOftV+XWSgKVMfViw+gSFSfXsHVC4bvAntC59vD9adQIY+DLbRWDKdwcJoB7mQxwBedaeHZ0fZofUgJopEiwGmtqOdyqaA1u9W9IzujyxwWc0rbvsWcpydG3rXVDexwkdG1LG1NtqnhkxqcpHSBiRfjAZF/sAUXmGFRc0XdFwxfWnB6zg5L0i4UFGO0u5Dy7vHr3M+IfV
|
||||||
|
|
||||||
gloCey1drfIT1NfxAFMlacQCMDth8qe4Ryiu/qsXIIWGrbK7AwFoOeljjm+At2rduw6t5zOLQvuRt8C3kcrD9FHxjIpnU5e1AqobPEANzpEBQCYAQKIJfneuW1lmw7OWXJAtLph8DBaRZbNjFcdS858O9LOG1uOFBMLJgqSZNa2tN0lwtW2YAB9ACRj+w2OrQOSVMCK3ZvBX7MPqSIsVxcamKWcIbTeFBF1iT9O7IdeB3WBtS4YJo0fH+GmKyTNs
|
9bCgg8zd6+JecHj62flqEDWrRONtz9bFPrn2drD2Z291bCdsowOQif/9dq3+G5Tx54oennjw1x0L+F5wVeB7N5+OOh7DS7Zhgh+wBmAOwCADRAwAVEASAjrwxvNy1QiSGavzz/5+c4O4LxPXUdioCJPjfEaWFzZTTNg1c6phlSDO00KYLa8TjdHunED/ELqsrUuEgSgt24MXesgjAkykqAhXOTezKfvjcp0b1RHHeyGO/j78/EdXtkY/We8rR3Rx
|
||||||
|
|
||||||
oj7TrmPtAZp4JPspHNq2SM1XW5/bvHbaU0/06FEhxds+bZc88DtXZC11f4APV31eaAA10NcenoeSC7kNY19dzndQQhDunYaqNlXC6yHnzOI7Za8juKXR5utcpUQx0V3oA9LdH7s3uK2mdu2hK6pB4alO+m5dVFo3mfU0miwzut5xZ2zdp99l433lnt6v6h1eeGO6YmgNEGUsug49Q04mg9AJID0Fz/odPOLS+RBqMsIyv7QahLgw+TWQGkOyFgkd
|
gqpns9J0EqsbIMDgLpEBQCYAAKKFdy7tsfvUHZ6u04MLgoyPz4+TY55ByeBMy8pJtHXB7Kgws4ya9m5X9E/Jd6ju5iwH0A+GL7D86kOxiu8AFMIqIn6gLB95V1BWNL0jWEQhfpRCX3TmdXIlzkX7XgKNu3UTa0aPHzyowCNI6VZqkxIodZde91mN7MjW/YMbjl3ovdreF99ceXRFzH7fawM0Df4AIN2DeaAEN1Dc9nVLoH2RXp6+L0AkcyUV7hNj
|
||||||
|
|
||||||
1j75r9/ptlgJgaV7YqfMA+87Y5XSqpU2RwBV6ctFXJSO3ClXAqAM5uZq55MNVXaR0lO1Xrm4oMNXp23WNebiN8xfI3JiB8AugagC5ih6QgKSC4AgWI87I5l7aZOCXZB7odTmQo5ZDn0AMEyFcTrR0A72NlbCrMytS19hu9HPC3oIwsKZqhyqtta+tOl7wcMoD+p205B4wjkhG7SEMWkCZIkMpcBbcfjpoB+THiacPKK5onS/+RvXZrdCSfXgukhi
|
RwcBNw/Yik2pXJm0CfuD+pnjeRU4J0avoAUbV34+3pV+FbwnqPfuc/hAmnIcsdmNWidQNZ5+Ut+7e/iEPeriDaVbY5szl6jpNmGAWYmgNEG8uuguDds4mg9AJICBF5AVTP9LTOfVpXAQ3YBWPkRVIsOjtFytZAaQRfg2wo2BwBZ0Y77Cltfi9O1yq2fMYB3biHXw3XZAnXowZu2FDl1+Mg+SZDKSlgX8zbsvIHWF0H6vzW3R9esb02+5eEXOBzXI
|
||||||
|
|
||||||
gIxDsMD9DS+o5lA3Fu6Blg3+vRDfpHs+8ksw3Sg+c7x3528vtI3V2xgCp36d5nfZ3ud5I2dmcKIXd430jRHWGaDdr/z5Zphx7fNye9NFQN3/M6xN9Lq102rt30eVBfCL0TuUDfAv+4mcDqKDyJPVdvWTzeKLg2fzeLHqixAeKTLdZZcS3mx2zeIHPdXsf91R7QrfC1+vJgBUQtzbFg/+8wCRjfApdA2AfAhAF/2XMBtwIGbrbhpoQ/2TWEgojFLG
|
IAHwK6BqAtmJXpCApIN9r7AGLgxAHmMKM1PQ3S+XYflHrk0rvt6RSgDAWhP0Y0dhQLzi7I+naV36c43TODCwTIFcYTf1dCFgisSAgcMoCjpUAAxCseZo1DuFQdN/aBaQHkoQzFwR5M6jFsV5PeLf7TdbzfzLQTMO3xVQt8bpMRPivEwz3C3dLewHst71nbTZZ7TuKnne+ge0jHGydMtFnl2A7b3u91AD739iUffeYp9+feX3PZ9A9PH9995mpDiq
|
||||||
|
|
||||||
A3AXBW+AZC+gGpw7epXcgi7e1xLhtld/xdkF7fDO3rW5B+3KCHZLu05V3vfpzZY2feR3UN3Vcm9sdx5u33qMw+uMjkAE7BwonxaxCnMnl0MBOw+wACCxqBIFGB4YzINSE/3Dx4TdO+k0/6Bueco00eiShjzXePgqZUy7KPwF3TegXMD0qhJMkl5tdd3217yrC1FTkUtDAbMAxCArw9z4cAkI6565/E1kAl2TrSJOMoB3Otq3GUTk589fL3aF5ILV
|
+uERcH1dvS38JcxW1QtVbeldG7v94iyeont8R3e3v56rTW7e/lo/bn4hyj1/9WUyHeHn04Kx3gc03lHcNXhPV8UlTGGN8BaPCdxAVJ3KDSneBrlNaFTEeVEBK0RYDAQsD4Y3wIXQNgHwIQCqDlzKXeuBFc+YRSzZDg1gJXyG2lgTIaOFmfQctA9zemk6WImDd3rMgrETaA97eFMKeLGdc99Y9zJBXXk90DG0a918SY61ER89cKnTaW9eM7K965cs
|
||||||
|
|
||||||
Jbt++Ob3P1yY5/NoE2lwH3gGUfch3lF/qXGncgxfeZHV9zAtpLCN/fdJ3j9w49OPLjzRBuPHj6QBePPj34+CXkPt6fH7yYD0iEYHM+75XU2VQKjiIcgQpeLTt2kkyaq1axk/qXvE+g9lxpXa5bXSmD9MeRDGZym74P6RZDpC3GlAHYkPFK1ZftkNl7GSvP+i4N1N9YhnQ8gjVEP5hwALoASCSAhAP7B/4LmIQBLA7UyRg0QCAOagSnIqeCCCQH4Z
|
7atxvetDkAA7AwoSpaxCnM/V/EAOw+wACDxAantGCYYzIIaE9nzJ6bdUJzxy/S8o2buWN77ZD2jex8z5Zq65PTtwbtKPkl7jcZsqOMGcttyzk8vxA7MAxD3MMZ7LhgtcG8W6vEcyRynIbwt3Mc+Slu6Q5YbmJitB83eD+cl93OwMLcKTxlCQ9DiqzwUOvxkmZQ8yZ1D4gcK3o20reHLKt4ccGzzQwPt8rEAN0+9P/TzRCDPwz6QCjPBIOM+TPV9x
|
||||||
|
|
||||||
cDTrrcmaw7bd4wXCuGS65IjlsvcU9d1wT5BIhSIbcKBQxc3kGBMQzIUDHxp9Tm4ESJQS8LiAZHl66YFYd8NwnezPb/RhnasVC4U0VtDvkftsdoT6+IE2v5yM5BnvKBdBu0UhZA8gXbE8k/M4yuLgaqXW1/c/izlZaUnuxNQeRu1MYiMy9n9rLzWWpKxcrrODMrSRxs9JHSabPGzRs56+TlVCajplKAb0CDGw+5RgCeIVsKR67zQl3XQYMeGKHq16
|
hZ9nZwl0g4YAl4jIJytg6cKaED8tBzzJsTSsMZVGV2Bpn0fVXRNAPEJ3v7Hx5Hakve3vL1+E7n5V0HeIn3W6Y+oiEdyefon1jyodYndj+UDAyrVxT2EncGqncNLVEJ5hwAroASCSA/aSmS2YhAMsBAz+GDRAIAxqNGfplAkHHC1RlwPGGeoZyQNv8TQtcJoFzEiDWxhyp2e3dGgJ5OIiSILcO+Tac3kGpNhHIUAnwhDI27PCJQC8LiCVnsR4tWtP
|
||||||
|
|
||||||
pBwde/Aw9N8AKvjx6Ff0DKqsBEhFuxov1K4bA0tAjNoK4mmUmUhcWwKiyEXBG6i4U+60wRKETqJoRA0oDNPoAqJIJqUc7ZPYkj+22M+mncwzHfubN94vszPLV+jP0UY9DTOisEtEt0IALfgFp+dzILUA8AfPQRADg3wJfEEnsWPMCGcUYNTougbMK86Mwgl8gFA7GJQ9zCPZudEyQs80QmBZ7JDBc9rzKT8jjrCnd2/uNbhLqXuEAHwB8B3hDLZI
|
Tl+0+nTbD5W7L7PswevZ+iu/4stQxoi1Vq7DrPKOHGNGBdBUlbffHNf3LL8o8AwyuM845Xb6/HnpzZ8rsmiJ2cw5ul8oiH6+m6Abw3H1KxMbS2iyQW+PEvJ4W1Fshbbc90odzxiWy2GwxsEzlmwccAxMgP6APsBz4xehRCYYlemvq2H5N78D903wFm/plDh1EVuqGkOCJOjWdkri8zS0Hi0UMveKqZt9oLH+JaiGXKaJCReOy+9iRZoueRQCss1n
|
||||||
|
|
||||||
CQMSwMyBEAMALO8EgsWINfeRkhNm/g7bIS4TVIDByS8K14vd7cvU9t5+JPiyUXdEJXWqRh8XR90c28+cOcOAhODOxkevDPoC6feJT4bX2+UjV95Y9DvTV0vujvGJ+O/+iYW48T10GQHO9CAC70u8rvASGu8bvq3Nu/+wu7x7D7vh763g/3w/UE8xd9uA0sjK3rr+eiFBaxNOQ7s90qDRjD7xWvb4L7yzf7RrsbAlWvZG4OMUbL4OdFmSOuHRvXRX
|
CgIKgrJSU7D18AkaT89zovwvbK80+TbJy2vd1n6t5vdIGQ9O7OSsQtJz0IAZ/sVqndzILUA8ARfQRADg3wIQlGnEWAsBmc0YHLqug7MDi5MwxL+IHZvQUSjQxPG6cdSQs164mDH7hDNjesvu+PsIAPDbyi3rM6TYQAfAHwERHRtkgKAzLAzIEQAwAGHwSARYkNzVHXPp4FUi74eHZnAbp3JEVgechWPWwxhTdcNF9RWMWtcrtjkvjEwSykH7p/vi
|
||||||
|
|
||||||
4ph/xR9kk3wuvbG90FDlfr1xvevFsybNbNnG0JvtkQb/s0VKwtQpmYAuAN4/Q2tQBeAUAkSEkgEg2/DRWQfPh1jbjuz88TyNHilYqAhoMpXlouNHrj3vkxywN1KUxgcYzH6VAcWTLtSBH4FH6QcER29kfP3VRc9vMwzR9Hb8M9o8gV0zxK/Mfh5zfoTv7H9O9cfhAPO8SRfH8dLsA2AOu8MQm7yJ9ifEn6yJSfA8+RUOF+Lzs9sdt+zlnSTyn8Pg
|
YTqJAfiaiB9t5NO5yWvXB0+9cwfPe20997P19xuD7j0lGIbblxNXQZAmH0IDYfuH/h/+IhH8R9bcZH77AUfbsFR80fzeD2fEDsz5MWh975rnlHKGq3xf76xfn5M/kUeTuPcf1bwmkJhjfOo+nyiMeBV7JVTFi0HB9kkZ+YxY0e5uvgzXxZ+vPfmwO+3BDc8O8PB7yaFvMto7/18MxU70zEctc8azEApwD0GtGoxRLgAEvjNrUAXgFABEiJIBIEfw
|
||||||
|
|
||||||
ElMT/wuUK6Vbq+JP+r30eyWun/Xz6fFZYZ99Nxn8Uk2v3sQV94yvsRV93fzUkV/lfKqKxsDl7r+fJufvr35+xx6zW5++fOsJbNvyhzSCNvexAMHCrc19sFtzkQQfvMuYf0KxCBP5B3yWMehVqjiDOH6IdWFvhyqc/P7xDNJBsHyCT3Hry/cWuuYJQ8ZSk4JmgbpqEf1X+2+kfr9Y18QLZj9Hf1Xg7253DvnX48vdfQtr19TvnH7O+DfPH8N/Lvo3
|
F5yn8McC2Psta2Nwurde/+ocYLUiRDj5MJc6xKwKzLGx7Mu3HrWncXd/6rUpzZ/6Qdn8FQOfNT8t20PLn/Q9NPuky0+wfbl/B8dP827XIBfqH8F8YfhAFh/uREX99LsA2AER8MQJH3F8JfSXzyIpf3s1gufNlryI85vEk6wc/kcV2vTho0j7FFCKClRW/O3El67dOhvH5V8rn2yc2+1frb3sENfjmy0CPfbcc9/Nx13zzJPf/MkTHoL/m2TF0tgC
|
||||||
|
|
||||||
4J+Tfwnzu97vB73N+CXmYSJdJVGJSAg4xabGTfEOWkQbJiWT05VupJm48d9rXz72d8IPz2sRuWv9QSZ+Pnssy+Ak/NsmT8LXW8pT+G41P/vKOfFC668vRyzd998bXr95+efv31BAJxwb9OUCb1s7vMN6rEE7CaApIJoAr3mAIzo0RLmEYDfA84LQsj9aP2emu4ByQqVPoMLDrnpfp2IcptyOZCcplYcj3aDlJ3t5UkLg1SRsp1JVCg0l3iy55X9V
|
sFutz2sMN/D8jc+RVRb8v7FvTffc8u/IGNEMQCBwW3Kg6rbg5K0HMLtmH9CsQMz6nuszBvj1Ko41zkwP81x3+0h8oPBwQzSQvh1IkhyMiT0hfxBG/VG/x1qR7RSHgvK98AfYSh9/y39G3C/YXTlz52A/nn0m/efCH50/g/KH0F/ofoX+F94fCP9F8o/sX+R+Uf1H5j/Ev84RFdzPoj0AjWsObAW+k/Sq35NiIhhIwaMvkWYCe0/C5zOIM/Cy7JcE
|
||||||
|
|
||||||
fbbyR+mKzP6M9NfUd0icDv7X+Ic8/B54+uSKbH4L8zv3H7x/i/7dGN8TfU3zL/ifcv0e8/3K7yXc+9GJVFwPfGvwFNp7aANCRQGCxAjvLzue/TeXPbd8b9SXfJxEXmvl35LPXfAzTLNmfLQBErV/0SiQpxKmorolJKjSe7/W/izZ9/e/YYLuff35/fLz7XyX37+vAL5JxMP5g/XeZXMR8KlgDOI8rCgCaAF0Ch5VfjBwE8CEAPHqircMZhvOUISq
|
zzPzV/otdXwzJNxpc2/Eu/nr0/LyJnv4one/CcnUoT0DSuon1zQ7xO8DfLLWO9S/kzJ8njf7LTFu8UcW0J+dXBgw7CaApIJoDzLmACrraRtmEYDfA84L4snxpv44fTHfxz11gaV6jb9ukovXGmUb2Z968CKnCkUo8K5ye8pXJqSTcl0oDJJAUf34qiQP4+KYP72XRW5h/ZW7L3Dz6qnLz7qnUH48beP6BfND4hfGH5hfOH6p/ZuiI/ZH6o/LP6Jf
|
||||||
|
|
||||||
LPZfVfQTO4KIiCYQ2RJUVnwgUaMZ5fYFpGbB8pgtJ8oeYMzbQteQStsBIQzIEypZaO8jyCC/qfJcO4mPaj69/M04c/Af4qDEd68/Ef436fAAUAUApDAQ+wNzCgDCsWLAewUODJZSQCzdXqbQ9SX7z/UT6y/ST6CXdbqjXYJ57/cibtvMm73CFtqryFIT5rA74n/JJ6G/WB4X/V97EDHa4gjUkBwAQAYfYb4Cr/E66zLXWxW3UYj5oe0Ch9RU62kF
|
HP60fHs74fW+5m3TL6JcAX4KBCv57pCYDxgKhgxNOv6KPb+48fCr4t/LyxyXIRIs/Tv5s/WRCoxfJQxJE5LFKM5KxCOph//YRTm4W5LC/Ji40tOuaBbCX6jfcd7S/PRLz/Ub6K/XiifBcfictP4Kb/EM4vABYCkRUsCrxCNYUATQCugJfI78QOAngQgAB9P86snHCxWqY/bPrTLRO4frrpkL2ThUIJZvkHcZAHT/iNbF5THzCbSmtelLmtP3R/ia
|
||||||
|
|
||||||
t72gE5RlwBiYV/EtgfzZ1oLbKxrgUZbaGqXVJrbJfQcAvSBcAobY8Arv427BE7CA/t63LBi73LXI6SAux6SYWQGD0BQF4YJQHBwFQFqApYAaAs8Yz/HQHS/PQGL/AwE/3CXJr/US7E9J0i9DcwxzjPYSX/aJ47AWhgiBTQjafMC5xgeCJ0MU34aXdAA1pP0DVpKhgrAuNwyLJtLyLTt5tpJRZZnX57U7YW5JDfM600Nup5FDuoDqZYEOjLcIGLXc
|
ZARqPrTIINJ4lnWU51PSN4oHRe5oHdz7CpTlZwfFh7YHOP74ACgBqFeIDQOcBYUAcVgRYN2DBwTbKSAFnrgzJfrp/fAHxfbP7JfYl589OG7mpAtqUIMJRl/UHgfVYbQGQNKrbPOJpVvPZ6/3NgH8ffg55XFX5zfcoCkgOAA6Dd7DfAUgHU3R7xxnZjhzWCSqlYA8bnKHqQQCasolwAKaklMlBY7HqpZhFdqDVfMKqLMIHMMQdTviKIEHkZaTN7Jz
|
||||||
|
|
||||||
xMrfyyVnfSYcAeoAUQUsAj0eIBsANmA1TblZ2mb4BswGFSaGfh6C9MqzjAYUpDbM5S7GIc6AzCp4DFf5pJMLXYXuJCK/cBt7wRPUSJRJEHaiVEFaPVAD9PZzIT7Y+6GnVI6CAxJZ0XOj6c/GkbWPNE62PaQ4QAMwacAeYC1ABQ5Ixb7zEAViL6ABsCSROojHSfzAcSegJ+UF9rAQNmBAFY2CciD4AEgc9A/3B+JK/PLb9AtTq/TQNrDA01J8dXjz
|
4/fY3qufJe7srVW4x/JAF+fJhA5A3uj5AzDCFAwODFA0oHLAcoHsTHAHVAzP61AwgH1Ans4Z5MgGF/An5r0TEYJGcOZnCdgFfHdG59IIaTlvJl71/XZ50/bgziRGhhVfNc4SAZ9L+gJ9I0MUkH+3TJYXqd8LI1MV5XDZE7h3D3bSvKx7gDH3ZNXIcYYYEkEjjfE6S+f1a92dx4r8DgD1ACiClgAeiDANgDswd6bhrdMzfAdmBUqIIwRPMgZzWIC6
|
||||||
|
|
||||||
h9I/5N3Ho7cLR/Zt3bXqwaIY51eKACzgDBj5PHgDz8ZfhyNABSPtD5zVLAdYCBFQhEwZSialS3BJaKEHabXya2yZ6i2QBl4WfFKJWfJgG1sXD6WfOyRsAvp6j7AZ74goZ71fEZ75Ak06FA2j6tffOZiAs7Y2Pd2oVAukGvERkGT0JpQGgNkEcg0sBcg9ug8g/zB8guAACg0gBCgiTSEAUUHigwS6KbRV6ygluBiiXLLJ7OlDyCXf51wZPT8oWYHT
|
lwAQaxMLEKSgOm6kwGraldOJiujRKgiRE0SCRCSIfvfiI6ib96j3cF6dZaTIN7aF5hHBZpt7CkZJAnC6wA1IG9rRAEpvDW5gOfYClgTgALAWoBZHCWLk+YgAmRfQANgDyLVEb6SeYMSQmBZyhqdYCDswZQpGwAUQfAAkBHoHs4UJAv4ZfHCYIdIy7g9PfaPPJGa6COGS64Vo69A5l5/VAYE1vQfr0aI556jKACzgFBjnPHgBr8LfglNHBTKdfFzf
|
||||||
|
|
||||||
Ag15SpHUGjA/mquAojYWvOsqW/G76mfWpjegrD4JRIyQ3ROz6pRB6K//doLOfA2YUJQP4Swf77cbHz7mzUAG+fOrzEdXABWTBsA0QDHJLQaBokYJTSBwfeYnvG0HAghYCm7aMCOgrjANPQv6TeCEgniXTI0cKYpBcMr4MxJIEmYH8HUxAG4AZPEEg3AkHEjXYrUXWyokg/xpkgxMGUgsoHD/VMGlgekEZg5kHZggkDsgzkEE3EoCFg4sGlg8sEig
|
LSDZnxZ5jKgyTIxgZsoW4VrS8zOm4HAKaZhyVJK2QUy4XAf8QtfAaJmfEaLOSSz6MpKW4wHLrJQvBA72g0fo7HCD7QAhF6ugl4Eeg1h5egkig+gv0EBg0ejzKA0Chg8MGlgSMHN0aMGeYWMFwAeMGkARMHWaQgApgtMHEvfLbUHLLpBCGY5sHPL6tICEyNHTvQBgBNKlfKsEJpGsEogzl6GreGDcAzObWSfgHoxDr7Lg0z7oQucGdfJFjdfOQHi/
|
||||||
|
|
||||||
qobVgn+5vtXoHK/WUHX1ZtiXdItS/8Lowa5GVTUQ7pZVbPPY9g2YF9glwHDLfJK3/EjZ6SQZrPfQr70xQCH8Qrf5vfBcHOvD37LgohKcbNcHPATZrgAoP6QAq2bGzXcHC1CiCYAAMZJIcJBDAOiD1ARGAEgfzBRgZQD45EwAJfJyYggp1wPg/5hcYVV4AREFYyEflAT3e37qvQzoWyOtjdxe35oJP0F7/Z367yGn5AQs3bA3VzJ5A+E4xgtn59/U
|
emJKAoxAqAkb6z/Mb7dzad5r/LYLK/eLaq/cLq4ADqYNgGiAm5JaBGNfDCuaf2DMLej49goXr9gwqia0a6jbQLybgXFa5cKKAJxgQMDnkXw7c/RaS8/RC5poWSF8yYnbrgm0HwHap5HWb76wvfZaQfJjYA/OAHhjBAHr3T0GIfb0G+g24iXgoME3ggkBhgiMEm3EoBPgl8Fvgj8HJg0EY/gns4adGEHZgmQJCNd8S13Yc40oLm5rPI4yngDLCeFa
|
||||||
|
|
||||||
QHZHZq7lAmkFpghkFMgrMGsgjCG5g/MHXYXCHzGEsG1AQUHCgysFEQiUELfOKpR7GNKyfMu4aETIJIbLHDd6UB5H8BaKrjPX7sVarasQ91DsQ876oybiEW/ORBOvccEYJK2Sk/TyEtMQeIu/N2SVUD756zQcoevCAHAA+SHrgsAFAAoH7TQlSEgjGACQ/Rtw1AeoD7ASQAZgQgC4ZDgBswGpzziIe4Z/G6ZmQu8EWQh65Og58H3jcEgTIGxSpCb8
|
CG4g3G5wQ4YGcA1FrIQ2zaYwXt7tvXhBKQ02JUwVKHdxaQGXBHr6aJIeLEQuxAy/OKRqAyb5DfaLYr/bQFsxWb4ePCiCYAJcaJIMJDxAOiD1ARGAEgJqbKAa3ImAHb5wjfiFSUIcEsYIKECTUuBVbDWJH2CnhO/Pv5H1T+JDndvqvxGOQj/f+K+/NcEQvDcG2grcGxA6nb3Al65/fNz7QfN0G1nDIEmLOP7ngiyGBg68EhgmyF3gh8HXYRyFJlV8
|
||||||
|
|
||||||
YNtGbZ4KKv6EKKpLv/Y0IN/PRKlIWhT+Qw+7hg4KEbnAoFhQkQEWPckHwTRj4SAxCExQ5CHpg+KEsgnMFYQ7kG8g9KH4Q7KFVgvKHh7MowjjUPJ0ZFb4UQi2oUkWqERPGJhogjV5KUVMrvHCPrdHQPwrXRwEpPZqELAnprDgm34dQ615dQymAv/Z6G1/V6Fswz/71JT6HqoEaFuvQAGGzXjbA/GaG/RbcGiwhaG7zY5gMCSfIuYKZakgb97KAA8B
|
G1ABMFJgr8FuQ9MHY/NCaRVJdLpfA+qvcUJRHKGPLHUE/TB2IlJqESgzlg7EEsAsr6wyLJ7wQwB6IQ6r61xbFq8A/ZI5zIf7BySaGyJXUiSJYf4G4Uf6fyLKG9xALaEQrRJz/MiHKA/KG7wSd6UQib7UQoviUVOiHjAiQAwADX57uGoD1AfYCSADMAV4fYAcAdmDrOHcTCPYvpX/QZY9QwcH/MFjAiQyZYGeWQJyQNKi+cQabRJT/6nJUpS//QRT
|
||||||
|
|
||||||
woLHJsAfDJAg7boQUVQTQsWPg4xMIH1iRIBQUT/Ab5BYD2gO8r0A0FrXJUzYhcbZSvlf/jvleDoTIG/ja2G2jqzeyj8HOjTVXc+7NfOfZghSKFMfaKEsXDMBwASQCADNgBNmKAD1zOyirpNmBdjKABDAIDSpQxGH8gzKFlglGG5QwS4ZZYqGjzKZAgUEG7DArvRdGM6AAUaPjdgmmGGvOmFX/NVol7QU7lAfli7MWWSCpJC6y7fwSLudR7tDDQiU
|
//SQGAAlSHLQtSFy3Gh7aQxIE1hJ4G7Qo8HGQk8GmQs8HmQ/0GnQ4MG3guyFRgmMG3Q5yGPQ78EvQpfY16D5oHrFzL4/KK5ZnPNxfUfnw/vBwbqEZ/6wdan47PcGEwQyGEz6GKFt/auI2bBGG1MezYyAzn7lKQQFcKYQFKw3hDiAtJJSAvt4i/HKFPJRQGL/AqGkQ2X7FQ6mFFw9QE0Q2mG6AltrHMLgQYFWzCorUkCifZQAHgGFBm5NgCmZRUGl
|
||||||
|
|
||||||
vesSZfBcCpoNzR2sfQTvzbSoJAmIR/g2th/zIypetAaTOw/6TbKKLikcZ8F8AyGaQQrObCHGCHxgqZ6D/O+5dfKQE72UOHhwyOHRwytpmgOOEZgBOFJwgFBpQ1OFZQisGowwS6k5HOHArVAxyJH87APLpiWaCp61PRiF1QrLoNQiuG9gp279grOqDgzHaXA/wQTtMY4nqbwpp9FM5/CTYEztEcJk7eY7GXAW7LtP54KCAF507U4FaLOA5rhJYEQI
|
9L8jGXaFiJ8a1gpnL0BG6Yn5OEdjT3yVML+A+SotbdXZtbGkIhAzrYLdV2iRTEASJcGjjiw+0Fz3XcEVnMbaazfSF7QrlbGwzIFg/DMBwASQA6DNgCbmKABgLYyh4ZdmAwTKADxAEjTXQu2Fxg+6Hvgx2HPQ4l57ZT6Hw3eFiDSFpjTnODpbQGIGog3QTm6J8jx8CKGN/N27RQusEJbDAAJ+YgDmyUNJqXReZRCf9xD3HrqhKZ15Dwk74LgflAz6
|
||||||
|
|
||||||
6W5UPSdL3AtbJ1eKODEAfQDmoTvyNTH95woJYBrWGBj4nUgDXgjN6UHGuwNLBuB0Ca9KaEH+HyrdjKr5EYifhN4IlfFyGIgzUTIg6t5NvdEESIzEE1vSr6tvYj7yBTv5T7aMG9vWMEtfSdj0fLn5gwof7onPn70UVnSlgKgZjJKiAbpBsDxvfQBQAciAcAID5enZ4AciR8J0QH4AHXMYClgGwoKGViBnZTAANgPEB43XUanvWUEnKQFj2gYsKfSf
|
F1iZaLNJdVORY47Pqo5hfHZDVU4FSnJeHDTTwKT4V4jrw9aGgfNtblnZ+bOg8P6IvJh6YHIUJzbZAEnws+FHmS+HXw/YC3w++GPw22HPg+2FvwlyFPQ1MHOwmQEYLRNz3dK0qO5H+HNA9vSnGKyCHCFpgY2Ggo+SfyHyPAE7MA/oGRQ3+6wIpn75XYkGc3EIYpLUwyHqahAZLWjo0gm9TGPO4oSvCuxSvOq4yvVkGNXInrNXGxFlseO6CdXkF1LO
|
||||||
|
|
||||||
izxJeprtwTGj/xWm72Ao76t3AcTsoErL5rNS7v7KN6l7HHLMgUgBrWFzBI8J2BCAXDJwANmCNRXx5e9XAHQKHopy5BcBlYbXrfmeYHiPRDR4lL6rPiZv6NPDUQBgn0HYfGRGdIqcFpRFv5Oken7t/ZRGdvZeFGnNRE9/QGFFA4GFwQ7n47woOHJ3SABGIkxFY5cxGWI6xENgWxHBaY6SOI5wDOItfjCRdxGvEYOBeI/zA+IvxH5Q6Aq8tevp1g24
|
84NLCODEAfQDGoa/w/TMT4woZYC/WCBiGnUgA8Qlk7addEoHAOuAcCZjJSzIxFC1ZjSv+AKa0RJFjyQibpW0Z95mgt94mguzqGg197Gg/2EvfYLi2fQD5B/HWEh/HSH7gqD57wo2Eg/EyFx/DXSlgIIZgpKiCEZBsCbvfQBQAciAcAGT5Q2P5D8iUiJ0QH4Dk3cYClgQYqeGViB59TAANgPEAlHZsYMfLLpo0QFgfcfnzPxIsGvoMFqtwAEjLSEO
|
||||||
|
|
||||||
ZmObWwNIFczOQ8aa7CF6wa7BSp2Ar4an/R97JcPeQPDKIhpI994VBNqEjg5mFW/BeQTg2cF4fbpEzg2z7Qot4ICwr37sbH34KQyaF5KGSH7wYP5QA0P4h/ehK7zOiBulfQBy0KWDEAGKzmoM0DdKJ2Aj0f/KmQjhESQQXQfoP9A7bYYq2Q0YqjAWPK1WCbzGEb8H3fUmS/gjZQAQv2JL6Ft5EfGr5M/VREhQ9RFTIuMFaIkGGwLXRHzIiGEsXZZE
|
F9AysHmI8Po3ZN06x5WKHVwz9Z7mUgC/WWzAY8B2BCAYzJwAdmCHRCZ6H9Y9bSxXsEVmXPJ4tErCD9IiwEgigq+ZFYBpTEaJiKd/6Gicz6YQkCR47DFH9RFcG/vFpFvfNpHgAjpGQA0P6cImAEpAvpEHQ/hHvArDD1AYZEQpM3LjIyZHTIhsCzIsrTfSRZHOAZZG78JyLrI24iBwLZGeYHZF7I16Fuw1ASwDf8GZfJJwh2WpDfmcgqNHLGynGeqp
|
||||||
|
|
||||||
TJVZE0QCxFQAKxE2IuxE7IqMBOIlxGHIjxEnI7xG+Iyk7JgP+52gLZb/EJ5HlQtT7Y4BlBf4R5EJPeJHQPABHJI/5EtQl2JwcHiGdQ635P/YmS8o1778o4SF8o6mKIosOLIooAEYo0pQbgjz4TQuaGyQkH4HNYTbC1VtxRgIwBmgBTQiNOABJIBGpGAd3SOmViAhwWlHsFdSBs4d7pYlAZwGwlWrsoigJODEChNQoLh2/VBJ9xBa53dX9A+Q7BLu
|
3IisFYzR5Hd4Z5GX5GGFEdOGGZKOOF2bNt6Jw0vh4xTFFtfU1G4orr54wtRIEwwd4KA8iFkwmBTFwoqHkQiuEkQt1FIQquGMLeBF0QZcr6ACWhSwYgAtWY1BmgDZQOwAegKFLqHnOP+LG6JgbvoSc5t3ASYFYZjTI4P4hNwF7yGEK75zSW748/AtIMiDKHlIv34EogP4hBYlEwvTpF6w6ooGw3pFIvMVJJHAZFg/IZEjIplE0QCZFQAKZEzIuZGc
|
||||||
|
|
||||||
yBRGioxn4qIk+6nrKCHrw7c6wQgOHgw/RF7wwxH1AYxGqosxHqo9ZHao7ZHt0XZH7I1xFHIzxEmoi5Howi1xXIx9TCTQJF3I1XDu0fNBPI6HYZpClAGUIGRtIxu4IrL5EOAxJGDyd1FzKT1HwQRmH+o0jZjgv1FLyNyEoJXuIbyfqGdo137DQxcFPRQWGRo4WEA/UAHRo8ZiKQ0H6efKWGl7XIzCCNgAuYJYD1AMUJGAPZH1KCgC7vWoBWmEtH0D
|
o6MBLIlZF8ojZGCo7ZG7Iq+6JAUl6ukKPJWfTfLxkWwr0oL/Byo0GGmIh5HQI1VSao/gYvIhCG6o3FTxQg1GJQhOGMyZmT8/PWJyQzmRgAAtFC/HOFKI0X79xO1FEQwuElAMLYlw11ElQjQFdzLQFTfL1GLxPUZHuaMDa6ZzRZNOACJIa2oPtBYBZmViBBwKNE55dSC0HGKhnQAwSFtQpGNaHPZfPXurjQ1GEfxdGHfxLGHvyH35AA/kAgA975lo
|
||||||
|
|
||||||
Wl6/ENDSx8VcxsYDjwFwRDRJsaSBpUAVDZlMRGaVJ6FqJTmEeNOc6C0d6Hf/a9GtsEVEM/Dv6jI0O4UfQdFrw2i4bw2VGzIhVHJg11aLIm7DTolZFzojVFaozZE6o5dF6ovZEGotxFGo05HnIs1EJnaUFE3U7CmSN4IJGK95gQ1T67Ccu4+oC7jmxOJF3ohJFagpJF/I59H0wm/7eo9qHVlFmFfospLIsV/4vQ1jG1JHmGN/PmEpKWvBpKUaFffK
|
7cFgfLeEcI/WHJAw2G1o46Zs7BtHIAptGMosZGtollGdojlHN0LlE8o1ZH8ozZFDo0VEuwzBZvQxfLxTQ5HSo1XBkMLNDyozXbFvMlBqUDGSoo4xEYzBYIP9ZdFb4VdGQsbVECfAQ5mmWOGNfeOFGo/dEowu+ToYt35DnTGFzQ7GELQ8f76sSf62o3r4z/KCAjvR9Gkwu9GVUCmFvo0qEeo0+Qfo+Fb0wxZzUgI8y2YZYD1AH0JGAblEzKCgAUfW
|
||||||
|
|
||||||
NEiw6aHQYofgSw+aHbgurySAGADKAFWBVFPDAUQc1AngF0AIAeICaAUsChwfQAugeyaXZdhHsFfZL42KVSK7EDKxXAEQlIVYBb+HbaxAu4LGbRgE2wn/hQtB2EWbAZGZA91DNsbgGyPT2Es/SG6cxaG7xg7REUguZGSY607ECUOCKNTqYMQALBswUgAUQNYLLkfQAkYeHpLAQp4AoFdHqY9dHGos5Gmo/xFPPJ+G7Pa6EyqKdQx5SnrbfH1o5YT6
|
oDJmCDGVVP0BPuCSoJ8HvAbzPOBFIkrDSQHLCgIT8poo45Kpw7/6iApJIqwiQFOnWTFFoj4iEosAHAfL74bQ3WEL3MjEugylGUYxI5YHQ6GNo+lHNohjFtojtFsortGsYntHcovtFrIgdFCokVEjos1ZNAk/q6tCW5eDV6olKUFZgtIlLvVMS40/HEFKY/6AqY7JyEgmuL6o7TGGo9n7IwqmBZYr/7xJXLF7Y/LFZwwAH4Qqf7yA29GDfF9HOo+m
|
||||||
|
|
||||||
pCYT5HLXFu72Yx9GOYuxx6g4WpOQZgAUAUkD7ANmBVtIp78lflANwF0h1SWSA1UG67ZsTniXQQJYmEBl5aVCITzbMeFapSeGrbNIQZA8EicA3rE5A/rESo/6GhQ4bHmPSZ5jovRHUgli4zY93SkAebGtcJbErYs0BrYjbFbYhxGqY1dGGo45FaYw7GXIzGFUYC1E5oIGZGpVsHu+J251NRPbmGcuEPojaJZJGhAbfRPqcpRB7tVcoCjpNPpoPE9S
|
LuYp1H3YhBRctOmEePSQDz8FWBglTDAUQY1AngV0AIAQYCaAUsDBwfQCugXqYr2ewHRorXCi2G1RBUW1gFlcpD6XXT50AlHAKoCeEGtJrZGtaeHwsWeEXzH5SrgoCjhAi4GM8VLDJhIbZVYvcHkog8F1YnhFHHetEmwuP7BwcpqezBiBeYdmCkACiCwhMcj6AfDBO9ZYCXPa7BsYvrGcYwdHCo4dH7IwV5eQr6EfKN1SSQyyyb5f0BFvD06d4DLC
|
||||||
|
|
||||||
VpWBFhDO6iNVEnZIIoy6NdEy6C3Q4H/PS0ai3Uh7aLC4Eq4+UKlnbcITVTnZOXVNHYASEokYZkDEAOAAcAfyj4AFzAh7ZmAUQKFiawv2aKQYQLkkHaBXVM3KW0AXR1IY4z1IYzRiPBjHRRWRGwRVCIIRGRH1vKRGJ4+Do8Y4ZG1fP6GA1IQ4iYkdGjYuVEdfRVEToioEwAViBwAGiD+Yf3SZwfAD0ANgD7ALd48AXNEewOiBf7SLJxYegD+wUQDy
|
HUMn4LY0OFmI5bFZcQEhrotTEjAom5jA17HhACgCkgfYDswcDowPGm7PlOuCLyf+F1sDUG+oaXo94MLT0oPrRpcEhE+qbHa9VPNFDRKhEnAonZnA57zy4S4FzHa4EQA8kYOXbpF6Q1tI045F7nLXz5ovRnHZ6UgAs4rrjs4znFmgbnG84/nELInrHsY/tECowbFi4sVGqI3QqkYITE5g4/by4FlJFdLdJZPUFpvuXjzeQVVFgwzXFVjTDi67ahCZ
|
||||||
|
|
||||||
QfQDMgXEK+AJJC9mH/zPsfxFvbYibkQ24Y2ySpL3cFcwrQUB7KIprCxI4/62Y11Hi41lJZJLfAsogcGcQgU6srQ2BwoD3FqwZkDMAduA0QULYUAM0C99PDD8ROFDWgw6GDrWXb2KbTp9w0qxXjTyaZsAXSHrFNjFIMnhofDpGxRQMHTgsE6Tg+z7BgzFjp4pRGZ43HHZ4zc4E49n4zI4nFF40nHSY0vHl4yvEXUGvF14hvFN4lvHHSG8yxYDvFd4
|
TVv7uhN/qcguDJ2InR7PpMRDOIx3auIywp/pTsaeI7pzeIu4bFLB4Z+Imx6qHBV42Ih9IhIiqbB7RAbb+PQHLAbABGlfDDMgYgBwADgAuUfAC2YefYswCiBQsLuEZ7RSAeBRtZ5oYuYf+MhgpwD141IJQjxPdJ6KgI0SiRc0HvvOpE/4o0HiRJpELdfDFEo8rGaQyrEVo6rFVo8jE1o2PF1oxrE0otF4wAViBwAGiAplPaj4AegBsAfYCkfHgCAY
|
||||||
|
|
||||||
qMA94vvFCAAfH6AIfFmo7HTGAuT4nQc5SFUTAqmHEaZ8dOQjXpIn5i457ES42ng6iV/agI/ozm/UFHuY8FF1BM6JQogAnWfYAnzg8NH6zKSE/fSLGJosWEUJBNGcyBDF1wiGwkYZwDBwagaYATADMgF0DggZgAwAb4A45IQDmoFzDTLG8HPMMbwFoYcR7PF2RilVwRh4h/hb4dqRgONVYa4l76CQoVGlfQNGeEp75p4oZEQE8VEDo1eE54v5KiY/
|
t2B0QX868bSLD0AX2CiAeSD6AZkDKhXwCJIE8wMBL9j7I3E6jY546hyYpRIIb8zaxaR6lohrC3IrEGLo9VFa48PpAWXfBwI1X4woc/FxwZkDMAVuA0QdbYUAM0C4DTDB2RGFDdgy/5QbQZbvEIbr4Io+zbgOXF13ZFBG6ccFZsIpA08D57f4nFEmfLFEAEqwljRSdGgE4tGgA0tEQEpAJQE0lFdIynE9Iibb7w9IHUY+nFg/VAnoEzAkZwbAm4E/
|
||||||
|
|
||||||
2ElA51ZLDYvE0glAkV4qvGhdWvH14zcDYE1vEQAPAkEE7ADd43vF8gUgmD4igDD4znHULPdGoPPTEmAkFbUIFTrCSItS8VeJItYEUQXVdglc1QtJiibfAvo/glMwwQmfoiFEhooNFCQymCCooOIgYkOJgYlz7jQ1FHQYuSGzQ2LHyElQm748oCPmOiDMAGiBRgEWRr8WbqblIQiT5ShE4OKBSZ/VxZ3kK1rI4ayCs+S1QtHeVYUMVLoZ6fJDiIHw
|
AmEE4gnfSFCwRYcgmUE6MDUE2glCAegn6ARgkjovepZgqXGuqU3QZsBQKhNJXH4hY0RyEHjAt4wQmVdKsG67HfCJojdGrnDbE7BRGH1fXbG4xDCGWomwnNEnCGYowmIXo7KEEQm9FEwpuYOYkiGOohkAuYlWQK/Z9GVw57HvI+BGsQfDDOAQODBDTACYAZkCugcEDMAGADfAC3JCAY1C2YNFa8QsgZPebNCGSFMBvyeHGiQF/GMDHfBLSZ8ZZom7
|
||||||
|
|
||||||
aAnZtF/o8n76VAaG+Q7tHCogIlio/tGEg8G5UfaCF54sTEIEybEr7KFJxEtAnV4pIlYEigDN4tIkZEzvFZEogk5E/vH5Ewonbo2V48tPdHFNE7FsdcwwiBZMBhIh6zP7F4a0cY4kQRB7HN3TUHNE4yIb4ngnb4lzFF8NzEfoh/63fSmAPEh35XRF4ldo4DHiQv/6e/CNFjElFGLIP35TQ+QnRY/ja4o/pLxY4WqzvPDAhAT4EqAl0D6AUOCdrDMD
|
6txY9GGxQ9E5oh4nWfJwkEY1wnZJdwkR4qAFeE6PHHSKlH+Eo+HIAoIkYE4vShEnAl4EzcCREkgkQAGIlxE7ABUEmgl8gZIkMEigBMEkvH79U8rCHCvEyBahp4hcKgUOTcLETJrBSiLVpQI9vHPCSono0Pg5vIzTHborbG7o3TE9/LmRPE+4nKQlKGskruLyoc7HWY3KEMtJzGT8W7H9Ex7GaAsYlK/TzENdbzEQADCx0QZgA0QaMD6yXfgs9Nir
|
||||||
|
|
||||||
7AWxEwAFzCYk1H5HQh/Flo+rLEOSEhnlMPHZpbWSfhSbyLKJjE1/DRK1vbNAcYpv60/ClAfEvtH8Y8j52dQbE+wjRF+w6xJw3P+ok4lMGxEsvHxE9AkQklIlQknAnt0WEmEE4gm5EsgkUE/xH8tW5FTjDC4jKLpifkK94qfNsFlXUmDmw51HL46mGr435FcEtonOYydIdE99G8Qx/61MdmHMYq0kf/ChS8wmhT8w4Yn4JAAHgY1cFyEzmSikrFFK
|
8EDArRIkRwq0QWHYMGLEo0BiJBLIFSfHUhhG6X7o1ZPJC3KGcHdbCaGGYwf60lBRJmY5RK4Y5vRvE8AmffSAmsI5z4PA7aHVonwkAkgi40Y2lEgkkIk3dCEkREigBEEmElwkigkIkhIlIkugmok9Em8YlRGYkgTFlVT2EAQ0rr4tIkkpOHg4OpSETI4MVTkk9woiEqok0k6OFcAjv4oQpKHGo/THSJAf7u/KmB2k7DFj/Hkli/Pol5QgUkPol1F2
|
||||||
|
|
||||||
Q+DGSkkEZ4YD4D4AOFAZgYsRwAJiAIAOF74AdDFUQEWDKAbGHnzX2aXzOyDylKhDzETSAiWchhLk/RpWEADLBmOHGxzK5LxzPMa2wi65JzR2FdYjHFZArHGZ8HHFGPAQG/E4dEjYgEmREp3YIQmIksXZwDMgZkAkYMML7DORocjUsAuYFzCMPK/GzVXAnt4uEnZEkgkxkgolmo/7E4wu5HPzYhhZwXEqcLZgkXkDhjLRHMmPYiklBFKkncE97Egj
|
Y5f6Uw1f7lQ99FTE71Gq/DD6YYEIASg4oGugfQDBwIDYZgLmHA2WzCpkgWGaE7Un2EeLLSOfToO4owm5UW7KO0WiKveeWGxJNOE//PLGVKVWGFYx0lkoZ0llY10luE90mbQhp7rdBh7U4j+Z0jQElNY4EloE0ElYEkMlQksMlRE5uiRk+ImJE5EkpEtIn7IzNpSonMHlYGVSngILLZkiFoXImjBn9MvIJ0UolJ9JbEUkldFJhEsnrYrTFJwrOY7Y
|
||||||
|
|
||||||
bG5swfQBuwLvwtw3rbAwYQJ0qExzobAKaW0eSC7dZPR2QZ8gTnB6EUoObYGhJHEyIlHFpAtHFOwi8k9Y6njXk2frfEyj6XLMIn/Eq9ZWPCbFUgv0nvkz8nfk2WQ/FGoi1AAClAUqiAgU7OHurcCmRkxEl5E8gkwU/xGhrMiEyg24btwf/iXAYzHu+a1qWaYUpg4sq5NE3Cnr4/CnFk8qo4EUdI47QSaDqKhjiLOqrwIzXHTqFqq83VBEEPA4FEPF
|
5KHHYhWFHko7FHJE7EAApVAtk69E2Y+1HdkgYldkoYkCk0fgTE91GsUz1GDkz9HwIzDAfAfAAwoDMD1iOABMQBACavfACBYqiAeQZQAewjcYQ46DYuqFYDKSdVyx1GyzhCEvKxRYaa7AVrSFtCtiTw5rZBAnHEqVUIG0I84HB44nHRAm4GOfHgpPXBIEwE7kq1YijEIEqjF+kgInIA5wDMgZkD4YHsI8jEprJjUsC2YWzCYAKiAqE6mrREsglRkx
|
||||||
|
|
||||||
Y6AvAs6Uray7M7CQAeUy3G3AqF4HHbCDgAL8C3AJkTkgH6ColVoBOQDIDmBcEDbPF9Do1OoDew0x5MGEQDJQUsDhgfQDkgF0nWreTzlUgSC4gKqnpAWoClUoQG7qCqnNU6qln2HOa0sRqmVU6qm1U+AkFAAandU9IDDU0GFIZMalZAFqmKk4uYzUj7zVUhiCPLRalzUjgLk7X9C9ANak9U9XE3IMPg7U9IBJkcA7Q6NERdU2alDUsUnYo4piHU9k
|
ElJE0ClokkdEW4tMnSo9QiTtdm6XrKhBulI5SxzRgGznLDrlEx5GsMIEw9dcQlSkg27swfQAuwG/yoIuSmc8Hzhv3Z5ynBQeH5seSApwKSDCKMNAf4L7bkpfYFLtXHYAE44EqLAPHGUoPGRA0PGk4klHfEslE1YrhGMPF8nMPN8nIEo7puUjyleU1UqVEWoB+UgKlBUiLAhUgClhUoCmxklEmpE6Kn7IhdaS43+FvoYOSXALozHUTVHTJdGjJhbV
|
||||||
|
|
||||||
FJolxChvNZK3UxxDJSbBh1+cEDJOF4CoQP4BhdE6BhCdIKl6SkocoL6nvAEkBrcUSRq5VC4a7P+LBkA6neiLHoxlWTAEAUcDGrf3oKQPnC3U14qe8N5AvAakABUKEAC2EgD1VXAKtCImnhgdCAnQbakIgEgAj5D+CbI1cDBASByE0p0ImoFIz4AQ2C87GEAAACi9AgYF4AnRn5pfNMZYAAEp6QDZg56v0x54JzTcADzSSyrwA5acCRqAAmDRaRjS
|
wLo9ClhwnKmSZWDFZrV5Flk+sbbqShDwZd+oOIr6l27QHLw1LJZO7WkGVXWQ506Mx6z4ix7sdWuzR3X3ZQRdACgab6lFWDfFmSPkGoZHCDgAL8D8QTkTkgH6CGFVoDHADICjlcECs+fvBO1OoCYXCnHqGEQDJQUsARgfQDkgCrF3kqEDU01WC4gOmnpAWoCU07eEFAVmm00+mkIOSQb0sPmns0+mmM058ki0rIAc0hmlA/AVKS0knz00uUqATeWn
|
||||||
|
|
||||||
7jk1T0yEsgVqfJhOAKZShxi8VJYEwA75CahMgAzS7oCgdsAEQAKaQyteaBJw8qdQ9cBFZhceGW4MaXYB6gDrRmAKSAJOHABaaSeEJODidnWLcBMkIQBGACRg2AH8BsqeQcwgMEAg6dAgECLBBVMGtjpcKWkD2gzAaIEHSQ6WHTHpCnEUqSTpzdOEAZKClTsIEAA=
|
S0hiDJHFWkC01GrivXmmMnNmlS0zWkA0iSa9ADWnpAUMju7BQ5zeGmmi09IC40nsmuY7FAm0sMGvohWSzvB/yO0+ZhlSdBgH+cEB6GF4CoQP4C3dE6ANUh2hkTYpSyiY2n3gd4AkgbbgOsBEiyiHFKobfXq80sMS79S8rMoAgCjgXtgYye0C84R2lK072wvAakCuUFmkIgEgBhWRQI9CMukRgdCAnQY2ml04gDIFN+Bso1cDBAMcR4+EgAzYA1B9
|
||||||
|
|
||||||
|
GfAAGwCPYwgAAAU3oCDAIyWHpQ9OoAryBeIAAEp6QKZgSGp0xZ4H3TcAIPTgyrwAV6W6xx6cyxp6bnTdaclBxaV8A1aZJhOANmDlEbKVJYEwBm5gahMgC3S7oC49sAEQAa6ZVN1gHTQiaQSdyBEZhieFGZc6XYB6gC5xmAKSA6aHABG6RhE6aHqdsZPxAMkIQBGAPhg2AH8B8aanswgMEAIGVAh4CLBBjMNzipcDsNR9MBADAJxBEGYfSZvr3EaI
|
||||||
|
|
||||||
|
BAyoGTAzs/HLAMaXqppzOEBhKNhAQANhAgAA
|
||||||
```
|
```
|
||||||
%%
|
%%
|
|
@ -0,0 +1,107 @@
|
||||||
|
## Framework de Gestión de Motores – Vetromeccanica
|
||||||
|
|
||||||
|
### 1. Visión general
|
||||||
|
El proyecto utiliza un **framework genérico** para gobernar todos los accionamientos desde TIA Portal. La pieza central es el bloque `FB_Motors_Manage`, que implementa toda la lógica estándar (arranque, paro, rampas, alarmas, diagnóstico, etc.) para **cualquier tipo de variador** (Minimotor, Danfoss, G120C, Movigear, …).
|
||||||
|
|
||||||
|
Para evitar duplicar código, cada motor del sistema dispone de:
|
||||||
|
* Un _wrapper_ tipo `FC_Ttop_Motor_XXXXXX` (por ejemplo `FC_Ttop_Motor_M30710`).
|
||||||
|
* Su **DB de instancia** (por ejemplo `DB_Ttop_Motor_M30710`) donde reside el _struct_ `Manage` con todos los parámetros, flags de mando y estados.
|
||||||
|
|
||||||
|
El esquema típico dentro del FC es:
|
||||||
|
```pascal
|
||||||
|
// Ajustes específicos del motor
|
||||||
|
Motor.CFG_Inverter_Type := Inverter_Type_MINIMOTOR;
|
||||||
|
Motor.CFG_Min_Speed_Hz := 10;
|
||||||
|
Motor.CFG_Max_Speed_Hz := 500;
|
||||||
|
// …otros ajustes…
|
||||||
|
|
||||||
|
// Transferencia de órdenes desde la lógica de la mesa (FB_Table)
|
||||||
|
Motor.REQ_EN_Run := Table_Status.Channel_Enable[n];
|
||||||
|
Motor.REQ_Speed_Fix_01 := TRUE;
|
||||||
|
Motor.OUT_VFD_REQ_Speed_User := Velocidad_deseada;
|
||||||
|
|
||||||
|
// ► Llamada al bloque genérico
|
||||||
|
FB_Motors_Manage( Motor );
|
||||||
|
```
|
||||||
|
Así, **toda la inteligencia concreta** (protecciones, gestión de alarmas, rampas, filtros, cálculos de velocidad, mapping de señales HW, etc.) **vive dentro de `FB_Motors_Manage`;** los FC sólo traducen la estrategia de proceso al formato que entiende el genérico.
|
||||||
|
|
||||||
|
---
|
||||||
|
### 2. Relación de FC_Ttop_Motor ↔ Instancia FB_Motors_Manage
|
||||||
|
A partir de `xref_calls_tree.md` encontramos los siguientes wrappers activos en la mesa T-Top (cada uno llama a su DB/FB_Motors_Manage):
|
||||||
|
|
||||||
|
| Canal / Función | FC wrapper | DB instancia | Tipo de variador* | Dirección PROFINET (PLC IO) |
|
||||||
|
|-----------------|------------|--------------|-------------------|-----------------------------|
|
||||||
|
| M30710 – Canal central bypass | `FC_Ttop_Motor_M30710` | `DB_Ttop_Motor_M30710` | DBS55-PN (Minimotor extend-A) | IP 10.1.30.37 – In/Out 1356 |1356 |
|
||||||
|
| M31010 – Alimentador entrada (L) | `FC_Ttop_Motor_M31010` | `DB_Ttop_Motor_M31010` | DFC2xA (Danfoss) | 10.1.30.40 – 1404 |
|
||||||
|
| M31110 – Alimentador entrada (R) | … | … | DBS55-PN | 10.1.30.41 – 1424 |
|
||||||
|
| M31210 – Formato entrada | … | … | DBS55-PN | 10.1.30.42 – 1472 |
|
||||||
|
| M31310 – Selector entrada | … | … | DBS55-PN | 10.1.30.43 – 1520 |
|
||||||
|
| M31410 – Canal 1 | … | … | DFC2xA | 10.1.30.44 – 1568 |
|
||||||
|
| M31510 – Canal 2 | … | … | DFC2xA | 10.1.30.45 – 1588 |
|
||||||
|
| M31610 – Canal 3 | … | … | DBS55-PN | 10.1.30.46 – 1608 |
|
||||||
|
| M31710 – Canal 4 | … | … | DBS55-PN | 10.1.30.47 – 1656 |
|
||||||
|
| M31810 – Canal 5 (centro) | … | … | DBS55-PN | 10.1.30.48 – 1704 |
|
||||||
|
| M31910 – Canal 6 | … | … | DBS55-PN | 10.1.30.49 – 1752 |
|
||||||
|
| U32810 – Selector salida (G120C) | `FC_Ttop_Motor_U32810` | `DB_Ttop_Motor_U32810` | G120C | 10.1.30.58 – 1800 |
|
||||||
|
| … | … | … | … | … |
|
||||||
|
*El tipo se extrae de la columna _Module Name_ de **PLC IO.md** y del parámetro `CFG_Inverter_Type`.
|
||||||
|
|
||||||
|
Estas FC son llamadas desde `FC_Ttop_Run`, que a su vez forma parte de la secuencia principal `OB1 → FC_Ttop_Run` descrita en **Especifica General.md §1.1**.
|
||||||
|
|
||||||
|
---
|
||||||
|
### 3. Estructura esencial del struct `Manage`
|
||||||
|
El struct contiene +300 campos; los más relevantes se resumen por familias:
|
||||||
|
1. **CFG_*** (Configuration) – valores estáticos cargados al arranque. Entre ellos:
|
||||||
|
* `CFG_VFD`, `CFG_PN`, `CFG_DP` – modo de comunicación.
|
||||||
|
* `CFG_Inverter_Type` – mapa a la _tabla de constantes_ de **PLC IO.md**.
|
||||||
|
* Límites: `CFG_Min_Speed_Hz`, `CFG_Max_Speed_Hz`, `CFG_Max_mBar`.
|
||||||
|
* Señales adicionales HW: `CFG_Add_Signal_RUN_FWD`, `CFG_Add_Signal_TRIP`, …
|
||||||
|
2. **RCP_*** (Recipe) – velocidades y temporizadores provenientes de recetas HMI.
|
||||||
|
3. **REQ_*** (Requests) – órdenes de proceso que el wrapper escribe cada ciclo:
|
||||||
|
* `REQ_EN_Run` – habilitación general.
|
||||||
|
* `REQ_Speed_Fix_01 … 05` – selección de consignas fijas.
|
||||||
|
* `REQ_Master_Speed_Sync` – velocidad en modo síncrono.
|
||||||
|
4. **OUT_*** – salidas hacia la periferia (bobinas de RUN, RESET, consigna Hz, etc.).
|
||||||
|
5. **STATUS_*** – feedback del variador tratado por `FB_Motors_Manage`:
|
||||||
|
* `STATUS_RUN`, `STATUS_VFD_Trip`, `STATUS_VFD_Warning`, `STATUS_Ready`.
|
||||||
|
* `STATUS_VFD_ACT_Speed_Hz / _User` para diagnóstico.
|
||||||
|
6. **Alarm_XX** – 16 bits genéricos de fallo estandarizados.
|
||||||
|
|
||||||
|
`FB_Motors_Manage` lee **CFG** + **REQ**, actualiza **OUT** y **STATUS**, y setea **Alarm_XX** cuando procede.
|
||||||
|
|
||||||
|
---
|
||||||
|
### 4. ¿Qué hace `FB_Motors_Manage` internamente?
|
||||||
|
Aunque el SCL completo no está visible, por práctica con la librería se puede resumir en:
|
||||||
|
1. **Inicialización** – copiado de _recipes_ a la estructura, validación de límites.
|
||||||
|
2. **Decodificación de órdenes**:
|
||||||
|
* Prioridad: `REQ_QStop` > `REQ_Start_FWD/BWD` > `REQ_EN_Run`.
|
||||||
|
* Conversión de velocidad (mm/min → Hz / unidades de variador) usando `CFG_Kspeed_User50Hz`.
|
||||||
|
3. **State Machine genérica** – estados `STOPPED`, `RUNNING`, `FAULT`, `RAMP_UP`, `RAMP_DOWN`…
|
||||||
|
4. **Gestión de rampas** – `RCP_ACC_Ramp`, `RCP_DEC_Ramp`.
|
||||||
|
5. **Monitorización de feedback** – comparación real/objetivo, timeout de ready, etc.
|
||||||
|
6. **Gestión de alarmas** – mapeo de bits de fallo variador a `Alarm_01…16`, disparo de `STATUS_VFD_Trip`.
|
||||||
|
7. **Energy Saving / Stand-by** – salidas `OUT_EnergySavingON` cuando la línea está vacía (`IN_Line_Empty`).
|
||||||
|
|
||||||
|
---
|
||||||
|
### 5. Flujo completo de mando (de la mesa al variador)
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
FB_Table -- "Status.Channel_Enable[x], Speed" --> FC_Ttop_Motor_x
|
||||||
|
FC_Ttop_Motor_x -- "REQ_*, CFG_*" --> FB_Motors_Manage
|
||||||
|
FB_Motors_Manage -- "OUT_* (RUN,SpeedHz)" --> DB_Fieldbus_IO
|
||||||
|
DB_Fieldbus_IO -- "Feedback bits" --> FB_Motors_Manage
|
||||||
|
FB_Motors_Manage -- "STATUS_*" --> FC_Ttop_Motor_x
|
||||||
|
FC_Ttop_Motor_x --> FB_Table
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
### 6. Conclusiones / Buenas prácticas
|
||||||
|
* **Escalabilidad:** añadir un motor es cuestión de clonar una DB + FC y ajustar `CFG_*`.
|
||||||
|
* **Trazabilidad:** los campos `STATUS_` y `Alarm_XX` ofrecen un _diagnóstico unificado_ visible desde HMI sin depender del fabricante del variador.
|
||||||
|
* **Separación de capas:**
|
||||||
|
* _Proceso_ (FB_Table) decide **qué** hacer.
|
||||||
|
* _Wrapper_ (FC_Ttop_Motor) traduce al formato genérico.
|
||||||
|
* _Motor core_ (FB_Motors_Manage) ejecuta el **cómo**.
|
||||||
|
|
||||||
|
---
|
||||||
|
> Nota: la tabla de la sección 2 puede completarse con los restantes motores (M31610…U33610) siguiendo el mismo patrón mostrado.
|
|
@ -1,13 +1,45 @@
|
||||||
***
|
***
|
||||||
|
|
||||||
|
### Objetivo:
|
||||||
|
***
|
||||||
|
Anillo de transporte unifilar multiformato ( 2 formatos ) que une un Divider con una Mesa de acumulación. Solo para test ya que luego del Divider se usa un combiner para volver a unificar el flujo de botellas.
|
||||||
|
Solo debo implementar la logica del Anillo , la mesa de acumulación y del cambio formato.
|
||||||
|
|
||||||
|
#### Notas:
|
||||||
|
***
|
||||||
|
* Los dosadores trabajan de a dos a igual velocidad espejados. Desde el punto de vista logico son como un unico motor.
|
||||||
|
* Los motores de cambio formato tienen un punto de homing y luego mediante un reductor linealmente abren en base a una k que relaciona el encoder con mm.
|
||||||
|
* Todos los motores minimotor tienen encoder y usan el protocolo Inverter_Type_MINIMOTOR. Tienen dos modos de funcionamiento como Positioning o como Velocity. Para los cambios de formato y
|
||||||
|
#### Notaciones:
|
||||||
|
***
|
||||||
|
Mesa : Mesa de acumulacion
|
||||||
|
Curva1: transporte M344 con fotocelula B34451. Mesa -> Divider
|
||||||
|
Curva2: transporte M315 con fotocelula B31440. Divider -> Mesa
|
||||||
|
Selector: son los motores que permiten seleccionar el canal a usar en la Mesa. Cada canal le corresponde un valor de encoder. La Mesa de acumulacion tiene un Selector al ingreso y a la salida. Estos selectores conectan los dosadores con los canales de la mesa.
|
||||||
|
|
||||||
|
#### Componentes del anillo:
|
||||||
|
***
|
||||||
|
Mesa -> Curva1 -> Divider -> Combiner -> Curva2 -> Mesa
|
||||||
|
|
||||||
|
|
||||||
|
### Datos:
|
||||||
|
***
|
||||||
|
Cada entidad debe mantener los siguientes datos:
|
||||||
|
* Formato actual: numero de formato : dimension
|
||||||
|
* Estado de ciclo: Automatico o Manual
|
||||||
|
* Alarmas. Bits de alarmas. Codigo de alarma prioritario: Alarma mas importante actual.
|
||||||
|
|
||||||
|
|
||||||
|
### Descripción general:
|
||||||
|
***
|
||||||
El proyecto involucra un transporte de botellas en anillo con los siguientes elementos:
|
El proyecto involucra un transporte de botellas en anillo con los siguientes elementos:
|
||||||
* Anillo compuesto M314, M315 y M344
|
* Anillo compuesto M314, M315 y M344
|
||||||
* Transporte con guías motorizadas para cambio de formato
|
* Transporte con guías motorizadas para cambio de formato
|
||||||
* Divider de alta velocidad
|
* Divider de alta velocidad
|
||||||
* Cambio formato Guías M307 - Homing S34470
|
* Cambio formato Guías M307 - Homing S34470
|
||||||
* Combinador para unificar los canales a la salida del divider.
|
* Combinador para unificar los canales a la salida del divider. M311 e M312
|
||||||
* Cambio formato Combinador M313 - S31051
|
* Cambio formato Combinador M313 - Homing S31051
|
||||||
* Logica de salida B31060
|
* Fotocelula de control de salida llena B31060
|
||||||
* Mesa de acumulación que permite almacenar el formato no utilizado.
|
* Mesa de acumulación que permite almacenar el formato no utilizado.
|
||||||
* La mesa de acumulación cuenta con 4 filas a la derecha y 4 a la izquierda además de la fila central usada solo como bypass.
|
* La mesa de acumulación cuenta con 4 filas a la derecha y 4 a la izquierda además de la fila central usada solo como bypass.
|
||||||
* Las guias de traslacion que permiten mover las botellas desde los canales exteriores a el canal central necesita no tiene traccion propia y como pasa por los canales centrales esto obliga a que para cargar o descargar los canales exteriores los transportes de los canales interiores tengan que estar en marcha. Tambien restringe por este motivo a que los canales exteriores se cargan primero y se descargan ultimo ya que necesitamos mover libremente los canales internos a medida que cargamos o descargamos los canales mas exteriores.
|
* Las guias de traslacion que permiten mover las botellas desde los canales exteriores a el canal central necesita no tiene traccion propia y como pasa por los canales centrales esto obliga a que para cargar o descargar los canales exteriores los transportes de los canales interiores tengan que estar en marcha. Tambien restringe por este motivo a que los canales exteriores se cargan primero y se descargan ultimo ya que necesitamos mover libremente los canales internos a medida que cargamos o descargamos los canales mas exteriores.
|
||||||
|
@ -15,36 +47,219 @@ El proyecto involucra un transporte de botellas en anillo con los siguientes ele
|
||||||
* Para la descarga se hace el procedimiento inverso descargando desde los canales mas cercanos a centro hacia el canal Max(n)
|
* Para la descarga se hace el procedimiento inverso descargando desde los canales mas cercanos a centro hacia el canal Max(n)
|
||||||
* Para el formato izquierdo se invierte el signo al usar n=centro-Max(n).
|
* Para el formato izquierdo se invierte el signo al usar n=centro-Max(n).
|
||||||
* Para la mesa de acumulacion que estamos trabajando Max(n) = 4, los canales estan definidos desde 1 a 9 y el canal central = 5.
|
* Para la mesa de acumulacion que estamos trabajando Max(n) = 4, los canales estan definidos desde 1 a 9 y el canal central = 5.
|
||||||
* La mesa puede almacenar 2 formatos, uno a la derecha y el otro a la izquierda. Cuando se requiere un cambio de formato se carga el formato en curso y se descarga el nuevo formato. Una vez descargado el formato en curso se activa el modo bypass.
|
* El M315 alimenta los dosadores de la Mesa de Acumulo.
|
||||||
|
* Los dosadores de ingreso de la mesa de acumulo son M316 y M317
|
||||||
* Cambio formato:
|
* Cambio formato:
|
||||||
* Dosadores de Ingreso: M318 - Homing S31550
|
* Dosadores de Ingreso: M318 - Homing S31550
|
||||||
|
* El motor de selección de pista en ingreso es el M319 que tiene el sensor S31560 de homing
|
||||||
|
* Los motores de las pistas son:
|
||||||
|
* canal central (n=5) : M332
|
||||||
|
* canal mas a la izquierda n=1 : M328
|
||||||
|
* canal n=2 : M329
|
||||||
|
* canal n=3 : M330
|
||||||
|
* canal n=4 : M331
|
||||||
|
* canal mas a la derecha n=9 : M336
|
||||||
|
* canal n=8 : M335
|
||||||
|
* canal n=7 : M334
|
||||||
|
* canal n=6 : M333
|
||||||
|
* El motor de seleccion de pista de salida es el M340 que tiene el sensor S34460 de homing
|
||||||
|
* Los dosadores de salida de la mesa de acumulo son M341 y M342
|
||||||
|
* Cambio formato:
|
||||||
* Dosadores de Salida: M343 - Homing S34461
|
* Dosadores de Salida: M343 - Homing S34461
|
||||||
* Para seleccionar el canal de carga o descarga se utilizan 2 motores minimotores, uno a la entrada y el otro a la salida que permiten modificar el ángulo de las bordes. Este ángulo debe ser cargado como parámetro y hay 9 canales posibles.
|
|
||||||
|
|
||||||
La secuencia partiendo de la mesa de acumulacion es:
|
La secuencia de las botellas por los transportes en el caso que la mesa esta en modo bypass partiendo de la salida de la mesa de acumulacion es:
|
||||||
* Mesa de acumulacion:
|
* Mesa de acumulacion: Dosadores de salida M341 y M342.
|
||||||
* Dosadores de ingreso M316 y M317. Cambio de formato con M318
|
* Motor M344 curva de salida hacia Divider. Fotocelula de acumulacion B34451 a mitad de curva M344.
|
||||||
|
* Divider
|
||||||
|
* Motor salida Divider M310
|
||||||
|
* Combiner M311 e M312. Fotocelula control de salida combiner/divider B31060
|
||||||
|
* Motor salida combiner M314
|
||||||
|
* Fotocelula a mitad de curva salida Divider ingreso Mesa de acumulo B31440. Motor de curva entre salida Divider e ingreso Mesa M315
|
||||||
|
* Dosadores de ingreso Mesa M316, M317
|
||||||
|
|
||||||
|
|
||||||
### Mesa de acumulación
|
### Mesa de acumulación
|
||||||
***
|
***
|
||||||
El objetivo de la mesa de acumulación es almacenar el formato que no se está usando.
|
El objetivo de la mesa de acumulación es almacenar el formato que no se está usando. Los canales no tienen guias por lo que se deben ingresar las botellas siempre consecutivas deteniendo la carga cuando no hay acumulacion suficiente en el ingreso B31440.
|
||||||
|
Las guias en el area de los Selectores de canales no son motorizadas y necesitan que todos los transportes por donde se cruza la guia esten en funcionamiento para que las botellas puedan circular por el area de los selectores. Esto significa que cuando queremos cargar la Mesa se debe cargar desde afuera hacia adentro y para descargarla debemos descargar desde los canales centrales hacia los externos. Durante una carga o una descarga los canales desde el centro hacia el canal que se carga o se descarga deben estar en funcionamiento. Esto implica que los canales que deben funcionar solo de pasaje deben estar vacios.
|
||||||
|
|
||||||
|
La mesa de acumulacion tendra 3 estados:
|
||||||
|
* Carga
|
||||||
|
* Bypass
|
||||||
|
* Descarga
|
||||||
|
|
||||||
|
Componentes:
|
||||||
|
* Dosadores de Ingreso y Salida
|
||||||
|
* Selector de canales en ingreso y en salida
|
||||||
|
* Fotocelula de conteo en ingreso B31540
|
||||||
|
* Fotocelula de seguridad Selectores : Ingreso: B31550, Salida: B34440
|
||||||
|
* Fotocelula de conteo salida Mesa B34450
|
||||||
|
* Motores de cambio formato Ingreso: M318/S31550 , Salida: M343/S34461
|
||||||
|
* Motores de cada canal:
|
||||||
|
* canal central (n=5) : M332
|
||||||
|
* canal mas a la izquierda n=1 : M328
|
||||||
|
* canal n=2 : M329
|
||||||
|
* canal n=3 : M330
|
||||||
|
* canal n=4 : M331
|
||||||
|
* canal mas a la derecha n=9 : M336
|
||||||
|
* canal n=8 : M335
|
||||||
|
* canal n=7 : M334
|
||||||
|
* canal n=6 : M333
|
||||||
|
|
||||||
|
Sensores:
|
||||||
|
* pth_min : Fotocelula de minimo accumulo
|
||||||
|
* pth_cnt_in : Fotocelula de conteo ingreso mesa
|
||||||
|
* hm_infeed : Sensor de homing cambio formato ingreso dosadores
|
||||||
|
* hm_selector_in: Sensor de homing selector de ingreso
|
||||||
|
* safety_selec_in: Fotocelula de seguridad selector ingreso
|
||||||
|
* safety_selec_out: Fotocelula de seguridad selector salida
|
||||||
|
* hm_selector_out: Sensor de homing selector de salida
|
||||||
|
* hm_outfeed : Sensor de homing cambio formato dosadores de salida
|
||||||
|
* pth_cnt_out : Fotocelula de conteo salida mesa
|
||||||
|
* pth_out : Fotocelula de maximo accumulo salida
|
||||||
|
|
||||||
|
|
||||||
|
Parametros:
|
||||||
|
* Dimension de las botellas longitudinalmente en mm
|
||||||
|
* Dimension fotocelula de minimo a dosador ingreso en mm
|
||||||
|
* Dimension del dosador ingreso
|
||||||
|
* Dimension Area Selector en mm ingreso
|
||||||
|
* Dimension Area Canales en mm
|
||||||
|
* Dimension Area Selector en mm salida
|
||||||
|
* Dimension del dosador salida en mm
|
||||||
|
* Velocidad de carga
|
||||||
|
* Velocidad de descarga
|
||||||
|
* Velocidad de bypass
|
||||||
|
* Espacio entre botellas
|
||||||
|
* Tiempo de minimo accumulo
|
||||||
|
* Maximo espacio entre botellas no recuperable
|
||||||
|
* Espacio de seguridad canal a dejar libre lado ingreso
|
||||||
|
* Espacio de seguridad canal a dejar libre lado salida
|
||||||
|
|
||||||
|
Datos:
|
||||||
|
* formato actual
|
||||||
|
* estado actual de ciclo: automatico, manual
|
||||||
|
* estado de funcionamiento:
|
||||||
|
* Carga
|
||||||
|
* Bypass
|
||||||
|
* Descarga
|
||||||
|
* posicion de la primera y ultima botella en cada area:
|
||||||
|
* Las areas son selector de ingreso, canal, selector de salida
|
||||||
|
* Para esto se genera un encoder virtual de cada canal que permite seguir estos dos valores.
|
||||||
|
* Estos valores son relativos a la distancia total del canal. Por ejemplo si el canal tiene 10000mm cuando ingresa una botella ingresa como 10000mm y este valor se va decrementando a medida que el transporte se mueve. Cuando este contador first_bott o last_bott llega a 0 significa que esta botella ha salido del canal.
|
||||||
|
* Cuando se comienza a descargar un canal siempre se debe terminar de descargar hasta la ultima botella.
|
||||||
|
* Procedimiento para cargar la dimension de un area en last_bott o first_bott:
|
||||||
|
* Cuando una botella pasa por la fotocelula de ingreso area:
|
||||||
|
* si last_bott = 0 se asigna a first_bott la dimension del area.
|
||||||
|
* last_bott se asigna con la dimension del area.
|
||||||
|
* esto significa que para la primera botella last_bott y first_bott son asignados con la dimension del area. Luego solo se actualiza last_bott. A medida que el transporte del area se mueve las dimensiones se decrementan. Cuando first_bott llega = 0 significa que las botellas estan en la zona final.
|
||||||
|
|
||||||
|
|
||||||
|
### Componentes de Software:
|
||||||
|
***
|
||||||
|
|
||||||
|
* FB para cambio formato:
|
||||||
|
* Esta FB debe gestionar el posicionamiento segun el formato:
|
||||||
|
* DB de Motor
|
||||||
|
* Recibe la dimension esperada
|
||||||
|
* IN: dimension : real
|
||||||
|
* IN: Habilitacion al movimiento
|
||||||
|
* Estado:
|
||||||
|
* OUT: En posicion : bool
|
||||||
|
* OUT: Posicionando : bool
|
||||||
|
* OUT: Error code
|
||||||
|
* Motor error
|
||||||
|
* Overlimit
|
||||||
|
* Estado de ciclo:
|
||||||
|
* IN: Automatico
|
||||||
|
* IN: Manual
|
||||||
|
* IN: Homing
|
||||||
|
* Senales:
|
||||||
|
* IN: Marcha
|
||||||
|
* IN: Stop
|
||||||
|
* IN: Reset
|
||||||
|
* IN: Jog FF
|
||||||
|
* IN: Jog BW
|
||||||
|
* IN: Home Sensor
|
||||||
|
*
|
||||||
|
* FB de gestion de los selectores
|
||||||
|
* Gestiona el posicionamiento de los selectores.
|
||||||
|
* Receta:
|
||||||
|
* Tabla de posiciones para cada canal
|
||||||
|
* Velocidad de movimiento Auto
|
||||||
|
* Velocidad de movimiento Manual
|
||||||
|
* Velocidad de movimiento Jog
|
||||||
|
* IN/OUT:
|
||||||
|
* IN: DB de Motor : int
|
||||||
|
* Recibe el canal esperado
|
||||||
|
* IN: canal: int ( 0 a 9 )
|
||||||
|
* IN: Habilitacion al movimiento
|
||||||
|
* Estado:
|
||||||
|
* OUT: En posicion : bool
|
||||||
|
* OUT: Posicionando : bool
|
||||||
|
* OUT: Ciclo en Automatico
|
||||||
|
* OUT: Error code
|
||||||
|
* Motor error
|
||||||
|
* Overlimit
|
||||||
|
* Estado de ciclo:
|
||||||
|
* IN: Automatico : bool
|
||||||
|
* IN: Manual : bool
|
||||||
|
* IN: Homing : bool
|
||||||
|
* Senales:
|
||||||
|
* IN: Marcha : bool
|
||||||
|
* IN: Stop : bool
|
||||||
|
* IN: Reset : bool
|
||||||
|
* IN: Jog FF : bool
|
||||||
|
* IN: Jog BW : bool
|
||||||
|
* IN: Home Sensor : bool
|
||||||
|
|
||||||
|
* FB de gestion de area:
|
||||||
|
* Receta:
|
||||||
|
* Cada area tiene una dimension total
|
||||||
|
* Dimension inicio
|
||||||
|
* Dimension final
|
||||||
|
* ratio Hz x mm para encoder virtual
|
||||||
|
* Gestiona first_bott y last_bott
|
||||||
|
* IN/OUT:
|
||||||
|
* IN: DB de Motor : int
|
||||||
|
* IN: Habilitacion al movimiento : bool
|
||||||
|
* IN: Velocidad a seguir en mm/sec : real
|
||||||
|
* IN: Separacion en mm : real
|
||||||
|
* IN: Dimension de la botella : real
|
||||||
|
* OUT: Vacio / Libre : bool
|
||||||
|
* OUT: no hay botellas en area inicial : bool
|
||||||
|
* OUT: no hay botellas en area final : bool
|
||||||
|
* De la DB de Motor se obtiene la velocidad y si esta en marcha o no el motor. Se gestiona cada motor segun la habilitacion al movimiento. Se calculan los Hz en base al ratio y a la velocidad a seguir.
|
||||||
|
* En base a la separacion y la dimension de la botella se calcula la sobrevelocidad a adicionar a velocidad a seguir.
|
||||||
|
|
||||||
|
* FB de gestion de dosadores:
|
||||||
|
* Se encarga de gestionar el funcionamiento de 2 motores en contemporaneo a la misma velocidad. Si uno esta en error o no en funcionamiento se detiene el otro.
|
||||||
|
* Ademas se encarga de la detencion en mm luego de la ultimo pulso de botella, para esto usa un encoder virtual *
|
||||||
|
* IN: DB de MotorSX : int
|
||||||
|
* IN: DB de MotorDX : int
|
||||||
|
* IN: Velocidad a seguir en mm/sec
|
||||||
|
* IN: pulso de botella
|
||||||
|
* IN: Habilitacion al movimiento.
|
||||||
|
* OUT: Codigo de error
|
||||||
|
* OUT: En marcha
|
||||||
|
* Receta:
|
||||||
|
* distancia en mm de parada en fase luego de ultima botella
|
||||||
|
* ratio Hz x mm para encoder virtual
|
||||||
|
|
||||||
|
* FB de logica de Mesa
|
||||||
|
* Gestion de la Mesa de acumulacion
|
||||||
|
* FB de combiner
|
||||||
|
* Gestion del combiner. Logica identica a los dosadores solo que con control de
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
El trabajo tendrá los siguientes objetivos:
|
|
||||||
- Lógica de la mesa de carga, descarga y bypass: gestión del cambio de formato para el minimotor. Por simplicidad, la mesa está dividida en derecha/izquierda y los formatos pueden estar solo en un lado.
|
|
||||||
- Lógica de los motores en anillo y lógica estándar VM.
|
|
||||||
- El HMI no será desarrollado en esta fase, me has dicho que se hace por separado, pero se creará un simulador para nosotros.
|
|
||||||
- Gestión de las recetas en el HMI: inicialmente, se seguirá el plan acordado. Se crearán filas en el recetario para cada motor en anillo y para los datos de la mesa. El cambio de formato de la mesa comenzará solo después de verificar que no haya más botellas en el anillo y que el modo carga esté activo, con el divider y el anillo en automático.
|
|
||||||
- Velocidad:
|
|
||||||
- Velocidad de bypass: depende del divider y del anillo, no limitada por la mesa.
|
|
||||||
- Velocidad de carga/descarga: debe ser lenta para cerrar los huecos entre los cambios de canal de la mesa. Durante la carga, la descarga está detenida y viceversa.
|
|
||||||
|
|
||||||
Por ahora, preveo la mesa como un Dispositivo con los siguientes señales de entrada/salida:
|
|
||||||
|
|
||||||
#### Señales de Entrada (Input)
|
#### Señales de Entrada (Input)
|
||||||
***
|
***
|
||||||
|
|
||||||
| Señal | Descripción | Función |
|
| Señal | Descripción | Función |
|
||||||
| ------- | ----------------------------------------------- | ---------------------------------------------------------- |
|
| ----- | ----------------------------------------------- | ------------------------------------------------------ |
|
||||||
| i1 | Salida anillo solicitada producto | Salida libre |
|
| i1 | Salida anillo solicitada producto | Salida libre |
|
||||||
| i2 | Solicitud de carga | Para cambio de formato |
|
| i2 | Solicitud de carga | Para cambio de formato |
|
||||||
| i3 | Anillo vacío + divider en auto + anillo en auto | Para generar consentimiento a cambio de formato |
|
| i3 | Anillo vacío + divider en auto + anillo en auto | Para generar consentimiento a cambio de formato |
|
||||||
|
@ -56,13 +271,33 @@ Por ahora, preveo la mesa como un Dispositivo con los siguientes señales de ent
|
||||||
***
|
***
|
||||||
|
|
||||||
| Señal | Descripción | Función |
|
| Señal | Descripción | Función |
|
||||||
| ------- | -------------------------- | ---------------------------------------------------- |
|
| ----- | --------------------------- | ----------------------------------------------------------- |
|
||||||
| o1 | Entrada solicita producto | Mesa lista y en marcha |
|
| o1 | Entrada solicita producto | Mesa lista y en marcha |
|
||||||
| o2 | Cambio de formato permitido | Finalizado el carga y anillo vacío |
|
| o2 | Cambio de formato permitido | Finalizado el carga y anillo vacío |
|
||||||
| o3 | Velocidad motor salida | Para interfaz con 1 motor de salida de la mesa en el anillo |
|
| o3 | Velocidad motor salida | Para interfaz con 1 motor de salida de la mesa en el anillo |
|
||||||
| o4 | Mesa en Bypass | Estado de bypass activo |
|
| o4 | Mesa en Bypass | Estado de bypass activo |
|
||||||
|
|
||||||
Cambio de estados en la mesa:
|
Cambio de estados en la mesa:
|
||||||
- La carga comienza por solicitud externa i2 (de operador o temporizador).
|
- La carga comienza por solicitud externa i2.
|
||||||
- La descarga ocurre automáticamente después de un cambio de formato (i5). La mesa se descarga completamente antes de iniciar el modo bypass.
|
- La descarga ocurre automáticamente después de un cambio de formato (i5). La mesa se descarga completamente antes de iniciar el modo bypass.
|
||||||
- Una vez descargada, se activa el modo bypass. (o4)
|
- Una vez descargada, se activa el modo bypass. (o4)
|
||||||
|
|
||||||
|
### Anillo
|
||||||
|
***
|
||||||
|
|
||||||
|
Los 2 motores de Curva1 y Curva2 deben seguir las velocidades de las dos maquinas.
|
||||||
|
* Curva1 debe seguir la velocidad sincrona del Divider y solo puede funcionar si el Divider es en funcionamiento.
|
||||||
|
* Curva2 debe seguir la velocidad sincrona del Combiner y debe funcionar siempre que el Combiner funcione
|
||||||
|
Las curvas son los unicos puntos en que se puede hacer acumulacion.
|
||||||
|
|
||||||
|
### Combiner
|
||||||
|
***
|
||||||
|
|
||||||
|
Velocidad sincrona a la velocidad del Divider. Funciona siempre que el Divider funcione y que no haya acumulacion en la Fotocelula de salida pth_out. Esta pth_out si detecta mas de una botella debe detener el combiner.
|
||||||
|
Si el combiner se detiene el Divider se detiene.
|
||||||
|
Cambio formato con M313/S31051
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
![[Pasted image 20250611204519.png]]
|
|
@ -0,0 +1,70 @@
|
||||||
|
|
||||||
|
Il progetto coinvolge un trasporto di bottiglie in anello con i seguenti elementi:
|
||||||
|
* Anello composto da M314, M315 e M344
|
||||||
|
* Trasporto con guide motorizzate per cambio di formato
|
||||||
|
* Divider ad alta velocità
|
||||||
|
* Cambio formato Guide M307 - Homing S34470
|
||||||
|
* Combinatore per unificare i canali all'uscita del divider.
|
||||||
|
* Cambio formato Combinatore M313 - S31051
|
||||||
|
* Logica di uscita B31060
|
||||||
|
* Tavolo di accumulo che permette di immagazzinare il formato non utilizzato.
|
||||||
|
* Il tavolo di accumulo dispone di 4 file a destra e 4 a sinistra oltre alla fila centrale usata solo come bypass.
|
||||||
|
* Le guide di traslazione che permettono di spostare le bottiglie dai canali esterni al canale centrale non hanno trazione propria e poiché passano attraverso i canali centrali, ciò obbliga che per caricare o scaricare i canali esterni, i trasporti dei canali interni debbano essere in funzione. Anche per questo motivo, i canali esterni vengono caricati per primi e scaricati per ultimi poiché abbiamo bisogno di muovere liberamente i canali interni mentre carichiamo o scarichiamo i canali più esterni.
|
||||||
|
* Se definiamo come canale(centro), centro + n è formato destro, centro - n è formato sinistro e centro è il canale di bypass, poi per caricare il formato destro dobbiamo e avendo come Max(n) la quantità massima di canali a destra o sinistra, allora dobbiamo prima caricare il canale n=centro+Max(n) e decrementiamo n mentre è maggiore di centro. Mentre carichiamo il canale n, i canali da centro fino a n vengono messi in funzione.
|
||||||
|
* Per lo scarico si fa il procedimento inverso scaricando dai canali più vicini al centro verso il canale Max(n)
|
||||||
|
* Per il formato sinistro si inverte il segno usando n=centro-Max(n).
|
||||||
|
* Per il tavolo di accumulo su cui stiamo lavorando Max(n) = 4, i canali sono definiti da 1 a 9 e il canale centrale = 5.
|
||||||
|
* Il tavolo può immagazzinare 2 formati, uno a destra e l'altro a sinistra. Quando è richiesto un cambio di formato, si carica il formato in corso e si scarica il nuovo formato. Una volta scaricato il formato in corso, si attiva la modalità bypass.
|
||||||
|
* Cambio formato:
|
||||||
|
* Dosatori di Ingresso: M318 - Homing S31550
|
||||||
|
* Dosatori di Uscita: M343 - Homing S34461
|
||||||
|
* Per selezionare il canale di carico o scarico si utilizzano 2 motori minimotori, uno all'ingresso e l'altro all'uscita che permettono di modificare l'angolo delle bordi. Questo angolo deve essere caricato come parametro e ci sono 9 canali possibili.
|
||||||
|
|
||||||
|
La sequenza partendo dal tavolo di accumulo è:
|
||||||
|
* Tavolo di accumulo:
|
||||||
|
* Dosatori di ingresso M316 e M317. Cambio di formato con M318
|
||||||
|
|
||||||
|
### Tavolo di accumulo
|
||||||
|
***
|
||||||
|
L'obiettivo del tavolo di accumulo è immagazzinare il formato che non si sta utilizzando.
|
||||||
|
|
||||||
|
Il lavoro avrà i seguenti obiettivi:
|
||||||
|
- Logica del tavolo di carico, scarico e bypass: gestione del cambio di formato per il minimotore. Per semplicità, il tavolo è diviso in destra/sinistra e i formati possono essere solo su un lato.
|
||||||
|
- Logica dei motori in anello e logica standard VM.
|
||||||
|
- L'HMI non sarà sviluppato in questa fase, mi hai detto che si fa separatamente, ma verrà creato un simulatore per noi.
|
||||||
|
- Gestione delle ricette nell'HMI: inizialmente, si seguirà il piano concordato. Verranno create righe nel ricettario per ogni motore in anello e per i dati del tavolo. Il cambio di formato del tavolo inizierà solo dopo aver verificato che non ci siano più bottiglie nell'anello e che la modalità carico sia attiva, con il divider e l'anello in automatico.
|
||||||
|
- Velocità:
|
||||||
|
- Velocità di bypass: dipende dal divider e dall'anello, non limitata dal tavolo.
|
||||||
|
- Velocità di carico/scarico: deve essere lenta per chiudere i vuoti tra i cambi di canale del tavolo. Durante il carico, lo scarico è fermo e viceversa.
|
||||||
|
|
||||||
|
Per ora, prevedo il tavolo come un Dispositivo con i seguenti segnali di ingresso/uscita:
|
||||||
|
|
||||||
|
#### Segnali di Ingresso (Input)
|
||||||
|
***
|
||||||
|
|
||||||
|
| Segnale | Descrizione | Funzione |
|
||||||
|
| ------- | ----------------------------------------------- | ---------------------------------------------------------- |
|
||||||
|
| i1 | Uscita anello richiesta prodotto | Uscita libera |
|
||||||
|
| i2 | Richiesta di carico | Per cambio di formato |
|
||||||
|
| i3 | Anello vuoto + divider in auto + anello in auto | Per generare consenso a cambio di formato |
|
||||||
|
| i4 | Velocità motore bypass richiesta | Velocità desiderata per bypass |
|
||||||
|
| i5 | Cambio di formato eseguito dall'HMI | Comando di esecuzione |
|
||||||
|
| i6 | Abilitazione di scarico | Inibisce scarico automatico una volta completato il carico |
|
||||||
|
|
||||||
|
#### Segnali di Uscita (Output)
|
||||||
|
***
|
||||||
|
|
||||||
|
| Segnale | Descrizione | Funzione |
|
||||||
|
| ------- | -------------------------- | ---------------------------------------------------- |
|
||||||
|
| o1 | Ingresso richiede prodotto | Tavolo pronto e in funzione |
|
||||||
|
| o2 | Cambio di formato consentito | Carico completato e anello vuoto |
|
||||||
|
| o3 | Velocità motore uscita | Per interfaccia con 1 motore di uscita del tavolo nell'anello |
|
||||||
|
| o4 | Tavolo in Bypass | Stato di bypass attivo |
|
||||||
|
|
||||||
|
Cambio di stati nel tavolo:
|
||||||
|
- Il carico inizia su richiesta esterna i2 (da operatore o temporizzatore).
|
||||||
|
- Lo scarico avviene automaticamente dopo un cambio di formato (i5). Il tavolo si scarica completamente prima di iniziare la modalità bypass.
|
||||||
|
- Una volta scaricato, si attiva la modalità bypass. (o4)
|
||||||
|
|
||||||
|
|
||||||
|
![[Pasted image 20250611204506.png]]
|
|
@ -0,0 +1,157 @@
|
||||||
|
|
||||||
|
### 1. Goal
|
||||||
|
|
||||||
|
Implement the control logic for a two-format bottle loop consisting of the Accumulation Table, Curve 1, Divider, Combiner, Curve 2 and the format-change axes. Only the loop, table and format-change logic are in scope.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2. Physical Layout
|
||||||
|
|
||||||
|
`AccumTable → Curve 1 (M344) → Divider → Combiner (M311 + M312) → Curve 2 (M315) → AccumTable`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 3. Runtime Data held by every entity
|
||||||
|
|
||||||
|
|Field|Type|Meaning|
|
||||||
|
|---|---|---|
|
||||||
|
|`formatId`|INT|Active bottle format|
|
||||||
|
|`cycleMode`|ENUM {AUTO, MAN}|Automatic / Manual|
|
||||||
|
|`alarmBits`|DWORD|Active alarms bitmap|
|
||||||
|
|`topAlarm`|WORD|Highest-priority alarm code|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 4. Main Operating States
|
||||||
|
|
||||||
|
1. **Load** – fill outermost channels first.
|
||||||
|
|
||||||
|
2. **Bypass** – straight-through flow.
|
||||||
|
|
||||||
|
3. **Unload** – empty innermost channels first.
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 5. Functional Behaviour (concise)
|
||||||
|
|
||||||
|
|Sub-system|Key rules of operation|
|
||||||
|
|---|---|
|
||||||
|
|**Accumulation Table**|• Works in three states (Load, Bypass, Unload).• Channels are filled from the outside in and emptied from the inside out; channels that lie between the selector and the active channel must run while bottles cross them.|
|
||||||
|
||• Each channel keeps two virtual counters `firstBottle_mm` & `lastBottle_mm`, initialised to the full channel length when a bottle is detected and decremented by the conveyor encoder; when `firstBottle_mm == 0` the leading bottle has reached the channel’s end.|
|
||||||
|
||• Once a channel starts **Unload** it must run until `lastBottle_mm == 0` to avoid trapping product.|
|
||||||
|
|**Curve 1 / Curve 2**|• Curve 1 runs in speed-follower mode slaved to the Divider and may move only while the Divider is running.• Curve 2 is slaved to the Combiner and must run whenever the Combiner runs; the two curves are the only places where line accumulation may build up.|
|
||||||
|
|**Combiner**|• Speed follows the Divider.• Stops if the downstream photo-sensor `pth_out` detects more than one bottle; if Combiner stops it also stops the Divider.|
|
||||||
|
|**Doser Pair**|• Two motors run in mirror at identical speed; if either trips, both stop.• After the last bottle pulse the pair runs an additional distance (`stopDist_mm`) using a virtual encoder before stopping.|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 6. Key Parameters
|
||||||
|
|
||||||
|
`bottleLen_mm`, `minAccumTime_ms`, `loadSpeed_mmps`, `unloadSpeed_mmps`, `bypassSpeed_mmps`, `virtualEncRatio_HzPerMm`, `safetyGapIn_mm`, `safetyGapOut_mm`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 7. Software Architecture (Function Blocks)
|
||||||
|
|
||||||
|
| FB Name | Purpose | Typical DB |
|
||||||
|
| ---------------------- | ---------------------------------------------------------- | ------------------------ |
|
||||||
|
| **FB_FormatAxis** | Position a single minimotor to the target format dimension | `DB_FormatAxis_<axis>` |
|
||||||
|
| **FB_ChannelSelector** | Position the infeed/outfeed selector to a channel | `DB_SelIn`, `DB_SelOut` |
|
||||||
|
| **FB_AreaTracker** | Track `firstBottle` / `lastBottle` and drive an area motor | `DB_Area_<n>` |
|
||||||
|
| **FB_DoserPair** | Run a left/right doser pair with stop-after-pulse logic | `DB_DoserIO` |
|
||||||
|
| **FB_BufferLogic** | High-level coordinator for Load / Bypass / Unload | `DB_Buffer` |
|
||||||
|
| **FB_CombinerCtrl** | Synchronise Combiner with Divider, stop on blockage | `DB_Combiner` |
|
||||||
|
| **FB_LoopCurve** | Slave Curve 1 to Divider and Curve 2 to Combiner | `DB_Curve1`, `DB_Curve2` |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 8. Interfaces (concise examples)
|
||||||
|
|
||||||
|
_FB_FormatAxis_
|
||||||
|
|
||||||
|
```
|
||||||
|
Inputs : enable, dimSet_mm, cycleMode, cmdHoming, jogFwd, jogRev, reset
|
||||||
|
Outputs: inPosition, positioning, errorWord
|
||||||
|
```
|
||||||
|
|
||||||
|
_FB_ChannelSelector_
|
||||||
|
|
||||||
|
```
|
||||||
|
Inputs : enable, channelSet(0-9), cycleMode, cmdHoming, jogFwd, jogRev, reset
|
||||||
|
Outputs: inPosition, positioning, autoActive, errorWord
|
||||||
|
```
|
||||||
|
|
||||||
|
_FB_AreaTracker_
|
||||||
|
|
||||||
|
```
|
||||||
|
Inputs : enable, speedRef_mmps, bottleLen_mm, spacing_mm, areaDim_mm
|
||||||
|
Outputs: areaEmpty, noBottleAtIn, noBottleAtOut
|
||||||
|
```
|
||||||
|
|
||||||
|
_FB_DoserPair_
|
||||||
|
|
||||||
|
```
|
||||||
|
Inputs : enable, speedRef_mmps, bottlePulse, stopDist_mm
|
||||||
|
Outputs: running, errorWord
|
||||||
|
```
|
||||||
|
|
||||||
|
_FB_BufferLogic_
|
||||||
|
|
||||||
|
```
|
||||||
|
Inputs : reqLoad, reqFormatChange, unloadEnable, bypassSpeedRef
|
||||||
|
Outputs: tableNeedsProduct, formatChangeOK, outfeedSpeedRef, bypassActive
|
||||||
|
```
|
||||||
|
|
||||||
|
_FB_CombinerCtrl_
|
||||||
|
|
||||||
|
```
|
||||||
|
Inputs : dividerSpeedRef_mmps, pthOutBlocked, dividerRunning
|
||||||
|
Outputs: combinerSpeedRef_mmps, stopDivider
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 9. Naming Guidelines
|
||||||
|
|
||||||
|
|Category|Convention|Example|
|
||||||
|
|---|---|---|
|
||||||
|
|FBs|`FB_<Meaning>`|`FB_BufferLogic`|
|
||||||
|
|BOOL var|verbNounFlag|`enableMove`|
|
||||||
|
|WORD|camelCase|`errorWord`|
|
||||||
|
|REAL|suffix `_mm`, `_mmps`|`speedRef_mmps`|
|
||||||
|
|Structs|`ST_<Role>`|`ST_AreaStatus`|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 10. Signal Map (I/O)
|
||||||
|
|
||||||
|
|Signal|Suggested Name|Dir|Comment|
|
||||||
|
|---|---|---|---|
|
||||||
|
|i1|`ringOutReq`|IN|Product request from downstream|
|
||||||
|
|i2|`loadCmd`|IN|Start load for format change|
|
||||||
|
|i3|`ringEmptyOk`|IN|Loop & Divider ready for change|
|
||||||
|
|i4|`bypassSpeedRef`|IN|Desired bypass speed|
|
||||||
|
|i5|`formatChangeCmd`|IN|HMI executes change|
|
||||||
|
|i6|`unloadEnable`|IN|Allow automatic unload|
|
||||||
|
|o1|`tableProdReq`|OUT|Table ready, asks for bottles|
|
||||||
|
|o2|`formatChangeOK`|OUT|Loading done & loop empty|
|
||||||
|
|o3|`outfeedSpeedRef`|OUT|Speed reference to ring outfeed|
|
||||||
|
|o4|`bypassActive`|OUT|Table in bypass state|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 11. State Sequence Summary
|
||||||
|
|
||||||
|
1. External `loadCmd` → BufferLogic enters **Load**, enforcing outer-to-inner rule.
|
||||||
|
|
||||||
|
2. On HMI `formatChangeCmd`, BufferLogic finishes load, waits for `ringEmptyOk`, then raises `formatChangeOK`.
|
||||||
|
|
||||||
|
3. After format change, BufferLogic triggers **Unload** (inner-to-outer).
|
||||||
|
|
||||||
|
4. When all channels empty, state switches to **Bypass** and `bypassActive` is set.
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
This version retains the tight structure and English terminology from the previous draft while adding the essential operating descriptions for the Accumulation Table, Curves, Combiner and Doser logic drawn from the original Spanish document.
|
After Width: | Height: | Size: 267 KiB |
After Width: | Height: | Size: 267 KiB |
After Width: | Height: | Size: 168 KiB |
After Width: | Height: | Size: 110 KiB |
After Width: | Height: | Size: 13 KiB |
|
@ -0,0 +1,8 @@
|
||||||
|
|
||||||
|
IM Connection
|
||||||
|
|
||||||
|
24v Card
|
||||||
|
![[Pasted image 20250610120718.png]]
|
||||||
|
|
||||||
|
Analog setup
|
||||||
|
![[Pasted image 20250610121735.png]]
|
|
@ -70,18 +70,3 @@ knick --> plc : "4-20mA"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Comparative Table: UR62 vs UR24 Refractometers by Maselli
|
|
||||||
|
|
||||||
| Feature | UR62 | UR24 |
|
|
||||||
| --------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
|
|
||||||
| **Classification** | Basic (THE BASIC) | Advanced (THE ULTIMATE) |
|
|
||||||
| **Measurement range** | 1.3229 … 1.505 nD (0…85 Bx) | 1.3163 … 1.5318 nD (0…95 Bx) |
|
|
||||||
| **Accuracy** | • +/- 0.0004 nD (+/-0.2 Bx) alone<br>• +/- 0.0002 nD (+/-0.1 Bx) with RC24 | • +/- 0.00003 nD (+/-0.02 Bx) SA version<br>• +/- 0.00007 nD (+/-0.05 Bx) HA version<br>• +/- 0.0002 nD (+/-0.15 Bx) STD version |
|
|
||||||
| **Repeatability** | • +/- 0.2 alone<br>• +/- 0.03 with RC24 | Not specified |
|
|
||||||
| **Product temperature** | -25…+90°C (-13…194°F) | • -5…+105°C (23…221°F)<br>• -5…+140°C (23…284°F) for LP version |
|
|
||||||
| **Max sterilization temperature** | Hot water at 95°C x 30 min<br>Steam (0.5 bar) at 110°C x 30 min | • 125°C x 30 min<br>• 145°C x 30 min for LP version |
|
|
||||||
| **Line pressure** | • Max. 10 bar at 20°C<br>• Max. 8 bar at 90°C | • Max. 10 bar at 20°C<br>• Max. 8 bar at 100°C<br>• Special version up to 40 bar at 20°C |
|
|
||||||
| **Power supply** | • AC 24V ±10%, 50-60Hz, 80mA<br>• DC 24V ±10%, 80mA | • AC 24V ±10%, 50-60Hz, 0.6A<br>• DC 24V ±10%, 0.6A<br>• AC 115/230V ±10%, 50-60Hz, 25VA (with transformer) |
|
|
||||||
| **Interfaces** | Analog, Analog/Digital, PROFIBUS DP, Ethernet/IP | Analog, Analog/Digital, PROFIBUS DP, Ethernet/IP, PROFINET, Modbus/TCP |
|
|
||||||
| **Protection** | IP67 to EN60529 | IP67 to EN60529 |
|
|
||||||
| **Main benefits** | • Optical Technology<br>• Basic accuracy<br>• 100% in-line installation<br>• No need of adjustments<br>• No maintenance | • Optical Technology<br>• High accuracy<br>• 100% in-line installation<br>• No need of adjustments<br>• No maintenance |
|
|
After Width: | Height: | Size: 41 KiB |
After Width: | Height: | Size: 74 KiB |
|
@ -0,0 +1,254 @@
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
Function block for managing 4-20mA analog inputs with error detection and automatic recovery. Designed for SIMATIC S7-315 systems.
|
||||||
|
|
||||||
|
## Hardware Requirements
|
||||||
|
- **Module**: SIMATIC ET 200S 2AI I 4WIRE ST (6ES7 134-4GB11-0AB0)
|
||||||
|
- **Range**: 4-20mA
|
||||||
|
- **Connection**: 4-wire configuration
|
||||||
|
|
||||||
|
## Interface
|
||||||
|
|
||||||
|
### Input
|
||||||
|
| Parameter | Type | Description |
|
||||||
|
|-----------|------|-------------|
|
||||||
|
| `i_IW_Analog` | WORD | Raw analog input value (PEW) |
|
||||||
|
|
||||||
|
### Outputs
|
||||||
|
| Parameter | Type | Description |
|
||||||
|
|-----------|------|-------------|
|
||||||
|
| `o_CurrentMa` | REAL | Current value in mA |
|
||||||
|
| `o_ErrorCode` | INT | Error code (0=OK, higher values = higher severity) |
|
||||||
|
|
||||||
|
## Error Codes (Priority Order)
|
||||||
|
|
||||||
|
| Code | Severity | Description | Current Output |
|
||||||
|
|------|----------|-------------|----------------|
|
||||||
|
| 0 | OK | Normal range (4-20mA) | Calculated value |
|
||||||
|
| 1 | WARNING | Overload range (20-22.8mA) | Calculated value |
|
||||||
|
| 2 | WARNING | Underload range (3.9995-4mA) | Calculated value |
|
||||||
|
| 10 | ERROR | Overflow (>22.8mA) | 22.8142mA |
|
||||||
|
| 11 | ERROR | Underflow (<3.9995mA) | 3.9995mA |
|
||||||
|
| 20 | CRITICAL | Wire Break (32767 value) | 22.8142mA |
|
||||||
|
| 99 | CRITICAL | Undefined range | 3.9995mA |
|
||||||
|
|
||||||
|
## Error Recovery Behavior
|
||||||
|
|
||||||
|
### Cooldown Mechanism
|
||||||
|
- When a critical error (code ≥10) is resolved, a **500ms cooldown** period begins
|
||||||
|
- During cooldown: previous error code and current value are maintained
|
||||||
|
- After cooldown: automatic reset to normal operation
|
||||||
|
- No manual reset required
|
||||||
|
|
||||||
|
### Current Value Logic
|
||||||
|
- **Normal operation**: Calculated using linear conversion: `mA = 4 + (AnalogValue / 27648) * 16`
|
||||||
|
- **Error conditions**: Fixed logical values based on error type
|
||||||
|
- **Value limits**: Always constrained between 3.9995mA and 22.8142mA
|
||||||
|
|
||||||
|
## Usage Example
|
||||||
|
|
||||||
|
```scl
|
||||||
|
// Instance declaration
|
||||||
|
VAR
|
||||||
|
AnalogInput_Measurement : FB_AnalogMeasurement;
|
||||||
|
InputValue : WORD;
|
||||||
|
CurrentMa : REAL;
|
||||||
|
ErrorStatus : INT;
|
||||||
|
END_VAR
|
||||||
|
|
||||||
|
// Function block call
|
||||||
|
AnalogInput_Measurement(
|
||||||
|
i_IW_Analog := InputValue, // Connect to PEW address
|
||||||
|
o_CurrentMa => CurrentMa, // Current in mA
|
||||||
|
o_ErrorCode => ErrorStatus // Error monitoring
|
||||||
|
);
|
||||||
|
|
||||||
|
// Error handling example
|
||||||
|
CASE ErrorStatus OF
|
||||||
|
0: // Normal operation
|
||||||
|
1,2: // Warnings - operation continues
|
||||||
|
10,11,20,99: // Critical errors - check wiring/module
|
||||||
|
END_CASE;
|
||||||
|
```
|
||||||
|
|
||||||
|
## Key Features
|
||||||
|
- **Simplified operation**: No diagnostic configuration required
|
||||||
|
- **Automatic recovery**: 500ms cooldown with self-reset
|
||||||
|
- **Prioritized error handling**: ELSIF logic ensures most critical errors take precedence
|
||||||
|
- **Logical fallback values**: Sensible current values during error conditions
|
||||||
|
- **No memory**: Stateless operation after cooldown period
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
```pascal
|
||||||
|
|
||||||
|
// FB2121 - Simplified 4-20mA Analog Measurement Management
|
||||||
|
// Required hardware configuration:
|
||||||
|
// - SIMATIC ET 200S 2AI I 4WIRE ST (6ES7 134-4GB11-0AB0)
|
||||||
|
// - Range: 4-20mA
|
||||||
|
|
||||||
|
FUNCTION_BLOCK "FB_AnalogMeasurement"
|
||||||
|
TITLE = 'Simplified 4-20mA analog input management'
|
||||||
|
AUTHOR : tk
|
||||||
|
FAMILY : Process
|
||||||
|
|
||||||
|
VAR_INPUT
|
||||||
|
i_IW_Analog : WORD; // Analog input value (PEW)
|
||||||
|
END_VAR
|
||||||
|
|
||||||
|
VAR_OUTPUT
|
||||||
|
o_CurrentMa : REAL; // Current value in mA
|
||||||
|
o_ErrorCode : INT; // Error code (0=OK, increasing priority by severity)
|
||||||
|
END_VAR
|
||||||
|
|
||||||
|
VAR
|
||||||
|
|
||||||
|
// Internal variables
|
||||||
|
AnalogValueInt : INT; // Analog value converted to INT
|
||||||
|
CurrentErrorCode : INT; // Current error code
|
||||||
|
PreviousErrorCode : INT; // Previous error code for cooldown
|
||||||
|
PreviousCurrentMa : REAL; // Previous current value for cooldown
|
||||||
|
|
||||||
|
// Timer for 500ms cooldown
|
||||||
|
CooldownTimer : TON;
|
||||||
|
CooldownTime : TIME := T#500MS; // 500ms cooldown
|
||||||
|
InCooldown : BOOL; // Flag indicating if in cooldown
|
||||||
|
END_VAR
|
||||||
|
|
||||||
|
VAR_TEMP
|
||||||
|
TempReal : REAL; // Temporary value for floating point calculations
|
||||||
|
END_VAR
|
||||||
|
|
||||||
|
CONST
|
||||||
|
// Constants definition according to 4-20mA analog module documentation
|
||||||
|
OVERFLOW_VALUE := 32767; // 7FFFH - Overflow/wire break value
|
||||||
|
UNDERFLOW_VALUE := -32768; // 8000H - Underflow value
|
||||||
|
UNDERFLOW_DIAG := -32767; // 8001H - Underflow with diagnostics enabled
|
||||||
|
MAX_NORMAL := 27648; // 6C00H - 20mA (maximum value in nominal range)
|
||||||
|
MIN_NORMAL := 0; // 0000H - 4mA (minimum value in nominal range)
|
||||||
|
RANGE_HIGH := 32511; // 7EFFH - 22.8142mA (overload range start)
|
||||||
|
RANGE_LOW := -1; // FFFFH - 3.9995mA (underload range end)
|
||||||
|
|
||||||
|
// Logical values for extreme conditions
|
||||||
|
OVERFLOW_MA_VALUE := 22.8142; // mA value for overflow
|
||||||
|
UNDERFLOW_MA_VALUE := 3.9995; // mA value for underflow
|
||||||
|
|
||||||
|
END_CONST
|
||||||
|
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
// Convert WORD value to INT for processing
|
||||||
|
AnalogValueInt := WORD_TO_INT(i_IW_Analog);
|
||||||
|
|
||||||
|
// ========================================================================================
|
||||||
|
// ANALOG VALUE ANALYSIS AND ERROR CODE DETERMINATION (ELSIF PRIORITY)
|
||||||
|
// ========================================================================================
|
||||||
|
// Error codes by priority (0=OK, increasing numbers = higher severity):
|
||||||
|
// 0 = OK - Nominal range (4-20mA)
|
||||||
|
// 1 = WARNING - Overload range (20-22.8mA)
|
||||||
|
// 2 = WARNING - Underload range (3.9995-4mA)
|
||||||
|
// 10 = ERROR - Overflow (>22.8mA or 32767)
|
||||||
|
// 11 = ERROR - Underflow (<3.9995mA or negative values)
|
||||||
|
// 20 = CRITICAL - Wire Break (32767 confirmed)
|
||||||
|
// 99 = CRITICAL - Undefined range
|
||||||
|
|
||||||
|
// ELSIF list with concurrent error priority (from most severe to least severe)
|
||||||
|
IF AnalogValueInt = OVERFLOW_VALUE THEN // 32767 (7FFFH) - Most critical
|
||||||
|
CurrentErrorCode := 20; // Wire Break
|
||||||
|
|
||||||
|
ELSIF AnalogValueInt = UNDERFLOW_VALUE OR
|
||||||
|
AnalogValueInt = UNDERFLOW_DIAG THEN // -32768 or -32767
|
||||||
|
CurrentErrorCode := 11; // Critical underflow
|
||||||
|
|
||||||
|
ELSIF AnalogValueInt > RANGE_HIGH THEN // > 32511 (overflow)
|
||||||
|
CurrentErrorCode := 10; // Overflow
|
||||||
|
|
||||||
|
ELSIF AnalogValueInt < RANGE_LOW THEN // < -1 (underflow)
|
||||||
|
CurrentErrorCode := 11; // Underflow
|
||||||
|
|
||||||
|
ELSIF AnalogValueInt > MAX_NORMAL AND
|
||||||
|
AnalogValueInt <= RANGE_HIGH THEN // Overload range
|
||||||
|
CurrentErrorCode := 1; // Warning overload
|
||||||
|
|
||||||
|
ELSIF AnalogValueInt < MIN_NORMAL AND
|
||||||
|
AnalogValueInt >= RANGE_LOW THEN // Underload range
|
||||||
|
CurrentErrorCode := 2; // Warning underload
|
||||||
|
|
||||||
|
ELSIF AnalogValueInt >= MIN_NORMAL AND
|
||||||
|
AnalogValueInt <= MAX_NORMAL THEN // Nominal range
|
||||||
|
CurrentErrorCode := 0; // OK
|
||||||
|
|
||||||
|
ELSE // Any other case
|
||||||
|
CurrentErrorCode := 99; // Undefined range
|
||||||
|
END_IF;
|
||||||
|
|
||||||
|
// ========================================================================================
|
||||||
|
// 500MS COOLDOWN MANAGEMENT
|
||||||
|
// ========================================================================================
|
||||||
|
|
||||||
|
// Detect transition from error to no-error to start cooldown
|
||||||
|
IF PreviousErrorCode >= 10 AND CurrentErrorCode < 10 THEN
|
||||||
|
InCooldown := TRUE;
|
||||||
|
CooldownTimer(IN := TRUE, PT := CooldownTime);
|
||||||
|
END_IF;
|
||||||
|
|
||||||
|
// Manage cooldown timer
|
||||||
|
CooldownTimer(IN := InCooldown, PT := CooldownTime);
|
||||||
|
|
||||||
|
// End cooldown when timer expires
|
||||||
|
IF CooldownTimer.Q THEN
|
||||||
|
InCooldown := FALSE;
|
||||||
|
CooldownTimer(IN := FALSE, PT := CooldownTime);
|
||||||
|
END_IF;
|
||||||
|
|
||||||
|
// ========================================================================================
|
||||||
|
// ERROR CODE AND CURRENT VALUE ASSIGNMENT
|
||||||
|
// ========================================================================================
|
||||||
|
|
||||||
|
// If in cooldown, maintain previous error and current
|
||||||
|
IF InCooldown THEN
|
||||||
|
o_ErrorCode := PreviousErrorCode;
|
||||||
|
o_CurrentMa := PreviousCurrentMa;
|
||||||
|
ELSE
|
||||||
|
// Assign current error code
|
||||||
|
o_ErrorCode := CurrentErrorCode;
|
||||||
|
|
||||||
|
// Assign current value based on detected error
|
||||||
|
IF CurrentErrorCode = 20 OR CurrentErrorCode = 10 THEN // Wire Break or Overflow
|
||||||
|
o_CurrentMa := OVERFLOW_MA_VALUE; // 22.8142mA
|
||||||
|
|
||||||
|
ELSIF CurrentErrorCode = 11 THEN // Underflow
|
||||||
|
o_CurrentMa := UNDERFLOW_MA_VALUE; // 3.9995mA
|
||||||
|
|
||||||
|
ELSIF CurrentErrorCode = 99 THEN // Undefined range
|
||||||
|
o_CurrentMa := UNDERFLOW_MA_VALUE; // 3.9995mA (safe value)
|
||||||
|
|
||||||
|
ELSE
|
||||||
|
// Normal calculation for OK and WARNING ranges: mA = 4 + (AnalogValueInt / 27648) * 16
|
||||||
|
TempReal := INT_TO_REAL(AnalogValueInt);
|
||||||
|
o_CurrentMa := 4.0 + (TempReal / INT_TO_REAL(MAX_NORMAL)) * 16.0;
|
||||||
|
|
||||||
|
// Limit to logical maximum and minimum values
|
||||||
|
IF o_CurrentMa < UNDERFLOW_MA_VALUE THEN
|
||||||
|
o_CurrentMa := UNDERFLOW_MA_VALUE; // Minimum: 3.9995mA
|
||||||
|
ELSIF o_CurrentMa > OVERFLOW_MA_VALUE THEN
|
||||||
|
o_CurrentMa := OVERFLOW_MA_VALUE; // Maximum: 22.8142mA
|
||||||
|
END_IF;
|
||||||
|
END_IF;
|
||||||
|
|
||||||
|
// Save values for next cycle
|
||||||
|
PreviousErrorCode := CurrentErrorCode;
|
||||||
|
PreviousCurrentMa := o_CurrentMa;
|
||||||
|
END_IF;
|
||||||
|
|
||||||
|
END_FUNCTION_BLOCK
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
```
|
|
@ -0,0 +1,791 @@
|
||||||
|
|
||||||
|
## Información del Proyecto
|
||||||
|
|
||||||
|
- **Cliente**: AJETHAI CO., LTD. (Tailandia)
|
||||||
|
- **Proyecto**: 169423.A.2.2
|
||||||
|
- **Alcance**: Reemplazo de flowmeters (80000SEV909, 80000SEV081 & 80000SEV079)
|
||||||
|
- **Máquina**: Mixer STARBLEND PLUS D7 # SSAE0340
|
||||||
|
- **Valor**: €56,017 / €23,450.40
|
||||||
|
- **Referencia**: E5.007172
|
||||||
|
|
||||||
|
## Cronología de Eventos
|
||||||
|
|
||||||
|
### **Septiembre 2024**
|
||||||
|
|
||||||
|
- **02/09/2024**: Cliente emite POs:
|
||||||
|
- PO #38204 (Partes)
|
||||||
|
- PO #38205 (Intervención)
|
||||||
|
|
||||||
|
### **Octubre 2024**
|
||||||
|
|
||||||
|
- **25/10/2024**: Fecha de entrega comprometida (CRD)
|
||||||
|
- **Octubre**: Gestión de términos de pago
|
||||||
|
- Negociación de términos: cambio de "within a week" a 30 días
|
||||||
|
- Confirmación: 100% del precio total pagadero dentro de 30 días
|
||||||
|
|
||||||
|
### **Noviembre 2024**
|
||||||
|
|
||||||
|
- **06/11/2024**: Fecha FCA Parma confirmada
|
||||||
|
- **Noviembre**: Lanzamiento del proyecto
|
||||||
|
- Estado: LAUNCHED
|
||||||
|
- PM Supply asignado: Pietro Bruno
|
||||||
|
- Creación de SO (Sales Order)
|
||||||
|
|
||||||
|
### **Proceso de Ejecución**
|
||||||
|
|
||||||
|
#### **Fase de Planificación**
|
||||||
|
|
||||||
|
- **Project Manager Supply**: Pietro Bruno (inicial) → Luca Di Gioia (reasignado)
|
||||||
|
- **Services Project Manager**: Remi Courtiade
|
||||||
|
- **Coordinación Regional**: Chaiwat Amnuaisin
|
||||||
|
|
||||||
|
#### **Desarrollo y Validación**
|
||||||
|
|
||||||
|
- **Risk Assessment**: Completado con puntos específicos para PM Service
|
||||||
|
- **DV (Delivery Validation)**: Organizada por la zona
|
||||||
|
- Propósito: Verificar condiciones de la máquina antes de la intervención
|
||||||
|
- Razón: Información limitada de mantenimiento, posibles modificaciones locales del cliente
|
||||||
|
|
||||||
|
#### **Problemas Técnicos Identificados**
|
||||||
|
|
||||||
|
- **Software Backup**: Ingeniero en sitio detecta diferencias entre:
|
||||||
|
- Software presente en la máquina
|
||||||
|
- Software enviado previamente por el cliente
|
||||||
|
- **Acción requerida**: Alessandro Passera (TD) debe verificar si las diferencias afectarán la instalación
|
||||||
|
|
||||||
|
#### **Factory Acceptance Test (FAT)**
|
||||||
|
|
||||||
|
- **Resultado**: FAT exitoso
|
||||||
|
- **Status**: Mercancías listas en planta de Parma
|
||||||
|
- **Documentos**: Preparados para organizar recogida
|
||||||
|
|
||||||
|
#### **Gestión de Envío**
|
||||||
|
|
||||||
|
- **Método**: Flete aéreo (airfreight)
|
||||||
|
- **Logística**: Coordinación con Geodis para determinar si usar DHL
|
||||||
|
- **Costos de embalaje**: Añadidos al PO
|
||||||
|
|
||||||
|
### **Puntos Críticos del Proyecto**
|
||||||
|
|
||||||
|
#### **Riesgos Identificados**
|
||||||
|
|
||||||
|
1. **Carga de trabajo actual** y **escasez de materias primas**
|
||||||
|
2. **Componentes eléctricos** principalmente afectados
|
||||||
|
3. **Modificaciones locales** del cliente en la máquina
|
||||||
|
|
||||||
|
#### **Información Técnica Requerida**
|
||||||
|
|
||||||
|
- **PLC software backup** (más importante para cambio de flowmeters)
|
||||||
|
- **Fotos de cables y conectores** de los flowmeters
|
||||||
|
- **Verificación de compatibilidad** de cables existentes
|
||||||
|
|
||||||
|
#### **Timeline de Instalación**
|
||||||
|
|
||||||
|
- **Planificación**: Instalación prevista en 4 semanas desde la comunicación
|
||||||
|
- **Pendiente**: Confirmación de fecha específica con cliente
|
||||||
|
- **Coordinación**: Con equipo de planificación para asignación de ingeniero
|
||||||
|
|
||||||
|
### **Estado Final (09/06/2025)**
|
||||||
|
|
||||||
|
- **Comunicación de Alessandro Passera**:
|
||||||
|
- No hay archivo adjunto en el email
|
||||||
|
- Esperando software backup para comparación de versiones
|
||||||
|
- **Próximos pasos**: Verificación de compatibilidad de software antes de la instalación
|
||||||
|
|
||||||
|
## Actores Principales
|
||||||
|
|
||||||
|
|Nombre|Rol|Responsabilidad|
|
||||||
|
|---|---|---|
|
||||||
|
|**Remi Courtiade**|Services Project Manager|Gestión general del proyecto|
|
||||||
|
|**Luca Di Gioia**|Project Manager Supply|Suministro y coordinación|
|
||||||
|
|**Pietro Bruno**|Project Manager Supply (inicial)|Lanzamiento del proyecto|
|
||||||
|
|**Alessandro Passera**|Technical Department|Verificación de software|
|
||||||
|
|**Chaiwat Amnuaisin**|Regional Coordinator|Coordinación con cliente|
|
||||||
|
|**Cholpassorn Thananakruangsri**|Services PM Assistant|Documentación y POs|
|
||||||
|
|
||||||
|
## Lecciones Aprendidas
|
||||||
|
|
||||||
|
- Importancia de la validación previa (DV) en proyectos con información limitada de mantenimiento
|
||||||
|
- Necesidad de verificación exhaustiva de software antes de la instalación
|
||||||
|
- Coordinación efectiva entre equipos técnicos y comerciales para gestión de riesgos
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Índice de Mensajes
|
||||||
|
|
||||||
|
- 09-06-2025 - Passera, Alessandro - [[Cronología del Proyecto 169423 - AJETHAI CO., LTD.#R: NOTICE OF GOODS READY ASSIGN ORDER 169423 - Won Opportunity - Services- 169423.A.2.2 - AJETHAI CO., LTD. - Thailand - Filling - Service CRM:0037299==CHECK PAYMENT TERM==E5.007172|R-NOTICE-OF-GOODS-READY-ASSIGN-ORDER-169423---Won-Opportunity---Services--169423A22---AJETHAI-CO-LTD---Thailand---Filling---Service-CRM0037299CHECK-PAYMENT-TERME5007172]]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
+ 168205d5e00fbfeebaf1eadffd340445
|
||||||
|
|
||||||
|
### R: NOTICE OF GOODS READY ASSIGN ORDER 169423 - Won Opportunity - Services- 169423.A.2.2 - AJETHAI CO., LTD. - Thailand - Filling - Service CRM:0037299==CHECK PAYMENT TERM==E5.007172
|
||||||
|
|
||||||
|
- 09-06-2025
|
||||||
|
|
||||||
|
Dear all, into the email was not present any file attached .
|
||||||
|
In order to compare the software version we will wait the software backup.
|
||||||
|
Best regards
|
||||||
|
|
||||||
|
Alessandro PASSERA
|
||||||
|
Tel: +39 0521 999 319
|
||||||
|
Mob: +39 3459439668
|
||||||
|
Fax : +39 0521 999511
|
||||||
|
www.sidel.com
|
||||||
|
|
||||||
|
General
|
||||||
|
|
||||||
|
Ciao Alessandro,
|
||||||
|
An engineer went on site to make the DV and notice some differences on the software present on the machine and the software that customer sent us.
|
||||||
|
Please find in attached the software backup that the engineer sent.
|
||||||
|
Can you please check that the differences will not create issue on the new software, and in case it’s need correct the new software.
|
||||||
|
|
||||||
|
Many thanks
|
||||||
|
Best Regards,
|
||||||
|
LUCA DI GIOIA
|
||||||
|
PROJECT MANAGER SUPPLY
|
||||||
|
Sidel Group
|
||||||
|
Sidel SpA
|
||||||
|
Via La Spezia 241/A
|
||||||
|
43124 Parma - Italy
|
||||||
|
Mail:
|
||||||
|
|
||||||
|
General
|
||||||
|
|
||||||
|
Hello Luca,
|
||||||
|
Any update on this topic?
|
||||||
|
Thanks in advance,
|
||||||
|
Best regards.
|
||||||
|
Remi
|
||||||
|
|
||||||
|
General
|
||||||
|
|
||||||
|
***
|
||||||
|
Subject: RE: NOTICE OF GOODS READY ASSIGN ORDER 169423 - Won Opportunity - Services- 169423.A.2.2 - AJETHAI CO., LTD. - Thailand - Filling - Service CRM:0037299==CHECK PAYMENT TERM==E5.007172
|
||||||
|
|
||||||
|
Dear Luca,
|
||||||
|
We will make the installation of this project in 4 weeks.
|
||||||
|
|
||||||
|
Did the TD update you about the last version of the software backup send by the engineer. Will it impact the installation?
|
||||||
|
Thanks in advance,
|
||||||
|
Best regards.
|
||||||
|
Remi
|
||||||
|
|
||||||
|
***
|
||||||
|
Subject: R: NOTICE OF GOODS READY ASSIGN ORDER 169423 - Won Opportunity - Services- 169423.A.2.2 - AJETHAI CO., LTD. - Thailand - Filling - Service CRM:0037299==CHECK PAYMENT TERM==E5.007172
|
||||||
|
|
||||||
|
Dear Remi,
|
||||||
|
I’ll check with TD.
|
||||||
|
Many thanks
|
||||||
|
Best Regards,
|
||||||
|
LUCA DI GIOIA
|
||||||
|
PROJECT MANAGER SUPPLY
|
||||||
|
Sidel Group
|
||||||
|
Sidel SpA
|
||||||
|
Via La Spezia 241/A
|
||||||
|
43124 Parma - Italy
|
||||||
|
Mail:
|
||||||
|
|
||||||
|
General
|
||||||
|
|
||||||
|
Hello Luca,
|
||||||
|
An engineer went on site to make the DV and notice some differences on the software present on the machine and the software that customer sent us.
|
||||||
|
Please find in attached the software backup that the engineer sent.
|
||||||
|
Can you please check that the differences will not create issue on the new software, and in case it’s need correct the new software.
|
||||||
|
Thanks in advance,
|
||||||
|
Best regards.
|
||||||
|
Remi
|
||||||
|
|
||||||
|
General
|
||||||
|
|
||||||
|
***
|
||||||
|
Subject: R: NOTICE OF GOODS READY ASSIGN ORDER 169423 - Won Opportunity - Services- 169423.A.2.2 - AJETHAI CO., LTD. - Thailand - Filling - Service CRM:0037299==CHECK PAYMENT TERM==E5.007172
|
||||||
|
|
||||||
|
Dear Remi,
|
||||||
|
please could you me update on the pick up of the goods ?
|
||||||
|
|
||||||
|
Many thanks
|
||||||
|
Best Regards,
|
||||||
|
LUCA DI GIOIA
|
||||||
|
PROJECT MANAGER SUPPLY
|
||||||
|
Sidel Group
|
||||||
|
Sidel SpA
|
||||||
|
Via La Spezia 241/A
|
||||||
|
43124 Parma - Italy
|
||||||
|
Mail:
|
||||||
|
|
||||||
|
General
|
||||||
|
|
||||||
|
Dears
|
||||||
|
Please see attached the documents recap.
|
||||||
|
|
||||||
|
Many thanks
|
||||||
|
Best Regards,
|
||||||
|
LUCA DI GIOIA
|
||||||
|
PROJECT MANAGER SUPPLY
|
||||||
|
Sidel Group
|
||||||
|
Sidel SpA
|
||||||
|
Via La Spezia 241/A
|
||||||
|
43124 Parma - Italy
|
||||||
|
Mail:
|
||||||
|
|
||||||
|
|
||||||
|
Dear Remi,
|
||||||
|
Please find attached the revised PO with packing cost for your reference.
|
||||||
|
|
||||||
|
Best regards,
|
||||||
|
Cholpassorn Thananakruangsri (Ang)
|
||||||
|
|
||||||
|
Services Project Management Assistant
|
||||||
|
Sidel Group
|
||||||
|
Sidel South Asia-Pacific Ltd.,
|
||||||
|
|
||||||
|
18th Floor (Zone C, D, E), Thanapoom Tower,
|
||||||
|
1550 New Petchburi Rd, Makkasan,
|
||||||
|
|
||||||
|
Rajthevee, Bangkok 10400, Thailand
|
||||||
|
www.sidel.com
|
||||||
|
|
||||||
|
Discover our online Option & Upgrade catalogue @
|
||||||
|
www.options-upgrades.sidel.com
|
||||||
|
|
||||||
|
General
|
||||||
|
|
||||||
|
***
|
||||||
|
Subject: RE: NOTICE OF GOODS READY ASSIGN ORDER 169423 - Won Opportunity - Services- 169423.A.2.2 - AJETHAI CO., LTD. - Thailand - Filling - Service CRM:0037299==CHECK PAYMENT TERM==E5.007172
|
||||||
|
|
||||||
|
Hello Ang,
|
||||||
|
Can you please help to modify the PO in attached and add the packing cost.
|
||||||
|
|
||||||
|
For the shipment we will go by airfreight so no need to modify the delivery address.
|
||||||
|
Thanks in advance,
|
||||||
|
Best regards.
|
||||||
|
Remi
|
||||||
|
|
||||||
|
General
|
||||||
|
|
||||||
|
***
|
||||||
|
Subject: RE: NOTICE OF GOODS READY ASSIGN ORDER 169423 - Won Opportunity - Services- 169423.A.2.2 - AJETHAI CO., LTD. - Thailand - Filling - Service CRM:0037299==CHECK PAYMENT TERM==E5.007172
|
||||||
|
|
||||||
|
Hello Luca,
|
||||||
|
I am checking with Geodis if we will used DHL or not this shipment.
|
||||||
|
As soon as I have the answer, I will validate the draft invoice or modified the PO.
|
||||||
|
Have a nice day,
|
||||||
|
Best regards.
|
||||||
|
Remi
|
||||||
|
|
||||||
|
***
|
||||||
|
Subject: R: NOTICE OF GOODS READY ASSIGN ORDER 169423 - Won Opportunity - Services- 169423.A.2.2 - AJETHAI CO., LTD. - Thailand - Filling - Service CRM:0037299==CHECK PAYMENT TERM==E5.007172
|
||||||
|
|
||||||
|
Dear Remy,
|
||||||
|
please could you validate and align the PO to the draft ?
|
||||||
|
thanks
|
||||||
|
Many thanks
|
||||||
|
Best Regards,
|
||||||
|
LUCA DI GIOIA
|
||||||
|
PROJECT MANAGER SUPPLY
|
||||||
|
Sidel Group
|
||||||
|
Sidel SpA
|
||||||
|
Via La Spezia 241/A
|
||||||
|
43124 Parma - Italy
|
||||||
|
Mail:
|
||||||
|
|
||||||
|
General
|
||||||
|
|
||||||
|
Dear Remi,
|
||||||
|
|
||||||
|
please see attached the draft invoice to validate to proceed with final invoice.
|
||||||
|
|
||||||
|
Please align the Po with the draft.
|
||||||
|
I’m waiting your feedback
|
||||||
|
|
||||||
|
Many thanks
|
||||||
|
Best Regards,
|
||||||
|
LUCA DI GIOIA
|
||||||
|
PROJECT MANAGER SUPPLY
|
||||||
|
Sidel Group
|
||||||
|
Sidel SpA
|
||||||
|
Via La Spezia 241/A
|
||||||
|
43124 Parma - Italy
|
||||||
|
Mail:
|
||||||
|
|
||||||
|
Dear Remi,
|
||||||
|
FAT with positive exit of the goods has been done.
|
||||||
|
Please see attached the documents to organize the pick-up.
|
||||||
|
The goods are ready in Parma plant.
|
||||||
|
|
||||||
|
Many thanks
|
||||||
|
Best Regards,
|
||||||
|
LUCA DI GIOIA
|
||||||
|
PROJECT MANAGER SUPPLY
|
||||||
|
Sidel Group
|
||||||
|
Sidel SpA
|
||||||
|
Via La Spezia 241/A
|
||||||
|
43124 Parma - Italy
|
||||||
|
Mail:
|
||||||
|
|
||||||
|
Dear Remi
|
||||||
|
I’ll check and I’ll revert you asap
|
||||||
|
Please take note that project has been reassigned to
|
||||||
|
@Di Gioia, Cosimo Luca
|
||||||
|
s
|
||||||
|
|
||||||
|
Sara Signorini
|
||||||
|
Project Management Supply Manager
|
||||||
|
Line Solution Projects
|
||||||
|
Sidel Group
|
||||||
|
Sidel SpA
|
||||||
|
Via La Spezia 241/A
|
||||||
|
43124 Parma - Italy
|
||||||
|
Tel.: +39 0521 999 761
|
||||||
|
General
|
||||||
|
|
||||||
|
Hello Sara,
|
||||||
|
As my email to Pietro didn’t reach him can you please help on this project?
|
||||||
|
Thanks in advance,
|
||||||
|
Best regards.
|
||||||
|
Remi
|
||||||
|
|
||||||
|
General
|
||||||
|
|
||||||
|
Passera, Alessandro <Alessandro.Passera@sidel.com>; Amnuaisin, Chaiwat <Chaiwat.Amnuaisin@sidel.com>
|
||||||
|
|
||||||
|
***
|
||||||
|
Subject: RE: ASSIGN ORDER 169423 - Won Opportunity - Services- 169423.A.2.2 - AJETHAI CO., LTD. - Thailand - Filling - Service CRM:0037299==CHECK PAYMENT TERM==E5.007172
|
||||||
|
|
||||||
|
Ciao Pietro,
|
||||||
|
Can you please confirm the FCA date on the 06/11/2024.
|
||||||
|
Thanks in advance,
|
||||||
|
Best regards,
|
||||||
|
Remi
|
||||||
|
|
||||||
|
***
|
||||||
|
Subject: R: ASSIGN ORDER 169423 - Won Opportunity - Services- 169423.A.2.2 - AJETHAI CO., LTD. - Thailand - Filling - Service CRM:0037299==CHECK PAYMENT TERM==E5.007172
|
||||||
|
|
||||||
|
Dears, for change flowmeters the most important info are the PLC software backup.
|
||||||
|
Adding on it some picture related the cable and connectors of the Flowmeters in order to check if need new cable or not.
|
||||||
|
For automation side we do not need any others details, maybe from mechanical side need more info but you have to refer to the colleague for mechanical
|
||||||
|
office.
|
||||||
|
Best regards
|
||||||
|
|
||||||
|
Alessandro PASSERA
|
||||||
|
Tel: +39 0521 999 319
|
||||||
|
Mob: +39 3459439668
|
||||||
|
Fax : +39 0521 999511
|
||||||
|
www.sidel.com
|
||||||
|
|
||||||
|
General
|
||||||
|
|
||||||
|
Passera, Alessandro <Alessandro.Passera@sidel.com>
|
||||||
|
|
||||||
|
@Passera, Alessandro
|
||||||
|
the zone is organising a DV on its own, for this specific order, do you need the technician who will deal with this DV to check particular areas of the machine in addition to what is already requested in the risk assessment file ?
|
||||||
|
Thx
|
||||||
|
BR,
|
||||||
|
|
||||||
|
|
||||||
|
Pietro Bruno
|
||||||
|
|
||||||
|
Project Manager Supply
|
||||||
|
Line Solutions Projects
|
||||||
|
SIDEL SPA
|
||||||
|
|
||||||
|
Via La Spezia 241/A, 43126 Parma, ITALY
|
||||||
|
Tel:
|
||||||
|
+39 0521 999 664
|
||||||
|
Mob: +39 345 0689 767
|
||||||
|
www.sidel.com
|
||||||
|
|
||||||
|
General
|
||||||
|
|
||||||
|
Sacchi, Stefania[External] <Stefania.Sacchi.external@sidel.com>
|
||||||
|
|
||||||
|
Ciao Pietro,
|
||||||
|
We don’t have much maintenance info of this machine, this customer is minimalist. Maintenance has been done by customers, there might be some local
|
||||||
|
modification done by customers. To avoid the issue during intervention, we proposed the customer to perform DV. After DV we will propose an overhaul or at least to have customers have our recommended spare parts in the stock.
|
||||||
|
In case you have any specific points/ areas related to this project required the FSE to focus / pay special attention during the DV., kindly advice.
|
||||||
|
Thank you.
|
||||||
|
|
||||||
|
Best regards,
|
||||||
|
Chaiwat Amnuaisin
|
||||||
|
|
||||||
|
General
|
||||||
|
|
||||||
|
Sacchi, Stefania[External] <Stefania.Sacchi.external@sidel.com>
|
||||||
|
|
||||||
|
***
|
||||||
|
Subject: R: ASSIGN ORDER 169423 - Won Opportunity - Services- 169423.A.2.2 - AJETHAI CO., LTD. - Thailand - Filling - Service CRM:0037299==CHECK PAYMENT TERM==E5.007172
|
||||||
|
|
||||||
|
Ciao Remi,
|
||||||
|
Why did you organize a DV?
|
||||||
|
I don’t see it specified in the offer and in the risk assessment file.
|
||||||
|
BR,
|
||||||
|
|
||||||
|
|
||||||
|
Pietro Bruno
|
||||||
|
|
||||||
|
Project Manager Supply
|
||||||
|
Line Solutions Projects
|
||||||
|
SIDEL SPA
|
||||||
|
|
||||||
|
Via La Spezia 241/A, 43126 Parma, ITALY
|
||||||
|
Tel:
|
||||||
|
+39 0521 999 664
|
||||||
|
Mob: +39 345 0689 767
|
||||||
|
www.sidel.com
|
||||||
|
|
||||||
|
General
|
||||||
|
|
||||||
|
Passera, Alessandro <Alessandro.Passera@sidel.com>; Sacchi, Stefania[External] <Stefania.Sacchi.external@sidel.com>
|
||||||
|
|
||||||
|
Ciao Pietro,
|
||||||
|
I will ask customer for the software and the video.
|
||||||
|
For this project we informed customer that we will make a DV before the installation. Can you please indicate any specific point that need to be check
|
||||||
|
and focus.
|
||||||
|
For the intervention, no date planned yet, I will check with customer when they want to have it and check with planning team who is available. Once
|
||||||
|
I have the engineer’s name we can planned the meeting.
|
||||||
|
Have a nice day,
|
||||||
|
Best regards.
|
||||||
|
Remi
|
||||||
|
|
||||||
|
General
|
||||||
|
|
||||||
|
Sacchi, Stefania[External] <Stefania.Sacchi.external@sidel.com>
|
||||||
|
|
||||||
|
***
|
||||||
|
Subject: R: ASSIGN ORDER 169423 - Won Opportunity - Services- 169423.A.2.2 - AJETHAI CO., LTD. - Thailand - Filling - Service CRM:0037299==CHECK PAYMENT TERM==E5.007172
|
||||||
|
|
||||||
|
Dear Remi,
|
||||||
|
PROJECT REFERENCE E5.007172 (Attached you will also find the risk assessment, I ask you to check the points where the PMService is the Owner)
|
||||||
|
BR,
|
||||||
|
|
||||||
|
|
||||||
|
Pietro Bruno
|
||||||
|
|
||||||
|
Project Manager Supply
|
||||||
|
Line Solutions Projects
|
||||||
|
SIDEL SPA
|
||||||
|
|
||||||
|
Via La Spezia 241/A, 43126 Parma, ITALY
|
||||||
|
Tel:
|
||||||
|
+39 0521 999 664
|
||||||
|
Mob: +39 345 0689 767
|
||||||
|
www.sidel.com
|
||||||
|
|
||||||
|
General
|
||||||
|
|
||||||
|
Thanks Pietro, please keep Remi in the loop as he is the SPM assigned for this project. Thank you.
|
||||||
|
|
||||||
|
Best regards,
|
||||||
|
Chaiwat Amnuaisin
|
||||||
|
|
||||||
|
General
|
||||||
|
|
||||||
|
***
|
||||||
|
Subject: R: ASSIGN ORDER 169423 - Won Opportunity - Services- 169423.A.2.2 - AJETHAI CO., LTD. - Thailand - Filling - Service CRM:0037299==CHECK PAYMENT TERM==
|
||||||
|
|
||||||
|
Dear Chaiwat,
|
||||||
|
PROJECT STATUS : LAUNCHED
|
||||||
|
|
||||||
|
FCA PARMA DELIVERY DATE 06/11/2024
|
||||||
|
PROJECT REFERENCE E5.007172
|
||||||
|
BR,
|
||||||
|
|
||||||
|
|
||||||
|
Pietro Bruno
|
||||||
|
|
||||||
|
Project Manager Supply
|
||||||
|
Line Solutions Projects
|
||||||
|
SIDEL SPA
|
||||||
|
|
||||||
|
Via La Spezia 241/A, 43126 Parma, ITALY
|
||||||
|
Tel:
|
||||||
|
+39 0521 999 664
|
||||||
|
Mob: +39 345 0689 767
|
||||||
|
www.sidel.com
|
||||||
|
|
||||||
|
General
|
||||||
|
|
||||||
|
Bruno, Pietro <Pietro.Bruno@sidel.com>
|
||||||
|
|
||||||
|
Dear Chaiwat,
|
||||||
|
Project : LI_SHORT
|
||||||
|
Status of the project : TO BE LAUNCHED
|
||||||
|
Scope of Supply: REPLACEMENT OF FLOW METERS 80000SEV909, 80000SEV081 & 80000SEV079
|
||||||
|
Machine involved: SSAE0340
|
||||||
|
Assigned PMS : PIETRO BRUNO
|
||||||
|
ZRD: 06/11/2024
|
||||||
|
ESTIMATED PDD FCA PARMA: 06/11/2024
|
||||||
|
NOTE: THANKS TO INFORM US ABOUT THE PLANNED INSTALLATION DATE OF THE PROJECT IN SUBJECT AS SOON AS IT WILL BE PLANNED
|
||||||
|
IMPORTANT:
|
||||||
|
|
||||||
|
DUE TO THE ACTUAL WORKLOAD AND RAW MATERIALS SHORTAGE, MAINLY IMPACTING ELECTRICAL COMPONENTS, THE WEEKS
|
||||||
|
|
||||||
|
INDICATED IN THE OFFER AND PDD ARE AT RISK.
|
||||||
|
NEED TO PLAN THE BOM AVAILABILITY DATE, THEN BASED ON SUPPLIERS CONFIRMATIONS WE WILL ADJUST THE TARGET IF NEEDED.
|
||||||
|
FOR THE TIME BEING CONSIDER THE ABOVE PLANNING.
|
||||||
|
|
||||||
|
I remain at your disposal for any further details
|
||||||
|
|
||||||
|
Kind regards
|
||||||
|
Sara
|
||||||
|
|
||||||
|
Sara Signorini
|
||||||
|
Project Management Supply Manager
|
||||||
|
Line Solution Projects
|
||||||
|
Sidel Group
|
||||||
|
Sidel SpA
|
||||||
|
Via La Spezia 241/A
|
||||||
|
43124 Parma - Italy
|
||||||
|
Tel.: +39 0521 999 761
|
||||||
|
General
|
||||||
|
|
||||||
|
Dear Team,
|
||||||
|
As Remi is on leave, could you help to manage this order pls?
|
||||||
|
We have received the PO for this project.
|
||||||
|
SO waiting for Sales admin
|
||||||
|
Project no. H5.012882
|
||||||
|
Network 5040590
|
||||||
|
Material no. EQPT24163
|
||||||
|
Internal PO 4501782678
|
||||||
|
|
||||||
|
CRD 25 Oct 2024
|
||||||
|
|
||||||
|
| Material no | DESCRIPTION | PRU | 20% |
|
||||||
|
|-------------|---------------------------------------|-------------|-------------|
|
||||||
|
| EQPT24163 | Flow meters installed on the SSAE0340 | € 19,542.00 | € 23,450.40 |
|
||||||
|
| | | TOTAL | € 23,450.40 |
|
||||||
|
|
||||||
|
I am attaching the following documents:
|
||||||
|
|
||||||
|
Product offerInternal PO
|
||||||
|
Kindly acknowledge the order by return with delivery date.
|
||||||
|
Thanks
|
||||||
|
|
||||||
|
Best regards,
|
||||||
|
Chaiwat Amnuaisin
|
||||||
|
|
||||||
|
General
|
||||||
|
|
||||||
|
***
|
||||||
|
Subject: RE: Won Opportunity - Services- 169423.A.2.2 - AJETHAI CO., LTD. - Thailand - Filling - Service CRM:0037299==CHECK PAYMENT TERM==
|
||||||
|
|
||||||
|
Dear P’Chaiwat/Remi,
|
||||||
|
FYI.
|
||||||
|
SO waiting for Sales admin
|
||||||
|
Project no. H5.012882
|
||||||
|
Network 5040590
|
||||||
|
Material no. EQPT24163
|
||||||
|
Internal PO 4501782678 Leadtime: 25 Oct 2024
|
||||||
|
|
||||||
|
| Material no | DESCRIPTION | PRU | 20% |
|
||||||
|
|-------------|---------------------------------------|-------------|-------------|
|
||||||
|
| EQPT24163 | Flow meters installed on the SSAE0340 | € 19,542.00 | € 23,450.40 |
|
||||||
|
| | | TOTAL | € 23,450.40 |
|
||||||
|
|
||||||
|
Best regards,
|
||||||
|
Cholpassorn Thananakruangsri (Ang)
|
||||||
|
|
||||||
|
Services Project Management Assistant
|
||||||
|
Sidel Group
|
||||||
|
Sidel South Asia-Pacific Ltd.,
|
||||||
|
|
||||||
|
18th Floor (Zone C, D, E), Thanapoom Tower,
|
||||||
|
1550 New Petchburi Rd, Makkasan,
|
||||||
|
|
||||||
|
Rajthevee, Bangkok 10400, Thailand
|
||||||
|
www.sidel.com
|
||||||
|
|
||||||
|
Discover our online Option & Upgrade catalogue @
|
||||||
|
www.options-upgrades.sidel.com
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
General
|
||||||
|
|
||||||
|
***
|
||||||
|
Subject: RE: Won Opportunity - Services- 169423.A.2.2 - AJETHAI CO., LTD. - Thailand - Filling - Service CRM:0037299==CHECK PAYMENT TERM==
|
||||||
|
|
||||||
|
Dear Isabelle,
|
||||||
|
Could you please create SO under pre-offer no. 211106074?
|
||||||
|
Customer PO: 38204 dated: 02.09.2024 for Parts
|
||||||
|
38205 dated: 02.09.2024 for intervention
|
||||||
|
Note:
|
||||||
|
|
||||||
|
Payment terms:
|
||||||
|
100% of the total contract price shall be paid by bank transfer within 30 days from Sidel invoice date.
|
||||||
|
|
||||||
|
Thank you.
|
||||||
|
Best regards,
|
||||||
|
Cholpassorn Thananakruangsri (Ang)
|
||||||
|
|
||||||
|
Services Project Management Assistant
|
||||||
|
Sidel Group
|
||||||
|
Sidel South Asia-Pacific Ltd.,
|
||||||
|
|
||||||
|
18th Floor (Zone C, D, E), Thanapoom Tower,
|
||||||
|
1550 New Petchburi Rd, Makkasan,
|
||||||
|
|
||||||
|
Rajthevee, Bangkok 10400, Thailand
|
||||||
|
www.sidel.com
|
||||||
|
|
||||||
|
Discover our online Option & Upgrade catalogue @
|
||||||
|
www.options-upgrades.sidel.com
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Warasin, Woranitcha <Woranitcha.Warasin@sidel.com>
|
||||||
|
|
||||||
|
***
|
||||||
|
Subject: RE: Won Opportunity - Services- 169423.A.2.2 - AJETHAI CO., LTD. - Thailand - Filling - Service CRM:0037299==CHECK PAYMENT TERM==
|
||||||
|
|
||||||
|
Hi Chaiwat,
|
||||||
|
|
||||||
|
Ajethai is paying at 30 days
|
||||||
|
|
||||||
|
Best regards.
|
||||||
|
|
||||||
|
Isabelle Gruchy
|
||||||
|
Sales Administration Manager
|
||||||
|
Mobile : +33 6 13 18 05 22
|
||||||
|
Cash collection/Administrative treatment of Exports Financings
|
||||||
|
Sales Administration Dpt
|
||||||
|
|
||||||
|
General
|
||||||
|
|
||||||
|
Cc : Courtiade, Remi [EXTERNAL] <remi.courtiade.external@sidel.com>; Thananakruangsri, Cholpassorn <Cholpassorn.Thananakruangsri@sidel.com>;
|
||||||
|
Warasin, Woranitcha <Woranitcha.Warasin@sidel.com>
|
||||||
|
|
||||||
|
Objet : RE: Won Opportunity - Services- 169423.A.2.2 - AJETHAI CO., LTD. - Thailand - Filling - Service CRM:0037299==CHECK PAYMENT TERM==
|
||||||
|
|
||||||
|
Hi Isabelle,
|
||||||
|
|
||||||
|
Do you agree with the PT? Thanks,
|
||||||
|
|
||||||
|
Best regards,
|
||||||
|
Chaiwat Amnuaisin
|
||||||
|
|
||||||
|
General
|
||||||
|
|
||||||
|
***
|
||||||
|
Subject: Re: Won Opportunity - Services- 169423.A.2.2 - AJETHAI CO., LTD. - Thailand - Filling - Service CRM:0037299==CHECK PAYMENT TERM==
|
||||||
|
|
||||||
|
Dear P’ Chaiwat,
|
||||||
|
|
||||||
|
We can offer 30 days credit after shipment because their overdue is clean.
|
||||||
|
|
||||||
|
Regards,
|
||||||
|
|
||||||
|
Joy
|
||||||
|
|
||||||
|
Get Outlook for iOS
|
||||||
|
|
||||||
|
General
|
||||||
|
|
||||||
|
***
|
||||||
|
Subject: RE: Won Opportunity - Services- 169423.A.2.2 - AJETHAI CO., LTD. - Thailand - Filling - Service CRM:0037299==CHECK PAYMENT TERM==
|
||||||
|
|
||||||
|
Hi N’Ang,
|
||||||
|
The credit 30 days should be at in our payment term, so changing from within a week to 30 days.
|
||||||
|
@Warasin, Woranitcha
|
||||||
|
Can you confirm pls?
|
||||||
|
Thanks.
|
||||||
|
|
||||||
|
Best regards,
|
||||||
|
Chaiwat Amnuaisin
|
||||||
|
|
||||||
|
General
|
||||||
|
|
||||||
|
Warasin, Woranitcha <Woranitcha.Warasin@sidel.com>
|
||||||
|
|
||||||
|
***
|
||||||
|
Subject: RE: Won Opportunity - Services- 169423.A.2.2 - AJETHAI CO., LTD. - Thailand - Filling - Service CRM:0037299==CHECK PAYMENT TERM==
|
||||||
|
|
||||||
|
Dear P’Chaiwat,
|
||||||
|
Could you please confirm the payment term?
|
||||||
|
Thank you ka.
|
||||||
|
|
||||||
|
Best regards,
|
||||||
|
Cholpassorn Thananakruangsri (Ang)
|
||||||
|
|
||||||
|
Services Project Management Assistant
|
||||||
|
Sidel Group
|
||||||
|
Sidel South Asia-Pacific Ltd.,
|
||||||
|
|
||||||
|
18th Floor (Zone C, D, E), Thanapoom Tower,
|
||||||
|
1550 New Petchburi Rd, Makkasan,
|
||||||
|
|
||||||
|
Rajthevee, Bangkok 10400, Thailand
|
||||||
|
www.sidel.com
|
||||||
|
|
||||||
|
Discover our online Option & Upgrade catalogue @
|
||||||
|
www.options-upgrades.sidel.com
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
General
|
||||||
|
|
||||||
|
***
|
||||||
|
Subject: FW: Won Opportunity - Services- 169423.A.2.2 - AJETHAI CO., LTD. - Thailand - Filling - Service CRM:0037299
|
||||||
|
|
||||||
|
Hello N’Ang,
|
||||||
|
On behalf of Remi, could you help to register this order pls?
|
||||||
|
ID Invoice: 1767954
|
||||||
|
ID delivery: 1767954
|
||||||
|
Machine: Mixer STARBLEND PLUS D7 # SSAE0340
|
||||||
|
CRD: 25-Oct-2024
|
||||||
|
PO No. Material PO #38204. I&C PO #38205
|
||||||
|
|
||||||
|
PM Fee: 2,054 Eur
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Attaching customer PO (x2), offer from BU, Final offer submitted to customer and Costing table.
|
||||||
|
Thank you krub
|
||||||
|
|
||||||
|
Best regards,
|
||||||
|
Chaiwat Amnuaisin
|
||||||
|
|
||||||
|
General
|
||||||
|
|
||||||
|
Warasin, Woranitcha <Woranitcha.Warasin@sidel.com>;
|
||||||
|
Courtiade, Remi [EXTERNAL] <remi.courtiade.external@sidel.com>;
|
||||||
|
Strzerzynski, Cyril <cyril.strzerzynski@sidel.com>
|
||||||
|
|
||||||
|
***
|
||||||
|
Subject: Won Opportunity - Services- 169423.A.2.2 - AJETHAI CO., LTD. - Thailand - Filling - Service CRM:0037299
|
||||||
|
|
||||||
|
Obs- obsolescence FillingAJETHAI CO., LTD.169423.A.2.2 - FIL_OCM001 NEw EH Flow Meter for Mixer -
|
||||||
|
|
||||||
|
Offer link
|
||||||
|
Services Manager:
|
||||||
|
Woranitcha Warasin
|
||||||
|
o
|
||||||
|
Project Manager: Remi Courtiade
|
||||||
|
o
|
||||||
|
Opportunity Amount: 56 017 €
|
||||||
|
Reason for winning:
|
||||||
|
Any Other Reason
|
||||||
|
o
|
||||||
|
Reason for winning 2:
|
||||||
|
o
|
||||||
|
Winning comments:
|
||||||
|
o
|
||||||
|
Competitor: NO COMPETITOR
|
||||||
|
o
|
||||||
|
Competitor value:
|
||||||
|
o
|
||||||
|
Reasons for customer investment: Replacement
|
||||||
|
Kind regards,
|
||||||
|
CEP Team
|
||||||
|
|
||||||
|
This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error), please notify the sender immediately and destroy this e-mail. Any unauthorized copying, disclosure or distribution
|
||||||
|
of the material in this e-mail is strictly forbidden.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
|
@ -178,3 +178,5 @@
|
||||||
| | | |
|
| | | |
|
||||||
| | | |
|
| | | |
|
||||||
| | | |
|
| | | |
|
||||||
|
| | | |
|
||||||
|
| | | |
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
| devenv | sdds | sds | false |
|
||||||
|
| ------------------------- | ------------ | ------------------ | ----- |
|
||||||
|
| Obsidian | sdsd | false | |
|
||||||
|
| devenv | Ctrl+T | Buscar | true |
|
||||||
|
| Siemens.Automation.Portal | F7 | Buscar Bloques | false |
|
||||||
|
| Cursor | Ctrl+Shift+P | Paleta de Comandos | false |
|