diff --git a/v1.46/404.html b/v1.46/404.html new file mode 100644 index 000000000..635e5f3bb --- /dev/null +++ b/v1.46/404.html @@ -0,0 +1,710 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Page not found | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + +
+ +

+ + + Page not found + + +

+ +

+ + + We can’t seem to find the page you’re looking for. + + +

+ + +

Error code: 404

+ +

+ +

+ Back to Docs +

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/Gemfile b/v1.46/Gemfile new file mode 100644 index 000000000..43490db0e --- /dev/null +++ b/v1.46/Gemfile @@ -0,0 +1,6 @@ +source 'https://rubygems.org' +gem 'github-pages', group: :jekyll_plugins +gem 'just-the-docs' +gem "webrick", "~> 1.8" +gem 'jekyll-sitemap' +gem 'jekyll-seo-tag' diff --git a/v1.46/Gemfile.lock b/v1.46/Gemfile.lock new file mode 100644 index 000000000..14e07e2fa --- /dev/null +++ b/v1.46/Gemfile.lock @@ -0,0 +1,270 @@ +GEM + remote: https://rubygems.org/ + specs: + activesupport (7.0.8) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) + addressable (2.8.4) + public_suffix (>= 2.0.2, < 6.0) + coffee-script (2.4.1) + coffee-script-source + execjs + coffee-script-source (1.11.1) + colorator (1.1.0) + commonmarker (0.23.10) + concurrent-ruby (1.2.2) + dnsruby (1.70.0) + simpleidn (~> 0.2.1) + em-websocket (0.5.3) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0) + ethon (0.16.0) + ffi (>= 1.15.0) + eventmachine (1.2.7) + execjs (2.8.1) + faraday (2.7.5) + faraday-net_http (>= 2.0, < 3.1) + ruby2_keywords (>= 0.0.4) + faraday-net_http (3.0.2) + ffi (1.15.5) + forwardable-extended (2.6.0) + gemoji (3.0.1) + github-pages (228) + github-pages-health-check (= 1.17.9) + jekyll (= 3.9.3) + jekyll-avatar (= 0.7.0) + jekyll-coffeescript (= 1.1.1) + jekyll-commonmark-ghpages (= 0.4.0) + jekyll-default-layout (= 0.1.4) + jekyll-feed (= 0.15.1) + jekyll-gist (= 1.5.0) + jekyll-github-metadata (= 2.13.0) + jekyll-include-cache (= 0.2.1) + jekyll-mentions (= 1.6.0) + jekyll-optional-front-matter (= 0.3.2) + jekyll-paginate (= 1.1.0) + jekyll-readme-index (= 0.3.0) + jekyll-redirect-from (= 0.16.0) + jekyll-relative-links (= 0.6.1) + jekyll-remote-theme (= 0.4.3) + jekyll-sass-converter (= 1.5.2) + jekyll-seo-tag (= 2.8.0) + jekyll-sitemap (= 1.4.0) + jekyll-swiss (= 1.0.0) + jekyll-theme-architect (= 0.2.0) + jekyll-theme-cayman (= 0.2.0) + jekyll-theme-dinky (= 0.2.0) + jekyll-theme-hacker (= 0.2.0) + jekyll-theme-leap-day (= 0.2.0) + jekyll-theme-merlot (= 0.2.0) + jekyll-theme-midnight (= 0.2.0) + jekyll-theme-minimal (= 0.2.0) + jekyll-theme-modernist (= 0.2.0) + jekyll-theme-primer (= 0.6.0) + jekyll-theme-slate (= 0.2.0) + jekyll-theme-tactile (= 0.2.0) + jekyll-theme-time-machine (= 0.2.0) + jekyll-titles-from-headings (= 0.5.3) + jemoji (= 0.12.0) + kramdown (= 2.3.2) + kramdown-parser-gfm (= 1.1.0) + liquid (= 4.0.4) + mercenary (~> 0.3) + minima (= 2.5.1) + nokogiri (>= 1.13.6, < 2.0) + rouge (= 3.26.0) + terminal-table (~> 1.4) + github-pages-health-check (1.17.9) + addressable (~> 2.3) + dnsruby (~> 1.60) + octokit (~> 4.0) + public_suffix (>= 3.0, < 5.0) + typhoeus (~> 1.3) + html-pipeline (2.14.3) + activesupport (>= 2) + nokogiri (>= 1.4) + http_parser.rb (0.8.0) + i18n (1.14.1) + concurrent-ruby (~> 1.0) + jekyll (3.9.3) + addressable (~> 2.4) + colorator (~> 1.0) + em-websocket (~> 0.5) + i18n (>= 0.7, < 2) + jekyll-sass-converter (~> 1.0) + jekyll-watch (~> 2.0) + kramdown (>= 1.17, < 3) + liquid (~> 4.0) + mercenary (~> 0.3.3) + pathutil (~> 0.9) + rouge (>= 1.7, < 4) + safe_yaml (~> 1.0) + jekyll-avatar (0.7.0) + jekyll (>= 3.0, < 5.0) + jekyll-coffeescript (1.1.1) + coffee-script (~> 2.2) + coffee-script-source (~> 1.11.1) + jekyll-commonmark (1.4.0) + commonmarker (~> 0.22) + jekyll-commonmark-ghpages (0.4.0) + commonmarker (~> 0.23.7) + jekyll (~> 3.9.0) + jekyll-commonmark (~> 1.4.0) + rouge (>= 2.0, < 5.0) + jekyll-default-layout (0.1.4) + jekyll (~> 3.0) + jekyll-feed (0.15.1) + jekyll (>= 3.7, < 5.0) + jekyll-gist (1.5.0) + octokit (~> 4.2) + jekyll-github-metadata (2.13.0) + jekyll (>= 3.4, < 5.0) + octokit (~> 4.0, != 4.4.0) + jekyll-include-cache (0.2.1) + jekyll (>= 3.7, < 5.0) + jekyll-mentions (1.6.0) + html-pipeline (~> 2.3) + jekyll (>= 3.7, < 5.0) + jekyll-optional-front-matter (0.3.2) + jekyll (>= 3.0, < 5.0) + jekyll-paginate (1.1.0) + jekyll-readme-index (0.3.0) + jekyll (>= 3.0, < 5.0) + jekyll-redirect-from (0.16.0) + jekyll (>= 3.3, < 5.0) + jekyll-relative-links (0.6.1) + jekyll (>= 3.3, < 5.0) + jekyll-remote-theme (0.4.3) + addressable (~> 2.0) + jekyll (>= 3.5, < 5.0) + jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0) + rubyzip (>= 1.3.0, < 3.0) + jekyll-sass-converter (1.5.2) + sass (~> 3.4) + jekyll-seo-tag (2.8.0) + jekyll (>= 3.8, < 5.0) + jekyll-sitemap (1.4.0) + jekyll (>= 3.7, < 5.0) + jekyll-swiss (1.0.0) + jekyll-theme-architect (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-cayman (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-dinky (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-hacker (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-leap-day (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-merlot (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-midnight (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-minimal (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-modernist (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-primer (0.6.0) + jekyll (> 3.5, < 5.0) + jekyll-github-metadata (~> 2.9) + jekyll-seo-tag (~> 2.0) + jekyll-theme-slate (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-tactile (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-time-machine (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-titles-from-headings (0.5.3) + jekyll (>= 3.3, < 5.0) + jekyll-watch (2.2.1) + listen (~> 3.0) + jemoji (0.12.0) + gemoji (~> 3.0) + html-pipeline (~> 2.2) + jekyll (>= 3.0, < 5.0) + just-the-docs (0.5.1) + jekyll (>= 3.8.5) + jekyll-seo-tag (>= 2.0) + rake (>= 12.3.1) + kramdown (2.3.2) + rexml + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) + liquid (4.0.4) + listen (3.8.0) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + mercenary (0.3.6) + mini_portile2 (2.8.5) + minima (2.5.1) + jekyll (>= 3.5, < 5.0) + jekyll-feed (~> 0.9) + jekyll-seo-tag (~> 2.1) + minitest (5.20.0) + nokogiri (1.16.2) + mini_portile2 (~> 2.8.2) + racc (~> 1.4) + octokit (4.25.1) + faraday (>= 1, < 3) + sawyer (~> 0.9) + pathutil (0.16.2) + forwardable-extended (~> 2.6) + public_suffix (4.0.7) + racc (1.7.3) + rake (13.0.6) + rb-fsevent (0.11.2) + rb-inotify (0.10.1) + ffi (~> 1.0) + rexml (3.2.5) + rouge (3.26.0) + ruby2_keywords (0.0.5) + rubyzip (2.3.2) + safe_yaml (1.0.5) + sass (3.7.4) + sass-listen (~> 4.0.0) + sass-listen (4.0.0) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + sawyer (0.9.2) + addressable (>= 2.3.5) + faraday (>= 0.17.3, < 3) + simpleidn (0.2.1) + unf (~> 0.1.4) + terminal-table (1.8.0) + unicode-display_width (~> 1.1, >= 1.1.1) + typhoeus (1.4.0) + ethon (>= 0.9.0) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + unf (0.1.4) + unf_ext + unf_ext (0.0.8.2) + unicode-display_width (1.8.0) + webrick (1.8.2) + +PLATFORMS + ruby + +DEPENDENCIES + github-pages + jekyll-seo-tag + jekyll-sitemap + just-the-docs + webrick (~> 1.8) + +BUNDLED WITH + 2.1.4 diff --git a/v1.46/LICENSE b/v1.46/LICENSE new file mode 100644 index 000000000..376825af2 --- /dev/null +++ b/v1.46/LICENSE @@ -0,0 +1,13 @@ +Copyright 2020 Treeverse Labs LTD. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/v1.46/README.html b/v1.46/README.html new file mode 100644 index 000000000..1e9fb3d83 --- /dev/null +++ b/v1.46/README.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/architecture/index.html b/v1.46/architecture/index.html new file mode 100644 index 000000000..35603eab3 --- /dev/null +++ b/v1.46/architecture/index.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/architecture/overview.html b/v1.46/architecture/overview.html new file mode 100644 index 000000000..35603eab3 --- /dev/null +++ b/v1.46/architecture/overview.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/architecture/sizing-guide.html b/v1.46/architecture/sizing-guide.html new file mode 100644 index 000000000..252d1aa93 --- /dev/null +++ b/v1.46/architecture/sizing-guide.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/assets/by-treeverse.png b/v1.46/assets/by-treeverse.png new file mode 100644 index 000000000..8885fa8ff Binary files /dev/null and b/v1.46/assets/by-treeverse.png differ diff --git a/v1.46/assets/css/cookieconsent.css b/v1.46/assets/css/cookieconsent.css new file mode 100644 index 000000000..333f3c728 --- /dev/null +++ b/v1.46/assets/css/cookieconsent.css @@ -0,0 +1,13 @@ +#cc-main { + --cc-btn-primary-bg: #279890; + --cc-btn-primary-border-color: #279890; + --cc-btn-primary-hover-bg: #fff; + --cc-btn-primary-hover-color: #279890; + --cc-btn-primary-hover-border-color: #279890; + --cc-font-family: "GalanoGrotesque-Medium"; + --cc-toggle-on-bg: var(--cc-btn-primary-bg); +} + +h2.cm__title { + margin-top: 0 !important; +} diff --git a/v1.46/assets/css/just-the-docs-dark.css b/v1.46/assets/css/just-the-docs-dark.css new file mode 100644 index 000000000..52ba65f5f --- /dev/null +++ b/v1.46/assets/css/just-the-docs-dark.css @@ -0,0 +1,2690 @@ +@charset "UTF-8"; +@import url("pygments/igorpro.css"); +.highlight, pre.highlight { background: #f9f9f9; color: #383942; } + +.highlight pre { background: #f9f9f9; } + +.highlight .hll { background: #f9f9f9; } + +.highlight .c { color: #9fa0a6; font-style: italic; } + +.highlight .err { color: #fff; background-color: #e05151; } + +.highlight .k { color: #a625a4; } + +.highlight .l { color: #50a04f; } + +.highlight .n { color: #383942; } + +.highlight .o { color: #383942; } + +.highlight .p { color: #383942; } + +.highlight .cm { color: #9fa0a6; font-style: italic; } + +.highlight .cp { color: #9fa0a6; font-style: italic; } + +.highlight .c1 { color: #9fa0a6; font-style: italic; } + +.highlight .cs { color: #9fa0a6; font-style: italic; } + +.highlight .ge { font-style: italic; } + +.highlight .gs { font-weight: 700; } + +.highlight .kc { color: #a625a4; } + +.highlight .kd { color: #a625a4; } + +.highlight .kn { color: #a625a4; } + +.highlight .kp { color: #a625a4; } + +.highlight .kr { color: #a625a4; } + +.highlight .kt { color: #a625a4; } + +.highlight .ld { color: #50a04f; } + +.highlight .m { color: #b66a00; } + +.highlight .s { color: #50a04f; } + +.highlight .na { color: #b66a00; } + +.highlight .nb { color: #ca7601; } + +.highlight .nc { color: #ca7601; } + +.highlight .no { color: #ca7601; } + +.highlight .nd { color: #ca7601; } + +.highlight .ni { color: #ca7601; } + +.highlight .ne { color: #ca7601; } + +.highlight .nf { color: #383942; } + +.highlight .nl { color: #ca7601; } + +.highlight .nn { color: #383942; } + +.highlight .nx { color: #383942; } + +.highlight .py { color: #ca7601; } + +.highlight .nt { color: #e35549; } + +.highlight .nv { color: #ca7601; } + +.highlight .ow { font-weight: 700; } + +.highlight .w { color: #f8f8f2; } + +.highlight .mf { color: #b66a00; } + +.highlight .mh { color: #b66a00; } + +.highlight .mi { color: #b66a00; } + +.highlight .mo { color: #b66a00; } + +.highlight .sb { color: #50a04f; } + +.highlight .sc { color: #50a04f; } + +.highlight .sd { color: #50a04f; } + +.highlight .s2 { color: #50a04f; } + +.highlight .se { color: #50a04f; } + +.highlight .sh { color: #50a04f; } + +.highlight .si { color: #50a04f; } + +.highlight .sx { color: #50a04f; } + +.highlight .sr { color: #0083bb; } + +.highlight .s1 { color: #50a04f; } + +.highlight .ss { color: #0083bb; } + +.highlight .bp { color: #ca7601; } + +.highlight .vc { color: #ca7601; } + +.highlight .vg { color: #ca7601; } + +.highlight .vi { color: #e35549; } + +.highlight .il { color: #b66a00; } + +.highlight .gu { color: #75715e; } + +.highlight .gd { color: #e05151; } + +.highlight .gi { color: #43d089; } + +.highlight .language-json .w + .s2 { color: #e35549; } + +.highlight .language-json .kc { color: #0083bb; } + +.highlight, pre.highlight { background: #31343f; color: #dee2f7; } + +.highlight pre { background: #31343f; } + +.highlight .hll { background: #31343f; } + +.highlight .c { color: #63677e; font-style: italic; } + +.highlight .err { color: #960050; background-color: #1e0010; } + +.highlight .k { color: #e19ef5; } + +.highlight .l { color: #a3eea0; } + +.highlight .n { color: #dee2f7; } + +.highlight .o { color: #dee2f7; } + +.highlight .p { color: #dee2f7; } + +.highlight .cm { color: #63677e; font-style: italic; } + +.highlight .cp { color: #63677e; font-style: italic; } + +.highlight .c1 { color: #63677e; font-style: italic; } + +.highlight .cs { color: #63677e; font-style: italic; } + +.highlight .ge { font-style: italic; } + +.highlight .gs { font-weight: 700; } + +.highlight .kc { color: #e19ef5; } + +.highlight .kd { color: #e19ef5; } + +.highlight .kn { color: #e19ef5; } + +.highlight .kp { color: #e19ef5; } + +.highlight .kr { color: #e19ef5; } + +.highlight .kt { color: #e19ef5; } + +.highlight .ld { color: #a3eea0; } + +.highlight .m { color: #eddc96; } + +.highlight .s { color: #a3eea0; } + +.highlight .na { color: #eddc96; } + +.highlight .nb { color: #fdce68; } + +.highlight .nc { color: #fdce68; } + +.highlight .no { color: #fdce68; } + +.highlight .nd { color: #fdce68; } + +.highlight .ni { color: #fdce68; } + +.highlight .ne { color: #fdce68; } + +.highlight .nf { color: #dee2f7; } + +.highlight .nl { color: #fdce68; } + +.highlight .nn { color: #dee2f7; } + +.highlight .nx { color: #dee2f7; } + +.highlight .py { color: #fdce68; } + +.highlight .nt { color: #f9867b; } + +.highlight .nv { color: #fdce68; } + +.highlight .ow { font-weight: 700; } + +.highlight .w { color: #f8f8f2; } + +.highlight .mf { color: #eddc96; } + +.highlight .mh { color: #eddc96; } + +.highlight .mi { color: #eddc96; } + +.highlight .mo { color: #eddc96; } + +.highlight .sb { color: #a3eea0; } + +.highlight .sc { color: #a3eea0; } + +.highlight .sd { color: #a3eea0; } + +.highlight .s2 { color: #a3eea0; } + +.highlight .se { color: #a3eea0; } + +.highlight .sh { color: #a3eea0; } + +.highlight .si { color: #a3eea0; } + +.highlight .sx { color: #a3eea0; } + +.highlight .sr { color: #7be2f9; } + +.highlight .s1 { color: #a3eea0; } + +.highlight .ss { color: #7be2f9; } + +.highlight .bp { color: #fdce68; } + +.highlight .vc { color: #fdce68; } + +.highlight .vg { color: #fdce68; } + +.highlight .vi { color: #f9867b; } + +.highlight .il { color: #eddc96; } + +.highlight .gu { color: #75715e; } + +.highlight .gd { color: #f92672; } + +.highlight .gi { color: #a6e22e; } + +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ +/* Document ========================================================================== */ +/** 1. Correct the line height in all browsers. 2. Prevent adjustments of font size after orientation changes in iOS. */ +html { line-height: 1.15; /* 1 */ -webkit-text-size-adjust: 100%; /* 2 */ } + +/* Sections ========================================================================== */ +/** Remove the margin in all browsers. */ +body { margin: 0; } + +/** Render the `main` element consistently in IE. */ +main { display: block; } + +/** Correct the font size and margin on `h1` elements within `section` and `article` contexts in Chrome, Firefox, and Safari. */ +h1 { font-size: 2em; margin: 0.67em 0; } + +/* Grouping content ========================================================================== */ +/** 1. Add the correct box sizing in Firefox. 2. Show the overflow in Edge and IE. */ +hr { box-sizing: content-box; /* 1 */ height: 0; /* 1 */ overflow: visible; /* 2 */ } + +/** 1. Correct the inheritance and scaling of font size in all browsers. 2. Correct the odd `em` font sizing in all browsers. */ +pre { font-family: monospace, monospace; /* 1 */ font-size: 1em; /* 2 */ } + +/* Text-level semantics ========================================================================== */ +/** Remove the gray background on active links in IE 10. */ +a { background-color: transparent; } + +/** 1. Remove the bottom border in Chrome 57- 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. */ +abbr[title] { border-bottom: none; /* 1 */ text-decoration: underline; /* 2 */ text-decoration: underline dotted; /* 2 */ } + +/** Add the correct font weight in Chrome, Edge, and Safari. */ +b, strong { font-weight: bolder; } + +/** 1. Correct the inheritance and scaling of font size in all browsers. 2. Correct the odd `em` font sizing in all browsers. */ +code, kbd, samp { font-family: monospace, monospace; /* 1 */ font-size: 1em; /* 2 */ } + +/** Add the correct font size in all browsers. */ +small { font-size: 80%; } + +/** Prevent `sub` and `sup` elements from affecting the line height in all browsers. */ +sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } + +sub { bottom: -0.25em; } + +sup { top: -0.5em; } + +/* Embedded content ========================================================================== */ +/** Remove the border on images inside links in IE 10. */ +img { border-style: none; } + +/* Forms ========================================================================== */ +/** 1. Change the font styles in all browsers. 2. Remove the margin in Firefox and Safari. */ +button, input, optgroup, select, textarea { font-family: inherit; /* 1 */ font-size: 100%; /* 1 */ line-height: 1.15; /* 1 */ margin: 0; /* 2 */ } + +/** Show the overflow in IE. 1. Show the overflow in Edge. */ +button, input { /* 1 */ overflow: visible; } + +/** Remove the inheritance of text transform in Edge, Firefox, and IE. 1. Remove the inheritance of text transform in Firefox. */ +button, select { /* 1 */ text-transform: none; } + +/** Correct the inability to style clickable types in iOS and Safari. */ +button, [type="button"], [type="reset"], [type="submit"] { -webkit-appearance: button; } + +/** Remove the inner border and padding in Firefox. */ +button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner { border-style: none; padding: 0; } + +/** Restore the focus styles unset by the previous rule. */ +button:-moz-focusring, [type="button"]:-moz-focusring, [type="reset"]:-moz-focusring, [type="submit"]:-moz-focusring { outline: 1px dotted ButtonText; } + +/** Correct the padding in Firefox. */ +fieldset { padding: 0.35em 0.75em 0.625em; } + +/** 1. Correct the text wrapping in Edge and IE. 2. Correct the color inheritance from `fieldset` elements in IE. 3. Remove the padding so developers are not caught out when they zero out `fieldset` elements in all browsers. */ +legend { box-sizing: border-box; /* 1 */ color: inherit; /* 2 */ display: table; /* 1 */ max-width: 100%; /* 1 */ padding: 0; /* 3 */ white-space: normal; /* 1 */ } + +/** Add the correct vertical alignment in Chrome, Firefox, and Opera. */ +progress { vertical-align: baseline; } + +/** Remove the default vertical scrollbar in IE 10+. */ +textarea { overflow: auto; } + +/** 1. Add the correct box sizing in IE 10. 2. Remove the padding in IE 10. */ +[type="checkbox"], [type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ } + +/** Correct the cursor style of increment and decrement buttons in Chrome. */ +[type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button { height: auto; } + +/** 1. Correct the odd appearance in Chrome and Safari. 2. Correct the outline style in Safari. */ +[type="search"] { -webkit-appearance: textfield; /* 1 */ outline-offset: -2px; /* 2 */ } + +/** Remove the inner padding in Chrome and Safari on macOS. */ +[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } + +/** 1. Correct the inability to style clickable types in iOS and Safari. 2. Change font properties to `inherit` in Safari. */ +::-webkit-file-upload-button { -webkit-appearance: button; /* 1 */ font: inherit; /* 2 */ } + +/* Interactive ========================================================================== */ +/* Add the correct display in Edge, IE 10+, and Firefox. */ +details { display: block; } + +/* Add the correct display in all browsers. */ +summary { display: list-item; } + +/* Misc ========================================================================== */ +/** Add the correct display in IE 10+. */ +template { display: none; } + +/** Add the correct display in IE 10. */ +[hidden] { display: none; } + +:root { color-scheme: dark; } + +* { box-sizing: border-box; } + +html { font-size: 0.875rem !important; scroll-behavior: smooth; } +@media (min-width: 31.25rem) { html { font-size: 1rem !important; } } + +body { font-family: system-ui, -apple-system, blinkmacsystemfont, "Segoe UI", roboto, "Helvetica Neue", arial, sans-serif; font-size: inherit; line-height: 1.4; color: #e6e1e8; background-color: #27262b; overflow-wrap: break-word; } + +ol, ul, dl, pre, address, blockquote, table, div, hr, form, fieldset, noscript .table-wrapper { margin-top: 0; } + +h1, h2, h3, h4, h5, h6, #toctitle { margin-top: 0; margin-bottom: 1em; font-weight: 500; line-height: 1.25; color: #f5f6fa; } + +p { margin-top: 1em; margin-bottom: 1em; } + +a { color: #2c84fa; text-decoration: none; } + +a:not([class]) { text-decoration: underline; text-decoration-color: #44434d; text-underline-offset: 2px; } +a:not([class]):hover { text-decoration-color: rgba(44, 132, 250, 0.45); } + +code { font-family: "SFMono-Regular", menlo, consolas, monospace; font-size: 0.75em; line-height: 1.4; } + +figure, pre { margin: 0; } + +li { margin: 0.25em 0; } + +img { max-width: 100%; height: auto; } + +hr { height: 1px; padding: 0; margin: 2rem 0; background-color: #44434d; border: 0; } + +blockquote { margin: 10px 0; margin-block-start: 0; margin-inline-start: 0; padding-left: 1rem; border-left: 3px solid #44434d; } + +.side-bar { z-index: 0; display: flex; flex-wrap: wrap; background-color: #27262b; } +@media (min-width: 50rem) { .side-bar { flex-flow: column nowrap; position: fixed; width: 15.5rem; height: 100%; border-right: 1px solid #44434d; align-items: flex-end; } } +@media (min-width: 66.5rem) { .side-bar { width: calc((100% - 66.5rem) / 2 + 16.5rem); min-width: 16.5rem; } } + +@media (min-width: 50rem) { .main { position: relative; max-width: 50rem; margin-left: 15.5rem; } } +@media (min-width: 66.5rem) { .main { margin-left: Max(16.5rem, calc((100% - 66.5rem) / 2 + 16.5rem)); } } + +.main-content-wrap { padding-right: 1rem; padding-left: 1rem; padding-top: 1rem; padding-bottom: 1rem; } +@media (min-width: 50rem) { .main-content-wrap { padding-right: 2rem; padding-left: 2rem; } } +@media (min-width: 50rem) { .main-content-wrap { padding-top: 2rem; padding-bottom: 2rem; } } + +.main-header { z-index: 0; display: none; background-color: #27262b; } +@media (min-width: 50rem) { .main-header { display: flex; justify-content: space-between; height: 3.75rem; background-color: #27262b; border-bottom: 1px solid #44434d; } } +.main-header.nav-open { display: block; } +@media (min-width: 50rem) { .main-header.nav-open { display: flex; } } + +.site-nav, .site-header, .site-footer { width: 100%; } +@media (min-width: 66.5rem) { .site-nav, .site-header, .site-footer { width: 16.5rem; } } + +.site-nav { display: none; } +.site-nav.nav-open { display: block; } +@media (min-width: 50rem) { .site-nav { display: block; padding-top: 3rem; padding-bottom: 1rem; overflow-y: auto; flex: 1 1 auto; } } + +.site-header { display: flex; min-height: 3.75rem; align-items: center; } +@media (min-width: 50rem) { .site-header { height: 3.75rem; max-height: 3.75rem; border-bottom: 1px solid #44434d; } } + +.site-title { padding-right: 1rem; padding-left: 1rem; flex-grow: 1; display: flex; height: 100%; align-items: center; padding-top: 0.75rem; padding-bottom: 0.75rem; color: #f5f6fa; font-size: 1.125rem !important; } +@media (min-width: 50rem) { .site-title { padding-right: 2rem; padding-left: 2rem; } } +@media (min-width: 31.25rem) { .site-title { font-size: 1.5rem !important; line-height: 1.25; } } +@media (min-width: 50rem) { .site-title { padding-top: 0.5rem; padding-bottom: 0.5rem; } } + +.site-logo { width: 100%; height: 100%; background-image: url("/v1.46/assets/logo.svg"); background-repeat: no-repeat; background-position: left center; background-size: contain; } + +.site-button { display: flex; height: 100%; padding: 1rem; align-items: center; } + +@media (min-width: 50rem) { .site-header .site-button { display: none; } } +.site-title:hover { background-image: linear-gradient(-90deg, #201f23 0%, rgba(32, 31, 35, 0.8) 80%, rgba(32, 31, 35, 0) 100%); } + +.site-button:hover { background-image: linear-gradient(-90deg, #201f23 0%, rgba(32, 31, 35, 0.8) 100%); } + +body { position: relative; padding-bottom: 4rem; overflow-y: scroll; } +@media (min-width: 50rem) { body { position: static; padding-bottom: 0; } } + +.site-footer { padding-right: 1rem; padding-left: 1rem; position: absolute; bottom: 0; left: 0; padding-top: 1rem; padding-bottom: 1rem; color: #959396; font-size: 0.6875rem !important; } +@media (min-width: 50rem) { .site-footer { padding-right: 2rem; padding-left: 2rem; } } +@media (min-width: 31.25rem) { .site-footer { font-size: 0.75rem !important; } } +@media (min-width: 50rem) { .site-footer { position: static; justify-self: end; } } + +.icon { width: 1.5rem; height: 1.5rem; color: #2c84fa; } + +.main-content { line-height: 1.6; } +.main-content ol, .main-content ul, .main-content dl, .main-content pre, .main-content address, .main-content blockquote, .main-content .table-wrapper { margin-top: 0.5em; } +.main-content a { overflow: hidden; text-overflow: ellipsis; } +.main-content ul, .main-content ol { padding-left: 1.5em; } +.main-content li .highlight { margin-top: 0.25rem; } +.main-content ol { list-style-type: none; counter-reset: step-counter; } +.main-content ol > li { position: relative; } +.main-content ol > li::before { position: absolute; top: 0.2em; left: -1.6em; color: #959396; content: counter(step-counter); counter-increment: step-counter; font-size: 0.75rem !important; } +@media (min-width: 31.25rem) { .main-content ol > li::before { font-size: 0.875rem !important; } } +@media (min-width: 31.25rem) { .main-content ol > li::before { top: 0.11em; } } +.main-content ol > li ol { counter-reset: sub-counter; } +.main-content ol > li ol > li::before { content: counter(sub-counter,lower-alpha); counter-increment: sub-counter; } +.main-content ul { list-style: none; } +.main-content ul > li::before { position: absolute; margin-left: -1.4em; color: #959396; content: "•"; } +.main-content .task-list-item::before { content: ""; } +.main-content .task-list-item-checkbox { margin-right: 0.6em; margin-left: -1.4em; } +.main-content hr + * { margin-top: 0; } +.main-content h1:first-of-type { margin-top: 0.5em; } +.main-content dl { display: grid; grid-template: auto / 10em 1fr; } +.main-content dt, .main-content dd { margin: 0.25em 0; } +.main-content dt { grid-column: 1; font-weight: 500; text-align: right; } +.main-content dt::after { content: ":"; } +.main-content dd { grid-column: 2; margin-bottom: 0; margin-left: 1em; } +.main-content dd blockquote:first-child, .main-content dd div:first-child, .main-content dd dl:first-child, .main-content dd dt:first-child, .main-content dd h1:first-child, .main-content dd h2:first-child, .main-content dd h3:first-child, .main-content dd h4:first-child, .main-content dd h5:first-child, .main-content dd h6:first-child, .main-content dd li:first-child, .main-content dd ol:first-child, .main-content dd p:first-child, .main-content dd pre:first-child, .main-content dd table:first-child, .main-content dd ul:first-child, .main-content dd .table-wrapper:first-child { margin-top: 0; } +.main-content dd dl:first-child dt:first-child, .main-content dd dl:first-child dd:nth-child(2), .main-content ol dl:first-child dt:first-child, .main-content ol dl:first-child dd:nth-child(2), .main-content ul dl:first-child dt:first-child, .main-content ul dl:first-child dd:nth-child(2) { margin-top: 0; } +.main-content .anchor-heading { position: absolute; right: -1rem; width: 1.5rem; height: 100%; padding-right: 0.25rem; padding-left: 0.25rem; overflow: visible; } +@media (min-width: 50rem) { .main-content .anchor-heading { right: auto; left: -1.5rem; } } +.main-content .anchor-heading svg { display: inline-block; width: 100%; height: 100%; color: #2c84fa; visibility: hidden; } +.main-content .anchor-heading:hover svg, .main-content .anchor-heading:focus svg, .main-content h1:hover > .anchor-heading svg, .main-content h2:hover > .anchor-heading svg, .main-content h3:hover > .anchor-heading svg, .main-content h4:hover > .anchor-heading svg, .main-content h5:hover > .anchor-heading svg, .main-content h6:hover > .anchor-heading svg { visibility: visible; } +.main-content summary { cursor: pointer; } +.main-content h1, .main-content h2, .main-content h3, .main-content h4, .main-content h5, .main-content h6, .main-content #toctitle { position: relative; margin-top: 1.5em; margin-bottom: 0.25em; } +.main-content h1 + table, .main-content h1 + .table-wrapper, .main-content h1 + .code-example, .main-content h1 + .highlighter-rouge, .main-content h1 + .sectionbody .listingblock, .main-content h2 + table, .main-content h2 + .table-wrapper, .main-content h2 + .code-example, .main-content h2 + .highlighter-rouge, .main-content h2 + .sectionbody .listingblock, .main-content h3 + table, .main-content h3 + .table-wrapper, .main-content h3 + .code-example, .main-content h3 + .highlighter-rouge, .main-content h3 + .sectionbody .listingblock, .main-content h4 + table, .main-content h4 + .table-wrapper, .main-content h4 + .code-example, .main-content h4 + .highlighter-rouge, .main-content h4 + .sectionbody .listingblock, .main-content h5 + table, .main-content h5 + .table-wrapper, .main-content h5 + .code-example, .main-content h5 + .highlighter-rouge, .main-content h5 + .sectionbody .listingblock, .main-content h6 + table, .main-content h6 + .table-wrapper, .main-content h6 + .code-example, .main-content h6 + .highlighter-rouge, .main-content h6 + .sectionbody .listingblock, .main-content #toctitle + table, .main-content #toctitle + .table-wrapper, .main-content #toctitle + .code-example, .main-content #toctitle + .highlighter-rouge, .main-content #toctitle + .sectionbody .listingblock { margin-top: 1em; } +.main-content h1 + p:not(.label), .main-content h2 + p:not(.label), .main-content h3 + p:not(.label), .main-content h4 + p:not(.label), .main-content h5 + p:not(.label), .main-content h6 + p:not(.label), .main-content #toctitle + p:not(.label) { margin-top: 0; } +.main-content > h1:first-child, .main-content > h2:first-child, .main-content > h3:first-child, .main-content > h4:first-child, .main-content > h5:first-child, .main-content > h6:first-child, .main-content > .sect1:first-child > h2, .main-content > .sect2:first-child > h3, .main-content > .sect3:first-child > h4, .main-content > .sect4:first-child > h5, .main-content > .sect5:first-child > h6 { margin-top: 0.5rem; } + +.nav-list { padding: 0; margin-top: 0; margin-bottom: 0; list-style: none; } +.nav-list .nav-list-item { font-size: 0.875rem !important; position: relative; margin: 0; } +@media (min-width: 31.25rem) { .nav-list .nav-list-item { font-size: 1rem !important; } } +@media (min-width: 50rem) { .nav-list .nav-list-item { font-size: 0.75rem !important; } } +@media (min-width: 50rem) and (min-width: 31.25rem) { .nav-list .nav-list-item { font-size: 0.875rem !important; } } + +.nav-list .nav-list-item .nav-list-link { display: block; min-height: 3rem; padding-top: 0.25rem; padding-bottom: 0.25rem; line-height: 2.5rem; padding-right: 3rem; padding-left: 1rem; } +@media (min-width: 50rem) { .nav-list .nav-list-item .nav-list-link { min-height: 2rem; line-height: 1.5rem; padding-right: 2rem; padding-left: 2rem; } } +.nav-list .nav-list-item .nav-list-link.external > svg { width: 1rem; height: 1rem; vertical-align: text-bottom; } +.nav-list .nav-list-item .nav-list-link.active { font-weight: 600; text-decoration: none; } +.nav-list .nav-list-item .nav-list-link:hover, .nav-list .nav-list-item .nav-list-link.active { background-image: linear-gradient(-90deg, #201f23 0%, rgba(32, 31, 35, 0.8) 80%, rgba(32, 31, 35, 0) 100%); } +.nav-list .nav-list-item .nav-list-expander { position: absolute; right: 0; width: 3rem; height: 3rem; padding: 0.75rem; color: #2c84fa; } +@media (min-width: 50rem) { .nav-list .nav-list-item .nav-list-expander { width: 2rem; height: 2rem; padding: 0.5rem; } } +.nav-list .nav-list-item .nav-list-expander:hover { background-image: linear-gradient(-90deg, #201f23 0%, rgba(32, 31, 35, 0.8) 100%); } +.nav-list .nav-list-item .nav-list-expander svg { transform: rotate(90deg); } +.nav-list .nav-list-item > .nav-list { display: none; padding-left: 0.75rem; list-style: none; } +.nav-list .nav-list-item > .nav-list .nav-list-item { position: relative; } +.nav-list .nav-list-item > .nav-list .nav-list-item .nav-list-link { color: #959396; } +.nav-list .nav-list-item > .nav-list .nav-list-item .nav-list-expander { color: #959396; } +.nav-list .nav-list-item.active > .nav-list-expander svg { transform: rotate(-90deg); } +.nav-list .nav-list-item.active > .nav-list { display: block; } + +.nav-category { padding: 0.5rem 1rem; font-weight: 600; text-align: start; text-transform: uppercase; border-bottom: 1px solid #44434d; font-size: 0.6875rem !important; } +@media (min-width: 31.25rem) { .nav-category { font-size: 0.75rem !important; } } +@media (min-width: 50rem) { .nav-category { padding: 0.5rem 2rem; margin-top: 1rem; text-align: start; } + .nav-category:first-child { margin-top: 0; } } + +.nav-list.nav-category-list > .nav-list-item { margin: 0; } +.nav-list.nav-category-list > .nav-list-item > .nav-list { padding: 0; } +.nav-list.nav-category-list > .nav-list-item > .nav-list > .nav-list-item > .nav-list-link { color: #2c84fa; } +.nav-list.nav-category-list > .nav-list-item > .nav-list > .nav-list-item > .nav-list-expander { color: #2c84fa; } + +.aux-nav { height: 100%; overflow-x: auto; font-size: 0.6875rem !important; } +@media (min-width: 31.25rem) { .aux-nav { font-size: 0.75rem !important; } } +.aux-nav .aux-nav-list { display: flex; height: 100%; padding: 0; margin: 0; list-style: none; } +.aux-nav .aux-nav-list-item { display: inline-block; height: 100%; padding: 0; margin: 0; } +@media (min-width: 50rem) { .aux-nav { padding-right: 1rem; } } + +@media (min-width: 50rem) { .breadcrumb-nav { margin-top: -1rem; } } + +.breadcrumb-nav-list { padding-left: 0; margin-bottom: 0.75rem; list-style: none; } + +.breadcrumb-nav-list-item { display: table-cell; font-size: 0.6875rem !important; } +@media (min-width: 31.25rem) { .breadcrumb-nav-list-item { font-size: 0.75rem !important; } } +.breadcrumb-nav-list-item::before { display: none; } +.breadcrumb-nav-list-item::after { display: inline-block; margin-right: 0.5rem; margin-left: 0.5rem; color: #959396; content: "/"; } +.breadcrumb-nav-list-item:last-child::after { content: ""; } + +h1, .text-alpha { font-size: 2rem !important; line-height: 1.25; font-weight: 300; } +@media (min-width: 31.25rem) { h1, .text-alpha { font-size: 2.25rem !important; } } + +h2, .text-beta, #toctitle { font-size: 1.125rem !important; } +@media (min-width: 31.25rem) { h2, .text-beta, #toctitle { font-size: 1.5rem !important; line-height: 1.25; } } + +h3, .text-gamma { font-size: 1rem !important; } +@media (min-width: 31.25rem) { h3, .text-gamma { font-size: 1.125rem !important; } } + +h4, .text-delta { font-size: 0.6875rem !important; font-weight: 400; text-transform: uppercase; letter-spacing: 0.1em; } +@media (min-width: 31.25rem) { h4, .text-delta { font-size: 0.75rem !important; } } + +h4 code { text-transform: none; } + +h5, .text-epsilon { font-size: 0.75rem !important; } +@media (min-width: 31.25rem) { h5, .text-epsilon { font-size: 0.875rem !important; } } + +h6, .text-zeta { font-size: 0.6875rem !important; } +@media (min-width: 31.25rem) { h6, .text-zeta { font-size: 0.75rem !important; } } + +.text-small { font-size: 0.6875rem !important; } +@media (min-width: 31.25rem) { .text-small { font-size: 0.75rem !important; } } + +.text-mono { font-family: "SFMono-Regular", menlo, consolas, monospace !important; } + +.text-left { text-align: left !important; } + +.text-center { text-align: center !important; } + +.text-right { text-align: right !important; } + +.label:not(g), .label-blue:not(g) { display: inline-block; padding: 0.16em 0.56em; margin-right: 0.5rem; margin-left: 0.5rem; color: #fff; text-transform: uppercase; vertical-align: middle; background-color: #2869e6; font-size: 0.6875rem !important; border-radius: 12px; } +@media (min-width: 31.25rem) { .label:not(g), .label-blue:not(g) { font-size: 0.75rem !important; } } + +.label-green:not(g) { background-color: #009c7b; } + +.label-purple:not(g) { background-color: #5e41d0; } + +.label-red:not(g) { background-color: #e94c4c; } + +.label-yellow:not(g) { color: #44434d; background-color: #f7d12e; } + +.btn { display: inline-block; box-sizing: border-box; padding: 0.3em 1em; margin: 0; font-family: inherit; font-size: inherit; font-weight: 500; line-height: 1.5; color: #2c84fa; text-decoration: none; vertical-align: baseline; cursor: pointer; background-color: #302d36; border-width: 0; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); appearance: none; } +.btn:focus { text-decoration: none; outline: none; box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.25); } +.btn:focus:hover, .btn.selected:focus { box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.25); } +.btn:hover, .btn.zeroclipboard-is-hover { color: #227efa; } +.btn:hover, .btn:active, .btn.zeroclipboard-is-hover, .btn.zeroclipboard-is-active { text-decoration: none; background-color: #2e2b33; } +.btn:active, .btn.selected, .btn.zeroclipboard-is-active { background-color: #29262e; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } +.btn.selected:hover { background-color: #cfcfcf; } +.btn:disabled, .btn:disabled:hover, .btn.disabled, .btn.disabled:hover { color: rgba(102, 102, 102, 0.5); cursor: default; background-color: rgba(229, 229, 229, 0.5); background-image: none; box-shadow: none; } + +.btn-outline { color: #2c84fa; background: transparent; box-shadow: inset 0 0 0 2px #e6e1e8; } +.btn-outline:hover, .btn-outline:active, .btn-outline.zeroclipboard-is-hover, .btn-outline.zeroclipboard-is-active { color: #1878fa; text-decoration: none; background-color: transparent; box-shadow: inset 0 0 0 3px #e6e1e8; } +.btn-outline:focus { text-decoration: none; outline: none; box-shadow: inset 0 0 0 2px #5c5962, 0 0 0 3px rgba(0, 0, 255, 0.25); } +.btn-outline:focus:hover, .btn-outline.selected:focus { box-shadow: inset 0 0 0 2px #5c5962; } + +.btn-primary { color: #fff; background-color: #2448a7; background-image: linear-gradient(#2b55c4, #2448a7); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); } +.btn-primary:hover, .btn-primary.zeroclipboard-is-hover { color: #fff; background-color: #22459e; background-image: linear-gradient(#2850b7, #22459e); } +.btn-primary:active, .btn-primary.selected, .btn-primary.zeroclipboard-is-active { background-color: #21439a; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } +.btn-primary.selected:hover { background-color: #1d3a85; } + +.btn-purple { color: #fff; background-color: #5739ce; background-image: linear-gradient(#6f55d5, #5739ce); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); } +.btn-purple:hover, .btn-purple.zeroclipboard-is-hover { color: #fff; background-color: #5132cb; background-image: linear-gradient(#6549d2, #5132cb); } +.btn-purple:active, .btn-purple.selected, .btn-purple.zeroclipboard-is-active { background-color: #4f31c6; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } +.btn-purple.selected:hover { background-color: #472cb2; } + +.btn-blue { color: #fff; background-color: #227efa; background-image: linear-gradient(#4593fb, #227efa); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); } +.btn-blue:hover, .btn-blue.zeroclipboard-is-hover { color: #fff; background-color: #1878fa; background-image: linear-gradient(#368afa, #1878fa); } +.btn-blue:active, .btn-blue.selected, .btn-blue.zeroclipboard-is-active { background-color: #1375f9; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } +.btn-blue.selected:hover { background-color: #0669ed; } + +.btn-green { color: #fff; background-color: #10ac7d; background-image: linear-gradient(#13cc95, #10ac7d); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); } +.btn-green:hover, .btn-green.zeroclipboard-is-hover { color: #fff; background-color: #0fa276; background-image: linear-gradient(#12be8b, #0fa276); } +.btn-green:active, .btn-green.selected, .btn-green.zeroclipboard-is-active { background-color: #0f9e73; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } +.btn-green.selected:hover { background-color: #0d8662; } + +.btn-reset { background: none; border: none; margin: 0; text-align: inherit; font: inherit; border-radius: 0; appearance: none; } + +.search { position: relative; z-index: 2; flex-grow: 1; height: 4rem; padding: 0.5rem; transition: padding linear 200ms; } +@media (min-width: 50rem) { .search { position: relative !important; width: auto !important; height: 100% !important; padding: 0; transition: none; } } + +.search-input-wrap { position: relative; z-index: 1; height: 3rem; overflow: hidden; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); transition: height linear 200ms; } +@media (min-width: 50rem) { .search-input-wrap { position: absolute; width: 100%; max-width: 33.5rem; height: 100% !important; border-radius: 0; box-shadow: none; transition: width ease 400ms; } } + +.search-input { position: absolute; width: 100%; height: 100%; padding: 0.5rem 1rem 0.5rem 2.5rem; font-size: 1rem; color: #e6e1e8; background-color: #302d36; border-top: 0; border-right: 0; border-bottom: 0; border-left: 0; border-radius: 0; } +@media (min-width: 50rem) { .search-input { padding: 0.5rem 1rem 0.5rem 3.5rem; font-size: 0.875rem; background-color: #27262b; transition: padding-left linear 200ms; } } +.search-input:focus { outline: 0; } +.search-input:focus + .search-label .search-icon { color: #2c84fa; } + +.search-label { position: absolute; display: flex; height: 100%; padding-left: 1rem; } +@media (min-width: 50rem) { .search-label { padding-left: 2rem; transition: padding-left linear 200ms; } } +.search-label .search-icon { width: 1.2rem; height: 1.2rem; align-self: center; color: #959396; } + +.search-results { position: absolute; left: 0; display: none; width: 100%; max-height: calc(100% - 4rem); overflow-y: auto; background-color: #302d36; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); } +@media (min-width: 50rem) { .search-results { top: 100%; width: 33.5rem; max-height: calc(100vh - 200%) !important; } } + +.search-results-list { padding-left: 0; margin-bottom: 0.25rem; list-style: none; font-size: 0.875rem !important; } +@media (min-width: 31.25rem) { .search-results-list { font-size: 1rem !important; } } +@media (min-width: 50rem) { .search-results-list { font-size: 0.75rem !important; } } +@media (min-width: 50rem) and (min-width: 31.25rem) { .search-results-list { font-size: 0.875rem !important; } } + +.search-results-list-item { padding: 0; margin: 0; } + +.search-result { display: block; padding: 0.25rem 0.75rem; } +.search-result:hover, .search-result.active { background-color: #201f23; } + +.search-result-title { display: block; padding-top: 0.5rem; padding-bottom: 0.5rem; } +@media (min-width: 31.25rem) { .search-result-title { display: inline-block; width: 40%; padding-right: 0.5rem; vertical-align: top; } } + +.search-result-doc { display: flex; align-items: center; word-wrap: break-word; } +.search-result-doc.search-result-doc-parent { opacity: 0.5; font-size: 0.75rem !important; } +@media (min-width: 31.25rem) { .search-result-doc.search-result-doc-parent { font-size: 0.875rem !important; } } +@media (min-width: 50rem) { .search-result-doc.search-result-doc-parent { font-size: 0.6875rem !important; } } +@media (min-width: 50rem) and (min-width: 31.25rem) { .search-result-doc.search-result-doc-parent { font-size: 0.75rem !important; } } + +.search-result-doc .search-result-icon { width: 1rem; height: 1rem; margin-right: 0.5rem; color: #2c84fa; flex-shrink: 0; } +.search-result-doc .search-result-doc-title { overflow: auto; } + +.search-result-section { margin-left: 1.5rem; word-wrap: break-word; } + +.search-result-rel-url { display: block; margin-left: 1.5rem; overflow: hidden; color: #959396; text-overflow: ellipsis; white-space: nowrap; font-size: 0.5625rem !important; } +@media (min-width: 31.25rem) { .search-result-rel-url { font-size: 0.625rem !important; } } + +.search-result-previews { display: block; padding-top: 0.5rem; padding-bottom: 0.5rem; padding-left: 1rem; margin-left: 0.5rem; color: #959396; word-wrap: break-word; border-left: 1px solid; border-left-color: #44434d; font-size: 0.6875rem !important; } +@media (min-width: 31.25rem) { .search-result-previews { font-size: 0.75rem !important; } } +@media (min-width: 31.25rem) { .search-result-previews { display: inline-block; width: 60%; padding-left: 0.5rem; margin-left: 0; vertical-align: top; } } + +.search-result-preview + .search-result-preview { margin-top: 0.25rem; } + +.search-result-highlight { font-weight: bold; } + +.search-no-result { padding: 0.5rem 0.75rem; font-size: 0.75rem !important; } +@media (min-width: 31.25rem) { .search-no-result { font-size: 0.875rem !important; } } + +.search-button { position: fixed; right: 1rem; bottom: 1rem; display: flex; width: 3.5rem; height: 3.5rem; background-color: #302d36; border: 1px solid rgba(44, 132, 250, 0.3); border-radius: 1.75rem; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); align-items: center; justify-content: center; } + +.search-overlay { position: fixed; top: 0; left: 0; z-index: 1; width: 0; height: 0; background-color: rgba(0, 0, 0, 0.3); opacity: 0; transition: opacity ease 400ms, width 0s 400ms, height 0s 400ms; } + +.search-active .search { position: fixed; top: 0; left: 0; width: 100%; height: 100%; padding: 0; } +.search-active .search-input-wrap { height: 4rem; border-radius: 0; } +@media (min-width: 50rem) { .search-active .search-input-wrap { width: 33.5rem; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); } } +.search-active .search-input { background-color: #302d36; } +@media (min-width: 50rem) { .search-active .search-input { padding-left: 2.3rem; } } +@media (min-width: 50rem) { .search-active .search-label { padding-left: 0.6rem; } } +.search-active .search-results { display: block; } +.search-active .search-overlay { width: 100%; height: 100%; opacity: 1; transition: opacity ease 400ms, width 0s, height 0s; } +@media (min-width: 50rem) { .search-active .main { position: fixed; right: 0; left: 0; } } +.search-active .main-header { padding-top: 4rem; } +@media (min-width: 50rem) { .search-active .main-header { padding-top: 0; } } + +.table-wrapper { display: block; width: 100%; max-width: 100%; margin-bottom: 1.5rem; overflow-x: auto; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); } + +table { display: table; min-width: 100%; border-collapse: separate; } + +th, td { font-size: 0.75rem !important; min-width: 7.5rem; padding: 0.5rem 0.75rem; background-color: #302d36; border-bottom: 1px solid rgba(68, 67, 77, 0.5); border-left: 1px solid #44434d; } +@media (min-width: 31.25rem) { th, td { font-size: 0.875rem !important; } } +th:first-of-type, td:first-of-type { border-left: 0; } + +tbody tr:last-of-type th, tbody tr:last-of-type td { border-bottom: 0; } +tbody tr:last-of-type td { padding-bottom: 0.75rem; } + +thead th { border-bottom: 1px solid #44434d; } + +:not(pre, figure) > code { padding: 0.2em 0.15em; font-weight: 400; background-color: #31343f; border: 1px solid #44434d; border-radius: 4px; } + +a:visited code { border-color: #44434d; } + +div.highlighter-rouge, div.listingblock > div.content, figure.highlight { margin-top: 0; margin-bottom: 0.75rem; background-color: #31343f; border-radius: 4px; box-shadow: none; -webkit-overflow-scrolling: touch; position: relative; padding: 0; } +div.highlighter-rouge > button, div.listingblock > div.content > button, figure.highlight > button { width: 0.75rem; opacity: 0; position: absolute; top: 0; right: 0; border: 0.75rem solid #31343f; background-color: #31343f; color: #e6e1e8; box-sizing: content-box; } +div.highlighter-rouge > button svg, div.listingblock > div.content > button svg, figure.highlight > button svg { fill: #e6e1e8; } +div.highlighter-rouge > button:active, div.listingblock > div.content > button:active, figure.highlight > button:active { text-decoration: none; outline: none; opacity: 1; } +div.highlighter-rouge > button:focus, div.listingblock > div.content > button:focus, figure.highlight > button:focus { opacity: 1; } +div.highlighter-rouge:hover > button, div.listingblock > div.content:hover > button, figure.highlight:hover > button { cursor: copy; opacity: 1; } + +div.highlighter-rouge div.highlight { overflow-x: auto; padding: 0.75rem; margin: 0; border: 0; } +div.highlighter-rouge pre.highlight, div.highlighter-rouge code { padding: 0; margin: 0; border: 0; } + +div.listingblock { margin-top: 0; margin-bottom: 0.75rem; } +div.listingblock div.content { overflow-x: auto; padding: 0.75rem; margin: 0; border: 0; } +div.listingblock div.content > pre, div.listingblock code { padding: 0; margin: 0; border: 0; } + +figure.highlight pre, figure.highlight :not(pre) > code { overflow-x: auto; padding: 0.75rem; margin: 0; border: 0; } + +.highlight .table-wrapper { padding: 0.75rem 0; margin: 0; border: 0; box-shadow: none; } +.highlight .table-wrapper td, .highlight .table-wrapper pre { font-size: 0.6875rem !important; min-width: 0; padding: 0; background-color: #31343f; border: 0; } +@media (min-width: 31.25rem) { .highlight .table-wrapper td, .highlight .table-wrapper pre { font-size: 0.75rem !important; } } +.highlight .table-wrapper td.gl { width: 1em; padding-right: 0.75rem; padding-left: 0.75rem; } +.highlight .table-wrapper pre { margin: 0; line-height: 2; } + +.code-example, .listingblock > .title { padding: 0.75rem; margin-bottom: 0.75rem; overflow: auto; border: 1px solid #44434d; border-radius: 4px; } +.code-example + .highlighter-rouge, .code-example + .sectionbody .listingblock, .code-example + .content, .code-example + figure.highlight, .listingblock > .title + .highlighter-rouge, .listingblock > .title + .sectionbody .listingblock, .listingblock > .title + .content, .listingblock > .title + figure.highlight { position: relative; margin-top: -1rem; border-right: 1px solid #44434d; border-bottom: 1px solid #44434d; border-left: 1px solid #44434d; border-top-left-radius: 0; border-top-right-radius: 0; } + +code.language-mermaid { padding: 0; background-color: inherit; border: 0; } + +.highlight, pre.highlight { background: #31343f; color: #dee2f7; } + +.highlight pre { background: #31343f; } + +.text-grey-dk-000 { color: #959396 !important; } + +.text-grey-dk-100 { color: #5c5962 !important; } + +.text-grey-dk-200 { color: #44434d !important; } + +.text-grey-dk-250 { color: #302d36 !important; } + +.text-grey-dk-300 { color: #27262b !important; } + +.text-grey-lt-000 { color: #f5f6fa !important; } + +.text-grey-lt-100 { color: #eeebee !important; } + +.text-grey-lt-200 { color: #ecebed !important; } + +.text-grey-lt-300 { color: #e6e1e8 !important; } + +.text-blue-000 { color: #2c84fa !important; } + +.text-blue-100 { color: #2869e6 !important; } + +.text-blue-200 { color: #264caf !important; } + +.text-blue-300 { color: #183385 !important; } + +.text-green-000 { color: #41d693 !important; } + +.text-green-100 { color: #11b584 !important; } + +.text-green-200 { color: #009c7b !important; } + +.text-green-300 { color: #026e57 !important; } + +.text-purple-000 { color: #7253ed !important; } + +.text-purple-100 { color: #5e41d0 !important; } + +.text-purple-200 { color: #4e26af !important; } + +.text-purple-300 { color: #381885 !important; } + +.text-yellow-000 { color: #ffeb82 !important; } + +.text-yellow-100 { color: #fadf50 !important; } + +.text-yellow-200 { color: #f7d12e !important; } + +.text-yellow-300 { color: #e7af06 !important; } + +.text-red-000 { color: #f77e7e !important; } + +.text-red-100 { color: #f96e65 !important; } + +.text-red-200 { color: #e94c4c !important; } + +.text-red-300 { color: #dd2e2e !important; } + +.bg-grey-dk-000 { background-color: #959396 !important; } + +.bg-grey-dk-100 { background-color: #5c5962 !important; } + +.bg-grey-dk-200 { background-color: #44434d !important; } + +.bg-grey-dk-250 { background-color: #302d36 !important; } + +.bg-grey-dk-300 { background-color: #27262b !important; } + +.bg-grey-lt-000 { background-color: #f5f6fa !important; } + +.bg-grey-lt-100 { background-color: #eeebee !important; } + +.bg-grey-lt-200 { background-color: #ecebed !important; } + +.bg-grey-lt-300 { background-color: #e6e1e8 !important; } + +.bg-blue-000 { background-color: #2c84fa !important; } + +.bg-blue-100 { background-color: #2869e6 !important; } + +.bg-blue-200 { background-color: #264caf !important; } + +.bg-blue-300 { background-color: #183385 !important; } + +.bg-green-000 { background-color: #41d693 !important; } + +.bg-green-100 { background-color: #11b584 !important; } + +.bg-green-200 { background-color: #009c7b !important; } + +.bg-green-300 { background-color: #026e57 !important; } + +.bg-purple-000 { background-color: #7253ed !important; } + +.bg-purple-100 { background-color: #5e41d0 !important; } + +.bg-purple-200 { background-color: #4e26af !important; } + +.bg-purple-300 { background-color: #381885 !important; } + +.bg-yellow-000 { background-color: #ffeb82 !important; } + +.bg-yellow-100 { background-color: #fadf50 !important; } + +.bg-yellow-200 { background-color: #f7d12e !important; } + +.bg-yellow-300 { background-color: #e7af06 !important; } + +.bg-red-000 { background-color: #f77e7e !important; } + +.bg-red-100 { background-color: #f96e65 !important; } + +.bg-red-200 { background-color: #e94c4c !important; } + +.bg-red-300 { background-color: #dd2e2e !important; } + +.d-block { display: block !important; } + +.d-flex { display: flex !important; } + +.d-inline { display: inline !important; } + +.d-inline-block { display: inline-block !important; } + +.d-none { display: none !important; } + +@media (min-width: 20rem) { .d-xs-block { display: block !important; } + .d-xs-flex { display: flex !important; } + .d-xs-inline { display: inline !important; } + .d-xs-inline-block { display: inline-block !important; } + .d-xs-none { display: none !important; } } +@media (min-width: 20rem) { .d-xs-block { display: block !important; } + .d-xs-flex { display: flex !important; } + .d-xs-inline { display: inline !important; } + .d-xs-inline-block { display: inline-block !important; } + .d-xs-none { display: none !important; } } +@media (min-width: 20rem) { .d-xs-block { display: block !important; } + .d-xs-flex { display: flex !important; } + .d-xs-inline { display: inline !important; } + .d-xs-inline-block { display: inline-block !important; } + .d-xs-none { display: none !important; } } +@media (min-width: 20rem) { .d-xs-block { display: block !important; } + .d-xs-flex { display: flex !important; } + .d-xs-inline { display: inline !important; } + .d-xs-inline-block { display: inline-block !important; } + .d-xs-none { display: none !important; } } +@media (min-width: 20rem) { .d-xs-block { display: block !important; } + .d-xs-flex { display: flex !important; } + .d-xs-inline { display: inline !important; } + .d-xs-inline-block { display: inline-block !important; } + .d-xs-none { display: none !important; } } +@media (min-width: 20rem) { .d-xs-block { display: block !important; } + .d-xs-flex { display: flex !important; } + .d-xs-inline { display: inline !important; } + .d-xs-inline-block { display: inline-block !important; } + .d-xs-none { display: none !important; } } +@media (min-width: 20rem) { .d-xs-block { display: block !important; } + .d-xs-flex { display: flex !important; } + .d-xs-inline { display: inline !important; } + .d-xs-inline-block { display: inline-block !important; } + .d-xs-none { display: none !important; } } +@media (min-width: 20rem) { .d-xs-block { display: block !important; } + .d-xs-flex { display: flex !important; } + .d-xs-inline { display: inline !important; } + .d-xs-inline-block { display: inline-block !important; } + .d-xs-none { display: none !important; } } +@media (min-width: 20rem) { .d-xs-block { display: block !important; } + .d-xs-flex { display: flex !important; } + .d-xs-inline { display: inline !important; } + .d-xs-inline-block { display: inline-block !important; } + .d-xs-none { display: none !important; } } +@media (min-width: 20rem) { .d-xs-block { display: block !important; } + .d-xs-flex { display: flex !important; } + .d-xs-inline { display: inline !important; } + .d-xs-inline-block { display: inline-block !important; } + .d-xs-none { display: none !important; } } +@media (min-width: 20rem) { .d-xs-block { display: block !important; } + .d-xs-flex { display: flex !important; } + .d-xs-inline { display: inline !important; } + .d-xs-inline-block { display: inline-block !important; } + .d-xs-none { display: none !important; } } +@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } + .d-sm-flex { display: flex !important; } + .d-sm-inline { display: inline !important; } + .d-sm-inline-block { display: inline-block !important; } + .d-sm-none { display: none !important; } } +@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } + .d-sm-flex { display: flex !important; } + .d-sm-inline { display: inline !important; } + .d-sm-inline-block { display: inline-block !important; } + .d-sm-none { display: none !important; } } +@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } + .d-sm-flex { display: flex !important; } + .d-sm-inline { display: inline !important; } + .d-sm-inline-block { display: inline-block !important; } + .d-sm-none { display: none !important; } } +@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } + .d-sm-flex { display: flex !important; } + .d-sm-inline { display: inline !important; } + .d-sm-inline-block { display: inline-block !important; } + .d-sm-none { display: none !important; } } +@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } + .d-sm-flex { display: flex !important; } + .d-sm-inline { display: inline !important; } + .d-sm-inline-block { display: inline-block !important; } + .d-sm-none { display: none !important; } } +@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } + .d-sm-flex { display: flex !important; } + .d-sm-inline { display: inline !important; } + .d-sm-inline-block { display: inline-block !important; } + .d-sm-none { display: none !important; } } +@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } + .d-sm-flex { display: flex !important; } + .d-sm-inline { display: inline !important; } + .d-sm-inline-block { display: inline-block !important; } + .d-sm-none { display: none !important; } } +@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } + .d-sm-flex { display: flex !important; } + .d-sm-inline { display: inline !important; } + .d-sm-inline-block { display: inline-block !important; } + .d-sm-none { display: none !important; } } +@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } + .d-sm-flex { display: flex !important; } + .d-sm-inline { display: inline !important; } + .d-sm-inline-block { display: inline-block !important; } + .d-sm-none { display: none !important; } } +@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } + .d-sm-flex { display: flex !important; } + .d-sm-inline { display: inline !important; } + .d-sm-inline-block { display: inline-block !important; } + .d-sm-none { display: none !important; } } +@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } + .d-sm-flex { display: flex !important; } + .d-sm-inline { display: inline !important; } + .d-sm-inline-block { display: inline-block !important; } + .d-sm-none { display: none !important; } } +@media (min-width: 50rem) { .d-md-block { display: block !important; } + .d-md-flex { display: flex !important; } + .d-md-inline { display: inline !important; } + .d-md-inline-block { display: inline-block !important; } + .d-md-none { display: none !important; } } +@media (min-width: 50rem) { .d-md-block { display: block !important; } + .d-md-flex { display: flex !important; } + .d-md-inline { display: inline !important; } + .d-md-inline-block { display: inline-block !important; } + .d-md-none { display: none !important; } } +@media (min-width: 50rem) { .d-md-block { display: block !important; } + .d-md-flex { display: flex !important; } + .d-md-inline { display: inline !important; } + .d-md-inline-block { display: inline-block !important; } + .d-md-none { display: none !important; } } +@media (min-width: 50rem) { .d-md-block { display: block !important; } + .d-md-flex { display: flex !important; } + .d-md-inline { display: inline !important; } + .d-md-inline-block { display: inline-block !important; } + .d-md-none { display: none !important; } } +@media (min-width: 50rem) { .d-md-block { display: block !important; } + .d-md-flex { display: flex !important; } + .d-md-inline { display: inline !important; } + .d-md-inline-block { display: inline-block !important; } + .d-md-none { display: none !important; } } +@media (min-width: 50rem) { .d-md-block { display: block !important; } + .d-md-flex { display: flex !important; } + .d-md-inline { display: inline !important; } + .d-md-inline-block { display: inline-block !important; } + .d-md-none { display: none !important; } } +@media (min-width: 50rem) { .d-md-block { display: block !important; } + .d-md-flex { display: flex !important; } + .d-md-inline { display: inline !important; } + .d-md-inline-block { display: inline-block !important; } + .d-md-none { display: none !important; } } +@media (min-width: 50rem) { .d-md-block { display: block !important; } + .d-md-flex { display: flex !important; } + .d-md-inline { display: inline !important; } + .d-md-inline-block { display: inline-block !important; } + .d-md-none { display: none !important; } } +@media (min-width: 50rem) { .d-md-block { display: block !important; } + .d-md-flex { display: flex !important; } + .d-md-inline { display: inline !important; } + .d-md-inline-block { display: inline-block !important; } + .d-md-none { display: none !important; } } +@media (min-width: 50rem) { .d-md-block { display: block !important; } + .d-md-flex { display: flex !important; } + .d-md-inline { display: inline !important; } + .d-md-inline-block { display: inline-block !important; } + .d-md-none { display: none !important; } } +@media (min-width: 50rem) { .d-md-block { display: block !important; } + .d-md-flex { display: flex !important; } + .d-md-inline { display: inline !important; } + .d-md-inline-block { display: inline-block !important; } + .d-md-none { display: none !important; } } +@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } + .d-lg-flex { display: flex !important; } + .d-lg-inline { display: inline !important; } + .d-lg-inline-block { display: inline-block !important; } + .d-lg-none { display: none !important; } } +@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } + .d-lg-flex { display: flex !important; } + .d-lg-inline { display: inline !important; } + .d-lg-inline-block { display: inline-block !important; } + .d-lg-none { display: none !important; } } +@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } + .d-lg-flex { display: flex !important; } + .d-lg-inline { display: inline !important; } + .d-lg-inline-block { display: inline-block !important; } + .d-lg-none { display: none !important; } } +@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } + .d-lg-flex { display: flex !important; } + .d-lg-inline { display: inline !important; } + .d-lg-inline-block { display: inline-block !important; } + .d-lg-none { display: none !important; } } +@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } + .d-lg-flex { display: flex !important; } + .d-lg-inline { display: inline !important; } + .d-lg-inline-block { display: inline-block !important; } + .d-lg-none { display: none !important; } } +@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } + .d-lg-flex { display: flex !important; } + .d-lg-inline { display: inline !important; } + .d-lg-inline-block { display: inline-block !important; } + .d-lg-none { display: none !important; } } +@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } + .d-lg-flex { display: flex !important; } + .d-lg-inline { display: inline !important; } + .d-lg-inline-block { display: inline-block !important; } + .d-lg-none { display: none !important; } } +@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } + .d-lg-flex { display: flex !important; } + .d-lg-inline { display: inline !important; } + .d-lg-inline-block { display: inline-block !important; } + .d-lg-none { display: none !important; } } +@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } + .d-lg-flex { display: flex !important; } + .d-lg-inline { display: inline !important; } + .d-lg-inline-block { display: inline-block !important; } + .d-lg-none { display: none !important; } } +@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } + .d-lg-flex { display: flex !important; } + .d-lg-inline { display: inline !important; } + .d-lg-inline-block { display: inline-block !important; } + .d-lg-none { display: none !important; } } +@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } + .d-lg-flex { display: flex !important; } + .d-lg-inline { display: inline !important; } + .d-lg-inline-block { display: inline-block !important; } + .d-lg-none { display: none !important; } } +@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } + .d-xl-flex { display: flex !important; } + .d-xl-inline { display: inline !important; } + .d-xl-inline-block { display: inline-block !important; } + .d-xl-none { display: none !important; } } +@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } + .d-xl-flex { display: flex !important; } + .d-xl-inline { display: inline !important; } + .d-xl-inline-block { display: inline-block !important; } + .d-xl-none { display: none !important; } } +@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } + .d-xl-flex { display: flex !important; } + .d-xl-inline { display: inline !important; } + .d-xl-inline-block { display: inline-block !important; } + .d-xl-none { display: none !important; } } +@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } + .d-xl-flex { display: flex !important; } + .d-xl-inline { display: inline !important; } + .d-xl-inline-block { display: inline-block !important; } + .d-xl-none { display: none !important; } } +@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } + .d-xl-flex { display: flex !important; } + .d-xl-inline { display: inline !important; } + .d-xl-inline-block { display: inline-block !important; } + .d-xl-none { display: none !important; } } +@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } + .d-xl-flex { display: flex !important; } + .d-xl-inline { display: inline !important; } + .d-xl-inline-block { display: inline-block !important; } + .d-xl-none { display: none !important; } } +@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } + .d-xl-flex { display: flex !important; } + .d-xl-inline { display: inline !important; } + .d-xl-inline-block { display: inline-block !important; } + .d-xl-none { display: none !important; } } +@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } + .d-xl-flex { display: flex !important; } + .d-xl-inline { display: inline !important; } + .d-xl-inline-block { display: inline-block !important; } + .d-xl-none { display: none !important; } } +@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } + .d-xl-flex { display: flex !important; } + .d-xl-inline { display: inline !important; } + .d-xl-inline-block { display: inline-block !important; } + .d-xl-none { display: none !important; } } +@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } + .d-xl-flex { display: flex !important; } + .d-xl-inline { display: inline !important; } + .d-xl-inline-block { display: inline-block !important; } + .d-xl-none { display: none !important; } } +@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } + .d-xl-flex { display: flex !important; } + .d-xl-inline { display: inline !important; } + .d-xl-inline-block { display: inline-block !important; } + .d-xl-none { display: none !important; } } +.float-left { float: left !important; } + +.float-right { float: right !important; } + +.flex-justify-start { justify-content: flex-start !important; } + +.flex-justify-end { justify-content: flex-end !important; } + +.flex-justify-between { justify-content: space-between !important; } + +.flex-justify-around { justify-content: space-around !important; } + +.v-align-baseline { vertical-align: baseline !important; } + +.v-align-bottom { vertical-align: bottom !important; } + +.v-align-middle { vertical-align: middle !important; } + +.v-align-text-bottom { vertical-align: text-bottom !important; } + +.v-align-text-top { vertical-align: text-top !important; } + +.v-align-top { vertical-align: top !important; } + +.fs-1 { font-size: 0.5625rem !important; } +@media (min-width: 31.25rem) { .fs-1 { font-size: 0.625rem !important; } } + +.fs-2 { font-size: 0.6875rem !important; } +@media (min-width: 31.25rem) { .fs-2 { font-size: 0.75rem !important; } } + +.fs-3 { font-size: 0.75rem !important; } +@media (min-width: 31.25rem) { .fs-3 { font-size: 0.875rem !important; } } + +.fs-4 { font-size: 0.875rem !important; } +@media (min-width: 31.25rem) { .fs-4 { font-size: 1rem !important; } } + +.fs-5 { font-size: 1rem !important; } +@media (min-width: 31.25rem) { .fs-5 { font-size: 1.125rem !important; } } + +.fs-6 { font-size: 1.125rem !important; } +@media (min-width: 31.25rem) { .fs-6 { font-size: 1.5rem !important; line-height: 1.25; } } + +.fs-7 { font-size: 1.5rem !important; line-height: 1.25; } +@media (min-width: 31.25rem) { .fs-7 { font-size: 2rem !important; } } + +.fs-8 { font-size: 2rem !important; line-height: 1.25; } +@media (min-width: 31.25rem) { .fs-8 { font-size: 2.25rem !important; } } + +.fs-9 { font-size: 2.25rem !important; line-height: 1.25; } +@media (min-width: 31.25rem) { .fs-9 { font-size: 2.625rem !important; } } + +.fs-10 { font-size: 2.625rem !important; line-height: 1.25; } +@media (min-width: 31.25rem) { .fs-10 { font-size: 3rem !important; } } + +.fw-300 { font-weight: 300 !important; } + +.fw-400 { font-weight: 400 !important; } + +.fw-500 { font-weight: 500 !important; } + +.fw-700 { font-weight: 700 !important; } + +.lh-0 { line-height: 0 !important; } + +.lh-default { line-height: 1.4; } + +.lh-tight { line-height: 1.25; } + +.ls-5 { letter-spacing: 0.05em !important; } + +.ls-10 { letter-spacing: 0.1em !important; } + +.ls-0 { letter-spacing: 0 !important; } + +.text-uppercase { text-transform: uppercase !important; } + +.list-style-none { padding: 0 !important; margin: 0 !important; list-style: none !important; } +.list-style-none li::before { display: none !important; } + +.mx-auto { margin-right: auto !important; margin-left: auto !important; } + +.m-0 { margin: 0 !important; } + +.mt-0 { margin-top: 0 !important; } + +.mr-0 { margin-right: 0 !important; } + +.mb-0 { margin-bottom: 0 !important; } + +.ml-0 { margin-left: 0 !important; } + +.mx-0 { margin-right: 0 !important; margin-left: 0 !important; } + +.my-0 { margin-top: 0 !important; margin-bottom: 0 !important; } + +.mxn-0 { margin-right: -0 !important; margin-left: -0 !important; } + +.mx-0-auto { margin-right: auto !important; margin-left: auto !important; } + +.m-1 { margin: 0.25rem !important; } + +.mt-1 { margin-top: 0.25rem !important; } + +.mr-1 { margin-right: 0.25rem !important; } + +.mb-1 { margin-bottom: 0.25rem !important; } + +.ml-1 { margin-left: 0.25rem !important; } + +.mx-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } + +.my-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } + +.mxn-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } + +.mx-1-auto { margin-right: auto !important; margin-left: auto !important; } + +.m-2 { margin: 0.5rem !important; } + +.mt-2 { margin-top: 0.5rem !important; } + +.mr-2 { margin-right: 0.5rem !important; } + +.mb-2 { margin-bottom: 0.5rem !important; } + +.ml-2 { margin-left: 0.5rem !important; } + +.mx-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } + +.my-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } + +.mxn-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } + +.mx-2-auto { margin-right: auto !important; margin-left: auto !important; } + +.m-3 { margin: 0.75rem !important; } + +.mt-3 { margin-top: 0.75rem !important; } + +.mr-3 { margin-right: 0.75rem !important; } + +.mb-3 { margin-bottom: 0.75rem !important; } + +.ml-3 { margin-left: 0.75rem !important; } + +.mx-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } + +.my-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } + +.mxn-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } + +.mx-3-auto { margin-right: auto !important; margin-left: auto !important; } + +.m-4 { margin: 1rem !important; } + +.mt-4 { margin-top: 1rem !important; } + +.mr-4 { margin-right: 1rem !important; } + +.mb-4 { margin-bottom: 1rem !important; } + +.ml-4 { margin-left: 1rem !important; } + +.mx-4 { margin-right: 1rem !important; margin-left: 1rem !important; } + +.my-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } + +.mxn-4 { margin-right: -1rem !important; margin-left: -1rem !important; } + +.mx-4-auto { margin-right: auto !important; margin-left: auto !important; } + +.m-5 { margin: 1.5rem !important; } + +.mt-5 { margin-top: 1.5rem !important; } + +.mr-5 { margin-right: 1.5rem !important; } + +.mb-5 { margin-bottom: 1.5rem !important; } + +.ml-5 { margin-left: 1.5rem !important; } + +.mx-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } + +.my-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } + +.mxn-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } + +.mx-5-auto { margin-right: auto !important; margin-left: auto !important; } + +.m-6 { margin: 2rem !important; } + +.mt-6 { margin-top: 2rem !important; } + +.mr-6 { margin-right: 2rem !important; } + +.mb-6 { margin-bottom: 2rem !important; } + +.ml-6 { margin-left: 2rem !important; } + +.mx-6 { margin-right: 2rem !important; margin-left: 2rem !important; } + +.my-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } + +.mxn-6 { margin-right: -2rem !important; margin-left: -2rem !important; } + +.mx-6-auto { margin-right: auto !important; margin-left: auto !important; } + +.m-7 { margin: 2.5rem !important; } + +.mt-7 { margin-top: 2.5rem !important; } + +.mr-7 { margin-right: 2.5rem !important; } + +.mb-7 { margin-bottom: 2.5rem !important; } + +.ml-7 { margin-left: 2.5rem !important; } + +.mx-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } + +.my-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } + +.mxn-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } + +.mx-7-auto { margin-right: auto !important; margin-left: auto !important; } + +.m-8 { margin: 3rem !important; } + +.mt-8 { margin-top: 3rem !important; } + +.mr-8 { margin-right: 3rem !important; } + +.mb-8 { margin-bottom: 3rem !important; } + +.ml-8 { margin-left: 3rem !important; } + +.mx-8 { margin-right: 3rem !important; margin-left: 3rem !important; } + +.my-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } + +.mxn-8 { margin-right: -3rem !important; margin-left: -3rem !important; } + +.mx-8-auto { margin-right: auto !important; margin-left: auto !important; } + +.m-9 { margin: 3.5rem !important; } + +.mt-9 { margin-top: 3.5rem !important; } + +.mr-9 { margin-right: 3.5rem !important; } + +.mb-9 { margin-bottom: 3.5rem !important; } + +.ml-9 { margin-left: 3.5rem !important; } + +.mx-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } + +.my-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } + +.mxn-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } + +.mx-9-auto { margin-right: auto !important; margin-left: auto !important; } + +.m-10 { margin: 4rem !important; } + +.mt-10 { margin-top: 4rem !important; } + +.mr-10 { margin-right: 4rem !important; } + +.mb-10 { margin-bottom: 4rem !important; } + +.ml-10 { margin-left: 4rem !important; } + +.mx-10 { margin-right: 4rem !important; margin-left: 4rem !important; } + +.my-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } + +.mxn-10 { margin-right: -4rem !important; margin-left: -4rem !important; } + +.mx-10-auto { margin-right: auto !important; margin-left: auto !important; } + +@media (min-width: 20rem) { .m-xs-0 { margin: 0 !important; } + .mt-xs-0 { margin-top: 0 !important; } + .mr-xs-0 { margin-right: 0 !important; } + .mb-xs-0 { margin-bottom: 0 !important; } + .ml-xs-0 { margin-left: 0 !important; } + .mx-xs-0 { margin-right: 0 !important; margin-left: 0 !important; } + .my-xs-0 { margin-top: 0 !important; margin-bottom: 0 !important; } + .mxn-xs-0 { margin-right: -0 !important; margin-left: -0 !important; } } +@media (min-width: 20rem) { .m-xs-1 { margin: 0.25rem !important; } + .mt-xs-1 { margin-top: 0.25rem !important; } + .mr-xs-1 { margin-right: 0.25rem !important; } + .mb-xs-1 { margin-bottom: 0.25rem !important; } + .ml-xs-1 { margin-left: 0.25rem !important; } + .mx-xs-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } + .my-xs-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } + .mxn-xs-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } +@media (min-width: 20rem) { .m-xs-2 { margin: 0.5rem !important; } + .mt-xs-2 { margin-top: 0.5rem !important; } + .mr-xs-2 { margin-right: 0.5rem !important; } + .mb-xs-2 { margin-bottom: 0.5rem !important; } + .ml-xs-2 { margin-left: 0.5rem !important; } + .mx-xs-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } + .my-xs-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } + .mxn-xs-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } +@media (min-width: 20rem) { .m-xs-3 { margin: 0.75rem !important; } + .mt-xs-3 { margin-top: 0.75rem !important; } + .mr-xs-3 { margin-right: 0.75rem !important; } + .mb-xs-3 { margin-bottom: 0.75rem !important; } + .ml-xs-3 { margin-left: 0.75rem !important; } + .mx-xs-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } + .my-xs-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } + .mxn-xs-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } +@media (min-width: 20rem) { .m-xs-4 { margin: 1rem !important; } + .mt-xs-4 { margin-top: 1rem !important; } + .mr-xs-4 { margin-right: 1rem !important; } + .mb-xs-4 { margin-bottom: 1rem !important; } + .ml-xs-4 { margin-left: 1rem !important; } + .mx-xs-4 { margin-right: 1rem !important; margin-left: 1rem !important; } + .my-xs-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } + .mxn-xs-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } +@media (min-width: 20rem) { .m-xs-5 { margin: 1.5rem !important; } + .mt-xs-5 { margin-top: 1.5rem !important; } + .mr-xs-5 { margin-right: 1.5rem !important; } + .mb-xs-5 { margin-bottom: 1.5rem !important; } + .ml-xs-5 { margin-left: 1.5rem !important; } + .mx-xs-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } + .my-xs-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } + .mxn-xs-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } +@media (min-width: 20rem) { .m-xs-6 { margin: 2rem !important; } + .mt-xs-6 { margin-top: 2rem !important; } + .mr-xs-6 { margin-right: 2rem !important; } + .mb-xs-6 { margin-bottom: 2rem !important; } + .ml-xs-6 { margin-left: 2rem !important; } + .mx-xs-6 { margin-right: 2rem !important; margin-left: 2rem !important; } + .my-xs-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } + .mxn-xs-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } +@media (min-width: 20rem) { .m-xs-7 { margin: 2.5rem !important; } + .mt-xs-7 { margin-top: 2.5rem !important; } + .mr-xs-7 { margin-right: 2.5rem !important; } + .mb-xs-7 { margin-bottom: 2.5rem !important; } + .ml-xs-7 { margin-left: 2.5rem !important; } + .mx-xs-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } + .my-xs-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } + .mxn-xs-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } +@media (min-width: 20rem) { .m-xs-8 { margin: 3rem !important; } + .mt-xs-8 { margin-top: 3rem !important; } + .mr-xs-8 { margin-right: 3rem !important; } + .mb-xs-8 { margin-bottom: 3rem !important; } + .ml-xs-8 { margin-left: 3rem !important; } + .mx-xs-8 { margin-right: 3rem !important; margin-left: 3rem !important; } + .my-xs-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } + .mxn-xs-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } +@media (min-width: 20rem) { .m-xs-9 { margin: 3.5rem !important; } + .mt-xs-9 { margin-top: 3.5rem !important; } + .mr-xs-9 { margin-right: 3.5rem !important; } + .mb-xs-9 { margin-bottom: 3.5rem !important; } + .ml-xs-9 { margin-left: 3.5rem !important; } + .mx-xs-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } + .my-xs-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } + .mxn-xs-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } +@media (min-width: 20rem) { .m-xs-10 { margin: 4rem !important; } + .mt-xs-10 { margin-top: 4rem !important; } + .mr-xs-10 { margin-right: 4rem !important; } + .mb-xs-10 { margin-bottom: 4rem !important; } + .ml-xs-10 { margin-left: 4rem !important; } + .mx-xs-10 { margin-right: 4rem !important; margin-left: 4rem !important; } + .my-xs-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } + .mxn-xs-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } +@media (min-width: 31.25rem) { .m-sm-0 { margin: 0 !important; } + .mt-sm-0 { margin-top: 0 !important; } + .mr-sm-0 { margin-right: 0 !important; } + .mb-sm-0 { margin-bottom: 0 !important; } + .ml-sm-0 { margin-left: 0 !important; } + .mx-sm-0 { margin-right: 0 !important; margin-left: 0 !important; } + .my-sm-0 { margin-top: 0 !important; margin-bottom: 0 !important; } + .mxn-sm-0 { margin-right: -0 !important; margin-left: -0 !important; } } +@media (min-width: 31.25rem) { .m-sm-1 { margin: 0.25rem !important; } + .mt-sm-1 { margin-top: 0.25rem !important; } + .mr-sm-1 { margin-right: 0.25rem !important; } + .mb-sm-1 { margin-bottom: 0.25rem !important; } + .ml-sm-1 { margin-left: 0.25rem !important; } + .mx-sm-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } + .my-sm-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } + .mxn-sm-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } +@media (min-width: 31.25rem) { .m-sm-2 { margin: 0.5rem !important; } + .mt-sm-2 { margin-top: 0.5rem !important; } + .mr-sm-2 { margin-right: 0.5rem !important; } + .mb-sm-2 { margin-bottom: 0.5rem !important; } + .ml-sm-2 { margin-left: 0.5rem !important; } + .mx-sm-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } + .my-sm-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } + .mxn-sm-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } +@media (min-width: 31.25rem) { .m-sm-3 { margin: 0.75rem !important; } + .mt-sm-3 { margin-top: 0.75rem !important; } + .mr-sm-3 { margin-right: 0.75rem !important; } + .mb-sm-3 { margin-bottom: 0.75rem !important; } + .ml-sm-3 { margin-left: 0.75rem !important; } + .mx-sm-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } + .my-sm-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } + .mxn-sm-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } +@media (min-width: 31.25rem) { .m-sm-4 { margin: 1rem !important; } + .mt-sm-4 { margin-top: 1rem !important; } + .mr-sm-4 { margin-right: 1rem !important; } + .mb-sm-4 { margin-bottom: 1rem !important; } + .ml-sm-4 { margin-left: 1rem !important; } + .mx-sm-4 { margin-right: 1rem !important; margin-left: 1rem !important; } + .my-sm-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } + .mxn-sm-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } +@media (min-width: 31.25rem) { .m-sm-5 { margin: 1.5rem !important; } + .mt-sm-5 { margin-top: 1.5rem !important; } + .mr-sm-5 { margin-right: 1.5rem !important; } + .mb-sm-5 { margin-bottom: 1.5rem !important; } + .ml-sm-5 { margin-left: 1.5rem !important; } + .mx-sm-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } + .my-sm-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } + .mxn-sm-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } +@media (min-width: 31.25rem) { .m-sm-6 { margin: 2rem !important; } + .mt-sm-6 { margin-top: 2rem !important; } + .mr-sm-6 { margin-right: 2rem !important; } + .mb-sm-6 { margin-bottom: 2rem !important; } + .ml-sm-6 { margin-left: 2rem !important; } + .mx-sm-6 { margin-right: 2rem !important; margin-left: 2rem !important; } + .my-sm-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } + .mxn-sm-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } +@media (min-width: 31.25rem) { .m-sm-7 { margin: 2.5rem !important; } + .mt-sm-7 { margin-top: 2.5rem !important; } + .mr-sm-7 { margin-right: 2.5rem !important; } + .mb-sm-7 { margin-bottom: 2.5rem !important; } + .ml-sm-7 { margin-left: 2.5rem !important; } + .mx-sm-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } + .my-sm-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } + .mxn-sm-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } +@media (min-width: 31.25rem) { .m-sm-8 { margin: 3rem !important; } + .mt-sm-8 { margin-top: 3rem !important; } + .mr-sm-8 { margin-right: 3rem !important; } + .mb-sm-8 { margin-bottom: 3rem !important; } + .ml-sm-8 { margin-left: 3rem !important; } + .mx-sm-8 { margin-right: 3rem !important; margin-left: 3rem !important; } + .my-sm-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } + .mxn-sm-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } +@media (min-width: 31.25rem) { .m-sm-9 { margin: 3.5rem !important; } + .mt-sm-9 { margin-top: 3.5rem !important; } + .mr-sm-9 { margin-right: 3.5rem !important; } + .mb-sm-9 { margin-bottom: 3.5rem !important; } + .ml-sm-9 { margin-left: 3.5rem !important; } + .mx-sm-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } + .my-sm-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } + .mxn-sm-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } +@media (min-width: 31.25rem) { .m-sm-10 { margin: 4rem !important; } + .mt-sm-10 { margin-top: 4rem !important; } + .mr-sm-10 { margin-right: 4rem !important; } + .mb-sm-10 { margin-bottom: 4rem !important; } + .ml-sm-10 { margin-left: 4rem !important; } + .mx-sm-10 { margin-right: 4rem !important; margin-left: 4rem !important; } + .my-sm-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } + .mxn-sm-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } +@media (min-width: 50rem) { .m-md-0 { margin: 0 !important; } + .mt-md-0 { margin-top: 0 !important; } + .mr-md-0 { margin-right: 0 !important; } + .mb-md-0 { margin-bottom: 0 !important; } + .ml-md-0 { margin-left: 0 !important; } + .mx-md-0 { margin-right: 0 !important; margin-left: 0 !important; } + .my-md-0 { margin-top: 0 !important; margin-bottom: 0 !important; } + .mxn-md-0 { margin-right: -0 !important; margin-left: -0 !important; } } +@media (min-width: 50rem) { .m-md-1 { margin: 0.25rem !important; } + .mt-md-1 { margin-top: 0.25rem !important; } + .mr-md-1 { margin-right: 0.25rem !important; } + .mb-md-1 { margin-bottom: 0.25rem !important; } + .ml-md-1 { margin-left: 0.25rem !important; } + .mx-md-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } + .my-md-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } + .mxn-md-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } +@media (min-width: 50rem) { .m-md-2 { margin: 0.5rem !important; } + .mt-md-2 { margin-top: 0.5rem !important; } + .mr-md-2 { margin-right: 0.5rem !important; } + .mb-md-2 { margin-bottom: 0.5rem !important; } + .ml-md-2 { margin-left: 0.5rem !important; } + .mx-md-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } + .my-md-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } + .mxn-md-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } +@media (min-width: 50rem) { .m-md-3 { margin: 0.75rem !important; } + .mt-md-3 { margin-top: 0.75rem !important; } + .mr-md-3 { margin-right: 0.75rem !important; } + .mb-md-3 { margin-bottom: 0.75rem !important; } + .ml-md-3 { margin-left: 0.75rem !important; } + .mx-md-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } + .my-md-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } + .mxn-md-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } +@media (min-width: 50rem) { .m-md-4 { margin: 1rem !important; } + .mt-md-4 { margin-top: 1rem !important; } + .mr-md-4 { margin-right: 1rem !important; } + .mb-md-4 { margin-bottom: 1rem !important; } + .ml-md-4 { margin-left: 1rem !important; } + .mx-md-4 { margin-right: 1rem !important; margin-left: 1rem !important; } + .my-md-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } + .mxn-md-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } +@media (min-width: 50rem) { .m-md-5 { margin: 1.5rem !important; } + .mt-md-5 { margin-top: 1.5rem !important; } + .mr-md-5 { margin-right: 1.5rem !important; } + .mb-md-5 { margin-bottom: 1.5rem !important; } + .ml-md-5 { margin-left: 1.5rem !important; } + .mx-md-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } + .my-md-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } + .mxn-md-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } +@media (min-width: 50rem) { .m-md-6 { margin: 2rem !important; } + .mt-md-6 { margin-top: 2rem !important; } + .mr-md-6 { margin-right: 2rem !important; } + .mb-md-6 { margin-bottom: 2rem !important; } + .ml-md-6 { margin-left: 2rem !important; } + .mx-md-6 { margin-right: 2rem !important; margin-left: 2rem !important; } + .my-md-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } + .mxn-md-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } +@media (min-width: 50rem) { .m-md-7 { margin: 2.5rem !important; } + .mt-md-7 { margin-top: 2.5rem !important; } + .mr-md-7 { margin-right: 2.5rem !important; } + .mb-md-7 { margin-bottom: 2.5rem !important; } + .ml-md-7 { margin-left: 2.5rem !important; } + .mx-md-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } + .my-md-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } + .mxn-md-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } +@media (min-width: 50rem) { .m-md-8 { margin: 3rem !important; } + .mt-md-8 { margin-top: 3rem !important; } + .mr-md-8 { margin-right: 3rem !important; } + .mb-md-8 { margin-bottom: 3rem !important; } + .ml-md-8 { margin-left: 3rem !important; } + .mx-md-8 { margin-right: 3rem !important; margin-left: 3rem !important; } + .my-md-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } + .mxn-md-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } +@media (min-width: 50rem) { .m-md-9 { margin: 3.5rem !important; } + .mt-md-9 { margin-top: 3.5rem !important; } + .mr-md-9 { margin-right: 3.5rem !important; } + .mb-md-9 { margin-bottom: 3.5rem !important; } + .ml-md-9 { margin-left: 3.5rem !important; } + .mx-md-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } + .my-md-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } + .mxn-md-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } +@media (min-width: 50rem) { .m-md-10 { margin: 4rem !important; } + .mt-md-10 { margin-top: 4rem !important; } + .mr-md-10 { margin-right: 4rem !important; } + .mb-md-10 { margin-bottom: 4rem !important; } + .ml-md-10 { margin-left: 4rem !important; } + .mx-md-10 { margin-right: 4rem !important; margin-left: 4rem !important; } + .my-md-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } + .mxn-md-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } +@media (min-width: 66.5rem) { .m-lg-0 { margin: 0 !important; } + .mt-lg-0 { margin-top: 0 !important; } + .mr-lg-0 { margin-right: 0 !important; } + .mb-lg-0 { margin-bottom: 0 !important; } + .ml-lg-0 { margin-left: 0 !important; } + .mx-lg-0 { margin-right: 0 !important; margin-left: 0 !important; } + .my-lg-0 { margin-top: 0 !important; margin-bottom: 0 !important; } + .mxn-lg-0 { margin-right: -0 !important; margin-left: -0 !important; } } +@media (min-width: 66.5rem) { .m-lg-1 { margin: 0.25rem !important; } + .mt-lg-1 { margin-top: 0.25rem !important; } + .mr-lg-1 { margin-right: 0.25rem !important; } + .mb-lg-1 { margin-bottom: 0.25rem !important; } + .ml-lg-1 { margin-left: 0.25rem !important; } + .mx-lg-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } + .my-lg-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } + .mxn-lg-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } +@media (min-width: 66.5rem) { .m-lg-2 { margin: 0.5rem !important; } + .mt-lg-2 { margin-top: 0.5rem !important; } + .mr-lg-2 { margin-right: 0.5rem !important; } + .mb-lg-2 { margin-bottom: 0.5rem !important; } + .ml-lg-2 { margin-left: 0.5rem !important; } + .mx-lg-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } + .my-lg-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } + .mxn-lg-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } +@media (min-width: 66.5rem) { .m-lg-3 { margin: 0.75rem !important; } + .mt-lg-3 { margin-top: 0.75rem !important; } + .mr-lg-3 { margin-right: 0.75rem !important; } + .mb-lg-3 { margin-bottom: 0.75rem !important; } + .ml-lg-3 { margin-left: 0.75rem !important; } + .mx-lg-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } + .my-lg-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } + .mxn-lg-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } +@media (min-width: 66.5rem) { .m-lg-4 { margin: 1rem !important; } + .mt-lg-4 { margin-top: 1rem !important; } + .mr-lg-4 { margin-right: 1rem !important; } + .mb-lg-4 { margin-bottom: 1rem !important; } + .ml-lg-4 { margin-left: 1rem !important; } + .mx-lg-4 { margin-right: 1rem !important; margin-left: 1rem !important; } + .my-lg-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } + .mxn-lg-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } +@media (min-width: 66.5rem) { .m-lg-5 { margin: 1.5rem !important; } + .mt-lg-5 { margin-top: 1.5rem !important; } + .mr-lg-5 { margin-right: 1.5rem !important; } + .mb-lg-5 { margin-bottom: 1.5rem !important; } + .ml-lg-5 { margin-left: 1.5rem !important; } + .mx-lg-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } + .my-lg-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } + .mxn-lg-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } +@media (min-width: 66.5rem) { .m-lg-6 { margin: 2rem !important; } + .mt-lg-6 { margin-top: 2rem !important; } + .mr-lg-6 { margin-right: 2rem !important; } + .mb-lg-6 { margin-bottom: 2rem !important; } + .ml-lg-6 { margin-left: 2rem !important; } + .mx-lg-6 { margin-right: 2rem !important; margin-left: 2rem !important; } + .my-lg-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } + .mxn-lg-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } +@media (min-width: 66.5rem) { .m-lg-7 { margin: 2.5rem !important; } + .mt-lg-7 { margin-top: 2.5rem !important; } + .mr-lg-7 { margin-right: 2.5rem !important; } + .mb-lg-7 { margin-bottom: 2.5rem !important; } + .ml-lg-7 { margin-left: 2.5rem !important; } + .mx-lg-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } + .my-lg-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } + .mxn-lg-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } +@media (min-width: 66.5rem) { .m-lg-8 { margin: 3rem !important; } + .mt-lg-8 { margin-top: 3rem !important; } + .mr-lg-8 { margin-right: 3rem !important; } + .mb-lg-8 { margin-bottom: 3rem !important; } + .ml-lg-8 { margin-left: 3rem !important; } + .mx-lg-8 { margin-right: 3rem !important; margin-left: 3rem !important; } + .my-lg-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } + .mxn-lg-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } +@media (min-width: 66.5rem) { .m-lg-9 { margin: 3.5rem !important; } + .mt-lg-9 { margin-top: 3.5rem !important; } + .mr-lg-9 { margin-right: 3.5rem !important; } + .mb-lg-9 { margin-bottom: 3.5rem !important; } + .ml-lg-9 { margin-left: 3.5rem !important; } + .mx-lg-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } + .my-lg-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } + .mxn-lg-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } +@media (min-width: 66.5rem) { .m-lg-10 { margin: 4rem !important; } + .mt-lg-10 { margin-top: 4rem !important; } + .mr-lg-10 { margin-right: 4rem !important; } + .mb-lg-10 { margin-bottom: 4rem !important; } + .ml-lg-10 { margin-left: 4rem !important; } + .mx-lg-10 { margin-right: 4rem !important; margin-left: 4rem !important; } + .my-lg-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } + .mxn-lg-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } +@media (min-width: 87.5rem) { .m-xl-0 { margin: 0 !important; } + .mt-xl-0 { margin-top: 0 !important; } + .mr-xl-0 { margin-right: 0 !important; } + .mb-xl-0 { margin-bottom: 0 !important; } + .ml-xl-0 { margin-left: 0 !important; } + .mx-xl-0 { margin-right: 0 !important; margin-left: 0 !important; } + .my-xl-0 { margin-top: 0 !important; margin-bottom: 0 !important; } + .mxn-xl-0 { margin-right: -0 !important; margin-left: -0 !important; } } +@media (min-width: 87.5rem) { .m-xl-1 { margin: 0.25rem !important; } + .mt-xl-1 { margin-top: 0.25rem !important; } + .mr-xl-1 { margin-right: 0.25rem !important; } + .mb-xl-1 { margin-bottom: 0.25rem !important; } + .ml-xl-1 { margin-left: 0.25rem !important; } + .mx-xl-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } + .my-xl-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } + .mxn-xl-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } +@media (min-width: 87.5rem) { .m-xl-2 { margin: 0.5rem !important; } + .mt-xl-2 { margin-top: 0.5rem !important; } + .mr-xl-2 { margin-right: 0.5rem !important; } + .mb-xl-2 { margin-bottom: 0.5rem !important; } + .ml-xl-2 { margin-left: 0.5rem !important; } + .mx-xl-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } + .my-xl-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } + .mxn-xl-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } +@media (min-width: 87.5rem) { .m-xl-3 { margin: 0.75rem !important; } + .mt-xl-3 { margin-top: 0.75rem !important; } + .mr-xl-3 { margin-right: 0.75rem !important; } + .mb-xl-3 { margin-bottom: 0.75rem !important; } + .ml-xl-3 { margin-left: 0.75rem !important; } + .mx-xl-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } + .my-xl-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } + .mxn-xl-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } +@media (min-width: 87.5rem) { .m-xl-4 { margin: 1rem !important; } + .mt-xl-4 { margin-top: 1rem !important; } + .mr-xl-4 { margin-right: 1rem !important; } + .mb-xl-4 { margin-bottom: 1rem !important; } + .ml-xl-4 { margin-left: 1rem !important; } + .mx-xl-4 { margin-right: 1rem !important; margin-left: 1rem !important; } + .my-xl-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } + .mxn-xl-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } +@media (min-width: 87.5rem) { .m-xl-5 { margin: 1.5rem !important; } + .mt-xl-5 { margin-top: 1.5rem !important; } + .mr-xl-5 { margin-right: 1.5rem !important; } + .mb-xl-5 { margin-bottom: 1.5rem !important; } + .ml-xl-5 { margin-left: 1.5rem !important; } + .mx-xl-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } + .my-xl-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } + .mxn-xl-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } +@media (min-width: 87.5rem) { .m-xl-6 { margin: 2rem !important; } + .mt-xl-6 { margin-top: 2rem !important; } + .mr-xl-6 { margin-right: 2rem !important; } + .mb-xl-6 { margin-bottom: 2rem !important; } + .ml-xl-6 { margin-left: 2rem !important; } + .mx-xl-6 { margin-right: 2rem !important; margin-left: 2rem !important; } + .my-xl-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } + .mxn-xl-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } +@media (min-width: 87.5rem) { .m-xl-7 { margin: 2.5rem !important; } + .mt-xl-7 { margin-top: 2.5rem !important; } + .mr-xl-7 { margin-right: 2.5rem !important; } + .mb-xl-7 { margin-bottom: 2.5rem !important; } + .ml-xl-7 { margin-left: 2.5rem !important; } + .mx-xl-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } + .my-xl-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } + .mxn-xl-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } +@media (min-width: 87.5rem) { .m-xl-8 { margin: 3rem !important; } + .mt-xl-8 { margin-top: 3rem !important; } + .mr-xl-8 { margin-right: 3rem !important; } + .mb-xl-8 { margin-bottom: 3rem !important; } + .ml-xl-8 { margin-left: 3rem !important; } + .mx-xl-8 { margin-right: 3rem !important; margin-left: 3rem !important; } + .my-xl-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } + .mxn-xl-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } +@media (min-width: 87.5rem) { .m-xl-9 { margin: 3.5rem !important; } + .mt-xl-9 { margin-top: 3.5rem !important; } + .mr-xl-9 { margin-right: 3.5rem !important; } + .mb-xl-9 { margin-bottom: 3.5rem !important; } + .ml-xl-9 { margin-left: 3.5rem !important; } + .mx-xl-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } + .my-xl-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } + .mxn-xl-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } +@media (min-width: 87.5rem) { .m-xl-10 { margin: 4rem !important; } + .mt-xl-10 { margin-top: 4rem !important; } + .mr-xl-10 { margin-right: 4rem !important; } + .mb-xl-10 { margin-bottom: 4rem !important; } + .ml-xl-10 { margin-left: 4rem !important; } + .mx-xl-10 { margin-right: 4rem !important; margin-left: 4rem !important; } + .my-xl-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } + .mxn-xl-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } +.p-0 { padding: 0 !important; } + +.pt-0 { padding-top: 0 !important; } + +.pr-0 { padding-right: 0 !important; } + +.pb-0 { padding-bottom: 0 !important; } + +.pl-0 { padding-left: 0 !important; } + +.px-0 { padding-right: 0 !important; padding-left: 0 !important; } + +.py-0 { padding-top: 0 !important; padding-bottom: 0 !important; } + +.p-1 { padding: 0.25rem !important; } + +.pt-1 { padding-top: 0.25rem !important; } + +.pr-1 { padding-right: 0.25rem !important; } + +.pb-1 { padding-bottom: 0.25rem !important; } + +.pl-1 { padding-left: 0.25rem !important; } + +.px-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } + +.py-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } + +.p-2 { padding: 0.5rem !important; } + +.pt-2 { padding-top: 0.5rem !important; } + +.pr-2 { padding-right: 0.5rem !important; } + +.pb-2 { padding-bottom: 0.5rem !important; } + +.pl-2 { padding-left: 0.5rem !important; } + +.px-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } + +.py-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } + +.p-3 { padding: 0.75rem !important; } + +.pt-3 { padding-top: 0.75rem !important; } + +.pr-3 { padding-right: 0.75rem !important; } + +.pb-3 { padding-bottom: 0.75rem !important; } + +.pl-3 { padding-left: 0.75rem !important; } + +.px-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } + +.py-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } + +.p-4 { padding: 1rem !important; } + +.pt-4 { padding-top: 1rem !important; } + +.pr-4 { padding-right: 1rem !important; } + +.pb-4 { padding-bottom: 1rem !important; } + +.pl-4 { padding-left: 1rem !important; } + +.px-4 { padding-right: 1rem !important; padding-left: 1rem !important; } + +.py-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } + +.p-5 { padding: 1.5rem !important; } + +.pt-5 { padding-top: 1.5rem !important; } + +.pr-5 { padding-right: 1.5rem !important; } + +.pb-5 { padding-bottom: 1.5rem !important; } + +.pl-5 { padding-left: 1.5rem !important; } + +.px-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } + +.py-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } + +.p-6 { padding: 2rem !important; } + +.pt-6 { padding-top: 2rem !important; } + +.pr-6 { padding-right: 2rem !important; } + +.pb-6 { padding-bottom: 2rem !important; } + +.pl-6 { padding-left: 2rem !important; } + +.px-6 { padding-right: 2rem !important; padding-left: 2rem !important; } + +.py-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } + +.p-7 { padding: 2.5rem !important; } + +.pt-7 { padding-top: 2.5rem !important; } + +.pr-7 { padding-right: 2.5rem !important; } + +.pb-7 { padding-bottom: 2.5rem !important; } + +.pl-7 { padding-left: 2.5rem !important; } + +.px-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } + +.py-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } + +.p-8 { padding: 3rem !important; } + +.pt-8 { padding-top: 3rem !important; } + +.pr-8 { padding-right: 3rem !important; } + +.pb-8 { padding-bottom: 3rem !important; } + +.pl-8 { padding-left: 3rem !important; } + +.px-8 { padding-right: 3rem !important; padding-left: 3rem !important; } + +.py-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } + +.p-9 { padding: 3.5rem !important; } + +.pt-9 { padding-top: 3.5rem !important; } + +.pr-9 { padding-right: 3.5rem !important; } + +.pb-9 { padding-bottom: 3.5rem !important; } + +.pl-9 { padding-left: 3.5rem !important; } + +.px-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } + +.py-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } + +.p-10 { padding: 4rem !important; } + +.pt-10 { padding-top: 4rem !important; } + +.pr-10 { padding-right: 4rem !important; } + +.pb-10 { padding-bottom: 4rem !important; } + +.pl-10 { padding-left: 4rem !important; } + +.px-10 { padding-right: 4rem !important; padding-left: 4rem !important; } + +.py-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } + +@media (min-width: 20rem) { .p-xs-0 { padding: 0 !important; } + .pt-xs-0 { padding-top: 0 !important; } + .pr-xs-0 { padding-right: 0 !important; } + .pb-xs-0 { padding-bottom: 0 !important; } + .pl-xs-0 { padding-left: 0 !important; } + .px-xs-0 { padding-right: 0 !important; padding-left: 0 !important; } + .py-xs-0 { padding-top: 0 !important; padding-bottom: 0 !important; } + .p-xs-1 { padding: 0.25rem !important; } + .pt-xs-1 { padding-top: 0.25rem !important; } + .pr-xs-1 { padding-right: 0.25rem !important; } + .pb-xs-1 { padding-bottom: 0.25rem !important; } + .pl-xs-1 { padding-left: 0.25rem !important; } + .px-xs-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } + .py-xs-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } + .p-xs-2 { padding: 0.5rem !important; } + .pt-xs-2 { padding-top: 0.5rem !important; } + .pr-xs-2 { padding-right: 0.5rem !important; } + .pb-xs-2 { padding-bottom: 0.5rem !important; } + .pl-xs-2 { padding-left: 0.5rem !important; } + .px-xs-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } + .py-xs-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } + .p-xs-3 { padding: 0.75rem !important; } + .pt-xs-3 { padding-top: 0.75rem !important; } + .pr-xs-3 { padding-right: 0.75rem !important; } + .pb-xs-3 { padding-bottom: 0.75rem !important; } + .pl-xs-3 { padding-left: 0.75rem !important; } + .px-xs-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } + .py-xs-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } + .p-xs-4 { padding: 1rem !important; } + .pt-xs-4 { padding-top: 1rem !important; } + .pr-xs-4 { padding-right: 1rem !important; } + .pb-xs-4 { padding-bottom: 1rem !important; } + .pl-xs-4 { padding-left: 1rem !important; } + .px-xs-4 { padding-right: 1rem !important; padding-left: 1rem !important; } + .py-xs-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } + .p-xs-5 { padding: 1.5rem !important; } + .pt-xs-5 { padding-top: 1.5rem !important; } + .pr-xs-5 { padding-right: 1.5rem !important; } + .pb-xs-5 { padding-bottom: 1.5rem !important; } + .pl-xs-5 { padding-left: 1.5rem !important; } + .px-xs-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } + .py-xs-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } + .p-xs-6 { padding: 2rem !important; } + .pt-xs-6 { padding-top: 2rem !important; } + .pr-xs-6 { padding-right: 2rem !important; } + .pb-xs-6 { padding-bottom: 2rem !important; } + .pl-xs-6 { padding-left: 2rem !important; } + .px-xs-6 { padding-right: 2rem !important; padding-left: 2rem !important; } + .py-xs-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } + .p-xs-7 { padding: 2.5rem !important; } + .pt-xs-7 { padding-top: 2.5rem !important; } + .pr-xs-7 { padding-right: 2.5rem !important; } + .pb-xs-7 { padding-bottom: 2.5rem !important; } + .pl-xs-7 { padding-left: 2.5rem !important; } + .px-xs-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } + .py-xs-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } + .p-xs-8 { padding: 3rem !important; } + .pt-xs-8 { padding-top: 3rem !important; } + .pr-xs-8 { padding-right: 3rem !important; } + .pb-xs-8 { padding-bottom: 3rem !important; } + .pl-xs-8 { padding-left: 3rem !important; } + .px-xs-8 { padding-right: 3rem !important; padding-left: 3rem !important; } + .py-xs-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } + .p-xs-9 { padding: 3.5rem !important; } + .pt-xs-9 { padding-top: 3.5rem !important; } + .pr-xs-9 { padding-right: 3.5rem !important; } + .pb-xs-9 { padding-bottom: 3.5rem !important; } + .pl-xs-9 { padding-left: 3.5rem !important; } + .px-xs-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } + .py-xs-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } + .p-xs-10 { padding: 4rem !important; } + .pt-xs-10 { padding-top: 4rem !important; } + .pr-xs-10 { padding-right: 4rem !important; } + .pb-xs-10 { padding-bottom: 4rem !important; } + .pl-xs-10 { padding-left: 4rem !important; } + .px-xs-10 { padding-right: 4rem !important; padding-left: 4rem !important; } + .py-xs-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } +@media (min-width: 31.25rem) { .p-sm-0 { padding: 0 !important; } + .pt-sm-0 { padding-top: 0 !important; } + .pr-sm-0 { padding-right: 0 !important; } + .pb-sm-0 { padding-bottom: 0 !important; } + .pl-sm-0 { padding-left: 0 !important; } + .px-sm-0 { padding-right: 0 !important; padding-left: 0 !important; } + .py-sm-0 { padding-top: 0 !important; padding-bottom: 0 !important; } + .p-sm-1 { padding: 0.25rem !important; } + .pt-sm-1 { padding-top: 0.25rem !important; } + .pr-sm-1 { padding-right: 0.25rem !important; } + .pb-sm-1 { padding-bottom: 0.25rem !important; } + .pl-sm-1 { padding-left: 0.25rem !important; } + .px-sm-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } + .py-sm-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } + .p-sm-2 { padding: 0.5rem !important; } + .pt-sm-2 { padding-top: 0.5rem !important; } + .pr-sm-2 { padding-right: 0.5rem !important; } + .pb-sm-2 { padding-bottom: 0.5rem !important; } + .pl-sm-2 { padding-left: 0.5rem !important; } + .px-sm-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } + .py-sm-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } + .p-sm-3 { padding: 0.75rem !important; } + .pt-sm-3 { padding-top: 0.75rem !important; } + .pr-sm-3 { padding-right: 0.75rem !important; } + .pb-sm-3 { padding-bottom: 0.75rem !important; } + .pl-sm-3 { padding-left: 0.75rem !important; } + .px-sm-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } + .py-sm-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } + .p-sm-4 { padding: 1rem !important; } + .pt-sm-4 { padding-top: 1rem !important; } + .pr-sm-4 { padding-right: 1rem !important; } + .pb-sm-4 { padding-bottom: 1rem !important; } + .pl-sm-4 { padding-left: 1rem !important; } + .px-sm-4 { padding-right: 1rem !important; padding-left: 1rem !important; } + .py-sm-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } + .p-sm-5 { padding: 1.5rem !important; } + .pt-sm-5 { padding-top: 1.5rem !important; } + .pr-sm-5 { padding-right: 1.5rem !important; } + .pb-sm-5 { padding-bottom: 1.5rem !important; } + .pl-sm-5 { padding-left: 1.5rem !important; } + .px-sm-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } + .py-sm-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } + .p-sm-6 { padding: 2rem !important; } + .pt-sm-6 { padding-top: 2rem !important; } + .pr-sm-6 { padding-right: 2rem !important; } + .pb-sm-6 { padding-bottom: 2rem !important; } + .pl-sm-6 { padding-left: 2rem !important; } + .px-sm-6 { padding-right: 2rem !important; padding-left: 2rem !important; } + .py-sm-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } + .p-sm-7 { padding: 2.5rem !important; } + .pt-sm-7 { padding-top: 2.5rem !important; } + .pr-sm-7 { padding-right: 2.5rem !important; } + .pb-sm-7 { padding-bottom: 2.5rem !important; } + .pl-sm-7 { padding-left: 2.5rem !important; } + .px-sm-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } + .py-sm-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } + .p-sm-8 { padding: 3rem !important; } + .pt-sm-8 { padding-top: 3rem !important; } + .pr-sm-8 { padding-right: 3rem !important; } + .pb-sm-8 { padding-bottom: 3rem !important; } + .pl-sm-8 { padding-left: 3rem !important; } + .px-sm-8 { padding-right: 3rem !important; padding-left: 3rem !important; } + .py-sm-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } + .p-sm-9 { padding: 3.5rem !important; } + .pt-sm-9 { padding-top: 3.5rem !important; } + .pr-sm-9 { padding-right: 3.5rem !important; } + .pb-sm-9 { padding-bottom: 3.5rem !important; } + .pl-sm-9 { padding-left: 3.5rem !important; } + .px-sm-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } + .py-sm-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } + .p-sm-10 { padding: 4rem !important; } + .pt-sm-10 { padding-top: 4rem !important; } + .pr-sm-10 { padding-right: 4rem !important; } + .pb-sm-10 { padding-bottom: 4rem !important; } + .pl-sm-10 { padding-left: 4rem !important; } + .px-sm-10 { padding-right: 4rem !important; padding-left: 4rem !important; } + .py-sm-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } +@media (min-width: 50rem) { .p-md-0 { padding: 0 !important; } + .pt-md-0 { padding-top: 0 !important; } + .pr-md-0 { padding-right: 0 !important; } + .pb-md-0 { padding-bottom: 0 !important; } + .pl-md-0 { padding-left: 0 !important; } + .px-md-0 { padding-right: 0 !important; padding-left: 0 !important; } + .py-md-0 { padding-top: 0 !important; padding-bottom: 0 !important; } + .p-md-1 { padding: 0.25rem !important; } + .pt-md-1 { padding-top: 0.25rem !important; } + .pr-md-1 { padding-right: 0.25rem !important; } + .pb-md-1 { padding-bottom: 0.25rem !important; } + .pl-md-1 { padding-left: 0.25rem !important; } + .px-md-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } + .py-md-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } + .p-md-2 { padding: 0.5rem !important; } + .pt-md-2 { padding-top: 0.5rem !important; } + .pr-md-2 { padding-right: 0.5rem !important; } + .pb-md-2 { padding-bottom: 0.5rem !important; } + .pl-md-2 { padding-left: 0.5rem !important; } + .px-md-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } + .py-md-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } + .p-md-3 { padding: 0.75rem !important; } + .pt-md-3 { padding-top: 0.75rem !important; } + .pr-md-3 { padding-right: 0.75rem !important; } + .pb-md-3 { padding-bottom: 0.75rem !important; } + .pl-md-3 { padding-left: 0.75rem !important; } + .px-md-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } + .py-md-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } + .p-md-4 { padding: 1rem !important; } + .pt-md-4 { padding-top: 1rem !important; } + .pr-md-4 { padding-right: 1rem !important; } + .pb-md-4 { padding-bottom: 1rem !important; } + .pl-md-4 { padding-left: 1rem !important; } + .px-md-4 { padding-right: 1rem !important; padding-left: 1rem !important; } + .py-md-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } + .p-md-5 { padding: 1.5rem !important; } + .pt-md-5 { padding-top: 1.5rem !important; } + .pr-md-5 { padding-right: 1.5rem !important; } + .pb-md-5 { padding-bottom: 1.5rem !important; } + .pl-md-5 { padding-left: 1.5rem !important; } + .px-md-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } + .py-md-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } + .p-md-6 { padding: 2rem !important; } + .pt-md-6 { padding-top: 2rem !important; } + .pr-md-6 { padding-right: 2rem !important; } + .pb-md-6 { padding-bottom: 2rem !important; } + .pl-md-6 { padding-left: 2rem !important; } + .px-md-6 { padding-right: 2rem !important; padding-left: 2rem !important; } + .py-md-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } + .p-md-7 { padding: 2.5rem !important; } + .pt-md-7 { padding-top: 2.5rem !important; } + .pr-md-7 { padding-right: 2.5rem !important; } + .pb-md-7 { padding-bottom: 2.5rem !important; } + .pl-md-7 { padding-left: 2.5rem !important; } + .px-md-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } + .py-md-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } + .p-md-8 { padding: 3rem !important; } + .pt-md-8 { padding-top: 3rem !important; } + .pr-md-8 { padding-right: 3rem !important; } + .pb-md-8 { padding-bottom: 3rem !important; } + .pl-md-8 { padding-left: 3rem !important; } + .px-md-8 { padding-right: 3rem !important; padding-left: 3rem !important; } + .py-md-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } + .p-md-9 { padding: 3.5rem !important; } + .pt-md-9 { padding-top: 3.5rem !important; } + .pr-md-9 { padding-right: 3.5rem !important; } + .pb-md-9 { padding-bottom: 3.5rem !important; } + .pl-md-9 { padding-left: 3.5rem !important; } + .px-md-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } + .py-md-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } + .p-md-10 { padding: 4rem !important; } + .pt-md-10 { padding-top: 4rem !important; } + .pr-md-10 { padding-right: 4rem !important; } + .pb-md-10 { padding-bottom: 4rem !important; } + .pl-md-10 { padding-left: 4rem !important; } + .px-md-10 { padding-right: 4rem !important; padding-left: 4rem !important; } + .py-md-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } +@media (min-width: 66.5rem) { .p-lg-0 { padding: 0 !important; } + .pt-lg-0 { padding-top: 0 !important; } + .pr-lg-0 { padding-right: 0 !important; } + .pb-lg-0 { padding-bottom: 0 !important; } + .pl-lg-0 { padding-left: 0 !important; } + .px-lg-0 { padding-right: 0 !important; padding-left: 0 !important; } + .py-lg-0 { padding-top: 0 !important; padding-bottom: 0 !important; } + .p-lg-1 { padding: 0.25rem !important; } + .pt-lg-1 { padding-top: 0.25rem !important; } + .pr-lg-1 { padding-right: 0.25rem !important; } + .pb-lg-1 { padding-bottom: 0.25rem !important; } + .pl-lg-1 { padding-left: 0.25rem !important; } + .px-lg-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } + .py-lg-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } + .p-lg-2 { padding: 0.5rem !important; } + .pt-lg-2 { padding-top: 0.5rem !important; } + .pr-lg-2 { padding-right: 0.5rem !important; } + .pb-lg-2 { padding-bottom: 0.5rem !important; } + .pl-lg-2 { padding-left: 0.5rem !important; } + .px-lg-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } + .py-lg-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } + .p-lg-3 { padding: 0.75rem !important; } + .pt-lg-3 { padding-top: 0.75rem !important; } + .pr-lg-3 { padding-right: 0.75rem !important; } + .pb-lg-3 { padding-bottom: 0.75rem !important; } + .pl-lg-3 { padding-left: 0.75rem !important; } + .px-lg-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } + .py-lg-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } + .p-lg-4 { padding: 1rem !important; } + .pt-lg-4 { padding-top: 1rem !important; } + .pr-lg-4 { padding-right: 1rem !important; } + .pb-lg-4 { padding-bottom: 1rem !important; } + .pl-lg-4 { padding-left: 1rem !important; } + .px-lg-4 { padding-right: 1rem !important; padding-left: 1rem !important; } + .py-lg-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } + .p-lg-5 { padding: 1.5rem !important; } + .pt-lg-5 { padding-top: 1.5rem !important; } + .pr-lg-5 { padding-right: 1.5rem !important; } + .pb-lg-5 { padding-bottom: 1.5rem !important; } + .pl-lg-5 { padding-left: 1.5rem !important; } + .px-lg-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } + .py-lg-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } + .p-lg-6 { padding: 2rem !important; } + .pt-lg-6 { padding-top: 2rem !important; } + .pr-lg-6 { padding-right: 2rem !important; } + .pb-lg-6 { padding-bottom: 2rem !important; } + .pl-lg-6 { padding-left: 2rem !important; } + .px-lg-6 { padding-right: 2rem !important; padding-left: 2rem !important; } + .py-lg-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } + .p-lg-7 { padding: 2.5rem !important; } + .pt-lg-7 { padding-top: 2.5rem !important; } + .pr-lg-7 { padding-right: 2.5rem !important; } + .pb-lg-7 { padding-bottom: 2.5rem !important; } + .pl-lg-7 { padding-left: 2.5rem !important; } + .px-lg-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } + .py-lg-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } + .p-lg-8 { padding: 3rem !important; } + .pt-lg-8 { padding-top: 3rem !important; } + .pr-lg-8 { padding-right: 3rem !important; } + .pb-lg-8 { padding-bottom: 3rem !important; } + .pl-lg-8 { padding-left: 3rem !important; } + .px-lg-8 { padding-right: 3rem !important; padding-left: 3rem !important; } + .py-lg-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } + .p-lg-9 { padding: 3.5rem !important; } + .pt-lg-9 { padding-top: 3.5rem !important; } + .pr-lg-9 { padding-right: 3.5rem !important; } + .pb-lg-9 { padding-bottom: 3.5rem !important; } + .pl-lg-9 { padding-left: 3.5rem !important; } + .px-lg-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } + .py-lg-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } + .p-lg-10 { padding: 4rem !important; } + .pt-lg-10 { padding-top: 4rem !important; } + .pr-lg-10 { padding-right: 4rem !important; } + .pb-lg-10 { padding-bottom: 4rem !important; } + .pl-lg-10 { padding-left: 4rem !important; } + .px-lg-10 { padding-right: 4rem !important; padding-left: 4rem !important; } + .py-lg-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } +@media (min-width: 87.5rem) { .p-xl-0 { padding: 0 !important; } + .pt-xl-0 { padding-top: 0 !important; } + .pr-xl-0 { padding-right: 0 !important; } + .pb-xl-0 { padding-bottom: 0 !important; } + .pl-xl-0 { padding-left: 0 !important; } + .px-xl-0 { padding-right: 0 !important; padding-left: 0 !important; } + .py-xl-0 { padding-top: 0 !important; padding-bottom: 0 !important; } + .p-xl-1 { padding: 0.25rem !important; } + .pt-xl-1 { padding-top: 0.25rem !important; } + .pr-xl-1 { padding-right: 0.25rem !important; } + .pb-xl-1 { padding-bottom: 0.25rem !important; } + .pl-xl-1 { padding-left: 0.25rem !important; } + .px-xl-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } + .py-xl-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } + .p-xl-2 { padding: 0.5rem !important; } + .pt-xl-2 { padding-top: 0.5rem !important; } + .pr-xl-2 { padding-right: 0.5rem !important; } + .pb-xl-2 { padding-bottom: 0.5rem !important; } + .pl-xl-2 { padding-left: 0.5rem !important; } + .px-xl-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } + .py-xl-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } + .p-xl-3 { padding: 0.75rem !important; } + .pt-xl-3 { padding-top: 0.75rem !important; } + .pr-xl-3 { padding-right: 0.75rem !important; } + .pb-xl-3 { padding-bottom: 0.75rem !important; } + .pl-xl-3 { padding-left: 0.75rem !important; } + .px-xl-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } + .py-xl-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } + .p-xl-4 { padding: 1rem !important; } + .pt-xl-4 { padding-top: 1rem !important; } + .pr-xl-4 { padding-right: 1rem !important; } + .pb-xl-4 { padding-bottom: 1rem !important; } + .pl-xl-4 { padding-left: 1rem !important; } + .px-xl-4 { padding-right: 1rem !important; padding-left: 1rem !important; } + .py-xl-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } + .p-xl-5 { padding: 1.5rem !important; } + .pt-xl-5 { padding-top: 1.5rem !important; } + .pr-xl-5 { padding-right: 1.5rem !important; } + .pb-xl-5 { padding-bottom: 1.5rem !important; } + .pl-xl-5 { padding-left: 1.5rem !important; } + .px-xl-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } + .py-xl-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } + .p-xl-6 { padding: 2rem !important; } + .pt-xl-6 { padding-top: 2rem !important; } + .pr-xl-6 { padding-right: 2rem !important; } + .pb-xl-6 { padding-bottom: 2rem !important; } + .pl-xl-6 { padding-left: 2rem !important; } + .px-xl-6 { padding-right: 2rem !important; padding-left: 2rem !important; } + .py-xl-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } + .p-xl-7 { padding: 2.5rem !important; } + .pt-xl-7 { padding-top: 2.5rem !important; } + .pr-xl-7 { padding-right: 2.5rem !important; } + .pb-xl-7 { padding-bottom: 2.5rem !important; } + .pl-xl-7 { padding-left: 2.5rem !important; } + .px-xl-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } + .py-xl-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } + .p-xl-8 { padding: 3rem !important; } + .pt-xl-8 { padding-top: 3rem !important; } + .pr-xl-8 { padding-right: 3rem !important; } + .pb-xl-8 { padding-bottom: 3rem !important; } + .pl-xl-8 { padding-left: 3rem !important; } + .px-xl-8 { padding-right: 3rem !important; padding-left: 3rem !important; } + .py-xl-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } + .p-xl-9 { padding: 3.5rem !important; } + .pt-xl-9 { padding-top: 3.5rem !important; } + .pr-xl-9 { padding-right: 3.5rem !important; } + .pb-xl-9 { padding-bottom: 3.5rem !important; } + .pl-xl-9 { padding-left: 3.5rem !important; } + .px-xl-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } + .py-xl-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } + .p-xl-10 { padding: 4rem !important; } + .pt-xl-10 { padding-top: 4rem !important; } + .pr-xl-10 { padding-right: 4rem !important; } + .pb-xl-10 { padding-bottom: 4rem !important; } + .pl-xl-10 { padding-left: 4rem !important; } + .px-xl-10 { padding-right: 4rem !important; padding-left: 4rem !important; } + .py-xl-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } +@media print { .site-footer, .site-button, #edit-this-page, #back-to-top, .site-nav, .main-header { display: none !important; } + .side-bar { width: 100%; height: auto; border-right: 0 !important; } + .site-header { border-bottom: 1px solid #44434d; } + .site-title { font-size: 1rem !important; font-weight: 700 !important; } + .text-small { font-size: 8pt !important; } + pre.highlight { border: 1px solid #44434d; } + .main { max-width: none; margin-left: 0; } } +a.skip-to-main { left: -999px; position: absolute; top: auto; width: 1px; height: 1px; overflow: hidden; z-index: -999; } + +a.skip-to-main:focus, a.skip-to-main:active { color: #2c84fa; background-color: #27262b; left: auto; top: auto; width: 30%; height: auto; overflow: auto; margin: 10px 35%; padding: 5px; border-radius: 15px; border: 4px solid #264caf; text-align: center; font-size: 1.2em; z-index: 999; } + +div.opaque { background-color: #27262b; } + +p.note, blockquote.note { background: #2ce5b5; border-left: 4px solid #f5f7f9; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); padding: .8rem; } +p.note > .note-title, blockquote.note > .note-title { color: #f5f7f9; display: block; font-weight: bold; text-transform: uppercase; font-size: .75em; padding-bottom: .125rem; } + +p.note-title, blockquote.note-title { background: #2ce5b5; border-left: 4px solid #f5f7f9; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); padding: .8rem; } +p.note-title > p:first-child, blockquote.note-title > p:first-child { margin-top: 0; margin-bottom: 0; color: #f5f7f9; display: block; font-weight: bold; text-transform: uppercase; font-size: .75em; padding-bottom: .125rem; } + +blockquote.note { margin-left: 0; margin-right: 0; } +blockquote.note > p:first-child { margin-top: 0; } +blockquote.note > p:last-child { margin-bottom: 0; } + +blockquote.note-title { margin-left: 0; margin-right: 0; } +blockquote.note-title > p:nth-child(2) { margin-top: 0; } +blockquote.note-title > p:last-child { margin-bottom: 0; } + +p.warning, blockquote.warning { background: rgba(221, 46, 46, 0.2); border-left: 4px solid #f77e7e; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); padding: .8rem; } +p.warning::before, blockquote.warning::before { color: #f77e7e; content: "⚠️ Warning ⚠️"; display: block; font-weight: bold; text-transform: uppercase; font-size: .75em; padding-bottom: .125rem; } +p.warning > .warning-title, blockquote.warning > .warning-title { color: #f77e7e; display: block; font-weight: bold; text-transform: uppercase; font-size: .75em; padding-bottom: .125rem; } + +p.warning-title, blockquote.warning-title { background: rgba(221, 46, 46, 0.2); border-left: 4px solid #f77e7e; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); padding: .8rem; } +p.warning-title > p:first-child, blockquote.warning-title > p:first-child { margin-top: 0; margin-bottom: 0; color: #f77e7e; display: block; font-weight: bold; text-transform: uppercase; font-size: .75em; padding-bottom: .125rem; } + +blockquote.warning { margin-left: 0; margin-right: 0; } +blockquote.warning > p:first-child { margin-top: 0; } +blockquote.warning > p:last-child { margin-bottom: 0; } + +blockquote.warning-title { margin-left: 0; margin-right: 0; } +blockquote.warning-title > p:nth-child(2) { margin-top: 0; } +blockquote.warning-title > p:last-child { margin-bottom: 0; } + +p.tip, blockquote.tip { background: rgba(2, 110, 87, 0.2); border-left: 4px solid #41d693; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); padding: .8rem; } +p.tip > .tip-title, blockquote.tip > .tip-title { color: #41d693; display: block; font-weight: bold; text-transform: uppercase; font-size: .75em; padding-bottom: .125rem; } + +p.tip-title, blockquote.tip-title { background: rgba(2, 110, 87, 0.2); border-left: 4px solid #41d693; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); padding: .8rem; } +p.tip-title > p:first-child, blockquote.tip-title > p:first-child { margin-top: 0; margin-bottom: 0; color: #41d693; display: block; font-weight: bold; text-transform: uppercase; font-size: .75em; padding-bottom: .125rem; } + +blockquote.tip { margin-left: 0; margin-right: 0; } +blockquote.tip > p:first-child { margin-top: 0; } +blockquote.tip > p:last-child { margin-bottom: 0; } + +blockquote.tip-title { margin-left: 0; margin-right: 0; } +blockquote.tip-title > p:nth-child(2) { margin-top: 0; } +blockquote.tip-title > p:last-child { margin-bottom: 0; } + +p.fubar, blockquote.fubar { background: rgba(56, 24, 133, 0.2); border-left: 4px solid #7253ed; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); padding: .8rem; } +p.fubar > .fubar-title, blockquote.fubar > .fubar-title { color: #7253ed; display: block; font-weight: bold; text-transform: uppercase; font-size: .75em; padding-bottom: .125rem; } + +p.fubar-title, blockquote.fubar-title { background: rgba(56, 24, 133, 0.2); border-left: 4px solid #7253ed; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); padding: .8rem; } +p.fubar-title > p:first-child, blockquote.fubar-title > p:first-child { margin-top: 0; margin-bottom: 0; color: #7253ed; display: block; font-weight: bold; text-transform: uppercase; font-size: .75em; padding-bottom: .125rem; } + +blockquote.fubar { margin-left: 0; margin-right: 0; } +blockquote.fubar > p:first-child { margin-top: 0; } +blockquote.fubar > p:last-child { margin-bottom: 0; } + +blockquote.fubar-title { margin-left: 0; margin-right: 0; } +blockquote.fubar-title > p:nth-child(2) { margin-top: 0; } +blockquote.fubar-title > p:last-child { margin-bottom: 0; } + +@font-face { font-family: GalanoGrotesque-ExtraLight; src: local(GalanoGrotesque-ExtraLight), url("../fonts/Rene Bieder - Galano Grotesque ExtraLight.otf"); } +@font-face { font-family: GalanoGrotesque; src: local(GalanoGrotesque-Regular), url("../fonts/Rene Bieder - Galano Grotesque.otf"); } +@font-face { font-family: GalanoGrotesque-Bold; src: local(GalanoGrotesque-Bold), url("../fonts/Rene Bieder - Galano Grotesque Bold.otf"); } +@font-face { font-family: GalanoGrotesque-Medium; src: local(Rene-Bieder-Galano-Grotesque-Medium), url("../fonts/Rene Bieder - Galano Grotesque Medium.otf"); } +html { scroll-padding-top: 90px; } + +body { font-family: GalanoGrotesque; color: #000000; } +body .body-wrapper, body footer { display: flex; } +body .body-wrapper .main, body .body-wrapper .footer-main, body footer .main, body footer .footer-main { width: 75%; max-width: 75%; margin-left: 0; float: right; position: relative; } +body .body-wrapper .main .main-content-wrap, body .body-wrapper .footer-main .main-content-wrap, body footer .main .main-content-wrap, body footer .footer-main .main-content-wrap { max-width: 1300px; padding: 80px; } +body .body-wrapper .side-bar, body .body-wrapper .footer-sidebar, body footer .side-bar, body footer .footer-sidebar { width: 25%; max-width: 25%; position: relative; height: auto; background-color: #f5f7f9; } +body a { color: #279890; } +body p, body li { font-family: GalanoGrotesque; font-size: 1em; } +body h1 { margin-top: 40px !important; font-family: GalanoGrotesque-Medium; font-size: 42px !important; color: #000000; } +body h2 { margin-top: 40px !important; font-size: 28px !important; font-family: GalanoGrotesque-Medium; } +body h2#table-of-contents { font-family: GalanoGrotesque-Medium; color: #ffffff; font-size: 14px !important; } +body h3 { margin-top: 25px !important; font-size: 18px; font-weight: 600; font-family: GalanoGrotesque-Medium; } +body h4 { margin-top: 25px !important; font-size: 16px; font-weight: 600; font-family: GalanoGrotesque-Medium; } +body .text-delta { text-transform: none; width: 100%; display: block; background-color: #279890; color: #ffffff; border-radius: 2px 2px 0 0; font-size: 14px !important; padding: 10px 15px 8px 15px; } +body .text-delta + ul { background-color: #f5f7f9; width: 100%; border: none; margin-top: 0; border-radius: 0; position: relative; top: -3px; padding: 15px 25px 15px 25px; } +body .text-delta + ul li { text-decoration: underline; } +body .text-delta + ul li::before { content: none; } +body .text-delta + ul li a:hover { background-image: none; } +body .text-delta + ul li a { white-space: normal; } +body #markdown-toc { background-color: #f5f7f9; width: 100%; border: none; margin-top: 0; border-radius: 0; position: relative; top: -3px; padding: 15px 25px 15px 25px; } +body #markdown-toc li::before { display: none; } +body #markdown-toc li a { color: #279890; font-size: 1em; background-image: none; white-space: normal; } +body #markdown-toc li a:hover { background-image: none; color: #279890; } +body #markdown-toc li ol, body #markdown-toc li ul { border: none; } +body #markdown-toc li ol li a, body #markdown-toc li ul li a { padding-bottom: 0; } +body div.highlighter-rouge pre.highlight { padding: 10px; } +body .highlight code { background-color: transparent; } +body .btn { padding: 6px 14px; color: #2f3433; font-family: GalanoGrotesque; border-radius: 4px; background: #ffffff; border: solid 2px #2f3433; box-shadow: none; } +body .btn:hover { border-color: #279890; color: #279890; background: #ffffff; } +body .btn-green { font-size: 16px; line-height: 1.63; letter-spacing: 0.05px; color: #ffffff; background-color: #279890; border: 2px solid #279890; } +body .btn-green:hover { background-color: #ffffff; color: #279890; } +body .main-content h1:hover a.anchor-heading, body .main-content h2:hover a.anchor-heading, body .main-content h3:hover a.anchor-heading, body .main-content h4:hover a.anchor-heading, body .main-content h5:hover a.anchor-heading, body .main-content h6:hover a.anchor-heading { left: -1.7rem; background-image: url("../../assets/icons/anchor.svg"); width: 24px; height: 24px; background-repeat: no-repeat; background-size: contain; background-position: center center; } +body .main-content h1:hover a.anchor-heading svg, body .main-content h2:hover a.anchor-heading svg, body .main-content h3:hover a.anchor-heading svg, body .main-content h4:hover a.anchor-heading svg, body .main-content h5:hover a.anchor-heading svg, body .main-content h6:hover a.anchor-heading svg { display: none; } +body .main-content h1:hover a.anchor-heading:hover, body .main-content h2:hover a.anchor-heading:hover, body .main-content h3:hover a.anchor-heading:hover, body .main-content h4:hover a.anchor-heading:hover, body .main-content h5:hover a.anchor-heading:hover, body .main-content h6:hover a.anchor-heading:hover { background-image: url("../../assets/icons/anchor green.svg"); } +body .main-content .toc-block { display: table-cell; } + +.main .main-header, .side-bar .site-header { background-color: white; height: 80px; max-height: 80px; min-height: 80px; border: 0; position: fixed; z-index: 2; } + +.main .main-header { width: 75%; } +.main .main-header nav.aux-nav { width: 100%; padding: 0; max-width: 1080px; } +.main .main-header nav.aux-nav .aux-nav-list { justify-content: flex-end; padding: 20px 80px; } +.main .main-header nav.aux-nav .aux-nav-list .aux-nav-list-item a.site-button { font-size: 16px; line-height: 1.63; letter-spacing: 0.05px; color: #000000; margin: 0 4px; } +.main .main-header nav.aux-nav .aux-nav-list .aux-nav-list-item a.site-button:hover { background-image: none; } +.main .main-header nav.aux-nav .aux-nav-list .aux-nav-list-item:hover a, .main .main-header nav.aux-nav .aux-nav-list .aux-nav-list-item.active a { color: #279890; } +.main .main-header nav.aux-nav .aux-nav-list .aux-nav-list-item.button a.site-button { font-size: 16px; line-height: 1.63; letter-spacing: 0.05px; color: #ffffff; margin: 0 0 0 20px; padding: 18px; border-radius: 6px; background-color: #f24886; border: 2px solid #f24886; } +.main .main-header nav.aux-nav .aux-nav-list .aux-nav-list-item.button a.site-button:hover { background-color: #b62d55; border: 2px solid #b62d55; color: #ffffff; } + +.side-bar:after { content: ' '; position: fixed; width: 100vw; top: 80px; box-shadow: 0 0 6px 2px rgba(0, 0, 0, 0.23); left: 0; right: 0; z-index: 0; } + +.side-bar .site-header { width: 25%; justify-content: flex-end; top: 0; } +.side-bar .site-header a.site-title { max-width: 290px; padding: 0; } +.side-bar .site-header a.site-title .site-logo { width: 150px; height: inherit; } +.side-bar .site-header a.site-title:hover { background-image: none; background-color: transparent; } + +.site-logo { width: 135px; height: 30px; } + +.side-bar { padding: 80px 0; border: 0; display: block; z-index: 1; } +.side-bar nav.site-nav, .side-bar nav.aux-nav { padding: 0; width: 100%; display: initial; } +.side-bar nav.site-nav .nav-list, .side-bar nav.site-nav .aux-nav-list, .side-bar nav.aux-nav .nav-list, .side-bar nav.aux-nav .aux-nav-list { width: 100%; padding: 0; margin-top: 30px; } +.side-bar nav.site-nav .nav-list .nav-list-item, .side-bar nav.site-nav .nav-list .aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .nav-list-item, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item, .side-bar nav.aux-nav .nav-list .nav-list-item, .side-bar nav.aux-nav .nav-list .aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .nav-list-item, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item { padding: 0; } +.side-bar nav.site-nav .nav-list .nav-list-item:hover, .side-bar nav.site-nav .nav-list .aux-nav-list-item:hover, .side-bar nav.site-nav .aux-nav-list .nav-list-item:hover, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item:hover, .side-bar nav.aux-nav .nav-list .nav-list-item:hover, .side-bar nav.aux-nav .nav-list .aux-nav-list-item:hover, .side-bar nav.aux-nav .aux-nav-list .nav-list-item:hover, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item:hover { background-color: #ffffff; } +.side-bar nav.site-nav .nav-list .nav-list-item.active:hover, .side-bar nav.site-nav .nav-list .aux-nav-list-item.active:hover, .side-bar nav.site-nav .aux-nav-list .nav-list-item.active:hover, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item.active:hover, .side-bar nav.aux-nav .nav-list .nav-list-item.active:hover, .side-bar nav.aux-nav .nav-list .aux-nav-list-item.active:hover, .side-bar nav.aux-nav .aux-nav-list .nav-list-item.active:hover, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item.active:hover { background-color: transparent; } +.side-bar nav.site-nav .nav-list .nav-list-item.active .nav_list li, .side-bar nav.site-nav .nav-list .aux-nav-list-item.active .nav_list li, .side-bar nav.site-nav .aux-nav-list .nav-list-item.active .nav_list li, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item.active .nav_list li, .side-bar nav.aux-nav .nav-list .nav-list-item.active .nav_list li, .side-bar nav.aux-nav .nav-list .aux-nav-list-item.active .nav_list li, .side-bar nav.aux-nav .aux-nav-list .nav-list-item.active .nav_list li, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item.active .nav_list li { padding-right: 0; padding-left: 0; } +.side-bar nav.site-nav .nav-list .nav-list-item.active .nav_list li:hover, .side-bar nav.site-nav .nav-list .aux-nav-list-item.active .nav_list li:hover, .side-bar nav.site-nav .aux-nav-list .nav-list-item.active .nav_list li:hover, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item.active .nav_list li:hover, .side-bar nav.aux-nav .nav-list .nav-list-item.active .nav_list li:hover, .side-bar nav.aux-nav .nav-list .aux-nav-list-item.active .nav_list li:hover, .side-bar nav.aux-nav .aux-nav-list .nav-list-item.active .nav_list li:hover, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item.active .nav_list li:hover { background-color: #ffffff; } +.side-bar nav.site-nav .nav-list .nav-list-item.header, .side-bar nav.site-nav .nav-list .aux-nav-list-item.header, .side-bar nav.site-nav .aux-nav-list .nav-list-item.header, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item.header, .side-bar nav.aux-nav .nav-list .nav-list-item.header, .side-bar nav.aux-nav .nav-list .aux-nav-list-item.header, .side-bar nav.aux-nav .aux-nav-list .nav-list-item.header, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item.header { padding: 12px 40px 12px calc(100% - 290px); color: #279890; font-family: GalanoGrotesque-Bold; font-size: 18px !important; letter-spacing: 1.1px; } +.side-bar nav.site-nav .nav-list .nav-list-item.header:hover, .side-bar nav.site-nav .nav-list .aux-nav-list-item.header:hover, .side-bar nav.site-nav .aux-nav-list .nav-list-item.header:hover, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item.header:hover, .side-bar nav.aux-nav .nav-list .nav-list-item.header:hover, .side-bar nav.aux-nav .nav-list .aux-nav-list-item.header:hover, .side-bar nav.aux-nav .aux-nav-list .nav-list-item.header:hover, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item.header:hover { background-color: transparent; background-image: none; } +.side-bar nav.site-nav .nav-list .nav-list-item.header:not(:first-of-type), .side-bar nav.site-nav .nav-list .aux-nav-list-item.header:not(:first-of-type), .side-bar nav.site-nav .aux-nav-list .nav-list-item.header:not(:first-of-type), .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item.header:not(:first-of-type), .side-bar nav.aux-nav .nav-list .nav-list-item.header:not(:first-of-type), .side-bar nav.aux-nav .nav-list .aux-nav-list-item.header:not(:first-of-type), .side-bar nav.aux-nav .aux-nav-list .nav-list-item.header:not(:first-of-type), .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item.header:not(:first-of-type) { padding-top: 36px; border-top: 1px solid #dadada; margin-top: 20px; } +.side-bar nav.site-nav .nav-list .nav-list-item a.nav-list-link, .side-bar nav.site-nav .nav-list .aux-nav-list-item a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .nav-list-item a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item a.nav-list-link, .side-bar nav.aux-nav .nav-list .nav-list-item a.nav-list-link, .side-bar nav.aux-nav .nav-list .aux-nav-list-item a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .nav-list-item a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item a.nav-list-link { padding: 12px 40px 12px calc(100% - 290px); font-size: 14px !important; color: #576489; font-family: GalanoGrotesque; letter-spacing: 1.1px; } +.side-bar nav.site-nav .nav-list .nav-list-item a.nav-list-link.active, .side-bar nav.site-nav .nav-list .nav-list-item a.nav-list-link:hover, .side-bar nav.site-nav .nav-list .aux-nav-list-item a.nav-list-link.active, .side-bar nav.site-nav .nav-list .aux-nav-list-item a.nav-list-link:hover, .side-bar nav.site-nav .aux-nav-list .nav-list-item a.nav-list-link.active, .side-bar nav.site-nav .aux-nav-list .nav-list-item a.nav-list-link:hover, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item a.nav-list-link.active, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item a.nav-list-link:hover, .side-bar nav.aux-nav .nav-list .nav-list-item a.nav-list-link.active, .side-bar nav.aux-nav .nav-list .nav-list-item a.nav-list-link:hover, .side-bar nav.aux-nav .nav-list .aux-nav-list-item a.nav-list-link.active, .side-bar nav.aux-nav .nav-list .aux-nav-list-item a.nav-list-link:hover, .side-bar nav.aux-nav .aux-nav-list .nav-list-item a.nav-list-link.active, .side-bar nav.aux-nav .aux-nav-list .nav-list-item a.nav-list-link:hover, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item a.nav-list-link.active, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item a.nav-list-link:hover { background-color: #ffffff; background-image: none; } +.side-bar nav.site-nav .nav-list .nav-list-item a.nav-list-link.active, .side-bar nav.site-nav .nav-list .aux-nav-list-item a.nav-list-link.active, .side-bar nav.site-nav .aux-nav-list .nav-list-item a.nav-list-link.active, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item a.nav-list-link.active, .side-bar nav.aux-nav .nav-list .nav-list-item a.nav-list-link.active, .side-bar nav.aux-nav .nav-list .aux-nav-list-item a.nav-list-link.active, .side-bar nav.aux-nav .aux-nav-list .nav-list-item a.nav-list-link.active, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item a.nav-list-link.active { font-family: GalanoGrotesque-Medium !important; color: #279890 !important; } +.side-bar nav.site-nav .nav-list .nav-list-item .nav-list-expander, .side-bar nav.site-nav .nav-list .aux-nav-list-item .nav-list-expander, .side-bar nav.site-nav .aux-nav-list .nav-list-item .nav-list-expander, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .nav-list-expander, .side-bar nav.aux-nav .nav-list .nav-list-item .nav-list-expander, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .nav-list-expander, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .nav-list-expander, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .nav-list-expander { right: 40px; width: 22px; height: 22px; padding: 0; margin: 14px 0 0 0; } +.side-bar nav.site-nav .nav-list .nav-list-item .nav-list-expander svg, .side-bar nav.site-nav .nav-list .aux-nav-list-item .nav-list-expander svg, .side-bar nav.site-nav .aux-nav-list .nav-list-item .nav-list-expander svg, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .nav-list-expander svg, .side-bar nav.aux-nav .nav-list .nav-list-item .nav-list-expander svg, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .nav-list-expander svg, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .nav-list-expander svg, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .nav-list-expander svg { color: #000000; } +.side-bar nav.site-nav .nav-list .nav-list-item .nav-list-expander:hover, .side-bar nav.site-nav .nav-list .aux-nav-list-item .nav-list-expander:hover, .side-bar nav.site-nav .aux-nav-list .nav-list-item .nav-list-expander:hover, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .nav-list-expander:hover, .side-bar nav.aux-nav .nav-list .nav-list-item .nav-list-expander:hover, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .nav-list-expander:hover, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .nav-list-expander:hover, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .nav-list-expander:hover { background-color: none; background-image: none; } +.side-bar nav.site-nav .nav-list .nav-list-item .nav-list, .side-bar nav.site-nav .nav-list .nav-list-item .aux-nav-list, .side-bar nav.site-nav .nav-list .aux-nav-list-item .nav-list, .side-bar nav.site-nav .nav-list .aux-nav-list-item .aux-nav-list, .side-bar nav.site-nav .aux-nav-list .nav-list-item .nav-list, .side-bar nav.site-nav .aux-nav-list .nav-list-item .aux-nav-list, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .nav-list, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .aux-nav-list, .side-bar nav.aux-nav .nav-list .nav-list-item .nav-list, .side-bar nav.aux-nav .nav-list .nav-list-item .aux-nav-list, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .nav-list, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .aux-nav-list, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .nav-list, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .aux-nav-list, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .nav-list, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .aux-nav-list { margin-top: 0; } +.side-bar nav.site-nav .nav-list .nav-list-item .nav-list a.nav-list-link, .side-bar nav.site-nav .nav-list .nav-list-item .nav-list a.aux-nav-list-item, .side-bar nav.site-nav .nav-list .nav-list-item .aux-nav-list a.nav-list-link, .side-bar nav.site-nav .nav-list .nav-list-item .aux-nav-list a.aux-nav-list-item, .side-bar nav.site-nav .nav-list .aux-nav-list-item .nav-list a.nav-list-link, .side-bar nav.site-nav .nav-list .aux-nav-list-item .nav-list a.aux-nav-list-item, .side-bar nav.site-nav .nav-list .aux-nav-list-item .aux-nav-list a.nav-list-link, .side-bar nav.site-nav .nav-list .aux-nav-list-item .aux-nav-list a.aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .nav-list-item .nav-list a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .nav-list-item .nav-list a.aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .nav-list-item .aux-nav-list a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .nav-list-item .aux-nav-list a.aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .nav-list a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .nav-list a.aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .aux-nav-list a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .aux-nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .nav-list .nav-list-item .nav-list a.nav-list-link, .side-bar nav.aux-nav .nav-list .nav-list-item .nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .nav-list .nav-list-item .aux-nav-list a.nav-list-link, .side-bar nav.aux-nav .nav-list .nav-list-item .aux-nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .nav-list a.nav-list-link, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .aux-nav-list a.nav-list-link, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .aux-nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .nav-list a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .aux-nav-list a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .aux-nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .nav-list a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .aux-nav-list a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .aux-nav-list a.aux-nav-list-item { margin-left: 20px; font-size: 13px !important; letter-spacing: 0.05px; } +.side-bar nav.site-nav .nav-list .nav-list-item .nav-list .nav-list a.nav-list-link, .side-bar nav.site-nav .nav-list .nav-list-item .nav-list .nav-list a.aux-nav-list-item, .side-bar nav.site-nav .nav-list .nav-list-item .nav-list .aux-nav-list a.nav-list-link, .side-bar nav.site-nav .nav-list .nav-list-item .nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.site-nav .nav-list .nav-list-item .aux-nav-list .nav-list a.nav-list-link, .side-bar nav.site-nav .nav-list .nav-list-item .aux-nav-list .nav-list a.aux-nav-list-item, .side-bar nav.site-nav .nav-list .nav-list-item .aux-nav-list .aux-nav-list a.nav-list-link, .side-bar nav.site-nav .nav-list .nav-list-item .aux-nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.site-nav .nav-list .aux-nav-list-item .nav-list .nav-list a.nav-list-link, .side-bar nav.site-nav .nav-list .aux-nav-list-item .nav-list .nav-list a.aux-nav-list-item, .side-bar nav.site-nav .nav-list .aux-nav-list-item .nav-list .aux-nav-list a.nav-list-link, .side-bar nav.site-nav .nav-list .aux-nav-list-item .nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.site-nav .nav-list .aux-nav-list-item .aux-nav-list .nav-list a.nav-list-link, .side-bar nav.site-nav .nav-list .aux-nav-list-item .aux-nav-list .nav-list a.aux-nav-list-item, .side-bar nav.site-nav .nav-list .aux-nav-list-item .aux-nav-list .aux-nav-list a.nav-list-link, .side-bar nav.site-nav .nav-list .aux-nav-list-item .aux-nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .nav-list-item .nav-list .nav-list a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .nav-list-item .nav-list .nav-list a.aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .nav-list-item .nav-list .aux-nav-list a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .nav-list-item .nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .nav-list-item .aux-nav-list .nav-list a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .nav-list-item .aux-nav-list .nav-list a.aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .nav-list-item .aux-nav-list .aux-nav-list a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .nav-list-item .aux-nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .nav-list .nav-list a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .nav-list .nav-list a.aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .nav-list .aux-nav-list a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .aux-nav-list .nav-list a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .aux-nav-list .nav-list a.aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .aux-nav-list .aux-nav-list a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .aux-nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .nav-list .nav-list-item .nav-list .nav-list a.nav-list-link, .side-bar nav.aux-nav .nav-list .nav-list-item .nav-list .nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .nav-list .nav-list-item .nav-list .aux-nav-list a.nav-list-link, .side-bar nav.aux-nav .nav-list .nav-list-item .nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .nav-list .nav-list-item .aux-nav-list .nav-list a.nav-list-link, .side-bar nav.aux-nav .nav-list .nav-list-item .aux-nav-list .nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .nav-list .nav-list-item .aux-nav-list .aux-nav-list a.nav-list-link, .side-bar nav.aux-nav .nav-list .nav-list-item .aux-nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .nav-list .nav-list a.nav-list-link, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .nav-list .nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .nav-list .aux-nav-list a.nav-list-link, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .aux-nav-list .nav-list a.nav-list-link, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .aux-nav-list .nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .aux-nav-list .aux-nav-list a.nav-list-link, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .aux-nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .nav-list .nav-list a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .nav-list .nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .nav-list .aux-nav-list a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .aux-nav-list .nav-list a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .aux-nav-list .nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .aux-nav-list .aux-nav-list a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .aux-nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .nav-list .nav-list a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .nav-list .nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .nav-list .aux-nav-list a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .aux-nav-list .nav-list a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .aux-nav-list .nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .aux-nav-list .aux-nav-list a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .aux-nav-list .aux-nav-list a.aux-nav-list-item { margin-left: 30px; color: #949494; font-size: 12px !important; } +.side-bar nav.site-nav .nav-version, .side-bar nav.aux-nav .nav-version { display: flex; align-items: center; justify-content: center; padding: 12px 40px 12px calc(100% - 290px); text-transform: none; } +.side-bar nav.site-nav .nav-version select, .side-bar nav.aux-nav .nav-version select { height: 2em; margin: 0 0 0 10px; flex-grow: 1; } +.side-bar nav.site-nav .search, .side-bar nav.aux-nav .search { margin-top: 35px; margin-left: calc(100% - 290px); margin-right: 40px; max-width: 250px !important; max-height: 40px !important; width: 250px !important; z-index: 1; } +.side-bar nav.site-nav .search .search-input, .side-bar nav.aux-nav .search .search-input { background-color: #f5f7f9; border: 1px solid #dadada; border-radius: 6px; color: #6e7171; font-family: GalanoGrotesque-Medium; } +.side-bar nav.site-nav .search .search-input:focus, .side-bar nav.site-nav .search .search-input:active, .side-bar nav.aux-nav .search .search-input:focus, .side-bar nav.aux-nav .search .search-input:active { background-color: #f5f7f9; color: #6e7171; } +.side-bar nav.site-nav .search .search-input .search-icon, .side-bar nav.aux-nav .search .search-input .search-icon { color: #949494; } +.side-bar nav.site-nav .search .search-input:focus + .search-label .search-icon, .side-bar nav.aux-nav .search .search-input:focus + .search-label .search-icon { color: #949494; } +.side-bar nav.site-nav .mobile-menu, .side-bar nav.aux-nav .mobile-menu { display: none; } + +.label { text-transform: none !important; margin-left: 0 !important; margin-right: 0 !important; } + +.search-active .main { position: inherit; right: inherit; left: inherit; } + +.search-overlay { display: none; } + +.search-result-doc .search-result-icon { color: #279890; } + +footer { height: 360px; } +footer .footer-main { padding: 80px; } +footer .footer-main ul { list-style: none; padding: 0; margin: 0; } +footer .footer-main ul li { display: inline-block; padding: 0; margin: 0; } +footer .footer-main .row { display: flex; } +footer .footer-main .row .left { width: 70%; } +footer .footer-main .row .right { width: 30%; display: flex; justify-content: flex-end; } +footer .footer-main .row .site-title { padding: 0; margin-bottom: 30px; } +footer .footer-main .row .site-title .site-logo { height: 45px; } +footer .footer-main .row .footer-links li { margin-right: 40px; } +footer .footer-main .row .footer-links li a { padding: 0; color: #000000; font-size: 18px; } +footer .footer-main .row .footer-links li a:hover { color: #279890; } +footer .footer-main .row .footer-social li a, footer .footer-main .row .bottom-footer-links li a { padding: 0 15px; font-size: 16px; color: #949494; } +footer .footer-main .row .footer-social li a:last-of-type, footer .footer-main .row .bottom-footer-links li a:last-of-type { padding-right: 0; } +footer .footer-main .row .footer-social li a:hover, footer .footer-main .row .bottom-footer-links li a:hover { color: #279890; } +footer .footer-main .row .footer-social li a img.hover { display: none; } +footer .footer-main .row .footer-social li a:hover img.no-hover { display: none; } +footer .footer-main .row .footer-social li a:hover img.hover { display: block; } +footer .footer-main .top-border { padding-top: 30px; margin-top: 30px; border-top: 1px solid #dadada; } +footer .footer-main a:hover { background-color: transparent !important; background-image: none !important; } +footer .footer-sidebar { z-index: -1; } + +@media (max-width: 799px) { body { padding-bottom: 0; } + body .body-wrapper { display: block; } + body .body-wrapper .side-bar { width: 100%; max-width: 100%; padding: 0; } + body .body-wrapper .side-bar .site-header { width: 100%; flex-direction: row-reverse; justify-content: flex-end; } + body .body-wrapper .side-bar .site-header .site-button { padding: 11px 30px 0; width: 24px; height: 24px; background-repeat: no-repeat; background-size: auto; background-position: center center; background-image: url("../../assets/icons/menu.svg"); } + body .body-wrapper .side-bar .site-header .site-button:hover, body .body-wrapper .side-bar .site-header .site-button:active, body .body-wrapper .side-bar .site-header .site-button:focus { background-color: transparent; } + body .body-wrapper .side-bar .site-header .site-button.nav-open { background-image: url("../../assets/icons/close.svg"); } + body .body-wrapper .side-bar .site-header .site-button svg { display: none; } + body .body-wrapper .side-bar nav { display: none; overflow: scroll; background: white; } + body .body-wrapper .side-bar nav.nav-open { display: block; position: fixed; top: 0; height: 100vh; } + body .body-wrapper .side-bar nav.nav-open .search { position: relative; margin-top: 120px; margin-left: 30px; margin-right: 30px; padding: 0; } + body .body-wrapper .side-bar nav.nav-open .search .search-results { display: block !important; max-height: 60vh !important; } + body .body-wrapper .side-bar nav.nav-open .search .search-input { background-color: #ffffff; } + body .body-wrapper .side-bar nav.nav-open .search .search-input-wrap { box-shadow: none; } + body .body-wrapper .side-bar nav.nav-open .nav-list .nav-list-item, body .body-wrapper .side-bar nav.nav-open .nav-list .aux-nav-list-item, body .body-wrapper .side-bar nav.nav-open .aux-nav-list .nav-list-item, body .body-wrapper .side-bar nav.nav-open .aux-nav-list .aux-nav-list-item { padding-left: 30px !important; padding-right: 30px !important; } + body .body-wrapper .side-bar nav.nav-open .nav-list .nav-list-item a, body .body-wrapper .side-bar nav.nav-open .nav-list .aux-nav-list-item a, body .body-wrapper .side-bar nav.nav-open .aux-nav-list .nav-list-item a, body .body-wrapper .side-bar nav.nav-open .aux-nav-list .aux-nav-list-item a { padding-left: 0 !important; padding-right: 0 !important; } + body .body-wrapper .side-bar nav.nav-open .nav-list .nav-list-item a.active, body .body-wrapper .side-bar nav.nav-open .nav-list .aux-nav-list-item a.active, body .body-wrapper .side-bar nav.nav-open .aux-nav-list .nav-list-item a.active, body .body-wrapper .side-bar nav.nav-open .aux-nav-list .aux-nav-list-item a.active { background: unset; } + body .body-wrapper .side-bar nav.nav-open .nav-list .nav-list, body .body-wrapper .side-bar nav.nav-open .aux-nav-list .nav-list { margin-top: 0; } + body .body-wrapper .side-bar nav.nav-open .nav-list .nav-list a.nav-list-link, body .body-wrapper .side-bar nav.nav-open .aux-nav-list .nav-list a.nav-list-link { text-indent: 0; } + body .body-wrapper .side-bar nav.nav-open .mobile-menu { display: block; border-top: 1px solid #dadada; margin-top: 18px; padding-bottom: 80px; } + body .body-wrapper .side-bar nav.nav-open .mobile-menu nav { display: block; } + body .body-wrapper .side-bar nav.nav-open .mobile-menu nav .aux-nav-list { flex-direction: column; } + body .body-wrapper .side-bar nav.nav-open .mobile-menu nav .aux-nav-list a.site-button { font-size: 18px !important; color: #000000; } + body .body-wrapper .side-bar nav.nav-open .mobile-menu nav .aux-nav-list .button .site-button { border-radius: 6px; border: solid 2px #279890; background-color: #ffffff; color: #279890; padding: 10px 20px !important; display: inline-block; margin-top: 10px; } + body .body-wrapper .main { width: 100%; max-width: 100%; float: none; } + body .body-wrapper .main .main-header { display: none; } + body .body-wrapper .main .main-content a { white-space: normal; } + body .body-wrapper .main .main-content-wrap { padding: 80px 30px; } + body footer { border-top: 1px solid #dadada; height: auto; } + body footer .footer-sidebar { display: none; } + body footer .footer-main { width: 100%; max-width: 100%; padding: 60px 30px; float: none; } + body footer .footer-main .row { flex-direction: column; } + body footer .footer-main .row .right, body footer .footer-main .row .left { width: 100%; display: block; } + body footer .footer-main .row .site-title { margin-bottom: 40px; } + body footer .footer-main .row .footer-links { display: flex; flex-wrap: wrap; margin-bottom: 20px; } + body footer .footer-main .row .footer-links li { margin: 0 0 30px; width: 50%; } + body footer .footer-main .row .footer-social { width: 100%; display: flex; justify-content: space-between; } + body footer .footer-main .row .footer-social li a { padding: 0; } + body footer .footer-main .row .footer-social li a img { width: 34px; height: 34px; } + body footer .footer-main .row .bottom-footer-links li { display: block; margin-top: 30px; } + body footer .footer-main .row .bottom-footer-links li a { padding: 0; } + body footer .footer-main .row .top-border { padding-top: 40px; margin-top: 40px; } } +.copy-code-container { position: absolute; right: 0.3em; } + +.copy-code-button { align-items: center; justify-content: center; border: none; cursor: pointer; font-size: 1rem; color: #000000; padding: 0.4em 0.5em; background-color: transparent; outline: none; } +.copy-code-button:hover { color: #279890 !important; } + +.highlighter-rouge { position: relative; } + +.language-shell.highlighter-rouge pre.highlight::before, .language-sh.highlighter-rouge pre.highlight::before, .language-bash.highlighter-rouge pre.highlight::before { content: "$ "; color: #000000; font-weight: 400; font-family: monospace; font-size: 0.75em; } + +th, td { background-color: transparent; } + +.main-content ul.ui-tabs-nav > li::before { content: ""; } + +.tabs { background: transparent; } +.tabs.ui-widget .copy-code-button { font-family: "Font Awesome 6 Free" !important; } + +.tabs .ui-widget-header { background: transparent; border: none; border-bottom: 1px solid #d3d3d3; -moz-border-radius: 0px; -webkit-border-radius: 0px; border-radius: 0px; } + +.tabs .ui-tabs-nav .ui-state-default { background: transparent; border: none; } + +.tabs .ui-tabs-nav .ui-state-active { border: none; } + +.tabs .ui-tabs-nav .ui-state-default a { color: #c0c0c0; } + +.tabs .ui-tabs-nav .ui-state-active a { color: #279890; } + +/*overridden*/ +div.highlighter-rouge { border-radius: 4px; } +div.highlighter-rouge:hover > button { cursor: pointer; opacity: 0.5; } + +.highlighter-rouge button.copy-code-button { color: #000000; } + +/* Tooltip container */ +.tooltip { position: relative; display: inline-block; border-bottom: 0; } +.tooltip > a, .tooltip span { text-decoration: underline; text-decoration-style: dotted; background-image: none; } +.tooltip .tooltiptext { visibility: hidden; text-decoration: none; background-color: #2ce5b5; color: #000000; padding: 10px 20px; border-radius: 6px; position: absolute; z-index: 1; width: 400px; top: 100%; left: 50%; margin-left: -200px; } +.tooltip:hover .tooltiptext { visibility: visible; } +.tooltip .tooltiptext::after { content: " "; position: absolute; color: #2ce5b5; bottom: 100%; /* At the top of the tooltip */ left: 50%; margin-left: -5px; border-width: 5px; border-style: solid; border-color: transparent transparent #2ce5b5 transparent; } + +.ui-dialog-titlebar { display: none; } + +.feedback-container { position: sticky; top: 180px; z-index: 9999; } +@media (max-width: 1024px) { .feedback-container { display: none; } } +.feedback-container .feedback-buttons { position: absolute; right: 70px; margin-bottom: 20px; top: -55px; } +.feedback-container .feedback-buttons .tooltiptext { font-size: small; width: 150px; margin-left: -75px; text-align: center; } +.feedback-container .feedback-buttons .page-helpful-btn { background: none !important; border-radius: 50%; border: solid #279890 2px; color: #279890; height: 40px; width: 40px; margin: 0 3px; cursor: pointer; } +.feedback-container .feedback-buttons .page-helpful-btn:focus-visible { outline: none; } + +#is-helpful-ty { display: none; } +#is-helpful-ty a { color: #279890 !important; } + +.badge { padding: 2px 4px; background: #ffddec; text-transform: uppercase; text-align: center; border-radius: 6px; font-size: x-small; } + +.quickstart-steps { padding: 10px; } +.quickstart-steps img { width: 50px; height: 50px; } + +.row { display: flex; flex-direction: row; } + +.col { display: flex; flex-direction: column; justify-content: center; margin-bottom: 0.3em; } +.col.step-num { margin-right: 20px; } +.col.step-num > img { width: 40px; } + +img.quickstart { box-shadow: 3px 3px 1px #ccc; border-width: thin; border-color: black; border-style: ridge; } + +.breadcrumb-nav { margin-top: 1rem; } diff --git a/v1.46/assets/css/just-the-docs-default.css b/v1.46/assets/css/just-the-docs-default.css new file mode 100644 index 000000000..333b8f650 --- /dev/null +++ b/v1.46/assets/css/just-the-docs-default.css @@ -0,0 +1,2562 @@ +@charset "UTF-8"; +@import url("pygments/igorpro.css"); +.highlight, pre.highlight { background: #f9f9f9; color: #383942; } + +.highlight pre { background: #f9f9f9; } + +.highlight .hll { background: #f9f9f9; } + +.highlight .c { color: #9fa0a6; font-style: italic; } + +.highlight .err { color: #fff; background-color: #e05151; } + +.highlight .k { color: #a625a4; } + +.highlight .l { color: #50a04f; } + +.highlight .n { color: #383942; } + +.highlight .o { color: #383942; } + +.highlight .p { color: #383942; } + +.highlight .cm { color: #9fa0a6; font-style: italic; } + +.highlight .cp { color: #9fa0a6; font-style: italic; } + +.highlight .c1 { color: #9fa0a6; font-style: italic; } + +.highlight .cs { color: #9fa0a6; font-style: italic; } + +.highlight .ge { font-style: italic; } + +.highlight .gs { font-weight: 700; } + +.highlight .kc { color: #a625a4; } + +.highlight .kd { color: #a625a4; } + +.highlight .kn { color: #a625a4; } + +.highlight .kp { color: #a625a4; } + +.highlight .kr { color: #a625a4; } + +.highlight .kt { color: #a625a4; } + +.highlight .ld { color: #50a04f; } + +.highlight .m { color: #b66a00; } + +.highlight .s { color: #50a04f; } + +.highlight .na { color: #b66a00; } + +.highlight .nb { color: #ca7601; } + +.highlight .nc { color: #ca7601; } + +.highlight .no { color: #ca7601; } + +.highlight .nd { color: #ca7601; } + +.highlight .ni { color: #ca7601; } + +.highlight .ne { color: #ca7601; } + +.highlight .nf { color: #383942; } + +.highlight .nl { color: #ca7601; } + +.highlight .nn { color: #383942; } + +.highlight .nx { color: #383942; } + +.highlight .py { color: #ca7601; } + +.highlight .nt { color: #e35549; } + +.highlight .nv { color: #ca7601; } + +.highlight .ow { font-weight: 700; } + +.highlight .w { color: #f8f8f2; } + +.highlight .mf { color: #b66a00; } + +.highlight .mh { color: #b66a00; } + +.highlight .mi { color: #b66a00; } + +.highlight .mo { color: #b66a00; } + +.highlight .sb { color: #50a04f; } + +.highlight .sc { color: #50a04f; } + +.highlight .sd { color: #50a04f; } + +.highlight .s2 { color: #50a04f; } + +.highlight .se { color: #50a04f; } + +.highlight .sh { color: #50a04f; } + +.highlight .si { color: #50a04f; } + +.highlight .sx { color: #50a04f; } + +.highlight .sr { color: #0083bb; } + +.highlight .s1 { color: #50a04f; } + +.highlight .ss { color: #0083bb; } + +.highlight .bp { color: #ca7601; } + +.highlight .vc { color: #ca7601; } + +.highlight .vg { color: #ca7601; } + +.highlight .vi { color: #e35549; } + +.highlight .il { color: #b66a00; } + +.highlight .gu { color: #75715e; } + +.highlight .gd { color: #e05151; } + +.highlight .gi { color: #43d089; } + +.highlight .language-json .w + .s2 { color: #e35549; } + +.highlight .language-json .kc { color: #0083bb; } + +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ +/* Document ========================================================================== */ +/** 1. Correct the line height in all browsers. 2. Prevent adjustments of font size after orientation changes in iOS. */ +html { line-height: 1.15; /* 1 */ -webkit-text-size-adjust: 100%; /* 2 */ } + +/* Sections ========================================================================== */ +/** Remove the margin in all browsers. */ +body { margin: 0; } + +/** Render the `main` element consistently in IE. */ +main { display: block; } + +/** Correct the font size and margin on `h1` elements within `section` and `article` contexts in Chrome, Firefox, and Safari. */ +h1 { font-size: 2em; margin: 0.67em 0; } + +/* Grouping content ========================================================================== */ +/** 1. Add the correct box sizing in Firefox. 2. Show the overflow in Edge and IE. */ +hr { box-sizing: content-box; /* 1 */ height: 0; /* 1 */ overflow: visible; /* 2 */ } + +/** 1. Correct the inheritance and scaling of font size in all browsers. 2. Correct the odd `em` font sizing in all browsers. */ +pre { font-family: monospace, monospace; /* 1 */ font-size: 1em; /* 2 */ } + +/* Text-level semantics ========================================================================== */ +/** Remove the gray background on active links in IE 10. */ +a { background-color: transparent; } + +/** 1. Remove the bottom border in Chrome 57- 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. */ +abbr[title] { border-bottom: none; /* 1 */ text-decoration: underline; /* 2 */ text-decoration: underline dotted; /* 2 */ } + +/** Add the correct font weight in Chrome, Edge, and Safari. */ +b, strong { font-weight: bolder; } + +/** 1. Correct the inheritance and scaling of font size in all browsers. 2. Correct the odd `em` font sizing in all browsers. */ +code, kbd, samp { font-family: monospace, monospace; /* 1 */ font-size: 1em; /* 2 */ } + +/** Add the correct font size in all browsers. */ +small { font-size: 80%; } + +/** Prevent `sub` and `sup` elements from affecting the line height in all browsers. */ +sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } + +sub { bottom: -0.25em; } + +sup { top: -0.5em; } + +/* Embedded content ========================================================================== */ +/** Remove the border on images inside links in IE 10. */ +img { border-style: none; } + +/* Forms ========================================================================== */ +/** 1. Change the font styles in all browsers. 2. Remove the margin in Firefox and Safari. */ +button, input, optgroup, select, textarea { font-family: inherit; /* 1 */ font-size: 100%; /* 1 */ line-height: 1.15; /* 1 */ margin: 0; /* 2 */ } + +/** Show the overflow in IE. 1. Show the overflow in Edge. */ +button, input { /* 1 */ overflow: visible; } + +/** Remove the inheritance of text transform in Edge, Firefox, and IE. 1. Remove the inheritance of text transform in Firefox. */ +button, select { /* 1 */ text-transform: none; } + +/** Correct the inability to style clickable types in iOS and Safari. */ +button, [type="button"], [type="reset"], [type="submit"] { -webkit-appearance: button; } + +/** Remove the inner border and padding in Firefox. */ +button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner { border-style: none; padding: 0; } + +/** Restore the focus styles unset by the previous rule. */ +button:-moz-focusring, [type="button"]:-moz-focusring, [type="reset"]:-moz-focusring, [type="submit"]:-moz-focusring { outline: 1px dotted ButtonText; } + +/** Correct the padding in Firefox. */ +fieldset { padding: 0.35em 0.75em 0.625em; } + +/** 1. Correct the text wrapping in Edge and IE. 2. Correct the color inheritance from `fieldset` elements in IE. 3. Remove the padding so developers are not caught out when they zero out `fieldset` elements in all browsers. */ +legend { box-sizing: border-box; /* 1 */ color: inherit; /* 2 */ display: table; /* 1 */ max-width: 100%; /* 1 */ padding: 0; /* 3 */ white-space: normal; /* 1 */ } + +/** Add the correct vertical alignment in Chrome, Firefox, and Opera. */ +progress { vertical-align: baseline; } + +/** Remove the default vertical scrollbar in IE 10+. */ +textarea { overflow: auto; } + +/** 1. Add the correct box sizing in IE 10. 2. Remove the padding in IE 10. */ +[type="checkbox"], [type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ } + +/** Correct the cursor style of increment and decrement buttons in Chrome. */ +[type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button { height: auto; } + +/** 1. Correct the odd appearance in Chrome and Safari. 2. Correct the outline style in Safari. */ +[type="search"] { -webkit-appearance: textfield; /* 1 */ outline-offset: -2px; /* 2 */ } + +/** Remove the inner padding in Chrome and Safari on macOS. */ +[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } + +/** 1. Correct the inability to style clickable types in iOS and Safari. 2. Change font properties to `inherit` in Safari. */ +::-webkit-file-upload-button { -webkit-appearance: button; /* 1 */ font: inherit; /* 2 */ } + +/* Interactive ========================================================================== */ +/* Add the correct display in Edge, IE 10+, and Firefox. */ +details { display: block; } + +/* Add the correct display in all browsers. */ +summary { display: list-item; } + +/* Misc ========================================================================== */ +/** Add the correct display in IE 10+. */ +template { display: none; } + +/** Add the correct display in IE 10. */ +[hidden] { display: none; } + +:root { color-scheme: light; } + +* { box-sizing: border-box; } + +html { font-size: 0.875rem !important; scroll-behavior: smooth; } +@media (min-width: 31.25rem) { html { font-size: 1rem !important; } } + +body { font-family: system-ui, -apple-system, blinkmacsystemfont, "Segoe UI", roboto, "Helvetica Neue", arial, sans-serif; font-size: inherit; line-height: 1.4; color: #5c5962; background-color: #fff; overflow-wrap: break-word; } + +ol, ul, dl, pre, address, blockquote, table, div, hr, form, fieldset, noscript .table-wrapper { margin-top: 0; } + +h1, h2, h3, h4, h5, h6, #toctitle { margin-top: 0; margin-bottom: 1em; font-weight: 500; line-height: 1.25; color: #27262b; } + +p { margin-top: 1em; margin-bottom: 1em; } + +a { color: #7253ed; text-decoration: none; } + +a:not([class]) { text-decoration: underline; text-decoration-color: #eeebee; text-underline-offset: 2px; } +a:not([class]):hover { text-decoration-color: rgba(114, 83, 237, 0.45); } + +code { font-family: "SFMono-Regular", menlo, consolas, monospace; font-size: 0.75em; line-height: 1.4; } + +figure, pre { margin: 0; } + +li { margin: 0.25em 0; } + +img { max-width: 100%; height: auto; } + +hr { height: 1px; padding: 0; margin: 2rem 0; background-color: #eeebee; border: 0; } + +blockquote { margin: 10px 0; margin-block-start: 0; margin-inline-start: 0; padding-left: 1rem; border-left: 3px solid #eeebee; } + +.side-bar { z-index: 0; display: flex; flex-wrap: wrap; background-color: #f5f6fa; } +@media (min-width: 50rem) { .side-bar { flex-flow: column nowrap; position: fixed; width: 15.5rem; height: 100%; border-right: 1px solid #eeebee; align-items: flex-end; } } +@media (min-width: 66.5rem) { .side-bar { width: calc((100% - 66.5rem) / 2 + 16.5rem); min-width: 16.5rem; } } + +@media (min-width: 50rem) { .main { position: relative; max-width: 50rem; margin-left: 15.5rem; } } +@media (min-width: 66.5rem) { .main { margin-left: Max(16.5rem, calc((100% - 66.5rem) / 2 + 16.5rem)); } } + +.main-content-wrap { padding-right: 1rem; padding-left: 1rem; padding-top: 1rem; padding-bottom: 1rem; } +@media (min-width: 50rem) { .main-content-wrap { padding-right: 2rem; padding-left: 2rem; } } +@media (min-width: 50rem) { .main-content-wrap { padding-top: 2rem; padding-bottom: 2rem; } } + +.main-header { z-index: 0; display: none; background-color: #f5f6fa; } +@media (min-width: 50rem) { .main-header { display: flex; justify-content: space-between; height: 3.75rem; background-color: #fff; border-bottom: 1px solid #eeebee; } } +.main-header.nav-open { display: block; } +@media (min-width: 50rem) { .main-header.nav-open { display: flex; } } + +.site-nav, .site-header, .site-footer { width: 100%; } +@media (min-width: 66.5rem) { .site-nav, .site-header, .site-footer { width: 16.5rem; } } + +.site-nav { display: none; } +.site-nav.nav-open { display: block; } +@media (min-width: 50rem) { .site-nav { display: block; padding-top: 3rem; padding-bottom: 1rem; overflow-y: auto; flex: 1 1 auto; } } + +.site-header { display: flex; min-height: 3.75rem; align-items: center; } +@media (min-width: 50rem) { .site-header { height: 3.75rem; max-height: 3.75rem; border-bottom: 1px solid #eeebee; } } + +.site-title { padding-right: 1rem; padding-left: 1rem; flex-grow: 1; display: flex; height: 100%; align-items: center; padding-top: 0.75rem; padding-bottom: 0.75rem; color: #27262b; font-size: 1.125rem !important; } +@media (min-width: 50rem) { .site-title { padding-right: 2rem; padding-left: 2rem; } } +@media (min-width: 31.25rem) { .site-title { font-size: 1.5rem !important; line-height: 1.25; } } +@media (min-width: 50rem) { .site-title { padding-top: 0.5rem; padding-bottom: 0.5rem; } } + +.site-logo { width: 100%; height: 100%; background-image: url("/v1.46/assets/logo.svg"); background-repeat: no-repeat; background-position: left center; background-size: contain; } + +.site-button { display: flex; height: 100%; padding: 1rem; align-items: center; } + +@media (min-width: 50rem) { .site-header .site-button { display: none; } } +.site-title:hover { background-image: linear-gradient(-90deg, #ebedf5 0%, rgba(235, 237, 245, 0.8) 80%, rgba(235, 237, 245, 0) 100%); } + +.site-button:hover { background-image: linear-gradient(-90deg, #ebedf5 0%, rgba(235, 237, 245, 0.8) 100%); } + +body { position: relative; padding-bottom: 4rem; overflow-y: scroll; } +@media (min-width: 50rem) { body { position: static; padding-bottom: 0; } } + +.site-footer { padding-right: 1rem; padding-left: 1rem; position: absolute; bottom: 0; left: 0; padding-top: 1rem; padding-bottom: 1rem; color: #959396; font-size: 0.6875rem !important; } +@media (min-width: 50rem) { .site-footer { padding-right: 2rem; padding-left: 2rem; } } +@media (min-width: 31.25rem) { .site-footer { font-size: 0.75rem !important; } } +@media (min-width: 50rem) { .site-footer { position: static; justify-self: end; } } + +.icon { width: 1.5rem; height: 1.5rem; color: #7253ed; } + +.main-content { line-height: 1.6; } +.main-content ol, .main-content ul, .main-content dl, .main-content pre, .main-content address, .main-content blockquote, .main-content .table-wrapper { margin-top: 0.5em; } +.main-content a { overflow: hidden; text-overflow: ellipsis; } +.main-content ul, .main-content ol { padding-left: 1.5em; } +.main-content li .highlight { margin-top: 0.25rem; } +.main-content ol { list-style-type: none; counter-reset: step-counter; } +.main-content ol > li { position: relative; } +.main-content ol > li::before { position: absolute; top: 0.2em; left: -1.6em; color: #959396; content: counter(step-counter); counter-increment: step-counter; font-size: 0.75rem !important; } +@media (min-width: 31.25rem) { .main-content ol > li::before { font-size: 0.875rem !important; } } +@media (min-width: 31.25rem) { .main-content ol > li::before { top: 0.11em; } } +.main-content ol > li ol { counter-reset: sub-counter; } +.main-content ol > li ol > li::before { content: counter(sub-counter,lower-alpha); counter-increment: sub-counter; } +.main-content ul { list-style: none; } +.main-content ul > li::before { position: absolute; margin-left: -1.4em; color: #959396; content: "•"; } +.main-content .task-list-item::before { content: ""; } +.main-content .task-list-item-checkbox { margin-right: 0.6em; margin-left: -1.4em; } +.main-content hr + * { margin-top: 0; } +.main-content h1:first-of-type { margin-top: 0.5em; } +.main-content dl { display: grid; grid-template: auto / 10em 1fr; } +.main-content dt, .main-content dd { margin: 0.25em 0; } +.main-content dt { grid-column: 1; font-weight: 500; text-align: right; } +.main-content dt::after { content: ":"; } +.main-content dd { grid-column: 2; margin-bottom: 0; margin-left: 1em; } +.main-content dd blockquote:first-child, .main-content dd div:first-child, .main-content dd dl:first-child, .main-content dd dt:first-child, .main-content dd h1:first-child, .main-content dd h2:first-child, .main-content dd h3:first-child, .main-content dd h4:first-child, .main-content dd h5:first-child, .main-content dd h6:first-child, .main-content dd li:first-child, .main-content dd ol:first-child, .main-content dd p:first-child, .main-content dd pre:first-child, .main-content dd table:first-child, .main-content dd ul:first-child, .main-content dd .table-wrapper:first-child { margin-top: 0; } +.main-content dd dl:first-child dt:first-child, .main-content dd dl:first-child dd:nth-child(2), .main-content ol dl:first-child dt:first-child, .main-content ol dl:first-child dd:nth-child(2), .main-content ul dl:first-child dt:first-child, .main-content ul dl:first-child dd:nth-child(2) { margin-top: 0; } +.main-content .anchor-heading { position: absolute; right: -1rem; width: 1.5rem; height: 100%; padding-right: 0.25rem; padding-left: 0.25rem; overflow: visible; } +@media (min-width: 50rem) { .main-content .anchor-heading { right: auto; left: -1.5rem; } } +.main-content .anchor-heading svg { display: inline-block; width: 100%; height: 100%; color: #7253ed; visibility: hidden; } +.main-content .anchor-heading:hover svg, .main-content .anchor-heading:focus svg, .main-content h1:hover > .anchor-heading svg, .main-content h2:hover > .anchor-heading svg, .main-content h3:hover > .anchor-heading svg, .main-content h4:hover > .anchor-heading svg, .main-content h5:hover > .anchor-heading svg, .main-content h6:hover > .anchor-heading svg { visibility: visible; } +.main-content summary { cursor: pointer; } +.main-content h1, .main-content h2, .main-content h3, .main-content h4, .main-content h5, .main-content h6, .main-content #toctitle { position: relative; margin-top: 1.5em; margin-bottom: 0.25em; } +.main-content h1 + table, .main-content h1 + .table-wrapper, .main-content h1 + .code-example, .main-content h1 + .highlighter-rouge, .main-content h1 + .sectionbody .listingblock, .main-content h2 + table, .main-content h2 + .table-wrapper, .main-content h2 + .code-example, .main-content h2 + .highlighter-rouge, .main-content h2 + .sectionbody .listingblock, .main-content h3 + table, .main-content h3 + .table-wrapper, .main-content h3 + .code-example, .main-content h3 + .highlighter-rouge, .main-content h3 + .sectionbody .listingblock, .main-content h4 + table, .main-content h4 + .table-wrapper, .main-content h4 + .code-example, .main-content h4 + .highlighter-rouge, .main-content h4 + .sectionbody .listingblock, .main-content h5 + table, .main-content h5 + .table-wrapper, .main-content h5 + .code-example, .main-content h5 + .highlighter-rouge, .main-content h5 + .sectionbody .listingblock, .main-content h6 + table, .main-content h6 + .table-wrapper, .main-content h6 + .code-example, .main-content h6 + .highlighter-rouge, .main-content h6 + .sectionbody .listingblock, .main-content #toctitle + table, .main-content #toctitle + .table-wrapper, .main-content #toctitle + .code-example, .main-content #toctitle + .highlighter-rouge, .main-content #toctitle + .sectionbody .listingblock { margin-top: 1em; } +.main-content h1 + p:not(.label), .main-content h2 + p:not(.label), .main-content h3 + p:not(.label), .main-content h4 + p:not(.label), .main-content h5 + p:not(.label), .main-content h6 + p:not(.label), .main-content #toctitle + p:not(.label) { margin-top: 0; } +.main-content > h1:first-child, .main-content > h2:first-child, .main-content > h3:first-child, .main-content > h4:first-child, .main-content > h5:first-child, .main-content > h6:first-child, .main-content > .sect1:first-child > h2, .main-content > .sect2:first-child > h3, .main-content > .sect3:first-child > h4, .main-content > .sect4:first-child > h5, .main-content > .sect5:first-child > h6 { margin-top: 0.5rem; } + +.nav-list { padding: 0; margin-top: 0; margin-bottom: 0; list-style: none; } +.nav-list .nav-list-item { font-size: 0.875rem !important; position: relative; margin: 0; } +@media (min-width: 31.25rem) { .nav-list .nav-list-item { font-size: 1rem !important; } } +@media (min-width: 50rem) { .nav-list .nav-list-item { font-size: 0.75rem !important; } } +@media (min-width: 50rem) and (min-width: 31.25rem) { .nav-list .nav-list-item { font-size: 0.875rem !important; } } + +.nav-list .nav-list-item .nav-list-link { display: block; min-height: 3rem; padding-top: 0.25rem; padding-bottom: 0.25rem; line-height: 2.5rem; padding-right: 3rem; padding-left: 1rem; } +@media (min-width: 50rem) { .nav-list .nav-list-item .nav-list-link { min-height: 2rem; line-height: 1.5rem; padding-right: 2rem; padding-left: 2rem; } } +.nav-list .nav-list-item .nav-list-link.external > svg { width: 1rem; height: 1rem; vertical-align: text-bottom; } +.nav-list .nav-list-item .nav-list-link.active { font-weight: 600; text-decoration: none; } +.nav-list .nav-list-item .nav-list-link:hover, .nav-list .nav-list-item .nav-list-link.active { background-image: linear-gradient(-90deg, #ebedf5 0%, rgba(235, 237, 245, 0.8) 80%, rgba(235, 237, 245, 0) 100%); } +.nav-list .nav-list-item .nav-list-expander { position: absolute; right: 0; width: 3rem; height: 3rem; padding: 0.75rem; color: #7253ed; } +@media (min-width: 50rem) { .nav-list .nav-list-item .nav-list-expander { width: 2rem; height: 2rem; padding: 0.5rem; } } +.nav-list .nav-list-item .nav-list-expander:hover { background-image: linear-gradient(-90deg, #ebedf5 0%, rgba(235, 237, 245, 0.8) 100%); } +.nav-list .nav-list-item .nav-list-expander svg { transform: rotate(90deg); } +.nav-list .nav-list-item > .nav-list { display: none; padding-left: 0.75rem; list-style: none; } +.nav-list .nav-list-item > .nav-list .nav-list-item { position: relative; } +.nav-list .nav-list-item > .nav-list .nav-list-item .nav-list-link { color: #5c5962; } +.nav-list .nav-list-item > .nav-list .nav-list-item .nav-list-expander { color: #5c5962; } +.nav-list .nav-list-item.active > .nav-list-expander svg { transform: rotate(-90deg); } +.nav-list .nav-list-item.active > .nav-list { display: block; } + +.nav-category { padding: 0.5rem 1rem; font-weight: 600; text-align: start; text-transform: uppercase; border-bottom: 1px solid #eeebee; font-size: 0.6875rem !important; } +@media (min-width: 31.25rem) { .nav-category { font-size: 0.75rem !important; } } +@media (min-width: 50rem) { .nav-category { padding: 0.5rem 2rem; margin-top: 1rem; text-align: start; } + .nav-category:first-child { margin-top: 0; } } + +.nav-list.nav-category-list > .nav-list-item { margin: 0; } +.nav-list.nav-category-list > .nav-list-item > .nav-list { padding: 0; } +.nav-list.nav-category-list > .nav-list-item > .nav-list > .nav-list-item > .nav-list-link { color: #7253ed; } +.nav-list.nav-category-list > .nav-list-item > .nav-list > .nav-list-item > .nav-list-expander { color: #7253ed; } + +.aux-nav { height: 100%; overflow-x: auto; font-size: 0.6875rem !important; } +@media (min-width: 31.25rem) { .aux-nav { font-size: 0.75rem !important; } } +.aux-nav .aux-nav-list { display: flex; height: 100%; padding: 0; margin: 0; list-style: none; } +.aux-nav .aux-nav-list-item { display: inline-block; height: 100%; padding: 0; margin: 0; } +@media (min-width: 50rem) { .aux-nav { padding-right: 1rem; } } + +@media (min-width: 50rem) { .breadcrumb-nav { margin-top: -1rem; } } + +.breadcrumb-nav-list { padding-left: 0; margin-bottom: 0.75rem; list-style: none; } + +.breadcrumb-nav-list-item { display: table-cell; font-size: 0.6875rem !important; } +@media (min-width: 31.25rem) { .breadcrumb-nav-list-item { font-size: 0.75rem !important; } } +.breadcrumb-nav-list-item::before { display: none; } +.breadcrumb-nav-list-item::after { display: inline-block; margin-right: 0.5rem; margin-left: 0.5rem; color: #959396; content: "/"; } +.breadcrumb-nav-list-item:last-child::after { content: ""; } + +h1, .text-alpha { font-size: 2rem !important; line-height: 1.25; font-weight: 300; } +@media (min-width: 31.25rem) { h1, .text-alpha { font-size: 2.25rem !important; } } + +h2, .text-beta, #toctitle { font-size: 1.125rem !important; } +@media (min-width: 31.25rem) { h2, .text-beta, #toctitle { font-size: 1.5rem !important; line-height: 1.25; } } + +h3, .text-gamma { font-size: 1rem !important; } +@media (min-width: 31.25rem) { h3, .text-gamma { font-size: 1.125rem !important; } } + +h4, .text-delta { font-size: 0.6875rem !important; font-weight: 400; text-transform: uppercase; letter-spacing: 0.1em; } +@media (min-width: 31.25rem) { h4, .text-delta { font-size: 0.75rem !important; } } + +h4 code { text-transform: none; } + +h5, .text-epsilon { font-size: 0.75rem !important; } +@media (min-width: 31.25rem) { h5, .text-epsilon { font-size: 0.875rem !important; } } + +h6, .text-zeta { font-size: 0.6875rem !important; } +@media (min-width: 31.25rem) { h6, .text-zeta { font-size: 0.75rem !important; } } + +.text-small { font-size: 0.6875rem !important; } +@media (min-width: 31.25rem) { .text-small { font-size: 0.75rem !important; } } + +.text-mono { font-family: "SFMono-Regular", menlo, consolas, monospace !important; } + +.text-left { text-align: left !important; } + +.text-center { text-align: center !important; } + +.text-right { text-align: right !important; } + +.label:not(g), .label-blue:not(g) { display: inline-block; padding: 0.16em 0.56em; margin-right: 0.5rem; margin-left: 0.5rem; color: #fff; text-transform: uppercase; vertical-align: middle; background-color: #2869e6; font-size: 0.6875rem !important; border-radius: 12px; } +@media (min-width: 31.25rem) { .label:not(g), .label-blue:not(g) { font-size: 0.75rem !important; } } + +.label-green:not(g) { background-color: #009c7b; } + +.label-purple:not(g) { background-color: #5e41d0; } + +.label-red:not(g) { background-color: #e94c4c; } + +.label-yellow:not(g) { color: #44434d; background-color: #f7d12e; } + +.btn { display: inline-block; box-sizing: border-box; padding: 0.3em 1em; margin: 0; font-family: inherit; font-size: inherit; font-weight: 500; line-height: 1.5; color: #7253ed; text-decoration: none; vertical-align: baseline; cursor: pointer; background-color: #f7f7f7; border-width: 0; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); appearance: none; } +.btn:focus { text-decoration: none; outline: none; box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.25); } +.btn:focus:hover, .btn.selected:focus { box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.25); } +.btn:hover, .btn.zeroclipboard-is-hover { color: #6a4aec; } +.btn:hover, .btn:active, .btn.zeroclipboard-is-hover, .btn.zeroclipboard-is-active { text-decoration: none; background-color: #f4f4f4; } +.btn:active, .btn.selected, .btn.zeroclipboard-is-active { background-color: #efefef; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } +.btn.selected:hover { background-color: #cfcfcf; } +.btn:disabled, .btn:disabled:hover, .btn.disabled, .btn.disabled:hover { color: rgba(102, 102, 102, 0.5); cursor: default; background-color: rgba(229, 229, 229, 0.5); background-image: none; box-shadow: none; } + +.btn-outline { color: #7253ed; background: transparent; box-shadow: inset 0 0 0 2px #e6e1e8; } +.btn-outline:hover, .btn-outline:active, .btn-outline.zeroclipboard-is-hover, .btn-outline.zeroclipboard-is-active { color: #6341eb; text-decoration: none; background-color: transparent; box-shadow: inset 0 0 0 3px #e6e1e8; } +.btn-outline:focus { text-decoration: none; outline: none; box-shadow: inset 0 0 0 2px #5c5962, 0 0 0 3px rgba(0, 0, 255, 0.25); } +.btn-outline:focus:hover, .btn-outline.selected:focus { box-shadow: inset 0 0 0 2px #5c5962; } + +.btn-primary { color: #fff; background-color: #5739ce; background-image: linear-gradient(#6f55d5, #5739ce); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); } +.btn-primary:hover, .btn-primary.zeroclipboard-is-hover { color: #fff; background-color: #5132cb; background-image: linear-gradient(#6549d2, #5132cb); } +.btn-primary:active, .btn-primary.selected, .btn-primary.zeroclipboard-is-active { background-color: #4f31c6; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } +.btn-primary.selected:hover { background-color: #472cb2; } + +.btn-purple { color: #fff; background-color: #5739ce; background-image: linear-gradient(#6f55d5, #5739ce); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); } +.btn-purple:hover, .btn-purple.zeroclipboard-is-hover { color: #fff; background-color: #5132cb; background-image: linear-gradient(#6549d2, #5132cb); } +.btn-purple:active, .btn-purple.selected, .btn-purple.zeroclipboard-is-active { background-color: #4f31c6; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } +.btn-purple.selected:hover { background-color: #472cb2; } + +.btn-blue { color: #fff; background-color: #227efa; background-image: linear-gradient(#4593fb, #227efa); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); } +.btn-blue:hover, .btn-blue.zeroclipboard-is-hover { color: #fff; background-color: #1878fa; background-image: linear-gradient(#368afa, #1878fa); } +.btn-blue:active, .btn-blue.selected, .btn-blue.zeroclipboard-is-active { background-color: #1375f9; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } +.btn-blue.selected:hover { background-color: #0669ed; } + +.btn-green { color: #fff; background-color: #10ac7d; background-image: linear-gradient(#13cc95, #10ac7d); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); } +.btn-green:hover, .btn-green.zeroclipboard-is-hover { color: #fff; background-color: #0fa276; background-image: linear-gradient(#12be8b, #0fa276); } +.btn-green:active, .btn-green.selected, .btn-green.zeroclipboard-is-active { background-color: #0f9e73; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } +.btn-green.selected:hover { background-color: #0d8662; } + +.btn-reset { background: none; border: none; margin: 0; text-align: inherit; font: inherit; border-radius: 0; appearance: none; } + +.search { position: relative; z-index: 2; flex-grow: 1; height: 4rem; padding: 0.5rem; transition: padding linear 200ms; } +@media (min-width: 50rem) { .search { position: relative !important; width: auto !important; height: 100% !important; padding: 0; transition: none; } } + +.search-input-wrap { position: relative; z-index: 1; height: 3rem; overflow: hidden; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); transition: height linear 200ms; } +@media (min-width: 50rem) { .search-input-wrap { position: absolute; width: 100%; max-width: 33.5rem; height: 100% !important; border-radius: 0; box-shadow: none; transition: width ease 400ms; } } + +.search-input { position: absolute; width: 100%; height: 100%; padding: 0.5rem 1rem 0.5rem 2.5rem; font-size: 1rem; color: #5c5962; background-color: #fff; border-top: 0; border-right: 0; border-bottom: 0; border-left: 0; border-radius: 0; } +@media (min-width: 50rem) { .search-input { padding: 0.5rem 1rem 0.5rem 3.5rem; font-size: 0.875rem; background-color: #fff; transition: padding-left linear 200ms; } } +.search-input:focus { outline: 0; } +.search-input:focus + .search-label .search-icon { color: #7253ed; } + +.search-label { position: absolute; display: flex; height: 100%; padding-left: 1rem; } +@media (min-width: 50rem) { .search-label { padding-left: 2rem; transition: padding-left linear 200ms; } } +.search-label .search-icon { width: 1.2rem; height: 1.2rem; align-self: center; color: #959396; } + +.search-results { position: absolute; left: 0; display: none; width: 100%; max-height: calc(100% - 4rem); overflow-y: auto; background-color: #fff; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); } +@media (min-width: 50rem) { .search-results { top: 100%; width: 33.5rem; max-height: calc(100vh - 200%) !important; } } + +.search-results-list { padding-left: 0; margin-bottom: 0.25rem; list-style: none; font-size: 0.875rem !important; } +@media (min-width: 31.25rem) { .search-results-list { font-size: 1rem !important; } } +@media (min-width: 50rem) { .search-results-list { font-size: 0.75rem !important; } } +@media (min-width: 50rem) and (min-width: 31.25rem) { .search-results-list { font-size: 0.875rem !important; } } + +.search-results-list-item { padding: 0; margin: 0; } + +.search-result { display: block; padding: 0.25rem 0.75rem; } +.search-result:hover, .search-result.active { background-color: #ebedf5; } + +.search-result-title { display: block; padding-top: 0.5rem; padding-bottom: 0.5rem; } +@media (min-width: 31.25rem) { .search-result-title { display: inline-block; width: 40%; padding-right: 0.5rem; vertical-align: top; } } + +.search-result-doc { display: flex; align-items: center; word-wrap: break-word; } +.search-result-doc.search-result-doc-parent { opacity: 0.5; font-size: 0.75rem !important; } +@media (min-width: 31.25rem) { .search-result-doc.search-result-doc-parent { font-size: 0.875rem !important; } } +@media (min-width: 50rem) { .search-result-doc.search-result-doc-parent { font-size: 0.6875rem !important; } } +@media (min-width: 50rem) and (min-width: 31.25rem) { .search-result-doc.search-result-doc-parent { font-size: 0.75rem !important; } } + +.search-result-doc .search-result-icon { width: 1rem; height: 1rem; margin-right: 0.5rem; color: #7253ed; flex-shrink: 0; } +.search-result-doc .search-result-doc-title { overflow: auto; } + +.search-result-section { margin-left: 1.5rem; word-wrap: break-word; } + +.search-result-rel-url { display: block; margin-left: 1.5rem; overflow: hidden; color: #959396; text-overflow: ellipsis; white-space: nowrap; font-size: 0.5625rem !important; } +@media (min-width: 31.25rem) { .search-result-rel-url { font-size: 0.625rem !important; } } + +.search-result-previews { display: block; padding-top: 0.5rem; padding-bottom: 0.5rem; padding-left: 1rem; margin-left: 0.5rem; color: #959396; word-wrap: break-word; border-left: 1px solid; border-left-color: #eeebee; font-size: 0.6875rem !important; } +@media (min-width: 31.25rem) { .search-result-previews { font-size: 0.75rem !important; } } +@media (min-width: 31.25rem) { .search-result-previews { display: inline-block; width: 60%; padding-left: 0.5rem; margin-left: 0; vertical-align: top; } } + +.search-result-preview + .search-result-preview { margin-top: 0.25rem; } + +.search-result-highlight { font-weight: bold; } + +.search-no-result { padding: 0.5rem 0.75rem; font-size: 0.75rem !important; } +@media (min-width: 31.25rem) { .search-no-result { font-size: 0.875rem !important; } } + +.search-button { position: fixed; right: 1rem; bottom: 1rem; display: flex; width: 3.5rem; height: 3.5rem; background-color: #fff; border: 1px solid rgba(114, 83, 237, 0.3); border-radius: 1.75rem; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); align-items: center; justify-content: center; } + +.search-overlay { position: fixed; top: 0; left: 0; z-index: 1; width: 0; height: 0; background-color: rgba(0, 0, 0, 0.3); opacity: 0; transition: opacity ease 400ms, width 0s 400ms, height 0s 400ms; } + +.search-active .search { position: fixed; top: 0; left: 0; width: 100%; height: 100%; padding: 0; } +.search-active .search-input-wrap { height: 4rem; border-radius: 0; } +@media (min-width: 50rem) { .search-active .search-input-wrap { width: 33.5rem; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); } } +.search-active .search-input { background-color: #fff; } +@media (min-width: 50rem) { .search-active .search-input { padding-left: 2.3rem; } } +@media (min-width: 50rem) { .search-active .search-label { padding-left: 0.6rem; } } +.search-active .search-results { display: block; } +.search-active .search-overlay { width: 100%; height: 100%; opacity: 1; transition: opacity ease 400ms, width 0s, height 0s; } +@media (min-width: 50rem) { .search-active .main { position: fixed; right: 0; left: 0; } } +.search-active .main-header { padding-top: 4rem; } +@media (min-width: 50rem) { .search-active .main-header { padding-top: 0; } } + +.table-wrapper { display: block; width: 100%; max-width: 100%; margin-bottom: 1.5rem; overflow-x: auto; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); } + +table { display: table; min-width: 100%; border-collapse: separate; } + +th, td { font-size: 0.75rem !important; min-width: 7.5rem; padding: 0.5rem 0.75rem; background-color: #fff; border-bottom: 1px solid rgba(238, 235, 238, 0.5); border-left: 1px solid #eeebee; } +@media (min-width: 31.25rem) { th, td { font-size: 0.875rem !important; } } +th:first-of-type, td:first-of-type { border-left: 0; } + +tbody tr:last-of-type th, tbody tr:last-of-type td { border-bottom: 0; } +tbody tr:last-of-type td { padding-bottom: 0.75rem; } + +thead th { border-bottom: 1px solid #eeebee; } + +:not(pre, figure) > code { padding: 0.2em 0.15em; font-weight: 400; background-color: #f5f6fa; border: 1px solid #eeebee; border-radius: 4px; } + +a:visited code { border-color: #eeebee; } + +div.highlighter-rouge, div.listingblock > div.content, figure.highlight { margin-top: 0; margin-bottom: 0.75rem; background-color: #f5f6fa; border-radius: 4px; box-shadow: none; -webkit-overflow-scrolling: touch; position: relative; padding: 0; } +div.highlighter-rouge > button, div.listingblock > div.content > button, figure.highlight > button { width: 0.75rem; opacity: 0; position: absolute; top: 0; right: 0; border: 0.75rem solid #f5f6fa; background-color: #f5f6fa; color: #5c5962; box-sizing: content-box; } +div.highlighter-rouge > button svg, div.listingblock > div.content > button svg, figure.highlight > button svg { fill: #5c5962; } +div.highlighter-rouge > button:active, div.listingblock > div.content > button:active, figure.highlight > button:active { text-decoration: none; outline: none; opacity: 1; } +div.highlighter-rouge > button:focus, div.listingblock > div.content > button:focus, figure.highlight > button:focus { opacity: 1; } +div.highlighter-rouge:hover > button, div.listingblock > div.content:hover > button, figure.highlight:hover > button { cursor: copy; opacity: 1; } + +div.highlighter-rouge div.highlight { overflow-x: auto; padding: 0.75rem; margin: 0; border: 0; } +div.highlighter-rouge pre.highlight, div.highlighter-rouge code { padding: 0; margin: 0; border: 0; } + +div.listingblock { margin-top: 0; margin-bottom: 0.75rem; } +div.listingblock div.content { overflow-x: auto; padding: 0.75rem; margin: 0; border: 0; } +div.listingblock div.content > pre, div.listingblock code { padding: 0; margin: 0; border: 0; } + +figure.highlight pre, figure.highlight :not(pre) > code { overflow-x: auto; padding: 0.75rem; margin: 0; border: 0; } + +.highlight .table-wrapper { padding: 0.75rem 0; margin: 0; border: 0; box-shadow: none; } +.highlight .table-wrapper td, .highlight .table-wrapper pre { font-size: 0.6875rem !important; min-width: 0; padding: 0; background-color: #f5f6fa; border: 0; } +@media (min-width: 31.25rem) { .highlight .table-wrapper td, .highlight .table-wrapper pre { font-size: 0.75rem !important; } } +.highlight .table-wrapper td.gl { width: 1em; padding-right: 0.75rem; padding-left: 0.75rem; } +.highlight .table-wrapper pre { margin: 0; line-height: 2; } + +.code-example, .listingblock > .title { padding: 0.75rem; margin-bottom: 0.75rem; overflow: auto; border: 1px solid #eeebee; border-radius: 4px; } +.code-example + .highlighter-rouge, .code-example + .sectionbody .listingblock, .code-example + .content, .code-example + figure.highlight, .listingblock > .title + .highlighter-rouge, .listingblock > .title + .sectionbody .listingblock, .listingblock > .title + .content, .listingblock > .title + figure.highlight { position: relative; margin-top: -1rem; border-right: 1px solid #eeebee; border-bottom: 1px solid #eeebee; border-left: 1px solid #eeebee; border-top-left-radius: 0; border-top-right-radius: 0; } + +code.language-mermaid { padding: 0; background-color: inherit; border: 0; } + +.highlight, pre.highlight { background: #f5f6fa; color: #5c5962; } + +.highlight pre { background: #f5f6fa; } + +.text-grey-dk-000 { color: #959396 !important; } + +.text-grey-dk-100 { color: #5c5962 !important; } + +.text-grey-dk-200 { color: #44434d !important; } + +.text-grey-dk-250 { color: #302d36 !important; } + +.text-grey-dk-300 { color: #27262b !important; } + +.text-grey-lt-000 { color: #f5f6fa !important; } + +.text-grey-lt-100 { color: #eeebee !important; } + +.text-grey-lt-200 { color: #ecebed !important; } + +.text-grey-lt-300 { color: #e6e1e8 !important; } + +.text-blue-000 { color: #2c84fa !important; } + +.text-blue-100 { color: #2869e6 !important; } + +.text-blue-200 { color: #264caf !important; } + +.text-blue-300 { color: #183385 !important; } + +.text-green-000 { color: #41d693 !important; } + +.text-green-100 { color: #11b584 !important; } + +.text-green-200 { color: #009c7b !important; } + +.text-green-300 { color: #026e57 !important; } + +.text-purple-000 { color: #7253ed !important; } + +.text-purple-100 { color: #5e41d0 !important; } + +.text-purple-200 { color: #4e26af !important; } + +.text-purple-300 { color: #381885 !important; } + +.text-yellow-000 { color: #ffeb82 !important; } + +.text-yellow-100 { color: #fadf50 !important; } + +.text-yellow-200 { color: #f7d12e !important; } + +.text-yellow-300 { color: #e7af06 !important; } + +.text-red-000 { color: #f77e7e !important; } + +.text-red-100 { color: #f96e65 !important; } + +.text-red-200 { color: #e94c4c !important; } + +.text-red-300 { color: #dd2e2e !important; } + +.bg-grey-dk-000 { background-color: #959396 !important; } + +.bg-grey-dk-100 { background-color: #5c5962 !important; } + +.bg-grey-dk-200 { background-color: #44434d !important; } + +.bg-grey-dk-250 { background-color: #302d36 !important; } + +.bg-grey-dk-300 { background-color: #27262b !important; } + +.bg-grey-lt-000 { background-color: #f5f6fa !important; } + +.bg-grey-lt-100 { background-color: #eeebee !important; } + +.bg-grey-lt-200 { background-color: #ecebed !important; } + +.bg-grey-lt-300 { background-color: #e6e1e8 !important; } + +.bg-blue-000 { background-color: #2c84fa !important; } + +.bg-blue-100 { background-color: #2869e6 !important; } + +.bg-blue-200 { background-color: #264caf !important; } + +.bg-blue-300 { background-color: #183385 !important; } + +.bg-green-000 { background-color: #41d693 !important; } + +.bg-green-100 { background-color: #11b584 !important; } + +.bg-green-200 { background-color: #009c7b !important; } + +.bg-green-300 { background-color: #026e57 !important; } + +.bg-purple-000 { background-color: #7253ed !important; } + +.bg-purple-100 { background-color: #5e41d0 !important; } + +.bg-purple-200 { background-color: #4e26af !important; } + +.bg-purple-300 { background-color: #381885 !important; } + +.bg-yellow-000 { background-color: #ffeb82 !important; } + +.bg-yellow-100 { background-color: #fadf50 !important; } + +.bg-yellow-200 { background-color: #f7d12e !important; } + +.bg-yellow-300 { background-color: #e7af06 !important; } + +.bg-red-000 { background-color: #f77e7e !important; } + +.bg-red-100 { background-color: #f96e65 !important; } + +.bg-red-200 { background-color: #e94c4c !important; } + +.bg-red-300 { background-color: #dd2e2e !important; } + +.d-block { display: block !important; } + +.d-flex { display: flex !important; } + +.d-inline { display: inline !important; } + +.d-inline-block { display: inline-block !important; } + +.d-none { display: none !important; } + +@media (min-width: 20rem) { .d-xs-block { display: block !important; } + .d-xs-flex { display: flex !important; } + .d-xs-inline { display: inline !important; } + .d-xs-inline-block { display: inline-block !important; } + .d-xs-none { display: none !important; } } +@media (min-width: 20rem) { .d-xs-block { display: block !important; } + .d-xs-flex { display: flex !important; } + .d-xs-inline { display: inline !important; } + .d-xs-inline-block { display: inline-block !important; } + .d-xs-none { display: none !important; } } +@media (min-width: 20rem) { .d-xs-block { display: block !important; } + .d-xs-flex { display: flex !important; } + .d-xs-inline { display: inline !important; } + .d-xs-inline-block { display: inline-block !important; } + .d-xs-none { display: none !important; } } +@media (min-width: 20rem) { .d-xs-block { display: block !important; } + .d-xs-flex { display: flex !important; } + .d-xs-inline { display: inline !important; } + .d-xs-inline-block { display: inline-block !important; } + .d-xs-none { display: none !important; } } +@media (min-width: 20rem) { .d-xs-block { display: block !important; } + .d-xs-flex { display: flex !important; } + .d-xs-inline { display: inline !important; } + .d-xs-inline-block { display: inline-block !important; } + .d-xs-none { display: none !important; } } +@media (min-width: 20rem) { .d-xs-block { display: block !important; } + .d-xs-flex { display: flex !important; } + .d-xs-inline { display: inline !important; } + .d-xs-inline-block { display: inline-block !important; } + .d-xs-none { display: none !important; } } +@media (min-width: 20rem) { .d-xs-block { display: block !important; } + .d-xs-flex { display: flex !important; } + .d-xs-inline { display: inline !important; } + .d-xs-inline-block { display: inline-block !important; } + .d-xs-none { display: none !important; } } +@media (min-width: 20rem) { .d-xs-block { display: block !important; } + .d-xs-flex { display: flex !important; } + .d-xs-inline { display: inline !important; } + .d-xs-inline-block { display: inline-block !important; } + .d-xs-none { display: none !important; } } +@media (min-width: 20rem) { .d-xs-block { display: block !important; } + .d-xs-flex { display: flex !important; } + .d-xs-inline { display: inline !important; } + .d-xs-inline-block { display: inline-block !important; } + .d-xs-none { display: none !important; } } +@media (min-width: 20rem) { .d-xs-block { display: block !important; } + .d-xs-flex { display: flex !important; } + .d-xs-inline { display: inline !important; } + .d-xs-inline-block { display: inline-block !important; } + .d-xs-none { display: none !important; } } +@media (min-width: 20rem) { .d-xs-block { display: block !important; } + .d-xs-flex { display: flex !important; } + .d-xs-inline { display: inline !important; } + .d-xs-inline-block { display: inline-block !important; } + .d-xs-none { display: none !important; } } +@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } + .d-sm-flex { display: flex !important; } + .d-sm-inline { display: inline !important; } + .d-sm-inline-block { display: inline-block !important; } + .d-sm-none { display: none !important; } } +@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } + .d-sm-flex { display: flex !important; } + .d-sm-inline { display: inline !important; } + .d-sm-inline-block { display: inline-block !important; } + .d-sm-none { display: none !important; } } +@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } + .d-sm-flex { display: flex !important; } + .d-sm-inline { display: inline !important; } + .d-sm-inline-block { display: inline-block !important; } + .d-sm-none { display: none !important; } } +@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } + .d-sm-flex { display: flex !important; } + .d-sm-inline { display: inline !important; } + .d-sm-inline-block { display: inline-block !important; } + .d-sm-none { display: none !important; } } +@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } + .d-sm-flex { display: flex !important; } + .d-sm-inline { display: inline !important; } + .d-sm-inline-block { display: inline-block !important; } + .d-sm-none { display: none !important; } } +@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } + .d-sm-flex { display: flex !important; } + .d-sm-inline { display: inline !important; } + .d-sm-inline-block { display: inline-block !important; } + .d-sm-none { display: none !important; } } +@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } + .d-sm-flex { display: flex !important; } + .d-sm-inline { display: inline !important; } + .d-sm-inline-block { display: inline-block !important; } + .d-sm-none { display: none !important; } } +@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } + .d-sm-flex { display: flex !important; } + .d-sm-inline { display: inline !important; } + .d-sm-inline-block { display: inline-block !important; } + .d-sm-none { display: none !important; } } +@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } + .d-sm-flex { display: flex !important; } + .d-sm-inline { display: inline !important; } + .d-sm-inline-block { display: inline-block !important; } + .d-sm-none { display: none !important; } } +@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } + .d-sm-flex { display: flex !important; } + .d-sm-inline { display: inline !important; } + .d-sm-inline-block { display: inline-block !important; } + .d-sm-none { display: none !important; } } +@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } + .d-sm-flex { display: flex !important; } + .d-sm-inline { display: inline !important; } + .d-sm-inline-block { display: inline-block !important; } + .d-sm-none { display: none !important; } } +@media (min-width: 50rem) { .d-md-block { display: block !important; } + .d-md-flex { display: flex !important; } + .d-md-inline { display: inline !important; } + .d-md-inline-block { display: inline-block !important; } + .d-md-none { display: none !important; } } +@media (min-width: 50rem) { .d-md-block { display: block !important; } + .d-md-flex { display: flex !important; } + .d-md-inline { display: inline !important; } + .d-md-inline-block { display: inline-block !important; } + .d-md-none { display: none !important; } } +@media (min-width: 50rem) { .d-md-block { display: block !important; } + .d-md-flex { display: flex !important; } + .d-md-inline { display: inline !important; } + .d-md-inline-block { display: inline-block !important; } + .d-md-none { display: none !important; } } +@media (min-width: 50rem) { .d-md-block { display: block !important; } + .d-md-flex { display: flex !important; } + .d-md-inline { display: inline !important; } + .d-md-inline-block { display: inline-block !important; } + .d-md-none { display: none !important; } } +@media (min-width: 50rem) { .d-md-block { display: block !important; } + .d-md-flex { display: flex !important; } + .d-md-inline { display: inline !important; } + .d-md-inline-block { display: inline-block !important; } + .d-md-none { display: none !important; } } +@media (min-width: 50rem) { .d-md-block { display: block !important; } + .d-md-flex { display: flex !important; } + .d-md-inline { display: inline !important; } + .d-md-inline-block { display: inline-block !important; } + .d-md-none { display: none !important; } } +@media (min-width: 50rem) { .d-md-block { display: block !important; } + .d-md-flex { display: flex !important; } + .d-md-inline { display: inline !important; } + .d-md-inline-block { display: inline-block !important; } + .d-md-none { display: none !important; } } +@media (min-width: 50rem) { .d-md-block { display: block !important; } + .d-md-flex { display: flex !important; } + .d-md-inline { display: inline !important; } + .d-md-inline-block { display: inline-block !important; } + .d-md-none { display: none !important; } } +@media (min-width: 50rem) { .d-md-block { display: block !important; } + .d-md-flex { display: flex !important; } + .d-md-inline { display: inline !important; } + .d-md-inline-block { display: inline-block !important; } + .d-md-none { display: none !important; } } +@media (min-width: 50rem) { .d-md-block { display: block !important; } + .d-md-flex { display: flex !important; } + .d-md-inline { display: inline !important; } + .d-md-inline-block { display: inline-block !important; } + .d-md-none { display: none !important; } } +@media (min-width: 50rem) { .d-md-block { display: block !important; } + .d-md-flex { display: flex !important; } + .d-md-inline { display: inline !important; } + .d-md-inline-block { display: inline-block !important; } + .d-md-none { display: none !important; } } +@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } + .d-lg-flex { display: flex !important; } + .d-lg-inline { display: inline !important; } + .d-lg-inline-block { display: inline-block !important; } + .d-lg-none { display: none !important; } } +@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } + .d-lg-flex { display: flex !important; } + .d-lg-inline { display: inline !important; } + .d-lg-inline-block { display: inline-block !important; } + .d-lg-none { display: none !important; } } +@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } + .d-lg-flex { display: flex !important; } + .d-lg-inline { display: inline !important; } + .d-lg-inline-block { display: inline-block !important; } + .d-lg-none { display: none !important; } } +@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } + .d-lg-flex { display: flex !important; } + .d-lg-inline { display: inline !important; } + .d-lg-inline-block { display: inline-block !important; } + .d-lg-none { display: none !important; } } +@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } + .d-lg-flex { display: flex !important; } + .d-lg-inline { display: inline !important; } + .d-lg-inline-block { display: inline-block !important; } + .d-lg-none { display: none !important; } } +@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } + .d-lg-flex { display: flex !important; } + .d-lg-inline { display: inline !important; } + .d-lg-inline-block { display: inline-block !important; } + .d-lg-none { display: none !important; } } +@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } + .d-lg-flex { display: flex !important; } + .d-lg-inline { display: inline !important; } + .d-lg-inline-block { display: inline-block !important; } + .d-lg-none { display: none !important; } } +@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } + .d-lg-flex { display: flex !important; } + .d-lg-inline { display: inline !important; } + .d-lg-inline-block { display: inline-block !important; } + .d-lg-none { display: none !important; } } +@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } + .d-lg-flex { display: flex !important; } + .d-lg-inline { display: inline !important; } + .d-lg-inline-block { display: inline-block !important; } + .d-lg-none { display: none !important; } } +@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } + .d-lg-flex { display: flex !important; } + .d-lg-inline { display: inline !important; } + .d-lg-inline-block { display: inline-block !important; } + .d-lg-none { display: none !important; } } +@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } + .d-lg-flex { display: flex !important; } + .d-lg-inline { display: inline !important; } + .d-lg-inline-block { display: inline-block !important; } + .d-lg-none { display: none !important; } } +@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } + .d-xl-flex { display: flex !important; } + .d-xl-inline { display: inline !important; } + .d-xl-inline-block { display: inline-block !important; } + .d-xl-none { display: none !important; } } +@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } + .d-xl-flex { display: flex !important; } + .d-xl-inline { display: inline !important; } + .d-xl-inline-block { display: inline-block !important; } + .d-xl-none { display: none !important; } } +@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } + .d-xl-flex { display: flex !important; } + .d-xl-inline { display: inline !important; } + .d-xl-inline-block { display: inline-block !important; } + .d-xl-none { display: none !important; } } +@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } + .d-xl-flex { display: flex !important; } + .d-xl-inline { display: inline !important; } + .d-xl-inline-block { display: inline-block !important; } + .d-xl-none { display: none !important; } } +@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } + .d-xl-flex { display: flex !important; } + .d-xl-inline { display: inline !important; } + .d-xl-inline-block { display: inline-block !important; } + .d-xl-none { display: none !important; } } +@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } + .d-xl-flex { display: flex !important; } + .d-xl-inline { display: inline !important; } + .d-xl-inline-block { display: inline-block !important; } + .d-xl-none { display: none !important; } } +@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } + .d-xl-flex { display: flex !important; } + .d-xl-inline { display: inline !important; } + .d-xl-inline-block { display: inline-block !important; } + .d-xl-none { display: none !important; } } +@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } + .d-xl-flex { display: flex !important; } + .d-xl-inline { display: inline !important; } + .d-xl-inline-block { display: inline-block !important; } + .d-xl-none { display: none !important; } } +@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } + .d-xl-flex { display: flex !important; } + .d-xl-inline { display: inline !important; } + .d-xl-inline-block { display: inline-block !important; } + .d-xl-none { display: none !important; } } +@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } + .d-xl-flex { display: flex !important; } + .d-xl-inline { display: inline !important; } + .d-xl-inline-block { display: inline-block !important; } + .d-xl-none { display: none !important; } } +@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } + .d-xl-flex { display: flex !important; } + .d-xl-inline { display: inline !important; } + .d-xl-inline-block { display: inline-block !important; } + .d-xl-none { display: none !important; } } +.float-left { float: left !important; } + +.float-right { float: right !important; } + +.flex-justify-start { justify-content: flex-start !important; } + +.flex-justify-end { justify-content: flex-end !important; } + +.flex-justify-between { justify-content: space-between !important; } + +.flex-justify-around { justify-content: space-around !important; } + +.v-align-baseline { vertical-align: baseline !important; } + +.v-align-bottom { vertical-align: bottom !important; } + +.v-align-middle { vertical-align: middle !important; } + +.v-align-text-bottom { vertical-align: text-bottom !important; } + +.v-align-text-top { vertical-align: text-top !important; } + +.v-align-top { vertical-align: top !important; } + +.fs-1 { font-size: 0.5625rem !important; } +@media (min-width: 31.25rem) { .fs-1 { font-size: 0.625rem !important; } } + +.fs-2 { font-size: 0.6875rem !important; } +@media (min-width: 31.25rem) { .fs-2 { font-size: 0.75rem !important; } } + +.fs-3 { font-size: 0.75rem !important; } +@media (min-width: 31.25rem) { .fs-3 { font-size: 0.875rem !important; } } + +.fs-4 { font-size: 0.875rem !important; } +@media (min-width: 31.25rem) { .fs-4 { font-size: 1rem !important; } } + +.fs-5 { font-size: 1rem !important; } +@media (min-width: 31.25rem) { .fs-5 { font-size: 1.125rem !important; } } + +.fs-6 { font-size: 1.125rem !important; } +@media (min-width: 31.25rem) { .fs-6 { font-size: 1.5rem !important; line-height: 1.25; } } + +.fs-7 { font-size: 1.5rem !important; line-height: 1.25; } +@media (min-width: 31.25rem) { .fs-7 { font-size: 2rem !important; } } + +.fs-8 { font-size: 2rem !important; line-height: 1.25; } +@media (min-width: 31.25rem) { .fs-8 { font-size: 2.25rem !important; } } + +.fs-9 { font-size: 2.25rem !important; line-height: 1.25; } +@media (min-width: 31.25rem) { .fs-9 { font-size: 2.625rem !important; } } + +.fs-10 { font-size: 2.625rem !important; line-height: 1.25; } +@media (min-width: 31.25rem) { .fs-10 { font-size: 3rem !important; } } + +.fw-300 { font-weight: 300 !important; } + +.fw-400 { font-weight: 400 !important; } + +.fw-500 { font-weight: 500 !important; } + +.fw-700 { font-weight: 700 !important; } + +.lh-0 { line-height: 0 !important; } + +.lh-default { line-height: 1.4; } + +.lh-tight { line-height: 1.25; } + +.ls-5 { letter-spacing: 0.05em !important; } + +.ls-10 { letter-spacing: 0.1em !important; } + +.ls-0 { letter-spacing: 0 !important; } + +.text-uppercase { text-transform: uppercase !important; } + +.list-style-none { padding: 0 !important; margin: 0 !important; list-style: none !important; } +.list-style-none li::before { display: none !important; } + +.mx-auto { margin-right: auto !important; margin-left: auto !important; } + +.m-0 { margin: 0 !important; } + +.mt-0 { margin-top: 0 !important; } + +.mr-0 { margin-right: 0 !important; } + +.mb-0 { margin-bottom: 0 !important; } + +.ml-0 { margin-left: 0 !important; } + +.mx-0 { margin-right: 0 !important; margin-left: 0 !important; } + +.my-0 { margin-top: 0 !important; margin-bottom: 0 !important; } + +.mxn-0 { margin-right: -0 !important; margin-left: -0 !important; } + +.mx-0-auto { margin-right: auto !important; margin-left: auto !important; } + +.m-1 { margin: 0.25rem !important; } + +.mt-1 { margin-top: 0.25rem !important; } + +.mr-1 { margin-right: 0.25rem !important; } + +.mb-1 { margin-bottom: 0.25rem !important; } + +.ml-1 { margin-left: 0.25rem !important; } + +.mx-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } + +.my-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } + +.mxn-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } + +.mx-1-auto { margin-right: auto !important; margin-left: auto !important; } + +.m-2 { margin: 0.5rem !important; } + +.mt-2 { margin-top: 0.5rem !important; } + +.mr-2 { margin-right: 0.5rem !important; } + +.mb-2 { margin-bottom: 0.5rem !important; } + +.ml-2 { margin-left: 0.5rem !important; } + +.mx-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } + +.my-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } + +.mxn-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } + +.mx-2-auto { margin-right: auto !important; margin-left: auto !important; } + +.m-3 { margin: 0.75rem !important; } + +.mt-3 { margin-top: 0.75rem !important; } + +.mr-3 { margin-right: 0.75rem !important; } + +.mb-3 { margin-bottom: 0.75rem !important; } + +.ml-3 { margin-left: 0.75rem !important; } + +.mx-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } + +.my-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } + +.mxn-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } + +.mx-3-auto { margin-right: auto !important; margin-left: auto !important; } + +.m-4 { margin: 1rem !important; } + +.mt-4 { margin-top: 1rem !important; } + +.mr-4 { margin-right: 1rem !important; } + +.mb-4 { margin-bottom: 1rem !important; } + +.ml-4 { margin-left: 1rem !important; } + +.mx-4 { margin-right: 1rem !important; margin-left: 1rem !important; } + +.my-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } + +.mxn-4 { margin-right: -1rem !important; margin-left: -1rem !important; } + +.mx-4-auto { margin-right: auto !important; margin-left: auto !important; } + +.m-5 { margin: 1.5rem !important; } + +.mt-5 { margin-top: 1.5rem !important; } + +.mr-5 { margin-right: 1.5rem !important; } + +.mb-5 { margin-bottom: 1.5rem !important; } + +.ml-5 { margin-left: 1.5rem !important; } + +.mx-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } + +.my-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } + +.mxn-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } + +.mx-5-auto { margin-right: auto !important; margin-left: auto !important; } + +.m-6 { margin: 2rem !important; } + +.mt-6 { margin-top: 2rem !important; } + +.mr-6 { margin-right: 2rem !important; } + +.mb-6 { margin-bottom: 2rem !important; } + +.ml-6 { margin-left: 2rem !important; } + +.mx-6 { margin-right: 2rem !important; margin-left: 2rem !important; } + +.my-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } + +.mxn-6 { margin-right: -2rem !important; margin-left: -2rem !important; } + +.mx-6-auto { margin-right: auto !important; margin-left: auto !important; } + +.m-7 { margin: 2.5rem !important; } + +.mt-7 { margin-top: 2.5rem !important; } + +.mr-7 { margin-right: 2.5rem !important; } + +.mb-7 { margin-bottom: 2.5rem !important; } + +.ml-7 { margin-left: 2.5rem !important; } + +.mx-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } + +.my-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } + +.mxn-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } + +.mx-7-auto { margin-right: auto !important; margin-left: auto !important; } + +.m-8 { margin: 3rem !important; } + +.mt-8 { margin-top: 3rem !important; } + +.mr-8 { margin-right: 3rem !important; } + +.mb-8 { margin-bottom: 3rem !important; } + +.ml-8 { margin-left: 3rem !important; } + +.mx-8 { margin-right: 3rem !important; margin-left: 3rem !important; } + +.my-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } + +.mxn-8 { margin-right: -3rem !important; margin-left: -3rem !important; } + +.mx-8-auto { margin-right: auto !important; margin-left: auto !important; } + +.m-9 { margin: 3.5rem !important; } + +.mt-9 { margin-top: 3.5rem !important; } + +.mr-9 { margin-right: 3.5rem !important; } + +.mb-9 { margin-bottom: 3.5rem !important; } + +.ml-9 { margin-left: 3.5rem !important; } + +.mx-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } + +.my-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } + +.mxn-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } + +.mx-9-auto { margin-right: auto !important; margin-left: auto !important; } + +.m-10 { margin: 4rem !important; } + +.mt-10 { margin-top: 4rem !important; } + +.mr-10 { margin-right: 4rem !important; } + +.mb-10 { margin-bottom: 4rem !important; } + +.ml-10 { margin-left: 4rem !important; } + +.mx-10 { margin-right: 4rem !important; margin-left: 4rem !important; } + +.my-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } + +.mxn-10 { margin-right: -4rem !important; margin-left: -4rem !important; } + +.mx-10-auto { margin-right: auto !important; margin-left: auto !important; } + +@media (min-width: 20rem) { .m-xs-0 { margin: 0 !important; } + .mt-xs-0 { margin-top: 0 !important; } + .mr-xs-0 { margin-right: 0 !important; } + .mb-xs-0 { margin-bottom: 0 !important; } + .ml-xs-0 { margin-left: 0 !important; } + .mx-xs-0 { margin-right: 0 !important; margin-left: 0 !important; } + .my-xs-0 { margin-top: 0 !important; margin-bottom: 0 !important; } + .mxn-xs-0 { margin-right: -0 !important; margin-left: -0 !important; } } +@media (min-width: 20rem) { .m-xs-1 { margin: 0.25rem !important; } + .mt-xs-1 { margin-top: 0.25rem !important; } + .mr-xs-1 { margin-right: 0.25rem !important; } + .mb-xs-1 { margin-bottom: 0.25rem !important; } + .ml-xs-1 { margin-left: 0.25rem !important; } + .mx-xs-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } + .my-xs-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } + .mxn-xs-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } +@media (min-width: 20rem) { .m-xs-2 { margin: 0.5rem !important; } + .mt-xs-2 { margin-top: 0.5rem !important; } + .mr-xs-2 { margin-right: 0.5rem !important; } + .mb-xs-2 { margin-bottom: 0.5rem !important; } + .ml-xs-2 { margin-left: 0.5rem !important; } + .mx-xs-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } + .my-xs-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } + .mxn-xs-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } +@media (min-width: 20rem) { .m-xs-3 { margin: 0.75rem !important; } + .mt-xs-3 { margin-top: 0.75rem !important; } + .mr-xs-3 { margin-right: 0.75rem !important; } + .mb-xs-3 { margin-bottom: 0.75rem !important; } + .ml-xs-3 { margin-left: 0.75rem !important; } + .mx-xs-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } + .my-xs-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } + .mxn-xs-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } +@media (min-width: 20rem) { .m-xs-4 { margin: 1rem !important; } + .mt-xs-4 { margin-top: 1rem !important; } + .mr-xs-4 { margin-right: 1rem !important; } + .mb-xs-4 { margin-bottom: 1rem !important; } + .ml-xs-4 { margin-left: 1rem !important; } + .mx-xs-4 { margin-right: 1rem !important; margin-left: 1rem !important; } + .my-xs-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } + .mxn-xs-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } +@media (min-width: 20rem) { .m-xs-5 { margin: 1.5rem !important; } + .mt-xs-5 { margin-top: 1.5rem !important; } + .mr-xs-5 { margin-right: 1.5rem !important; } + .mb-xs-5 { margin-bottom: 1.5rem !important; } + .ml-xs-5 { margin-left: 1.5rem !important; } + .mx-xs-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } + .my-xs-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } + .mxn-xs-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } +@media (min-width: 20rem) { .m-xs-6 { margin: 2rem !important; } + .mt-xs-6 { margin-top: 2rem !important; } + .mr-xs-6 { margin-right: 2rem !important; } + .mb-xs-6 { margin-bottom: 2rem !important; } + .ml-xs-6 { margin-left: 2rem !important; } + .mx-xs-6 { margin-right: 2rem !important; margin-left: 2rem !important; } + .my-xs-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } + .mxn-xs-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } +@media (min-width: 20rem) { .m-xs-7 { margin: 2.5rem !important; } + .mt-xs-7 { margin-top: 2.5rem !important; } + .mr-xs-7 { margin-right: 2.5rem !important; } + .mb-xs-7 { margin-bottom: 2.5rem !important; } + .ml-xs-7 { margin-left: 2.5rem !important; } + .mx-xs-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } + .my-xs-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } + .mxn-xs-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } +@media (min-width: 20rem) { .m-xs-8 { margin: 3rem !important; } + .mt-xs-8 { margin-top: 3rem !important; } + .mr-xs-8 { margin-right: 3rem !important; } + .mb-xs-8 { margin-bottom: 3rem !important; } + .ml-xs-8 { margin-left: 3rem !important; } + .mx-xs-8 { margin-right: 3rem !important; margin-left: 3rem !important; } + .my-xs-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } + .mxn-xs-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } +@media (min-width: 20rem) { .m-xs-9 { margin: 3.5rem !important; } + .mt-xs-9 { margin-top: 3.5rem !important; } + .mr-xs-9 { margin-right: 3.5rem !important; } + .mb-xs-9 { margin-bottom: 3.5rem !important; } + .ml-xs-9 { margin-left: 3.5rem !important; } + .mx-xs-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } + .my-xs-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } + .mxn-xs-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } +@media (min-width: 20rem) { .m-xs-10 { margin: 4rem !important; } + .mt-xs-10 { margin-top: 4rem !important; } + .mr-xs-10 { margin-right: 4rem !important; } + .mb-xs-10 { margin-bottom: 4rem !important; } + .ml-xs-10 { margin-left: 4rem !important; } + .mx-xs-10 { margin-right: 4rem !important; margin-left: 4rem !important; } + .my-xs-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } + .mxn-xs-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } +@media (min-width: 31.25rem) { .m-sm-0 { margin: 0 !important; } + .mt-sm-0 { margin-top: 0 !important; } + .mr-sm-0 { margin-right: 0 !important; } + .mb-sm-0 { margin-bottom: 0 !important; } + .ml-sm-0 { margin-left: 0 !important; } + .mx-sm-0 { margin-right: 0 !important; margin-left: 0 !important; } + .my-sm-0 { margin-top: 0 !important; margin-bottom: 0 !important; } + .mxn-sm-0 { margin-right: -0 !important; margin-left: -0 !important; } } +@media (min-width: 31.25rem) { .m-sm-1 { margin: 0.25rem !important; } + .mt-sm-1 { margin-top: 0.25rem !important; } + .mr-sm-1 { margin-right: 0.25rem !important; } + .mb-sm-1 { margin-bottom: 0.25rem !important; } + .ml-sm-1 { margin-left: 0.25rem !important; } + .mx-sm-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } + .my-sm-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } + .mxn-sm-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } +@media (min-width: 31.25rem) { .m-sm-2 { margin: 0.5rem !important; } + .mt-sm-2 { margin-top: 0.5rem !important; } + .mr-sm-2 { margin-right: 0.5rem !important; } + .mb-sm-2 { margin-bottom: 0.5rem !important; } + .ml-sm-2 { margin-left: 0.5rem !important; } + .mx-sm-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } + .my-sm-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } + .mxn-sm-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } +@media (min-width: 31.25rem) { .m-sm-3 { margin: 0.75rem !important; } + .mt-sm-3 { margin-top: 0.75rem !important; } + .mr-sm-3 { margin-right: 0.75rem !important; } + .mb-sm-3 { margin-bottom: 0.75rem !important; } + .ml-sm-3 { margin-left: 0.75rem !important; } + .mx-sm-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } + .my-sm-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } + .mxn-sm-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } +@media (min-width: 31.25rem) { .m-sm-4 { margin: 1rem !important; } + .mt-sm-4 { margin-top: 1rem !important; } + .mr-sm-4 { margin-right: 1rem !important; } + .mb-sm-4 { margin-bottom: 1rem !important; } + .ml-sm-4 { margin-left: 1rem !important; } + .mx-sm-4 { margin-right: 1rem !important; margin-left: 1rem !important; } + .my-sm-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } + .mxn-sm-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } +@media (min-width: 31.25rem) { .m-sm-5 { margin: 1.5rem !important; } + .mt-sm-5 { margin-top: 1.5rem !important; } + .mr-sm-5 { margin-right: 1.5rem !important; } + .mb-sm-5 { margin-bottom: 1.5rem !important; } + .ml-sm-5 { margin-left: 1.5rem !important; } + .mx-sm-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } + .my-sm-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } + .mxn-sm-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } +@media (min-width: 31.25rem) { .m-sm-6 { margin: 2rem !important; } + .mt-sm-6 { margin-top: 2rem !important; } + .mr-sm-6 { margin-right: 2rem !important; } + .mb-sm-6 { margin-bottom: 2rem !important; } + .ml-sm-6 { margin-left: 2rem !important; } + .mx-sm-6 { margin-right: 2rem !important; margin-left: 2rem !important; } + .my-sm-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } + .mxn-sm-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } +@media (min-width: 31.25rem) { .m-sm-7 { margin: 2.5rem !important; } + .mt-sm-7 { margin-top: 2.5rem !important; } + .mr-sm-7 { margin-right: 2.5rem !important; } + .mb-sm-7 { margin-bottom: 2.5rem !important; } + .ml-sm-7 { margin-left: 2.5rem !important; } + .mx-sm-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } + .my-sm-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } + .mxn-sm-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } +@media (min-width: 31.25rem) { .m-sm-8 { margin: 3rem !important; } + .mt-sm-8 { margin-top: 3rem !important; } + .mr-sm-8 { margin-right: 3rem !important; } + .mb-sm-8 { margin-bottom: 3rem !important; } + .ml-sm-8 { margin-left: 3rem !important; } + .mx-sm-8 { margin-right: 3rem !important; margin-left: 3rem !important; } + .my-sm-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } + .mxn-sm-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } +@media (min-width: 31.25rem) { .m-sm-9 { margin: 3.5rem !important; } + .mt-sm-9 { margin-top: 3.5rem !important; } + .mr-sm-9 { margin-right: 3.5rem !important; } + .mb-sm-9 { margin-bottom: 3.5rem !important; } + .ml-sm-9 { margin-left: 3.5rem !important; } + .mx-sm-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } + .my-sm-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } + .mxn-sm-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } +@media (min-width: 31.25rem) { .m-sm-10 { margin: 4rem !important; } + .mt-sm-10 { margin-top: 4rem !important; } + .mr-sm-10 { margin-right: 4rem !important; } + .mb-sm-10 { margin-bottom: 4rem !important; } + .ml-sm-10 { margin-left: 4rem !important; } + .mx-sm-10 { margin-right: 4rem !important; margin-left: 4rem !important; } + .my-sm-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } + .mxn-sm-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } +@media (min-width: 50rem) { .m-md-0 { margin: 0 !important; } + .mt-md-0 { margin-top: 0 !important; } + .mr-md-0 { margin-right: 0 !important; } + .mb-md-0 { margin-bottom: 0 !important; } + .ml-md-0 { margin-left: 0 !important; } + .mx-md-0 { margin-right: 0 !important; margin-left: 0 !important; } + .my-md-0 { margin-top: 0 !important; margin-bottom: 0 !important; } + .mxn-md-0 { margin-right: -0 !important; margin-left: -0 !important; } } +@media (min-width: 50rem) { .m-md-1 { margin: 0.25rem !important; } + .mt-md-1 { margin-top: 0.25rem !important; } + .mr-md-1 { margin-right: 0.25rem !important; } + .mb-md-1 { margin-bottom: 0.25rem !important; } + .ml-md-1 { margin-left: 0.25rem !important; } + .mx-md-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } + .my-md-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } + .mxn-md-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } +@media (min-width: 50rem) { .m-md-2 { margin: 0.5rem !important; } + .mt-md-2 { margin-top: 0.5rem !important; } + .mr-md-2 { margin-right: 0.5rem !important; } + .mb-md-2 { margin-bottom: 0.5rem !important; } + .ml-md-2 { margin-left: 0.5rem !important; } + .mx-md-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } + .my-md-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } + .mxn-md-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } +@media (min-width: 50rem) { .m-md-3 { margin: 0.75rem !important; } + .mt-md-3 { margin-top: 0.75rem !important; } + .mr-md-3 { margin-right: 0.75rem !important; } + .mb-md-3 { margin-bottom: 0.75rem !important; } + .ml-md-3 { margin-left: 0.75rem !important; } + .mx-md-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } + .my-md-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } + .mxn-md-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } +@media (min-width: 50rem) { .m-md-4 { margin: 1rem !important; } + .mt-md-4 { margin-top: 1rem !important; } + .mr-md-4 { margin-right: 1rem !important; } + .mb-md-4 { margin-bottom: 1rem !important; } + .ml-md-4 { margin-left: 1rem !important; } + .mx-md-4 { margin-right: 1rem !important; margin-left: 1rem !important; } + .my-md-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } + .mxn-md-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } +@media (min-width: 50rem) { .m-md-5 { margin: 1.5rem !important; } + .mt-md-5 { margin-top: 1.5rem !important; } + .mr-md-5 { margin-right: 1.5rem !important; } + .mb-md-5 { margin-bottom: 1.5rem !important; } + .ml-md-5 { margin-left: 1.5rem !important; } + .mx-md-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } + .my-md-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } + .mxn-md-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } +@media (min-width: 50rem) { .m-md-6 { margin: 2rem !important; } + .mt-md-6 { margin-top: 2rem !important; } + .mr-md-6 { margin-right: 2rem !important; } + .mb-md-6 { margin-bottom: 2rem !important; } + .ml-md-6 { margin-left: 2rem !important; } + .mx-md-6 { margin-right: 2rem !important; margin-left: 2rem !important; } + .my-md-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } + .mxn-md-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } +@media (min-width: 50rem) { .m-md-7 { margin: 2.5rem !important; } + .mt-md-7 { margin-top: 2.5rem !important; } + .mr-md-7 { margin-right: 2.5rem !important; } + .mb-md-7 { margin-bottom: 2.5rem !important; } + .ml-md-7 { margin-left: 2.5rem !important; } + .mx-md-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } + .my-md-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } + .mxn-md-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } +@media (min-width: 50rem) { .m-md-8 { margin: 3rem !important; } + .mt-md-8 { margin-top: 3rem !important; } + .mr-md-8 { margin-right: 3rem !important; } + .mb-md-8 { margin-bottom: 3rem !important; } + .ml-md-8 { margin-left: 3rem !important; } + .mx-md-8 { margin-right: 3rem !important; margin-left: 3rem !important; } + .my-md-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } + .mxn-md-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } +@media (min-width: 50rem) { .m-md-9 { margin: 3.5rem !important; } + .mt-md-9 { margin-top: 3.5rem !important; } + .mr-md-9 { margin-right: 3.5rem !important; } + .mb-md-9 { margin-bottom: 3.5rem !important; } + .ml-md-9 { margin-left: 3.5rem !important; } + .mx-md-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } + .my-md-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } + .mxn-md-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } +@media (min-width: 50rem) { .m-md-10 { margin: 4rem !important; } + .mt-md-10 { margin-top: 4rem !important; } + .mr-md-10 { margin-right: 4rem !important; } + .mb-md-10 { margin-bottom: 4rem !important; } + .ml-md-10 { margin-left: 4rem !important; } + .mx-md-10 { margin-right: 4rem !important; margin-left: 4rem !important; } + .my-md-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } + .mxn-md-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } +@media (min-width: 66.5rem) { .m-lg-0 { margin: 0 !important; } + .mt-lg-0 { margin-top: 0 !important; } + .mr-lg-0 { margin-right: 0 !important; } + .mb-lg-0 { margin-bottom: 0 !important; } + .ml-lg-0 { margin-left: 0 !important; } + .mx-lg-0 { margin-right: 0 !important; margin-left: 0 !important; } + .my-lg-0 { margin-top: 0 !important; margin-bottom: 0 !important; } + .mxn-lg-0 { margin-right: -0 !important; margin-left: -0 !important; } } +@media (min-width: 66.5rem) { .m-lg-1 { margin: 0.25rem !important; } + .mt-lg-1 { margin-top: 0.25rem !important; } + .mr-lg-1 { margin-right: 0.25rem !important; } + .mb-lg-1 { margin-bottom: 0.25rem !important; } + .ml-lg-1 { margin-left: 0.25rem !important; } + .mx-lg-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } + .my-lg-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } + .mxn-lg-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } +@media (min-width: 66.5rem) { .m-lg-2 { margin: 0.5rem !important; } + .mt-lg-2 { margin-top: 0.5rem !important; } + .mr-lg-2 { margin-right: 0.5rem !important; } + .mb-lg-2 { margin-bottom: 0.5rem !important; } + .ml-lg-2 { margin-left: 0.5rem !important; } + .mx-lg-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } + .my-lg-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } + .mxn-lg-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } +@media (min-width: 66.5rem) { .m-lg-3 { margin: 0.75rem !important; } + .mt-lg-3 { margin-top: 0.75rem !important; } + .mr-lg-3 { margin-right: 0.75rem !important; } + .mb-lg-3 { margin-bottom: 0.75rem !important; } + .ml-lg-3 { margin-left: 0.75rem !important; } + .mx-lg-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } + .my-lg-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } + .mxn-lg-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } +@media (min-width: 66.5rem) { .m-lg-4 { margin: 1rem !important; } + .mt-lg-4 { margin-top: 1rem !important; } + .mr-lg-4 { margin-right: 1rem !important; } + .mb-lg-4 { margin-bottom: 1rem !important; } + .ml-lg-4 { margin-left: 1rem !important; } + .mx-lg-4 { margin-right: 1rem !important; margin-left: 1rem !important; } + .my-lg-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } + .mxn-lg-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } +@media (min-width: 66.5rem) { .m-lg-5 { margin: 1.5rem !important; } + .mt-lg-5 { margin-top: 1.5rem !important; } + .mr-lg-5 { margin-right: 1.5rem !important; } + .mb-lg-5 { margin-bottom: 1.5rem !important; } + .ml-lg-5 { margin-left: 1.5rem !important; } + .mx-lg-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } + .my-lg-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } + .mxn-lg-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } +@media (min-width: 66.5rem) { .m-lg-6 { margin: 2rem !important; } + .mt-lg-6 { margin-top: 2rem !important; } + .mr-lg-6 { margin-right: 2rem !important; } + .mb-lg-6 { margin-bottom: 2rem !important; } + .ml-lg-6 { margin-left: 2rem !important; } + .mx-lg-6 { margin-right: 2rem !important; margin-left: 2rem !important; } + .my-lg-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } + .mxn-lg-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } +@media (min-width: 66.5rem) { .m-lg-7 { margin: 2.5rem !important; } + .mt-lg-7 { margin-top: 2.5rem !important; } + .mr-lg-7 { margin-right: 2.5rem !important; } + .mb-lg-7 { margin-bottom: 2.5rem !important; } + .ml-lg-7 { margin-left: 2.5rem !important; } + .mx-lg-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } + .my-lg-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } + .mxn-lg-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } +@media (min-width: 66.5rem) { .m-lg-8 { margin: 3rem !important; } + .mt-lg-8 { margin-top: 3rem !important; } + .mr-lg-8 { margin-right: 3rem !important; } + .mb-lg-8 { margin-bottom: 3rem !important; } + .ml-lg-8 { margin-left: 3rem !important; } + .mx-lg-8 { margin-right: 3rem !important; margin-left: 3rem !important; } + .my-lg-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } + .mxn-lg-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } +@media (min-width: 66.5rem) { .m-lg-9 { margin: 3.5rem !important; } + .mt-lg-9 { margin-top: 3.5rem !important; } + .mr-lg-9 { margin-right: 3.5rem !important; } + .mb-lg-9 { margin-bottom: 3.5rem !important; } + .ml-lg-9 { margin-left: 3.5rem !important; } + .mx-lg-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } + .my-lg-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } + .mxn-lg-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } +@media (min-width: 66.5rem) { .m-lg-10 { margin: 4rem !important; } + .mt-lg-10 { margin-top: 4rem !important; } + .mr-lg-10 { margin-right: 4rem !important; } + .mb-lg-10 { margin-bottom: 4rem !important; } + .ml-lg-10 { margin-left: 4rem !important; } + .mx-lg-10 { margin-right: 4rem !important; margin-left: 4rem !important; } + .my-lg-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } + .mxn-lg-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } +@media (min-width: 87.5rem) { .m-xl-0 { margin: 0 !important; } + .mt-xl-0 { margin-top: 0 !important; } + .mr-xl-0 { margin-right: 0 !important; } + .mb-xl-0 { margin-bottom: 0 !important; } + .ml-xl-0 { margin-left: 0 !important; } + .mx-xl-0 { margin-right: 0 !important; margin-left: 0 !important; } + .my-xl-0 { margin-top: 0 !important; margin-bottom: 0 !important; } + .mxn-xl-0 { margin-right: -0 !important; margin-left: -0 !important; } } +@media (min-width: 87.5rem) { .m-xl-1 { margin: 0.25rem !important; } + .mt-xl-1 { margin-top: 0.25rem !important; } + .mr-xl-1 { margin-right: 0.25rem !important; } + .mb-xl-1 { margin-bottom: 0.25rem !important; } + .ml-xl-1 { margin-left: 0.25rem !important; } + .mx-xl-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } + .my-xl-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } + .mxn-xl-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } +@media (min-width: 87.5rem) { .m-xl-2 { margin: 0.5rem !important; } + .mt-xl-2 { margin-top: 0.5rem !important; } + .mr-xl-2 { margin-right: 0.5rem !important; } + .mb-xl-2 { margin-bottom: 0.5rem !important; } + .ml-xl-2 { margin-left: 0.5rem !important; } + .mx-xl-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } + .my-xl-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } + .mxn-xl-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } +@media (min-width: 87.5rem) { .m-xl-3 { margin: 0.75rem !important; } + .mt-xl-3 { margin-top: 0.75rem !important; } + .mr-xl-3 { margin-right: 0.75rem !important; } + .mb-xl-3 { margin-bottom: 0.75rem !important; } + .ml-xl-3 { margin-left: 0.75rem !important; } + .mx-xl-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } + .my-xl-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } + .mxn-xl-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } +@media (min-width: 87.5rem) { .m-xl-4 { margin: 1rem !important; } + .mt-xl-4 { margin-top: 1rem !important; } + .mr-xl-4 { margin-right: 1rem !important; } + .mb-xl-4 { margin-bottom: 1rem !important; } + .ml-xl-4 { margin-left: 1rem !important; } + .mx-xl-4 { margin-right: 1rem !important; margin-left: 1rem !important; } + .my-xl-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } + .mxn-xl-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } +@media (min-width: 87.5rem) { .m-xl-5 { margin: 1.5rem !important; } + .mt-xl-5 { margin-top: 1.5rem !important; } + .mr-xl-5 { margin-right: 1.5rem !important; } + .mb-xl-5 { margin-bottom: 1.5rem !important; } + .ml-xl-5 { margin-left: 1.5rem !important; } + .mx-xl-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } + .my-xl-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } + .mxn-xl-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } +@media (min-width: 87.5rem) { .m-xl-6 { margin: 2rem !important; } + .mt-xl-6 { margin-top: 2rem !important; } + .mr-xl-6 { margin-right: 2rem !important; } + .mb-xl-6 { margin-bottom: 2rem !important; } + .ml-xl-6 { margin-left: 2rem !important; } + .mx-xl-6 { margin-right: 2rem !important; margin-left: 2rem !important; } + .my-xl-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } + .mxn-xl-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } +@media (min-width: 87.5rem) { .m-xl-7 { margin: 2.5rem !important; } + .mt-xl-7 { margin-top: 2.5rem !important; } + .mr-xl-7 { margin-right: 2.5rem !important; } + .mb-xl-7 { margin-bottom: 2.5rem !important; } + .ml-xl-7 { margin-left: 2.5rem !important; } + .mx-xl-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } + .my-xl-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } + .mxn-xl-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } +@media (min-width: 87.5rem) { .m-xl-8 { margin: 3rem !important; } + .mt-xl-8 { margin-top: 3rem !important; } + .mr-xl-8 { margin-right: 3rem !important; } + .mb-xl-8 { margin-bottom: 3rem !important; } + .ml-xl-8 { margin-left: 3rem !important; } + .mx-xl-8 { margin-right: 3rem !important; margin-left: 3rem !important; } + .my-xl-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } + .mxn-xl-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } +@media (min-width: 87.5rem) { .m-xl-9 { margin: 3.5rem !important; } + .mt-xl-9 { margin-top: 3.5rem !important; } + .mr-xl-9 { margin-right: 3.5rem !important; } + .mb-xl-9 { margin-bottom: 3.5rem !important; } + .ml-xl-9 { margin-left: 3.5rem !important; } + .mx-xl-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } + .my-xl-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } + .mxn-xl-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } +@media (min-width: 87.5rem) { .m-xl-10 { margin: 4rem !important; } + .mt-xl-10 { margin-top: 4rem !important; } + .mr-xl-10 { margin-right: 4rem !important; } + .mb-xl-10 { margin-bottom: 4rem !important; } + .ml-xl-10 { margin-left: 4rem !important; } + .mx-xl-10 { margin-right: 4rem !important; margin-left: 4rem !important; } + .my-xl-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } + .mxn-xl-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } +.p-0 { padding: 0 !important; } + +.pt-0 { padding-top: 0 !important; } + +.pr-0 { padding-right: 0 !important; } + +.pb-0 { padding-bottom: 0 !important; } + +.pl-0 { padding-left: 0 !important; } + +.px-0 { padding-right: 0 !important; padding-left: 0 !important; } + +.py-0 { padding-top: 0 !important; padding-bottom: 0 !important; } + +.p-1 { padding: 0.25rem !important; } + +.pt-1 { padding-top: 0.25rem !important; } + +.pr-1 { padding-right: 0.25rem !important; } + +.pb-1 { padding-bottom: 0.25rem !important; } + +.pl-1 { padding-left: 0.25rem !important; } + +.px-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } + +.py-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } + +.p-2 { padding: 0.5rem !important; } + +.pt-2 { padding-top: 0.5rem !important; } + +.pr-2 { padding-right: 0.5rem !important; } + +.pb-2 { padding-bottom: 0.5rem !important; } + +.pl-2 { padding-left: 0.5rem !important; } + +.px-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } + +.py-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } + +.p-3 { padding: 0.75rem !important; } + +.pt-3 { padding-top: 0.75rem !important; } + +.pr-3 { padding-right: 0.75rem !important; } + +.pb-3 { padding-bottom: 0.75rem !important; } + +.pl-3 { padding-left: 0.75rem !important; } + +.px-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } + +.py-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } + +.p-4 { padding: 1rem !important; } + +.pt-4 { padding-top: 1rem !important; } + +.pr-4 { padding-right: 1rem !important; } + +.pb-4 { padding-bottom: 1rem !important; } + +.pl-4 { padding-left: 1rem !important; } + +.px-4 { padding-right: 1rem !important; padding-left: 1rem !important; } + +.py-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } + +.p-5 { padding: 1.5rem !important; } + +.pt-5 { padding-top: 1.5rem !important; } + +.pr-5 { padding-right: 1.5rem !important; } + +.pb-5 { padding-bottom: 1.5rem !important; } + +.pl-5 { padding-left: 1.5rem !important; } + +.px-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } + +.py-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } + +.p-6 { padding: 2rem !important; } + +.pt-6 { padding-top: 2rem !important; } + +.pr-6 { padding-right: 2rem !important; } + +.pb-6 { padding-bottom: 2rem !important; } + +.pl-6 { padding-left: 2rem !important; } + +.px-6 { padding-right: 2rem !important; padding-left: 2rem !important; } + +.py-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } + +.p-7 { padding: 2.5rem !important; } + +.pt-7 { padding-top: 2.5rem !important; } + +.pr-7 { padding-right: 2.5rem !important; } + +.pb-7 { padding-bottom: 2.5rem !important; } + +.pl-7 { padding-left: 2.5rem !important; } + +.px-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } + +.py-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } + +.p-8 { padding: 3rem !important; } + +.pt-8 { padding-top: 3rem !important; } + +.pr-8 { padding-right: 3rem !important; } + +.pb-8 { padding-bottom: 3rem !important; } + +.pl-8 { padding-left: 3rem !important; } + +.px-8 { padding-right: 3rem !important; padding-left: 3rem !important; } + +.py-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } + +.p-9 { padding: 3.5rem !important; } + +.pt-9 { padding-top: 3.5rem !important; } + +.pr-9 { padding-right: 3.5rem !important; } + +.pb-9 { padding-bottom: 3.5rem !important; } + +.pl-9 { padding-left: 3.5rem !important; } + +.px-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } + +.py-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } + +.p-10 { padding: 4rem !important; } + +.pt-10 { padding-top: 4rem !important; } + +.pr-10 { padding-right: 4rem !important; } + +.pb-10 { padding-bottom: 4rem !important; } + +.pl-10 { padding-left: 4rem !important; } + +.px-10 { padding-right: 4rem !important; padding-left: 4rem !important; } + +.py-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } + +@media (min-width: 20rem) { .p-xs-0 { padding: 0 !important; } + .pt-xs-0 { padding-top: 0 !important; } + .pr-xs-0 { padding-right: 0 !important; } + .pb-xs-0 { padding-bottom: 0 !important; } + .pl-xs-0 { padding-left: 0 !important; } + .px-xs-0 { padding-right: 0 !important; padding-left: 0 !important; } + .py-xs-0 { padding-top: 0 !important; padding-bottom: 0 !important; } + .p-xs-1 { padding: 0.25rem !important; } + .pt-xs-1 { padding-top: 0.25rem !important; } + .pr-xs-1 { padding-right: 0.25rem !important; } + .pb-xs-1 { padding-bottom: 0.25rem !important; } + .pl-xs-1 { padding-left: 0.25rem !important; } + .px-xs-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } + .py-xs-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } + .p-xs-2 { padding: 0.5rem !important; } + .pt-xs-2 { padding-top: 0.5rem !important; } + .pr-xs-2 { padding-right: 0.5rem !important; } + .pb-xs-2 { padding-bottom: 0.5rem !important; } + .pl-xs-2 { padding-left: 0.5rem !important; } + .px-xs-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } + .py-xs-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } + .p-xs-3 { padding: 0.75rem !important; } + .pt-xs-3 { padding-top: 0.75rem !important; } + .pr-xs-3 { padding-right: 0.75rem !important; } + .pb-xs-3 { padding-bottom: 0.75rem !important; } + .pl-xs-3 { padding-left: 0.75rem !important; } + .px-xs-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } + .py-xs-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } + .p-xs-4 { padding: 1rem !important; } + .pt-xs-4 { padding-top: 1rem !important; } + .pr-xs-4 { padding-right: 1rem !important; } + .pb-xs-4 { padding-bottom: 1rem !important; } + .pl-xs-4 { padding-left: 1rem !important; } + .px-xs-4 { padding-right: 1rem !important; padding-left: 1rem !important; } + .py-xs-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } + .p-xs-5 { padding: 1.5rem !important; } + .pt-xs-5 { padding-top: 1.5rem !important; } + .pr-xs-5 { padding-right: 1.5rem !important; } + .pb-xs-5 { padding-bottom: 1.5rem !important; } + .pl-xs-5 { padding-left: 1.5rem !important; } + .px-xs-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } + .py-xs-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } + .p-xs-6 { padding: 2rem !important; } + .pt-xs-6 { padding-top: 2rem !important; } + .pr-xs-6 { padding-right: 2rem !important; } + .pb-xs-6 { padding-bottom: 2rem !important; } + .pl-xs-6 { padding-left: 2rem !important; } + .px-xs-6 { padding-right: 2rem !important; padding-left: 2rem !important; } + .py-xs-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } + .p-xs-7 { padding: 2.5rem !important; } + .pt-xs-7 { padding-top: 2.5rem !important; } + .pr-xs-7 { padding-right: 2.5rem !important; } + .pb-xs-7 { padding-bottom: 2.5rem !important; } + .pl-xs-7 { padding-left: 2.5rem !important; } + .px-xs-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } + .py-xs-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } + .p-xs-8 { padding: 3rem !important; } + .pt-xs-8 { padding-top: 3rem !important; } + .pr-xs-8 { padding-right: 3rem !important; } + .pb-xs-8 { padding-bottom: 3rem !important; } + .pl-xs-8 { padding-left: 3rem !important; } + .px-xs-8 { padding-right: 3rem !important; padding-left: 3rem !important; } + .py-xs-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } + .p-xs-9 { padding: 3.5rem !important; } + .pt-xs-9 { padding-top: 3.5rem !important; } + .pr-xs-9 { padding-right: 3.5rem !important; } + .pb-xs-9 { padding-bottom: 3.5rem !important; } + .pl-xs-9 { padding-left: 3.5rem !important; } + .px-xs-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } + .py-xs-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } + .p-xs-10 { padding: 4rem !important; } + .pt-xs-10 { padding-top: 4rem !important; } + .pr-xs-10 { padding-right: 4rem !important; } + .pb-xs-10 { padding-bottom: 4rem !important; } + .pl-xs-10 { padding-left: 4rem !important; } + .px-xs-10 { padding-right: 4rem !important; padding-left: 4rem !important; } + .py-xs-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } +@media (min-width: 31.25rem) { .p-sm-0 { padding: 0 !important; } + .pt-sm-0 { padding-top: 0 !important; } + .pr-sm-0 { padding-right: 0 !important; } + .pb-sm-0 { padding-bottom: 0 !important; } + .pl-sm-0 { padding-left: 0 !important; } + .px-sm-0 { padding-right: 0 !important; padding-left: 0 !important; } + .py-sm-0 { padding-top: 0 !important; padding-bottom: 0 !important; } + .p-sm-1 { padding: 0.25rem !important; } + .pt-sm-1 { padding-top: 0.25rem !important; } + .pr-sm-1 { padding-right: 0.25rem !important; } + .pb-sm-1 { padding-bottom: 0.25rem !important; } + .pl-sm-1 { padding-left: 0.25rem !important; } + .px-sm-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } + .py-sm-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } + .p-sm-2 { padding: 0.5rem !important; } + .pt-sm-2 { padding-top: 0.5rem !important; } + .pr-sm-2 { padding-right: 0.5rem !important; } + .pb-sm-2 { padding-bottom: 0.5rem !important; } + .pl-sm-2 { padding-left: 0.5rem !important; } + .px-sm-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } + .py-sm-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } + .p-sm-3 { padding: 0.75rem !important; } + .pt-sm-3 { padding-top: 0.75rem !important; } + .pr-sm-3 { padding-right: 0.75rem !important; } + .pb-sm-3 { padding-bottom: 0.75rem !important; } + .pl-sm-3 { padding-left: 0.75rem !important; } + .px-sm-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } + .py-sm-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } + .p-sm-4 { padding: 1rem !important; } + .pt-sm-4 { padding-top: 1rem !important; } + .pr-sm-4 { padding-right: 1rem !important; } + .pb-sm-4 { padding-bottom: 1rem !important; } + .pl-sm-4 { padding-left: 1rem !important; } + .px-sm-4 { padding-right: 1rem !important; padding-left: 1rem !important; } + .py-sm-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } + .p-sm-5 { padding: 1.5rem !important; } + .pt-sm-5 { padding-top: 1.5rem !important; } + .pr-sm-5 { padding-right: 1.5rem !important; } + .pb-sm-5 { padding-bottom: 1.5rem !important; } + .pl-sm-5 { padding-left: 1.5rem !important; } + .px-sm-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } + .py-sm-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } + .p-sm-6 { padding: 2rem !important; } + .pt-sm-6 { padding-top: 2rem !important; } + .pr-sm-6 { padding-right: 2rem !important; } + .pb-sm-6 { padding-bottom: 2rem !important; } + .pl-sm-6 { padding-left: 2rem !important; } + .px-sm-6 { padding-right: 2rem !important; padding-left: 2rem !important; } + .py-sm-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } + .p-sm-7 { padding: 2.5rem !important; } + .pt-sm-7 { padding-top: 2.5rem !important; } + .pr-sm-7 { padding-right: 2.5rem !important; } + .pb-sm-7 { padding-bottom: 2.5rem !important; } + .pl-sm-7 { padding-left: 2.5rem !important; } + .px-sm-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } + .py-sm-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } + .p-sm-8 { padding: 3rem !important; } + .pt-sm-8 { padding-top: 3rem !important; } + .pr-sm-8 { padding-right: 3rem !important; } + .pb-sm-8 { padding-bottom: 3rem !important; } + .pl-sm-8 { padding-left: 3rem !important; } + .px-sm-8 { padding-right: 3rem !important; padding-left: 3rem !important; } + .py-sm-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } + .p-sm-9 { padding: 3.5rem !important; } + .pt-sm-9 { padding-top: 3.5rem !important; } + .pr-sm-9 { padding-right: 3.5rem !important; } + .pb-sm-9 { padding-bottom: 3.5rem !important; } + .pl-sm-9 { padding-left: 3.5rem !important; } + .px-sm-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } + .py-sm-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } + .p-sm-10 { padding: 4rem !important; } + .pt-sm-10 { padding-top: 4rem !important; } + .pr-sm-10 { padding-right: 4rem !important; } + .pb-sm-10 { padding-bottom: 4rem !important; } + .pl-sm-10 { padding-left: 4rem !important; } + .px-sm-10 { padding-right: 4rem !important; padding-left: 4rem !important; } + .py-sm-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } +@media (min-width: 50rem) { .p-md-0 { padding: 0 !important; } + .pt-md-0 { padding-top: 0 !important; } + .pr-md-0 { padding-right: 0 !important; } + .pb-md-0 { padding-bottom: 0 !important; } + .pl-md-0 { padding-left: 0 !important; } + .px-md-0 { padding-right: 0 !important; padding-left: 0 !important; } + .py-md-0 { padding-top: 0 !important; padding-bottom: 0 !important; } + .p-md-1 { padding: 0.25rem !important; } + .pt-md-1 { padding-top: 0.25rem !important; } + .pr-md-1 { padding-right: 0.25rem !important; } + .pb-md-1 { padding-bottom: 0.25rem !important; } + .pl-md-1 { padding-left: 0.25rem !important; } + .px-md-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } + .py-md-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } + .p-md-2 { padding: 0.5rem !important; } + .pt-md-2 { padding-top: 0.5rem !important; } + .pr-md-2 { padding-right: 0.5rem !important; } + .pb-md-2 { padding-bottom: 0.5rem !important; } + .pl-md-2 { padding-left: 0.5rem !important; } + .px-md-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } + .py-md-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } + .p-md-3 { padding: 0.75rem !important; } + .pt-md-3 { padding-top: 0.75rem !important; } + .pr-md-3 { padding-right: 0.75rem !important; } + .pb-md-3 { padding-bottom: 0.75rem !important; } + .pl-md-3 { padding-left: 0.75rem !important; } + .px-md-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } + .py-md-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } + .p-md-4 { padding: 1rem !important; } + .pt-md-4 { padding-top: 1rem !important; } + .pr-md-4 { padding-right: 1rem !important; } + .pb-md-4 { padding-bottom: 1rem !important; } + .pl-md-4 { padding-left: 1rem !important; } + .px-md-4 { padding-right: 1rem !important; padding-left: 1rem !important; } + .py-md-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } + .p-md-5 { padding: 1.5rem !important; } + .pt-md-5 { padding-top: 1.5rem !important; } + .pr-md-5 { padding-right: 1.5rem !important; } + .pb-md-5 { padding-bottom: 1.5rem !important; } + .pl-md-5 { padding-left: 1.5rem !important; } + .px-md-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } + .py-md-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } + .p-md-6 { padding: 2rem !important; } + .pt-md-6 { padding-top: 2rem !important; } + .pr-md-6 { padding-right: 2rem !important; } + .pb-md-6 { padding-bottom: 2rem !important; } + .pl-md-6 { padding-left: 2rem !important; } + .px-md-6 { padding-right: 2rem !important; padding-left: 2rem !important; } + .py-md-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } + .p-md-7 { padding: 2.5rem !important; } + .pt-md-7 { padding-top: 2.5rem !important; } + .pr-md-7 { padding-right: 2.5rem !important; } + .pb-md-7 { padding-bottom: 2.5rem !important; } + .pl-md-7 { padding-left: 2.5rem !important; } + .px-md-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } + .py-md-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } + .p-md-8 { padding: 3rem !important; } + .pt-md-8 { padding-top: 3rem !important; } + .pr-md-8 { padding-right: 3rem !important; } + .pb-md-8 { padding-bottom: 3rem !important; } + .pl-md-8 { padding-left: 3rem !important; } + .px-md-8 { padding-right: 3rem !important; padding-left: 3rem !important; } + .py-md-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } + .p-md-9 { padding: 3.5rem !important; } + .pt-md-9 { padding-top: 3.5rem !important; } + .pr-md-9 { padding-right: 3.5rem !important; } + .pb-md-9 { padding-bottom: 3.5rem !important; } + .pl-md-9 { padding-left: 3.5rem !important; } + .px-md-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } + .py-md-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } + .p-md-10 { padding: 4rem !important; } + .pt-md-10 { padding-top: 4rem !important; } + .pr-md-10 { padding-right: 4rem !important; } + .pb-md-10 { padding-bottom: 4rem !important; } + .pl-md-10 { padding-left: 4rem !important; } + .px-md-10 { padding-right: 4rem !important; padding-left: 4rem !important; } + .py-md-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } +@media (min-width: 66.5rem) { .p-lg-0 { padding: 0 !important; } + .pt-lg-0 { padding-top: 0 !important; } + .pr-lg-0 { padding-right: 0 !important; } + .pb-lg-0 { padding-bottom: 0 !important; } + .pl-lg-0 { padding-left: 0 !important; } + .px-lg-0 { padding-right: 0 !important; padding-left: 0 !important; } + .py-lg-0 { padding-top: 0 !important; padding-bottom: 0 !important; } + .p-lg-1 { padding: 0.25rem !important; } + .pt-lg-1 { padding-top: 0.25rem !important; } + .pr-lg-1 { padding-right: 0.25rem !important; } + .pb-lg-1 { padding-bottom: 0.25rem !important; } + .pl-lg-1 { padding-left: 0.25rem !important; } + .px-lg-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } + .py-lg-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } + .p-lg-2 { padding: 0.5rem !important; } + .pt-lg-2 { padding-top: 0.5rem !important; } + .pr-lg-2 { padding-right: 0.5rem !important; } + .pb-lg-2 { padding-bottom: 0.5rem !important; } + .pl-lg-2 { padding-left: 0.5rem !important; } + .px-lg-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } + .py-lg-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } + .p-lg-3 { padding: 0.75rem !important; } + .pt-lg-3 { padding-top: 0.75rem !important; } + .pr-lg-3 { padding-right: 0.75rem !important; } + .pb-lg-3 { padding-bottom: 0.75rem !important; } + .pl-lg-3 { padding-left: 0.75rem !important; } + .px-lg-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } + .py-lg-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } + .p-lg-4 { padding: 1rem !important; } + .pt-lg-4 { padding-top: 1rem !important; } + .pr-lg-4 { padding-right: 1rem !important; } + .pb-lg-4 { padding-bottom: 1rem !important; } + .pl-lg-4 { padding-left: 1rem !important; } + .px-lg-4 { padding-right: 1rem !important; padding-left: 1rem !important; } + .py-lg-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } + .p-lg-5 { padding: 1.5rem !important; } + .pt-lg-5 { padding-top: 1.5rem !important; } + .pr-lg-5 { padding-right: 1.5rem !important; } + .pb-lg-5 { padding-bottom: 1.5rem !important; } + .pl-lg-5 { padding-left: 1.5rem !important; } + .px-lg-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } + .py-lg-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } + .p-lg-6 { padding: 2rem !important; } + .pt-lg-6 { padding-top: 2rem !important; } + .pr-lg-6 { padding-right: 2rem !important; } + .pb-lg-6 { padding-bottom: 2rem !important; } + .pl-lg-6 { padding-left: 2rem !important; } + .px-lg-6 { padding-right: 2rem !important; padding-left: 2rem !important; } + .py-lg-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } + .p-lg-7 { padding: 2.5rem !important; } + .pt-lg-7 { padding-top: 2.5rem !important; } + .pr-lg-7 { padding-right: 2.5rem !important; } + .pb-lg-7 { padding-bottom: 2.5rem !important; } + .pl-lg-7 { padding-left: 2.5rem !important; } + .px-lg-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } + .py-lg-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } + .p-lg-8 { padding: 3rem !important; } + .pt-lg-8 { padding-top: 3rem !important; } + .pr-lg-8 { padding-right: 3rem !important; } + .pb-lg-8 { padding-bottom: 3rem !important; } + .pl-lg-8 { padding-left: 3rem !important; } + .px-lg-8 { padding-right: 3rem !important; padding-left: 3rem !important; } + .py-lg-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } + .p-lg-9 { padding: 3.5rem !important; } + .pt-lg-9 { padding-top: 3.5rem !important; } + .pr-lg-9 { padding-right: 3.5rem !important; } + .pb-lg-9 { padding-bottom: 3.5rem !important; } + .pl-lg-9 { padding-left: 3.5rem !important; } + .px-lg-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } + .py-lg-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } + .p-lg-10 { padding: 4rem !important; } + .pt-lg-10 { padding-top: 4rem !important; } + .pr-lg-10 { padding-right: 4rem !important; } + .pb-lg-10 { padding-bottom: 4rem !important; } + .pl-lg-10 { padding-left: 4rem !important; } + .px-lg-10 { padding-right: 4rem !important; padding-left: 4rem !important; } + .py-lg-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } +@media (min-width: 87.5rem) { .p-xl-0 { padding: 0 !important; } + .pt-xl-0 { padding-top: 0 !important; } + .pr-xl-0 { padding-right: 0 !important; } + .pb-xl-0 { padding-bottom: 0 !important; } + .pl-xl-0 { padding-left: 0 !important; } + .px-xl-0 { padding-right: 0 !important; padding-left: 0 !important; } + .py-xl-0 { padding-top: 0 !important; padding-bottom: 0 !important; } + .p-xl-1 { padding: 0.25rem !important; } + .pt-xl-1 { padding-top: 0.25rem !important; } + .pr-xl-1 { padding-right: 0.25rem !important; } + .pb-xl-1 { padding-bottom: 0.25rem !important; } + .pl-xl-1 { padding-left: 0.25rem !important; } + .px-xl-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } + .py-xl-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } + .p-xl-2 { padding: 0.5rem !important; } + .pt-xl-2 { padding-top: 0.5rem !important; } + .pr-xl-2 { padding-right: 0.5rem !important; } + .pb-xl-2 { padding-bottom: 0.5rem !important; } + .pl-xl-2 { padding-left: 0.5rem !important; } + .px-xl-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } + .py-xl-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } + .p-xl-3 { padding: 0.75rem !important; } + .pt-xl-3 { padding-top: 0.75rem !important; } + .pr-xl-3 { padding-right: 0.75rem !important; } + .pb-xl-3 { padding-bottom: 0.75rem !important; } + .pl-xl-3 { padding-left: 0.75rem !important; } + .px-xl-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } + .py-xl-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } + .p-xl-4 { padding: 1rem !important; } + .pt-xl-4 { padding-top: 1rem !important; } + .pr-xl-4 { padding-right: 1rem !important; } + .pb-xl-4 { padding-bottom: 1rem !important; } + .pl-xl-4 { padding-left: 1rem !important; } + .px-xl-4 { padding-right: 1rem !important; padding-left: 1rem !important; } + .py-xl-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } + .p-xl-5 { padding: 1.5rem !important; } + .pt-xl-5 { padding-top: 1.5rem !important; } + .pr-xl-5 { padding-right: 1.5rem !important; } + .pb-xl-5 { padding-bottom: 1.5rem !important; } + .pl-xl-5 { padding-left: 1.5rem !important; } + .px-xl-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } + .py-xl-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } + .p-xl-6 { padding: 2rem !important; } + .pt-xl-6 { padding-top: 2rem !important; } + .pr-xl-6 { padding-right: 2rem !important; } + .pb-xl-6 { padding-bottom: 2rem !important; } + .pl-xl-6 { padding-left: 2rem !important; } + .px-xl-6 { padding-right: 2rem !important; padding-left: 2rem !important; } + .py-xl-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } + .p-xl-7 { padding: 2.5rem !important; } + .pt-xl-7 { padding-top: 2.5rem !important; } + .pr-xl-7 { padding-right: 2.5rem !important; } + .pb-xl-7 { padding-bottom: 2.5rem !important; } + .pl-xl-7 { padding-left: 2.5rem !important; } + .px-xl-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } + .py-xl-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } + .p-xl-8 { padding: 3rem !important; } + .pt-xl-8 { padding-top: 3rem !important; } + .pr-xl-8 { padding-right: 3rem !important; } + .pb-xl-8 { padding-bottom: 3rem !important; } + .pl-xl-8 { padding-left: 3rem !important; } + .px-xl-8 { padding-right: 3rem !important; padding-left: 3rem !important; } + .py-xl-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } + .p-xl-9 { padding: 3.5rem !important; } + .pt-xl-9 { padding-top: 3.5rem !important; } + .pr-xl-9 { padding-right: 3.5rem !important; } + .pb-xl-9 { padding-bottom: 3.5rem !important; } + .pl-xl-9 { padding-left: 3.5rem !important; } + .px-xl-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } + .py-xl-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } + .p-xl-10 { padding: 4rem !important; } + .pt-xl-10 { padding-top: 4rem !important; } + .pr-xl-10 { padding-right: 4rem !important; } + .pb-xl-10 { padding-bottom: 4rem !important; } + .pl-xl-10 { padding-left: 4rem !important; } + .px-xl-10 { padding-right: 4rem !important; padding-left: 4rem !important; } + .py-xl-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } +@media print { .site-footer, .site-button, #edit-this-page, #back-to-top, .site-nav, .main-header { display: none !important; } + .side-bar { width: 100%; height: auto; border-right: 0 !important; } + .site-header { border-bottom: 1px solid #eeebee; } + .site-title { font-size: 1rem !important; font-weight: 700 !important; } + .text-small { font-size: 8pt !important; } + pre.highlight { border: 1px solid #eeebee; } + .main { max-width: none; margin-left: 0; } } +a.skip-to-main { left: -999px; position: absolute; top: auto; width: 1px; height: 1px; overflow: hidden; z-index: -999; } + +a.skip-to-main:focus, a.skip-to-main:active { color: #7253ed; background-color: #fff; left: auto; top: auto; width: 30%; height: auto; overflow: auto; margin: 10px 35%; padding: 5px; border-radius: 15px; border: 4px solid #5e41d0; text-align: center; font-size: 1.2em; z-index: 999; } + +div.opaque { background-color: #fff; } + +p.note, blockquote.note { background: #f5f7f9; border-left: 4px solid #2ce5b5; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); padding: .8rem; } +p.note > .note-title, blockquote.note > .note-title { color: #2ce5b5; display: block; font-weight: bold; text-transform: uppercase; font-size: .75em; padding-bottom: .125rem; } + +p.note-title, blockquote.note-title { background: #f5f7f9; border-left: 4px solid #2ce5b5; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); padding: .8rem; } +p.note-title > p:first-child, blockquote.note-title > p:first-child { margin-top: 0; margin-bottom: 0; color: #2ce5b5; display: block; font-weight: bold; text-transform: uppercase; font-size: .75em; padding-bottom: .125rem; } + +blockquote.note { margin-left: 0; margin-right: 0; } +blockquote.note > p:first-child { margin-top: 0; } +blockquote.note > p:last-child { margin-bottom: 0; } + +blockquote.note-title { margin-left: 0; margin-right: 0; } +blockquote.note-title > p:nth-child(2) { margin-top: 0; } +blockquote.note-title > p:last-child { margin-bottom: 0; } + +p.warning, blockquote.warning { background: rgba(247, 126, 126, 0.2); border-left: 4px solid #dd2e2e; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); padding: .8rem; } +p.warning::before, blockquote.warning::before { color: #dd2e2e; content: "⚠️ Warning ⚠️"; display: block; font-weight: bold; text-transform: uppercase; font-size: .75em; padding-bottom: .125rem; } +p.warning > .warning-title, blockquote.warning > .warning-title { color: #dd2e2e; display: block; font-weight: bold; text-transform: uppercase; font-size: .75em; padding-bottom: .125rem; } + +p.warning-title, blockquote.warning-title { background: rgba(247, 126, 126, 0.2); border-left: 4px solid #dd2e2e; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); padding: .8rem; } +p.warning-title > p:first-child, blockquote.warning-title > p:first-child { margin-top: 0; margin-bottom: 0; color: #dd2e2e; display: block; font-weight: bold; text-transform: uppercase; font-size: .75em; padding-bottom: .125rem; } + +blockquote.warning { margin-left: 0; margin-right: 0; } +blockquote.warning > p:first-child { margin-top: 0; } +blockquote.warning > p:last-child { margin-bottom: 0; } + +blockquote.warning-title { margin-left: 0; margin-right: 0; } +blockquote.warning-title > p:nth-child(2) { margin-top: 0; } +blockquote.warning-title > p:last-child { margin-bottom: 0; } + +p.tip, blockquote.tip { background: rgba(65, 214, 147, 0.2); border-left: 4px solid #026e57; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); padding: .8rem; } +p.tip > .tip-title, blockquote.tip > .tip-title { color: #026e57; display: block; font-weight: bold; text-transform: uppercase; font-size: .75em; padding-bottom: .125rem; } + +p.tip-title, blockquote.tip-title { background: rgba(65, 214, 147, 0.2); border-left: 4px solid #026e57; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); padding: .8rem; } +p.tip-title > p:first-child, blockquote.tip-title > p:first-child { margin-top: 0; margin-bottom: 0; color: #026e57; display: block; font-weight: bold; text-transform: uppercase; font-size: .75em; padding-bottom: .125rem; } + +blockquote.tip { margin-left: 0; margin-right: 0; } +blockquote.tip > p:first-child { margin-top: 0; } +blockquote.tip > p:last-child { margin-bottom: 0; } + +blockquote.tip-title { margin-left: 0; margin-right: 0; } +blockquote.tip-title > p:nth-child(2) { margin-top: 0; } +blockquote.tip-title > p:last-child { margin-bottom: 0; } + +p.fubar, blockquote.fubar { background: rgba(114, 83, 237, 0.2); border-left: 4px solid #381885; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); padding: .8rem; } +p.fubar > .fubar-title, blockquote.fubar > .fubar-title { color: #381885; display: block; font-weight: bold; text-transform: uppercase; font-size: .75em; padding-bottom: .125rem; } + +p.fubar-title, blockquote.fubar-title { background: rgba(114, 83, 237, 0.2); border-left: 4px solid #381885; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); padding: .8rem; } +p.fubar-title > p:first-child, blockquote.fubar-title > p:first-child { margin-top: 0; margin-bottom: 0; color: #381885; display: block; font-weight: bold; text-transform: uppercase; font-size: .75em; padding-bottom: .125rem; } + +blockquote.fubar { margin-left: 0; margin-right: 0; } +blockquote.fubar > p:first-child { margin-top: 0; } +blockquote.fubar > p:last-child { margin-bottom: 0; } + +blockquote.fubar-title { margin-left: 0; margin-right: 0; } +blockquote.fubar-title > p:nth-child(2) { margin-top: 0; } +blockquote.fubar-title > p:last-child { margin-bottom: 0; } + +@font-face { font-family: GalanoGrotesque-ExtraLight; src: local(GalanoGrotesque-ExtraLight), url("../fonts/Rene Bieder - Galano Grotesque ExtraLight.otf"); } +@font-face { font-family: GalanoGrotesque; src: local(GalanoGrotesque-Regular), url("../fonts/Rene Bieder - Galano Grotesque.otf"); } +@font-face { font-family: GalanoGrotesque-Bold; src: local(GalanoGrotesque-Bold), url("../fonts/Rene Bieder - Galano Grotesque Bold.otf"); } +@font-face { font-family: GalanoGrotesque-Medium; src: local(Rene-Bieder-Galano-Grotesque-Medium), url("../fonts/Rene Bieder - Galano Grotesque Medium.otf"); } +html { scroll-padding-top: 90px; } + +body { font-family: GalanoGrotesque; color: #000000; } +body .body-wrapper, body footer { display: flex; } +body .body-wrapper .main, body .body-wrapper .footer-main, body footer .main, body footer .footer-main { width: 75%; max-width: 75%; margin-left: 0; float: right; position: relative; } +body .body-wrapper .main .main-content-wrap, body .body-wrapper .footer-main .main-content-wrap, body footer .main .main-content-wrap, body footer .footer-main .main-content-wrap { max-width: 1300px; padding: 80px; } +body .body-wrapper .side-bar, body .body-wrapper .footer-sidebar, body footer .side-bar, body footer .footer-sidebar { width: 25%; max-width: 25%; position: relative; height: auto; background-color: #f5f7f9; } +body a { color: #279890; } +body p, body li { font-family: GalanoGrotesque; font-size: 1em; } +body h1 { margin-top: 40px !important; font-family: GalanoGrotesque-Medium; font-size: 42px !important; color: #000000; } +body h2 { margin-top: 40px !important; font-size: 28px !important; font-family: GalanoGrotesque-Medium; } +body h2#table-of-contents { font-family: GalanoGrotesque-Medium; color: #ffffff; font-size: 14px !important; } +body h3 { margin-top: 25px !important; font-size: 18px; font-weight: 600; font-family: GalanoGrotesque-Medium; } +body h4 { margin-top: 25px !important; font-size: 16px; font-weight: 600; font-family: GalanoGrotesque-Medium; } +body .text-delta { text-transform: none; width: 100%; display: block; background-color: #279890; color: #ffffff; border-radius: 2px 2px 0 0; font-size: 14px !important; padding: 10px 15px 8px 15px; } +body .text-delta + ul { background-color: #f5f7f9; width: 100%; border: none; margin-top: 0; border-radius: 0; position: relative; top: -3px; padding: 15px 25px 15px 25px; } +body .text-delta + ul li { text-decoration: underline; } +body .text-delta + ul li::before { content: none; } +body .text-delta + ul li a:hover { background-image: none; } +body .text-delta + ul li a { white-space: normal; } +body #markdown-toc { background-color: #f5f7f9; width: 100%; border: none; margin-top: 0; border-radius: 0; position: relative; top: -3px; padding: 15px 25px 15px 25px; } +body #markdown-toc li::before { display: none; } +body #markdown-toc li a { color: #279890; font-size: 1em; background-image: none; white-space: normal; } +body #markdown-toc li a:hover { background-image: none; color: #279890; } +body #markdown-toc li ol, body #markdown-toc li ul { border: none; } +body #markdown-toc li ol li a, body #markdown-toc li ul li a { padding-bottom: 0; } +body div.highlighter-rouge pre.highlight { padding: 10px; } +body .highlight code { background-color: transparent; } +body .btn { padding: 6px 14px; color: #2f3433; font-family: GalanoGrotesque; border-radius: 4px; background: #ffffff; border: solid 2px #2f3433; box-shadow: none; } +body .btn:hover { border-color: #279890; color: #279890; background: #ffffff; } +body .btn-green { font-size: 16px; line-height: 1.63; letter-spacing: 0.05px; color: #ffffff; background-color: #279890; border: 2px solid #279890; } +body .btn-green:hover { background-color: #ffffff; color: #279890; } +body .main-content h1:hover a.anchor-heading, body .main-content h2:hover a.anchor-heading, body .main-content h3:hover a.anchor-heading, body .main-content h4:hover a.anchor-heading, body .main-content h5:hover a.anchor-heading, body .main-content h6:hover a.anchor-heading { left: -1.7rem; background-image: url("../../assets/icons/anchor.svg"); width: 24px; height: 24px; background-repeat: no-repeat; background-size: contain; background-position: center center; } +body .main-content h1:hover a.anchor-heading svg, body .main-content h2:hover a.anchor-heading svg, body .main-content h3:hover a.anchor-heading svg, body .main-content h4:hover a.anchor-heading svg, body .main-content h5:hover a.anchor-heading svg, body .main-content h6:hover a.anchor-heading svg { display: none; } +body .main-content h1:hover a.anchor-heading:hover, body .main-content h2:hover a.anchor-heading:hover, body .main-content h3:hover a.anchor-heading:hover, body .main-content h4:hover a.anchor-heading:hover, body .main-content h5:hover a.anchor-heading:hover, body .main-content h6:hover a.anchor-heading:hover { background-image: url("../../assets/icons/anchor green.svg"); } +body .main-content .toc-block { display: table-cell; } + +.main .main-header, .side-bar .site-header { background-color: white; height: 80px; max-height: 80px; min-height: 80px; border: 0; position: fixed; z-index: 2; } + +.main .main-header { width: 75%; } +.main .main-header nav.aux-nav { width: 100%; padding: 0; max-width: 1080px; } +.main .main-header nav.aux-nav .aux-nav-list { justify-content: flex-end; padding: 20px 80px; } +.main .main-header nav.aux-nav .aux-nav-list .aux-nav-list-item a.site-button { font-size: 16px; line-height: 1.63; letter-spacing: 0.05px; color: #000000; margin: 0 4px; } +.main .main-header nav.aux-nav .aux-nav-list .aux-nav-list-item a.site-button:hover { background-image: none; } +.main .main-header nav.aux-nav .aux-nav-list .aux-nav-list-item:hover a, .main .main-header nav.aux-nav .aux-nav-list .aux-nav-list-item.active a { color: #279890; } +.main .main-header nav.aux-nav .aux-nav-list .aux-nav-list-item.button a.site-button { font-size: 16px; line-height: 1.63; letter-spacing: 0.05px; color: #ffffff; margin: 0 0 0 20px; padding: 18px; border-radius: 6px; background-color: #f24886; border: 2px solid #f24886; } +.main .main-header nav.aux-nav .aux-nav-list .aux-nav-list-item.button a.site-button:hover { background-color: #b62d55; border: 2px solid #b62d55; color: #ffffff; } + +.side-bar:after { content: ' '; position: fixed; width: 100vw; top: 80px; box-shadow: 0 0 6px 2px rgba(0, 0, 0, 0.23); left: 0; right: 0; z-index: 0; } + +.side-bar .site-header { width: 25%; justify-content: flex-end; top: 0; } +.side-bar .site-header a.site-title { max-width: 290px; padding: 0; } +.side-bar .site-header a.site-title .site-logo { width: 150px; height: inherit; } +.side-bar .site-header a.site-title:hover { background-image: none; background-color: transparent; } + +.site-logo { width: 135px; height: 30px; } + +.side-bar { padding: 80px 0; border: 0; display: block; z-index: 1; } +.side-bar nav.site-nav, .side-bar nav.aux-nav { padding: 0; width: 100%; display: initial; } +.side-bar nav.site-nav .nav-list, .side-bar nav.site-nav .aux-nav-list, .side-bar nav.aux-nav .nav-list, .side-bar nav.aux-nav .aux-nav-list { width: 100%; padding: 0; margin-top: 30px; } +.side-bar nav.site-nav .nav-list .nav-list-item, .side-bar nav.site-nav .nav-list .aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .nav-list-item, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item, .side-bar nav.aux-nav .nav-list .nav-list-item, .side-bar nav.aux-nav .nav-list .aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .nav-list-item, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item { padding: 0; } +.side-bar nav.site-nav .nav-list .nav-list-item:hover, .side-bar nav.site-nav .nav-list .aux-nav-list-item:hover, .side-bar nav.site-nav .aux-nav-list .nav-list-item:hover, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item:hover, .side-bar nav.aux-nav .nav-list .nav-list-item:hover, .side-bar nav.aux-nav .nav-list .aux-nav-list-item:hover, .side-bar nav.aux-nav .aux-nav-list .nav-list-item:hover, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item:hover { background-color: #ffffff; } +.side-bar nav.site-nav .nav-list .nav-list-item.active:hover, .side-bar nav.site-nav .nav-list .aux-nav-list-item.active:hover, .side-bar nav.site-nav .aux-nav-list .nav-list-item.active:hover, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item.active:hover, .side-bar nav.aux-nav .nav-list .nav-list-item.active:hover, .side-bar nav.aux-nav .nav-list .aux-nav-list-item.active:hover, .side-bar nav.aux-nav .aux-nav-list .nav-list-item.active:hover, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item.active:hover { background-color: transparent; } +.side-bar nav.site-nav .nav-list .nav-list-item.active .nav_list li, .side-bar nav.site-nav .nav-list .aux-nav-list-item.active .nav_list li, .side-bar nav.site-nav .aux-nav-list .nav-list-item.active .nav_list li, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item.active .nav_list li, .side-bar nav.aux-nav .nav-list .nav-list-item.active .nav_list li, .side-bar nav.aux-nav .nav-list .aux-nav-list-item.active .nav_list li, .side-bar nav.aux-nav .aux-nav-list .nav-list-item.active .nav_list li, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item.active .nav_list li { padding-right: 0; padding-left: 0; } +.side-bar nav.site-nav .nav-list .nav-list-item.active .nav_list li:hover, .side-bar nav.site-nav .nav-list .aux-nav-list-item.active .nav_list li:hover, .side-bar nav.site-nav .aux-nav-list .nav-list-item.active .nav_list li:hover, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item.active .nav_list li:hover, .side-bar nav.aux-nav .nav-list .nav-list-item.active .nav_list li:hover, .side-bar nav.aux-nav .nav-list .aux-nav-list-item.active .nav_list li:hover, .side-bar nav.aux-nav .aux-nav-list .nav-list-item.active .nav_list li:hover, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item.active .nav_list li:hover { background-color: #ffffff; } +.side-bar nav.site-nav .nav-list .nav-list-item.header, .side-bar nav.site-nav .nav-list .aux-nav-list-item.header, .side-bar nav.site-nav .aux-nav-list .nav-list-item.header, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item.header, .side-bar nav.aux-nav .nav-list .nav-list-item.header, .side-bar nav.aux-nav .nav-list .aux-nav-list-item.header, .side-bar nav.aux-nav .aux-nav-list .nav-list-item.header, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item.header { padding: 12px 40px 12px calc(100% - 290px); color: #279890; font-family: GalanoGrotesque-Bold; font-size: 18px !important; letter-spacing: 1.1px; } +.side-bar nav.site-nav .nav-list .nav-list-item.header:hover, .side-bar nav.site-nav .nav-list .aux-nav-list-item.header:hover, .side-bar nav.site-nav .aux-nav-list .nav-list-item.header:hover, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item.header:hover, .side-bar nav.aux-nav .nav-list .nav-list-item.header:hover, .side-bar nav.aux-nav .nav-list .aux-nav-list-item.header:hover, .side-bar nav.aux-nav .aux-nav-list .nav-list-item.header:hover, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item.header:hover { background-color: transparent; background-image: none; } +.side-bar nav.site-nav .nav-list .nav-list-item.header:not(:first-of-type), .side-bar nav.site-nav .nav-list .aux-nav-list-item.header:not(:first-of-type), .side-bar nav.site-nav .aux-nav-list .nav-list-item.header:not(:first-of-type), .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item.header:not(:first-of-type), .side-bar nav.aux-nav .nav-list .nav-list-item.header:not(:first-of-type), .side-bar nav.aux-nav .nav-list .aux-nav-list-item.header:not(:first-of-type), .side-bar nav.aux-nav .aux-nav-list .nav-list-item.header:not(:first-of-type), .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item.header:not(:first-of-type) { padding-top: 36px; border-top: 1px solid #dadada; margin-top: 20px; } +.side-bar nav.site-nav .nav-list .nav-list-item a.nav-list-link, .side-bar nav.site-nav .nav-list .aux-nav-list-item a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .nav-list-item a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item a.nav-list-link, .side-bar nav.aux-nav .nav-list .nav-list-item a.nav-list-link, .side-bar nav.aux-nav .nav-list .aux-nav-list-item a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .nav-list-item a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item a.nav-list-link { padding: 12px 40px 12px calc(100% - 290px); font-size: 14px !important; color: #576489; font-family: GalanoGrotesque; letter-spacing: 1.1px; } +.side-bar nav.site-nav .nav-list .nav-list-item a.nav-list-link.active, .side-bar nav.site-nav .nav-list .nav-list-item a.nav-list-link:hover, .side-bar nav.site-nav .nav-list .aux-nav-list-item a.nav-list-link.active, .side-bar nav.site-nav .nav-list .aux-nav-list-item a.nav-list-link:hover, .side-bar nav.site-nav .aux-nav-list .nav-list-item a.nav-list-link.active, .side-bar nav.site-nav .aux-nav-list .nav-list-item a.nav-list-link:hover, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item a.nav-list-link.active, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item a.nav-list-link:hover, .side-bar nav.aux-nav .nav-list .nav-list-item a.nav-list-link.active, .side-bar nav.aux-nav .nav-list .nav-list-item a.nav-list-link:hover, .side-bar nav.aux-nav .nav-list .aux-nav-list-item a.nav-list-link.active, .side-bar nav.aux-nav .nav-list .aux-nav-list-item a.nav-list-link:hover, .side-bar nav.aux-nav .aux-nav-list .nav-list-item a.nav-list-link.active, .side-bar nav.aux-nav .aux-nav-list .nav-list-item a.nav-list-link:hover, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item a.nav-list-link.active, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item a.nav-list-link:hover { background-color: #ffffff; background-image: none; } +.side-bar nav.site-nav .nav-list .nav-list-item a.nav-list-link.active, .side-bar nav.site-nav .nav-list .aux-nav-list-item a.nav-list-link.active, .side-bar nav.site-nav .aux-nav-list .nav-list-item a.nav-list-link.active, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item a.nav-list-link.active, .side-bar nav.aux-nav .nav-list .nav-list-item a.nav-list-link.active, .side-bar nav.aux-nav .nav-list .aux-nav-list-item a.nav-list-link.active, .side-bar nav.aux-nav .aux-nav-list .nav-list-item a.nav-list-link.active, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item a.nav-list-link.active { font-family: GalanoGrotesque-Medium !important; color: #279890 !important; } +.side-bar nav.site-nav .nav-list .nav-list-item .nav-list-expander, .side-bar nav.site-nav .nav-list .aux-nav-list-item .nav-list-expander, .side-bar nav.site-nav .aux-nav-list .nav-list-item .nav-list-expander, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .nav-list-expander, .side-bar nav.aux-nav .nav-list .nav-list-item .nav-list-expander, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .nav-list-expander, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .nav-list-expander, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .nav-list-expander { right: 40px; width: 22px; height: 22px; padding: 0; margin: 14px 0 0 0; } +.side-bar nav.site-nav .nav-list .nav-list-item .nav-list-expander svg, .side-bar nav.site-nav .nav-list .aux-nav-list-item .nav-list-expander svg, .side-bar nav.site-nav .aux-nav-list .nav-list-item .nav-list-expander svg, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .nav-list-expander svg, .side-bar nav.aux-nav .nav-list .nav-list-item .nav-list-expander svg, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .nav-list-expander svg, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .nav-list-expander svg, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .nav-list-expander svg { color: #000000; } +.side-bar nav.site-nav .nav-list .nav-list-item .nav-list-expander:hover, .side-bar nav.site-nav .nav-list .aux-nav-list-item .nav-list-expander:hover, .side-bar nav.site-nav .aux-nav-list .nav-list-item .nav-list-expander:hover, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .nav-list-expander:hover, .side-bar nav.aux-nav .nav-list .nav-list-item .nav-list-expander:hover, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .nav-list-expander:hover, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .nav-list-expander:hover, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .nav-list-expander:hover { background-color: none; background-image: none; } +.side-bar nav.site-nav .nav-list .nav-list-item .nav-list, .side-bar nav.site-nav .nav-list .nav-list-item .aux-nav-list, .side-bar nav.site-nav .nav-list .aux-nav-list-item .nav-list, .side-bar nav.site-nav .nav-list .aux-nav-list-item .aux-nav-list, .side-bar nav.site-nav .aux-nav-list .nav-list-item .nav-list, .side-bar nav.site-nav .aux-nav-list .nav-list-item .aux-nav-list, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .nav-list, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .aux-nav-list, .side-bar nav.aux-nav .nav-list .nav-list-item .nav-list, .side-bar nav.aux-nav .nav-list .nav-list-item .aux-nav-list, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .nav-list, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .aux-nav-list, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .nav-list, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .aux-nav-list, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .nav-list, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .aux-nav-list { margin-top: 0; } +.side-bar nav.site-nav .nav-list .nav-list-item .nav-list a.nav-list-link, .side-bar nav.site-nav .nav-list .nav-list-item .nav-list a.aux-nav-list-item, .side-bar nav.site-nav .nav-list .nav-list-item .aux-nav-list a.nav-list-link, .side-bar nav.site-nav .nav-list .nav-list-item .aux-nav-list a.aux-nav-list-item, .side-bar nav.site-nav .nav-list .aux-nav-list-item .nav-list a.nav-list-link, .side-bar nav.site-nav .nav-list .aux-nav-list-item .nav-list a.aux-nav-list-item, .side-bar nav.site-nav .nav-list .aux-nav-list-item .aux-nav-list a.nav-list-link, .side-bar nav.site-nav .nav-list .aux-nav-list-item .aux-nav-list a.aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .nav-list-item .nav-list a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .nav-list-item .nav-list a.aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .nav-list-item .aux-nav-list a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .nav-list-item .aux-nav-list a.aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .nav-list a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .nav-list a.aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .aux-nav-list a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .aux-nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .nav-list .nav-list-item .nav-list a.nav-list-link, .side-bar nav.aux-nav .nav-list .nav-list-item .nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .nav-list .nav-list-item .aux-nav-list a.nav-list-link, .side-bar nav.aux-nav .nav-list .nav-list-item .aux-nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .nav-list a.nav-list-link, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .aux-nav-list a.nav-list-link, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .aux-nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .nav-list a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .aux-nav-list a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .aux-nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .nav-list a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .aux-nav-list a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .aux-nav-list a.aux-nav-list-item { margin-left: 20px; font-size: 13px !important; letter-spacing: 0.05px; } +.side-bar nav.site-nav .nav-list .nav-list-item .nav-list .nav-list a.nav-list-link, .side-bar nav.site-nav .nav-list .nav-list-item .nav-list .nav-list a.aux-nav-list-item, .side-bar nav.site-nav .nav-list .nav-list-item .nav-list .aux-nav-list a.nav-list-link, .side-bar nav.site-nav .nav-list .nav-list-item .nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.site-nav .nav-list .nav-list-item .aux-nav-list .nav-list a.nav-list-link, .side-bar nav.site-nav .nav-list .nav-list-item .aux-nav-list .nav-list a.aux-nav-list-item, .side-bar nav.site-nav .nav-list .nav-list-item .aux-nav-list .aux-nav-list a.nav-list-link, .side-bar nav.site-nav .nav-list .nav-list-item .aux-nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.site-nav .nav-list .aux-nav-list-item .nav-list .nav-list a.nav-list-link, .side-bar nav.site-nav .nav-list .aux-nav-list-item .nav-list .nav-list a.aux-nav-list-item, .side-bar nav.site-nav .nav-list .aux-nav-list-item .nav-list .aux-nav-list a.nav-list-link, .side-bar nav.site-nav .nav-list .aux-nav-list-item .nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.site-nav .nav-list .aux-nav-list-item .aux-nav-list .nav-list a.nav-list-link, .side-bar nav.site-nav .nav-list .aux-nav-list-item .aux-nav-list .nav-list a.aux-nav-list-item, .side-bar nav.site-nav .nav-list .aux-nav-list-item .aux-nav-list .aux-nav-list a.nav-list-link, .side-bar nav.site-nav .nav-list .aux-nav-list-item .aux-nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .nav-list-item .nav-list .nav-list a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .nav-list-item .nav-list .nav-list a.aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .nav-list-item .nav-list .aux-nav-list a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .nav-list-item .nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .nav-list-item .aux-nav-list .nav-list a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .nav-list-item .aux-nav-list .nav-list a.aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .nav-list-item .aux-nav-list .aux-nav-list a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .nav-list-item .aux-nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .nav-list .nav-list a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .nav-list .nav-list a.aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .nav-list .aux-nav-list a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .aux-nav-list .nav-list a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .aux-nav-list .nav-list a.aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .aux-nav-list .aux-nav-list a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .aux-nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .nav-list .nav-list-item .nav-list .nav-list a.nav-list-link, .side-bar nav.aux-nav .nav-list .nav-list-item .nav-list .nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .nav-list .nav-list-item .nav-list .aux-nav-list a.nav-list-link, .side-bar nav.aux-nav .nav-list .nav-list-item .nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .nav-list .nav-list-item .aux-nav-list .nav-list a.nav-list-link, .side-bar nav.aux-nav .nav-list .nav-list-item .aux-nav-list .nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .nav-list .nav-list-item .aux-nav-list .aux-nav-list a.nav-list-link, .side-bar nav.aux-nav .nav-list .nav-list-item .aux-nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .nav-list .nav-list a.nav-list-link, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .nav-list .nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .nav-list .aux-nav-list a.nav-list-link, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .aux-nav-list .nav-list a.nav-list-link, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .aux-nav-list .nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .aux-nav-list .aux-nav-list a.nav-list-link, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .aux-nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .nav-list .nav-list a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .nav-list .nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .nav-list .aux-nav-list a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .aux-nav-list .nav-list a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .aux-nav-list .nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .aux-nav-list .aux-nav-list a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .aux-nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .nav-list .nav-list a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .nav-list .nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .nav-list .aux-nav-list a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .aux-nav-list .nav-list a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .aux-nav-list .nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .aux-nav-list .aux-nav-list a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .aux-nav-list .aux-nav-list a.aux-nav-list-item { margin-left: 30px; color: #949494; font-size: 12px !important; } +.side-bar nav.site-nav .nav-version, .side-bar nav.aux-nav .nav-version { display: flex; align-items: center; justify-content: center; padding: 12px 40px 12px calc(100% - 290px); text-transform: none; } +.side-bar nav.site-nav .nav-version select, .side-bar nav.aux-nav .nav-version select { height: 2em; margin: 0 0 0 10px; flex-grow: 1; } +.side-bar nav.site-nav .search, .side-bar nav.aux-nav .search { margin-top: 35px; margin-left: calc(100% - 290px); margin-right: 40px; max-width: 250px !important; max-height: 40px !important; width: 250px !important; z-index: 1; } +.side-bar nav.site-nav .search .search-input, .side-bar nav.aux-nav .search .search-input { background-color: #f5f7f9; border: 1px solid #dadada; border-radius: 6px; color: #6e7171; font-family: GalanoGrotesque-Medium; } +.side-bar nav.site-nav .search .search-input:focus, .side-bar nav.site-nav .search .search-input:active, .side-bar nav.aux-nav .search .search-input:focus, .side-bar nav.aux-nav .search .search-input:active { background-color: #f5f7f9; color: #6e7171; } +.side-bar nav.site-nav .search .search-input .search-icon, .side-bar nav.aux-nav .search .search-input .search-icon { color: #949494; } +.side-bar nav.site-nav .search .search-input:focus + .search-label .search-icon, .side-bar nav.aux-nav .search .search-input:focus + .search-label .search-icon { color: #949494; } +.side-bar nav.site-nav .mobile-menu, .side-bar nav.aux-nav .mobile-menu { display: none; } + +.label { text-transform: none !important; margin-left: 0 !important; margin-right: 0 !important; } + +.search-active .main { position: inherit; right: inherit; left: inherit; } + +.search-overlay { display: none; } + +.search-result-doc .search-result-icon { color: #279890; } + +footer { height: 360px; } +footer .footer-main { padding: 80px; } +footer .footer-main ul { list-style: none; padding: 0; margin: 0; } +footer .footer-main ul li { display: inline-block; padding: 0; margin: 0; } +footer .footer-main .row { display: flex; } +footer .footer-main .row .left { width: 70%; } +footer .footer-main .row .right { width: 30%; display: flex; justify-content: flex-end; } +footer .footer-main .row .site-title { padding: 0; margin-bottom: 30px; } +footer .footer-main .row .site-title .site-logo { height: 45px; } +footer .footer-main .row .footer-links li { margin-right: 40px; } +footer .footer-main .row .footer-links li a { padding: 0; color: #000000; font-size: 18px; } +footer .footer-main .row .footer-links li a:hover { color: #279890; } +footer .footer-main .row .footer-social li a, footer .footer-main .row .bottom-footer-links li a { padding: 0 15px; font-size: 16px; color: #949494; } +footer .footer-main .row .footer-social li a:last-of-type, footer .footer-main .row .bottom-footer-links li a:last-of-type { padding-right: 0; } +footer .footer-main .row .footer-social li a:hover, footer .footer-main .row .bottom-footer-links li a:hover { color: #279890; } +footer .footer-main .row .footer-social li a img.hover { display: none; } +footer .footer-main .row .footer-social li a:hover img.no-hover { display: none; } +footer .footer-main .row .footer-social li a:hover img.hover { display: block; } +footer .footer-main .top-border { padding-top: 30px; margin-top: 30px; border-top: 1px solid #dadada; } +footer .footer-main a:hover { background-color: transparent !important; background-image: none !important; } +footer .footer-sidebar { z-index: -1; } + +@media (max-width: 799px) { body { padding-bottom: 0; } + body .body-wrapper { display: block; } + body .body-wrapper .side-bar { width: 100%; max-width: 100%; padding: 0; } + body .body-wrapper .side-bar .site-header { width: 100%; flex-direction: row-reverse; justify-content: flex-end; } + body .body-wrapper .side-bar .site-header .site-button { padding: 11px 30px 0; width: 24px; height: 24px; background-repeat: no-repeat; background-size: auto; background-position: center center; background-image: url("../../assets/icons/menu.svg"); } + body .body-wrapper .side-bar .site-header .site-button:hover, body .body-wrapper .side-bar .site-header .site-button:active, body .body-wrapper .side-bar .site-header .site-button:focus { background-color: transparent; } + body .body-wrapper .side-bar .site-header .site-button.nav-open { background-image: url("../../assets/icons/close.svg"); } + body .body-wrapper .side-bar .site-header .site-button svg { display: none; } + body .body-wrapper .side-bar nav { display: none; overflow: scroll; background: white; } + body .body-wrapper .side-bar nav.nav-open { display: block; position: fixed; top: 0; height: 100vh; } + body .body-wrapper .side-bar nav.nav-open .search { position: relative; margin-top: 120px; margin-left: 30px; margin-right: 30px; padding: 0; } + body .body-wrapper .side-bar nav.nav-open .search .search-results { display: block !important; max-height: 60vh !important; } + body .body-wrapper .side-bar nav.nav-open .search .search-input { background-color: #ffffff; } + body .body-wrapper .side-bar nav.nav-open .search .search-input-wrap { box-shadow: none; } + body .body-wrapper .side-bar nav.nav-open .nav-list .nav-list-item, body .body-wrapper .side-bar nav.nav-open .nav-list .aux-nav-list-item, body .body-wrapper .side-bar nav.nav-open .aux-nav-list .nav-list-item, body .body-wrapper .side-bar nav.nav-open .aux-nav-list .aux-nav-list-item { padding-left: 30px !important; padding-right: 30px !important; } + body .body-wrapper .side-bar nav.nav-open .nav-list .nav-list-item a, body .body-wrapper .side-bar nav.nav-open .nav-list .aux-nav-list-item a, body .body-wrapper .side-bar nav.nav-open .aux-nav-list .nav-list-item a, body .body-wrapper .side-bar nav.nav-open .aux-nav-list .aux-nav-list-item a { padding-left: 0 !important; padding-right: 0 !important; } + body .body-wrapper .side-bar nav.nav-open .nav-list .nav-list-item a.active, body .body-wrapper .side-bar nav.nav-open .nav-list .aux-nav-list-item a.active, body .body-wrapper .side-bar nav.nav-open .aux-nav-list .nav-list-item a.active, body .body-wrapper .side-bar nav.nav-open .aux-nav-list .aux-nav-list-item a.active { background: unset; } + body .body-wrapper .side-bar nav.nav-open .nav-list .nav-list, body .body-wrapper .side-bar nav.nav-open .aux-nav-list .nav-list { margin-top: 0; } + body .body-wrapper .side-bar nav.nav-open .nav-list .nav-list a.nav-list-link, body .body-wrapper .side-bar nav.nav-open .aux-nav-list .nav-list a.nav-list-link { text-indent: 0; } + body .body-wrapper .side-bar nav.nav-open .mobile-menu { display: block; border-top: 1px solid #dadada; margin-top: 18px; padding-bottom: 80px; } + body .body-wrapper .side-bar nav.nav-open .mobile-menu nav { display: block; } + body .body-wrapper .side-bar nav.nav-open .mobile-menu nav .aux-nav-list { flex-direction: column; } + body .body-wrapper .side-bar nav.nav-open .mobile-menu nav .aux-nav-list a.site-button { font-size: 18px !important; color: #000000; } + body .body-wrapper .side-bar nav.nav-open .mobile-menu nav .aux-nav-list .button .site-button { border-radius: 6px; border: solid 2px #279890; background-color: #ffffff; color: #279890; padding: 10px 20px !important; display: inline-block; margin-top: 10px; } + body .body-wrapper .main { width: 100%; max-width: 100%; float: none; } + body .body-wrapper .main .main-header { display: none; } + body .body-wrapper .main .main-content a { white-space: normal; } + body .body-wrapper .main .main-content-wrap { padding: 80px 30px; } + body footer { border-top: 1px solid #dadada; height: auto; } + body footer .footer-sidebar { display: none; } + body footer .footer-main { width: 100%; max-width: 100%; padding: 60px 30px; float: none; } + body footer .footer-main .row { flex-direction: column; } + body footer .footer-main .row .right, body footer .footer-main .row .left { width: 100%; display: block; } + body footer .footer-main .row .site-title { margin-bottom: 40px; } + body footer .footer-main .row .footer-links { display: flex; flex-wrap: wrap; margin-bottom: 20px; } + body footer .footer-main .row .footer-links li { margin: 0 0 30px; width: 50%; } + body footer .footer-main .row .footer-social { width: 100%; display: flex; justify-content: space-between; } + body footer .footer-main .row .footer-social li a { padding: 0; } + body footer .footer-main .row .footer-social li a img { width: 34px; height: 34px; } + body footer .footer-main .row .bottom-footer-links li { display: block; margin-top: 30px; } + body footer .footer-main .row .bottom-footer-links li a { padding: 0; } + body footer .footer-main .row .top-border { padding-top: 40px; margin-top: 40px; } } +.copy-code-container { position: absolute; right: 0.3em; } + +.copy-code-button { align-items: center; justify-content: center; border: none; cursor: pointer; font-size: 1rem; color: #000000; padding: 0.4em 0.5em; background-color: transparent; outline: none; } +.copy-code-button:hover { color: #279890 !important; } + +.highlighter-rouge { position: relative; } + +.language-shell.highlighter-rouge pre.highlight::before, .language-sh.highlighter-rouge pre.highlight::before, .language-bash.highlighter-rouge pre.highlight::before { content: "$ "; color: #000000; font-weight: 400; font-family: monospace; font-size: 0.75em; } + +th, td { background-color: transparent; } + +.main-content ul.ui-tabs-nav > li::before { content: ""; } + +.tabs { background: transparent; } +.tabs.ui-widget .copy-code-button { font-family: "Font Awesome 6 Free" !important; } + +.tabs .ui-widget-header { background: transparent; border: none; border-bottom: 1px solid #d3d3d3; -moz-border-radius: 0px; -webkit-border-radius: 0px; border-radius: 0px; } + +.tabs .ui-tabs-nav .ui-state-default { background: transparent; border: none; } + +.tabs .ui-tabs-nav .ui-state-active { border: none; } + +.tabs .ui-tabs-nav .ui-state-default a { color: #c0c0c0; } + +.tabs .ui-tabs-nav .ui-state-active a { color: #279890; } + +/*overridden*/ +div.highlighter-rouge { border-radius: 4px; } +div.highlighter-rouge:hover > button { cursor: pointer; opacity: 0.5; } + +.highlighter-rouge button.copy-code-button { color: #000000; } + +/* Tooltip container */ +.tooltip { position: relative; display: inline-block; border-bottom: 0; } +.tooltip > a, .tooltip span { text-decoration: underline; text-decoration-style: dotted; background-image: none; } +.tooltip .tooltiptext { visibility: hidden; text-decoration: none; background-color: #2ce5b5; color: #000000; padding: 10px 20px; border-radius: 6px; position: absolute; z-index: 1; width: 400px; top: 100%; left: 50%; margin-left: -200px; } +.tooltip:hover .tooltiptext { visibility: visible; } +.tooltip .tooltiptext::after { content: " "; position: absolute; color: #2ce5b5; bottom: 100%; /* At the top of the tooltip */ left: 50%; margin-left: -5px; border-width: 5px; border-style: solid; border-color: transparent transparent #2ce5b5 transparent; } + +.ui-dialog-titlebar { display: none; } + +.feedback-container { position: sticky; top: 180px; z-index: 9999; } +@media (max-width: 1024px) { .feedback-container { display: none; } } +.feedback-container .feedback-buttons { position: absolute; right: 70px; margin-bottom: 20px; top: -55px; } +.feedback-container .feedback-buttons .tooltiptext { font-size: small; width: 150px; margin-left: -75px; text-align: center; } +.feedback-container .feedback-buttons .page-helpful-btn { background: none !important; border-radius: 50%; border: solid #279890 2px; color: #279890; height: 40px; width: 40px; margin: 0 3px; cursor: pointer; } +.feedback-container .feedback-buttons .page-helpful-btn:focus-visible { outline: none; } + +#is-helpful-ty { display: none; } +#is-helpful-ty a { color: #279890 !important; } + +.badge { padding: 2px 4px; background: #ffddec; text-transform: uppercase; text-align: center; border-radius: 6px; font-size: x-small; } + +.quickstart-steps { padding: 10px; } +.quickstart-steps img { width: 50px; height: 50px; } + +.row { display: flex; flex-direction: row; } + +.col { display: flex; flex-direction: column; justify-content: center; margin-bottom: 0.3em; } +.col.step-num { margin-right: 20px; } +.col.step-num > img { width: 40px; } + +img.quickstart { box-shadow: 3px 3px 1px #ccc; border-width: thin; border-color: black; border-style: ridge; } + +.breadcrumb-nav { margin-top: 1rem; } diff --git a/v1.46/assets/css/just-the-docs-light.css b/v1.46/assets/css/just-the-docs-light.css new file mode 100644 index 000000000..333b8f650 --- /dev/null +++ b/v1.46/assets/css/just-the-docs-light.css @@ -0,0 +1,2562 @@ +@charset "UTF-8"; +@import url("pygments/igorpro.css"); +.highlight, pre.highlight { background: #f9f9f9; color: #383942; } + +.highlight pre { background: #f9f9f9; } + +.highlight .hll { background: #f9f9f9; } + +.highlight .c { color: #9fa0a6; font-style: italic; } + +.highlight .err { color: #fff; background-color: #e05151; } + +.highlight .k { color: #a625a4; } + +.highlight .l { color: #50a04f; } + +.highlight .n { color: #383942; } + +.highlight .o { color: #383942; } + +.highlight .p { color: #383942; } + +.highlight .cm { color: #9fa0a6; font-style: italic; } + +.highlight .cp { color: #9fa0a6; font-style: italic; } + +.highlight .c1 { color: #9fa0a6; font-style: italic; } + +.highlight .cs { color: #9fa0a6; font-style: italic; } + +.highlight .ge { font-style: italic; } + +.highlight .gs { font-weight: 700; } + +.highlight .kc { color: #a625a4; } + +.highlight .kd { color: #a625a4; } + +.highlight .kn { color: #a625a4; } + +.highlight .kp { color: #a625a4; } + +.highlight .kr { color: #a625a4; } + +.highlight .kt { color: #a625a4; } + +.highlight .ld { color: #50a04f; } + +.highlight .m { color: #b66a00; } + +.highlight .s { color: #50a04f; } + +.highlight .na { color: #b66a00; } + +.highlight .nb { color: #ca7601; } + +.highlight .nc { color: #ca7601; } + +.highlight .no { color: #ca7601; } + +.highlight .nd { color: #ca7601; } + +.highlight .ni { color: #ca7601; } + +.highlight .ne { color: #ca7601; } + +.highlight .nf { color: #383942; } + +.highlight .nl { color: #ca7601; } + +.highlight .nn { color: #383942; } + +.highlight .nx { color: #383942; } + +.highlight .py { color: #ca7601; } + +.highlight .nt { color: #e35549; } + +.highlight .nv { color: #ca7601; } + +.highlight .ow { font-weight: 700; } + +.highlight .w { color: #f8f8f2; } + +.highlight .mf { color: #b66a00; } + +.highlight .mh { color: #b66a00; } + +.highlight .mi { color: #b66a00; } + +.highlight .mo { color: #b66a00; } + +.highlight .sb { color: #50a04f; } + +.highlight .sc { color: #50a04f; } + +.highlight .sd { color: #50a04f; } + +.highlight .s2 { color: #50a04f; } + +.highlight .se { color: #50a04f; } + +.highlight .sh { color: #50a04f; } + +.highlight .si { color: #50a04f; } + +.highlight .sx { color: #50a04f; } + +.highlight .sr { color: #0083bb; } + +.highlight .s1 { color: #50a04f; } + +.highlight .ss { color: #0083bb; } + +.highlight .bp { color: #ca7601; } + +.highlight .vc { color: #ca7601; } + +.highlight .vg { color: #ca7601; } + +.highlight .vi { color: #e35549; } + +.highlight .il { color: #b66a00; } + +.highlight .gu { color: #75715e; } + +.highlight .gd { color: #e05151; } + +.highlight .gi { color: #43d089; } + +.highlight .language-json .w + .s2 { color: #e35549; } + +.highlight .language-json .kc { color: #0083bb; } + +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ +/* Document ========================================================================== */ +/** 1. Correct the line height in all browsers. 2. Prevent adjustments of font size after orientation changes in iOS. */ +html { line-height: 1.15; /* 1 */ -webkit-text-size-adjust: 100%; /* 2 */ } + +/* Sections ========================================================================== */ +/** Remove the margin in all browsers. */ +body { margin: 0; } + +/** Render the `main` element consistently in IE. */ +main { display: block; } + +/** Correct the font size and margin on `h1` elements within `section` and `article` contexts in Chrome, Firefox, and Safari. */ +h1 { font-size: 2em; margin: 0.67em 0; } + +/* Grouping content ========================================================================== */ +/** 1. Add the correct box sizing in Firefox. 2. Show the overflow in Edge and IE. */ +hr { box-sizing: content-box; /* 1 */ height: 0; /* 1 */ overflow: visible; /* 2 */ } + +/** 1. Correct the inheritance and scaling of font size in all browsers. 2. Correct the odd `em` font sizing in all browsers. */ +pre { font-family: monospace, monospace; /* 1 */ font-size: 1em; /* 2 */ } + +/* Text-level semantics ========================================================================== */ +/** Remove the gray background on active links in IE 10. */ +a { background-color: transparent; } + +/** 1. Remove the bottom border in Chrome 57- 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. */ +abbr[title] { border-bottom: none; /* 1 */ text-decoration: underline; /* 2 */ text-decoration: underline dotted; /* 2 */ } + +/** Add the correct font weight in Chrome, Edge, and Safari. */ +b, strong { font-weight: bolder; } + +/** 1. Correct the inheritance and scaling of font size in all browsers. 2. Correct the odd `em` font sizing in all browsers. */ +code, kbd, samp { font-family: monospace, monospace; /* 1 */ font-size: 1em; /* 2 */ } + +/** Add the correct font size in all browsers. */ +small { font-size: 80%; } + +/** Prevent `sub` and `sup` elements from affecting the line height in all browsers. */ +sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } + +sub { bottom: -0.25em; } + +sup { top: -0.5em; } + +/* Embedded content ========================================================================== */ +/** Remove the border on images inside links in IE 10. */ +img { border-style: none; } + +/* Forms ========================================================================== */ +/** 1. Change the font styles in all browsers. 2. Remove the margin in Firefox and Safari. */ +button, input, optgroup, select, textarea { font-family: inherit; /* 1 */ font-size: 100%; /* 1 */ line-height: 1.15; /* 1 */ margin: 0; /* 2 */ } + +/** Show the overflow in IE. 1. Show the overflow in Edge. */ +button, input { /* 1 */ overflow: visible; } + +/** Remove the inheritance of text transform in Edge, Firefox, and IE. 1. Remove the inheritance of text transform in Firefox. */ +button, select { /* 1 */ text-transform: none; } + +/** Correct the inability to style clickable types in iOS and Safari. */ +button, [type="button"], [type="reset"], [type="submit"] { -webkit-appearance: button; } + +/** Remove the inner border and padding in Firefox. */ +button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner { border-style: none; padding: 0; } + +/** Restore the focus styles unset by the previous rule. */ +button:-moz-focusring, [type="button"]:-moz-focusring, [type="reset"]:-moz-focusring, [type="submit"]:-moz-focusring { outline: 1px dotted ButtonText; } + +/** Correct the padding in Firefox. */ +fieldset { padding: 0.35em 0.75em 0.625em; } + +/** 1. Correct the text wrapping in Edge and IE. 2. Correct the color inheritance from `fieldset` elements in IE. 3. Remove the padding so developers are not caught out when they zero out `fieldset` elements in all browsers. */ +legend { box-sizing: border-box; /* 1 */ color: inherit; /* 2 */ display: table; /* 1 */ max-width: 100%; /* 1 */ padding: 0; /* 3 */ white-space: normal; /* 1 */ } + +/** Add the correct vertical alignment in Chrome, Firefox, and Opera. */ +progress { vertical-align: baseline; } + +/** Remove the default vertical scrollbar in IE 10+. */ +textarea { overflow: auto; } + +/** 1. Add the correct box sizing in IE 10. 2. Remove the padding in IE 10. */ +[type="checkbox"], [type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ } + +/** Correct the cursor style of increment and decrement buttons in Chrome. */ +[type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button { height: auto; } + +/** 1. Correct the odd appearance in Chrome and Safari. 2. Correct the outline style in Safari. */ +[type="search"] { -webkit-appearance: textfield; /* 1 */ outline-offset: -2px; /* 2 */ } + +/** Remove the inner padding in Chrome and Safari on macOS. */ +[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } + +/** 1. Correct the inability to style clickable types in iOS and Safari. 2. Change font properties to `inherit` in Safari. */ +::-webkit-file-upload-button { -webkit-appearance: button; /* 1 */ font: inherit; /* 2 */ } + +/* Interactive ========================================================================== */ +/* Add the correct display in Edge, IE 10+, and Firefox. */ +details { display: block; } + +/* Add the correct display in all browsers. */ +summary { display: list-item; } + +/* Misc ========================================================================== */ +/** Add the correct display in IE 10+. */ +template { display: none; } + +/** Add the correct display in IE 10. */ +[hidden] { display: none; } + +:root { color-scheme: light; } + +* { box-sizing: border-box; } + +html { font-size: 0.875rem !important; scroll-behavior: smooth; } +@media (min-width: 31.25rem) { html { font-size: 1rem !important; } } + +body { font-family: system-ui, -apple-system, blinkmacsystemfont, "Segoe UI", roboto, "Helvetica Neue", arial, sans-serif; font-size: inherit; line-height: 1.4; color: #5c5962; background-color: #fff; overflow-wrap: break-word; } + +ol, ul, dl, pre, address, blockquote, table, div, hr, form, fieldset, noscript .table-wrapper { margin-top: 0; } + +h1, h2, h3, h4, h5, h6, #toctitle { margin-top: 0; margin-bottom: 1em; font-weight: 500; line-height: 1.25; color: #27262b; } + +p { margin-top: 1em; margin-bottom: 1em; } + +a { color: #7253ed; text-decoration: none; } + +a:not([class]) { text-decoration: underline; text-decoration-color: #eeebee; text-underline-offset: 2px; } +a:not([class]):hover { text-decoration-color: rgba(114, 83, 237, 0.45); } + +code { font-family: "SFMono-Regular", menlo, consolas, monospace; font-size: 0.75em; line-height: 1.4; } + +figure, pre { margin: 0; } + +li { margin: 0.25em 0; } + +img { max-width: 100%; height: auto; } + +hr { height: 1px; padding: 0; margin: 2rem 0; background-color: #eeebee; border: 0; } + +blockquote { margin: 10px 0; margin-block-start: 0; margin-inline-start: 0; padding-left: 1rem; border-left: 3px solid #eeebee; } + +.side-bar { z-index: 0; display: flex; flex-wrap: wrap; background-color: #f5f6fa; } +@media (min-width: 50rem) { .side-bar { flex-flow: column nowrap; position: fixed; width: 15.5rem; height: 100%; border-right: 1px solid #eeebee; align-items: flex-end; } } +@media (min-width: 66.5rem) { .side-bar { width: calc((100% - 66.5rem) / 2 + 16.5rem); min-width: 16.5rem; } } + +@media (min-width: 50rem) { .main { position: relative; max-width: 50rem; margin-left: 15.5rem; } } +@media (min-width: 66.5rem) { .main { margin-left: Max(16.5rem, calc((100% - 66.5rem) / 2 + 16.5rem)); } } + +.main-content-wrap { padding-right: 1rem; padding-left: 1rem; padding-top: 1rem; padding-bottom: 1rem; } +@media (min-width: 50rem) { .main-content-wrap { padding-right: 2rem; padding-left: 2rem; } } +@media (min-width: 50rem) { .main-content-wrap { padding-top: 2rem; padding-bottom: 2rem; } } + +.main-header { z-index: 0; display: none; background-color: #f5f6fa; } +@media (min-width: 50rem) { .main-header { display: flex; justify-content: space-between; height: 3.75rem; background-color: #fff; border-bottom: 1px solid #eeebee; } } +.main-header.nav-open { display: block; } +@media (min-width: 50rem) { .main-header.nav-open { display: flex; } } + +.site-nav, .site-header, .site-footer { width: 100%; } +@media (min-width: 66.5rem) { .site-nav, .site-header, .site-footer { width: 16.5rem; } } + +.site-nav { display: none; } +.site-nav.nav-open { display: block; } +@media (min-width: 50rem) { .site-nav { display: block; padding-top: 3rem; padding-bottom: 1rem; overflow-y: auto; flex: 1 1 auto; } } + +.site-header { display: flex; min-height: 3.75rem; align-items: center; } +@media (min-width: 50rem) { .site-header { height: 3.75rem; max-height: 3.75rem; border-bottom: 1px solid #eeebee; } } + +.site-title { padding-right: 1rem; padding-left: 1rem; flex-grow: 1; display: flex; height: 100%; align-items: center; padding-top: 0.75rem; padding-bottom: 0.75rem; color: #27262b; font-size: 1.125rem !important; } +@media (min-width: 50rem) { .site-title { padding-right: 2rem; padding-left: 2rem; } } +@media (min-width: 31.25rem) { .site-title { font-size: 1.5rem !important; line-height: 1.25; } } +@media (min-width: 50rem) { .site-title { padding-top: 0.5rem; padding-bottom: 0.5rem; } } + +.site-logo { width: 100%; height: 100%; background-image: url("/v1.46/assets/logo.svg"); background-repeat: no-repeat; background-position: left center; background-size: contain; } + +.site-button { display: flex; height: 100%; padding: 1rem; align-items: center; } + +@media (min-width: 50rem) { .site-header .site-button { display: none; } } +.site-title:hover { background-image: linear-gradient(-90deg, #ebedf5 0%, rgba(235, 237, 245, 0.8) 80%, rgba(235, 237, 245, 0) 100%); } + +.site-button:hover { background-image: linear-gradient(-90deg, #ebedf5 0%, rgba(235, 237, 245, 0.8) 100%); } + +body { position: relative; padding-bottom: 4rem; overflow-y: scroll; } +@media (min-width: 50rem) { body { position: static; padding-bottom: 0; } } + +.site-footer { padding-right: 1rem; padding-left: 1rem; position: absolute; bottom: 0; left: 0; padding-top: 1rem; padding-bottom: 1rem; color: #959396; font-size: 0.6875rem !important; } +@media (min-width: 50rem) { .site-footer { padding-right: 2rem; padding-left: 2rem; } } +@media (min-width: 31.25rem) { .site-footer { font-size: 0.75rem !important; } } +@media (min-width: 50rem) { .site-footer { position: static; justify-self: end; } } + +.icon { width: 1.5rem; height: 1.5rem; color: #7253ed; } + +.main-content { line-height: 1.6; } +.main-content ol, .main-content ul, .main-content dl, .main-content pre, .main-content address, .main-content blockquote, .main-content .table-wrapper { margin-top: 0.5em; } +.main-content a { overflow: hidden; text-overflow: ellipsis; } +.main-content ul, .main-content ol { padding-left: 1.5em; } +.main-content li .highlight { margin-top: 0.25rem; } +.main-content ol { list-style-type: none; counter-reset: step-counter; } +.main-content ol > li { position: relative; } +.main-content ol > li::before { position: absolute; top: 0.2em; left: -1.6em; color: #959396; content: counter(step-counter); counter-increment: step-counter; font-size: 0.75rem !important; } +@media (min-width: 31.25rem) { .main-content ol > li::before { font-size: 0.875rem !important; } } +@media (min-width: 31.25rem) { .main-content ol > li::before { top: 0.11em; } } +.main-content ol > li ol { counter-reset: sub-counter; } +.main-content ol > li ol > li::before { content: counter(sub-counter,lower-alpha); counter-increment: sub-counter; } +.main-content ul { list-style: none; } +.main-content ul > li::before { position: absolute; margin-left: -1.4em; color: #959396; content: "•"; } +.main-content .task-list-item::before { content: ""; } +.main-content .task-list-item-checkbox { margin-right: 0.6em; margin-left: -1.4em; } +.main-content hr + * { margin-top: 0; } +.main-content h1:first-of-type { margin-top: 0.5em; } +.main-content dl { display: grid; grid-template: auto / 10em 1fr; } +.main-content dt, .main-content dd { margin: 0.25em 0; } +.main-content dt { grid-column: 1; font-weight: 500; text-align: right; } +.main-content dt::after { content: ":"; } +.main-content dd { grid-column: 2; margin-bottom: 0; margin-left: 1em; } +.main-content dd blockquote:first-child, .main-content dd div:first-child, .main-content dd dl:first-child, .main-content dd dt:first-child, .main-content dd h1:first-child, .main-content dd h2:first-child, .main-content dd h3:first-child, .main-content dd h4:first-child, .main-content dd h5:first-child, .main-content dd h6:first-child, .main-content dd li:first-child, .main-content dd ol:first-child, .main-content dd p:first-child, .main-content dd pre:first-child, .main-content dd table:first-child, .main-content dd ul:first-child, .main-content dd .table-wrapper:first-child { margin-top: 0; } +.main-content dd dl:first-child dt:first-child, .main-content dd dl:first-child dd:nth-child(2), .main-content ol dl:first-child dt:first-child, .main-content ol dl:first-child dd:nth-child(2), .main-content ul dl:first-child dt:first-child, .main-content ul dl:first-child dd:nth-child(2) { margin-top: 0; } +.main-content .anchor-heading { position: absolute; right: -1rem; width: 1.5rem; height: 100%; padding-right: 0.25rem; padding-left: 0.25rem; overflow: visible; } +@media (min-width: 50rem) { .main-content .anchor-heading { right: auto; left: -1.5rem; } } +.main-content .anchor-heading svg { display: inline-block; width: 100%; height: 100%; color: #7253ed; visibility: hidden; } +.main-content .anchor-heading:hover svg, .main-content .anchor-heading:focus svg, .main-content h1:hover > .anchor-heading svg, .main-content h2:hover > .anchor-heading svg, .main-content h3:hover > .anchor-heading svg, .main-content h4:hover > .anchor-heading svg, .main-content h5:hover > .anchor-heading svg, .main-content h6:hover > .anchor-heading svg { visibility: visible; } +.main-content summary { cursor: pointer; } +.main-content h1, .main-content h2, .main-content h3, .main-content h4, .main-content h5, .main-content h6, .main-content #toctitle { position: relative; margin-top: 1.5em; margin-bottom: 0.25em; } +.main-content h1 + table, .main-content h1 + .table-wrapper, .main-content h1 + .code-example, .main-content h1 + .highlighter-rouge, .main-content h1 + .sectionbody .listingblock, .main-content h2 + table, .main-content h2 + .table-wrapper, .main-content h2 + .code-example, .main-content h2 + .highlighter-rouge, .main-content h2 + .sectionbody .listingblock, .main-content h3 + table, .main-content h3 + .table-wrapper, .main-content h3 + .code-example, .main-content h3 + .highlighter-rouge, .main-content h3 + .sectionbody .listingblock, .main-content h4 + table, .main-content h4 + .table-wrapper, .main-content h4 + .code-example, .main-content h4 + .highlighter-rouge, .main-content h4 + .sectionbody .listingblock, .main-content h5 + table, .main-content h5 + .table-wrapper, .main-content h5 + .code-example, .main-content h5 + .highlighter-rouge, .main-content h5 + .sectionbody .listingblock, .main-content h6 + table, .main-content h6 + .table-wrapper, .main-content h6 + .code-example, .main-content h6 + .highlighter-rouge, .main-content h6 + .sectionbody .listingblock, .main-content #toctitle + table, .main-content #toctitle + .table-wrapper, .main-content #toctitle + .code-example, .main-content #toctitle + .highlighter-rouge, .main-content #toctitle + .sectionbody .listingblock { margin-top: 1em; } +.main-content h1 + p:not(.label), .main-content h2 + p:not(.label), .main-content h3 + p:not(.label), .main-content h4 + p:not(.label), .main-content h5 + p:not(.label), .main-content h6 + p:not(.label), .main-content #toctitle + p:not(.label) { margin-top: 0; } +.main-content > h1:first-child, .main-content > h2:first-child, .main-content > h3:first-child, .main-content > h4:first-child, .main-content > h5:first-child, .main-content > h6:first-child, .main-content > .sect1:first-child > h2, .main-content > .sect2:first-child > h3, .main-content > .sect3:first-child > h4, .main-content > .sect4:first-child > h5, .main-content > .sect5:first-child > h6 { margin-top: 0.5rem; } + +.nav-list { padding: 0; margin-top: 0; margin-bottom: 0; list-style: none; } +.nav-list .nav-list-item { font-size: 0.875rem !important; position: relative; margin: 0; } +@media (min-width: 31.25rem) { .nav-list .nav-list-item { font-size: 1rem !important; } } +@media (min-width: 50rem) { .nav-list .nav-list-item { font-size: 0.75rem !important; } } +@media (min-width: 50rem) and (min-width: 31.25rem) { .nav-list .nav-list-item { font-size: 0.875rem !important; } } + +.nav-list .nav-list-item .nav-list-link { display: block; min-height: 3rem; padding-top: 0.25rem; padding-bottom: 0.25rem; line-height: 2.5rem; padding-right: 3rem; padding-left: 1rem; } +@media (min-width: 50rem) { .nav-list .nav-list-item .nav-list-link { min-height: 2rem; line-height: 1.5rem; padding-right: 2rem; padding-left: 2rem; } } +.nav-list .nav-list-item .nav-list-link.external > svg { width: 1rem; height: 1rem; vertical-align: text-bottom; } +.nav-list .nav-list-item .nav-list-link.active { font-weight: 600; text-decoration: none; } +.nav-list .nav-list-item .nav-list-link:hover, .nav-list .nav-list-item .nav-list-link.active { background-image: linear-gradient(-90deg, #ebedf5 0%, rgba(235, 237, 245, 0.8) 80%, rgba(235, 237, 245, 0) 100%); } +.nav-list .nav-list-item .nav-list-expander { position: absolute; right: 0; width: 3rem; height: 3rem; padding: 0.75rem; color: #7253ed; } +@media (min-width: 50rem) { .nav-list .nav-list-item .nav-list-expander { width: 2rem; height: 2rem; padding: 0.5rem; } } +.nav-list .nav-list-item .nav-list-expander:hover { background-image: linear-gradient(-90deg, #ebedf5 0%, rgba(235, 237, 245, 0.8) 100%); } +.nav-list .nav-list-item .nav-list-expander svg { transform: rotate(90deg); } +.nav-list .nav-list-item > .nav-list { display: none; padding-left: 0.75rem; list-style: none; } +.nav-list .nav-list-item > .nav-list .nav-list-item { position: relative; } +.nav-list .nav-list-item > .nav-list .nav-list-item .nav-list-link { color: #5c5962; } +.nav-list .nav-list-item > .nav-list .nav-list-item .nav-list-expander { color: #5c5962; } +.nav-list .nav-list-item.active > .nav-list-expander svg { transform: rotate(-90deg); } +.nav-list .nav-list-item.active > .nav-list { display: block; } + +.nav-category { padding: 0.5rem 1rem; font-weight: 600; text-align: start; text-transform: uppercase; border-bottom: 1px solid #eeebee; font-size: 0.6875rem !important; } +@media (min-width: 31.25rem) { .nav-category { font-size: 0.75rem !important; } } +@media (min-width: 50rem) { .nav-category { padding: 0.5rem 2rem; margin-top: 1rem; text-align: start; } + .nav-category:first-child { margin-top: 0; } } + +.nav-list.nav-category-list > .nav-list-item { margin: 0; } +.nav-list.nav-category-list > .nav-list-item > .nav-list { padding: 0; } +.nav-list.nav-category-list > .nav-list-item > .nav-list > .nav-list-item > .nav-list-link { color: #7253ed; } +.nav-list.nav-category-list > .nav-list-item > .nav-list > .nav-list-item > .nav-list-expander { color: #7253ed; } + +.aux-nav { height: 100%; overflow-x: auto; font-size: 0.6875rem !important; } +@media (min-width: 31.25rem) { .aux-nav { font-size: 0.75rem !important; } } +.aux-nav .aux-nav-list { display: flex; height: 100%; padding: 0; margin: 0; list-style: none; } +.aux-nav .aux-nav-list-item { display: inline-block; height: 100%; padding: 0; margin: 0; } +@media (min-width: 50rem) { .aux-nav { padding-right: 1rem; } } + +@media (min-width: 50rem) { .breadcrumb-nav { margin-top: -1rem; } } + +.breadcrumb-nav-list { padding-left: 0; margin-bottom: 0.75rem; list-style: none; } + +.breadcrumb-nav-list-item { display: table-cell; font-size: 0.6875rem !important; } +@media (min-width: 31.25rem) { .breadcrumb-nav-list-item { font-size: 0.75rem !important; } } +.breadcrumb-nav-list-item::before { display: none; } +.breadcrumb-nav-list-item::after { display: inline-block; margin-right: 0.5rem; margin-left: 0.5rem; color: #959396; content: "/"; } +.breadcrumb-nav-list-item:last-child::after { content: ""; } + +h1, .text-alpha { font-size: 2rem !important; line-height: 1.25; font-weight: 300; } +@media (min-width: 31.25rem) { h1, .text-alpha { font-size: 2.25rem !important; } } + +h2, .text-beta, #toctitle { font-size: 1.125rem !important; } +@media (min-width: 31.25rem) { h2, .text-beta, #toctitle { font-size: 1.5rem !important; line-height: 1.25; } } + +h3, .text-gamma { font-size: 1rem !important; } +@media (min-width: 31.25rem) { h3, .text-gamma { font-size: 1.125rem !important; } } + +h4, .text-delta { font-size: 0.6875rem !important; font-weight: 400; text-transform: uppercase; letter-spacing: 0.1em; } +@media (min-width: 31.25rem) { h4, .text-delta { font-size: 0.75rem !important; } } + +h4 code { text-transform: none; } + +h5, .text-epsilon { font-size: 0.75rem !important; } +@media (min-width: 31.25rem) { h5, .text-epsilon { font-size: 0.875rem !important; } } + +h6, .text-zeta { font-size: 0.6875rem !important; } +@media (min-width: 31.25rem) { h6, .text-zeta { font-size: 0.75rem !important; } } + +.text-small { font-size: 0.6875rem !important; } +@media (min-width: 31.25rem) { .text-small { font-size: 0.75rem !important; } } + +.text-mono { font-family: "SFMono-Regular", menlo, consolas, monospace !important; } + +.text-left { text-align: left !important; } + +.text-center { text-align: center !important; } + +.text-right { text-align: right !important; } + +.label:not(g), .label-blue:not(g) { display: inline-block; padding: 0.16em 0.56em; margin-right: 0.5rem; margin-left: 0.5rem; color: #fff; text-transform: uppercase; vertical-align: middle; background-color: #2869e6; font-size: 0.6875rem !important; border-radius: 12px; } +@media (min-width: 31.25rem) { .label:not(g), .label-blue:not(g) { font-size: 0.75rem !important; } } + +.label-green:not(g) { background-color: #009c7b; } + +.label-purple:not(g) { background-color: #5e41d0; } + +.label-red:not(g) { background-color: #e94c4c; } + +.label-yellow:not(g) { color: #44434d; background-color: #f7d12e; } + +.btn { display: inline-block; box-sizing: border-box; padding: 0.3em 1em; margin: 0; font-family: inherit; font-size: inherit; font-weight: 500; line-height: 1.5; color: #7253ed; text-decoration: none; vertical-align: baseline; cursor: pointer; background-color: #f7f7f7; border-width: 0; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); appearance: none; } +.btn:focus { text-decoration: none; outline: none; box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.25); } +.btn:focus:hover, .btn.selected:focus { box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.25); } +.btn:hover, .btn.zeroclipboard-is-hover { color: #6a4aec; } +.btn:hover, .btn:active, .btn.zeroclipboard-is-hover, .btn.zeroclipboard-is-active { text-decoration: none; background-color: #f4f4f4; } +.btn:active, .btn.selected, .btn.zeroclipboard-is-active { background-color: #efefef; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } +.btn.selected:hover { background-color: #cfcfcf; } +.btn:disabled, .btn:disabled:hover, .btn.disabled, .btn.disabled:hover { color: rgba(102, 102, 102, 0.5); cursor: default; background-color: rgba(229, 229, 229, 0.5); background-image: none; box-shadow: none; } + +.btn-outline { color: #7253ed; background: transparent; box-shadow: inset 0 0 0 2px #e6e1e8; } +.btn-outline:hover, .btn-outline:active, .btn-outline.zeroclipboard-is-hover, .btn-outline.zeroclipboard-is-active { color: #6341eb; text-decoration: none; background-color: transparent; box-shadow: inset 0 0 0 3px #e6e1e8; } +.btn-outline:focus { text-decoration: none; outline: none; box-shadow: inset 0 0 0 2px #5c5962, 0 0 0 3px rgba(0, 0, 255, 0.25); } +.btn-outline:focus:hover, .btn-outline.selected:focus { box-shadow: inset 0 0 0 2px #5c5962; } + +.btn-primary { color: #fff; background-color: #5739ce; background-image: linear-gradient(#6f55d5, #5739ce); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); } +.btn-primary:hover, .btn-primary.zeroclipboard-is-hover { color: #fff; background-color: #5132cb; background-image: linear-gradient(#6549d2, #5132cb); } +.btn-primary:active, .btn-primary.selected, .btn-primary.zeroclipboard-is-active { background-color: #4f31c6; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } +.btn-primary.selected:hover { background-color: #472cb2; } + +.btn-purple { color: #fff; background-color: #5739ce; background-image: linear-gradient(#6f55d5, #5739ce); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); } +.btn-purple:hover, .btn-purple.zeroclipboard-is-hover { color: #fff; background-color: #5132cb; background-image: linear-gradient(#6549d2, #5132cb); } +.btn-purple:active, .btn-purple.selected, .btn-purple.zeroclipboard-is-active { background-color: #4f31c6; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } +.btn-purple.selected:hover { background-color: #472cb2; } + +.btn-blue { color: #fff; background-color: #227efa; background-image: linear-gradient(#4593fb, #227efa); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); } +.btn-blue:hover, .btn-blue.zeroclipboard-is-hover { color: #fff; background-color: #1878fa; background-image: linear-gradient(#368afa, #1878fa); } +.btn-blue:active, .btn-blue.selected, .btn-blue.zeroclipboard-is-active { background-color: #1375f9; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } +.btn-blue.selected:hover { background-color: #0669ed; } + +.btn-green { color: #fff; background-color: #10ac7d; background-image: linear-gradient(#13cc95, #10ac7d); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); } +.btn-green:hover, .btn-green.zeroclipboard-is-hover { color: #fff; background-color: #0fa276; background-image: linear-gradient(#12be8b, #0fa276); } +.btn-green:active, .btn-green.selected, .btn-green.zeroclipboard-is-active { background-color: #0f9e73; background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); } +.btn-green.selected:hover { background-color: #0d8662; } + +.btn-reset { background: none; border: none; margin: 0; text-align: inherit; font: inherit; border-radius: 0; appearance: none; } + +.search { position: relative; z-index: 2; flex-grow: 1; height: 4rem; padding: 0.5rem; transition: padding linear 200ms; } +@media (min-width: 50rem) { .search { position: relative !important; width: auto !important; height: 100% !important; padding: 0; transition: none; } } + +.search-input-wrap { position: relative; z-index: 1; height: 3rem; overflow: hidden; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); transition: height linear 200ms; } +@media (min-width: 50rem) { .search-input-wrap { position: absolute; width: 100%; max-width: 33.5rem; height: 100% !important; border-radius: 0; box-shadow: none; transition: width ease 400ms; } } + +.search-input { position: absolute; width: 100%; height: 100%; padding: 0.5rem 1rem 0.5rem 2.5rem; font-size: 1rem; color: #5c5962; background-color: #fff; border-top: 0; border-right: 0; border-bottom: 0; border-left: 0; border-radius: 0; } +@media (min-width: 50rem) { .search-input { padding: 0.5rem 1rem 0.5rem 3.5rem; font-size: 0.875rem; background-color: #fff; transition: padding-left linear 200ms; } } +.search-input:focus { outline: 0; } +.search-input:focus + .search-label .search-icon { color: #7253ed; } + +.search-label { position: absolute; display: flex; height: 100%; padding-left: 1rem; } +@media (min-width: 50rem) { .search-label { padding-left: 2rem; transition: padding-left linear 200ms; } } +.search-label .search-icon { width: 1.2rem; height: 1.2rem; align-self: center; color: #959396; } + +.search-results { position: absolute; left: 0; display: none; width: 100%; max-height: calc(100% - 4rem); overflow-y: auto; background-color: #fff; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); } +@media (min-width: 50rem) { .search-results { top: 100%; width: 33.5rem; max-height: calc(100vh - 200%) !important; } } + +.search-results-list { padding-left: 0; margin-bottom: 0.25rem; list-style: none; font-size: 0.875rem !important; } +@media (min-width: 31.25rem) { .search-results-list { font-size: 1rem !important; } } +@media (min-width: 50rem) { .search-results-list { font-size: 0.75rem !important; } } +@media (min-width: 50rem) and (min-width: 31.25rem) { .search-results-list { font-size: 0.875rem !important; } } + +.search-results-list-item { padding: 0; margin: 0; } + +.search-result { display: block; padding: 0.25rem 0.75rem; } +.search-result:hover, .search-result.active { background-color: #ebedf5; } + +.search-result-title { display: block; padding-top: 0.5rem; padding-bottom: 0.5rem; } +@media (min-width: 31.25rem) { .search-result-title { display: inline-block; width: 40%; padding-right: 0.5rem; vertical-align: top; } } + +.search-result-doc { display: flex; align-items: center; word-wrap: break-word; } +.search-result-doc.search-result-doc-parent { opacity: 0.5; font-size: 0.75rem !important; } +@media (min-width: 31.25rem) { .search-result-doc.search-result-doc-parent { font-size: 0.875rem !important; } } +@media (min-width: 50rem) { .search-result-doc.search-result-doc-parent { font-size: 0.6875rem !important; } } +@media (min-width: 50rem) and (min-width: 31.25rem) { .search-result-doc.search-result-doc-parent { font-size: 0.75rem !important; } } + +.search-result-doc .search-result-icon { width: 1rem; height: 1rem; margin-right: 0.5rem; color: #7253ed; flex-shrink: 0; } +.search-result-doc .search-result-doc-title { overflow: auto; } + +.search-result-section { margin-left: 1.5rem; word-wrap: break-word; } + +.search-result-rel-url { display: block; margin-left: 1.5rem; overflow: hidden; color: #959396; text-overflow: ellipsis; white-space: nowrap; font-size: 0.5625rem !important; } +@media (min-width: 31.25rem) { .search-result-rel-url { font-size: 0.625rem !important; } } + +.search-result-previews { display: block; padding-top: 0.5rem; padding-bottom: 0.5rem; padding-left: 1rem; margin-left: 0.5rem; color: #959396; word-wrap: break-word; border-left: 1px solid; border-left-color: #eeebee; font-size: 0.6875rem !important; } +@media (min-width: 31.25rem) { .search-result-previews { font-size: 0.75rem !important; } } +@media (min-width: 31.25rem) { .search-result-previews { display: inline-block; width: 60%; padding-left: 0.5rem; margin-left: 0; vertical-align: top; } } + +.search-result-preview + .search-result-preview { margin-top: 0.25rem; } + +.search-result-highlight { font-weight: bold; } + +.search-no-result { padding: 0.5rem 0.75rem; font-size: 0.75rem !important; } +@media (min-width: 31.25rem) { .search-no-result { font-size: 0.875rem !important; } } + +.search-button { position: fixed; right: 1rem; bottom: 1rem; display: flex; width: 3.5rem; height: 3.5rem; background-color: #fff; border: 1px solid rgba(114, 83, 237, 0.3); border-radius: 1.75rem; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); align-items: center; justify-content: center; } + +.search-overlay { position: fixed; top: 0; left: 0; z-index: 1; width: 0; height: 0; background-color: rgba(0, 0, 0, 0.3); opacity: 0; transition: opacity ease 400ms, width 0s 400ms, height 0s 400ms; } + +.search-active .search { position: fixed; top: 0; left: 0; width: 100%; height: 100%; padding: 0; } +.search-active .search-input-wrap { height: 4rem; border-radius: 0; } +@media (min-width: 50rem) { .search-active .search-input-wrap { width: 33.5rem; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); } } +.search-active .search-input { background-color: #fff; } +@media (min-width: 50rem) { .search-active .search-input { padding-left: 2.3rem; } } +@media (min-width: 50rem) { .search-active .search-label { padding-left: 0.6rem; } } +.search-active .search-results { display: block; } +.search-active .search-overlay { width: 100%; height: 100%; opacity: 1; transition: opacity ease 400ms, width 0s, height 0s; } +@media (min-width: 50rem) { .search-active .main { position: fixed; right: 0; left: 0; } } +.search-active .main-header { padding-top: 4rem; } +@media (min-width: 50rem) { .search-active .main-header { padding-top: 0; } } + +.table-wrapper { display: block; width: 100%; max-width: 100%; margin-bottom: 1.5rem; overflow-x: auto; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); } + +table { display: table; min-width: 100%; border-collapse: separate; } + +th, td { font-size: 0.75rem !important; min-width: 7.5rem; padding: 0.5rem 0.75rem; background-color: #fff; border-bottom: 1px solid rgba(238, 235, 238, 0.5); border-left: 1px solid #eeebee; } +@media (min-width: 31.25rem) { th, td { font-size: 0.875rem !important; } } +th:first-of-type, td:first-of-type { border-left: 0; } + +tbody tr:last-of-type th, tbody tr:last-of-type td { border-bottom: 0; } +tbody tr:last-of-type td { padding-bottom: 0.75rem; } + +thead th { border-bottom: 1px solid #eeebee; } + +:not(pre, figure) > code { padding: 0.2em 0.15em; font-weight: 400; background-color: #f5f6fa; border: 1px solid #eeebee; border-radius: 4px; } + +a:visited code { border-color: #eeebee; } + +div.highlighter-rouge, div.listingblock > div.content, figure.highlight { margin-top: 0; margin-bottom: 0.75rem; background-color: #f5f6fa; border-radius: 4px; box-shadow: none; -webkit-overflow-scrolling: touch; position: relative; padding: 0; } +div.highlighter-rouge > button, div.listingblock > div.content > button, figure.highlight > button { width: 0.75rem; opacity: 0; position: absolute; top: 0; right: 0; border: 0.75rem solid #f5f6fa; background-color: #f5f6fa; color: #5c5962; box-sizing: content-box; } +div.highlighter-rouge > button svg, div.listingblock > div.content > button svg, figure.highlight > button svg { fill: #5c5962; } +div.highlighter-rouge > button:active, div.listingblock > div.content > button:active, figure.highlight > button:active { text-decoration: none; outline: none; opacity: 1; } +div.highlighter-rouge > button:focus, div.listingblock > div.content > button:focus, figure.highlight > button:focus { opacity: 1; } +div.highlighter-rouge:hover > button, div.listingblock > div.content:hover > button, figure.highlight:hover > button { cursor: copy; opacity: 1; } + +div.highlighter-rouge div.highlight { overflow-x: auto; padding: 0.75rem; margin: 0; border: 0; } +div.highlighter-rouge pre.highlight, div.highlighter-rouge code { padding: 0; margin: 0; border: 0; } + +div.listingblock { margin-top: 0; margin-bottom: 0.75rem; } +div.listingblock div.content { overflow-x: auto; padding: 0.75rem; margin: 0; border: 0; } +div.listingblock div.content > pre, div.listingblock code { padding: 0; margin: 0; border: 0; } + +figure.highlight pre, figure.highlight :not(pre) > code { overflow-x: auto; padding: 0.75rem; margin: 0; border: 0; } + +.highlight .table-wrapper { padding: 0.75rem 0; margin: 0; border: 0; box-shadow: none; } +.highlight .table-wrapper td, .highlight .table-wrapper pre { font-size: 0.6875rem !important; min-width: 0; padding: 0; background-color: #f5f6fa; border: 0; } +@media (min-width: 31.25rem) { .highlight .table-wrapper td, .highlight .table-wrapper pre { font-size: 0.75rem !important; } } +.highlight .table-wrapper td.gl { width: 1em; padding-right: 0.75rem; padding-left: 0.75rem; } +.highlight .table-wrapper pre { margin: 0; line-height: 2; } + +.code-example, .listingblock > .title { padding: 0.75rem; margin-bottom: 0.75rem; overflow: auto; border: 1px solid #eeebee; border-radius: 4px; } +.code-example + .highlighter-rouge, .code-example + .sectionbody .listingblock, .code-example + .content, .code-example + figure.highlight, .listingblock > .title + .highlighter-rouge, .listingblock > .title + .sectionbody .listingblock, .listingblock > .title + .content, .listingblock > .title + figure.highlight { position: relative; margin-top: -1rem; border-right: 1px solid #eeebee; border-bottom: 1px solid #eeebee; border-left: 1px solid #eeebee; border-top-left-radius: 0; border-top-right-radius: 0; } + +code.language-mermaid { padding: 0; background-color: inherit; border: 0; } + +.highlight, pre.highlight { background: #f5f6fa; color: #5c5962; } + +.highlight pre { background: #f5f6fa; } + +.text-grey-dk-000 { color: #959396 !important; } + +.text-grey-dk-100 { color: #5c5962 !important; } + +.text-grey-dk-200 { color: #44434d !important; } + +.text-grey-dk-250 { color: #302d36 !important; } + +.text-grey-dk-300 { color: #27262b !important; } + +.text-grey-lt-000 { color: #f5f6fa !important; } + +.text-grey-lt-100 { color: #eeebee !important; } + +.text-grey-lt-200 { color: #ecebed !important; } + +.text-grey-lt-300 { color: #e6e1e8 !important; } + +.text-blue-000 { color: #2c84fa !important; } + +.text-blue-100 { color: #2869e6 !important; } + +.text-blue-200 { color: #264caf !important; } + +.text-blue-300 { color: #183385 !important; } + +.text-green-000 { color: #41d693 !important; } + +.text-green-100 { color: #11b584 !important; } + +.text-green-200 { color: #009c7b !important; } + +.text-green-300 { color: #026e57 !important; } + +.text-purple-000 { color: #7253ed !important; } + +.text-purple-100 { color: #5e41d0 !important; } + +.text-purple-200 { color: #4e26af !important; } + +.text-purple-300 { color: #381885 !important; } + +.text-yellow-000 { color: #ffeb82 !important; } + +.text-yellow-100 { color: #fadf50 !important; } + +.text-yellow-200 { color: #f7d12e !important; } + +.text-yellow-300 { color: #e7af06 !important; } + +.text-red-000 { color: #f77e7e !important; } + +.text-red-100 { color: #f96e65 !important; } + +.text-red-200 { color: #e94c4c !important; } + +.text-red-300 { color: #dd2e2e !important; } + +.bg-grey-dk-000 { background-color: #959396 !important; } + +.bg-grey-dk-100 { background-color: #5c5962 !important; } + +.bg-grey-dk-200 { background-color: #44434d !important; } + +.bg-grey-dk-250 { background-color: #302d36 !important; } + +.bg-grey-dk-300 { background-color: #27262b !important; } + +.bg-grey-lt-000 { background-color: #f5f6fa !important; } + +.bg-grey-lt-100 { background-color: #eeebee !important; } + +.bg-grey-lt-200 { background-color: #ecebed !important; } + +.bg-grey-lt-300 { background-color: #e6e1e8 !important; } + +.bg-blue-000 { background-color: #2c84fa !important; } + +.bg-blue-100 { background-color: #2869e6 !important; } + +.bg-blue-200 { background-color: #264caf !important; } + +.bg-blue-300 { background-color: #183385 !important; } + +.bg-green-000 { background-color: #41d693 !important; } + +.bg-green-100 { background-color: #11b584 !important; } + +.bg-green-200 { background-color: #009c7b !important; } + +.bg-green-300 { background-color: #026e57 !important; } + +.bg-purple-000 { background-color: #7253ed !important; } + +.bg-purple-100 { background-color: #5e41d0 !important; } + +.bg-purple-200 { background-color: #4e26af !important; } + +.bg-purple-300 { background-color: #381885 !important; } + +.bg-yellow-000 { background-color: #ffeb82 !important; } + +.bg-yellow-100 { background-color: #fadf50 !important; } + +.bg-yellow-200 { background-color: #f7d12e !important; } + +.bg-yellow-300 { background-color: #e7af06 !important; } + +.bg-red-000 { background-color: #f77e7e !important; } + +.bg-red-100 { background-color: #f96e65 !important; } + +.bg-red-200 { background-color: #e94c4c !important; } + +.bg-red-300 { background-color: #dd2e2e !important; } + +.d-block { display: block !important; } + +.d-flex { display: flex !important; } + +.d-inline { display: inline !important; } + +.d-inline-block { display: inline-block !important; } + +.d-none { display: none !important; } + +@media (min-width: 20rem) { .d-xs-block { display: block !important; } + .d-xs-flex { display: flex !important; } + .d-xs-inline { display: inline !important; } + .d-xs-inline-block { display: inline-block !important; } + .d-xs-none { display: none !important; } } +@media (min-width: 20rem) { .d-xs-block { display: block !important; } + .d-xs-flex { display: flex !important; } + .d-xs-inline { display: inline !important; } + .d-xs-inline-block { display: inline-block !important; } + .d-xs-none { display: none !important; } } +@media (min-width: 20rem) { .d-xs-block { display: block !important; } + .d-xs-flex { display: flex !important; } + .d-xs-inline { display: inline !important; } + .d-xs-inline-block { display: inline-block !important; } + .d-xs-none { display: none !important; } } +@media (min-width: 20rem) { .d-xs-block { display: block !important; } + .d-xs-flex { display: flex !important; } + .d-xs-inline { display: inline !important; } + .d-xs-inline-block { display: inline-block !important; } + .d-xs-none { display: none !important; } } +@media (min-width: 20rem) { .d-xs-block { display: block !important; } + .d-xs-flex { display: flex !important; } + .d-xs-inline { display: inline !important; } + .d-xs-inline-block { display: inline-block !important; } + .d-xs-none { display: none !important; } } +@media (min-width: 20rem) { .d-xs-block { display: block !important; } + .d-xs-flex { display: flex !important; } + .d-xs-inline { display: inline !important; } + .d-xs-inline-block { display: inline-block !important; } + .d-xs-none { display: none !important; } } +@media (min-width: 20rem) { .d-xs-block { display: block !important; } + .d-xs-flex { display: flex !important; } + .d-xs-inline { display: inline !important; } + .d-xs-inline-block { display: inline-block !important; } + .d-xs-none { display: none !important; } } +@media (min-width: 20rem) { .d-xs-block { display: block !important; } + .d-xs-flex { display: flex !important; } + .d-xs-inline { display: inline !important; } + .d-xs-inline-block { display: inline-block !important; } + .d-xs-none { display: none !important; } } +@media (min-width: 20rem) { .d-xs-block { display: block !important; } + .d-xs-flex { display: flex !important; } + .d-xs-inline { display: inline !important; } + .d-xs-inline-block { display: inline-block !important; } + .d-xs-none { display: none !important; } } +@media (min-width: 20rem) { .d-xs-block { display: block !important; } + .d-xs-flex { display: flex !important; } + .d-xs-inline { display: inline !important; } + .d-xs-inline-block { display: inline-block !important; } + .d-xs-none { display: none !important; } } +@media (min-width: 20rem) { .d-xs-block { display: block !important; } + .d-xs-flex { display: flex !important; } + .d-xs-inline { display: inline !important; } + .d-xs-inline-block { display: inline-block !important; } + .d-xs-none { display: none !important; } } +@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } + .d-sm-flex { display: flex !important; } + .d-sm-inline { display: inline !important; } + .d-sm-inline-block { display: inline-block !important; } + .d-sm-none { display: none !important; } } +@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } + .d-sm-flex { display: flex !important; } + .d-sm-inline { display: inline !important; } + .d-sm-inline-block { display: inline-block !important; } + .d-sm-none { display: none !important; } } +@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } + .d-sm-flex { display: flex !important; } + .d-sm-inline { display: inline !important; } + .d-sm-inline-block { display: inline-block !important; } + .d-sm-none { display: none !important; } } +@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } + .d-sm-flex { display: flex !important; } + .d-sm-inline { display: inline !important; } + .d-sm-inline-block { display: inline-block !important; } + .d-sm-none { display: none !important; } } +@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } + .d-sm-flex { display: flex !important; } + .d-sm-inline { display: inline !important; } + .d-sm-inline-block { display: inline-block !important; } + .d-sm-none { display: none !important; } } +@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } + .d-sm-flex { display: flex !important; } + .d-sm-inline { display: inline !important; } + .d-sm-inline-block { display: inline-block !important; } + .d-sm-none { display: none !important; } } +@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } + .d-sm-flex { display: flex !important; } + .d-sm-inline { display: inline !important; } + .d-sm-inline-block { display: inline-block !important; } + .d-sm-none { display: none !important; } } +@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } + .d-sm-flex { display: flex !important; } + .d-sm-inline { display: inline !important; } + .d-sm-inline-block { display: inline-block !important; } + .d-sm-none { display: none !important; } } +@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } + .d-sm-flex { display: flex !important; } + .d-sm-inline { display: inline !important; } + .d-sm-inline-block { display: inline-block !important; } + .d-sm-none { display: none !important; } } +@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } + .d-sm-flex { display: flex !important; } + .d-sm-inline { display: inline !important; } + .d-sm-inline-block { display: inline-block !important; } + .d-sm-none { display: none !important; } } +@media (min-width: 31.25rem) { .d-sm-block { display: block !important; } + .d-sm-flex { display: flex !important; } + .d-sm-inline { display: inline !important; } + .d-sm-inline-block { display: inline-block !important; } + .d-sm-none { display: none !important; } } +@media (min-width: 50rem) { .d-md-block { display: block !important; } + .d-md-flex { display: flex !important; } + .d-md-inline { display: inline !important; } + .d-md-inline-block { display: inline-block !important; } + .d-md-none { display: none !important; } } +@media (min-width: 50rem) { .d-md-block { display: block !important; } + .d-md-flex { display: flex !important; } + .d-md-inline { display: inline !important; } + .d-md-inline-block { display: inline-block !important; } + .d-md-none { display: none !important; } } +@media (min-width: 50rem) { .d-md-block { display: block !important; } + .d-md-flex { display: flex !important; } + .d-md-inline { display: inline !important; } + .d-md-inline-block { display: inline-block !important; } + .d-md-none { display: none !important; } } +@media (min-width: 50rem) { .d-md-block { display: block !important; } + .d-md-flex { display: flex !important; } + .d-md-inline { display: inline !important; } + .d-md-inline-block { display: inline-block !important; } + .d-md-none { display: none !important; } } +@media (min-width: 50rem) { .d-md-block { display: block !important; } + .d-md-flex { display: flex !important; } + .d-md-inline { display: inline !important; } + .d-md-inline-block { display: inline-block !important; } + .d-md-none { display: none !important; } } +@media (min-width: 50rem) { .d-md-block { display: block !important; } + .d-md-flex { display: flex !important; } + .d-md-inline { display: inline !important; } + .d-md-inline-block { display: inline-block !important; } + .d-md-none { display: none !important; } } +@media (min-width: 50rem) { .d-md-block { display: block !important; } + .d-md-flex { display: flex !important; } + .d-md-inline { display: inline !important; } + .d-md-inline-block { display: inline-block !important; } + .d-md-none { display: none !important; } } +@media (min-width: 50rem) { .d-md-block { display: block !important; } + .d-md-flex { display: flex !important; } + .d-md-inline { display: inline !important; } + .d-md-inline-block { display: inline-block !important; } + .d-md-none { display: none !important; } } +@media (min-width: 50rem) { .d-md-block { display: block !important; } + .d-md-flex { display: flex !important; } + .d-md-inline { display: inline !important; } + .d-md-inline-block { display: inline-block !important; } + .d-md-none { display: none !important; } } +@media (min-width: 50rem) { .d-md-block { display: block !important; } + .d-md-flex { display: flex !important; } + .d-md-inline { display: inline !important; } + .d-md-inline-block { display: inline-block !important; } + .d-md-none { display: none !important; } } +@media (min-width: 50rem) { .d-md-block { display: block !important; } + .d-md-flex { display: flex !important; } + .d-md-inline { display: inline !important; } + .d-md-inline-block { display: inline-block !important; } + .d-md-none { display: none !important; } } +@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } + .d-lg-flex { display: flex !important; } + .d-lg-inline { display: inline !important; } + .d-lg-inline-block { display: inline-block !important; } + .d-lg-none { display: none !important; } } +@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } + .d-lg-flex { display: flex !important; } + .d-lg-inline { display: inline !important; } + .d-lg-inline-block { display: inline-block !important; } + .d-lg-none { display: none !important; } } +@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } + .d-lg-flex { display: flex !important; } + .d-lg-inline { display: inline !important; } + .d-lg-inline-block { display: inline-block !important; } + .d-lg-none { display: none !important; } } +@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } + .d-lg-flex { display: flex !important; } + .d-lg-inline { display: inline !important; } + .d-lg-inline-block { display: inline-block !important; } + .d-lg-none { display: none !important; } } +@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } + .d-lg-flex { display: flex !important; } + .d-lg-inline { display: inline !important; } + .d-lg-inline-block { display: inline-block !important; } + .d-lg-none { display: none !important; } } +@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } + .d-lg-flex { display: flex !important; } + .d-lg-inline { display: inline !important; } + .d-lg-inline-block { display: inline-block !important; } + .d-lg-none { display: none !important; } } +@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } + .d-lg-flex { display: flex !important; } + .d-lg-inline { display: inline !important; } + .d-lg-inline-block { display: inline-block !important; } + .d-lg-none { display: none !important; } } +@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } + .d-lg-flex { display: flex !important; } + .d-lg-inline { display: inline !important; } + .d-lg-inline-block { display: inline-block !important; } + .d-lg-none { display: none !important; } } +@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } + .d-lg-flex { display: flex !important; } + .d-lg-inline { display: inline !important; } + .d-lg-inline-block { display: inline-block !important; } + .d-lg-none { display: none !important; } } +@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } + .d-lg-flex { display: flex !important; } + .d-lg-inline { display: inline !important; } + .d-lg-inline-block { display: inline-block !important; } + .d-lg-none { display: none !important; } } +@media (min-width: 66.5rem) { .d-lg-block { display: block !important; } + .d-lg-flex { display: flex !important; } + .d-lg-inline { display: inline !important; } + .d-lg-inline-block { display: inline-block !important; } + .d-lg-none { display: none !important; } } +@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } + .d-xl-flex { display: flex !important; } + .d-xl-inline { display: inline !important; } + .d-xl-inline-block { display: inline-block !important; } + .d-xl-none { display: none !important; } } +@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } + .d-xl-flex { display: flex !important; } + .d-xl-inline { display: inline !important; } + .d-xl-inline-block { display: inline-block !important; } + .d-xl-none { display: none !important; } } +@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } + .d-xl-flex { display: flex !important; } + .d-xl-inline { display: inline !important; } + .d-xl-inline-block { display: inline-block !important; } + .d-xl-none { display: none !important; } } +@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } + .d-xl-flex { display: flex !important; } + .d-xl-inline { display: inline !important; } + .d-xl-inline-block { display: inline-block !important; } + .d-xl-none { display: none !important; } } +@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } + .d-xl-flex { display: flex !important; } + .d-xl-inline { display: inline !important; } + .d-xl-inline-block { display: inline-block !important; } + .d-xl-none { display: none !important; } } +@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } + .d-xl-flex { display: flex !important; } + .d-xl-inline { display: inline !important; } + .d-xl-inline-block { display: inline-block !important; } + .d-xl-none { display: none !important; } } +@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } + .d-xl-flex { display: flex !important; } + .d-xl-inline { display: inline !important; } + .d-xl-inline-block { display: inline-block !important; } + .d-xl-none { display: none !important; } } +@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } + .d-xl-flex { display: flex !important; } + .d-xl-inline { display: inline !important; } + .d-xl-inline-block { display: inline-block !important; } + .d-xl-none { display: none !important; } } +@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } + .d-xl-flex { display: flex !important; } + .d-xl-inline { display: inline !important; } + .d-xl-inline-block { display: inline-block !important; } + .d-xl-none { display: none !important; } } +@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } + .d-xl-flex { display: flex !important; } + .d-xl-inline { display: inline !important; } + .d-xl-inline-block { display: inline-block !important; } + .d-xl-none { display: none !important; } } +@media (min-width: 87.5rem) { .d-xl-block { display: block !important; } + .d-xl-flex { display: flex !important; } + .d-xl-inline { display: inline !important; } + .d-xl-inline-block { display: inline-block !important; } + .d-xl-none { display: none !important; } } +.float-left { float: left !important; } + +.float-right { float: right !important; } + +.flex-justify-start { justify-content: flex-start !important; } + +.flex-justify-end { justify-content: flex-end !important; } + +.flex-justify-between { justify-content: space-between !important; } + +.flex-justify-around { justify-content: space-around !important; } + +.v-align-baseline { vertical-align: baseline !important; } + +.v-align-bottom { vertical-align: bottom !important; } + +.v-align-middle { vertical-align: middle !important; } + +.v-align-text-bottom { vertical-align: text-bottom !important; } + +.v-align-text-top { vertical-align: text-top !important; } + +.v-align-top { vertical-align: top !important; } + +.fs-1 { font-size: 0.5625rem !important; } +@media (min-width: 31.25rem) { .fs-1 { font-size: 0.625rem !important; } } + +.fs-2 { font-size: 0.6875rem !important; } +@media (min-width: 31.25rem) { .fs-2 { font-size: 0.75rem !important; } } + +.fs-3 { font-size: 0.75rem !important; } +@media (min-width: 31.25rem) { .fs-3 { font-size: 0.875rem !important; } } + +.fs-4 { font-size: 0.875rem !important; } +@media (min-width: 31.25rem) { .fs-4 { font-size: 1rem !important; } } + +.fs-5 { font-size: 1rem !important; } +@media (min-width: 31.25rem) { .fs-5 { font-size: 1.125rem !important; } } + +.fs-6 { font-size: 1.125rem !important; } +@media (min-width: 31.25rem) { .fs-6 { font-size: 1.5rem !important; line-height: 1.25; } } + +.fs-7 { font-size: 1.5rem !important; line-height: 1.25; } +@media (min-width: 31.25rem) { .fs-7 { font-size: 2rem !important; } } + +.fs-8 { font-size: 2rem !important; line-height: 1.25; } +@media (min-width: 31.25rem) { .fs-8 { font-size: 2.25rem !important; } } + +.fs-9 { font-size: 2.25rem !important; line-height: 1.25; } +@media (min-width: 31.25rem) { .fs-9 { font-size: 2.625rem !important; } } + +.fs-10 { font-size: 2.625rem !important; line-height: 1.25; } +@media (min-width: 31.25rem) { .fs-10 { font-size: 3rem !important; } } + +.fw-300 { font-weight: 300 !important; } + +.fw-400 { font-weight: 400 !important; } + +.fw-500 { font-weight: 500 !important; } + +.fw-700 { font-weight: 700 !important; } + +.lh-0 { line-height: 0 !important; } + +.lh-default { line-height: 1.4; } + +.lh-tight { line-height: 1.25; } + +.ls-5 { letter-spacing: 0.05em !important; } + +.ls-10 { letter-spacing: 0.1em !important; } + +.ls-0 { letter-spacing: 0 !important; } + +.text-uppercase { text-transform: uppercase !important; } + +.list-style-none { padding: 0 !important; margin: 0 !important; list-style: none !important; } +.list-style-none li::before { display: none !important; } + +.mx-auto { margin-right: auto !important; margin-left: auto !important; } + +.m-0 { margin: 0 !important; } + +.mt-0 { margin-top: 0 !important; } + +.mr-0 { margin-right: 0 !important; } + +.mb-0 { margin-bottom: 0 !important; } + +.ml-0 { margin-left: 0 !important; } + +.mx-0 { margin-right: 0 !important; margin-left: 0 !important; } + +.my-0 { margin-top: 0 !important; margin-bottom: 0 !important; } + +.mxn-0 { margin-right: -0 !important; margin-left: -0 !important; } + +.mx-0-auto { margin-right: auto !important; margin-left: auto !important; } + +.m-1 { margin: 0.25rem !important; } + +.mt-1 { margin-top: 0.25rem !important; } + +.mr-1 { margin-right: 0.25rem !important; } + +.mb-1 { margin-bottom: 0.25rem !important; } + +.ml-1 { margin-left: 0.25rem !important; } + +.mx-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } + +.my-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } + +.mxn-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } + +.mx-1-auto { margin-right: auto !important; margin-left: auto !important; } + +.m-2 { margin: 0.5rem !important; } + +.mt-2 { margin-top: 0.5rem !important; } + +.mr-2 { margin-right: 0.5rem !important; } + +.mb-2 { margin-bottom: 0.5rem !important; } + +.ml-2 { margin-left: 0.5rem !important; } + +.mx-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } + +.my-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } + +.mxn-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } + +.mx-2-auto { margin-right: auto !important; margin-left: auto !important; } + +.m-3 { margin: 0.75rem !important; } + +.mt-3 { margin-top: 0.75rem !important; } + +.mr-3 { margin-right: 0.75rem !important; } + +.mb-3 { margin-bottom: 0.75rem !important; } + +.ml-3 { margin-left: 0.75rem !important; } + +.mx-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } + +.my-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } + +.mxn-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } + +.mx-3-auto { margin-right: auto !important; margin-left: auto !important; } + +.m-4 { margin: 1rem !important; } + +.mt-4 { margin-top: 1rem !important; } + +.mr-4 { margin-right: 1rem !important; } + +.mb-4 { margin-bottom: 1rem !important; } + +.ml-4 { margin-left: 1rem !important; } + +.mx-4 { margin-right: 1rem !important; margin-left: 1rem !important; } + +.my-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } + +.mxn-4 { margin-right: -1rem !important; margin-left: -1rem !important; } + +.mx-4-auto { margin-right: auto !important; margin-left: auto !important; } + +.m-5 { margin: 1.5rem !important; } + +.mt-5 { margin-top: 1.5rem !important; } + +.mr-5 { margin-right: 1.5rem !important; } + +.mb-5 { margin-bottom: 1.5rem !important; } + +.ml-5 { margin-left: 1.5rem !important; } + +.mx-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } + +.my-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } + +.mxn-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } + +.mx-5-auto { margin-right: auto !important; margin-left: auto !important; } + +.m-6 { margin: 2rem !important; } + +.mt-6 { margin-top: 2rem !important; } + +.mr-6 { margin-right: 2rem !important; } + +.mb-6 { margin-bottom: 2rem !important; } + +.ml-6 { margin-left: 2rem !important; } + +.mx-6 { margin-right: 2rem !important; margin-left: 2rem !important; } + +.my-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } + +.mxn-6 { margin-right: -2rem !important; margin-left: -2rem !important; } + +.mx-6-auto { margin-right: auto !important; margin-left: auto !important; } + +.m-7 { margin: 2.5rem !important; } + +.mt-7 { margin-top: 2.5rem !important; } + +.mr-7 { margin-right: 2.5rem !important; } + +.mb-7 { margin-bottom: 2.5rem !important; } + +.ml-7 { margin-left: 2.5rem !important; } + +.mx-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } + +.my-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } + +.mxn-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } + +.mx-7-auto { margin-right: auto !important; margin-left: auto !important; } + +.m-8 { margin: 3rem !important; } + +.mt-8 { margin-top: 3rem !important; } + +.mr-8 { margin-right: 3rem !important; } + +.mb-8 { margin-bottom: 3rem !important; } + +.ml-8 { margin-left: 3rem !important; } + +.mx-8 { margin-right: 3rem !important; margin-left: 3rem !important; } + +.my-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } + +.mxn-8 { margin-right: -3rem !important; margin-left: -3rem !important; } + +.mx-8-auto { margin-right: auto !important; margin-left: auto !important; } + +.m-9 { margin: 3.5rem !important; } + +.mt-9 { margin-top: 3.5rem !important; } + +.mr-9 { margin-right: 3.5rem !important; } + +.mb-9 { margin-bottom: 3.5rem !important; } + +.ml-9 { margin-left: 3.5rem !important; } + +.mx-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } + +.my-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } + +.mxn-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } + +.mx-9-auto { margin-right: auto !important; margin-left: auto !important; } + +.m-10 { margin: 4rem !important; } + +.mt-10 { margin-top: 4rem !important; } + +.mr-10 { margin-right: 4rem !important; } + +.mb-10 { margin-bottom: 4rem !important; } + +.ml-10 { margin-left: 4rem !important; } + +.mx-10 { margin-right: 4rem !important; margin-left: 4rem !important; } + +.my-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } + +.mxn-10 { margin-right: -4rem !important; margin-left: -4rem !important; } + +.mx-10-auto { margin-right: auto !important; margin-left: auto !important; } + +@media (min-width: 20rem) { .m-xs-0 { margin: 0 !important; } + .mt-xs-0 { margin-top: 0 !important; } + .mr-xs-0 { margin-right: 0 !important; } + .mb-xs-0 { margin-bottom: 0 !important; } + .ml-xs-0 { margin-left: 0 !important; } + .mx-xs-0 { margin-right: 0 !important; margin-left: 0 !important; } + .my-xs-0 { margin-top: 0 !important; margin-bottom: 0 !important; } + .mxn-xs-0 { margin-right: -0 !important; margin-left: -0 !important; } } +@media (min-width: 20rem) { .m-xs-1 { margin: 0.25rem !important; } + .mt-xs-1 { margin-top: 0.25rem !important; } + .mr-xs-1 { margin-right: 0.25rem !important; } + .mb-xs-1 { margin-bottom: 0.25rem !important; } + .ml-xs-1 { margin-left: 0.25rem !important; } + .mx-xs-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } + .my-xs-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } + .mxn-xs-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } +@media (min-width: 20rem) { .m-xs-2 { margin: 0.5rem !important; } + .mt-xs-2 { margin-top: 0.5rem !important; } + .mr-xs-2 { margin-right: 0.5rem !important; } + .mb-xs-2 { margin-bottom: 0.5rem !important; } + .ml-xs-2 { margin-left: 0.5rem !important; } + .mx-xs-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } + .my-xs-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } + .mxn-xs-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } +@media (min-width: 20rem) { .m-xs-3 { margin: 0.75rem !important; } + .mt-xs-3 { margin-top: 0.75rem !important; } + .mr-xs-3 { margin-right: 0.75rem !important; } + .mb-xs-3 { margin-bottom: 0.75rem !important; } + .ml-xs-3 { margin-left: 0.75rem !important; } + .mx-xs-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } + .my-xs-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } + .mxn-xs-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } +@media (min-width: 20rem) { .m-xs-4 { margin: 1rem !important; } + .mt-xs-4 { margin-top: 1rem !important; } + .mr-xs-4 { margin-right: 1rem !important; } + .mb-xs-4 { margin-bottom: 1rem !important; } + .ml-xs-4 { margin-left: 1rem !important; } + .mx-xs-4 { margin-right: 1rem !important; margin-left: 1rem !important; } + .my-xs-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } + .mxn-xs-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } +@media (min-width: 20rem) { .m-xs-5 { margin: 1.5rem !important; } + .mt-xs-5 { margin-top: 1.5rem !important; } + .mr-xs-5 { margin-right: 1.5rem !important; } + .mb-xs-5 { margin-bottom: 1.5rem !important; } + .ml-xs-5 { margin-left: 1.5rem !important; } + .mx-xs-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } + .my-xs-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } + .mxn-xs-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } +@media (min-width: 20rem) { .m-xs-6 { margin: 2rem !important; } + .mt-xs-6 { margin-top: 2rem !important; } + .mr-xs-6 { margin-right: 2rem !important; } + .mb-xs-6 { margin-bottom: 2rem !important; } + .ml-xs-6 { margin-left: 2rem !important; } + .mx-xs-6 { margin-right: 2rem !important; margin-left: 2rem !important; } + .my-xs-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } + .mxn-xs-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } +@media (min-width: 20rem) { .m-xs-7 { margin: 2.5rem !important; } + .mt-xs-7 { margin-top: 2.5rem !important; } + .mr-xs-7 { margin-right: 2.5rem !important; } + .mb-xs-7 { margin-bottom: 2.5rem !important; } + .ml-xs-7 { margin-left: 2.5rem !important; } + .mx-xs-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } + .my-xs-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } + .mxn-xs-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } +@media (min-width: 20rem) { .m-xs-8 { margin: 3rem !important; } + .mt-xs-8 { margin-top: 3rem !important; } + .mr-xs-8 { margin-right: 3rem !important; } + .mb-xs-8 { margin-bottom: 3rem !important; } + .ml-xs-8 { margin-left: 3rem !important; } + .mx-xs-8 { margin-right: 3rem !important; margin-left: 3rem !important; } + .my-xs-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } + .mxn-xs-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } +@media (min-width: 20rem) { .m-xs-9 { margin: 3.5rem !important; } + .mt-xs-9 { margin-top: 3.5rem !important; } + .mr-xs-9 { margin-right: 3.5rem !important; } + .mb-xs-9 { margin-bottom: 3.5rem !important; } + .ml-xs-9 { margin-left: 3.5rem !important; } + .mx-xs-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } + .my-xs-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } + .mxn-xs-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } +@media (min-width: 20rem) { .m-xs-10 { margin: 4rem !important; } + .mt-xs-10 { margin-top: 4rem !important; } + .mr-xs-10 { margin-right: 4rem !important; } + .mb-xs-10 { margin-bottom: 4rem !important; } + .ml-xs-10 { margin-left: 4rem !important; } + .mx-xs-10 { margin-right: 4rem !important; margin-left: 4rem !important; } + .my-xs-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } + .mxn-xs-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } +@media (min-width: 31.25rem) { .m-sm-0 { margin: 0 !important; } + .mt-sm-0 { margin-top: 0 !important; } + .mr-sm-0 { margin-right: 0 !important; } + .mb-sm-0 { margin-bottom: 0 !important; } + .ml-sm-0 { margin-left: 0 !important; } + .mx-sm-0 { margin-right: 0 !important; margin-left: 0 !important; } + .my-sm-0 { margin-top: 0 !important; margin-bottom: 0 !important; } + .mxn-sm-0 { margin-right: -0 !important; margin-left: -0 !important; } } +@media (min-width: 31.25rem) { .m-sm-1 { margin: 0.25rem !important; } + .mt-sm-1 { margin-top: 0.25rem !important; } + .mr-sm-1 { margin-right: 0.25rem !important; } + .mb-sm-1 { margin-bottom: 0.25rem !important; } + .ml-sm-1 { margin-left: 0.25rem !important; } + .mx-sm-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } + .my-sm-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } + .mxn-sm-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } +@media (min-width: 31.25rem) { .m-sm-2 { margin: 0.5rem !important; } + .mt-sm-2 { margin-top: 0.5rem !important; } + .mr-sm-2 { margin-right: 0.5rem !important; } + .mb-sm-2 { margin-bottom: 0.5rem !important; } + .ml-sm-2 { margin-left: 0.5rem !important; } + .mx-sm-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } + .my-sm-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } + .mxn-sm-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } +@media (min-width: 31.25rem) { .m-sm-3 { margin: 0.75rem !important; } + .mt-sm-3 { margin-top: 0.75rem !important; } + .mr-sm-3 { margin-right: 0.75rem !important; } + .mb-sm-3 { margin-bottom: 0.75rem !important; } + .ml-sm-3 { margin-left: 0.75rem !important; } + .mx-sm-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } + .my-sm-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } + .mxn-sm-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } +@media (min-width: 31.25rem) { .m-sm-4 { margin: 1rem !important; } + .mt-sm-4 { margin-top: 1rem !important; } + .mr-sm-4 { margin-right: 1rem !important; } + .mb-sm-4 { margin-bottom: 1rem !important; } + .ml-sm-4 { margin-left: 1rem !important; } + .mx-sm-4 { margin-right: 1rem !important; margin-left: 1rem !important; } + .my-sm-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } + .mxn-sm-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } +@media (min-width: 31.25rem) { .m-sm-5 { margin: 1.5rem !important; } + .mt-sm-5 { margin-top: 1.5rem !important; } + .mr-sm-5 { margin-right: 1.5rem !important; } + .mb-sm-5 { margin-bottom: 1.5rem !important; } + .ml-sm-5 { margin-left: 1.5rem !important; } + .mx-sm-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } + .my-sm-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } + .mxn-sm-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } +@media (min-width: 31.25rem) { .m-sm-6 { margin: 2rem !important; } + .mt-sm-6 { margin-top: 2rem !important; } + .mr-sm-6 { margin-right: 2rem !important; } + .mb-sm-6 { margin-bottom: 2rem !important; } + .ml-sm-6 { margin-left: 2rem !important; } + .mx-sm-6 { margin-right: 2rem !important; margin-left: 2rem !important; } + .my-sm-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } + .mxn-sm-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } +@media (min-width: 31.25rem) { .m-sm-7 { margin: 2.5rem !important; } + .mt-sm-7 { margin-top: 2.5rem !important; } + .mr-sm-7 { margin-right: 2.5rem !important; } + .mb-sm-7 { margin-bottom: 2.5rem !important; } + .ml-sm-7 { margin-left: 2.5rem !important; } + .mx-sm-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } + .my-sm-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } + .mxn-sm-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } +@media (min-width: 31.25rem) { .m-sm-8 { margin: 3rem !important; } + .mt-sm-8 { margin-top: 3rem !important; } + .mr-sm-8 { margin-right: 3rem !important; } + .mb-sm-8 { margin-bottom: 3rem !important; } + .ml-sm-8 { margin-left: 3rem !important; } + .mx-sm-8 { margin-right: 3rem !important; margin-left: 3rem !important; } + .my-sm-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } + .mxn-sm-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } +@media (min-width: 31.25rem) { .m-sm-9 { margin: 3.5rem !important; } + .mt-sm-9 { margin-top: 3.5rem !important; } + .mr-sm-9 { margin-right: 3.5rem !important; } + .mb-sm-9 { margin-bottom: 3.5rem !important; } + .ml-sm-9 { margin-left: 3.5rem !important; } + .mx-sm-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } + .my-sm-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } + .mxn-sm-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } +@media (min-width: 31.25rem) { .m-sm-10 { margin: 4rem !important; } + .mt-sm-10 { margin-top: 4rem !important; } + .mr-sm-10 { margin-right: 4rem !important; } + .mb-sm-10 { margin-bottom: 4rem !important; } + .ml-sm-10 { margin-left: 4rem !important; } + .mx-sm-10 { margin-right: 4rem !important; margin-left: 4rem !important; } + .my-sm-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } + .mxn-sm-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } +@media (min-width: 50rem) { .m-md-0 { margin: 0 !important; } + .mt-md-0 { margin-top: 0 !important; } + .mr-md-0 { margin-right: 0 !important; } + .mb-md-0 { margin-bottom: 0 !important; } + .ml-md-0 { margin-left: 0 !important; } + .mx-md-0 { margin-right: 0 !important; margin-left: 0 !important; } + .my-md-0 { margin-top: 0 !important; margin-bottom: 0 !important; } + .mxn-md-0 { margin-right: -0 !important; margin-left: -0 !important; } } +@media (min-width: 50rem) { .m-md-1 { margin: 0.25rem !important; } + .mt-md-1 { margin-top: 0.25rem !important; } + .mr-md-1 { margin-right: 0.25rem !important; } + .mb-md-1 { margin-bottom: 0.25rem !important; } + .ml-md-1 { margin-left: 0.25rem !important; } + .mx-md-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } + .my-md-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } + .mxn-md-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } +@media (min-width: 50rem) { .m-md-2 { margin: 0.5rem !important; } + .mt-md-2 { margin-top: 0.5rem !important; } + .mr-md-2 { margin-right: 0.5rem !important; } + .mb-md-2 { margin-bottom: 0.5rem !important; } + .ml-md-2 { margin-left: 0.5rem !important; } + .mx-md-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } + .my-md-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } + .mxn-md-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } +@media (min-width: 50rem) { .m-md-3 { margin: 0.75rem !important; } + .mt-md-3 { margin-top: 0.75rem !important; } + .mr-md-3 { margin-right: 0.75rem !important; } + .mb-md-3 { margin-bottom: 0.75rem !important; } + .ml-md-3 { margin-left: 0.75rem !important; } + .mx-md-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } + .my-md-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } + .mxn-md-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } +@media (min-width: 50rem) { .m-md-4 { margin: 1rem !important; } + .mt-md-4 { margin-top: 1rem !important; } + .mr-md-4 { margin-right: 1rem !important; } + .mb-md-4 { margin-bottom: 1rem !important; } + .ml-md-4 { margin-left: 1rem !important; } + .mx-md-4 { margin-right: 1rem !important; margin-left: 1rem !important; } + .my-md-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } + .mxn-md-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } +@media (min-width: 50rem) { .m-md-5 { margin: 1.5rem !important; } + .mt-md-5 { margin-top: 1.5rem !important; } + .mr-md-5 { margin-right: 1.5rem !important; } + .mb-md-5 { margin-bottom: 1.5rem !important; } + .ml-md-5 { margin-left: 1.5rem !important; } + .mx-md-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } + .my-md-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } + .mxn-md-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } +@media (min-width: 50rem) { .m-md-6 { margin: 2rem !important; } + .mt-md-6 { margin-top: 2rem !important; } + .mr-md-6 { margin-right: 2rem !important; } + .mb-md-6 { margin-bottom: 2rem !important; } + .ml-md-6 { margin-left: 2rem !important; } + .mx-md-6 { margin-right: 2rem !important; margin-left: 2rem !important; } + .my-md-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } + .mxn-md-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } +@media (min-width: 50rem) { .m-md-7 { margin: 2.5rem !important; } + .mt-md-7 { margin-top: 2.5rem !important; } + .mr-md-7 { margin-right: 2.5rem !important; } + .mb-md-7 { margin-bottom: 2.5rem !important; } + .ml-md-7 { margin-left: 2.5rem !important; } + .mx-md-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } + .my-md-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } + .mxn-md-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } +@media (min-width: 50rem) { .m-md-8 { margin: 3rem !important; } + .mt-md-8 { margin-top: 3rem !important; } + .mr-md-8 { margin-right: 3rem !important; } + .mb-md-8 { margin-bottom: 3rem !important; } + .ml-md-8 { margin-left: 3rem !important; } + .mx-md-8 { margin-right: 3rem !important; margin-left: 3rem !important; } + .my-md-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } + .mxn-md-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } +@media (min-width: 50rem) { .m-md-9 { margin: 3.5rem !important; } + .mt-md-9 { margin-top: 3.5rem !important; } + .mr-md-9 { margin-right: 3.5rem !important; } + .mb-md-9 { margin-bottom: 3.5rem !important; } + .ml-md-9 { margin-left: 3.5rem !important; } + .mx-md-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } + .my-md-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } + .mxn-md-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } +@media (min-width: 50rem) { .m-md-10 { margin: 4rem !important; } + .mt-md-10 { margin-top: 4rem !important; } + .mr-md-10 { margin-right: 4rem !important; } + .mb-md-10 { margin-bottom: 4rem !important; } + .ml-md-10 { margin-left: 4rem !important; } + .mx-md-10 { margin-right: 4rem !important; margin-left: 4rem !important; } + .my-md-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } + .mxn-md-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } +@media (min-width: 66.5rem) { .m-lg-0 { margin: 0 !important; } + .mt-lg-0 { margin-top: 0 !important; } + .mr-lg-0 { margin-right: 0 !important; } + .mb-lg-0 { margin-bottom: 0 !important; } + .ml-lg-0 { margin-left: 0 !important; } + .mx-lg-0 { margin-right: 0 !important; margin-left: 0 !important; } + .my-lg-0 { margin-top: 0 !important; margin-bottom: 0 !important; } + .mxn-lg-0 { margin-right: -0 !important; margin-left: -0 !important; } } +@media (min-width: 66.5rem) { .m-lg-1 { margin: 0.25rem !important; } + .mt-lg-1 { margin-top: 0.25rem !important; } + .mr-lg-1 { margin-right: 0.25rem !important; } + .mb-lg-1 { margin-bottom: 0.25rem !important; } + .ml-lg-1 { margin-left: 0.25rem !important; } + .mx-lg-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } + .my-lg-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } + .mxn-lg-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } +@media (min-width: 66.5rem) { .m-lg-2 { margin: 0.5rem !important; } + .mt-lg-2 { margin-top: 0.5rem !important; } + .mr-lg-2 { margin-right: 0.5rem !important; } + .mb-lg-2 { margin-bottom: 0.5rem !important; } + .ml-lg-2 { margin-left: 0.5rem !important; } + .mx-lg-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } + .my-lg-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } + .mxn-lg-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } +@media (min-width: 66.5rem) { .m-lg-3 { margin: 0.75rem !important; } + .mt-lg-3 { margin-top: 0.75rem !important; } + .mr-lg-3 { margin-right: 0.75rem !important; } + .mb-lg-3 { margin-bottom: 0.75rem !important; } + .ml-lg-3 { margin-left: 0.75rem !important; } + .mx-lg-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } + .my-lg-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } + .mxn-lg-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } +@media (min-width: 66.5rem) { .m-lg-4 { margin: 1rem !important; } + .mt-lg-4 { margin-top: 1rem !important; } + .mr-lg-4 { margin-right: 1rem !important; } + .mb-lg-4 { margin-bottom: 1rem !important; } + .ml-lg-4 { margin-left: 1rem !important; } + .mx-lg-4 { margin-right: 1rem !important; margin-left: 1rem !important; } + .my-lg-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } + .mxn-lg-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } +@media (min-width: 66.5rem) { .m-lg-5 { margin: 1.5rem !important; } + .mt-lg-5 { margin-top: 1.5rem !important; } + .mr-lg-5 { margin-right: 1.5rem !important; } + .mb-lg-5 { margin-bottom: 1.5rem !important; } + .ml-lg-5 { margin-left: 1.5rem !important; } + .mx-lg-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } + .my-lg-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } + .mxn-lg-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } +@media (min-width: 66.5rem) { .m-lg-6 { margin: 2rem !important; } + .mt-lg-6 { margin-top: 2rem !important; } + .mr-lg-6 { margin-right: 2rem !important; } + .mb-lg-6 { margin-bottom: 2rem !important; } + .ml-lg-6 { margin-left: 2rem !important; } + .mx-lg-6 { margin-right: 2rem !important; margin-left: 2rem !important; } + .my-lg-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } + .mxn-lg-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } +@media (min-width: 66.5rem) { .m-lg-7 { margin: 2.5rem !important; } + .mt-lg-7 { margin-top: 2.5rem !important; } + .mr-lg-7 { margin-right: 2.5rem !important; } + .mb-lg-7 { margin-bottom: 2.5rem !important; } + .ml-lg-7 { margin-left: 2.5rem !important; } + .mx-lg-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } + .my-lg-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } + .mxn-lg-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } +@media (min-width: 66.5rem) { .m-lg-8 { margin: 3rem !important; } + .mt-lg-8 { margin-top: 3rem !important; } + .mr-lg-8 { margin-right: 3rem !important; } + .mb-lg-8 { margin-bottom: 3rem !important; } + .ml-lg-8 { margin-left: 3rem !important; } + .mx-lg-8 { margin-right: 3rem !important; margin-left: 3rem !important; } + .my-lg-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } + .mxn-lg-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } +@media (min-width: 66.5rem) { .m-lg-9 { margin: 3.5rem !important; } + .mt-lg-9 { margin-top: 3.5rem !important; } + .mr-lg-9 { margin-right: 3.5rem !important; } + .mb-lg-9 { margin-bottom: 3.5rem !important; } + .ml-lg-9 { margin-left: 3.5rem !important; } + .mx-lg-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } + .my-lg-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } + .mxn-lg-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } +@media (min-width: 66.5rem) { .m-lg-10 { margin: 4rem !important; } + .mt-lg-10 { margin-top: 4rem !important; } + .mr-lg-10 { margin-right: 4rem !important; } + .mb-lg-10 { margin-bottom: 4rem !important; } + .ml-lg-10 { margin-left: 4rem !important; } + .mx-lg-10 { margin-right: 4rem !important; margin-left: 4rem !important; } + .my-lg-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } + .mxn-lg-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } +@media (min-width: 87.5rem) { .m-xl-0 { margin: 0 !important; } + .mt-xl-0 { margin-top: 0 !important; } + .mr-xl-0 { margin-right: 0 !important; } + .mb-xl-0 { margin-bottom: 0 !important; } + .ml-xl-0 { margin-left: 0 !important; } + .mx-xl-0 { margin-right: 0 !important; margin-left: 0 !important; } + .my-xl-0 { margin-top: 0 !important; margin-bottom: 0 !important; } + .mxn-xl-0 { margin-right: -0 !important; margin-left: -0 !important; } } +@media (min-width: 87.5rem) { .m-xl-1 { margin: 0.25rem !important; } + .mt-xl-1 { margin-top: 0.25rem !important; } + .mr-xl-1 { margin-right: 0.25rem !important; } + .mb-xl-1 { margin-bottom: 0.25rem !important; } + .ml-xl-1 { margin-left: 0.25rem !important; } + .mx-xl-1 { margin-right: 0.25rem !important; margin-left: 0.25rem !important; } + .my-xl-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; } + .mxn-xl-1 { margin-right: -0.25rem !important; margin-left: -0.25rem !important; } } +@media (min-width: 87.5rem) { .m-xl-2 { margin: 0.5rem !important; } + .mt-xl-2 { margin-top: 0.5rem !important; } + .mr-xl-2 { margin-right: 0.5rem !important; } + .mb-xl-2 { margin-bottom: 0.5rem !important; } + .ml-xl-2 { margin-left: 0.5rem !important; } + .mx-xl-2 { margin-right: 0.5rem !important; margin-left: 0.5rem !important; } + .my-xl-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } + .mxn-xl-2 { margin-right: -0.5rem !important; margin-left: -0.5rem !important; } } +@media (min-width: 87.5rem) { .m-xl-3 { margin: 0.75rem !important; } + .mt-xl-3 { margin-top: 0.75rem !important; } + .mr-xl-3 { margin-right: 0.75rem !important; } + .mb-xl-3 { margin-bottom: 0.75rem !important; } + .ml-xl-3 { margin-left: 0.75rem !important; } + .mx-xl-3 { margin-right: 0.75rem !important; margin-left: 0.75rem !important; } + .my-xl-3 { margin-top: 0.75rem !important; margin-bottom: 0.75rem !important; } + .mxn-xl-3 { margin-right: -0.75rem !important; margin-left: -0.75rem !important; } } +@media (min-width: 87.5rem) { .m-xl-4 { margin: 1rem !important; } + .mt-xl-4 { margin-top: 1rem !important; } + .mr-xl-4 { margin-right: 1rem !important; } + .mb-xl-4 { margin-bottom: 1rem !important; } + .ml-xl-4 { margin-left: 1rem !important; } + .mx-xl-4 { margin-right: 1rem !important; margin-left: 1rem !important; } + .my-xl-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; } + .mxn-xl-4 { margin-right: -1rem !important; margin-left: -1rem !important; } } +@media (min-width: 87.5rem) { .m-xl-5 { margin: 1.5rem !important; } + .mt-xl-5 { margin-top: 1.5rem !important; } + .mr-xl-5 { margin-right: 1.5rem !important; } + .mb-xl-5 { margin-bottom: 1.5rem !important; } + .ml-xl-5 { margin-left: 1.5rem !important; } + .mx-xl-5 { margin-right: 1.5rem !important; margin-left: 1.5rem !important; } + .my-xl-5 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } + .mxn-xl-5 { margin-right: -1.5rem !important; margin-left: -1.5rem !important; } } +@media (min-width: 87.5rem) { .m-xl-6 { margin: 2rem !important; } + .mt-xl-6 { margin-top: 2rem !important; } + .mr-xl-6 { margin-right: 2rem !important; } + .mb-xl-6 { margin-bottom: 2rem !important; } + .ml-xl-6 { margin-left: 2rem !important; } + .mx-xl-6 { margin-right: 2rem !important; margin-left: 2rem !important; } + .my-xl-6 { margin-top: 2rem !important; margin-bottom: 2rem !important; } + .mxn-xl-6 { margin-right: -2rem !important; margin-left: -2rem !important; } } +@media (min-width: 87.5rem) { .m-xl-7 { margin: 2.5rem !important; } + .mt-xl-7 { margin-top: 2.5rem !important; } + .mr-xl-7 { margin-right: 2.5rem !important; } + .mb-xl-7 { margin-bottom: 2.5rem !important; } + .ml-xl-7 { margin-left: 2.5rem !important; } + .mx-xl-7 { margin-right: 2.5rem !important; margin-left: 2.5rem !important; } + .my-xl-7 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; } + .mxn-xl-7 { margin-right: -2.5rem !important; margin-left: -2.5rem !important; } } +@media (min-width: 87.5rem) { .m-xl-8 { margin: 3rem !important; } + .mt-xl-8 { margin-top: 3rem !important; } + .mr-xl-8 { margin-right: 3rem !important; } + .mb-xl-8 { margin-bottom: 3rem !important; } + .ml-xl-8 { margin-left: 3rem !important; } + .mx-xl-8 { margin-right: 3rem !important; margin-left: 3rem !important; } + .my-xl-8 { margin-top: 3rem !important; margin-bottom: 3rem !important; } + .mxn-xl-8 { margin-right: -3rem !important; margin-left: -3rem !important; } } +@media (min-width: 87.5rem) { .m-xl-9 { margin: 3.5rem !important; } + .mt-xl-9 { margin-top: 3.5rem !important; } + .mr-xl-9 { margin-right: 3.5rem !important; } + .mb-xl-9 { margin-bottom: 3.5rem !important; } + .ml-xl-9 { margin-left: 3.5rem !important; } + .mx-xl-9 { margin-right: 3.5rem !important; margin-left: 3.5rem !important; } + .my-xl-9 { margin-top: 3.5rem !important; margin-bottom: 3.5rem !important; } + .mxn-xl-9 { margin-right: -3.5rem !important; margin-left: -3.5rem !important; } } +@media (min-width: 87.5rem) { .m-xl-10 { margin: 4rem !important; } + .mt-xl-10 { margin-top: 4rem !important; } + .mr-xl-10 { margin-right: 4rem !important; } + .mb-xl-10 { margin-bottom: 4rem !important; } + .ml-xl-10 { margin-left: 4rem !important; } + .mx-xl-10 { margin-right: 4rem !important; margin-left: 4rem !important; } + .my-xl-10 { margin-top: 4rem !important; margin-bottom: 4rem !important; } + .mxn-xl-10 { margin-right: -4rem !important; margin-left: -4rem !important; } } +.p-0 { padding: 0 !important; } + +.pt-0 { padding-top: 0 !important; } + +.pr-0 { padding-right: 0 !important; } + +.pb-0 { padding-bottom: 0 !important; } + +.pl-0 { padding-left: 0 !important; } + +.px-0 { padding-right: 0 !important; padding-left: 0 !important; } + +.py-0 { padding-top: 0 !important; padding-bottom: 0 !important; } + +.p-1 { padding: 0.25rem !important; } + +.pt-1 { padding-top: 0.25rem !important; } + +.pr-1 { padding-right: 0.25rem !important; } + +.pb-1 { padding-bottom: 0.25rem !important; } + +.pl-1 { padding-left: 0.25rem !important; } + +.px-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } + +.py-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } + +.p-2 { padding: 0.5rem !important; } + +.pt-2 { padding-top: 0.5rem !important; } + +.pr-2 { padding-right: 0.5rem !important; } + +.pb-2 { padding-bottom: 0.5rem !important; } + +.pl-2 { padding-left: 0.5rem !important; } + +.px-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } + +.py-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } + +.p-3 { padding: 0.75rem !important; } + +.pt-3 { padding-top: 0.75rem !important; } + +.pr-3 { padding-right: 0.75rem !important; } + +.pb-3 { padding-bottom: 0.75rem !important; } + +.pl-3 { padding-left: 0.75rem !important; } + +.px-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } + +.py-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } + +.p-4 { padding: 1rem !important; } + +.pt-4 { padding-top: 1rem !important; } + +.pr-4 { padding-right: 1rem !important; } + +.pb-4 { padding-bottom: 1rem !important; } + +.pl-4 { padding-left: 1rem !important; } + +.px-4 { padding-right: 1rem !important; padding-left: 1rem !important; } + +.py-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } + +.p-5 { padding: 1.5rem !important; } + +.pt-5 { padding-top: 1.5rem !important; } + +.pr-5 { padding-right: 1.5rem !important; } + +.pb-5 { padding-bottom: 1.5rem !important; } + +.pl-5 { padding-left: 1.5rem !important; } + +.px-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } + +.py-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } + +.p-6 { padding: 2rem !important; } + +.pt-6 { padding-top: 2rem !important; } + +.pr-6 { padding-right: 2rem !important; } + +.pb-6 { padding-bottom: 2rem !important; } + +.pl-6 { padding-left: 2rem !important; } + +.px-6 { padding-right: 2rem !important; padding-left: 2rem !important; } + +.py-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } + +.p-7 { padding: 2.5rem !important; } + +.pt-7 { padding-top: 2.5rem !important; } + +.pr-7 { padding-right: 2.5rem !important; } + +.pb-7 { padding-bottom: 2.5rem !important; } + +.pl-7 { padding-left: 2.5rem !important; } + +.px-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } + +.py-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } + +.p-8 { padding: 3rem !important; } + +.pt-8 { padding-top: 3rem !important; } + +.pr-8 { padding-right: 3rem !important; } + +.pb-8 { padding-bottom: 3rem !important; } + +.pl-8 { padding-left: 3rem !important; } + +.px-8 { padding-right: 3rem !important; padding-left: 3rem !important; } + +.py-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } + +.p-9 { padding: 3.5rem !important; } + +.pt-9 { padding-top: 3.5rem !important; } + +.pr-9 { padding-right: 3.5rem !important; } + +.pb-9 { padding-bottom: 3.5rem !important; } + +.pl-9 { padding-left: 3.5rem !important; } + +.px-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } + +.py-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } + +.p-10 { padding: 4rem !important; } + +.pt-10 { padding-top: 4rem !important; } + +.pr-10 { padding-right: 4rem !important; } + +.pb-10 { padding-bottom: 4rem !important; } + +.pl-10 { padding-left: 4rem !important; } + +.px-10 { padding-right: 4rem !important; padding-left: 4rem !important; } + +.py-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } + +@media (min-width: 20rem) { .p-xs-0 { padding: 0 !important; } + .pt-xs-0 { padding-top: 0 !important; } + .pr-xs-0 { padding-right: 0 !important; } + .pb-xs-0 { padding-bottom: 0 !important; } + .pl-xs-0 { padding-left: 0 !important; } + .px-xs-0 { padding-right: 0 !important; padding-left: 0 !important; } + .py-xs-0 { padding-top: 0 !important; padding-bottom: 0 !important; } + .p-xs-1 { padding: 0.25rem !important; } + .pt-xs-1 { padding-top: 0.25rem !important; } + .pr-xs-1 { padding-right: 0.25rem !important; } + .pb-xs-1 { padding-bottom: 0.25rem !important; } + .pl-xs-1 { padding-left: 0.25rem !important; } + .px-xs-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } + .py-xs-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } + .p-xs-2 { padding: 0.5rem !important; } + .pt-xs-2 { padding-top: 0.5rem !important; } + .pr-xs-2 { padding-right: 0.5rem !important; } + .pb-xs-2 { padding-bottom: 0.5rem !important; } + .pl-xs-2 { padding-left: 0.5rem !important; } + .px-xs-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } + .py-xs-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } + .p-xs-3 { padding: 0.75rem !important; } + .pt-xs-3 { padding-top: 0.75rem !important; } + .pr-xs-3 { padding-right: 0.75rem !important; } + .pb-xs-3 { padding-bottom: 0.75rem !important; } + .pl-xs-3 { padding-left: 0.75rem !important; } + .px-xs-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } + .py-xs-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } + .p-xs-4 { padding: 1rem !important; } + .pt-xs-4 { padding-top: 1rem !important; } + .pr-xs-4 { padding-right: 1rem !important; } + .pb-xs-4 { padding-bottom: 1rem !important; } + .pl-xs-4 { padding-left: 1rem !important; } + .px-xs-4 { padding-right: 1rem !important; padding-left: 1rem !important; } + .py-xs-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } + .p-xs-5 { padding: 1.5rem !important; } + .pt-xs-5 { padding-top: 1.5rem !important; } + .pr-xs-5 { padding-right: 1.5rem !important; } + .pb-xs-5 { padding-bottom: 1.5rem !important; } + .pl-xs-5 { padding-left: 1.5rem !important; } + .px-xs-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } + .py-xs-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } + .p-xs-6 { padding: 2rem !important; } + .pt-xs-6 { padding-top: 2rem !important; } + .pr-xs-6 { padding-right: 2rem !important; } + .pb-xs-6 { padding-bottom: 2rem !important; } + .pl-xs-6 { padding-left: 2rem !important; } + .px-xs-6 { padding-right: 2rem !important; padding-left: 2rem !important; } + .py-xs-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } + .p-xs-7 { padding: 2.5rem !important; } + .pt-xs-7 { padding-top: 2.5rem !important; } + .pr-xs-7 { padding-right: 2.5rem !important; } + .pb-xs-7 { padding-bottom: 2.5rem !important; } + .pl-xs-7 { padding-left: 2.5rem !important; } + .px-xs-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } + .py-xs-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } + .p-xs-8 { padding: 3rem !important; } + .pt-xs-8 { padding-top: 3rem !important; } + .pr-xs-8 { padding-right: 3rem !important; } + .pb-xs-8 { padding-bottom: 3rem !important; } + .pl-xs-8 { padding-left: 3rem !important; } + .px-xs-8 { padding-right: 3rem !important; padding-left: 3rem !important; } + .py-xs-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } + .p-xs-9 { padding: 3.5rem !important; } + .pt-xs-9 { padding-top: 3.5rem !important; } + .pr-xs-9 { padding-right: 3.5rem !important; } + .pb-xs-9 { padding-bottom: 3.5rem !important; } + .pl-xs-9 { padding-left: 3.5rem !important; } + .px-xs-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } + .py-xs-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } + .p-xs-10 { padding: 4rem !important; } + .pt-xs-10 { padding-top: 4rem !important; } + .pr-xs-10 { padding-right: 4rem !important; } + .pb-xs-10 { padding-bottom: 4rem !important; } + .pl-xs-10 { padding-left: 4rem !important; } + .px-xs-10 { padding-right: 4rem !important; padding-left: 4rem !important; } + .py-xs-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } +@media (min-width: 31.25rem) { .p-sm-0 { padding: 0 !important; } + .pt-sm-0 { padding-top: 0 !important; } + .pr-sm-0 { padding-right: 0 !important; } + .pb-sm-0 { padding-bottom: 0 !important; } + .pl-sm-0 { padding-left: 0 !important; } + .px-sm-0 { padding-right: 0 !important; padding-left: 0 !important; } + .py-sm-0 { padding-top: 0 !important; padding-bottom: 0 !important; } + .p-sm-1 { padding: 0.25rem !important; } + .pt-sm-1 { padding-top: 0.25rem !important; } + .pr-sm-1 { padding-right: 0.25rem !important; } + .pb-sm-1 { padding-bottom: 0.25rem !important; } + .pl-sm-1 { padding-left: 0.25rem !important; } + .px-sm-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } + .py-sm-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } + .p-sm-2 { padding: 0.5rem !important; } + .pt-sm-2 { padding-top: 0.5rem !important; } + .pr-sm-2 { padding-right: 0.5rem !important; } + .pb-sm-2 { padding-bottom: 0.5rem !important; } + .pl-sm-2 { padding-left: 0.5rem !important; } + .px-sm-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } + .py-sm-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } + .p-sm-3 { padding: 0.75rem !important; } + .pt-sm-3 { padding-top: 0.75rem !important; } + .pr-sm-3 { padding-right: 0.75rem !important; } + .pb-sm-3 { padding-bottom: 0.75rem !important; } + .pl-sm-3 { padding-left: 0.75rem !important; } + .px-sm-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } + .py-sm-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } + .p-sm-4 { padding: 1rem !important; } + .pt-sm-4 { padding-top: 1rem !important; } + .pr-sm-4 { padding-right: 1rem !important; } + .pb-sm-4 { padding-bottom: 1rem !important; } + .pl-sm-4 { padding-left: 1rem !important; } + .px-sm-4 { padding-right: 1rem !important; padding-left: 1rem !important; } + .py-sm-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } + .p-sm-5 { padding: 1.5rem !important; } + .pt-sm-5 { padding-top: 1.5rem !important; } + .pr-sm-5 { padding-right: 1.5rem !important; } + .pb-sm-5 { padding-bottom: 1.5rem !important; } + .pl-sm-5 { padding-left: 1.5rem !important; } + .px-sm-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } + .py-sm-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } + .p-sm-6 { padding: 2rem !important; } + .pt-sm-6 { padding-top: 2rem !important; } + .pr-sm-6 { padding-right: 2rem !important; } + .pb-sm-6 { padding-bottom: 2rem !important; } + .pl-sm-6 { padding-left: 2rem !important; } + .px-sm-6 { padding-right: 2rem !important; padding-left: 2rem !important; } + .py-sm-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } + .p-sm-7 { padding: 2.5rem !important; } + .pt-sm-7 { padding-top: 2.5rem !important; } + .pr-sm-7 { padding-right: 2.5rem !important; } + .pb-sm-7 { padding-bottom: 2.5rem !important; } + .pl-sm-7 { padding-left: 2.5rem !important; } + .px-sm-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } + .py-sm-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } + .p-sm-8 { padding: 3rem !important; } + .pt-sm-8 { padding-top: 3rem !important; } + .pr-sm-8 { padding-right: 3rem !important; } + .pb-sm-8 { padding-bottom: 3rem !important; } + .pl-sm-8 { padding-left: 3rem !important; } + .px-sm-8 { padding-right: 3rem !important; padding-left: 3rem !important; } + .py-sm-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } + .p-sm-9 { padding: 3.5rem !important; } + .pt-sm-9 { padding-top: 3.5rem !important; } + .pr-sm-9 { padding-right: 3.5rem !important; } + .pb-sm-9 { padding-bottom: 3.5rem !important; } + .pl-sm-9 { padding-left: 3.5rem !important; } + .px-sm-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } + .py-sm-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } + .p-sm-10 { padding: 4rem !important; } + .pt-sm-10 { padding-top: 4rem !important; } + .pr-sm-10 { padding-right: 4rem !important; } + .pb-sm-10 { padding-bottom: 4rem !important; } + .pl-sm-10 { padding-left: 4rem !important; } + .px-sm-10 { padding-right: 4rem !important; padding-left: 4rem !important; } + .py-sm-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } +@media (min-width: 50rem) { .p-md-0 { padding: 0 !important; } + .pt-md-0 { padding-top: 0 !important; } + .pr-md-0 { padding-right: 0 !important; } + .pb-md-0 { padding-bottom: 0 !important; } + .pl-md-0 { padding-left: 0 !important; } + .px-md-0 { padding-right: 0 !important; padding-left: 0 !important; } + .py-md-0 { padding-top: 0 !important; padding-bottom: 0 !important; } + .p-md-1 { padding: 0.25rem !important; } + .pt-md-1 { padding-top: 0.25rem !important; } + .pr-md-1 { padding-right: 0.25rem !important; } + .pb-md-1 { padding-bottom: 0.25rem !important; } + .pl-md-1 { padding-left: 0.25rem !important; } + .px-md-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } + .py-md-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } + .p-md-2 { padding: 0.5rem !important; } + .pt-md-2 { padding-top: 0.5rem !important; } + .pr-md-2 { padding-right: 0.5rem !important; } + .pb-md-2 { padding-bottom: 0.5rem !important; } + .pl-md-2 { padding-left: 0.5rem !important; } + .px-md-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } + .py-md-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } + .p-md-3 { padding: 0.75rem !important; } + .pt-md-3 { padding-top: 0.75rem !important; } + .pr-md-3 { padding-right: 0.75rem !important; } + .pb-md-3 { padding-bottom: 0.75rem !important; } + .pl-md-3 { padding-left: 0.75rem !important; } + .px-md-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } + .py-md-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } + .p-md-4 { padding: 1rem !important; } + .pt-md-4 { padding-top: 1rem !important; } + .pr-md-4 { padding-right: 1rem !important; } + .pb-md-4 { padding-bottom: 1rem !important; } + .pl-md-4 { padding-left: 1rem !important; } + .px-md-4 { padding-right: 1rem !important; padding-left: 1rem !important; } + .py-md-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } + .p-md-5 { padding: 1.5rem !important; } + .pt-md-5 { padding-top: 1.5rem !important; } + .pr-md-5 { padding-right: 1.5rem !important; } + .pb-md-5 { padding-bottom: 1.5rem !important; } + .pl-md-5 { padding-left: 1.5rem !important; } + .px-md-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } + .py-md-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } + .p-md-6 { padding: 2rem !important; } + .pt-md-6 { padding-top: 2rem !important; } + .pr-md-6 { padding-right: 2rem !important; } + .pb-md-6 { padding-bottom: 2rem !important; } + .pl-md-6 { padding-left: 2rem !important; } + .px-md-6 { padding-right: 2rem !important; padding-left: 2rem !important; } + .py-md-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } + .p-md-7 { padding: 2.5rem !important; } + .pt-md-7 { padding-top: 2.5rem !important; } + .pr-md-7 { padding-right: 2.5rem !important; } + .pb-md-7 { padding-bottom: 2.5rem !important; } + .pl-md-7 { padding-left: 2.5rem !important; } + .px-md-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } + .py-md-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } + .p-md-8 { padding: 3rem !important; } + .pt-md-8 { padding-top: 3rem !important; } + .pr-md-8 { padding-right: 3rem !important; } + .pb-md-8 { padding-bottom: 3rem !important; } + .pl-md-8 { padding-left: 3rem !important; } + .px-md-8 { padding-right: 3rem !important; padding-left: 3rem !important; } + .py-md-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } + .p-md-9 { padding: 3.5rem !important; } + .pt-md-9 { padding-top: 3.5rem !important; } + .pr-md-9 { padding-right: 3.5rem !important; } + .pb-md-9 { padding-bottom: 3.5rem !important; } + .pl-md-9 { padding-left: 3.5rem !important; } + .px-md-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } + .py-md-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } + .p-md-10 { padding: 4rem !important; } + .pt-md-10 { padding-top: 4rem !important; } + .pr-md-10 { padding-right: 4rem !important; } + .pb-md-10 { padding-bottom: 4rem !important; } + .pl-md-10 { padding-left: 4rem !important; } + .px-md-10 { padding-right: 4rem !important; padding-left: 4rem !important; } + .py-md-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } +@media (min-width: 66.5rem) { .p-lg-0 { padding: 0 !important; } + .pt-lg-0 { padding-top: 0 !important; } + .pr-lg-0 { padding-right: 0 !important; } + .pb-lg-0 { padding-bottom: 0 !important; } + .pl-lg-0 { padding-left: 0 !important; } + .px-lg-0 { padding-right: 0 !important; padding-left: 0 !important; } + .py-lg-0 { padding-top: 0 !important; padding-bottom: 0 !important; } + .p-lg-1 { padding: 0.25rem !important; } + .pt-lg-1 { padding-top: 0.25rem !important; } + .pr-lg-1 { padding-right: 0.25rem !important; } + .pb-lg-1 { padding-bottom: 0.25rem !important; } + .pl-lg-1 { padding-left: 0.25rem !important; } + .px-lg-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } + .py-lg-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } + .p-lg-2 { padding: 0.5rem !important; } + .pt-lg-2 { padding-top: 0.5rem !important; } + .pr-lg-2 { padding-right: 0.5rem !important; } + .pb-lg-2 { padding-bottom: 0.5rem !important; } + .pl-lg-2 { padding-left: 0.5rem !important; } + .px-lg-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } + .py-lg-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } + .p-lg-3 { padding: 0.75rem !important; } + .pt-lg-3 { padding-top: 0.75rem !important; } + .pr-lg-3 { padding-right: 0.75rem !important; } + .pb-lg-3 { padding-bottom: 0.75rem !important; } + .pl-lg-3 { padding-left: 0.75rem !important; } + .px-lg-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } + .py-lg-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } + .p-lg-4 { padding: 1rem !important; } + .pt-lg-4 { padding-top: 1rem !important; } + .pr-lg-4 { padding-right: 1rem !important; } + .pb-lg-4 { padding-bottom: 1rem !important; } + .pl-lg-4 { padding-left: 1rem !important; } + .px-lg-4 { padding-right: 1rem !important; padding-left: 1rem !important; } + .py-lg-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } + .p-lg-5 { padding: 1.5rem !important; } + .pt-lg-5 { padding-top: 1.5rem !important; } + .pr-lg-5 { padding-right: 1.5rem !important; } + .pb-lg-5 { padding-bottom: 1.5rem !important; } + .pl-lg-5 { padding-left: 1.5rem !important; } + .px-lg-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } + .py-lg-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } + .p-lg-6 { padding: 2rem !important; } + .pt-lg-6 { padding-top: 2rem !important; } + .pr-lg-6 { padding-right: 2rem !important; } + .pb-lg-6 { padding-bottom: 2rem !important; } + .pl-lg-6 { padding-left: 2rem !important; } + .px-lg-6 { padding-right: 2rem !important; padding-left: 2rem !important; } + .py-lg-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } + .p-lg-7 { padding: 2.5rem !important; } + .pt-lg-7 { padding-top: 2.5rem !important; } + .pr-lg-7 { padding-right: 2.5rem !important; } + .pb-lg-7 { padding-bottom: 2.5rem !important; } + .pl-lg-7 { padding-left: 2.5rem !important; } + .px-lg-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } + .py-lg-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } + .p-lg-8 { padding: 3rem !important; } + .pt-lg-8 { padding-top: 3rem !important; } + .pr-lg-8 { padding-right: 3rem !important; } + .pb-lg-8 { padding-bottom: 3rem !important; } + .pl-lg-8 { padding-left: 3rem !important; } + .px-lg-8 { padding-right: 3rem !important; padding-left: 3rem !important; } + .py-lg-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } + .p-lg-9 { padding: 3.5rem !important; } + .pt-lg-9 { padding-top: 3.5rem !important; } + .pr-lg-9 { padding-right: 3.5rem !important; } + .pb-lg-9 { padding-bottom: 3.5rem !important; } + .pl-lg-9 { padding-left: 3.5rem !important; } + .px-lg-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } + .py-lg-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } + .p-lg-10 { padding: 4rem !important; } + .pt-lg-10 { padding-top: 4rem !important; } + .pr-lg-10 { padding-right: 4rem !important; } + .pb-lg-10 { padding-bottom: 4rem !important; } + .pl-lg-10 { padding-left: 4rem !important; } + .px-lg-10 { padding-right: 4rem !important; padding-left: 4rem !important; } + .py-lg-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } +@media (min-width: 87.5rem) { .p-xl-0 { padding: 0 !important; } + .pt-xl-0 { padding-top: 0 !important; } + .pr-xl-0 { padding-right: 0 !important; } + .pb-xl-0 { padding-bottom: 0 !important; } + .pl-xl-0 { padding-left: 0 !important; } + .px-xl-0 { padding-right: 0 !important; padding-left: 0 !important; } + .py-xl-0 { padding-top: 0 !important; padding-bottom: 0 !important; } + .p-xl-1 { padding: 0.25rem !important; } + .pt-xl-1 { padding-top: 0.25rem !important; } + .pr-xl-1 { padding-right: 0.25rem !important; } + .pb-xl-1 { padding-bottom: 0.25rem !important; } + .pl-xl-1 { padding-left: 0.25rem !important; } + .px-xl-1 { padding-right: 0.25rem !important; padding-left: 0.25rem !important; } + .py-xl-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } + .p-xl-2 { padding: 0.5rem !important; } + .pt-xl-2 { padding-top: 0.5rem !important; } + .pr-xl-2 { padding-right: 0.5rem !important; } + .pb-xl-2 { padding-bottom: 0.5rem !important; } + .pl-xl-2 { padding-left: 0.5rem !important; } + .px-xl-2 { padding-right: 0.5rem !important; padding-left: 0.5rem !important; } + .py-xl-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; } + .p-xl-3 { padding: 0.75rem !important; } + .pt-xl-3 { padding-top: 0.75rem !important; } + .pr-xl-3 { padding-right: 0.75rem !important; } + .pb-xl-3 { padding-bottom: 0.75rem !important; } + .pl-xl-3 { padding-left: 0.75rem !important; } + .px-xl-3 { padding-right: 0.75rem !important; padding-left: 0.75rem !important; } + .py-xl-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; } + .p-xl-4 { padding: 1rem !important; } + .pt-xl-4 { padding-top: 1rem !important; } + .pr-xl-4 { padding-right: 1rem !important; } + .pb-xl-4 { padding-bottom: 1rem !important; } + .pl-xl-4 { padding-left: 1rem !important; } + .px-xl-4 { padding-right: 1rem !important; padding-left: 1rem !important; } + .py-xl-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; } + .p-xl-5 { padding: 1.5rem !important; } + .pt-xl-5 { padding-top: 1.5rem !important; } + .pr-xl-5 { padding-right: 1.5rem !important; } + .pb-xl-5 { padding-bottom: 1.5rem !important; } + .pl-xl-5 { padding-left: 1.5rem !important; } + .px-xl-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; } + .py-xl-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } + .p-xl-6 { padding: 2rem !important; } + .pt-xl-6 { padding-top: 2rem !important; } + .pr-xl-6 { padding-right: 2rem !important; } + .pb-xl-6 { padding-bottom: 2rem !important; } + .pl-xl-6 { padding-left: 2rem !important; } + .px-xl-6 { padding-right: 2rem !important; padding-left: 2rem !important; } + .py-xl-6 { padding-top: 2rem !important; padding-bottom: 2rem !important; } + .p-xl-7 { padding: 2.5rem !important; } + .pt-xl-7 { padding-top: 2.5rem !important; } + .pr-xl-7 { padding-right: 2.5rem !important; } + .pb-xl-7 { padding-bottom: 2.5rem !important; } + .pl-xl-7 { padding-left: 2.5rem !important; } + .px-xl-7 { padding-right: 2.5rem !important; padding-left: 2.5rem !important; } + .py-xl-7 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; } + .p-xl-8 { padding: 3rem !important; } + .pt-xl-8 { padding-top: 3rem !important; } + .pr-xl-8 { padding-right: 3rem !important; } + .pb-xl-8 { padding-bottom: 3rem !important; } + .pl-xl-8 { padding-left: 3rem !important; } + .px-xl-8 { padding-right: 3rem !important; padding-left: 3rem !important; } + .py-xl-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; } + .p-xl-9 { padding: 3.5rem !important; } + .pt-xl-9 { padding-top: 3.5rem !important; } + .pr-xl-9 { padding-right: 3.5rem !important; } + .pb-xl-9 { padding-bottom: 3.5rem !important; } + .pl-xl-9 { padding-left: 3.5rem !important; } + .px-xl-9 { padding-right: 3.5rem !important; padding-left: 3.5rem !important; } + .py-xl-9 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } + .p-xl-10 { padding: 4rem !important; } + .pt-xl-10 { padding-top: 4rem !important; } + .pr-xl-10 { padding-right: 4rem !important; } + .pb-xl-10 { padding-bottom: 4rem !important; } + .pl-xl-10 { padding-left: 4rem !important; } + .px-xl-10 { padding-right: 4rem !important; padding-left: 4rem !important; } + .py-xl-10 { padding-top: 4rem !important; padding-bottom: 4rem !important; } } +@media print { .site-footer, .site-button, #edit-this-page, #back-to-top, .site-nav, .main-header { display: none !important; } + .side-bar { width: 100%; height: auto; border-right: 0 !important; } + .site-header { border-bottom: 1px solid #eeebee; } + .site-title { font-size: 1rem !important; font-weight: 700 !important; } + .text-small { font-size: 8pt !important; } + pre.highlight { border: 1px solid #eeebee; } + .main { max-width: none; margin-left: 0; } } +a.skip-to-main { left: -999px; position: absolute; top: auto; width: 1px; height: 1px; overflow: hidden; z-index: -999; } + +a.skip-to-main:focus, a.skip-to-main:active { color: #7253ed; background-color: #fff; left: auto; top: auto; width: 30%; height: auto; overflow: auto; margin: 10px 35%; padding: 5px; border-radius: 15px; border: 4px solid #5e41d0; text-align: center; font-size: 1.2em; z-index: 999; } + +div.opaque { background-color: #fff; } + +p.note, blockquote.note { background: #f5f7f9; border-left: 4px solid #2ce5b5; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); padding: .8rem; } +p.note > .note-title, blockquote.note > .note-title { color: #2ce5b5; display: block; font-weight: bold; text-transform: uppercase; font-size: .75em; padding-bottom: .125rem; } + +p.note-title, blockquote.note-title { background: #f5f7f9; border-left: 4px solid #2ce5b5; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); padding: .8rem; } +p.note-title > p:first-child, blockquote.note-title > p:first-child { margin-top: 0; margin-bottom: 0; color: #2ce5b5; display: block; font-weight: bold; text-transform: uppercase; font-size: .75em; padding-bottom: .125rem; } + +blockquote.note { margin-left: 0; margin-right: 0; } +blockquote.note > p:first-child { margin-top: 0; } +blockquote.note > p:last-child { margin-bottom: 0; } + +blockquote.note-title { margin-left: 0; margin-right: 0; } +blockquote.note-title > p:nth-child(2) { margin-top: 0; } +blockquote.note-title > p:last-child { margin-bottom: 0; } + +p.warning, blockquote.warning { background: rgba(247, 126, 126, 0.2); border-left: 4px solid #dd2e2e; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); padding: .8rem; } +p.warning::before, blockquote.warning::before { color: #dd2e2e; content: "⚠️ Warning ⚠️"; display: block; font-weight: bold; text-transform: uppercase; font-size: .75em; padding-bottom: .125rem; } +p.warning > .warning-title, blockquote.warning > .warning-title { color: #dd2e2e; display: block; font-weight: bold; text-transform: uppercase; font-size: .75em; padding-bottom: .125rem; } + +p.warning-title, blockquote.warning-title { background: rgba(247, 126, 126, 0.2); border-left: 4px solid #dd2e2e; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); padding: .8rem; } +p.warning-title > p:first-child, blockquote.warning-title > p:first-child { margin-top: 0; margin-bottom: 0; color: #dd2e2e; display: block; font-weight: bold; text-transform: uppercase; font-size: .75em; padding-bottom: .125rem; } + +blockquote.warning { margin-left: 0; margin-right: 0; } +blockquote.warning > p:first-child { margin-top: 0; } +blockquote.warning > p:last-child { margin-bottom: 0; } + +blockquote.warning-title { margin-left: 0; margin-right: 0; } +blockquote.warning-title > p:nth-child(2) { margin-top: 0; } +blockquote.warning-title > p:last-child { margin-bottom: 0; } + +p.tip, blockquote.tip { background: rgba(65, 214, 147, 0.2); border-left: 4px solid #026e57; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); padding: .8rem; } +p.tip > .tip-title, blockquote.tip > .tip-title { color: #026e57; display: block; font-weight: bold; text-transform: uppercase; font-size: .75em; padding-bottom: .125rem; } + +p.tip-title, blockquote.tip-title { background: rgba(65, 214, 147, 0.2); border-left: 4px solid #026e57; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); padding: .8rem; } +p.tip-title > p:first-child, blockquote.tip-title > p:first-child { margin-top: 0; margin-bottom: 0; color: #026e57; display: block; font-weight: bold; text-transform: uppercase; font-size: .75em; padding-bottom: .125rem; } + +blockquote.tip { margin-left: 0; margin-right: 0; } +blockquote.tip > p:first-child { margin-top: 0; } +blockquote.tip > p:last-child { margin-bottom: 0; } + +blockquote.tip-title { margin-left: 0; margin-right: 0; } +blockquote.tip-title > p:nth-child(2) { margin-top: 0; } +blockquote.tip-title > p:last-child { margin-bottom: 0; } + +p.fubar, blockquote.fubar { background: rgba(114, 83, 237, 0.2); border-left: 4px solid #381885; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); padding: .8rem; } +p.fubar > .fubar-title, blockquote.fubar > .fubar-title { color: #381885; display: block; font-weight: bold; text-transform: uppercase; font-size: .75em; padding-bottom: .125rem; } + +p.fubar-title, blockquote.fubar-title { background: rgba(114, 83, 237, 0.2); border-left: 4px solid #381885; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); padding: .8rem; } +p.fubar-title > p:first-child, blockquote.fubar-title > p:first-child { margin-top: 0; margin-bottom: 0; color: #381885; display: block; font-weight: bold; text-transform: uppercase; font-size: .75em; padding-bottom: .125rem; } + +blockquote.fubar { margin-left: 0; margin-right: 0; } +blockquote.fubar > p:first-child { margin-top: 0; } +blockquote.fubar > p:last-child { margin-bottom: 0; } + +blockquote.fubar-title { margin-left: 0; margin-right: 0; } +blockquote.fubar-title > p:nth-child(2) { margin-top: 0; } +blockquote.fubar-title > p:last-child { margin-bottom: 0; } + +@font-face { font-family: GalanoGrotesque-ExtraLight; src: local(GalanoGrotesque-ExtraLight), url("../fonts/Rene Bieder - Galano Grotesque ExtraLight.otf"); } +@font-face { font-family: GalanoGrotesque; src: local(GalanoGrotesque-Regular), url("../fonts/Rene Bieder - Galano Grotesque.otf"); } +@font-face { font-family: GalanoGrotesque-Bold; src: local(GalanoGrotesque-Bold), url("../fonts/Rene Bieder - Galano Grotesque Bold.otf"); } +@font-face { font-family: GalanoGrotesque-Medium; src: local(Rene-Bieder-Galano-Grotesque-Medium), url("../fonts/Rene Bieder - Galano Grotesque Medium.otf"); } +html { scroll-padding-top: 90px; } + +body { font-family: GalanoGrotesque; color: #000000; } +body .body-wrapper, body footer { display: flex; } +body .body-wrapper .main, body .body-wrapper .footer-main, body footer .main, body footer .footer-main { width: 75%; max-width: 75%; margin-left: 0; float: right; position: relative; } +body .body-wrapper .main .main-content-wrap, body .body-wrapper .footer-main .main-content-wrap, body footer .main .main-content-wrap, body footer .footer-main .main-content-wrap { max-width: 1300px; padding: 80px; } +body .body-wrapper .side-bar, body .body-wrapper .footer-sidebar, body footer .side-bar, body footer .footer-sidebar { width: 25%; max-width: 25%; position: relative; height: auto; background-color: #f5f7f9; } +body a { color: #279890; } +body p, body li { font-family: GalanoGrotesque; font-size: 1em; } +body h1 { margin-top: 40px !important; font-family: GalanoGrotesque-Medium; font-size: 42px !important; color: #000000; } +body h2 { margin-top: 40px !important; font-size: 28px !important; font-family: GalanoGrotesque-Medium; } +body h2#table-of-contents { font-family: GalanoGrotesque-Medium; color: #ffffff; font-size: 14px !important; } +body h3 { margin-top: 25px !important; font-size: 18px; font-weight: 600; font-family: GalanoGrotesque-Medium; } +body h4 { margin-top: 25px !important; font-size: 16px; font-weight: 600; font-family: GalanoGrotesque-Medium; } +body .text-delta { text-transform: none; width: 100%; display: block; background-color: #279890; color: #ffffff; border-radius: 2px 2px 0 0; font-size: 14px !important; padding: 10px 15px 8px 15px; } +body .text-delta + ul { background-color: #f5f7f9; width: 100%; border: none; margin-top: 0; border-radius: 0; position: relative; top: -3px; padding: 15px 25px 15px 25px; } +body .text-delta + ul li { text-decoration: underline; } +body .text-delta + ul li::before { content: none; } +body .text-delta + ul li a:hover { background-image: none; } +body .text-delta + ul li a { white-space: normal; } +body #markdown-toc { background-color: #f5f7f9; width: 100%; border: none; margin-top: 0; border-radius: 0; position: relative; top: -3px; padding: 15px 25px 15px 25px; } +body #markdown-toc li::before { display: none; } +body #markdown-toc li a { color: #279890; font-size: 1em; background-image: none; white-space: normal; } +body #markdown-toc li a:hover { background-image: none; color: #279890; } +body #markdown-toc li ol, body #markdown-toc li ul { border: none; } +body #markdown-toc li ol li a, body #markdown-toc li ul li a { padding-bottom: 0; } +body div.highlighter-rouge pre.highlight { padding: 10px; } +body .highlight code { background-color: transparent; } +body .btn { padding: 6px 14px; color: #2f3433; font-family: GalanoGrotesque; border-radius: 4px; background: #ffffff; border: solid 2px #2f3433; box-shadow: none; } +body .btn:hover { border-color: #279890; color: #279890; background: #ffffff; } +body .btn-green { font-size: 16px; line-height: 1.63; letter-spacing: 0.05px; color: #ffffff; background-color: #279890; border: 2px solid #279890; } +body .btn-green:hover { background-color: #ffffff; color: #279890; } +body .main-content h1:hover a.anchor-heading, body .main-content h2:hover a.anchor-heading, body .main-content h3:hover a.anchor-heading, body .main-content h4:hover a.anchor-heading, body .main-content h5:hover a.anchor-heading, body .main-content h6:hover a.anchor-heading { left: -1.7rem; background-image: url("../../assets/icons/anchor.svg"); width: 24px; height: 24px; background-repeat: no-repeat; background-size: contain; background-position: center center; } +body .main-content h1:hover a.anchor-heading svg, body .main-content h2:hover a.anchor-heading svg, body .main-content h3:hover a.anchor-heading svg, body .main-content h4:hover a.anchor-heading svg, body .main-content h5:hover a.anchor-heading svg, body .main-content h6:hover a.anchor-heading svg { display: none; } +body .main-content h1:hover a.anchor-heading:hover, body .main-content h2:hover a.anchor-heading:hover, body .main-content h3:hover a.anchor-heading:hover, body .main-content h4:hover a.anchor-heading:hover, body .main-content h5:hover a.anchor-heading:hover, body .main-content h6:hover a.anchor-heading:hover { background-image: url("../../assets/icons/anchor green.svg"); } +body .main-content .toc-block { display: table-cell; } + +.main .main-header, .side-bar .site-header { background-color: white; height: 80px; max-height: 80px; min-height: 80px; border: 0; position: fixed; z-index: 2; } + +.main .main-header { width: 75%; } +.main .main-header nav.aux-nav { width: 100%; padding: 0; max-width: 1080px; } +.main .main-header nav.aux-nav .aux-nav-list { justify-content: flex-end; padding: 20px 80px; } +.main .main-header nav.aux-nav .aux-nav-list .aux-nav-list-item a.site-button { font-size: 16px; line-height: 1.63; letter-spacing: 0.05px; color: #000000; margin: 0 4px; } +.main .main-header nav.aux-nav .aux-nav-list .aux-nav-list-item a.site-button:hover { background-image: none; } +.main .main-header nav.aux-nav .aux-nav-list .aux-nav-list-item:hover a, .main .main-header nav.aux-nav .aux-nav-list .aux-nav-list-item.active a { color: #279890; } +.main .main-header nav.aux-nav .aux-nav-list .aux-nav-list-item.button a.site-button { font-size: 16px; line-height: 1.63; letter-spacing: 0.05px; color: #ffffff; margin: 0 0 0 20px; padding: 18px; border-radius: 6px; background-color: #f24886; border: 2px solid #f24886; } +.main .main-header nav.aux-nav .aux-nav-list .aux-nav-list-item.button a.site-button:hover { background-color: #b62d55; border: 2px solid #b62d55; color: #ffffff; } + +.side-bar:after { content: ' '; position: fixed; width: 100vw; top: 80px; box-shadow: 0 0 6px 2px rgba(0, 0, 0, 0.23); left: 0; right: 0; z-index: 0; } + +.side-bar .site-header { width: 25%; justify-content: flex-end; top: 0; } +.side-bar .site-header a.site-title { max-width: 290px; padding: 0; } +.side-bar .site-header a.site-title .site-logo { width: 150px; height: inherit; } +.side-bar .site-header a.site-title:hover { background-image: none; background-color: transparent; } + +.site-logo { width: 135px; height: 30px; } + +.side-bar { padding: 80px 0; border: 0; display: block; z-index: 1; } +.side-bar nav.site-nav, .side-bar nav.aux-nav { padding: 0; width: 100%; display: initial; } +.side-bar nav.site-nav .nav-list, .side-bar nav.site-nav .aux-nav-list, .side-bar nav.aux-nav .nav-list, .side-bar nav.aux-nav .aux-nav-list { width: 100%; padding: 0; margin-top: 30px; } +.side-bar nav.site-nav .nav-list .nav-list-item, .side-bar nav.site-nav .nav-list .aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .nav-list-item, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item, .side-bar nav.aux-nav .nav-list .nav-list-item, .side-bar nav.aux-nav .nav-list .aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .nav-list-item, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item { padding: 0; } +.side-bar nav.site-nav .nav-list .nav-list-item:hover, .side-bar nav.site-nav .nav-list .aux-nav-list-item:hover, .side-bar nav.site-nav .aux-nav-list .nav-list-item:hover, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item:hover, .side-bar nav.aux-nav .nav-list .nav-list-item:hover, .side-bar nav.aux-nav .nav-list .aux-nav-list-item:hover, .side-bar nav.aux-nav .aux-nav-list .nav-list-item:hover, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item:hover { background-color: #ffffff; } +.side-bar nav.site-nav .nav-list .nav-list-item.active:hover, .side-bar nav.site-nav .nav-list .aux-nav-list-item.active:hover, .side-bar nav.site-nav .aux-nav-list .nav-list-item.active:hover, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item.active:hover, .side-bar nav.aux-nav .nav-list .nav-list-item.active:hover, .side-bar nav.aux-nav .nav-list .aux-nav-list-item.active:hover, .side-bar nav.aux-nav .aux-nav-list .nav-list-item.active:hover, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item.active:hover { background-color: transparent; } +.side-bar nav.site-nav .nav-list .nav-list-item.active .nav_list li, .side-bar nav.site-nav .nav-list .aux-nav-list-item.active .nav_list li, .side-bar nav.site-nav .aux-nav-list .nav-list-item.active .nav_list li, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item.active .nav_list li, .side-bar nav.aux-nav .nav-list .nav-list-item.active .nav_list li, .side-bar nav.aux-nav .nav-list .aux-nav-list-item.active .nav_list li, .side-bar nav.aux-nav .aux-nav-list .nav-list-item.active .nav_list li, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item.active .nav_list li { padding-right: 0; padding-left: 0; } +.side-bar nav.site-nav .nav-list .nav-list-item.active .nav_list li:hover, .side-bar nav.site-nav .nav-list .aux-nav-list-item.active .nav_list li:hover, .side-bar nav.site-nav .aux-nav-list .nav-list-item.active .nav_list li:hover, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item.active .nav_list li:hover, .side-bar nav.aux-nav .nav-list .nav-list-item.active .nav_list li:hover, .side-bar nav.aux-nav .nav-list .aux-nav-list-item.active .nav_list li:hover, .side-bar nav.aux-nav .aux-nav-list .nav-list-item.active .nav_list li:hover, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item.active .nav_list li:hover { background-color: #ffffff; } +.side-bar nav.site-nav .nav-list .nav-list-item.header, .side-bar nav.site-nav .nav-list .aux-nav-list-item.header, .side-bar nav.site-nav .aux-nav-list .nav-list-item.header, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item.header, .side-bar nav.aux-nav .nav-list .nav-list-item.header, .side-bar nav.aux-nav .nav-list .aux-nav-list-item.header, .side-bar nav.aux-nav .aux-nav-list .nav-list-item.header, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item.header { padding: 12px 40px 12px calc(100% - 290px); color: #279890; font-family: GalanoGrotesque-Bold; font-size: 18px !important; letter-spacing: 1.1px; } +.side-bar nav.site-nav .nav-list .nav-list-item.header:hover, .side-bar nav.site-nav .nav-list .aux-nav-list-item.header:hover, .side-bar nav.site-nav .aux-nav-list .nav-list-item.header:hover, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item.header:hover, .side-bar nav.aux-nav .nav-list .nav-list-item.header:hover, .side-bar nav.aux-nav .nav-list .aux-nav-list-item.header:hover, .side-bar nav.aux-nav .aux-nav-list .nav-list-item.header:hover, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item.header:hover { background-color: transparent; background-image: none; } +.side-bar nav.site-nav .nav-list .nav-list-item.header:not(:first-of-type), .side-bar nav.site-nav .nav-list .aux-nav-list-item.header:not(:first-of-type), .side-bar nav.site-nav .aux-nav-list .nav-list-item.header:not(:first-of-type), .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item.header:not(:first-of-type), .side-bar nav.aux-nav .nav-list .nav-list-item.header:not(:first-of-type), .side-bar nav.aux-nav .nav-list .aux-nav-list-item.header:not(:first-of-type), .side-bar nav.aux-nav .aux-nav-list .nav-list-item.header:not(:first-of-type), .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item.header:not(:first-of-type) { padding-top: 36px; border-top: 1px solid #dadada; margin-top: 20px; } +.side-bar nav.site-nav .nav-list .nav-list-item a.nav-list-link, .side-bar nav.site-nav .nav-list .aux-nav-list-item a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .nav-list-item a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item a.nav-list-link, .side-bar nav.aux-nav .nav-list .nav-list-item a.nav-list-link, .side-bar nav.aux-nav .nav-list .aux-nav-list-item a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .nav-list-item a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item a.nav-list-link { padding: 12px 40px 12px calc(100% - 290px); font-size: 14px !important; color: #576489; font-family: GalanoGrotesque; letter-spacing: 1.1px; } +.side-bar nav.site-nav .nav-list .nav-list-item a.nav-list-link.active, .side-bar nav.site-nav .nav-list .nav-list-item a.nav-list-link:hover, .side-bar nav.site-nav .nav-list .aux-nav-list-item a.nav-list-link.active, .side-bar nav.site-nav .nav-list .aux-nav-list-item a.nav-list-link:hover, .side-bar nav.site-nav .aux-nav-list .nav-list-item a.nav-list-link.active, .side-bar nav.site-nav .aux-nav-list .nav-list-item a.nav-list-link:hover, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item a.nav-list-link.active, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item a.nav-list-link:hover, .side-bar nav.aux-nav .nav-list .nav-list-item a.nav-list-link.active, .side-bar nav.aux-nav .nav-list .nav-list-item a.nav-list-link:hover, .side-bar nav.aux-nav .nav-list .aux-nav-list-item a.nav-list-link.active, .side-bar nav.aux-nav .nav-list .aux-nav-list-item a.nav-list-link:hover, .side-bar nav.aux-nav .aux-nav-list .nav-list-item a.nav-list-link.active, .side-bar nav.aux-nav .aux-nav-list .nav-list-item a.nav-list-link:hover, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item a.nav-list-link.active, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item a.nav-list-link:hover { background-color: #ffffff; background-image: none; } +.side-bar nav.site-nav .nav-list .nav-list-item a.nav-list-link.active, .side-bar nav.site-nav .nav-list .aux-nav-list-item a.nav-list-link.active, .side-bar nav.site-nav .aux-nav-list .nav-list-item a.nav-list-link.active, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item a.nav-list-link.active, .side-bar nav.aux-nav .nav-list .nav-list-item a.nav-list-link.active, .side-bar nav.aux-nav .nav-list .aux-nav-list-item a.nav-list-link.active, .side-bar nav.aux-nav .aux-nav-list .nav-list-item a.nav-list-link.active, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item a.nav-list-link.active { font-family: GalanoGrotesque-Medium !important; color: #279890 !important; } +.side-bar nav.site-nav .nav-list .nav-list-item .nav-list-expander, .side-bar nav.site-nav .nav-list .aux-nav-list-item .nav-list-expander, .side-bar nav.site-nav .aux-nav-list .nav-list-item .nav-list-expander, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .nav-list-expander, .side-bar nav.aux-nav .nav-list .nav-list-item .nav-list-expander, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .nav-list-expander, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .nav-list-expander, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .nav-list-expander { right: 40px; width: 22px; height: 22px; padding: 0; margin: 14px 0 0 0; } +.side-bar nav.site-nav .nav-list .nav-list-item .nav-list-expander svg, .side-bar nav.site-nav .nav-list .aux-nav-list-item .nav-list-expander svg, .side-bar nav.site-nav .aux-nav-list .nav-list-item .nav-list-expander svg, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .nav-list-expander svg, .side-bar nav.aux-nav .nav-list .nav-list-item .nav-list-expander svg, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .nav-list-expander svg, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .nav-list-expander svg, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .nav-list-expander svg { color: #000000; } +.side-bar nav.site-nav .nav-list .nav-list-item .nav-list-expander:hover, .side-bar nav.site-nav .nav-list .aux-nav-list-item .nav-list-expander:hover, .side-bar nav.site-nav .aux-nav-list .nav-list-item .nav-list-expander:hover, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .nav-list-expander:hover, .side-bar nav.aux-nav .nav-list .nav-list-item .nav-list-expander:hover, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .nav-list-expander:hover, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .nav-list-expander:hover, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .nav-list-expander:hover { background-color: none; background-image: none; } +.side-bar nav.site-nav .nav-list .nav-list-item .nav-list, .side-bar nav.site-nav .nav-list .nav-list-item .aux-nav-list, .side-bar nav.site-nav .nav-list .aux-nav-list-item .nav-list, .side-bar nav.site-nav .nav-list .aux-nav-list-item .aux-nav-list, .side-bar nav.site-nav .aux-nav-list .nav-list-item .nav-list, .side-bar nav.site-nav .aux-nav-list .nav-list-item .aux-nav-list, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .nav-list, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .aux-nav-list, .side-bar nav.aux-nav .nav-list .nav-list-item .nav-list, .side-bar nav.aux-nav .nav-list .nav-list-item .aux-nav-list, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .nav-list, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .aux-nav-list, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .nav-list, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .aux-nav-list, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .nav-list, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .aux-nav-list { margin-top: 0; } +.side-bar nav.site-nav .nav-list .nav-list-item .nav-list a.nav-list-link, .side-bar nav.site-nav .nav-list .nav-list-item .nav-list a.aux-nav-list-item, .side-bar nav.site-nav .nav-list .nav-list-item .aux-nav-list a.nav-list-link, .side-bar nav.site-nav .nav-list .nav-list-item .aux-nav-list a.aux-nav-list-item, .side-bar nav.site-nav .nav-list .aux-nav-list-item .nav-list a.nav-list-link, .side-bar nav.site-nav .nav-list .aux-nav-list-item .nav-list a.aux-nav-list-item, .side-bar nav.site-nav .nav-list .aux-nav-list-item .aux-nav-list a.nav-list-link, .side-bar nav.site-nav .nav-list .aux-nav-list-item .aux-nav-list a.aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .nav-list-item .nav-list a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .nav-list-item .nav-list a.aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .nav-list-item .aux-nav-list a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .nav-list-item .aux-nav-list a.aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .nav-list a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .nav-list a.aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .aux-nav-list a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .aux-nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .nav-list .nav-list-item .nav-list a.nav-list-link, .side-bar nav.aux-nav .nav-list .nav-list-item .nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .nav-list .nav-list-item .aux-nav-list a.nav-list-link, .side-bar nav.aux-nav .nav-list .nav-list-item .aux-nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .nav-list a.nav-list-link, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .aux-nav-list a.nav-list-link, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .aux-nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .nav-list a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .aux-nav-list a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .aux-nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .nav-list a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .aux-nav-list a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .aux-nav-list a.aux-nav-list-item { margin-left: 20px; font-size: 13px !important; letter-spacing: 0.05px; } +.side-bar nav.site-nav .nav-list .nav-list-item .nav-list .nav-list a.nav-list-link, .side-bar nav.site-nav .nav-list .nav-list-item .nav-list .nav-list a.aux-nav-list-item, .side-bar nav.site-nav .nav-list .nav-list-item .nav-list .aux-nav-list a.nav-list-link, .side-bar nav.site-nav .nav-list .nav-list-item .nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.site-nav .nav-list .nav-list-item .aux-nav-list .nav-list a.nav-list-link, .side-bar nav.site-nav .nav-list .nav-list-item .aux-nav-list .nav-list a.aux-nav-list-item, .side-bar nav.site-nav .nav-list .nav-list-item .aux-nav-list .aux-nav-list a.nav-list-link, .side-bar nav.site-nav .nav-list .nav-list-item .aux-nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.site-nav .nav-list .aux-nav-list-item .nav-list .nav-list a.nav-list-link, .side-bar nav.site-nav .nav-list .aux-nav-list-item .nav-list .nav-list a.aux-nav-list-item, .side-bar nav.site-nav .nav-list .aux-nav-list-item .nav-list .aux-nav-list a.nav-list-link, .side-bar nav.site-nav .nav-list .aux-nav-list-item .nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.site-nav .nav-list .aux-nav-list-item .aux-nav-list .nav-list a.nav-list-link, .side-bar nav.site-nav .nav-list .aux-nav-list-item .aux-nav-list .nav-list a.aux-nav-list-item, .side-bar nav.site-nav .nav-list .aux-nav-list-item .aux-nav-list .aux-nav-list a.nav-list-link, .side-bar nav.site-nav .nav-list .aux-nav-list-item .aux-nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .nav-list-item .nav-list .nav-list a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .nav-list-item .nav-list .nav-list a.aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .nav-list-item .nav-list .aux-nav-list a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .nav-list-item .nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .nav-list-item .aux-nav-list .nav-list a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .nav-list-item .aux-nav-list .nav-list a.aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .nav-list-item .aux-nav-list .aux-nav-list a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .nav-list-item .aux-nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .nav-list .nav-list a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .nav-list .nav-list a.aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .nav-list .aux-nav-list a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .aux-nav-list .nav-list a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .aux-nav-list .nav-list a.aux-nav-list-item, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .aux-nav-list .aux-nav-list a.nav-list-link, .side-bar nav.site-nav .aux-nav-list .aux-nav-list-item .aux-nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .nav-list .nav-list-item .nav-list .nav-list a.nav-list-link, .side-bar nav.aux-nav .nav-list .nav-list-item .nav-list .nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .nav-list .nav-list-item .nav-list .aux-nav-list a.nav-list-link, .side-bar nav.aux-nav .nav-list .nav-list-item .nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .nav-list .nav-list-item .aux-nav-list .nav-list a.nav-list-link, .side-bar nav.aux-nav .nav-list .nav-list-item .aux-nav-list .nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .nav-list .nav-list-item .aux-nav-list .aux-nav-list a.nav-list-link, .side-bar nav.aux-nav .nav-list .nav-list-item .aux-nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .nav-list .nav-list a.nav-list-link, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .nav-list .nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .nav-list .aux-nav-list a.nav-list-link, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .aux-nav-list .nav-list a.nav-list-link, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .aux-nav-list .nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .aux-nav-list .aux-nav-list a.nav-list-link, .side-bar nav.aux-nav .nav-list .aux-nav-list-item .aux-nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .nav-list .nav-list a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .nav-list .nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .nav-list .aux-nav-list a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .aux-nav-list .nav-list a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .aux-nav-list .nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .aux-nav-list .aux-nav-list a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .nav-list-item .aux-nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .nav-list .nav-list a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .nav-list .nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .nav-list .aux-nav-list a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .nav-list .aux-nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .aux-nav-list .nav-list a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .aux-nav-list .nav-list a.aux-nav-list-item, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .aux-nav-list .aux-nav-list a.nav-list-link, .side-bar nav.aux-nav .aux-nav-list .aux-nav-list-item .aux-nav-list .aux-nav-list a.aux-nav-list-item { margin-left: 30px; color: #949494; font-size: 12px !important; } +.side-bar nav.site-nav .nav-version, .side-bar nav.aux-nav .nav-version { display: flex; align-items: center; justify-content: center; padding: 12px 40px 12px calc(100% - 290px); text-transform: none; } +.side-bar nav.site-nav .nav-version select, .side-bar nav.aux-nav .nav-version select { height: 2em; margin: 0 0 0 10px; flex-grow: 1; } +.side-bar nav.site-nav .search, .side-bar nav.aux-nav .search { margin-top: 35px; margin-left: calc(100% - 290px); margin-right: 40px; max-width: 250px !important; max-height: 40px !important; width: 250px !important; z-index: 1; } +.side-bar nav.site-nav .search .search-input, .side-bar nav.aux-nav .search .search-input { background-color: #f5f7f9; border: 1px solid #dadada; border-radius: 6px; color: #6e7171; font-family: GalanoGrotesque-Medium; } +.side-bar nav.site-nav .search .search-input:focus, .side-bar nav.site-nav .search .search-input:active, .side-bar nav.aux-nav .search .search-input:focus, .side-bar nav.aux-nav .search .search-input:active { background-color: #f5f7f9; color: #6e7171; } +.side-bar nav.site-nav .search .search-input .search-icon, .side-bar nav.aux-nav .search .search-input .search-icon { color: #949494; } +.side-bar nav.site-nav .search .search-input:focus + .search-label .search-icon, .side-bar nav.aux-nav .search .search-input:focus + .search-label .search-icon { color: #949494; } +.side-bar nav.site-nav .mobile-menu, .side-bar nav.aux-nav .mobile-menu { display: none; } + +.label { text-transform: none !important; margin-left: 0 !important; margin-right: 0 !important; } + +.search-active .main { position: inherit; right: inherit; left: inherit; } + +.search-overlay { display: none; } + +.search-result-doc .search-result-icon { color: #279890; } + +footer { height: 360px; } +footer .footer-main { padding: 80px; } +footer .footer-main ul { list-style: none; padding: 0; margin: 0; } +footer .footer-main ul li { display: inline-block; padding: 0; margin: 0; } +footer .footer-main .row { display: flex; } +footer .footer-main .row .left { width: 70%; } +footer .footer-main .row .right { width: 30%; display: flex; justify-content: flex-end; } +footer .footer-main .row .site-title { padding: 0; margin-bottom: 30px; } +footer .footer-main .row .site-title .site-logo { height: 45px; } +footer .footer-main .row .footer-links li { margin-right: 40px; } +footer .footer-main .row .footer-links li a { padding: 0; color: #000000; font-size: 18px; } +footer .footer-main .row .footer-links li a:hover { color: #279890; } +footer .footer-main .row .footer-social li a, footer .footer-main .row .bottom-footer-links li a { padding: 0 15px; font-size: 16px; color: #949494; } +footer .footer-main .row .footer-social li a:last-of-type, footer .footer-main .row .bottom-footer-links li a:last-of-type { padding-right: 0; } +footer .footer-main .row .footer-social li a:hover, footer .footer-main .row .bottom-footer-links li a:hover { color: #279890; } +footer .footer-main .row .footer-social li a img.hover { display: none; } +footer .footer-main .row .footer-social li a:hover img.no-hover { display: none; } +footer .footer-main .row .footer-social li a:hover img.hover { display: block; } +footer .footer-main .top-border { padding-top: 30px; margin-top: 30px; border-top: 1px solid #dadada; } +footer .footer-main a:hover { background-color: transparent !important; background-image: none !important; } +footer .footer-sidebar { z-index: -1; } + +@media (max-width: 799px) { body { padding-bottom: 0; } + body .body-wrapper { display: block; } + body .body-wrapper .side-bar { width: 100%; max-width: 100%; padding: 0; } + body .body-wrapper .side-bar .site-header { width: 100%; flex-direction: row-reverse; justify-content: flex-end; } + body .body-wrapper .side-bar .site-header .site-button { padding: 11px 30px 0; width: 24px; height: 24px; background-repeat: no-repeat; background-size: auto; background-position: center center; background-image: url("../../assets/icons/menu.svg"); } + body .body-wrapper .side-bar .site-header .site-button:hover, body .body-wrapper .side-bar .site-header .site-button:active, body .body-wrapper .side-bar .site-header .site-button:focus { background-color: transparent; } + body .body-wrapper .side-bar .site-header .site-button.nav-open { background-image: url("../../assets/icons/close.svg"); } + body .body-wrapper .side-bar .site-header .site-button svg { display: none; } + body .body-wrapper .side-bar nav { display: none; overflow: scroll; background: white; } + body .body-wrapper .side-bar nav.nav-open { display: block; position: fixed; top: 0; height: 100vh; } + body .body-wrapper .side-bar nav.nav-open .search { position: relative; margin-top: 120px; margin-left: 30px; margin-right: 30px; padding: 0; } + body .body-wrapper .side-bar nav.nav-open .search .search-results { display: block !important; max-height: 60vh !important; } + body .body-wrapper .side-bar nav.nav-open .search .search-input { background-color: #ffffff; } + body .body-wrapper .side-bar nav.nav-open .search .search-input-wrap { box-shadow: none; } + body .body-wrapper .side-bar nav.nav-open .nav-list .nav-list-item, body .body-wrapper .side-bar nav.nav-open .nav-list .aux-nav-list-item, body .body-wrapper .side-bar nav.nav-open .aux-nav-list .nav-list-item, body .body-wrapper .side-bar nav.nav-open .aux-nav-list .aux-nav-list-item { padding-left: 30px !important; padding-right: 30px !important; } + body .body-wrapper .side-bar nav.nav-open .nav-list .nav-list-item a, body .body-wrapper .side-bar nav.nav-open .nav-list .aux-nav-list-item a, body .body-wrapper .side-bar nav.nav-open .aux-nav-list .nav-list-item a, body .body-wrapper .side-bar nav.nav-open .aux-nav-list .aux-nav-list-item a { padding-left: 0 !important; padding-right: 0 !important; } + body .body-wrapper .side-bar nav.nav-open .nav-list .nav-list-item a.active, body .body-wrapper .side-bar nav.nav-open .nav-list .aux-nav-list-item a.active, body .body-wrapper .side-bar nav.nav-open .aux-nav-list .nav-list-item a.active, body .body-wrapper .side-bar nav.nav-open .aux-nav-list .aux-nav-list-item a.active { background: unset; } + body .body-wrapper .side-bar nav.nav-open .nav-list .nav-list, body .body-wrapper .side-bar nav.nav-open .aux-nav-list .nav-list { margin-top: 0; } + body .body-wrapper .side-bar nav.nav-open .nav-list .nav-list a.nav-list-link, body .body-wrapper .side-bar nav.nav-open .aux-nav-list .nav-list a.nav-list-link { text-indent: 0; } + body .body-wrapper .side-bar nav.nav-open .mobile-menu { display: block; border-top: 1px solid #dadada; margin-top: 18px; padding-bottom: 80px; } + body .body-wrapper .side-bar nav.nav-open .mobile-menu nav { display: block; } + body .body-wrapper .side-bar nav.nav-open .mobile-menu nav .aux-nav-list { flex-direction: column; } + body .body-wrapper .side-bar nav.nav-open .mobile-menu nav .aux-nav-list a.site-button { font-size: 18px !important; color: #000000; } + body .body-wrapper .side-bar nav.nav-open .mobile-menu nav .aux-nav-list .button .site-button { border-radius: 6px; border: solid 2px #279890; background-color: #ffffff; color: #279890; padding: 10px 20px !important; display: inline-block; margin-top: 10px; } + body .body-wrapper .main { width: 100%; max-width: 100%; float: none; } + body .body-wrapper .main .main-header { display: none; } + body .body-wrapper .main .main-content a { white-space: normal; } + body .body-wrapper .main .main-content-wrap { padding: 80px 30px; } + body footer { border-top: 1px solid #dadada; height: auto; } + body footer .footer-sidebar { display: none; } + body footer .footer-main { width: 100%; max-width: 100%; padding: 60px 30px; float: none; } + body footer .footer-main .row { flex-direction: column; } + body footer .footer-main .row .right, body footer .footer-main .row .left { width: 100%; display: block; } + body footer .footer-main .row .site-title { margin-bottom: 40px; } + body footer .footer-main .row .footer-links { display: flex; flex-wrap: wrap; margin-bottom: 20px; } + body footer .footer-main .row .footer-links li { margin: 0 0 30px; width: 50%; } + body footer .footer-main .row .footer-social { width: 100%; display: flex; justify-content: space-between; } + body footer .footer-main .row .footer-social li a { padding: 0; } + body footer .footer-main .row .footer-social li a img { width: 34px; height: 34px; } + body footer .footer-main .row .bottom-footer-links li { display: block; margin-top: 30px; } + body footer .footer-main .row .bottom-footer-links li a { padding: 0; } + body footer .footer-main .row .top-border { padding-top: 40px; margin-top: 40px; } } +.copy-code-container { position: absolute; right: 0.3em; } + +.copy-code-button { align-items: center; justify-content: center; border: none; cursor: pointer; font-size: 1rem; color: #000000; padding: 0.4em 0.5em; background-color: transparent; outline: none; } +.copy-code-button:hover { color: #279890 !important; } + +.highlighter-rouge { position: relative; } + +.language-shell.highlighter-rouge pre.highlight::before, .language-sh.highlighter-rouge pre.highlight::before, .language-bash.highlighter-rouge pre.highlight::before { content: "$ "; color: #000000; font-weight: 400; font-family: monospace; font-size: 0.75em; } + +th, td { background-color: transparent; } + +.main-content ul.ui-tabs-nav > li::before { content: ""; } + +.tabs { background: transparent; } +.tabs.ui-widget .copy-code-button { font-family: "Font Awesome 6 Free" !important; } + +.tabs .ui-widget-header { background: transparent; border: none; border-bottom: 1px solid #d3d3d3; -moz-border-radius: 0px; -webkit-border-radius: 0px; border-radius: 0px; } + +.tabs .ui-tabs-nav .ui-state-default { background: transparent; border: none; } + +.tabs .ui-tabs-nav .ui-state-active { border: none; } + +.tabs .ui-tabs-nav .ui-state-default a { color: #c0c0c0; } + +.tabs .ui-tabs-nav .ui-state-active a { color: #279890; } + +/*overridden*/ +div.highlighter-rouge { border-radius: 4px; } +div.highlighter-rouge:hover > button { cursor: pointer; opacity: 0.5; } + +.highlighter-rouge button.copy-code-button { color: #000000; } + +/* Tooltip container */ +.tooltip { position: relative; display: inline-block; border-bottom: 0; } +.tooltip > a, .tooltip span { text-decoration: underline; text-decoration-style: dotted; background-image: none; } +.tooltip .tooltiptext { visibility: hidden; text-decoration: none; background-color: #2ce5b5; color: #000000; padding: 10px 20px; border-radius: 6px; position: absolute; z-index: 1; width: 400px; top: 100%; left: 50%; margin-left: -200px; } +.tooltip:hover .tooltiptext { visibility: visible; } +.tooltip .tooltiptext::after { content: " "; position: absolute; color: #2ce5b5; bottom: 100%; /* At the top of the tooltip */ left: 50%; margin-left: -5px; border-width: 5px; border-style: solid; border-color: transparent transparent #2ce5b5 transparent; } + +.ui-dialog-titlebar { display: none; } + +.feedback-container { position: sticky; top: 180px; z-index: 9999; } +@media (max-width: 1024px) { .feedback-container { display: none; } } +.feedback-container .feedback-buttons { position: absolute; right: 70px; margin-bottom: 20px; top: -55px; } +.feedback-container .feedback-buttons .tooltiptext { font-size: small; width: 150px; margin-left: -75px; text-align: center; } +.feedback-container .feedback-buttons .page-helpful-btn { background: none !important; border-radius: 50%; border: solid #279890 2px; color: #279890; height: 40px; width: 40px; margin: 0 3px; cursor: pointer; } +.feedback-container .feedback-buttons .page-helpful-btn:focus-visible { outline: none; } + +#is-helpful-ty { display: none; } +#is-helpful-ty a { color: #279890 !important; } + +.badge { padding: 2px 4px; background: #ffddec; text-transform: uppercase; text-align: center; border-radius: 6px; font-size: x-small; } + +.quickstart-steps { padding: 10px; } +.quickstart-steps img { width: 50px; height: 50px; } + +.row { display: flex; flex-direction: row; } + +.col { display: flex; flex-direction: column; justify-content: center; margin-bottom: 0.3em; } +.col.step-num { margin-right: 20px; } +.col.step-num > img { width: 40px; } + +img.quickstart { box-shadow: 3px 3px 1px #ccc; border-width: thin; border-color: black; border-style: ridge; } + +.breadcrumb-nav { margin-top: 1rem; } diff --git a/v1.46/assets/css/pygments/github.css b/v1.46/assets/css/pygments/github.css new file mode 100644 index 000000000..6e24c4d06 --- /dev/null +++ b/v1.46/assets/css/pygments/github.css @@ -0,0 +1,212 @@ +.highlighter-rouge .highlight table td { padding: 5px; } +.highlighter-rouge .highlight table pre { margin: 0; } +.highlighter-rouge .highlight .cm { + color: #999988; + font-style: italic; +} +.highlighter-rouge .highlight .cp { + color: #999999; + font-weight: bold; +} +.highlighter-rouge .highlight .c1 { + color: #999988; + font-style: italic; +} +.highlighter-rouge .highlight .cs { + color: #999999; + font-weight: bold; + font-style: italic; +} +.highlighter-rouge .highlight .c, .highlighter-rouge .highlight .ch, .highlighter-rouge .highlight .cd, .highlighter-rouge .highlight .cpf { + color: #999988; + font-style: italic; +} +.highlighter-rouge .highlight .err { + color: #a61717; + background-color: #e3d2d2; +} +.highlighter-rouge .highlight .gd { + color: #000000; + background-color: #ffdddd; +} +.highlighter-rouge .highlight .ge { + color: #000000; + font-style: italic; +} +.highlighter-rouge .highlight .gr { + color: #aa0000; +} +.highlighter-rouge .highlight .gh { + color: #999999; +} +.highlighter-rouge .highlight .gi { + color: #000000; + background-color: #ddffdd; +} +.highlighter-rouge .highlight .go { + color: #888888; +} +.highlighter-rouge .highlight .gp { + color: #555555; +} +.highlighter-rouge .highlight .gs { + font-weight: bold; +} +.highlighter-rouge .highlight .gu { + color: #aaaaaa; +} +.highlighter-rouge .highlight .gt { + color: #aa0000; +} +.highlighter-rouge .highlight .kc { + color: #000000; + font-weight: bold; +} +.highlighter-rouge .highlight .kd { + color: #000000; + font-weight: bold; +} +.highlighter-rouge .highlight .kn { + color: #000000; + font-weight: bold; +} +.highlighter-rouge .highlight .kp { + color: #000000; + font-weight: bold; +} +.highlighter-rouge .highlight .kr { + color: #000000; + font-weight: bold; +} +.highlighter-rouge .highlight .kt { + color: #445588; + font-weight: bold; +} +.highlighter-rouge .highlight .k, .highlighter-rouge .highlight .kv { + color: #000000; + font-weight: bold; +} +.highlighter-rouge .highlight .mf { + color: #009999; +} +.highlighter-rouge .highlight .mh { + color: #009999; +} +.highlighter-rouge .highlight .il { + color: #009999; +} +.highlighter-rouge .highlight .mi { + color: #009999; +} +.highlighter-rouge .highlight .mo { + color: #009999; +} +.highlighter-rouge .highlight .m, .highlighter-rouge .highlight .mb, .highlighter-rouge .highlight .mx { + color: #009999; +} +.highlighter-rouge .highlight .sb { + color: #d14; +} +.highlighter-rouge .highlight .sc { + color: #d14; +} +.highlighter-rouge .highlight .sd { + color: #d14; +} +.highlighter-rouge .highlight .s2 { + color: #d14; +} +.highlighter-rouge .highlight .se { + color: #d14; +} +.highlighter-rouge .highlight .sh { + color: #d14; +} +.highlighter-rouge .highlight .si { + color: #d14; +} +.highlighter-rouge .highlight .sx { + color: #d14; +} +.highlighter-rouge .highlight .sr { + color: #009926; +} +.highlighter-rouge .highlight .s1 { + color: #d14; +} +.highlighter-rouge .highlight .ss { + color: #990073; +} +.highlighter-rouge .highlight .s, .highlighter-rouge .highlight .sa, .highlighter-rouge .highlight .dl { + color: #d14; +} +.highlighter-rouge .highlight .na { + color: #008080; +} +.highlighter-rouge .highlight .n { + color: #032f62; +} +.highlighter-rouge .highlight .bp { + color: #999999; +} +.highlighter-rouge .highlight .nb { + color: #0086B3; +} +.highlighter-rouge .highlight .nc { + color: #445588; + font-weight: bold; +} +.highlighter-rouge .highlight .no { + color: #008080; +} +.highlighter-rouge .highlight .nd { + color: #3c5d5d; + font-weight: bold; +} +.highlighter-rouge .highlight .ni { + color: #800080; +} +.highlighter-rouge .highlight .ne { + color: #990000; + font-weight: bold; +} +.highlighter-rouge .highlight .nf, .highlighter-rouge .highlight .fm { + color: #990000; + font-weight: bold; +} +.highlighter-rouge .highlight .nl { + color: #990000; + font-weight: bold; +} +.highlighter-rouge .highlight .nn { + color: #555555; +} +.highlighter-rouge .highlight .nt { + color: #000080; +} +.highlighter-rouge .highlight .vc { + color: #008080; +} +.highlighter-rouge .highlight .vg { + color: #008080; +} +.highlighter-rouge .highlight .vi { + color: #008080; +} +.highlighter-rouge .highlight .nv, .highlighter-rouge .highlight .vm { + color: #008080; +} +.highlighter-rouge .highlight .ow { + color: #000000; + font-weight: bold; +} +.highlighter-rouge .highlight .o { + color: #000000; + font-weight: bold; +} +.highlighter-rouge .highlight .w { + color: #bbbbbb; +} +.highlighter-rouge .highlight { + background-color: #f8f8f8; +} diff --git a/v1.46/assets/css/pygments/igorpro.css b/v1.46/assets/css/pygments/igorpro.css new file mode 100644 index 000000000..1a61746e9 --- /dev/null +++ b/v1.46/assets/css/pygments/igorpro.css @@ -0,0 +1,35 @@ +.highlight table td { padding: 5px; } +.highlight table pre { margin: 0; } +.highlight, .highlight .w { + color: #444444; +} +.highlight .cp { + color: #CC00A3; +} +.highlight .cs { + color: #CC00A3; +} +.highlight .c, .highlight .ch, .highlight .cd, .highlight .cm, .highlight .cpf, .highlight .c1 { + color: #FF0000; +} +.highlight .kc { + color: #C34E00; +} +.highlight .kd { + color: #0000FF; +} +.highlight .kr { + color: #007575; +} +.highlight .k, .highlight .kn, .highlight .kp, .highlight .kt, .highlight .kv { + color: #0000FF; +} +.highlight .s, .highlight .sb, .highlight .sc, .highlight .dl, .highlight .sd, .highlight .s2, .highlight .se, .highlight .sh, .highlight .si, .highlight .sx, .highlight .sr, .highlight .s1, .highlight .ss { + color: #009C00; +} +.highlight .sa { + color: #0000FF; +} +.highlight .nb, .highlight .bp { + color: #C34E00; +} diff --git a/v1.46/assets/fonts/Rene Bieder - Galano Grotesque Bold.otf b/v1.46/assets/fonts/Rene Bieder - Galano Grotesque Bold.otf new file mode 100644 index 000000000..9e8e153c2 Binary files /dev/null and b/v1.46/assets/fonts/Rene Bieder - Galano Grotesque Bold.otf differ diff --git a/v1.46/assets/fonts/Rene Bieder - Galano Grotesque ExtraLight.otf b/v1.46/assets/fonts/Rene Bieder - Galano Grotesque ExtraLight.otf new file mode 100644 index 000000000..b55c212b1 Binary files /dev/null and b/v1.46/assets/fonts/Rene Bieder - Galano Grotesque ExtraLight.otf differ diff --git a/v1.46/assets/fonts/Rene Bieder - Galano Grotesque Medium.otf b/v1.46/assets/fonts/Rene Bieder - Galano Grotesque Medium.otf new file mode 100644 index 000000000..be0f7785e Binary files /dev/null and b/v1.46/assets/fonts/Rene Bieder - Galano Grotesque Medium.otf differ diff --git a/v1.46/assets/fonts/Rene Bieder - Galano Grotesque.otf b/v1.46/assets/fonts/Rene Bieder - Galano Grotesque.otf new file mode 100644 index 000000000..eaa23bbe0 Binary files /dev/null and b/v1.46/assets/fonts/Rene Bieder - Galano Grotesque.otf differ diff --git a/v1.46/assets/fonts/Rene-Bieder-Galano-Grotesque-Bold.eot b/v1.46/assets/fonts/Rene-Bieder-Galano-Grotesque-Bold.eot new file mode 100644 index 000000000..0b1daeba8 Binary files /dev/null and b/v1.46/assets/fonts/Rene-Bieder-Galano-Grotesque-Bold.eot differ diff --git a/v1.46/assets/fonts/Rene-Bieder-Galano-Grotesque-Bold.otf b/v1.46/assets/fonts/Rene-Bieder-Galano-Grotesque-Bold.otf new file mode 100644 index 000000000..9e8e153c2 Binary files /dev/null and b/v1.46/assets/fonts/Rene-Bieder-Galano-Grotesque-Bold.otf differ diff --git a/v1.46/assets/fonts/Rene-Bieder-Galano-Grotesque-Bold.svg b/v1.46/assets/fonts/Rene-Bieder-Galano-Grotesque-Bold.svg new file mode 100644 index 000000000..96bdbf7ba --- /dev/null +++ b/v1.46/assets/fonts/Rene-Bieder-Galano-Grotesque-Bold.svg @@ -0,0 +1,3431 @@ + + + + +Created by FontForge 20190801 at Sun Dec 28 12:36:43 2014 + By root +Copyright (c) 2014 by Rene' Bieder. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/v1.46/assets/fonts/Rene-Bieder-Galano-Grotesque-Bold.ttf b/v1.46/assets/fonts/Rene-Bieder-Galano-Grotesque-Bold.ttf new file mode 100644 index 000000000..36de3c958 Binary files /dev/null and b/v1.46/assets/fonts/Rene-Bieder-Galano-Grotesque-Bold.ttf differ diff --git a/v1.46/assets/fonts/Rene-Bieder-Galano-Grotesque-Bold.woff b/v1.46/assets/fonts/Rene-Bieder-Galano-Grotesque-Bold.woff new file mode 100644 index 000000000..ae6bc589b Binary files /dev/null and b/v1.46/assets/fonts/Rene-Bieder-Galano-Grotesque-Bold.woff differ diff --git a/v1.46/assets/fonts/Rene-Bieder-Galano-Grotesque-Bold.woff2 b/v1.46/assets/fonts/Rene-Bieder-Galano-Grotesque-Bold.woff2 new file mode 100644 index 000000000..531556103 Binary files /dev/null and b/v1.46/assets/fonts/Rene-Bieder-Galano-Grotesque-Bold.woff2 differ diff --git a/v1.46/assets/fonts/Rene-Bieder-Galano-Grotesque-Medium.eot b/v1.46/assets/fonts/Rene-Bieder-Galano-Grotesque-Medium.eot new file mode 100644 index 000000000..527b99c4e Binary files /dev/null and b/v1.46/assets/fonts/Rene-Bieder-Galano-Grotesque-Medium.eot differ diff --git a/v1.46/assets/fonts/Rene-Bieder-Galano-Grotesque-Medium.otf b/v1.46/assets/fonts/Rene-Bieder-Galano-Grotesque-Medium.otf new file mode 100644 index 000000000..be0f7785e Binary files /dev/null and b/v1.46/assets/fonts/Rene-Bieder-Galano-Grotesque-Medium.otf differ diff --git a/v1.46/assets/fonts/Rene-Bieder-Galano-Grotesque-Medium.svg b/v1.46/assets/fonts/Rene-Bieder-Galano-Grotesque-Medium.svg new file mode 100644 index 000000000..ccf28c15d --- /dev/null +++ b/v1.46/assets/fonts/Rene-Bieder-Galano-Grotesque-Medium.svg @@ -0,0 +1,3431 @@ + + + + +Created by FontForge 20190801 at Sun Dec 28 12:36:42 2014 + By root +Copyright (c) 2014 by Rene' Bieder. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/v1.46/assets/fonts/Rene-Bieder-Galano-Grotesque-Medium.ttf b/v1.46/assets/fonts/Rene-Bieder-Galano-Grotesque-Medium.ttf new file mode 100644 index 000000000..af048c8c9 Binary files /dev/null and b/v1.46/assets/fonts/Rene-Bieder-Galano-Grotesque-Medium.ttf differ diff --git a/v1.46/assets/fonts/Rene-Bieder-Galano-Grotesque-Medium.woff b/v1.46/assets/fonts/Rene-Bieder-Galano-Grotesque-Medium.woff new file mode 100644 index 000000000..84a3426a9 Binary files /dev/null and b/v1.46/assets/fonts/Rene-Bieder-Galano-Grotesque-Medium.woff differ diff --git a/v1.46/assets/fonts/Rene-Bieder-Galano-Grotesque-Medium.woff2 b/v1.46/assets/fonts/Rene-Bieder-Galano-Grotesque-Medium.woff2 new file mode 100644 index 000000000..c383567a8 Binary files /dev/null and b/v1.46/assets/fonts/Rene-Bieder-Galano-Grotesque-Medium.woff2 differ diff --git a/v1.46/assets/icons/anchor green.svg b/v1.46/assets/icons/anchor green.svg new file mode 100644 index 000000000..3e5bd0424 --- /dev/null +++ b/v1.46/assets/icons/anchor green.svg @@ -0,0 +1,3 @@ + + + diff --git a/v1.46/assets/icons/anchor.svg b/v1.46/assets/icons/anchor.svg new file mode 100644 index 000000000..b542e0954 --- /dev/null +++ b/v1.46/assets/icons/anchor.svg @@ -0,0 +1,3 @@ + + + diff --git a/v1.46/assets/icons/close.svg b/v1.46/assets/icons/close.svg new file mode 100644 index 000000000..5e6fee306 --- /dev/null +++ b/v1.46/assets/icons/close.svg @@ -0,0 +1,9 @@ + + + close menu@2x + + + + + + \ No newline at end of file diff --git a/v1.46/assets/icons/github-hover.svg b/v1.46/assets/icons/github-hover.svg new file mode 100644 index 000000000..e5e7d7333 --- /dev/null +++ b/v1.46/assets/icons/github-hover.svg @@ -0,0 +1,11 @@ + + + icon / slack copy 2@2x + + + + + + + + \ No newline at end of file diff --git a/v1.46/assets/icons/github.png b/v1.46/assets/icons/github.png new file mode 100644 index 000000000..aab26142b Binary files /dev/null and b/v1.46/assets/icons/github.png differ diff --git a/v1.46/assets/icons/github.svg b/v1.46/assets/icons/github.svg new file mode 100644 index 000000000..11e642774 --- /dev/null +++ b/v1.46/assets/icons/github.svg @@ -0,0 +1,11 @@ + + + icon / slack copy 2@2x + + + + + + + + \ No newline at end of file diff --git a/v1.46/assets/icons/linkedin-hover.svg b/v1.46/assets/icons/linkedin-hover.svg new file mode 100644 index 000000000..4c63319b7 --- /dev/null +++ b/v1.46/assets/icons/linkedin-hover.svg @@ -0,0 +1,11 @@ + + + icon / slack copy 3@2x + + + + + + + + \ No newline at end of file diff --git a/v1.46/assets/icons/linkedin.png b/v1.46/assets/icons/linkedin.png new file mode 100644 index 000000000..f0e320908 Binary files /dev/null and b/v1.46/assets/icons/linkedin.png differ diff --git a/v1.46/assets/icons/linkedin.svg b/v1.46/assets/icons/linkedin.svg new file mode 100644 index 000000000..61c45f9ac --- /dev/null +++ b/v1.46/assets/icons/linkedin.svg @@ -0,0 +1,13 @@ + + + icon / slack copy 3@2x + + + + + + + + + + \ No newline at end of file diff --git a/v1.46/assets/icons/mastodon-hover.svg b/v1.46/assets/icons/mastodon-hover.svg new file mode 100644 index 000000000..9cd766431 --- /dev/null +++ b/v1.46/assets/icons/mastodon-hover.svg @@ -0,0 +1,60 @@ + + + icon / slack copy 2@2x + + + + + + + + icon / slack copy 2@2x + + + + diff --git a/v1.46/assets/icons/mastodon.svg b/v1.46/assets/icons/mastodon.svg new file mode 100644 index 000000000..34945a399 --- /dev/null +++ b/v1.46/assets/icons/mastodon.svg @@ -0,0 +1,60 @@ + + + icon / slack copy 2@2x + + + + + + + + icon / slack copy 2@2x + + + + diff --git a/v1.46/assets/icons/menu.svg b/v1.46/assets/icons/menu.svg new file mode 100644 index 000000000..6640d05ed --- /dev/null +++ b/v1.46/assets/icons/menu.svg @@ -0,0 +1,11 @@ + + + mobile menu@2x + + + + + + + + \ No newline at end of file diff --git a/v1.46/assets/icons/search.png b/v1.46/assets/icons/search.png new file mode 100644 index 000000000..72d8bdc6e Binary files /dev/null and b/v1.46/assets/icons/search.png differ diff --git a/v1.46/assets/icons/search.svg b/v1.46/assets/icons/search.svg new file mode 100644 index 000000000..d148b0312 --- /dev/null +++ b/v1.46/assets/icons/search.svg @@ -0,0 +1,8 @@ + + + search on@2x + + + + + \ No newline at end of file diff --git a/v1.46/assets/icons/slack-hover.svg b/v1.46/assets/icons/slack-hover.svg new file mode 100644 index 000000000..6240311fd --- /dev/null +++ b/v1.46/assets/icons/slack-hover.svg @@ -0,0 +1,11 @@ + + + icon / slack@2x + + + + + + + + \ No newline at end of file diff --git a/v1.46/assets/icons/slack.png b/v1.46/assets/icons/slack.png new file mode 100644 index 000000000..6dfe2d61f Binary files /dev/null and b/v1.46/assets/icons/slack.png differ diff --git a/v1.46/assets/icons/slack.svg b/v1.46/assets/icons/slack.svg new file mode 100644 index 000000000..247941f65 --- /dev/null +++ b/v1.46/assets/icons/slack.svg @@ -0,0 +1,11 @@ + + + icon / slack@2x + + + + + + + + \ No newline at end of file diff --git a/v1.46/assets/icons/twitter-hover.svg b/v1.46/assets/icons/twitter-hover.svg new file mode 100644 index 000000000..844b11169 --- /dev/null +++ b/v1.46/assets/icons/twitter-hover.svg @@ -0,0 +1,11 @@ + + + icon / slack copy@2x + + + + + + + + \ No newline at end of file diff --git a/v1.46/assets/icons/twitter.png b/v1.46/assets/icons/twitter.png new file mode 100644 index 000000000..61c923970 Binary files /dev/null and b/v1.46/assets/icons/twitter.png differ diff --git a/v1.46/assets/icons/twitter.svg b/v1.46/assets/icons/twitter.svg new file mode 100644 index 000000000..935abeb0c --- /dev/null +++ b/v1.46/assets/icons/twitter.svg @@ -0,0 +1,11 @@ + + + icon / slack copy@2x + + + + + + + + \ No newline at end of file diff --git a/v1.46/assets/icons/youtube-hover.svg b/v1.46/assets/icons/youtube-hover.svg new file mode 100644 index 000000000..79028a4b6 --- /dev/null +++ b/v1.46/assets/icons/youtube-hover.svg @@ -0,0 +1,7 @@ + + + Youtube-hover + + + + \ No newline at end of file diff --git a/v1.46/assets/icons/youtube.png b/v1.46/assets/icons/youtube.png new file mode 100644 index 000000000..edf4be698 Binary files /dev/null and b/v1.46/assets/icons/youtube.png differ diff --git a/v1.46/assets/icons/youtube.svg b/v1.46/assets/icons/youtube.svg new file mode 100644 index 000000000..6614ca8a0 --- /dev/null +++ b/v1.46/assets/icons/youtube.svg @@ -0,0 +1,7 @@ + + + Youtube + + + + \ No newline at end of file diff --git a/v1.46/assets/images/large-image.jpg b/v1.46/assets/images/large-image.jpg new file mode 100644 index 000000000..c007781c2 Binary files /dev/null and b/v1.46/assets/images/large-image.jpg differ diff --git a/v1.46/assets/images/small-image.jpg b/v1.46/assets/images/small-image.jpg new file mode 100644 index 000000000..5bf58a949 Binary files /dev/null and b/v1.46/assets/images/small-image.jpg differ diff --git a/v1.46/assets/img/404-illustration.png b/v1.46/assets/img/404-illustration.png new file mode 100644 index 000000000..3b99633cb Binary files /dev/null and b/v1.46/assets/img/404-illustration.png differ diff --git a/v1.46/assets/img/Databricks-arch.excalidraw b/v1.46/assets/img/Databricks-arch.excalidraw new file mode 100644 index 000000000..7938c6a85 --- /dev/null +++ b/v1.46/assets/img/Databricks-arch.excalidraw @@ -0,0 +1,2288 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "type": "rectangle", + "version": 599, + "versionNonce": 421591746, + "index": "aV", + "isDeleted": false, + "id": "fKdWdkNM9XYc-7n1H_JyG", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 312.9164573811969, + "y": 3438.744149522377, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 364.0026135070274, + "height": 353.9706516152905, + "seed": 1911862587, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "94vLrbjNaZ-Is-8OTvFrb", + "type": "arrow" + }, + { + "id": "FoG-M0XjPajxjfIcaEGnO", + "type": "arrow" + }, + { + "id": "yt9EYZ_KA4Mchy3BUUQct", + "type": "arrow" + }, + { + "id": "GyPIp862EuIWsednp_LJE", + "type": "arrow" + } + ], + "updated": 1725544570539, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 448, + "versionNonce": 1172078110, + "index": "aVG", + "isDeleted": false, + "id": "rc8yXewY6HEPU-FwSwn3-", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 883.7566840331633, + "y": 3421.342955144116, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 181.98388158898558, + "height": 93.00907374489543, + "seed": 1701992539, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "HCNSYE_W_xRA4UTqgTuuu", + "type": "arrow" + }, + { + "id": "GyPIp862EuIWsednp_LJE", + "type": "arrow" + } + ], + "updated": 1725544671737, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 188, + "versionNonce": 1377980475, + "index": "aWG", + "isDeleted": false, + "id": "C1-kKCZJAGayLq8AFHcP_", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1267.0388624342286, + "y": 3282.233183635602, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 179.22793579101562, + "height": 35, + "seed": 413344987, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1722537743081, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "Object Store", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Object Store", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "text", + "version": 524, + "versionNonce": 1295073589, + "index": "aWV", + "isDeleted": false, + "id": "9OomwBL5b71Vw2A8hnvQG", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1224.8463054463277, + "y": 3587.374912933678, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 165.03779590129852, + "height": 52.303226761469986, + "seed": 386188827, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1722540974228, + "link": null, + "locked": false, + "fontSize": 20.921290704587996, + "fontFamily": 1, + "text": "lakeFS Managed\nBucket/s*", + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "lakeFS Managed\nBucket/s*", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "text", + "version": 564, + "versionNonce": 615590805, + "index": "aWd", + "isDeleted": false, + "id": "9amrjmm6vzKNvV1txfde1", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1236.8717429018543, + "y": 3529.01430153436, + "strokeColor": "#258c81", + "backgroundColor": "transparent", + "width": 61.157129574892735, + "height": 30.444620954311894, + "seed": 235752443, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "FoG-M0XjPajxjfIcaEGnO", + "type": "arrow" + } + ], + "updated": 1722537938459, + "link": null, + "locked": false, + "fontSize": 12.177848381724752, + "fontFamily": 1, + "text": "Metadata\nFiles", + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "Metadata\nFiles", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "text", + "version": 675, + "versionNonce": 904819125, + "index": "aWh", + "isDeleted": false, + "id": "ToMIIJgI6tA6N828WY6rq", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1318.8706249429092, + "y": 3530.2828956536414, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "width": 32.62775346636772, + "height": 30.44462095431188, + "seed": 785567637, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1722538759880, + "link": null, + "locked": false, + "fontSize": 12.177848381724752, + "fontFamily": 1, + "text": "Data\nFiles", + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "Data\nFiles", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "text", + "version": 503, + "versionNonce": 518870299, + "index": "aWl", + "isDeleted": false, + "id": "SSwnkbraAHrWf4k26Yw0H", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1250.5732655789477, + "y": 3827.328135003164, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 105.2199496626854, + "height": 50, + "seed": 1034420533, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1722538174899, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Unmanaged\nBucket/s", + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "Unmanaged\nBucket/s", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "image", + "version": 457, + "versionNonce": 1211580482, + "index": "ac", + "isDeleted": false, + "id": "XC4ZfmwenvusZshR_P-vg", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 923.775497770621, + "y": 3429.7902151724725, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "width": 97.38623046777609, + "height": 76.28588053309127, + "seed": 111869403, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "P6npyxRsQMDzyRRtFJCAZ", + "type": "arrow" + } + ], + "updated": 1725544674087, + "link": null, + "locked": false, + "status": "saved", + "fileId": "57c766831721e9fb1cd3ac887423f3539a447a55", + "scale": [ + 1, + 1 + ] + }, + { + "type": "image", + "version": 242, + "versionNonce": 1515296795, + "index": "ad", + "isDeleted": false, + "id": "PLXjmnHvBPwOF5s_2M80N", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1195.0597551231497, + "y": 3273.658229707978, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "width": 57.78143547920078, + "height": 57.78143547920078, + "seed": 1661221877, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1722537740595, + "link": null, + "locked": false, + "status": "saved", + "fileId": "14425b5cfc24549457fe531a77b482c2336c0d1d", + "scale": [ + 1, + 1 + ] + }, + { + "type": "ellipse", + "version": 413, + "versionNonce": 973815451, + "index": "am", + "isDeleted": false, + "id": "UgXMbNZ2cISgBrh6ismcD", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1214.1092737197202, + "y": 3426.8532767163338, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 185.48977829962644, + "height": 39.201122455943676, + "seed": 1418848981, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1722536698420, + "link": null, + "locked": false + }, + { + "type": "ellipse", + "version": 530, + "versionNonce": 106559931, + "index": "amG", + "isDeleted": false, + "id": "_hfeDSwLW7xKar-modPKg", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1237.1477084934322, + "y": 3716.930821703292, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 127.96422399257345, + "height": 27.043760905302562, + "seed": 1436675061, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1722538174899, + "link": null, + "locked": false + }, + { + "type": "line", + "version": 469, + "versionNonce": 776064149, + "index": "an", + "isDeleted": false, + "id": "cwJIg6NqVo2NMUoXhDnjW", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1400.4484126719815, + "y": 3445.719602817568, + "strokeColor": "#1e1e1e", + "backgroundColor": "#12b886", + "width": 27.435039617214706, + "height": 131.1158512677214, + "seed": 219662389, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1722536698420, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -27.435039617214706, + 131.1158512677214 + ] + ] + }, + { + "type": "line", + "version": 586, + "versionNonce": 1846086235, + "index": "anG", + "isDeleted": false, + "id": "2z_yZfH_SMtR9BrRtmG8E", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1365.6978827081718, + "y": 3729.9461738227797, + "strokeColor": "#1e1e1e", + "backgroundColor": "#12b886", + "width": 18.926668558261248, + "height": 90.45316844089105, + "seed": 1052424667, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1722538174899, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -18.926668558261248, + 90.45316844089105 + ] + ] + }, + { + "type": "line", + "version": 673, + "versionNonce": 687780667, + "index": "ao", + "isDeleted": false, + "id": "H_XtdgYlVr7iUFJpqCbWp", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1212.980854385111, + "y": 3446.065940141501, + "strokeColor": "#1e1e1e", + "backgroundColor": "#12b886", + "width": 27.435039617214724, + "height": 131.11585126772144, + "seed": 1740306837, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1722536698420, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 27.435039617214724, + 131.11585126772144 + ] + ] + }, + { + "type": "line", + "version": 790, + "versionNonce": 2060257019, + "index": "aoG", + "isDeleted": false, + "id": "CFRTG3kjWCUrlOVzJ7Vpo", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1236.3692434706413, + "y": 3730.185102281819, + "strokeColor": "#1e1e1e", + "backgroundColor": "#12b886", + "width": 18.92666855826126, + "height": 90.45316844089108, + "seed": 717923669, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1722538174899, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 18.92666855826126, + 90.45316844089108 + ] + ] + }, + { + "type": "line", + "version": 648, + "versionNonce": 1910862325, + "index": "ap", + "isDeleted": false, + "id": "akl7vry0vw3MofnYpEndn", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1241.0102979672567, + "y": 3576.4837884948356, + "strokeColor": "#1e1e1e", + "backgroundColor": "#12b886", + "width": 132.9629216786985, + "height": 9.835979999683579, + "seed": 1571880693, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1722536698420, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 64.33734309428377, + 9.835979999683579 + ], + [ + 132.9629216786985, + 1.3938745221653432 + ] + ] + }, + { + "type": "line", + "version": 767, + "versionNonce": 321417115, + "index": "apG", + "isDeleted": false, + "id": "dZYE85DV9lUebPHuRCjgl", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1255.70597474399, + "y": 3820.156737982185, + "strokeColor": "#1e1e1e", + "backgroundColor": "#12b886", + "width": 91.72741079519767, + "height": 6.785568236718933, + "seed": 949798523, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1722538174899, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 44.384538373350125, + 6.785568236718933 + ], + [ + 91.72741079519767, + 0.961595152072412 + ] + ] + }, + { + "type": "line", + "version": 1251, + "versionNonce": 517641179, + "index": "aq", + "isDeleted": false, + "id": "Fr7P_CVOlfsTYH98ZGC7W", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1401.550970267136, + "y": 3447.863697266036, + "strokeColor": "#1e1e1e", + "backgroundColor": "#12b886", + "width": 204.20793772300001, + "height": 73.92223842015714, + "seed": 629102677, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1722536698420, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 8.41304386281733, + -6.992816983523688 + ], + [ + -8.914834167083862, + -46.345262208693256 + ], + [ + -56.84501538608395, + -71.12383284278236 + ], + [ + -123.82021026334682, + -73.92223842015714 + ], + [ + -171.6030768976081, + -53.21233210229683 + ], + [ + -195.7948938601827, + -6.2553848968735215 + ], + [ + -188.10231038835357, + -0.4688874539394121 + ] + ] + }, + { + "type": "line", + "version": 1368, + "versionNonce": 692962363, + "index": "aqV", + "isDeleted": false, + "id": "nya0fBWtyDxdIUTsvDnGM", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1366.458506438301, + "y": 3731.4253247753554, + "strokeColor": "#1e1e1e", + "backgroundColor": "#12b886", + "width": 140.87736005396957, + "height": 50.996890297369326, + "seed": 1096102581, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1722538174899, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 5.803924287309746, + -4.824149379127804 + ], + [ + -6.150095421272407, + -31.972303641918348 + ], + [ + -39.21579047863243, + -49.066348348330976 + ], + [ + -85.42010921675873, + -50.996890297369326 + ], + [ + -118.38417605130402, + -36.709703611302615 + ], + [ + -135.07343576665983, + -4.315415552496223 + ], + [ + -129.76653700655336, + -0.32347237531487866 + ] + ] + }, + { + "type": "line", + "version": 688, + "versionNonce": 122856315, + "index": "au", + "isDeleted": false, + "id": "Vz387B1b2vmibhxvnqQSH", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1272.6330163883117, + "y": 3476.5593270274376, + "strokeColor": "#1e1e1e", + "backgroundColor": "#2ce5b4", + "width": 28.98577851804393, + "height": 42.9811349199005, + "seed": 1643133019, + "groupIds": [ + "KDDtU5RMPJKd3ckJPcy7u" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1722536755118, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 8.907146199098388, + 15.427629767282772 + ], + [ + 8.907146199098388, + 42.9811349199005 + ], + [ + -20.07863231894554, + 42.9811349199005 + ], + [ + -20.07863231894554, + 1.3633462798771523 + ], + [ + 0, + 0 + ] + ] + }, + { + "type": "line", + "version": 572, + "versionNonce": 633764891, + "index": "av", + "isDeleted": false, + "id": "LmVPBMi0EdUrxG5bIS9xR", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1281.2718300799863, + "y": 3490.260528414957, + "strokeColor": "#1e1e1e", + "backgroundColor": "#2ce5b4", + "width": 13.070403643350538, + "height": 13.168462466172253, + "seed": 94270715, + "groupIds": [ + "KDDtU5RMPJKd3ckJPcy7u" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1722536755118, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -13.070403643350538, + 0 + ], + [ + -9.54192475998025, + -13.168462466172253 + ] + ] + }, + { + "type": "line", + "version": 797, + "versionNonce": 882216149, + "index": "aw", + "isDeleted": false, + "id": "ev_I2v8T0dl-snNInpQe2", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1340.3672103751042, + "y": 3477.9419639990383, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 28.98577851804393, + "height": 42.9811349199005, + "seed": 2016632891, + "groupIds": [ + "dRFmKGMiTbRgGwfpJBDTA" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1722538773231, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 8.907146199098388, + 15.427629767282772 + ], + [ + 8.907146199098388, + 42.9811349199005 + ], + [ + -20.07863231894554, + 42.9811349199005 + ], + [ + -20.07863231894554, + 1.3633462798771523 + ], + [ + 0, + 0 + ] + ] + }, + { + "type": "line", + "version": 681, + "versionNonce": 854988539, + "index": "ax", + "isDeleted": false, + "id": "nURCUYMNMyP0_7-yyrBkJ", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1349.0060240667788, + "y": 3491.643165386558, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 13.070403643350538, + "height": 13.168462466172253, + "seed": 1600001269, + "groupIds": [ + "dRFmKGMiTbRgGwfpJBDTA" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1722538773231, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -13.070403643350538, + 0 + ], + [ + -9.54192475998025, + -13.168462466172253 + ] + ] + }, + { + "type": "line", + "version": 885, + "versionNonce": 376624187, + "index": "axG", + "isDeleted": false, + "id": "XYysRAd24zX_Q2p2eGnra", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1331.0303939180938, + "y": 3759.3131073009517, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 28.98577851804393, + "height": 42.9811349199005, + "seed": 998622907, + "groupIds": [ + "irGlI1gUH6Ec0F0oKCLIA" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1722538776295, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 8.907146199098388, + 15.427629767282772 + ], + [ + 8.907146199098388, + 42.9811349199005 + ], + [ + -20.07863231894554, + 42.9811349199005 + ], + [ + -20.07863231894554, + 1.3633462798771523 + ], + [ + 0, + 0 + ] + ] + }, + { + "type": "line", + "version": 769, + "versionNonce": 1577050357, + "index": "axV", + "isDeleted": false, + "id": "d48yd9wY4bhWwtyxNljv4", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1339.6692076097684, + "y": 3773.0143086884714, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 13.070403643350538, + "height": 13.168462466172253, + "seed": 2108380789, + "groupIds": [ + "irGlI1gUH6Ec0F0oKCLIA" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1722538776295, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -13.070403643350538, + 0 + ], + [ + -9.54192475998025, + -13.168462466172253 + ] + ] + }, + { + "type": "line", + "version": 914, + "versionNonce": 1797428443, + "index": "axd", + "isDeleted": false, + "id": "O0Ik_-buSPvejH_LvCcMc", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1287.1445715076575, + "y": 3759.4733474492523, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 28.98577851804393, + "height": 42.9811349199005, + "seed": 392454165, + "groupIds": [ + "hhRkWUwlJ4OviPrDNswcV" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1722538776295, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 8.907146199098388, + 15.427629767282772 + ], + [ + 8.907146199098388, + 42.9811349199005 + ], + [ + -20.07863231894554, + 42.9811349199005 + ], + [ + -20.07863231894554, + 1.3633462798771523 + ], + [ + 0, + 0 + ] + ] + }, + { + "type": "line", + "version": 798, + "versionNonce": 1034025557, + "index": "axl", + "isDeleted": false, + "id": "1ITqAjtgxj2u9TJWayiE8", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1295.783385199332, + "y": 3773.174548836772, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 13.070403643350538, + "height": 13.168462466172253, + "seed": 1201739707, + "groupIds": [ + "hhRkWUwlJ4OviPrDNswcV" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1722538776295, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -13.070403643350538, + 0 + ], + [ + -9.54192475998025, + -13.168462466172253 + ] + ] + }, + { + "type": "arrow", + "version": 293, + "versionNonce": 1478691422, + "index": "b00", + "isDeleted": false, + "id": "HCNSYE_W_xRA4UTqgTuuu", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1066.740565622149, + "y": 3460.648650738039, + "strokeColor": "#258c81", + "backgroundColor": "#ffffff", + "width": 182.92968465593754, + "height": 40.87623321251385, + "seed": 1298328277, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "9JxM9dyoRp9meqG8llmiS" + } + ], + "updated": 1725544671737, + "link": null, + "locked": false, + "startBinding": { + "elementId": "rc8yXewY6HEPU-FwSwn3-", + "focus": -0.5176202515159919, + "gap": 1, + "fixedPoint": null + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": "arrow", + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 64.87394947035204, + 24.382785695793245 + ], + [ + 182.92968465593754, + 40.87623321251385 + ] + ] + }, + { + "type": "text", + "version": 13, + "versionNonce": 145362939, + "index": "b00V", + "isDeleted": false, + "id": "9JxM9dyoRp9meqG8llmiS", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1091.4385315145344, + "y": 3475.0314364338324, + "strokeColor": "#258c81", + "backgroundColor": "#ffffff", + "width": 80.35196715593338, + "height": 20, + "seed": 364298389, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1722538051132, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "Metadata", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "HCNSYE_W_xRA4UTqgTuuu", + "originalText": "Metadata", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 776, + "versionNonce": 427765918, + "index": "b0G", + "isDeleted": false, + "id": "GyPIp862EuIWsednp_LJE", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 701.419009853068, + "y": 3463.5176299298537, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffffff", + "width": 179.96696509205026, + "height": 0.33654184094984885, + "seed": 52134741, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1725544688079, + "link": null, + "locked": false, + "startBinding": { + "elementId": "fKdWdkNM9XYc-7n1H_JyG", + "focus": -0.8561968624583398, + "gap": 24.49993896484375, + "fixedPoint": null + }, + "endBinding": { + "elementId": "rc8yXewY6HEPU-FwSwn3-", + "focus": 0.10371774472304966, + "gap": 2.3707090880450323, + "fixedPoint": null + }, + "lastCommittedPoint": null, + "startArrowhead": "arrow", + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 179.96696509205026, + -0.33654184094984885 + ] + ] + }, + { + "type": "arrow", + "version": 648, + "versionNonce": 2127617154, + "index": "b0H", + "isDeleted": false, + "id": "94vLrbjNaZ-Is-8OTvFrb", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 702.7601963765055, + "y": 3741.599849175025, + "strokeColor": "#1971c2", + "backgroundColor": "#ffffff", + "width": 519.5107918836129, + "height": 0.589509264049866, + "seed": 382577883, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "K2M3nmYuNkeXvtPaSRB-X" + } + ], + "updated": 1725544587073, + "link": null, + "locked": false, + "startBinding": { + "elementId": "fKdWdkNM9XYc-7n1H_JyG", + "focus": 0.7116931220340239, + "gap": 25.84112548828125, + "fixedPoint": null + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": "arrow", + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 519.5107918836129, + -0.589509264049866 + ] + ] + }, + { + "type": "text", + "version": 7, + "versionNonce": 2025606677, + "index": "b0HG", + "isDeleted": false, + "id": "K2M3nmYuNkeXvtPaSRB-X", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 940.0115674424673, + "y": 3697.1162259565835, + "strokeColor": "#1971c2", + "backgroundColor": "#ffffff", + "width": 42.895988285541534, + "height": 20, + "seed": 1105348949, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1722538767196, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "Data", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "94vLrbjNaZ-Is-8OTvFrb", + "originalText": "Data", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 1107, + "versionNonce": 1844428866, + "index": "b0HV", + "isDeleted": false, + "id": "FoG-M0XjPajxjfIcaEGnO", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 703.8018833882243, + "y": 3558.5500363712927, + "strokeColor": "#1971c2", + "backgroundColor": "#ffffff", + "width": 521.800621702034, + "height": 3.848623689989836, + "seed": 915786645, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "e1j3hXwZh4R5fHWNy3zFH" + } + ], + "updated": 1725544585386, + "link": null, + "locked": false, + "startBinding": { + "elementId": "fKdWdkNM9XYc-7n1H_JyG", + "focus": -0.31200300975951706, + "gap": 26.8828125, + "fixedPoint": null + }, + "endBinding": { + "elementId": "9amrjmm6vzKNvV1txfde1", + "focus": -0.6574472910135761, + "gap": 11.269237811595985, + "fixedPoint": null + }, + "lastCommittedPoint": null, + "startArrowhead": "arrow", + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 521.800621702034, + -3.848623689989836 + ] + ] + }, + { + "type": "text", + "version": 47, + "versionNonce": 942598901, + "index": "b0Hl", + "isDeleted": false, + "id": "e1j3hXwZh4R5fHWNy3zFH", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 944.103324640474, + "y": 3548.844679102245, + "strokeColor": "#1971c2", + "backgroundColor": "#ffffff", + "width": 42.895988285541534, + "height": 20, + "seed": 696045493, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1722538756147, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "Data", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "FoG-M0XjPajxjfIcaEGnO", + "originalText": "Data", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "image", + "version": 405, + "versionNonce": 287162754, + "index": "b0O", + "isDeleted": false, + "id": "WdkrYra56assCyd-YXdgZ", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 374.5715355296081, + "y": 3367.835634753072, + "strokeColor": "transparent", + "backgroundColor": "#ffffff", + "width": 235.0192366810598, + "height": 62.67179644828261, + "seed": 66171035, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "yt9EYZ_KA4Mchy3BUUQct", + "type": "arrow" + } + ], + "updated": 1725544661135, + "link": null, + "locked": false, + "status": "saved", + "fileId": "052b11aa8b22d6eabf95831f5c83abbbdebc45ef", + "scale": [ + 1, + 1 + ] + }, + { + "type": "text", + "version": 57, + "versionNonce": 1717000277, + "index": "b0R", + "isDeleted": false, + "id": "9OvAOafyzEx2eTcf6a6sZ", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1185.3806807731926, + "y": 3331.483415371421, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffffff", + "width": 275.1998291015625, + "height": 20, + "seed": 1762599413, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1722538651923, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "S3 / Azure Blob / GCS / MinIO ...", + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "S3 / Azure Blob / GCS / MinIO ...", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "text", + "version": 528, + "versionNonce": 1326136149, + "index": "b0S", + "isDeleted": false, + "id": "Fhakw2nF56ggm_i2A1Hlz", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 317.8442255491933, + "y": 3839.670578499913, + "strokeColor": "#1e1e1e", + "backgroundColor": "#a5d8ff", + "width": 595.9036865234375, + "height": 20, + "seed": 1798373467, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1722538964014, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "* All Data & Metadata is always stored within your Account and Network", + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "* All Data & Metadata is always stored within your Account and Network", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "AW4wY3hWkhVIqmOykjdMl", + "type": "image", + "x": 706.5731906592259, + "y": 3282.5365783516645, + "width": 46, + "height": 47, + "angle": 0, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0X", + "roundness": null, + "seed": 404631682, + "version": 105, + "versionNonce": 582825474, + "isDeleted": false, + "boundElements": null, + "updated": 1725544513961, + "link": null, + "locked": false, + "status": "saved", + "fileId": "f8e4899a9159ac15f50bae4ac5c2dccd836011de", + "scale": [ + 1, + 1 + ] + }, + { + "type": "rectangle", + "version": 488, + "versionNonce": 1176997214, + "index": "b0Y", + "isDeleted": false, + "id": "z1W92KzkwojMzlqN6Plu8", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 701.8841063100456, + "y": 3261.78898422824, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 181.98388158898558, + "height": 93.00907374489543, + "seed": 38669854, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "P6npyxRsQMDzyRRtFJCAZ", + "type": "arrow" + }, + { + "id": "yt9EYZ_KA4Mchy3BUUQct", + "type": "arrow" + } + ], + "updated": 1725544559802, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 314, + "versionNonce": 1116347714, + "index": "b0Z", + "isDeleted": false, + "id": "13cE0-qFZjKqduZujcHyv", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 773.2452792822728, + "y": 3282.6468231026415, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 77.21994018554688, + "height": 50, + "seed": 542653954, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1725544513961, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Unity\nCatalog", + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "Unity\nCatalog", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 711, + "versionNonce": 2117289310, + "index": "b0a", + "isDeleted": false, + "id": "P6npyxRsQMDzyRRtFJCAZ", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 885.2679146968808, + "y": 3305.3532800529015, + "strokeColor": "#258c81", + "backgroundColor": "#ffffff", + "width": 81.15973111234541, + "height": 114.3790722231729, + "seed": 1458601886, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "j8Zt4Ulc-RcPxroAJla6n" + } + ], + "updated": 1725544677019, + "link": null, + "locked": false, + "startBinding": { + "elementId": "z1W92KzkwojMzlqN6Plu8", + "focus": -0.6640351786153109, + "gap": 1.3999267978495595, + "fixedPoint": null + }, + "endBinding": { + "elementId": "XC4ZfmwenvusZshR_P-vg", + "focus": 0.1903316542076412, + "gap": 10.05786289639832, + "fixedPoint": null + }, + "lastCommittedPoint": null, + "startArrowhead": "arrow", + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 57.02657441915176, + 49.83874970645229 + ], + [ + 81.15973111234541, + 114.3790722231729 + ] + ] + }, + { + "type": "text", + "version": 17, + "versionNonce": 601030786, + "index": "b0b", + "isDeleted": false, + "id": "j8Zt4Ulc-RcPxroAJla6n", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 994.3189449911908, + "y": 3515.248472020096, + "strokeColor": "#258c81", + "backgroundColor": "#ffffff", + "width": 80.35196715593338, + "height": 20, + "seed": 2050677726, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1725544490151, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "Metadata", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "P6npyxRsQMDzyRRtFJCAZ", + "originalText": "Metadata", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 1223, + "versionNonce": 2005420482, + "index": "b0c", + "isDeleted": false, + "id": "yt9EYZ_KA4Mchy3BUUQct", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 724.0218806174502, + "y": 3362.2912147005477, + "strokeColor": "#258c81", + "backgroundColor": "#ffffff", + "width": 99.7599142214134, + "height": 67.68391677137743, + "seed": 1260352862, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "b3_R9mIkILcj8av3_nA5y" + } + ], + "updated": 1725544661135, + "link": null, + "locked": false, + "startBinding": { + "elementId": "z1W92KzkwojMzlqN6Plu8", + "focus": -0.05957350657654702, + "gap": 7.4931567274120425, + "fixedPoint": null + }, + "endBinding": { + "elementId": "WdkrYra56assCyd-YXdgZ", + "focus": 1.084245357795154, + "gap": 14.671194185368904, + "fixedPoint": null + }, + "lastCommittedPoint": null, + "startArrowhead": "arrow", + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -54.73563261209824, + 37.751072704499165 + ], + [ + -99.7599142214134, + 67.68391677137743 + ] + ] + }, + { + "type": "text", + "version": 21, + "versionNonce": 1149890242, + "index": "b0d", + "isDeleted": false, + "id": "b3_R9mIkILcj8av3_nA5y", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 909.800388939104, + "y": 3430.3460898952812, + "strokeColor": "#258c81", + "backgroundColor": "#ffffff", + "width": 80.35196715593338, + "height": 20, + "seed": 8722846, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1725544527659, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "Metadata", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "yt9EYZ_KA4Mchy3BUUQct", + "originalText": "Metadata", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "text", + "version": 645, + "versionNonce": 529689694, + "index": "b0g", + "isDeleted": false, + "id": "xTeR0_bCh8KU0wcP-0srj", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 514.0731808416692, + "y": 3477.921130353618, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 125.70667818470588, + "height": 56.12847900390625, + "seed": 5315998, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1725545244443, + "link": null, + "locked": false, + "fontSize": 22.4513916015625, + "fontFamily": 1, + "text": "All-Purpose\nCompute", + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "All-Purpose Compute", + "autoResize": false, + "lineHeight": 1.25 + }, + { + "type": "text", + "version": 595, + "versionNonce": 494503362, + "index": "b0h", + "isDeleted": false, + "id": "3S9sBolfAkDLZjOd2Fe9H", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 339.6697297312135, + "y": 3565.9532501045946, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 125.70667818470588, + "height": 28.064239501953125, + "seed": 320580994, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1725545208914, + "link": null, + "locked": false, + "fontSize": 22.4513916015625, + "fontFamily": 1, + "text": "Jobs", + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "Jobs", + "autoResize": false, + "lineHeight": 1.25 + }, + { + "type": "text", + "version": 586, + "versionNonce": 406510914, + "index": "b0i", + "isDeleted": false, + "id": "iqXJML6s2q5suJoS4jKvq", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 339.6697297312135, + "y": 3690.836123639751, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 125.70667818470588, + "height": 56.12847900390625, + "seed": 992415582, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1725545145468, + "link": null, + "locked": false, + "fontSize": 22.4513916015625, + "fontFamily": 1, + "text": "SQL \nWarehouse", + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "SQL Warehouse", + "autoResize": false, + "lineHeight": 1.25 + }, + { + "type": "text", + "version": 794, + "versionNonce": 1501638814, + "index": "b0j", + "isDeleted": false, + "id": "y9hEhmdS3EwfPhiLFa3li", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 514.0731808416692, + "y": 3630.8682433907275, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 125.70667818470588, + "height": 28.064239501953125, + "seed": 147045314, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1725545244444, + "link": null, + "locked": false, + "fontSize": 22.4513916015625, + "fontFamily": 1, + "text": "Notebooks", + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "Notebooks", + "autoResize": false, + "lineHeight": 1.25 + }, + { + "id": "rUqXwJHrDEWBy717ee_5r", + "type": "image", + "x": 341.6351816862896, + "y": 3616.324382001567, + "width": 121.77577427455374, + "height": 63.93228149414071, + "angle": 0, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0k", + "roundness": null, + "seed": 161296322, + "version": 238, + "versionNonce": 1041493726, + "isDeleted": false, + "boundElements": null, + "updated": 1725545232109, + "link": null, + "locked": false, + "status": "saved", + "fileId": "39f6aaecb1c0b0b2b31e3bed9bf23bd8bfe551f5", + "scale": [ + 1, + 1 + ] + }, + { + "type": "image", + "version": 411, + "versionNonce": 697134302, + "index": "b0l", + "isDeleted": false, + "id": "_oBaI02DYBrY_e6-i5-bH", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 516.0386327967452, + "y": 3542.324382001567, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "width": 121.77577427455374, + "height": 63.93228149414071, + "seed": 160702018, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1725545244444, + "link": null, + "locked": false, + "status": "saved", + "fileId": "39f6aaecb1c0b0b2b31e3bed9bf23bd8bfe551f5", + "scale": [ + 1, + 1 + ] + } + ], + "appState": { + "gridSize": 20, + "gridStep": 5, + "gridModeEnabled": false, + "viewBackgroundColor": "#ffffff" + }, + "files": { + "57c766831721e9fb1cd3ac887423f3539a447a55": { + "mimeType": "image/png", + "id": "57c766831721e9fb1cd3ac887423f3539a447a55", + "dataURL": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAF4CAYAAACM4Sq7AAAAAXNSR0IArs4c6QAAIABJREFUeF7svQmYHFd5LvyeWntfpqenZ5dGM6NlJFmyJXnDxrItybKxAQM2S8x2ISYhN7mX5CaBkJ84uRDgJn/4b8hNWExYTFhsMDgYrzK2wbskbGsZLaMZafale3rfa/vvd6p6JIRGlkc2kqwuowdppqur6tQ55/2W93s/hvrxhhoBy7JkHDkiYvFiPZvNBrRA4MEKcPGB8XEMp+IYy6QwnExgtlRErlJCulSCYZiwTBMCGGRBhEtWoMgyVFlBu8+L9lgMLaEwumOtaPOHJtRK5W0eQf5fTNP/uiHgeRYDAwrr7a28oQay/jD1EZhnBCzLUgAwMFZNVSqroSjbUoYWHZ6NY3g2gSOJGYwlZpAtVzBTLqNSrUCraqhWq2CMQVEUqKoKRZYQVCQE3W4saWrFosYoVnUuRkRxv1A8cPD6mXtmshv/pl0EeoCdMNl6ptVfyhtrBNgb63HO76ch8M0B15WBpqlCoRJPJdzMtD5Z1vTu0dk4JrIpzJZLmMplka6UUdAqKFSrME0TlmVBsACJEQDLkCQJiiQjqqpoCAQQUl1oDUUQ8wdS2VTqS6s6O9+rW9YPo42hgUZXwBKAh4KMpXH33QK79Vbj/H4T9ad/I46ABbCRdDokuX1bq6KpjCbilfGJsUWt0aZPp0ol/1hyFtPZDOLFAmbzWRQ1HUmtCk3T5v4QAMuyDEVWIEsivDL9URDzh9Dk9WFJrBlBRR06Mjb6+bA/WLqsr08IewOSZCA+eaD/kZUrV1bfiGN7vj5THYDP8Td/9913i/wR+vvFNX/+pzeUdfNT6UolOpRMVCcSM+LUzFR7rlBwZcsl5CoVaIyhaBoo6To004TBTHsELAswLYhgkAQRArP/XxFEyAxgugGvLCPs8+ohn3+ywe1t9Pq98VVtHeWoP2AYunlnV0vztBeiZWUyD4ZCodQ5PrT126+PQG0EWDqdDpWCwU3DicSisq59eLZSUsbjcePw1KhL17T2dD4vJvN5FLQqdEFExTRBK6tiGdzArf0hx1kUBQiCYK8xJkBiDCoToFgWwh4PQl5PRVXU0XAgaK5u70JrQ0TyS3JClYUv7Hno0Z/f0t+vP3HVVUI8HrdurRu75/QsrQPwOfj6LMsS7rnnHnbhhRdKSlfr5ul0tnHP0BATVdfts6XipeOZDEaTKSRyWWTKWZS1KgzT4n/ABP6H/53iaDJ4WIwmAqMf0c8JjPkfwBREMMuCYRgQGaBKIoJeL0xdg8flwrLGGJr8QTT6/SN9HV3ljoaw4ZLlr0y/uOvb69avzzL+LfWjPgLn5AiwtGWFSoax6eDExKIKwwcH41OhIzPx9pl8HqlCAbNaFoViEVVNR9UwoBPqCgIsilDzOLXB1xecNcZtXW7vmvwzgMh/wCyT/5FExiNQXrcLHkVFuzuMRn8AzYEAIn7vczD0r61e1KUtiTQpomHMjB44UPeKz8mpZd90HYDPsZdHYeaUYVyni2gci08LQ9nMR9KlUmxocsIan53tGksnxWSliqKuo0K5Xcmktc+3A2bVNgUGmPartwQTAt8fGAQmcLA1DcdityxYouxsIOCfs3cL22Om/zxMgF+UEfP5sSQaQ29LKzobo0MuRfnXRc2tIw0Qt1Foug7E59hEO79vl1lpK5R0VzftSCQWwdA/uG9sODSSiLcfSc5iLJ1CwTDsCJLs2Jcms4HVCSbxFUdpHeiOgcsXYW3pwLQIqQmepdpZc2vLBmcLImPwCyoUxhBQFLSFgkZHJHp4eUu7ecHiJbIKtkeJJ95/11135fr6+ljdGz73Jm0dgM+Rd2ZZFrvnnnvka2655YZMqfCp6Xw2cnDsiPXc6GhXslQSM6UiZjJpZMtlboEzCnGBQbfsDYBCXnP4SbsEobIFVHU7pUS/F0UKQAOWafE/pmWBydJvWGl8m3EAnfLGJcGCYAJu00JAFNHo9mJZWzu6OzrGFje3ZZb6G77d5HINWznxkXCYpc+R4a7f5nk6AqmUFSp7jM2JdGpxrlz8wOPjI6GZ5Gz78MwUJrJp5PUqNGbBcHBX5t4uYNKaIaOUlgcjY1V0gNcGU/od/6WDwtwgZgwWE0HBaiJB2uc7kSlaiAKDRWEnSg2ZFryiiJjXjxZfEL3ti+BXlOGAwT63clmv1hmJJnKHDj3a09NTZYzHsurHOTACdQA+B14Seb1jlcrmRLnQni2XPjyWTFy6f2IMhyfHsT+bRV7TeIjYsGzuE8GoyAQIlgXdtENgBMh0cMKVSV6xHRbTdfscDtgE0s6MsPcLa+7ftWHiPnRtkwBDWbFBWzQMMMOAZFkIuT3obGxEaySKq5etHOuNxDJu0/ra9L5937r00kuz58CQ12/xPByB5557LtBywdoPZvTq7ftHR0IHx0banxwfQSpHa6wMg4CUh4EsWIbNnRCJfsi9XjJYTTtAxJcWrSVad8z53bHgSgZxLSxtrycydjkAmxbPDTthK2jkIHNvWIClGRyIPaIMr6Ii5PaW13Z0ji1t7xS6orGpsMf17ajsGmtW1UcZqzOmz4UpXAfgs/wtPf7441Lf5ZffOJHLfvLwbCK2d3ykfe/kmDScTiJVLXNLnBYulRLxhUoEDybw8BWFsgz6gB2DtnO6pgHDNByPVwBqfGVuth8djFo4DQSsNkLz76DvdtLDta/koTYO7nPesQXJAnyKikt7erG6uR0XtS0eWhQIfykzPvqd3t7eOgif5fPufLu9gecGAq4VbR+YKOQ+8dLEkSUvjo9gYHoCh9MpDqJMdIDUNLlHSj4mgajJAZi8WfpZzfG0+RN82Yg2EPOUTc09dnJ//COcl2Gvzdqao1TR3EeJYsmpG2zOS6a1TYa0S5LR3tCIRo8PvdEmfVVbx1hvNDYdC/i+8OS99z3Q39+v33HHHQ7L8nx7o+fG89YB+Cx9T3fccYfQ19cnSRsuvV6y9E8fmRzb0D8xiqFkApPFPHKGDlMUoBpE3rAtaBsnHcuaFin9nDYLJ4hsOTFo+iT3dmlj4aQr28qeW6k8v2vvCyI/idkpY2b/3DH5+e8FbgE44TLakHjEjCM9L2uKeL1o9fhw1fKVWNfVPRQNR76UGR3/zqV1ED5LZ975d1vPDQwEgm1tHxidiX/ipcODS54e2IdxrYi0VoapHU3h1DzUuQiQIMAkw5RjqE2p4muQr0VnpfCoUu03tVVlrze78MCORtm0ilr46WgymdvETjjaOcuxpG3D2hQkuMEQ87jR09iECxYvxuJo03MRb/ibYUscWzoy9Chbv75eP3yWTus6AJ+FL2bv3r1KQ1/f5p2Dg217puMfnkzFL+0fGcJ0MQdNZJz8YZJnKgrc0+SL2SF/2HjpEKwISImI5TjBdm6Yu7Fzm8Jctoizou1NYc7F5eFsiW8ABvm3zM5nUTaZ4zwHfmcKzW0yDj47Jj3lwmQAbcEg94avWL5qqMMT+FJm377v1MPRZ+HkO89u6e5HHw0uX3fh+6eq1U/8YteuJdsPHcBEPgNNBDTLgGzTF397VGpYSjlgx+Ccs04djgTP1rzSeNa4GXPkLceQJruWG8emHfa2GZD22uOsaXutakyCxL1vA5IAtISDWNO+WL948bKxNpdvemWs6QsT9x164J7+e+re8Cu9izPw+zoAn4FBn++S5PXe0tcnqW972w3DydlP7Rw+1LTz8JH2kZlpKVHMwZAECJIIOMpVZDmLTm7XhmEnDOzkpPhSNsgytxHYxuY5O33OY66FyDhmUt7XWdz0AVOUQBhrszYpx2XnqHgOi8e0Tz6FalY+1Tq2+wLYuHQlruhdPtTp83/p8M6huzZvXp85i15B/VbOoxEgz1cM+j4wU8h94oWhoSVPDxzERCGPKs/2kuFqQjw2L3Pc2ND6Migzw9cMwEvq55aXk/bhdUnzHLQmKVfsELO47etUJPAzeE7YcKJP9ncQtZIAmP7QoTt1xBYMVE0DomChzRdEX1Mrehpi2LBoybOx5uZvRSV1PCzikXpu+Oya4HUAPkveBxGtEpXKlrF0ru1gYupDu+MTl/169DDGZpMoViswyMqlfBL9RwxlykUJtlhG7XAg0Vm7DluZr2gnx0Tn1Ba2E7IWJMkmRM95vjW2pgPoCi8U5qBvx8xsUhelvrg3bDns6nnH0YJOOWoLcEPAYl8Q1yxfiSuXLx/qCEW+VB4fr+eEz5I5eL7cBlUU0Bx+amhoaVpm9744OND3xJ5dmK6UURWpRl635zknIR5dX8ePDy0ZYkSLDiByEHYIVHx90LrTzHlrPe2Qtr0F83SQTZ+2CZO8LJBA3bAJWjxdXFvTdlkhN5BhcTEP+pcOE5pp8LIlFwQ0ewO4tGupfvGKlWMrm2LTIVn+wku/+tX9V199tX6+vOuz/TnrAHwWvCEiWi2+eN2N6VLpk3vHx5t/tW9v297ZGWm8UgCjHC8BpAOiBL60+Gjd0iIXHUythZKP9WbnckdOKIyTp/jfnVwuLXCRNpiaN2sTRei7+CdoYxHJB2D8PmyRDgpFU/mEvfiJnXmyQzBMaAzQJYlb7x7TwhKPHzesW4fLVvT1RyHd3B4IHDwLXkP9Fs6TEUin02HD59u8a2yk9/HhoU+9PDToPZSYRkm014NJms06hXSpDIjTkOc9aPkRAHMuhRNh4iFjSeChY8NhRp/oCzh5kqoQaJ2RN+wAuEPV4FEmhZMeyYDlxUpOJZPDrnYiU4LFeOUDrUkNJLhj1/HTiusIhHFBWweuXNKLC9ratoc9vs/te+aZn9dB+OyY7HUAPsPvYcdXvyq3fOhDNwxm4p9+6cjhDS8MHsL+yQlkqhqvwSXAO5rjtb1TYiKbog3CTLdJWDYzmSx2m3xl+68MzC3ZIOtsCuTxUm3h3M/mck+13O9RBictfLGkwdJ0XgLBNxmHtHU09XvyKSRoOgyyIFwuvplZWhVew8Dqlla8+YK1pcti7Z/RRse/vn59PRR9hqfieXP5iWx2edWl/sdzA/uj33z6V60zhZxYsHQYolNSVKnaJXW0zijlM98xV45ne75kmFKUCrIIQZHBZBG667jz55jS9peamlMWSHXEumH/0QwecaJ1rVgCZz8TqNZY1DwSRtehtU5pIYO8cKeu2DHOadegQDotvbAlYGVDE65dfQFWLV68oy3U+LkDdU/4rJjvdQA+g6+BPN/Y5RffODOb/KsXBg9ueGKgH4fSSRiU1zEZZFqH9J/jwfL0rZP7Ieuag6CTYyJA5kX7ksjB2aJFKghQQi6IigRQeZIsQeQbg8Q3ByJl1fK+tToI2/q2L8LFONIFaKUKjLIGVA2gosGs6g7wOyUSJxlD8iS4oIckA4rMa5UFTUNIkdEda7H+y4YrBpe3dfxztVD6dm8kUi9POoPz8Xy4NNX6NixffvtQNvU/H3lpu+vRAwdQZRZMIlMR/lKEyfFKa6mWefGXTF5SkhQYRJcK5pLBVBmiW+XrTHIpsHzyCYlYNS+XL2JSntMNGBUNVkWDUdUA+jcZvoUqTI1AWbdB2akTpioGzr3mWtMOUdpmedisas6QphC5CaFqwA8BS6MxXNG3EmsXLdkR83g+++T3737gYx/7WJ0hfQYnfh2Az9DgE+Fq69atvqGm4HdHp6ZuemrXyxjOZlAk75RAksQyaAHS4nQsa77oaqFgHrcSYOi67dG6FTCvC4LXBeZzQfCogCxB8pK1TDlb22rmljP9qbGhyTuulR3VrHMnH0wWt16s2htCVYdQNmHlytDTRVj5MiwCZfKMj62uOG48uWdOjG3aOMibkEUeThMtC15Jxm1r1uG69Zf0xyT3O6Iu14Ez9Drqlz1PRmBofHxZShZ/9GD/yyu39b/EJgqkHEeSkJSPtVtyUqqE6t5tteYTk6i4YAbRjsNuWIoIMeiFGPAABL4uhc91URJhKCfnQVOVADeCHe+XgJf+Tl4tgbKWqcAsVWEVyzALFVilCl+LPBVFNBCyGcgY52X6TlkhT1M5YW2JnsMOhcsWw+JACBuXLcf69s7tK9ra/35i976fr6+XKZ2x2V8H4DMw9NRPdBzGluf3vtT5s0P7/8dMJtM1NZ1A1bKgkSUuSTCY3UVFMiwe2iLQJMYkgZkNwo4QgGnAIna01wW5wQ+5MQA0eMACHlguCmFrPIxdYz9zLjPPKdshbJFIHzXHuqawUcsKU+7JCTuT3CR55CjpMHMlmIUyjGIV+njS2RAcFiiF0o65Bs+L0f0aJs9pMSc3xsNphoV10Sa89bIrShcvWvoZNj7+9e7u7jor+gzMyfPhkjsGB4NqNPr7Lw0d+rv7d+9075+dRtFRtCKWvw3AtiIcrQ+a7hazRWVErj1JnjJgyiIsRYAa9EFoC3KvFx6VG708ZC3Z0ScybA1GWdkTH/bKs7sicd+Vl8/boWcuH0vmQInBJKM3mYUxm4OZKcAsludAms7khC+n/p+XKDkNVej7ZIqKiXZ3JroTlQE9/hCu6l2Oi5etvL85k3/f8uXLc+fD+z8bn7EOwGfgrczOzgYKQd9dOwb2XfBPv3i4eaZUctkgWBN0d8LLAK9D5LkiyjEdIyVJqeFakT6jRe+SIIc8EBv9QIMbCHtguiSIvEbQsY55fsj+7hqRiliWRw9Hy9b5QW3jqBG8ONfSAU5eA6wb0PdNQk/nwQoaWMngwhwc5AWSoafclCNQUPOunfBYTfc2KCu4sneF9YErNvb3qO53Bupe8BmYkefHJcfL5WXDpcqP7376yb5nDvazrKnx+naebqHVxyM5R7dE+k1VAFQDULghbMFwCbAiPghhL1zREMyoew6wbRB0CJP2l9bojvMPMOVueX2+nfoxnPXCS/0sBiEvwMoVYSSy0BNZmNkiUKryUDkZDaRsx5eWYDdT4TKWTu2yrT9t8lw2SdKaMuW0BUgVHRe0dmL9kmXbl5W1LTdffXVdo/0MLYE6AJ+BgT+cSoUEl/rozqH967/4i0cwVshDESW+CGkR1eoWaAGpxG90FHNocdbCxTYhgxa4yMPKZAULLhGWVwELqJDCXkg+F8Swl1vk3Jrnlr39wLaYBhG2ePDtpKNgs6IdrnSts1JNXm8qBz1VgJ7IwZjNQyobfOOg8g1a9I5M0Am/n3+nZWFNrA3vueRNpYs7Oj+j9U9/vXt93Qs+A9PyDX3JgYGBgB6L3f7S5MTf/eCpJ937pic5GLFaQe08T08RIEoH8eiNWwZr8EBuawALeyH4XDBdR4U6uFHJQz6nNpS210vNGBzPmq9mQNBNbsjquTLMCfJ4q7ByJVgFSvsQQ/toREvn+u9k5NrNV+h//G9M5Ou6Sg4wfcIwYEp23bJVrmBptBXLoi3PrplMXP+xj32sHnU6tVf2mn/qFKfKa37d8/oLk8lksOJzP3hgfPTSf3ziMTY0m4CuaXYeRxSdGluK0JqQYXcjogVkd0qxjlrMVHZgUJmQA6BEJqGqCVWE6HFB8bohL2qA4HdDU0SYqsgJXWQ9SyZ4iYMmEACf/DhRircGypZmgVFYOpFDeWwWLFWEWNYhmQLPUWkClS2d+Pvpe3XLRLvbh6uX9Fq3XHplf4vH+856Lvi8Xh6vy8OPZbNLZ3Tt3h/veL7v4V0vsni1DKoIoDTufAdNW0knEDOhuSUoTSGoLSGITQEYHgmWLPI63dr0fjXgW8NpARL3wik8TCkmWbfAChUgW0QpnoY1nD2aduIkLIdw5dQKU+0vLz12olyOXc4BmTz4Mj0DlUpRaJvySJYJvyhizeIeLGtpe25JXtt66+bNdQB+XWbdK39pHYBfeYxe809MTEx41FjszybTiRU/P7j/2ul0Kjo5Pc2olWBB1+w/WpWHcalZIGcROwudh6ZqJCoKiWl231E7TMw16ng+iIhZVMMrtgYhR/wQG/wwgyo02RaVJwCWKTTFTg7Adt1wbYH/9lCQEo+oW5ALOrSpNCpjszCSeShlIn0IqIoUupsfgCnE5zUsrAw24APXbCld2Nr5N9XJya/Vc8Gv+bQ7b79wcHAwaEUjt++JT//tf/zqCffL05MowuQqcrKTfz3R4BA2KyZDSWHQGlzwLm6GHA3A9MrQSV+VhHCoZMhB01cyZE90DSYQPFIkiqxVEyxbhpnIw0xkoKfyQLJsi27UhDqcDkvcKKduZjxXXFPNciJknIdhK9bJEOCVJARVFX63G15JQEsorF/Uu1xsC0WeD0zOXH/hhRfWQ9BnaHXUAfgMDLxlWcLLY2MtTBB8aZndlinku8v5wqaSYUbihbwxmcmy8WRCKuu6OVHKCZlSgRfsc1YmkSoEcU6eTiJNGxt37cOuTuC5JAJawSNBCnogN4XAogFYAQWWbIeiKWX1SuFnXmtcw/YTjJXmCIOohgCWq6A6lUZxNA4xXYKiOSGvk8wynfLXWhUxUcEtl15hvW3dJf1NiuudAcbqjOgzMDffiJfMWuWlk8XqvT/Z+XzfT3ZuZzOGxiNBVOtLRuhRedbffHqatqIswQi6gNYg1LYIBL8LlkTAZwMvhYptMFzYyFmk5UxqclUderqA6nQaxkwOQrbEy4eoTpivaV614Ljrtr6rXcHESG7DVuPinctMk3dC83k8CHo9WOQN6A2BgNUaamBNwZCgMGuWWeaDy9sWsYCiDoqpzD+0trYWF3b39bNOdwQWOG1O97L182sjsOPIkZaqVQk2N7a8H5LcOVspV8bSKSWXy113eHpqZ7xcXJMvFVqnkkmQHnTBMFCBxQlOlDR2OaJ03EvmRC0bMWv9RSkTBEUE/C5ITQHITQGwkBu6S+D5IFLQOdkkOEmFEQd+MgzIEhdJMYsqCjNlVEZnYU6mIOQqcw3G53vjJM5hGBo8jHFm5u9d/ubZFkG9ZklDw676LKmPwGsxAkPJ5AVTZvkX337yF5Enhw6hzMv8LKBS4fP2RADM0z3U3cuvQG1thNjeAARVMCo5chSueCej07hBbjMbRIoywDIllCdTqE5neKmfqNkqcwalcGoa7g4HktjaXIqW294Cl570ChI8TOCebsTnR9fiTtPv8cyGID4Ya2jQOqMxoUH1yEzXRyampr7llWXTJQiVnra2Cca4inX9OAMjcDrz5wzc7hv3kqOjo21QVU+qVDIsj0eWFem2g0dGHslY1mafqnx8MpcO90+OmodmpqWJbAZ5TeOMZlUQ+IZQ6yrolPDO9SAlh5m8XIOYGAGVh9Ck5iCsiBuGS35FAD7hiNdSzjw3bfI6REMSeTs1sWhAiudhjMzCmE5z0Y6THUQWIS4qdXNZ0dCI92y4cnqJ27/pTT09e964b7v+ZL+rEaDwsxxr+OjzI0N/892nnvLvSidhqaqdEy1XuHDN8QDMRSzo91RD2xKAb1EzrKgfJqlakbCFU55kA/BpbKEUMS6ZsFIFmJNpWDM5WFkqMaJKAhLSIFIIWbW21CTnPTo6OZy4ZVHLTwsBWUWbP0jtCPVlLW1CxOWZDTc2POrzeIbSwxN3+VxMaw03Cy5KMlcqxY6OjvHf1fjXr3PyETiN2VMf2tdzBI7E4y2H9+yJuxvam4NtkT8qyKzlxSODyBUKN4wmEtG9EyM4kpqFAYGHyUBiGw5ZyyDFKlq0ogRFFnmpArElSSELXhliNAC5sxFiYwCWzKsb56xsHk5zAJZvNMc9ZC3UPecZ0yYiMGjcKwBX8PIUdJjDCRRHpmGmynaI3KlTJOudDq7WQ5+HgAozUbV0tKoeXL/sgtyNa9f/bTgv39nd3VAnh7yek+w8+O6yZS0bLed+fPdzT/Xd//KLbKqqQZBtoRsiNnKMc0C0RqPgni+Rl7wqpNWtUCJBTrriCnMcdJ0KBIf8dHID057nZCETqZJXK1C0iNZNWYM5noOWysOYyULMVcEqZLAKvPMZhclNvco9YWq6QmuIZ3cp7SMwuAURnS4vetra0R5pjAe8ngfWdXXDa7LxXCp+l8enZvqiiyfPg9d8zj5iHYDPgVe3f2SkNQ+4j8xOCEs7ej6SK5U/+uLE4fALg/uE/dNpFAwNGpGdqMTA0LlsJFUAibIClypxS9kgAQ9KHdEC9qmQO6JwtUdhNpLoh9Pnl8JxXN7OrjviAu+vkCUmCgidQyVHtHUoigKPwaCNJZAdGoM1muciHBJtelQbrGl8Q6q1UaQ65xJMLgcYECRc2rLI+q9veXt/t9//rgBj+8+B11O/xbN4BPJWZXV/Pv+Lf3no/sYdo8MgzgIBGqVw+Hw9xsS02/qa3Cu2JBEKCdtcvgiCItVMVHs1vIpdk0Q9qGEKgT21CyTRHFmSeX6XyIr63hnoJPVaqkAo61xgg84RnDag1WoFMjUyoXuiFJNuQIWABo8H3dFmXNXZbS5pa0v5Xa5vDI4O3rk40mpKrFRe27Gs7uWexfOydmuvYiqdA09zHtxiMpnsLKvej40W04un0rObnxk6HN0zfAQT+RRypm73E3XkrmhDEYn1TKEr2ngcS1yXGFjYx8sqxN4QV8wiL5YEPWzP1mZW12qOXymEzLszEQCTcpei8LaDejyD3MgUrENJmCXN3kQEAZqu254vlVsRG9sCyuQBk0VvMlwQiuKPb7q51Bdt+pvskSN1NvR5MKdfz0ccSSZX7Smnt3310Ydj+xIzfG6Tyci7BgkCJN6tyKkiIE4D1csqIpd19cTCYOtaeJ09D0k7QjmvBoCJEEXuNDeCOX9ShEz/ThVtwtWhJNd5Jr1n6KT3bJcZcgOVr1uTgzGVG9F6cVkM7V4/Lu1djlWdXYnVsbZHAi7liMs0v9rgdo+8nmNZ/+7XfgTqAPzaj+nr/o39/f0tmisYaGyNfPhAMvHR3SOHw7/q38UOJuKsQIxIReFiGHqVaostzpimTYcqigmEKRSmUw2jR4G6pgVigw9QZVsph2gdpMxTk8V7haexqAyJxENMi/cipc1DFUSuFV1KpGDunoaWKfBQM4XRuCdO7FICYPI2SH6TyqmocYRhocvlw3/ZdJ11Ve+yfV7DfEddGevqrMH0AAAgAElEQVR1n05v2AtQ/pdFIr//1MjAZ7799C/9I4U8REbCNiZ0YhCLAkQuQUkN7i1QmaxuGNBVAWIkAH9nDEZPgM9pDsA8BPzqDlpvRIik61EzFJlJEHMVVEbjKI8nwRIlex0QicORu6RkL9+YHSCmaxuGCY8ooSMQxJuXrsCVPcuT7Y3RrxvZ7DfLhUK2b3E91Pzq3szZ8ek6AJ8d72FBdzFbLHbkmPUHY9nM4hcG9m95ZuBA44H4DKrUYIGIJLx0iVjKds6VQsr0h3YRjWTsqHPa8ia4WyNgIS9nRlOumNcacxl6OxR9sklClBSJAJtENTgjmoS3BK7WoxVKMF+cQGkqCVEzudoXtVXj9ZNUSkXiIpSBJo1rCrsZBloUF95x8WW4ef0lsxET1/hUtc6GXtDsqJ9E+d94uXzvD5//1Yq7X9zOZg3dzqWSl0tazxLJPVLY2YLoiNPQ/K+4RMjtjQh2t6IalflaotzvsTKVpzq6gmlxsRlTFCApKhSNwZrOojQ4gcpEkjc44Vhby0Mfs9h4yJmiVVUDHkvAkoYorlp9Aa5cujzZ6nJ9A6XKl9sikdFTvZf6586+EagD8Nn3TvgdWZYl7ty584Q6PevWrdMZs+lQO/p3tDR1LInMasZdzwweWvvgju0YzqVRJtAli508Tv6WOb3KJj+RJKXT5FuK+eBuj0JoCcPwKdAoM0begNPucK6+eJ5xojIIDti0oTmtB0kohMtcUljt5UnkRmYgFCpwkQfMJTFtyU0yEMjKF8hj5p2eDERkGRuXrcBtb756usWlbG5g6u6z9BXVb+ssH4G8Za2ZqZYf++pD90cePrQfGa6LLEI0dM4wJlKVYAo8PExlSRSOJpOw6pOhdMXgXdIC3e9oOi9kp7STyrb6HKlukfeb13mFQGVwims7cwYFrUdaoQ5R0Vn/3JjVZQafDix2B7FlzTpctWp1ssXn/UZuaubLPW1tHHwty2I7d+4kRY/fOtatW2cy5hQtn+Xv63y8vYVMq/NxnH6nz0zdktIwbrBMM5a2oM9WiqiUC4j5Q6xRVjUpX3rA7/fHazdl7d2rJJcv//SRTPqPHnn515Fte17GWDEHg3r+UhciHtJidlNvAj9J4kBsGDoU6uISDUDsigIRL0wicxGDi6sQUC74FaYI18+0P0N5YO4xEyCTF0xGwL4EMkMTQLIAN+nTCgw6bxRj8cbjjMsBksdOYT4DXoFhQ2cnPrpp63SvK7CpQVXr5Ui/09n3xrlY3rJWH8xnHv3yfT+OPT89jjwDb8knU+SFWPvUx9cgLWaatqRhTrKpFsyQG3JvC+SOCCzXaYwHNSzhbEgBoiSDVQArnkfl8AzMsRSEQhWQeHjKbglBy6gWfnaENgRFxCKSau1egevXrEu2h0PfyBwDvnRa1rIaDeAtiXJZns5kLNUlI+oLWgFRlFm1Oh1SlAcYYySqVz/OshGoA/BZ8EIef/xxqSkeF2aiUXP37t3izR/98I1VTf9UqVqKHsxn9clMElq1ip6mFqEv0lxSS+bvtTWFX5wDYMtihw8f7lRb2z4+kJ79yI9feDryq0MHkNLtNUehX+qIQoBL7E8iW/Eif02HSj1LqWFDVwRyewMEl0y1D1yf1u4xWguOnXiguAdB+TQeriZ/2JHGc7oeiYezyBwagzmTgduiVosi19Y1qQ0cecB0bwLpWQswLAMKs3BBrBl/sPXG6RWBwKZm1V8H4LNgjp6LtzBVqazel0s/+uWf3B3bnUmhLDJOgFJIU1kAZ0GLusRr5E2q7+VgCQhRP6TeFqA5AKYs/Ml5lMk0eJmgLCqwshVURpIoH56GmCxDNRhMyVG0IrDmncuOSsuS4Rz2eHBF7zLcdMG62aWB8L+bqdSX2xzPt3ZnR1KpC3VZ/O7+mSnP4OSE6XG50RJpQKs/JEUVKS6K0ud/dOc371+9erVR22euvvrqkxfoL/yx62e+ihGoA/CrGKzX+qN33323uGHDBtnf2nFdWRGbX54YrW4/tE9u8wc/olerFyczaQxkkpjOZ3mutKcxhje1d2vrO5Z8zkwm/s+yZcsSx97TofHxDjRG/vhXA/0fuW/Hcw174tPQLQsyaUIzO+dKhJCariyFpxVLgOZXYLaH4F4Sg9zg48Qt3dRsQtYreMD0e7LeeRs1h+w1N6kYgzRVRG5gAvpYEi5a8rKIqmDy8DMj0olgGwME3JwlahlY4g/gD669Pn9prONvi/Hpeo/g13rinSff93IuuWpfYnbbdx5+IHYwl4ZGhief8444Dc03XeC66ZysTGVC1Oe3vQFSdxOMiAeMBGwWeHB+A4lliBJUSLBmiygemkZ1NAGpZEJmIgxqhmITpe3yP959ifTsGNepXtPahpsuvix5aVf3N8zhsS/39PT8Rs53bGwskvF7/2jn0OBfPz84II8kZiArEiKBAGKBILobGknU44WpQuEb63qWaqta2xRXVZ/KTUw8vH37du3WW289th/pAp+0ftpCR6AOwAsdudM4rwa8kY6OLYPJdEe5Wnl/jpktu8aO6P2TE0Iym+1IFfJioVxGSa+i4JA4WmQXNnZ0Wbdfu3Wow++/RWFszguu3U66XF5yqJC+93vPPrXm8UMHkNe5aCUPQ9fqe49t3yIbQIXEOGJ+eHvb+OajKQy6XrWLLoideQrHCTsmkYeRqaIwMAVtMAGlbEBSJF6zrBumXR/J26XRBkgNJCRouoYWUcYfbtxiXb9s1X7FqL4jEAjU64FP4R3UP/KbI3Dvof5Vw4XCtp8/80yMeBGk1sYMnTIrvCyPQtC8Rl0QeYRIowiRR+KGqNIdheavdeNe+MjWZCRVQ4Q1nUPxwDj0qSxEk/TYGQxodtiZOBCUItLtygA6vIKIm9asxU0XX7preajp5hBjQ8ffScGyLhwuFe/+6iMPdj9z6CDLGDo3oCmw7pJFNLiDCLo9RjQQHF3e0mKubuuQwrI86ff57pLBRtjM7KN1IF74+z3dM+sAfLoj+CrOrwGvr2PxlmQp31EoFG/rn423HZkcb53OZ8WRZByJchnJYgFlElYnBRzLhEaSeAJDhInYumQ5/nDLDblmVb1OZuzZ4y9vWVZgVCs/+oPtz178s5d+jelS0SaZHNNo/NhzqJkDKVEh6oO3txXKokbOhtaMKkTe0OFVPOAJPirldRuAB+JQSroNwBK4Ny6YVKNM9cl2HsySZVT0Kpog4vY3X4ubV62b9QvWNWqdCX16L+E8Pfs7/dtXDecr27ZtfyE2TlEkUoxzAJgiQbSmSNhCEWVIjKGia9A8Mnw9LRyAq15eM3Bah63PDsgVwJzIcAA2EwVejkREMN2q2sTImoFMqRnK/1oWGlQ3PnrlVdiy9qLtXZJrE2Mse/zNFC3rsrFq5eF/ffBn/l8ODiDHs9kUYapyIqVpSvCIIiIeNxpdbixqiKAj3GB0dXROuCVhvCfS8F2/qI6WJmceqQPxab3qBZ18uvNrQRc9H08iYlUO2JrWtI7JdPq28Uy67cDgYOuedEIcnY0jVy7yNoRUHgSSquPMYirnMXi9IoWDI0zAuzdchvddemUqDHa9R1GePwEANyRgPfTA3l0bvvvLx3GkYIev5wVgDahQNizihccBYMMjOgBsk0JOB4OlgoHCIQLgGSgF8oBF7gFTDpiAl/LHdpSPykIkVE0dbYoL773okvKNK9b+MKZIf+X1eifOxzlTf+bTG4E7X3561ZFCZdvjO3bGJgt5MJUA2IDMZVMdAOYdkSQehakaGnQvAXAr5O5GVDzETTi9g1IrtH7EkgFtJInSwQmwdBmKqHAA1o4FYIo2Ub2xUzvc5gvgLzbfgMuWrtghA9cFGUueAIAvma5WH/zOLx8L/3zXi0iSqpxlQOJdkYifITn19gbIn/fJMhp9frQ1RhHxeIwrli6biHn9463B0HdDEEf9g4MPsZUr64St03vtp3x2HYBPeagW9kHyen0+n7R6y7U35grlT46kZ2M7Dw60DiUT4sDkGGa0CjSnYcJczsgp66GwmGkQSUPgDM1mWcbtm6/Xru1dfm/IwF+63e7hEwCwZ1bXP/XLsSN/+J1HHonsSc9wFuZ8L1rSGSpmFWbQBW9PK5SuJug+u0ORRB4wlUgscJYQ6FOuK39oCpUDU1DzOkRZhC7ZTRwIgHl4nOMv6UmTRKCJxYEArutZnrgw0PSu/Oc//9St99xTz1MtbPqd12f976cfXzVcLW17+uVdsZlSEYIic6KVJBLhz7LLgyyKwBAHATwEbfoU+HrbIC+JoOQWHONw4cPIy4xokhc0lA/PoHxwEnJehyK7eAj8WADmYh+mTWSkioXlsRb81cbrk6s7F/1rQMDnGWO/1TawVLIWxVH+4rb9e27+7lNPKKPVEkpU3cAE3guYmp0QuYsraXFj1+6BTPXJXknG2s5Oqi821nUtmejw+qfDvsAX+r/3vZ/Hvd56fnjhr/2Uz1zg1nrK33/efrAWbtZbWraki8WO2UzqA0dmpi/eOzaC3aPDiGsVFJhpi2MQJbNWmkOlEMQm5v16yVIX+SbhFQSsjsZw+9YbM73+wPve6/I+8oRN5Dz+YKOZcveuQvxH/7Ft25rnxoe4As+8AGwKqOgVGF7ZBuAlTdADCkxLh2SYsEixaoGzhANwBSgMTqG8bxJyToMkk9A81SebXJmLh7iJwCUIqBIIMwLgIDZ2LJmKFPRrPvGOd+w7bydR/cFPawT+4fGHVx3WS9ue39MfS1LrQWpDaOiclEiRJmJHUJhWNG2Q1AmAAy74e1shLm5AycMgLXTyO3fOSwCJYZWroHRoGqWBSaglE4ri5gCsQ7O7HPEiApuAxT1Xy8JFi7rwyTdterm7MfKuoMs1eILeKNgISN8vl7cMZdPfv3Pbg4Ed0+NIVStQBBkqdScjtjcH4KM9helZKfROF6Xwe4vby8leq1tasaS5+YWwz/edJo93NDc68XBvb2/ltF5C/eSTjsACt9b6qJ5sBCzLknMwri+bekd/OnPbWDLZvuvg/pZ9Y6PiVC6LPKntUImuwHgpwtGuQ3awlwu+O4FfnYkQTBNNsgvXrV6jv33DpT/q9QX/3MPY2Hz3ELcs/67M7KPffODnlzx95BBE5cQAbJf6SihXyjDdItzdzVB7mmGEVJgUxuIAbIsELOQgAJY1hsLgNEr9E5Cz1d8AYLLQefkSWf2Ug+O1mUC714fLm9un20xs/tO331oX4ljI4NfPwecev3/V4Upl2459+2OZqsbLgZiucw+YAzCzuCY5ASQx8qlkyAq64V/aCmFRGCWXLd96Wgcp0BGIZysoDkyiPDAFtWxBVlxcntJk+lz+l3c5IkEQnnJi2NDVjU++6drnV8dimxljufnuo2pZ66aq2iN3Pf14w09f3o4ZjTooSVAs6qCkwzCp35ldZ0yGLhkdXL8dFsqmBdUAwqKMReEwlrW0GH0dnZPLWtqmQg3BL4w88cx99ZKl05oBdQB+/Ybvt7/5jjvuEN7/J3/i93jU76RLhYt+snt3y8HEjDg0NYGZQp7nfRhva2YTLTjhwmEa24JVfJXYEo2OYLxsmuhyB/ChLVvSa5ta3vdHb3vHo0888cS8dXyjltVwqJB56Ov/ed+GZ48MQFLkEw8BeaiijHK5BEMROPtTXdoMI+zmVA5Jp1rgheeAuQdsCCgemkKpfxJytgKRCGV2W1W+uZEovi0WQh4wYEoMrR4vLo42TzcWrc2fue22OgD/LifwG+hadzx876ojur7txYGBWE7TeHtOaBoHuIplQKd+2gTK5AxSiR6tw5AbvhoAq/YcXejBDVcS/6BAdq6C4oEJVA5NQ61YkGQVFd4thaDWEaZx8r/EyiaG9IYlPfjLN127fZGqbg0Gg7+V/63dF4Wh86LxhYcP7HnH1x5/WJnQKrAM8t5F6KJmR5i4BC39P4nPCRBpD2LUxYz4GMQRsTXcG1QFSyKN2NDdi0VN0fujk7O/9/K//3tp6Xvfa9WBeKEzYf7zFj67Xvt7Oee/ce/evYq7o2PrgdTs4mQ29d+nkomuB/v3YqZUQBUmNF4ra9MyuNVNMEdkEKf93xxRikLSvOk3eH44LIhYE2nSbnnzxnsuW9Tz51HG5iUl0T00Let554vZ1Bf+9b6fdr40OQZ5PgCmxSjK0LUKDFWAu6sJUk8TjBABsMkBmKQiFxqFswFYRGFgEtX9BMAat74N0c5zkVA96eRyD1igvsAW18xt83hxWVPrdJNmbP7krXUAPucXxhl6gDsevn/ViFHa9uLBgViW2mDSXNY1rlVOkRfSg6Y2fzwEbZi8paYZtAFY6oqg5CJ8XGj8x4lhEQAzCciWOQCXB6fgrjKIsoqyoUMgMWq+2J0QNI9K2TnqVe0d+PTGraMdDZG/nD106Mcr5yFHURj63rK+ZX929vtffui+wJ7ZGRQ1AnaB1xlzcRza6fmz2NcjuVgblE0YRIZ05DB5bpgJ6Aw3oMnnP+ITpX94yxVXGL2+8HTxyJEH5ruHM/SKz/nL1gH4NXiFlO+NRqNyzyWXvGU8k/7kS1Pjzb/cv7fxSDLhShSpP5EjM3fctbjlWyvA578j7/do8wP6HTW6bxYVbOldqr1l9YX/dkn74s8yxuZkKI+/fcuaDcR1793PTI1v+qef/FgcyWdPCsAkd8ULFzwi3F1RLkmpB1Te/UUkxSDJbuzwqg9HklI0BOQPTsAYmIaaM7jXr1OdIjVkIAB2OsHQRlgmn18S0OH24qqO7ukWQbj2v259695Xfe36CfUR+L+lPxSCHta0bTv37Y+lKxWbz8AB2C77IeOS8sCKJfGa9AqxoP0yfEvbofREUXELnLTFI1ULOHgvbQaejyUALjgA7KkQACscgKkmuXbUaunpR1XDwOJwA/6frW81lra0bavmCu/ubmjIzHcbhWp1/ZShPfz1xx9u2HagHykuusPVZOf14WuXtp+uFumyjWPyll2SVFnZ0jZ51aoLhAtj7fGOQPDzB5555ufxeLxO0FrAfDjRKQvYWV+jK79BvobKi4oGtk6X8h1D8ZkP7B0bufjX48PYn5hBWq/y9nunM8i0abSrbrz/0jfpVy1Zemd3MHwHY2x6vuGzrEzDhK5u+9n+PRfeue0RzFbLPM8172GRGIAJyy/B19sCsbOB10ISC1PiK5gAeAEviwMwIFZtADYHZ6DkbSUuyvMSAFOdMa/HNAyIksQBGATAHh+2LFk23amoWz745k1vuG5IO3bskN1u9ymM6l7sPU3zYyVWgv53/FEqlaz169drC3iz58wpRMIa1ivbnt+7N0b19UyWYBG736m75QBMRCQ4AKxXoftkeJa2wdXTZNcBny4AE8CLClhBQ/HQJMoHJ6AWLUhUcsdDwicGd80weN3uH2/chKtWrX1RKpQ2twcCs/MNPoWhx/XsFx/Zv+cdP3zuKXm8UoJOTOgFGg+0LmmNNvkDWBQI4+LOLqzp7HphcVPTdxpkdWy0v//Bujd8+kvhFDaB07/IG/UbqGNR2sDbctXSp/bNTDX/cu+ull8PD4lU9K+T5ygK0EmJamEGNF+akiRjdSSKj2+5Pr0iGP7gZ/7kEw9+7WtfO+HGSRt77+rV7xos5b9w1zNPdm47uA9FXTu5mjP1DRZMWGEXAsvaILYGUVUYB0YiSZEFv6DbrwFw0bI94KE41KJpy1byoSEhfPK9KQdOcn2kEW3LZFJLwptXXVTYtGz53y9SPP+n4SSW/9k6t0jfm3Jmx4LtzMyMuWrVKrfSGL7RghjUDMMQKBlHkQ6KEMKwypqGiqZB0zSUDQ3TmQxMzW5ZRyQhOqiGmmsMCyJkWYYgC5BFmTNeSceBDir3kgUZQZcKlyBDlkWossw/JwGSZRiZ2UOHfjb5gx+U4n19POexcuVKvJGA+d+efnzVoUpp29O7dsWmykUIssyFOAiAiV9RIxhSrpQ8YE3XYXhFuLpboPY2QfcrYNbCPWBa+PQf8SykqoXycBzF/eMQMxVbiIPuwzpxhR2tP5KhvnFZH9676YaRxW7vJ4d27vzRfEYThaG/lcls3p9Nfv/rjz4Y3D07gwr12H6Vmw9nYju0bMoRQxKhVHV0+oO4uHeZ8ebVF0yuiMSmAmBfePDee39266231muGT2MTqgPwAgfvlltuEb/yla94Z1zqd0dm4zc9tvslPDc0gPFCHgaJvtPmSGUGxCRe4DVoMfhVFy7v7NJuu2LjPRdEmv7ce5L8r5WyQjN+6wdPDu7fdNfTj4sHsyneIvBkL5mZDFWVgcV8CBD5JOrjzRJo45AFiatoLej+nT7CUlZH9uA4zCOzUEkNiIBEotIrQOAAbJNQyF0mz5j+v0mQ8f7Lrqxc27v8ay2i8neBQOA3NK8XOJyv22nHgu26XM5Kr13rq6rq1TO53DONTU1XGUCkrGl6vlw2UvlsIKiqHxUl2V/UKmahUGLk7cyBr6GhUqnwECSVxWQqmt1RhwOw/S4oPUBlXPawMZ7P42xeyh2adj9niijIkgQ/9aAVJCgEwJIMRZbhkmSxWqlm940cvrOruTnr8/lEjywj7PGLftWdHRse/tlf/8EflDZu3Cj09fVxYK4d5xJAf2f706sOVyvbHtuxMzZSzIE5dcAUDzJoXjuRIcEixTlaqzp0lcHVVSMjuoidNScNuaAJRCWFogjJFKFNpDgAs3geEjXjpnpf3qDztw8ejjZNrAhH8MEtNxqXd3ZtawbewxhLz3cfRctqf3F68n9995e/eOdTo4eVtKnD5fBJTvXej5WUpb/rNEaaDsUE2oMhXNzdg6uWrkBfU/NOryj9fURR7qu3OzzV0f3tz9UBeAFjNzAwoDb29Fw3nU0vfnLo4H/fPz7etZPAt1xAlZMbBMimbcFSsf+CAIxzJiw0KSpuXLNOu3HV2n+7IBKdN/9Lntai1WvfNVYp/uMPn/ll6y8O7EHG0k8JgDWfBKEjDF93DCzosov2qRxCEjkz1C6LOvWjxrjknliyghzJ742moFSpFzCDLtr1iQTAvBaTNhsihDsJsXbVg49s3JS4KNb+nnv+5V+evOOOO86azi3He7SL1671eTyeq2fSaQ62Ba0SSswm/Kamv2c4Pn2/xx96u6wqkVypZGTLZStTyEmVSqWjapooaxXkyiXueREBqKprqOo618Om3LgdrpccnoA59y7o3VCDeLt21LRbP/L2j8xm1FPonzZ9UYJMf6dyMN51ili/5AWTFqhFZTCjTQGf7lEU5lVdCHn9oiKI2T0jh+/UTT0b9vnFS7uWI+jzw0Mt7jxBUQYyM4nE/ZN79pSampq453y2gvL9/f2rBsv5bfc/+0xsIJcEZMlWiKKIg6OvTvOOOhBRYwRqEKJJJpRFUbiWt8Bs9PLOYAs9aHMlJ9Kg8WcykChwJSxjPAWxYguhUxemeQEYQMTlwea+C/DO9ZdNtKnqnw/v3n3PfF7wHXfcIW24+eZNO6fGf/jAvt2BCa0I9VUC8LH3wo093u+bjDtarzoikoKLOjpx3br1WByJ/qxVM2977LHHCvWmDgubJXUAfpXjRt7O2o0b3zqZy35qIDHV/L1nftU4FJ92FQwdZQJbquHTDQi6xdVouI7Gq7xG7ePk8XSpbnxo8/XaVV09d3a4PH87X/43mUwG06ryw2fHRzd994lfiIfTs2CSwDf2kx2kx2w2eCB2N0LuCIN5ZLsrDAkCSJK90S/g/rn6DwHwTBGZA+OwxlJQdSpBsoU4ah4wEbKooxLVPxIBi4ChyxvAx7a8ZWppIHzN6sbGs0KIg947Dx+HwzdqohgqwCRANSbTqZBqWe/ZPz7y80gg9NaKaUbiqaRQKBZaC9VqPFMsR6n7LIWWC9UqCtUyssUiSlrVBllF5AYOcQW4x0EN3B0xFgoBUhN3LgdaK1vjlWuO98sZe3Ynn7k+sk4/WR5GJBa9bmcrakxYYgBzD1kQ4VIViCS4IopwyQo8igpVFIkROypLou6WFdbrb4TP5Ybf40EsFBYVQcrMFgrfCIf8Ob/XI3Z5/KJqCWkjlbq/sbGxeDZ5Q4+PjKwaLeS3/eipJ2N7U9O8GYNIdcC8/M3gaSKJlObIYKbSH82AJhi8D7Crr5Xro1vzhIhPZUnwKgBBQIlq6kWFVwFUDk2heiQOlnPCQfPQMzjxi0LIioqlngB+7/I3G5d0LdnmU13vbmBsXjLWc4eG1x3IJ7fd9fSTocFiFlJtIZ7KDR//GW7gUcmSxEsnqUGLoOloVFSsXdKNle2LDl+7tPf/i3hDRxpF8UHG2BuaU7CQIXylc+oA/EojdNzvrZkZ33gg+L3t40duevjFF/Dc6AioxpCHAEnNijZRTYdpUVN6CQK3cBcAYeT9kBpOuBH/7eZbs8tDkfd/+uMfP2H+94F//mf1TR/7/Xfujs/8449ffrHl8YP7ka9WoTBwxvHJrk4quIgFIC6NAc1eWOQyOZJ4lP9ZaAKbTyzaQyZyyB6cgDWRhkIALIs8RH8sAEvkA1OoXiLJTaDLF8CfvOUdM6uDTZs6fOrvvA74WC/3nnvuMTe95z3uFT3Lrs+VC+2FQv7DeZihRKmop4oF61AiLpfLpdZcuRwvlErRQqUi5CpllKpVSIrCNb7JqyVvViNw5SFk8iyoWTvVg5Ln6rSiO26m8JpNGptjWOh2RyuHt1qrGee5Rsfgoa46x7DrCdjpRdhfYef35oT/HbYtRSw4KHPPmcGtqhBE+2ceXSQ2LHyqGw0+HwJuj+WS5bGA36f73V62tCEoeiyWMXXjW9Fo4+iBl/c9+OK2baW+vj5hyZIlZ5TotSuZXD1UKGz73mOPNr0UH0OV5h0BMCmukRAH5c41SoNQhEAk64cDs9wWhkoA3BywQ9ALPGj8KA2QI+ASZbgrgD4UR2VwCmaqSDV4YNI8WzC9U9pTVBcaqyauWdyNm9ZvmOxuaf4f2x957MfXX399tb+/X+7r69MYO8+vi/EAACAASURBVIqyhzPFSwayqQe+8thDDXtmp2BZp+PB072RlrTdJ5laM9KVJBNwQUBvtKn8x9dem+gIx3a63IXbmlhTfoFDdd6eVgfgV/Hqd3z1qzLe9+63D09N/L+/PHig47GXf4085d8kyaH7292DKEdHBAu7zYAJgfJAvOOPHYIlD6fmsQhOjtiyBZFtGUq7NJ9vqjcvXYUPbt6airmVzVGm7Dz+dh944AF1zeVXvj2B6icf2/vy6vtfflkcK1DpE12TfC8nDkbfXdvonXJA2iCgCNziV5a2Qgsp0C3drtGlz1PxoONtzTdMtbAnBwtHQo/3QCWPguQmDyaQH4nDSOYh6rYSD4WaudNmmtAJX6jcmAwWInyAYVU0hj+58e2Tyz3+6xrU1x+Aa4Bbeqpkdd7cqWpB302SooaTxaL+5IEhI51L+7qaoh8pVkqR6cRMS6pcYslSAYVKBWO5DIpk7KgqePvIKm3hvP0FGJW7kEVh/885bICkEbDfNeXAawVp9keO/tsplzmmiu1YY8o+yybM2aBsX9NGYOeTnAx3zFl2wt2eX/zH/E04pTY8Hsu/r5Z4IKEGmicUzSHv2C3LcEsSzyeT19we8MErK1Y4EJx0qa7Z/vHRf29uiORWtCxSon5funR45H4C5FtuuUX4XYeqpyqV1YP5/MNff/A/W7bHJ1CACVEziITG+Qa6KEDQqB8vearUqtDi899q8EJd3gq1MwpTJCUpmqDkkNrdkeaiEU604WRrg+reebmRKEPWBRhTGVSHpmFOZiCWdL4WqCNYrRTIXkc2N5q6NUFW4C5V0SkpuO7Ci4xrLtywuyUQ/J+ueOEZ2SVcpvjdDzHGSrV7mCiVOgcSqc//cMeztzw9PSwXctl5G7HMWWp8CghgjjAQnz7kTPBKBRG6YctlUkSNIic0nbSKhgZFwVtXrcbKRUtGuxd1/Vl1d/9P3+jM+lcBF6f00ToAn9IwAQS+4fe//6274xOf2rZ315rtg4elmVwBgkQiEkc3zWM3SF5k4AifE8uSZjEpPdkdehkHZom6HVEpDi1E2psN6uVpvxbK7f3plZuw+aL1GUUrbW33BJ879nZJdKOzs+vmSb38qafHh9fc9+IODMzM0FdwVNNMqjN0PB5a1OTcOqFMIl9Rwb/WIMDT1QJ3VzPKLhFVkrEjj4Cr8dBmM78HYNdS2i3dSORdZCKqTtkGef+GpkPaPopyIgO9TOa/rX1tt2izFcAIgIkoJgsKX9whVcElnZ2VD1517X/0Ke6/9nq9k6f4ihb0sampKa+7sfGthiiGs4ZWmUgmfLqmf6RkaOGp5Ky+dyZlJQt5qVQptadLBRbPJFHUNJtFa1mo1owpysEeH+s4ltFyHIgeD7onuvkTL87fLOx8pRrVky1wB7KdSx+dudw+c9iwxwO+LRhhh8AJKFR68wKDz+OGIkuWS1HGWgMhfVFDVPIwMROfnLizJdqY37D6AqUjEk3n4gd+9tRPnqp0dHQITU1N5uu5YRcKhZb9hdxnv/n4w7/3XGJaTZAnWjUg0+1LpDtOISIdjICY1iNXhTJR8ghQu1sR6G2H4TZ4lyQiLUjEOCeDx4lo0M9qOhrzTT7i/dvhfxEWlfzlq9DHkmBDCUjpIme/G2T0OK/VNn75hmLvEwIDGekuHVgRjeHWK6/Ghs7F94crlT9TTLYxW/V9r6mJzXmeVi4X7U/m/vq+wX1/+OPBXXI6neHvad6DUj90bVHinAwSJKF/U5qIjBSJL/+js6AmFsTLlCwgpniwYdlyffOatS8vb4h8PvGt/v9c/7E3dnnbgjaaeU6qA/ApjObdd9+tXHbjjTeO5NKffmjXixf9avAAxvN5sqe5mvHJQszETOVyk46yFeVAeX0sORu6yRc9V+WhjxGYEUmEDG7a3CQZn73ubbh82Yo0q1a2Nno8v9F+cHZ2NlDxeO7un5647se/fh4vjAwjWyWhAWIvk8w7AZtgk3XoDuxkIffQuSwdkawW+eFb1AylOcz1qakEhkJ0BIYEMlSwcTILn6wP2pA4AAsSB32+OUOEXqyAPX8ElXQepqbzZuOUf6tZ+LTJ08bDBXqYwDVzI6qKTX195ZvXrPvf66LNX2SMpU7hFZ3yR8jbnZmZEUZHR83Fixcrscsue/f/lUn401y5FBzNJLXxVEKaSSXbk4Ucm81mkaqaqBg6sqUC7zJDyl20+XCRfXqWmsd5ynfwBvugaTOvicdNxLqA2w2fKCKouokAZMmiMhYNB/Wetjap0ePLzCTid3ZFY/m+jk416PGmhHjyZyMjI1zw/7UGYyudDu/IpP7yp7t2/rdtw4OuKa0KwQRkw27CQFrMlqHzdcAr4GoArDJIHVGEezugN5IHSE3uGRRJ5pPV0HUOjLzL2EmUsuxAk2102oQrAaiaQDwP63AcxmQapuOBc4+Tyu7tIMScPrwu2pEl2hMaJBlX9q7AtStWji9piP5Vm2k++dxLL40fKxFp5a3YaCH1Nw8cOfDRb+58Sk4UCicFYLoWGQAUX6Zr0xhw8KeIvGVCPokMHt2vbInoDAVxeXcPrl618tddTbHPPXvPfffXy5NObZ3XAfgVxolqfWer1beNFwuf/uXBfRf9dPtzGClkYUg225m3KjhJrR3ZzDSRNUqnyiJEWebydqyig2kGx0RemsNb/9mhQFrUMhMQ9gfwxRturlzYvuherVr+ZIPbPVK7XSqD+uxnPxs+4lUefuHQgYt+sXsXJssl6BTK5epWJgzB5ADMy1d4Yb1t6fO2a2RZexRIK5vhbomA+d28jyjlDKkNIoWKicBF+8x8BjRZw7Wm5uRpC4LsnEO5NoZqKgdzxzC0XMnuSUoGhwPANUuaPy/vTmNb3zFFxa2XX1HevHzlv/b5Q3/PGJtXfODUpjhAoEuf7ezsVM1g8KZktRw+NDFeTWRSHlPyfKxULfdNpWcxmppFvJhFIp9D0dRRpXpbxxPkwn1OaNDeWG0P2BH0O9VbecN9znKEve1otmnPFYt60doRFpfLw3PIfipzUl1WyOUZ6wiFjd7WdimoelJBt/KNxlBD2c1YVs7kX1MwtiyroX9m6tOPDez/+Pd2POuaNEkKVYTCmx7YLf8oK0+pD26fOumgqszAmoIIdbfBWOS1Q/ywuxQRV8HgCnE8Jm0n9E9ycNlZJ01AuWYiPUo5DcbYLIrDUxDSNm+JvHDua9L3GRY3gnmDEmYbyrR26b6bZRWXLFpibF67fldrKPr3mQP99x1ruNx+++3yp7/wj1u3z05899+eeChwOJXi557EigZkkV/D0nQIul0WSPOeCIFEIjvJyRSXhqJraHW58JYNF+PqtRf+utkd/FwTUC9POoXVXgfgVwZg30il9B+/Hht9693PPo0XJ8dQpkVB7F2eHzt5y27FAF9EVa8MJeiDS1Fg5ErQc0Wgqs9ZpzwvzBsfUPzHgEdS0NrYpP3lmzfde0Vb1xd/+tN7dtWo/ocPH3apsdgNQ4npRfft3/XH+8ZHu4ZmZqAJlHMmvVv7u6gGhestcyIOOBjTC6em94ZLghL2Q17bDjns4+xtAmbaACgfRjspATCvDJpnlhAg8TIrAm2y2UWJe/PU+Fss6ChNJ6HvGodRrPKvIM+bh9j45nJ0w6E+rRWSCDQtLA834kObtiRWNja95/s3vv3JO07SdOKV5jcxl1tWrXI3hQM3lhkLjMSnXVXD+shMsRAemBjXk8WcODabbk/msixL7GStgqJjnNSiBURAoaGk55sL5TnPTblu8trP50VEU8shXNtuGzcobS+KnCk7nG3n+92iiAa3F0FZRdQXQMjjs7pi0bGOxhhCqivt87i/0dUQrbhgZCYPHLp/cnKydDoNAO7YuFF6/09/dNWuePwHX9n2UOOhUo6z8GW6H41SHzq9WBt8HODjUWlKBwXcCHTGYK6McICuGca0tvjf6Wf0vK+gFc1zuhQnI81lzrcWoFQtGIks8sPTEIezdtUEedMUTSJD3DA5KYwAv6xVeXpKVBWeshLLFSz2+HHTJW/CBYt6HmnJ52/t7u7+DVZ0vFpd359NPvpPP783tHt6mq+3E1nR9G4MQYAr5IXsdaFcLELPF7loCG9QQe/vJCJ6vGmMKMMsleA2Daxsa8O7rtqIdR1dP/Mns+9raqqTsl5pjzqf945XGhvuOTWvXXvz3rGRf9jWv6vzyYEDXGOVmtQzU4OpEznBrr+c76B8U1lhMBp9CDRHoUJAfjyOajLLC9xpkXFPkqxqXhzLeO40pHrQ09qRXd8QefdfbNr6cC3OTXnfrp5l7xgtl/5i5/Chprt2PN04kpxViehhCSIPBdMC5lY9Wek6kWrIM7FZrswyUSWDP+SBuzUCcVkTBLfCwZGXwlBemgOwDZh2N/ETHzUA5t2MeIidSlgYVJNBSJZQGJmCMZDg5R3cuKg1nSB6GvfGCbxNQJF5ns3PRFzZ1YsPb9o63aa4r2lR1f5XfEnHfeBYbxfB4A0TxXyHoVU/mCoXQwOT4xhNJNqnijk2mclwLzdZKKJCOT0nRUBPy++MvCReFmQbSXaOm8KI9Jx2fow2VRJwOJ8XEeU1+fPPTRMbfGmMKEpgF1nV/m1z+shoUUSJk7giHjdiwSCafQGru6VlbFlTM4KSlHbL0rdD/sComMw8cDoh6pxVWbE/k//FVx5+sHn7xAjyjDpvAaxCYiYGZyEzSeJhdPKACQS5UalK8DY3wLqoGZJL5fOXkyt5H127mYFNUpx/fdhjQpEnexQop8tZxAaDVaygMpUC+uPQ8yVORBQpJURLloxgquOmBiWlij3PiJkuk5eq4f9n782DLLvKO8HfXd+aL1/uWZlZWfsilTa0IKEFSSCQJQQMIMAYG7exYybsmI6Jju7Gxp6J6D+mAbvdPeGOCcdER49n7GZpyyAWbWABQhQSCO1r7WtmVu7re/mWu878vnNuVqqU+bKUqURSVV6iUC357nvv3HPOd77v+y1NEXDV5m24eseuM9du7vvS9LMvf/vuu+9e8O2txPENR0qzD/0fD32n9eeDA+pctMQexY9OZHi2q4hcVwvqXg3zY1MwqNTlMcEgZ7/B95MAbCOs1+EgRrPj4sa9e/GR91x3+qrunn/zs3+6//sbpejGO9jFvHesuLfHcZx9cm76W4+/9Pzdj778gn2mWkFEWTkGmtCDH3oLvcBzb5aAWLhogmIG1uZ2ZIvNMEs1lI4PIZguyYJPep+yGXBRcxEGAdpSOVy1fc90G6wPfe2eexbQz/FkXJhtju/71ZlTdz747K+w/+RxlDxPZxwMnszUeJrWKrMhgwbBUlxQLC/FiHIOjJ4WuH1tMLoLwvGjHjOzAKGp6FK19Lt4FG4QgGUT4qZEag03XdMUf1GMzKF0eAAYLovQgRwGtJoT76uyYCUcQcAHM80O28Enr34fPnvDzaM9TupDKcN4UxQkAqqslvaPzRlB8+mZqZQVRV88NjHWPjI2tmmsPGecGhvF0Ow0ylGEulhQKJNyNTwamb3wX+VYRbiVqE3xl4ye6ltzM2Wmx8z4Yl5ESnRFZ0vJ/FlIiemnS5QxA7DylfY1HsIwiUWmzkWAlGWi4DjYXGwRF55NTU1xf3f3cDGTn8hnU3/XV2ytN8epWW964gfd3d3zKy7cRT9QrtevGDfNR7/+i8c7f/D8rzFjRioQeoqdwLlP0RJWfxhMWaJOUOCZ1gKiazchVcgBrq2eudZ2F2zHeTx4yYC101ACgCRwixWBaLaK+NUJVMdnYFTqIpzCAEwgI9WzXMtCQFS9RxS1Dct1EJmxZPAFy8buzu7wE++59pUr+rZ/LR4a+u6uXbskCMfVuP+V8ti///uf//SzPzh5xOHBYckkgWhmfr6OHPLbumBmHVQnZ+EPz8Ca9WH6nOuNS+z8V9LpmEiQUbUpl8eHL70ivPuKa17syxa/0upKKXr1XKg387DfhT97HlPoXfit3oKPzPLlDJA/mDIeenno9I3PnToh2qpUtCEgIoh8+AZLr2/MgBJkqvR+imk4/R1w+jqUveDQJIKTozDnqgII8SRL4I7OI7Ap/RhmlO2pHG649MqZXjf9W//2llsWwFcDs7OtM3H8z99/+ZlrfvjiMxir1DWCUok5cDMxKaBBig/BUWZKgqIwUImK5obTmoe9vRNRdwFmnnq3qvck7TsNKuKCYqbiK8feJa8EBQ2fylmRKP7w9Smu6oEpzL12EsaMLxkAOcUs2Yk2dqiAKcy0WZZjkOP23J/K4Iu3frh2x+7Lv9USuX+RyxnnhYDms8L4eHrv3R/99Ixf/dcD5dnCa8ODGJmZ7Ds6NmaMzsygEvrCjeZHY27LQxQPAp7BMruiXSUuMKqfqTDNDLbyx4TVozm3iTyJVDDegvm2cItzM6pGCNa38n1Xea8EBSymGnrceOBShxbRt5bDoPRPeUjTCl+qbq3ASdJ+IVjJAHIawNXX1o62QnO8p71tcE93H/qbW+eKmdx/fP6xx+5ra2sT/eHzAW2V6/XLy47z6CMvv9z1X370IKadWFpCsR9Jq4QPlmvGYwWJ1R/ygQnGovxiPoP4uh6k25qBbEokWhfaKAl1awUQnqKFqbmUVID4e2ln1EMYR+dQHhxDNFmCK7aAQJ28W2pB246ildUIYIyVmYRLIXUg9ny0OA4+vu8KfOKG217cns5/9bUXnr2fY1IqlTqPl0pf/sErz//J11993mWpfakALNir0ECtzYGzowPZ7hagHsA/Myu/4lJd3KCWu/h9QlaIqNam21ZZ0ghbO/DZ62/B+3bu+UGXbXzOMIzKKqfXBf+yt3TvuFBGK45jZwC4+/FnX9j6zef3/8mkX989xeyXG3WskI+EbxBFSbFzKbEJWEEBqORvHBtmykG8pYj05k6YhRyC+RoqR84Ag5OghRI3/brQWLgPaNNsW6EuN6VyuOvq62d2NuV+63NXXisBmJxf5+rLP/XS8ZNfffzwq/2HJ8dFa1r4piLsoEpokkmHBFTxz65a7KJ9GyHOOsj0t8Pe0ga/Oa3fWweZhVKhOhTwVyAhcpkArKkosvmKt68CsrglH9HJCVSOD8Os8TNw01AbrpS5dS+YmTrHkNlHzjJxZXsX/vjDH5vc29T2qU1NmV8wYV5uTgl39/hxA/v2ubXe7rtfO32qL2WZXxwrlfYdGR3BickxDM9MoxQRuczsXP0SLicFMHgaIA0Kb9ycFChbBZEF2tYSWHe1tarNVYHM37icZD4sANBfr1zF78bxFaUr/oGbbbKha/SbjN3i255LbVqiBLogtMGPpdsKChul5+fiVkCscQe6PPo60rJiwSz0DxMkv2RZycFE01iktiKnFKqaqcavgHmoeqbnEjPOxJNWWHm60kLAD2dZYszBAxH1q3Oui83ZLPrbOrBrUw/aCsVXI8f6L9f07/KavGC2NHh6xT5xOY676xG++uKZoc/9zfe+nTrql1FhqhaEsKUCRfCgAhwKClkjm6UvS9GY3W1o3rZJPLJ9lmNFylJl/Tw48LUNr4U5sZgMrgVR+PbjdcwPjsPnnjAfisgFP4tUXmylMWDygMveM6sILEObKhM3wxCXtrTit2/9EG7euutHTfPzn6VxSblcvmraNP/x4dde2vWffv6oQZqfysJfv5KFex8ZqBUs2Ns6kN3WoQBZczV4g9OonpmEVVKVATWJdX9fFA4M2bOkcqbU08Q5jUCxNtj4wKVX4OZ9lz+5Jwg+8vd///fld5Kc7DspTm0E4CWexlg8lh+upL/+i1cPXvt3T/6kfcavp5bi0nE6U8ouZH+IqGj2WiWTNYDmLKzWJli722EX80qkYnIepQODgoBMBxTQt+XkLQb13AgYbkwTlYBAizx+58bbZ/YWOn/rA7u3PUX9abu/+xO/Ghz8s+8988xlLw8NWizncQt/Aw0qiQlC87GE3ycCVzkbYWcO6R1dsDvyokrFBbTcpW/TcL6y90MgR8DeNXmEZQ/W6DzCkxMIR2f1wk1264VYtRBTAuFfBGixLXzoksvxR7fdOdKfznwwZRhL9n8TYFWxpeWeahQUH33haddy0l88OT3ecWJ8tHtwZtpgX7dGfrVGq8r5Q3+L1014CTCKHy1cbGZGOjhJZYMHhkWcVwYMSfI0sEjuqgOsSG/o0qvqf+q4qQ0UBGQjfXlrAXAjfUVXiWdI5YE/Q89a+b1qBcBx9H2X7jdKUFt8aT6pBEtmmzVPBV7uoTTmYNDRHsxyOKirg5uon1GWkUhgfmb9M8J81e5BEth1QEkCsPy8FphZeKgkosu4KH67IN+TA6aO5/LdJEXWB9hFal5nqwHqQEcUdUsui95ia7y1s2vo2v4dcbubnsml03+/ra04MH70xCMNAFtm1Y9vOVMr/9Pf/uihjseGTmDajGGQu+6R37usFqS0GILWDNou24agO48wpb4H47CghPn7NVQopDwdxKiOzsE/NQlztIzUfCjlac+Kpf8qLY7FRAs9gVV7OUbq/z+Yv3f7Tnzs6veeuXHr9i/9i7s/+u1vfvOb3fVc7q/2Hzv8P/y7H37fJbWQmIs3MIp4Ewb8tCmiI5ndmxAUXOWBrEFiGKojrnvCRZZ1oktBHDWuEXWIpWoX5ytdpWLBgPS1duDyLVsP//EN7/vbtlzhZBPw0EYp+o1b6UYAPmdMXr3vVbf103s+/quTx//6J6+80v+zI6+hSku/ZU663LSkdEzkJDcxbiRpB2Z3EXZXEVZvHoYgGA1E42UdgKeQiizYji0IZdoBCkhK7mWhGtSxPdeMf/H+O2Yua2m/87rNm58dqlc+PVyd/7MHXnjuyh8fPICRcllRYIwV7NKY4TAQERHdWYDRV4S1iaXntPS/ROVnDReTCQKvQp7OefiYriManEI0MAVjuqLAOI1mWWzDRoRN2TTufd/Ntbv2XfXNrW76fzWM15efk8Db0d5+10S9unl0evL3x8tzxV8cOWhMzM72ThBYNTeLkhiRa5Q1UeorJCii+MWNRZebE1UpGVvZ+FRglQOS5v6KzZwO1Cr1Vf1v9rk5FkpURbkUxSmV/VssJ7oWiPi2HFvmDLW2ray9gH5X1QtF7ZLSo/TjFSL9DddC4F2iPrHoAKb68/pndPBlhqpQvxGCeU+kU0UK1AuEisLyKzNAmTc0DZB5rfmpvJfwyNWfE/MHAdktBGf1eRONa0nu9YFGDjC6JCDVgxV2IKnGSskWyJoWOnN5bG1pR1+xNd7cvWlkX7F1PJfJ/UNXsWVgam76EZpEnIucZkl2xra/8r2Xnv38Pz336/RAvSLAQIrgGGz5LHNJiTXvIrerB+bWNoQ54isUV1eBphOJz9UvIDmYlzzEoyXUT07AmJqHWSdokeYkKkA2+nz8t3Y3jfdv3xX+wQfvfKXLTX+txbK+Mzw//4HnBwfu+/NHf1CYr1SkzH7uOhQmexjDI12xpw25S3oRtGcRWzGM+SqC0VlEJ8uoT5dg1gPFEdbgQ85Jab8Qw8EDm57v/Bm26Gj4ccmm3vq//dBdk30trU9b0zO/19HRUVr9SF2Yr9wIwIueaxzHdtkLPz7oz//5d5//9ZU/fPUli4Eu2eIWvDIXv4YTLtHfZbbkmEBrHu7WDqC9CUaWmY8tpZ5wdA7zBwdFhi4VU+Cc9AbKMar+KzNVBuB6FGBXoQV/cNuHZi4ttH74qu7ul495te89dfLYnf/9iZ/jyMyUKDApgGIDlCJPqdwoLAN+zkZ2Wxes3iLCvK25hUI5XNMlQFChTyhkqTFZRe34KOKRWdgV8o3PliuXfKPYRgYx9nV24vfv+PDk7ta2T27PND2RlJ8TEwSzvf3u6Xq1b3x29gtDpdmO544d7j49OW4MVMqYLpdAswORRNGlYwmQUoxoPMUXertJ+XdxRilgmbMDlMgzJpmuBBNqOevMFilbEN1GypFSHkuYKLhC8WIwZluCG778MlUmzM0uMVtY0GmWj5yksolkZPKsX6+h1ehwIyhkSYX1yC+Sp0wOEYbHdE7bGzJY+6EEX2aeRON7BAr5odp86wGVWhDVfckgOXliTqBFJW2FC1AHUmUFpLrlC7xvhlPJslWJWsalwTNSP6VPFFxrcYys7SCfSmNTSyv2NbXEu/q3jGzr6BzvaGn5h5ZMZmB8YuLcQGydrlZvenV6/P7/+tN/bnt5bAR1L4ArijiNpz/R0MamZqR2dwOtGVHQkjFlG4pffQ1mB6qkb8AJDSn1VgcmUB+cQDxTgUOlOlaWGkjBSuuHuBQ/xLZcE/7wzrtwy87dL+Ui43+z6vWBXw8OPPqv/vn7beUGAZhVt3rsw+wooOnSzYg2FeC7zMx9WOUAGJxH+cw4wM/EnrXU3Fj1Ui0TBls5hEnxTpWaRNwjjtCZzeJ3r7kBN++78nR/Lv9vnt+//7troZWtaaN6h754IwC/PgBnJ4Pwvz8/PPjRf3jip/j1yAACquYkx/SFZt7ZF4kqkva+lWpqkwt3czvs/naEzWltxmDCCmLtB3oG8XgJaYOIRnVnCmaIqAOFKmwH9TgQPuwf3n7nzGWtHXe01GoHXwi9x//51Zeu+ekrL6Es8pDs56n+caM0gp7EcS6FsDOP1NZOmG05BLbaNEmO0G68q5+emnLCYGdXQkRn5lA9PgpMlmH7QGQvH4DVBmSjzbRw687d+MJtHxzZmi98oMkwxAGJqGazq+ueShD0TZVmvjA0M9Xx/NEj3ccmxo2D4yOYCuoI6Rak7fkkQ5V9n5QRVRkQ8E+jK9k8JHAodauEWsLPpzr7LE9TupB9dBNm2pVMlgHWyNrye1FTSvH3Lsw0A7AN0zYR0lI2qQIkWWKibiJjp4vVOjguLMgkaKoPsHQJXR697h+fDVOv/7aLKhyCFEiyY/1GSlxRfWelya372YwxYQR/rn62dF0PEFc9KUmqbDlEvVyToM1fFJaRQK3XQ5IlyQfStCShcbE0ngTgFUoUcqBKN1wvGQAAIABJREFUSv4LFQn1TGmv2GHa2N7ZjR3tnfHlW7eP9DUXxzuaC//QZLiD/vTEgwlquhTHl5ysln/6//78se6fHHgVc1R8E3rQCgBd8uFb0kjv6oK7uQ1RSqG5CaCUILySFmWDucf7iBEEucGBgWBqHvOnRiUIp6oRXJjwGwR4OQeYlmhbZ7wQ79+9B3/44buwOZ39TlM9/stnh048/Mc/+l57uVKV3vaSGTBxKGRztORQ2LsZ6Cuizrp2FMLlwWA6QGV4EsGZSRjTVanScT77XHY8v2imIg+qAjoVjpaS26X14/Udm/D5D90dXtfb/3A8MfH5jSz49RNiIwAvGo/JOC5M1WqPPPTCczfe/8wTOF0vC+iqkZaq7N+S/sWIMzbMziakt3bC6MyL2AVP7JypLCt5A5OoHDoDa6oK13LlFMntb3EApiYr0dV7WtrxRx+4c+ryls7fKhtR34PP/vpvnjh+dPPJ6UmNHqWWshbcaLDIzZwNu6MZZm8L0NmEOOsq9wMtR7liDXCF0KwWtQHDj2HM1BCemoI3OCl2a2ZkImKwbzDLuIFszxfwyauuq91x6eXf7DEM6j+PPfbYY5l9t9xy70Ct/K+Hp6bbXj1+uPvExJhxYGAQE/UK5i0TgUMVHmVlyH1KxIQkAqu+5kJftsF3WAi4UlZWWaYqparM1KJdIG+cshG5NgyqhzVlYaRdVb7MO0qogSU4ZsKay80skGXk0AxVqXYxBGZx1WFxFVa//+I9V3zblztjca9bvKsu0bRPEPlya3mvRS0B/efk/gt4/uTnNEpWONEs53Oe+wGMIEZM7nQQoj5bQ1z3AQbmSl39t+5L0JYStkTchY646ndLUquNJlgWb3QxQ9W9Snk6AvpS/XHei+ptORhod1LY07kJO9o64n1bt41sae2cLBYK//HY/v3fvv3226vlOO44Mz//73988JXfue+Xv0gLpZCHpgZ+vyIJya/MNbSlDdmdXfDzrlR1BIwZsse9thZOyHYJRXLoucs9YnQGpaPDcLhH+Kq/2uiSSoptw6/UsCWXx+9/4A7cvmff45sj+0+fGTj2wP/48Hc6StWqqtIlXPyFG6pqhccA3JRBYXev+ILXM8RzsEJgwfJNRFNleKfHZV3bVQrT0FJUHQ6k5CzAO3Wol/2QrS1WQKIIfW4GH7/+Ztx16ZUDXU7637Q+ad1v3L5BS0oewUYA1iNBycmh0PvEc4MDf/m9p5/e/vTJIyiHvvROGgltsEIkm0LKhNmeh725FXYPaQtUP1SbuMBQKgG8U+MSgJ05D66dgidOSYnaDIEhRD7a8GKWoFuZAZdv3Lrjb14ZGfzAPz65//pfD5w0+RoCM+Q9xaJlcY1xiaXam0eqtx1GZxPQlFZZnpbWE4rNCko+K8RfjQImVSJEMDyL6NQk4rGSEjoQon4DGoNkMSau6+nHH9z6wYkducInnHL5uZmm7EdHK9W+OIj+4JmB4/uODg/hyNBpTNWrqBGgwoDA8j1VjQSDpguVC2CrhBKz0qfXpVFuHFqTW8AkDLTcnJnFFhxYKQcWA246BTObkiAcO4qzGac0WEqDsCTbTbJZefaq3PqGGKr31aQUu/iTLg7ADZWIlPpj4yrI65yYVCBc2NIZaCUbX1ylVv+axHWaCKi/UK9UG63uIXPz5SnS12Cv+RrCSg3RfE0y5LDuI5j3VXbMuc2ArNHiUobnWDF7bnRAWnSoUJvV2f/nWJctaqcT+BMjFxtopX9udy8u27oDm7u6X+3K5f+frlzTYGpm5oFqPn31ydL8d//uxz9sf3FsGBVSkBq9Nw91TO5TBtCVR3bXJsTteQSuougJrkOQk6u/DGoKiFAOz40GjHIdtdNTwNAMjJmqEv5Y9iJIi0hzF3U/QAEmbtqyDZ+77QMH9rS1f/fQ8eP/8l8+fH9TpVZfMgMWcxj2oCNfaFbZbZ1wt3eixgAcB4JE5xqWVtLILOaPDcOYqko1j2svkBnBqodCRat5oiV1iYNgZm6YeE9nHz5/463htX1bHm6zhJb0prjcqx/dd/4rNwLw2QCcP1ovf+N7zz/3kR+88Jw1UpoTSUhSARJwyZKPk6o2HMVCCm5/G8wtrYiLqvRs0+CbWRG1leY91I6PoXZ4GO58AMdOoYZQFrL0AQURyQDswIt8bM014Y9uvzO8afclE9998udtD7z6kn1yflY2dJuUBBaQrZRYiy/VB5aSNmkel3fB7mlB3JSG6dqqZMTSGfvCxPdo7dfVTlX2tmUAagGqp8aB09OwpmuS+ZBihAaHXX7Goungzsuvwh/c8oHhrsC8YxTzVwxVK3/x6tBw2+HTp7ufHzhlTNUrqFDuX4wsDJHwpBgBy8ti2ZaoLWmPXTGR0BzTlbwSkmAphxHJcFOwC1lYuYwE3aDFhOXaMC1biYkw29VZLlHTKyjlKoraoixGld3PjvbrhkeX0BeXDMjgfgMNadHDomqTCkvJTc++m+qeJiFGA8cWldhlvxSWU3IaOBvekrvJ49Uba5LJEreQdGNosycHBlZU2D/2VJ+YmXJUDxBNeYiYGc+rX5IdM+sVGz4GscYzb0EHQvf2BbXON2cfmfKOopWqLglkcYy8aWNToQXbujbF792ybeSqLdsmi6b9lYKZfnHSjR79+s9/2vOjV17AVEABm+WfoFRViE+jB0NLCu62Tthb2uGnlXY0qWzxmgIwRUAIQYwQxLSzAGw/hjVZRzQwjdrQJAyW+JfpkfO7UujEs13U6NEbG9hsufjUDe+r3f3eG2ZfOXSg48s/esCse96SICx58jL+EaKMA6uviNzePtSztJgJxcuYGu1uAFizdXgnJ6SKR36wHJ6oGsYiumTBNGNR90tMVqQaZJvog4vfueH9uOc91z7ZY1t3GsZZ96bV7jsXyus2AjAAAn323XLLJ54bPPXX//jrJ/t/OXBK+LnUJk70bXk6lV6g3qxU58wQKcIgZSHuakJqeweMribEpJZQR5lUGApj0J1oqoLaoWEEJyekN8oNnc5BUt5OJO34flqXti+dw2duvB39nR347uM/xTMjg5gXsJYCw0hW7TAAE/XLJcwsUMkliuydCWTbCsAV3YiLGcXv06AJCcDs04gXr8oeV30RsEmf35KHMjnOoyXY84Gc5oni1HpTS9xelXz3pZtw72134Nrtu6aPDQ3+n5OV2XtOl2ff88LJEzgyNIQqK/gWS9nqoMMNm5QICcDiMEPvZdIj9C/NNZXgEyuVI707nwVU8XuTlkHEcppkbhtG2oHVlJVSnMP/SonZhpeh7rcKceqUdHa0VC/w9eN3tti6qPIqQUz7viYtXz0iPMAkSV7Sv5Y7ytuwtN44QgnlVt/r7FHkbFAWqdTkZxaDsPSrOHMWfTuNd1BlUbU164xYl8fVp1r0pjqDVpUenSnrkrXYT5ZjoUIxCIelivyi9CIDMbM7uukwyEpmLAmUql4InkKsPLV1pe7tJ1m4ACLFlcpUHG/ph+rPJjxvA3nHxZ62dlyzcxcBQc93FFoe3NbV8z8/f/pUyz8++TiOzIyDGLTl5j//nvFVWgkZE3FPEdm9ffCbXAmaQsNZ6QSxwsIiEp7zWvGQqcEcw6qE0m+tDE0iPjmlVNr051QrXX1mBRCMEUmg5HqI0RTGuH7rdnzyltswOjKCr/3sh/AX8YAXf1eZZ9rv2U+ZMHqbUdjXj6DgyN7kmDYCUR2K4dZimJNVVE+MoTo0CYd7GEFiHHntDpbouwutjbuQlL0t5MIIH7zkMh60f7616t2zd+/eDTT0ojW76r33Qnnh+Ph4U6VY/PqDzz3zkX/61RPWoFdR/Vm908geowOwyNhx3TG3iA04LMUU08DWdpik+DQxKLI/S59fim1YsC0X/sgs6i8PIj4zKwhYcSNiH410FAaDgCfgWMqfREN32lnccvnVqAceXjp2GGfKM5KxSh+HJT3pebKMB/hxKJxEm84khiWoai/voG1XH4JtBRFDSK6zedLanx6HhyDYFA/pIyXMHR4UHVkKB3CXYOxbTsZDMnTDwIe6+/Ghm27h4SF8+fixiYOjg+2n52as0dIsfFH2olq+2oQXf4fke1ikHQmQjQGf+aJCP0vPksGalB8RpNCHF2ZePIwQ3cqg25GWrBe5lARfM51SVQ+W0ljmXzR2y43Y6ze1Bczukj++OJwuufGfm+2cE4DPfa9z3+QN91/hfotj6bmfZyFwrzBVFh8AFkCBmvdrR2osCeiK6p4E32h2HvFcVXrGxjxrvBFMKVMrhHQiEapEm/XrtSKTyupV60D9flFJfXEtSI8b1aVachn0NTeHV/Rumbh005Z2uCnrhy8/j6fYZvJqDVtMvDszXQpjhG055C/fhpBUHYfzd4X0/XyWWFLV0QdHjpOU7AmAmyrDf/aMyGZSNISBmBknubgsmnF++rEJh+0SynwGdSlJb21pw/t2XEI7SPy3F34pVMcltaD1w+ce5VkR7P5WFC7rR1h04dEche0HF/AJrgsBtwoEQzOyzt1yIF7BvqDRljjEaEyFeMzYwLa2Nty6fc+JT1393j87vv/J7y/Wrj6fYbpQf2ZNyc+FMCikHk153icPz0z/h/uffqr/xwdexmxMv0/2eVR5ToQGFsA5OrsQSgSbHDasTS2wtnUg6sgKLSWxKBSlHGbJtgvvzAzqLw3AGC5JZJIA7FOEg0mvrfxyJQA7sviaDAe7e/pRqlUwSv1ivyZBRiqIupcmgZu8PG5uoktsSwYcplVGnt/ejbAzrfiEb8FesdTzpspUugoR3qgcHYE570tGI99FMpKl3ziR/btt+w5s7tyEifFJHD0zhDOVEuYRwfMDhVJdAcSscku1BSQKUCqTUhtUgv5k2Vg4uTkXRj4DI+fAyqaRIrXEtURIRcn8MW1XgSAp1V8I8/zt+g4GH6Ckkkp5jLxko+YDNV+y4GCygojALf4qE8Sle8ZaJMXTBwgl5KGnsfCkFapX6FDLXPK2FIqII2QtE/35Zmxv7UZ7ZzeOzUzglaGTmK3MN8Z4GDHc2BTFOa85hdzezTD7WhBlON8aW5Gez5gLoExrkcta0ZQwfvaoVIP/4hiCuXlYVV963Wx7MOQJOJ7DGZlIkeZoxgKm4qG/mM5ie0sncraDp4ZOKq5/UqFY9KHk/SRztlA3I2mhFa5QAVjcyZg+OFTMpHod4PgGMFFB9dgozPEyzFqAoIFWtBxgufxtAzkTuH373vB333fbi7uai19tdt3vbQhzrBUCez4z7B3+MzRcmAjDb/3s6IGPfOOJX1iHpsZRoRsJ+XlSYlKcNsl8GZT1RiKqQsy82tPIbe2G1duGIE9gji5NydxWp0NmwN6wDsAjJSnLiNgCA7Cp9WcDbfROvdeIOrUmWrN5VH1PhEB4ApcNJ6F5sDynMz6emrnRcMGwVBu1ZOBu0+XwJq0nu07PgaIX1qyH4Ogo/NOTMKscF6Vpy/LwchU6oQhZFrZ3tMnpenJqCnO1GgLXFmm7sM4SGMdphRKsgMoUHUJKggyeuhwt2TAPH6wqsAfenIVRzMFsziiQnGPD0rQSkZwkkp2bm3QelIKT8knauFY7ApwfC4hnMbRIyqfizCFBN2JArnjwZ8rKoGCuCtQ8pZUuRlqKqpNkC2L6oWk1RqD8dJe6+PMWxUZYHSHSOIzR6mTR0tyMihFgslJCtS6y0kteMvOYBMaWSKiy9+ts7URmZzfCgi0HW1EWewuuhTaE9NN168GLEJ+YFfc0Y3oeDvWgtSOXQjSTLcQqHP2CDQRxIJxe+nkXnJR4ik/Vag2/H9/OiohoDuFsbpUAHLSkRKGP+4ltxqJNzaaXRW5yyYcxPIfg9ASimUpDIR+lD67K9G4UYV9LO75w8wfx/p2XPNBiGb+9oRG9EYBBd6HjuerD9z/31E3fefopjAcewigWDh7lG3lCpX+uz56wTHRl9ycOIHQu2taM7JYuWG0F+ARrSNlZgUukv0aBpHMDMDNgbkZ+IH1YMb3maVHQvYmMIS3bLLFC4AFAgDv8d/aIhIKhs19O8YCcO6Vp67mGUI7IW/SLrnBR17PMISjwkRL8I6PigEQHFWY7BHnxNJ5wpM/dBRKQWJpjGIaS8UqGT61b7gp+JChMldsvH4STPhYDsOqnA7FNihLvZSMuuLByKTiFHKzmDIx8GrGrPh/vzANQ0l/jZ5Ssic9PMi9qQb81G+xbsEe/K2+xAFNLGpfn9sApX8pnF0SqN1yqIZgui2e24YWIueGTH08+vm54E5kr4DvBTjQIwDzksaRtm/BYTWEZFQZSkkGztRkiaMACkA4rtVVivjaCx7nSWUDh0n45eAdca2sMwAkIULX9da9X93ulkjReQ+nUCIKhSaTqPGQrdzORMufvmSwk2A+D2T5bX6QZqpEn/qTRAUMCcEgoZwRncwuaLu9H2JYSRybJgGlfakQC9eTKSAcG3Kka6idGURueAqoEgCy9w/C7EYjJvcuJYnSaDj59w8249/qbftln2b9lGMbcu3JSv4Ufej335rfwY67PreLHHrOHrr32k4emJ776raf2b3/i1HHUyatjNqXdXPjOPA2yjCUBWE96liydbAa4tB1uV4v0EYnIZPbKMjABIjw1cxU4tgN/eA61l05Lr1QyYGrkEilKMvuisqcIe0hfSJXueNKXECT1JiIOdcDm34uGcSTkeIeoaNtEPW/D3dEJp78VfpYLaP1OWdKH82PUqPt8dBT2VE35D7Ocy89HkNkSblGLn6bYu3EMbEfZ/AnCVgVFytkJYrZBGZtoa+nXCizVAFIWTJaY82kJvOjIwcqktDgG6/0MvFr5idQjUXpU4LWzak1nebtrxNisz8R9V91VxD7P6lEnPW3ZeRQwTaQ+ua44v71IAFssSxNsSH1kv1wVIxPTU3rVqqzNNULgVQOajoCaAvGsDbjmDOVBzb+zNYJd1bGWv1jJET1mOmdx5jSl0HwJBSuaZX2tNQBLkNW9ZDmb6LFIbB7Dsi9GDfWTo7Dn6kKLUoA+ldWzY879Kjk0JrrdPDiqQ24DqU2N0CeVjDgSp69FlaDb0qjHofSACSYVj2LCPYlXhIVUOYA/OI7yiVFYU/Rz06yDc4aR34cVJH5WHhxykYGbd+zC7972weM7c81f7njSveg5wRd3AI5HckNBy7d+dvCVu//bEz+zjpUZHBVVRwrIFgObKShCBjqWerhWfCIWsy7SbUVgXwfsIvVTz9KVpG0p5SEG4FgCsDcyh/qLiwKwgLCUVZuUk0RkQBl+i6Ugea56YgvKU0BBqi8p6k5EZurckIuSiyUgX5GyeTs7YbRn4NvUZV2/DJiL3anHmDs0BJyahD3rI2ApnVk3KQgBrcq0JOEyexz9TjkGqXRayllyaNHUF/69xngsUyMULUARgo9cU4RQ4qYU3JY8nOYsbB6KCmnh9Mr4ykanynuC/hYNW1VNWJCB1K481PllRYIHsY1rDSOgm/iLqwxnZyT9pjXNSgcUSltKkOVfM/OdKMObq8AjcKtcFz694TMQKw40Hb6Wv7RdHuvIDETSN+YhmbrGyg9YbPQa3kEhrTkLeDgkviK/cxOc7R3wmuzXSZWuZpSEhpis74RhwYOCrsD4XghjbA7ByXGEI7Mi1iHpr6ZjseXFlyVtE9kbNCr8deIvS3w4qXYTO8IAHAaSARcu70fQnpbDhkWOMgL5rwqmaiwccvwnS6icGgWOzag7L7NOZE2TNGm74hy3o1Ck4l14247dD3Ua1kVvVXhR7y7x+HjT8ZbmR7795M9u+s6zT2GaPMKIGTBLJ6E4kmQpGcmSMwMwF2sYyekQLTlkezqAva0ws64uVS5CDHFhiVg7+XRLB2DSlAgSEgpNopXkc+Kb6u+1bV/S0xSLPBHD1w4ymprB3gwzAi9nIrO7B3Z/C6IcvXYDQWGvVw7MoEX3lunXTsE4Mwe7HApYhWV1lsNZ/lMpx/LTLLFTJOdQsmH2s1mi1z7B5Bc2mqSiw5xxYDRnYLbmENHNpSkFM5MoVCkUtZSSWUIUfrCqXsp9hVOtwW2aU7ygbbGO1YPVbNbvxtdwqSh9aF1h0NxfWRuycasArHrwLKkukrLkrs9MmKVoArTm6ginKghnK4jnPYUWllikYXiLRFD0GVg5CpF2rMyKNTZBYykItFvODSkZbO3SJC0fHspdE6nN7cjs7YbXRLGd1V/81Dw4KzaB2mNULFMtEJF8jGJRxTJoD3hqTIwb1JApsKDBtpcGUykpUfV5EsBmo7Uj72vEcAJTUM+uzoAlALNCYFrwECBNRzXSLfkZWa1iO6CqMvPguTPy7JYTK2JCwTaa5abkMNtiGLj3uhvwuffe/GSf7dx1sZehL+oATK3hX/u1Bx96+snbfnH0EOqUFiQAWlSR2POJkKUajKYgCdg/ilG3YxFoZ+8XfU2CfFZqR2pzl8xV6QaJaKxr2AhG5lB5ZUBoSOytkO8bUWmLvSnts5kYCEjMYlaccEz1iVbZ4YnSucp9pWzKsprqnfrNLpr2bUbcmYNvS4eI3aG3NAAvgEX0qdedrmP6wAAwPIeUx74vRB6Qn1TxqBu7ISmVQmXenoBPuPnwUCJC9GwJJHzbBAnLwwkVq1I2rG7l7GQRZFXIIEpZYvEnIgCMq1KhVDQmrc2xcGKXye8ropSSR1Q/K3xc/b9G/efVb70XzyvF7loRnNXy0BNI+V/rs5lg51Tk0FLUi0jUukfvx1KCjmYrCCZL8KdKCChSUSJa3lQZoNxCBXL29qVyxBJyoGxDJWskIIs4AR5iedhroEUtJW7RGFGiNpwTYh26qVmcg6LWzJrMGPhpE61y5al9NgAnkqGcvqlaBHOsjNKRIQSjc/J9TMtRtEVz0QzVAC7eV4Gf1Pl3uUvpGnBsDFWC7i0id1kf4o4sCHjm3kLaE0vwHFupCsnzY9YMkaj0nx1CfbYsSHGOF+mQrDQJY5LVQjHeYGHREVEOJ/Bx85bt+MLNtx7vT+W/fPyll+6/mA0aLuoA/P3vf7/p2WLxgeePH771wNgAYiJwNeCDAVCACbIhq36riC7w73MWrK1tCmlMeccGF5GStB6MRksovTaIYGAKmciG5Tqo0YVkkR5vglN5s9uznM4zDtDVhMIlffAKNuqRLxn7WYWkN3vXJE6dnSKLcTTJSdsZr2L60CCiMzPIRo6UdOshXRhC2EmJr8EsW3BS0ad+tXkowRPZk7VhhWTG3EOpRpVxEGlUs72jVbJdUSvTClXip5sIZqwAklkAwejhaSQ7uroR3HjVuSOQQOrOZ/MRpo8OhGIJSXP6cg3h3Dz82QrCoYr8nUHUtKcwB3z+7O3zECdBVqQSFW9eArA2hJCWToP6CucCD3qhAAJ1+8kIEHc2IXdpnxz+iPQ/dw69lU+ch4UUO6jTVZQODaJ+fBRpn+psLjwxglm+BL/SfpKEbo4Pq1Z0Sstc0gOjI6dYGiKCooQ2EvU2uacWQCFlLHhtTEBiOU+5RNXZJ2fbjVmv9M0tAdjxKBCyWhWH2NXUjC/edGv4/l2XPNQ1M/M7Rnf3RStNeT5r4K2cT++Ye9HgHt0dH//Pv9j/tWePHdk2Wp6RLJIlZpZbCIRiAFZBV0vs8NRO6bu2HOztbcIHFAu6BhcFPdJEUY6VMXdgEP7pKWRCE7brogZ/RZDSigMmWtIG4nwKTl8rcju74OVoacgArMg0a7mWC0iJBoE7WsHUwUGEZ6aRR0o2ONopxkSD6wDa+ISSZEJKGF4lwpGctpnNsLwuJXie9EkbyqdgtzbBasvDLGSBojpZL/al1ZZI6m3X6He8lrHbeO3aR4D9YOXVrNYhKTbim00AIznDYzX4c1VUJ6aFN+uSJUADFd1WoNwrS7NSB9KGBGKyoSlrFKlY7uJhm4jjMNABmBoZ1A7tKiB7aS/M30AAZjbpmg5QqqNyZBjVI8NI1wDLcUD4E3vZq710IwtmaCCkX3hfK9J7uwEKjSyokCl6ZHJOSap70qNmReLENErHh5GZ8yXQcs9k0kH0tDw7SpUSF0IOs/Ze7nVc/N6N78dHrrr2id4Z5y6jw7holbEuygAsvr9h+ImB0tyX//rxH1/xyyOHLEqvSQYVRkLzoUQcS6m0tZMiqHb7oJiD09sKZ1s7ws6sAhs1CsBGjDT1aSYqmDs4BP/UBNKBCdtxUBds4do6tBJ4KCRRSCO7tVOAFL5oueqMcSU7vhVW70oB2BmZxzQD8CADsPK+rYuWkeYAnweIabELj5Tw2WsSEn8Mh2VD1xJjdHJ4rdY87GIOIJ2I9n+WKiGr6nFS5jxrMbTYz3e1G9XG696+ERA6HxkFUsekR66iAsrjJliLKOFyDZXxWQRTSgbVqQaw60oJrUo3Kq2YlYhYSO9VqGamSEAuG4B1H/ZsAI5F+ckizW9Pt1Sc1jsDZgCmwh3BZ/UTY6gdHYZdYuvKFiNFYw00OV30V4HSMeFsaUd6Txfi1oyUpnmQYQa8OAAnYyUHHLbCRuZRPTkKY2QOdo1gVbIg5BiteN6WCyuKRNUOjiP3aoljfPSqa3HPddc/vs2L7uns7Cy/fTPs7X3nizMAj8S5uc74W6+eGfzo//7ogzgwNipEdgkELEvxhEx9VYL8hQ8nKCnpbUQ5F9nt3bC3tiJodlVvcXmaqgTClOHAnKqhdGgItZPjSPuGoiYZWv91DXNAzM3TDoy2vKAzjc4cvJQSAVHOM+uUAfMzkyo0WsHMwQEpredjV5Wg+b0WnGZWmGKkXEmmqlDeSj1n0YBSsao5B7ujCVZ7AQb7vK7qAbNMZgsUNgH0qPda/Dguygm+hvn0TnuplJTloep5sQjMJRkcy5uUPqVjz2wVmKkhmpwHZqviTxwEbPMoABiPaqI3p1Hw0qBpcIBOkPFhSP4tD+ERAvKCN7chtadbJCkZgBP/6PUZO2IXTFg+EBCIdeQMjMmKsBu41lhpWttFa8kIUcqWllo7dkWLAAAgAElEQVRqTxei5pSMeRKAheZ37kJSDqww5nz4A5OicW/O1VQPn2uTojYEVVoubAIqg0B4+SxeOLU6btm9F7dfefXjV1aDj1x55ZUbJei1PcR316up/Ry1tT3y+Ksv3vSfHvsRRmtV6Zcy81LerSqlUvSfSLRgGcaE39qaQ25XD8yeArwMA3NjS/sAIdKGK2pRpOtQzDxdV9xgIq0X0KCrHEJmeCE1jXuKyO/sRdziwiPsk99Fvsd6BWClOuVMKRBWeHoSOe5OpikuTzH7QIJKbfzFqMssAZRgKAHKKO4z7eqo4xxvysNpaYLdmgfyKdFxJrFBTuWkKS0qISQHoYUAztutZIe0ynHfeNlvZgQUT5w8bW0qIepKCnWbUMvErIBCNF4EkxnxZAn1iTkR88B05azQihbWSXrASk+9gRuSQBDIRlC+y9R3J8AvtaUD7u5u+K1p6Wmu5yV6AoYBCWNjJbEzjYZnRPCGKOXETGM1n0GKU7w/++oZB6kdnUjt7hIzBh6EHVAIR2nULz7YJrGY+vgivDNSEpe3cLy0YF5BiUquUcukQkGEgLr3BJ5yS6p5uHzzFly5ddvjN5b9j919990XrSDHRZkgxHGcO+rXH/zuk/tv+/rTv0SFziZE/DH7pYAEe5DsBWskoXh/EgFJaktPEantXdInCYg0XsFNiKXtrJ2CNRdIAJ4/PiLmBSnbQagD8GoWz0IpiAlAxoKzpRO5HZsQFpQZg9KXVSjOtVwrlaDtUqgy4BPjyIlbhCGldVIVzzsAawF6CcSuDeTSsMQSMA2jrwlWPo3ItRHRV0EOFqroLEhxqVyoQ1NiCp5kTAIUX6FFsJax2XjtOo8AlZQ8XwKNTW9mTVPi+lSBU2W16mJf1xSvWvoR12fm4c2WYQyVEFXriGu+rAfx99YUP9ILKcDS6BKAI+cRxaVYoUmbSG/tgrO7E34xJUIV63VJhhlH8BmAWcqdqaNycBDe6QmYtVDK0JKBr/JSlLwIAQ+/OVckNt3dCkPCihTBX0RBJwFY2I5S9tZvKOdlQw7hlYNnUBuchBMoChUPBgK9Msj5CBGGyniGDQGqmnUVCriqr//EX9x4+58duYiR0BdlAJ6cjAsnU+UffOOxH9360MsvSmmEA8H+BTOvgAuNHN1EKJ2WcZxUhTSsLR0w+9tgFF1EhpJabHSR4J510sKRLR0+g/KxYTiVEGnbFRECBpS1XAQ61VIm3B3dyNB8IUeZxRg2s8OEOrCGN1gWFSzcPxN2LcbMoSH4x0aRryu4KnnS0rsSqcAV3lz33TneQvXIp2F2NMPsbJbSs9msfHgFhKURmbwjQXIiqpDcXrvJSCl7wXaPoDkxvN243o0jwCIHxWooTEMxFdJc6H6ldcTFD1ooeQo5L4IqROiSt+8FCKsezMF51KdJW5oTvWlX9NytBdGXRjQkGTLOM0EBsj3CTNFGdvsmmLva4TW7sBuAuNY65Ax0BFnViYR20uJAVD4wiCoVqCrKLlCETFZ5SYk9juF7PqJ8CrndPXB3dYofMNdR2nBEX3pxAJa1tygA8wDszvqoHRkVMJYgtMWORv1PLFIZjKMAEasJsi8pENwH91wa/rtb73y4oyn3ecO4OIFYF93WFMexNVv1PvXczMTX/q+fPLTt2YHTAojiJVNZZ8CJlqqc+ASRYCBuyyG9pw9Rdx4RVaeIQlxp8rOEbdowqhFq9NI8MiwnWcosEvp/1s1npRu98d9lgcJANWWIT6m7tR1BRunEyuFB+6uuFANXeuc3tH+EIKnsBM3AQOXkKPwjI0iVQ5GiFAgWN0K5cVK+Uv89C7hSurcC8+DhxjXFqchua4Ld1QyzJa9sAk0tUZLYvyT5rlYPW/jsCYFU26Cpt2YAXvEJrfT1N/79bRwB+vpKpUOyKipbadMSBlJN1E0CsBJ8WbQmWcWaixDMzMMfmxH+cDxfh8v+KQVYWHkhrU1fSqtDo/K1sTyVshQGhJrIIVDMSAvK0lKv5joHYAmQImebglMOUD08jOqxYXEdIzqaGeob+rPn+bwkAPPA7NdhtmSR29MLa1sbvIwlgjhOZCGU9aeuc+ljctBldl6P4Q/NYPbgAOzpOlJaeYyJjDAC+eR0H1m5P5mi/X7jtu348vs/fLqjuflLXQ9mvm18RrH2L6br4gvAY2P5kVzhm4+fPnb33/7sEWuwNCcn4uUu5ThGCoypeLaXbUVAsfI40JOr8QYvdAfGK0L2z8yiTtnGkRJMw4JPL+CzgN03Ne+SMhBPo7WMiabLtogClgCwdParaPirPyGfzweiLm84MiNuSMZ4GQYdznnmFSnOCIZ51kxBJptIE2pyJzMZajNnbEQtWaAjD7uzCU4hA5O9YTmIb0hhnM9zuFB/Rm1QCbhuFUdJBvB6iHimimiiBG9sDkbZgyG2h5SiVIdC3lkqUol7ovwF+68msvTFDQNU3BhxTzNyu3vhdBak0iRys+t0KeVUUnkMMXSxZz3Uj4+hcnwE5pw6xCc94NUEYRWADVT9KpzuAvJ7e4Heorg+ifmFT0Tz8l9OfJ7jGBnTQTRVweyrpxCcmkQudmA6LqoBs/Q3PjO+rxcE6C8043+57UPhe7bufDhXLv/OxYiGvqgC8MMPP5zafcstnzg5M/mXPzl0oP+fX3sRs/UVDLm1slWYsmBtakbh0i3wWxzhulJabSWhCwk3Ut82gLESagfPIBycEhQjiekLkohvchEnAVhK0FlLArDV34K6q7I+Rb9Z/wAsJ9qpCqKTE4LSNOgHLPQFU/rooaVoIIlDFAdDemlaci9uTcHUKGciuVFwYbiWTma0GMebHJuNH98YgSRjIxqXfg3SMy37iKerkgl7UyUpSTMIJ0hBAWdpv0QRfRGjBBMO52wcws/bMLe0IbtzE8xiBgRYCkJrnS4tXS6iIg57wK8LwDU4DHy6BL2qAMzdiwEYHlI9RWT3bBIfcSKiZf+gHeJKATiKkHZSwEwVc+xPHxtDLmDLwEE1DMXOMLmSYCMVizhG1jRxz97LcNe1N5zenGv60wP793/37rvvrq/TcL4jb3vRBOD4vtia+rj3yUOz03/+yKsvXP6Lo4etiVJZiUY0aFRyPUpJNWvD6WtDdtcmQQn68dkA3PBcrksv5PJhqorqwSF4p8Zh+1R1Smb3mz/Zv1MCMIEVZtmDyez+5DjiqYo4JInyTRTDt9hLNyGlRCkTK2EFip5YaRfx5mYR1nCac4jzNkJbldBFflKcp9782LwjV9rGh3pbRkDoMJozTAlHqxIinppHfXwGwew8jBlP+sWcl9IPpviGpjwpGRvFjqAEJdpzQtXJbOlAmLGE20pDh/W6fhMBmIPDQ3t6cxsy2zsRt2UR8QDMpUoN7gZeFVIZpHe57coeMH9kBPVjI0hVOZbUUSBYrsH4RBH6c0246+rrwpt37Hp5S77pK92ZR+43jM+sX1lhvR7WKu970QTgsbGxfCmd/ub+08c/+vWn9uPE7DQysYsAviL5L3Nx/rBXGxfSSFPoor8NYZMlr+HiW5FnS+oCXYPslFAkqofPoHZ8FHaFJWx7waHnzT6/JQPw5hbUU7EAVtTJfP0zYAZgmwYSPFycGEM0PAdj3hP9V3bTKEsnfSBhRkUIyKVOW7CLeWRbCoj7CzBoGygoZ41q5cLVjjAbAfjNzoyNn188AtIm1r+EduRTvMNDXKognKsBg3OiZUzDB4elZvKFpULDGo6iP1EnOchYcCnAsa0TdmezMCBIrVk/rzGNNiaQciEDrqN+fFyXoNeeAUtxPzYRNNlIkwMsexvFdDTolBzrBiIHSruebSQbZjVE/dSE0JGsOQpQWiIUYi5hZ5awFhiaqeN9aVsHPn7NdXjf1p0PFCv1i6oUfVEEYCk933bbJ145dfIvHzn4cv9jxw+hGkdotjIII19MrJe76KLiM1FtyyO3swdGdwEh6X8Ea1AGTtuGLXsDbcdlu2kBK9SOj6F6dBjmbE2MsHmfVZWP9MHydSXoRQGYABMlQ7l+JTIp89HXODJgzfvwhqYQnJ4CJitickAOsmxQ0selsVkMP2XAKGaR7mlDrqMFUaurgG+GAm8lvGhFd1DC+hvXxgisdgQoJcs5Kl7dnEvS2wxh+RHMeghjYA6l0QlEMxVY5BETFihrS7WX2EyhK1pUzCCztROpvlbETa5w+NUhd/3m57kZsDlbh3dsHJUT7AG/BQFYoBimUCpJQXJ6mhG4Sn9d7E6pNNZo/9D4GILkbN9AMDSD2uEziBOhEFGmW35v5cGIFKvmGLhpxy7cdcV7Tl/Ru+1PD/zkJxdNKXr9Zs9qV8xb/Lr77rvPes9dH/7k0Pz8nz/83DOX7z92yBqt1yRwpsgjpHF1oxI0rQkdE+amIvJ7+hC3ZuHbpMywNq0B+g2CBH+sTjlLN4VMaMMbnBQkNMZLsGpKN3U1a3hxBlzNWijoHrDHBURkl/CT1z8AyzsoGxQJvOQDh0PTQDWQAMzSs/CqdeaLloygnJ3uFpGUpJ2aSE9q9LJyzlGTYEHf+S2eExu3u0hGgAGC64CYCDHqIG0pVH7QjDPUjZ6qoTo2jWBkFtHUPAwdhCX0ys9FCDI2jE1FZLd3wWrPwbfUnkF09HrWSpcKwPVj46i+RQFYVOcoctJbRHZvD6zOvCC95fBrUaaTKn8rHOCp8WwCLtFao2VUDg4hHJuDyeVPq0VqZze4KDJC45auTBbv33lJeM/V17+8LV/8Sm/Gvd+gl+sFfl3wAZil50ED3/zl6eMf/f4Lz+Dk3Iyccpm9En5P7mBDS7IwRpCyYG9uQ2HvZpFp8yyWniiCoyH6jQKwYaAeBDBcB1kjhXB4FrUjwwiHZyRrFN3UVTyFZQNwStjvvzEQlsMKgamyV7MUwDg9jeqxERj0LRXvV/qIUogdsIpZZHrbYHU3IyymxdycPEo1jgrOpgTzmXco+W1jnZWGLvD1fVF/PQVkpn40TRx0WZWoZVZbdJ/XqJOqVBO7v9rQJKLZGmK6K3GFSyocIWpOw9nagey2LkQFBzW/zs6wiOnQkWi9LsUaoKUiv4MDa1aVoN/KAMzDs721HblL+mC2Z+BFvuqHkyYpAbiBVrbOgIkvFbndiSrmCcQamoLlGyJ6wrrXcpcCZ5rwaB0ZRtjZ1ILPve9W3LJj1wPNlfmLohS9iq1/vabbW39fZr+7P/zxe18+cfCvfnropf5nRgdRpe+l+JtFqHIh0W92OTk69ozo/8v+z/YuQT9GTY4AEyhLx55mI7N5KWSZhogHGJYjvD2iMKlkE5yagDldkf5UIqkosP7EkFzMgajKtcwC1wYlPEzU0wayu3uQ2dGFeoZeukqGUnR013GD4PdLE8RhAnUKb1Qj2MPz0ufGdFX6vswyAppFNKdgdxeQ6WkFCmnpA1Oxi6IJkq0nZr1a6zfhfUqZf+PaGIFVjgCdqQXQx8OgVFVU9pp44XJ1OfUITsmHNzyD2sgMwtmqyFpy7UcO3c/ySLFE29uCIEUKjSdFJteypPCzXpfaGkx4Impjw56qwzs6itqJUdG+ZoBTEiQrV9ESQwXeT601RaEimCy9cxPSu7i3uQgDX+UDOgOmq9GSl95/OJ50fHNNRZOap9zuyTExw3AcV1p8ywZg0hBBjI0FLwyRtxzctH0XPnzZ5af3dnb96eknfnXBl6Iv1ABs3Hfffc4111yTOZQq/MP+l5/7yOMHX7AmY08MFtjX5YIkUVyyriUy2IUMM1I0n/QlPbD7W0UJx3IshJy8vI/mDTY85mlPYeq/xPUQ0XgZ3tERmKOziHwGZ+XMIiAlntB1QLJtW8q3jdY4txfPoUB8O5ov6YdXsFA3FEeZ31OohOu1Q9AsHIacYCmC5XoGnPGalKGiiTJMj3J5QNySAzY1w9hUAJpT1KhUAvlaK2cdP97GrS/yERAE9DJjIOuCBRfRkY4Rz9ZQOzMFf2QG9mxdwIUUiIk7C0jv7kHcnkXo8lDLsJ7cd/22UMkQbRu1OBRHJHu8Cv/AGTnAx4z89CheoUqbrLKAEq40mWHFj31fUgQRIuhMIb+zD3ZfO3zXRKQVALmBsHJlrxSAKWVJy0TLgVOOUDk6jNLRYbjVUOhJPr3Bl71UiTsW8jXNJQwUXRe37NwVfvyKa17uTee/OniBy1Su3+x5Gxc+7QZngI+Nzk7v+M6rB/6n544f2XFg5DTqInGqAjDRjXIOXmaFLi7x1nO2BGBzcwvijAUGRgZgggQZYFYaRPHOpNa0SNpBSkmUbowGJ0W3VgjxFotasXBn2RMVuTb9d40CKHl8Pi1xNxVRvHQrghYHNeHe0kuXIIuVPt3aHhTxafQlpcxc2jNhj5RRPjQEb2JO8S/bc3AoK9ldRFRMI3bplEKLR/UMeL5ezwPC2r7dxqsv9BFQbmYKJm1RsGO6Kj1Mf2wWcbkmfuBRexPSu+k01nQ2AJNfTHzDOg6QZMCWBV8O0wbM4TLqB4YQnJmGwcarGNw37rGSf88Gj2ryqMRD9jb2fx0D4bZm5Ld0w+wsSiuJAZi6+DREoQo0rQSXy4CVkB8VwmI4rPBVYmk/UXLXqQRI2yn4DTJgebkY4ND+1RGQJgIPu5qLuPe9N+KKvi0/6D5y/Lc333hjdR2H+W299fruzm/TVxuP46YI8dePjQ5f/58fe7R4YHQ4VQ490cIgwZyByWZw084qS33MhQBMEFXeQeaSXph9RYRpUwJwRHFxLoqVlA7FtEeZzfvCgzXhzvuIT0+KjyYm5hVPkVq32nZYLBFZ/uZCWOkJRUBAA+yOApoJEuvMouaq3pWi4J3HCWEtz0ncWpToeroaIR6YRunoGXhzFbhuCuauLji0EixkEaX5fXjoUUAPUziXa3nzjddujMDaRiCRUxRzrdCA48XSE66OTKM2Oo3UnAe/kIKzvRPpLR0I0gQn+eoAKU5J6zuBpTpH2U0/Rjgwg+qBQcQT87CoKyB7WIMSr1gKqgAcsWbOfYbWg4nlalMa0b4OZLraYBaywgYRgwpiMM43ABMlTjMby0GqCtSPj2Lu8BlYZQ8ZyxW9hMYXDwTE4ViKohh4KBjATXsvxTXbd+6/NrQ/fvDgwfnPfOYz/KLrO9hrm0qrevVK2/uqbvp2voh93w9++tP3Ds3P/dVPn3u6/1vPPY1xr64osfy2Yi2mFo/qBC19LUg9UjatyUXm0l5BCxKmb5E2o3m2RiMzYHXEU+VlQu61Um2KwI+xOZRPDMMYmJVyUkyrQ/mMWmdZ+20qv73lL1aIhGvbnEVuezeszUURU6dCDilKa7UjXOlZJiL49DyhxnX9xCgqQ5OitZtvbUG8pxNmPiUuRwZFNvg/4UYrHdmVhm+l99/4940RWMsIiHMPub+ykAy4sQm7HiKYKaNyZhLp0yXMOzHM3hY07e5FlHfggyBMta7XnafOsjEhYeTZnhgXfIU554mugCCIVwjAdCblAZn7C9da5AfK9S3lINXRjOjKLriFvPyZ3ucs6wn2xGZ1KhIziCUv0XHnlhqjxkzZcpCuG/BPjKN0eEholinLFTOH5S/qfNtCDZOt0mJb0BdgZk+xiL09vYf/5Ibb/mt3oXi803W/bxgrQKrXMhHeptdecAGYXr9eW8s3nh44dfe3Hn3EemliHL4mlieAJFF5kexLWQ426gETRMUTcG5fH8yeZvg2PS51ABZAQ+NDmZys5eipAjADqhMC9kwV1aEJxEcmEVZ9AWMJ+Z/31LcU5agVSsjSouELsg5SfW1wtnfAF6cmJUqvvtv6PWaFWjaE0xxNljF/Ylhk/txsFoVNnQh78ogcddgRtyM9FtwUWHKyNZjjbZr/G297kY8AK2FcewF7olEk1CKH7md+iHBmHuZrE5jxKjDaciju6kPU7CLgyVbvHeuMcZSnIypys3XMHxkWQ5dUHbDZXxWa1AooY1bIWASjYh2DcRDAN2JYxRyyve2I9raLIp0ogDHYapMVIq95uDYb9IB5MGAAriIU6cmMZ8I/OYHSoSGY01W4Bt2aGjGJmN3bkhAJoJXcY75rpFgml3R11//VHXfP7mjt+lW2VPrdjo6O0oU2XddvZ34bRkqy309+8t4TszN/9cALz/T/+NWXMFGrqEyLoCsx91ZShxLj9GRbKsgtxFWCEYpp5C/bDGNTMzyTwCJDMjwFgmgcgLm4E11ZcmEZ+Fm+shl0p+fhvzoGf7YqiESxQNQHAk5tyS5XGkeReIyUWURnE7KX9CBsyyAwiZw8CxVZ6Tar/XeiyNmOMihcPz2P+vAkvHIVmZZmZDpbEeYpGK8sAgWJKocWCHKSIA/uZSt+x9V+uI3XbYzACiMgDAhmwVxD7IvSwYfewpyrpCMdn8P03CzMXApNfe2I8w5CW8/nNXmZneejoYoePY7HyxLYvIFJ5ODCclJCb1xKaSq5s6yrSLeIWMamqlYQop4y4VAIZ0sX4t6cBL6kFqiO62rvEUez5fY3VhHFgznGPAIYDMC+JUI85YODog/vxnRTatQlV+V1CcBi3q2egyC04xgdmQzuvfJq3HrpFad3NLd9qfX++79tfObCkqm8oPY+Zr9WS8vXHz9y5CNff+Jx6/D8HKpeVXmEJgGY9mNEAfLv2L8519ZOz96FeWcZ8ItpNF3WLypYdZMgBUMWqoTSFQyBxf+SgZ6+pawu65hoBzGsegD/xVHUJucQ1TzEdV96NlIe1yfQlUq0JLsb9Eg1IgQtaeQv3yyC6oENOCZ7ROe50Ff5Y9yoRIiD9I75OlCqIvADWE05oJiV9J9AC34MAZbxwCDiHao0tp5auqv8Shsvu4hGQG8BsuY4MwmupPGCVHW4vqdD1OYrsGwTKfZMU8qbmgdvATitM8iRFSa7FiAYnsXcoUHRESjYWRh0G/I8WNJnWv7iwZcIaB7GbTqXhQFqeRep7ZuQ29YFFGxVehacqDqMMGgngZBb5ZKXYFRUMlGOfZgOA7CNUAdgTM7DiZQ3eaOLUr7KEz1Bw2pN7hhwDQNXdnTgs++/I7yuZ8vD1szM5y+0LPiCCcDxY4/ZEzfeeO/p+fJf3v+rJ/p/cuA1lGwbdb8iwUEyX6kH65IzA3DiirfUDEkyM9uEX8ygiRlwd5MEYIeTRks9xisEYAYnOQBosAYDMKcaS10MyjgxjQqpD9PzQNlTaEcNrWYPZiW3JQIYeH+WnP28JZJy1HTlSV2E6JXJ6bqlmUlJmb0wcnpNAXnEiF0bccqWUl1yCJBKgJamlP9oPuJFtN9vfNV32Agw0xK6j6bnMPhy/ibYhphmvAFpR7HCfhAoSZ69Dj5vVQDWlhFqqXJf0i5LNDWw5qpi80d+bThTRdpOk58E3/dhNghw3GcC9nFDCmWwWmfAswGvLY0Uub89raJEJ8E2cSfTa3KhXdeAwyVVAgOoRAEMBuBAZcDzB4eAifJ5BmCVzCyQUQTQqaI+79+Tz+P9uy7DnZdddXpbS8uXfnb//d/+zAWUBV84AXggzoxtir/1+MCxe/7vRx+xjk9Nw3EyCOI6yHhbKZAtuy/Ylqg25fcxABekBO0wQw14aqTU2psnIiSTjYNPvmFtaAq1gSkYUzVYouBI0JYysWYPuuEJV1OquBKEjtRdRH5nF6zOnNCReJiXTs1v6EknGftv6v3eYfv5xse5QEbgdezEJIk7Zw3xj2stMHGdiO0h7yTepEokQ7TUBYhpwxqdhX90FOF4GQGdmyzqRwmnktDtZUecOxNbUenAQIrlYNtAvdlB1NsMd0sr7ObMmp4WwySDJAOwZMCBBZ8B+NCQeINLBqwTlNXsBzwwEMi1JVvA777/g+EHdu9+2JicuKCy4N/Qtrym53xeL56cnCyM2PaDjxx6+Zb7nnoCk/NV2KYrWqSkvqz6oiIMS9D7NsNc6AGrAKy0Tt98AF78WdhniiYrgnCMR0swqaGseyJi+LBCh5RJNEvN5DJSWcpozYqtmLO5CD9rIQoUpWk1C2DVY7bxwo0R2BiB8xqBxLMsWaOKt09usgrMZjVCMDgJ7/goMFtHHCrOvUnqjhysG9N8iCy2WVGHiSBtS3vK2dIGszOHOM321er3r8UBmDzeNAPwqUnRATAn5tmpFlU+Xqvbf9ibNtBm2PjY1dfjU9e+d6A3k/7SM/v3f/v2229fid90XuP/dv/QBRGA4zi2pkLc+/jR177ywMvPbX968BQq7EOKsezaUD6Cgm7WAbinWfWAmaGyBL2WAKwRzpFpiVE4zszAPz2JkILwPvtQygloJZoxZyFt1Eg3CCiPmXdh97fA2dEB0NtTAvDqHJfe7sm58f4bI3AhjwDTAma+QjMSUQ+2klSwIjiMPVtrvIbSyWEJwmYlkIO2wk4oq8SVtJbJtSdXOaShTGse6c3tcHqKCJocyU4NVvJWeUnp3gCqYSBCGmnfgndqQgXgqQrShi0l8NUGYI4PNbuzAfCeTZvxhdvvCK/b3P9Q0cBvG4ZxQYhzXBABmOCrcrHwje8/++uP3P/ML83helWoZRTcUFqTq5xh+qV+c0pQ0GZPUUrQIuLxFgVg37bg+DHc6Rq8U+MiCB/P+4Iq5rUURWrxtyF5nQUph9aGQYTAiYHuJri7umD3tijEtwT71Y/Bxis3RmBjBN76EUjqcsJ8IEeX4XhxAA4NWKdKmD45hHCiJPxkZrIU1mD2q7Til89gWT0jSKpmhAibUsj2d4oZitGcgeco3Ihosa/ySrZWj25vlo2UZ6J+UvGA7Zka0qazYPW6ugyYTIkIVhijJ53Hp993Ez72nut+0e84HzEMY26VH/sd9bJ3/bb82GOP2ZfceOO9h+em/vK+X/6i/2eHXkOF4GSiGkkVWuPFheEXXOkBU4jDIw/Y0hkwUcZrVFv2DAMuTLi1EOHIDCqnxiQLNmuRlKBUFF7+S5DOw8/ohKaAunzquxZc4QNntnQiLjhK/ELzjFcqaa9xuDZevjECGyPwZkcgEd1hC9giHyPK4lEAACAASURBVFeVoNmOMg5NY254HFGpokvJyuFb5GsTYOky7yd+xqaBKi1KO3Jo3tkDpzWP0LFkn5BM+81+1kU/r7alGL6grG0R4qicGBO6lFNSSlhU12ICsNoArMBwFlJhhFu27cLnb7nt+L62tr9o2f/kt40LoAz9rg/A8Zkz2YG21m/tP3Hknm/sf8w8MjOFwFI8PnHSWe2T1xNNglrBRY4BuK8oQCeilIWGZNqLIPSrm8k8gArVgFlqqSY6r6QcxDNVoLayUjJ7PCTQm5EpgZw8v5oTweopisYr+poAW5W3BNyxzrSJ1Y3Cxqs2RuDiHAHh3IodJ32LLamuUY2KlMRopoLo1XHUZsuAFyg6Y0I7EKzW66BiSw9gxkVcTMPqbUa6txVGxpG9gKVdUoDWIkUn3WrSnBCJ05tbjVGhFOWRM3DLPrKiBR2sPgAnHuHpFAKvjl25Ar54+4ei23df8kCnYX3uQihDXxAB+GAh//APXnzm1u8982uMB54WHldeloIWXEP9lbQav8lFjiXovhaRomQAZunHoB7rAodtlRsIzY9IvbMNWBTimKoiGpqFNzSNqFRXpegGT0l61FrQPGXa4q5UDT2YbVk0be4E9rbDSCkxjI1rYwQ2RuCdMwJc1iwl+0GgysqODdeyYXgBwlIV3tgsolfGEDL4chfTAVh6xwxOWjRjuW8kugPNGeQ2d8LsLSAs2CL3KNm1aMSzh7y2HjA5vPzsDMB2JUKFZgwMwJUQWSctbkirzoBJZ+T+msvA8310wsLnr78JH7/q2v3bMvV7DKPtXV+GftcH4CNHjhQOG8H3Hjnwyu2PHTmIqnhMMivkuSyCRf7bWgNwzkF6Tw/S2zoRpA1EjOkLp881BjYlQSv8Qi4yux7BmK6I4k19fBbmjKe4DsJfFkdTxWuWRWTI66goJf0eHgiiSFmApW1kWgqwrtoEo5gRbdeE4qDQk0oIg4v6XT8J3jl76sYn2RiB8x4BATHFNHcIxIiAhiwOeb9lH8HYHKpDk8CpGeWOlogHaZaS0rFnMFVykGK4Jip6SmaXIT1K2TB3dyPfSQ9uFwEVvDR3igAuvoJ75Gov2TdiVYJ2LRdOOcT84TMoHxtGqh4vuCGtGoOSbK2uLSqGuTDGzVt34jM33XL88s6uv2i33G+/2/Wh39V7L20Hz3jevQ+98NRXHjl8cNuLY8OIYgMZGmX7PjwjEoTwWr4k+8hBxoa7pRNNe/rgN1nwTUXMF0uvNYpcMPjKAUFq0ap3TWpSMDGL2siUSOHFXqj4wOroq4Q9tLKUCK0vsYJE+tG2YO3rhNPbiqiQARiEo0gOKFyk9PElwGEtLK3VLt6N122MwMU+AioAW+LLm8jUEkxpTtfhn5oSQKZZqjUcJvIkFBhKU5fYbqLNoGvAamuCdXU/bEeVnRf2ibVsiIs+jQrhBmpRgJSVgj3jYf7goAiGuL4JVywGVQa8qottRJN851BaftQc2Vpsxe/ddkf0wV27H+qCRTR0ZVX3foe86C16FG/Pt4njOHsyrH/rwaefuuefnn3KHKDuM0ykaW0VvDUBmP2YMGXB6W1Dfm8fwqIDz2JmrT01+dXX0FcVqpHg7XkWVa5I9ONEpQ5/pgwcnYHPXlC1DtMPVR9IDBBYPtJ+xucMf9Kb4W2jTVkBY4kfb5aALLZ91IIQneq359FtvOvGCGyMgAQw1c4Szr8Ar0JEo2VRvvLHS9KWWv5SAUrqYgnYiV2xnItURwFuZxHhlqI+t5+tdK0RFrPwcZISOlHQjuHAnKyiclDpVbuRJcjocI0BmHtdHGpREgDt6Sw+e+Mt+OjlV/58q5O+ayMAv43LaGRkJDeQSz30g18+ceuDLz6LaXETMpAyTClZ0PWDwWwtpwwS1YVD19WM3M4exB1ZBCkVc4Vfu6a76+oyFx65evTWJYBMO5eAme+ZefElrY9OwyrV4ZJUT3UuyxAfTpPOLQ2eQZgx4Ha3wN3agag1j8glLylU/SS+TlS33saHuPHWGyNwEY9AUgAWuQIvQjRVgTc4hejMDMyyp9SxGlyCcaHkrLSxYsRZG3Z7E9K97bBbc/AyUqtbcCFbZS665CdIaEhsgZGFgbF5kaEkm8OJ/z/23jTI0rO8Ejzfdtfcl9oXVZWkkoQkJCEBkoyQBMY2GAxjD2C3cU+H8fzwRMxEuKM9PR73dDi6xz96YuzuiZnomWn3RBu3sQ2NAWEwwqYEAoEEkoUEQiqVqlR75b7d/VsnzvO8781bpcrMUqZuZWVlfkRSpcp7v/vdd3u285zjw/WIPVlDBGxr3MIIqHKtJXj4hdvvxEduv+tbtzTLHxs8MDi3kZfPhj56X3jhhfIr/YXHvv7MM48+dewoonwgCy0nOp0pYsNVupYvSUNFQQWQYerAdkETxmUyYGmtWVmrVn+1uWilTygTQAM3HR0J1q9j1oOmK4jOTQETFQR1AjJUhIxrflmxEZEDziT97O8dQm7fKLK+vKS8iBAP2NRPMYq1DNDqv/rWO7dGYFOPgCS+HK0DBzHgViOhpW2cmYQ7WwcFWwS7scQlbFlETFO7l451KYA/3Iv8rkFgpFeMMbW3xQAvUapa6wRotg3wwgzp2TnUXz2PbLqOwGW7CKN7EWFd/SXlNgde4MtZRVDsu3btxcfufMfJ+284+M9feuaZL2xkVqwNffQ+/vjj5ecGy489/cpPH/3x6VNwCnmpF+QILqD0FqNfYo/WYCJpgEVAoSePYO8wioe2IepVhheKMrwVBpg34Sak0WWtg7qkvNiS0GKVpRnBna4hHZtHMrmArB4SeWUEwZcHUXD7su8vHSqifONOONv7BMnNz5RMQWdtaPXbZOudWyOwNQJvcgSkROQ48GMgaGRwpuuonRpHODEHrxlL9o5avssa4CRFnHOR9eYl5ZzfMQB3uIyw4CH2gEBaMdfUCLLst+KthcmrFiN8fQrN18bgVkJhxqJQhZOtjTGSAQrDKtf3ETEQSlPcPjSKDx1+24VfuOPu/2XXD37wnzZyP/CGNsB/9Ed/VPzxjXv/5uT05KOnxsfhBL5I8/laniUGGo6ohaw+RhWOVt6v6MPb2Y/eW/cg7A/QyiLkXBZc3uSuu+TlgmQ2ikEiiZYBcUw+aBJ+eAjJ5UqkYzMG5poIx+aQTFfhVlpwQxrr5dsIXOr1slcvB+RJQ7d3CNlQQfSDqWtsRJrW9iW23r01AlsjsKoREBxGI4U73UR6fh7h+RmklYYEDWxLYiZvucvJ+Uh78xLxUt3IZ8dD3kPspHKuUDq1W5eci+LI+3DmW2gcu4DW8XEETT57DqHQbK6+zUmpOTPkDT9nSICq5+JAbx8e2X/o3Cff+8i/PBAU/nQjI6G7NzvdmnW9r/O1r30td3J2tvTluPqF2VbzkemFBUEKO3Esnb8EFaeOZ+S6Vm8lLUKYKR5ne6+IMkSDebSyGIGnIghruQqUFYsTRKzLiiSaIzSX4ln6nnwRg9GCE2VwFlpwp+uIuFFnqtL3u2yfsBeInJrw5wwW4e4dRGDkCmWg1vj8a/nuW+/dGoFNPQIM6NjnXwkRn5lDdnYODrngKelJ3z7wLs/mZwl1eN4N9yDYPohsRx8wWEIWMNecqDQot7egRbtzEQHDxy+4PpzZBuovn0N4YgK52IGbL6CRJSD+erWXEIZQzSmh+E2KFlPQQYBR38eHbr0z/uRDjz520/T0p5xduzYsErp7s7PaUb+C92VZFsw3wo+9Ojdx8Pf+9rF/cq66cHNMdSK+l9qUhvQpY4p4Bb3eFT/OyoV5DjLWgQ/vRradYCbVEGWkunrzDpA8gyIKESNZqf3qPa1ANpm4xABL+5G2KPn1GOEk0dFVxBcqyJoRPIKqDKWdADIIzOAGdAPJCjhsaM95cEbKyN8wClBaseDBbzNkGXo7U4uWcSHwYU3fbsXRFUJ5fl96+vq8SrGnPYbqW8j42nFuSxvra7TCZTmzTZOkea/+Yi2zs/Lzb72iuyPAXW25kqWUxJKQoH8MEYXJUEmgR+f1ksdpr5+OLGznkuim/2lWZpsKiJmoxBgkzXY5iCstULy+dWoamKrBbUTS7899kJI0IyVeQwGf0r/P7RJ4orXtlvNw9w8iN9gnUXCS87Svl5FvyuiTOJHuHfE0rWyfKkUusnPzmH/5jHyHgE/qEgHN/uTVG2CJsF0gz/9LUoScc99DOQXef8sd+PC7HnzytiT54I4dO2rdXYXdu3v3Zqd7zwzST1ZGd3z25enxB3//K5/vOzY9lcsxGr0MN+paNxhJN0RykwagpwD/wCj8fSNwB/IKcBIaudVf2ka/zB1okCyViKz4FEgSpGTLiSJEr84gma3BrbXghWxTkk4sVVOSDWj4qklXybRWPoC3vR/egVFEQyUEORo4tkGo8bc9yRKNuyR+X/0GupJRoZQiD9WE30kMsJKOUB1G2qVMCs0y/1giAbGtZoNawQp5djvh5tDKVkKpXclDbr1m3UYggSf9n+pcKjOSEte0JewXn834X21SCvMbMdjGFzO2u+2X8Wzv5sUuCXl+caKpXcS9BuSF8SpFdGZeSDeisVmgFuqqdjwRWNFOx0ilCcUfdsSJRn8JzmAZ/nAPst29So2rX7rNOmURyms5m1YaF44ra9Q98ymiY+OYO3oWuYSlLbYO0fhmup9XecmzO0qxS8qQkKxbLuCHKe7dfxPef899R97RbH7k7W9/+5YBXuUYr+ptWZaV57Lsa99//fhDf/j1L+NMZR55n5VfDZfsohPvd40uBiec0SUdubQQwNk9iMKhHfBGy0i8VHvUungJUYeRJZTInhExo0VRMcngToeIZqoIp+aldsTF6fGRKEOYZIgDtik4SunGVDRBaX1FuLuHpLUqGC0i8ylxpi1VSnlnCEEcRw6Nbl9y1Ajt3KJoBK2xHFqMAuRwMeTzRsJNXss6ufld5yksboQhtE+dLRLObs9fN+9PQXqVHzCi9SbKtRrfkmKlo8b1I4AGoxRkWlg0G7T4hJIQ62B3Xev5sNx3F6NJmUFTx2VEy8+jI+FT17fSQvjKJKLpBTiVJpwoBTxPgFmC/JVgNpJomBGvU8zB6y/CH+6DO9gDpzePrOy2iS5stN/N79T5fTkr/CnNRmi+fF6EZIJUA6GUkbsMwOoPYGuABQMjDU0pUjrnUYq37diL+2+945tvG5/4yIc//OGtFHQ3N+Gl96YBngS+8uUf/eCRf//tv8dsGEo9dtWMK8s8PA0TNwIDKbYEZKO9KBFNvKsXUcERQevVL7GVR800EchiFmdS8jJqhPm5AQLE1Sbi2aoY4myhCacawakzIta+YkazknZLDOa5ECAdKMEf7EFw4zDcvoJ4svJZxlsnQEs+rssoLcqN8bDxGZ8zFa3aTW2qzcR3JSXH2jh/5JAxxpd/sp3KpqpUzNygMg13rtLcb10bdQSoe8sZ1EhV6VQlM8J9x3XAmicvrlOtVei6FYdt0SG3Rqld2rDljS5uXt6axoPlJdHw9X2JDtnVkJHreXIB0csTQCMUJLQuXqaRtXLCr5w6sTj+NLgef4bK8PpKQrbBOjH57ttXl1qNLrt2ONz8glEGf6yK5tELSCYrcCmLysygcOUb53mVi098Je594SzIhNeBBt2LMxwY2Y5bd9/wxM8l2Uc/+MEPblhO6C4uv1WO+hW8LRsbK58YHnrsL5558tHPPv0UWqyPGM/4rf5CTIx6qaaReJinfQUUD26Hs28AUV+g9akreObVvqQzwW1T0e1DhN40I38yZLUSJFRTmm0gnqkJQAs1smdZY8bNqi0JrKOQ3YsetXvzCPLbBuCU8wjFCJtUtVBf6qHWze9HHlmOodBjSjJcs3BMfzMNJ3QhjGYlomf6nTKNi/QnTEWyVs1MBQLW/PU+WudbO1HKaudt631vzQhIPdTUeyWU5fyToCZMpBTDORbwJUsmvid105RiKT4NgQvPgBitzq5ZXl1f1/bbS88+0+auI5J9ORqo2Rpa4zNojs/BO1+TdS1ZG/bNShVFy0EeZQN7PDj9BfgjA/AGSkA5B+R8oZUVqb5ELffVinr1w/TbiSZxLUbzxATiU1PwKpFyGTiKXpagYQ05aEVZazbLdXhfVY5jRnKwUMY9+w+8/j8+8v7f31/u+9xGRUJ382x9a3bgZe6SZVnx2fm5r/znZ55431dfeEHqBN1C29OTk3QQbREBIEJLOQT3wBCikSL8nN9VE2yjN+PXay2ITyRFHhJp0DPI4DNCD1OgmUhqK56pIp6vw59vImm2NCXNFJcAIzxNa5Fxa+8A8tsHEIz2ISr6iCXcX2TXXCuGbaVFIN6+gGvMIWK8Zqv+4tQzZK0YSaOJrN5C0orUEEt2yxHRCbeQg8efUg5Zjv2PegjIa1hj3ro27gjQsPLpuXabMaJKA1kthNNKpKSSxaGWaAJfDVMxB6enoH9K+cVGxLq+Og2Vra12c3CYTpZWI8dBEDnwKiFS6n6fmxIQZb7FVkDN+oCOA52JwIOX85HrKSHeXobXW4DbX5I0dGaWswUqsrSkqdpufovFe9u2TH4cAxN3soH5V8/CmawiaLH1KUMsTrGm2gkcXe1lDTB7f1n/ZjmMGQRx1uME77vj7ek/e/j9Xz1Q7N2wnNBXadpWOwWXf9/0sem+54v1L33m2Scf+c7RV+B7pv771n6MuRsXkUa59MRIAp0NFeHcMATs6ofXU9AaZZcuS6QpW9RwOMvmYyqLBliIyk36zciMsQac1lpIqk1gtoFwoYa02kRabQERdUWtiooDt78Ad6iMYOcgspGysueIgqNBYnc5f8tIlzUyqZOxvkNuW6bYmyHSeguYbAnKO642kNTUmdD6tx46frEAv5iHV8ojR3AK62K9OcR5RkN0JNZGRdqlad267RWOgJR4aHwrLWTzDUSzXMtcx9rqkIYtFSghECnnwy0VJEXr9hbhlQtwhpU31ooRXBoJdxMkz61DlSNGs37iSAsh2eySC3MIpxaQNiL4vqKFmcGhbCiIMynl4PcUkO8vA0NlcTLF+DITwNqqqW/TqK8NAnqFk2BedtFYkamPDv/xGcy+fgFBJZQggCRCxJRQ1pitQ9kaDDA/NjYlt8B3ESWxZMZ810Or1cKjb7sd//07H/zWttT70K4N2orUPcvx5ub2il+dPfGEP3vfuz/+zMT5f/1/f/+bB3505gxyFoB1xXd5My/kCtBaBpWDGEEmPQGyvf0IbhiBO1hekxjDSk9CNSdZg1zYbW+XhkrlCdv1UAtSoYdIh4FGKoyRNlMk1BVeaAiBR7JQB5qR9BTTUSWGJSkFSLb3wt8zpMjKgicIb0FVdrkGLEjrJDHeLeXYPHm+aGYBrZkFOOcaQCsGWpF8H3q+WhvSVF3el34wJIEjkULWn4c72gNvpBcokfKryx7EShO49ftVjYB0NHDNLzSQLjSQTVfhzDaBhRBo0QgxsnQQJ0QJm5IE90QuECOWFQLkBnpEDcyRdO1iBNy5Irp5ANJpjkAmJxd+K0M8Po/4zKyw2TmNSDJZaaDlE5aD8gNl+AMlxD052ZN0KgOTVtd+XgYDWltl2YVXap3RVY3ylb9JjH4nwJUlqnqE9MUxVM5PIWgmcp4Q5e0GLgK2UUUxUhuyX/lHXfRKkUMXUiIXCVtNeQ77HpphiPsPHcJv3X73E/v80kdvuummDVkH7ub6W+WQL/82tiAtjG77y6+/9sqH/v13/t49PT+nSNjLXTQw0qriIJZ2HgVTCTmW6OEqenK5S+osrN+Q1IO0bxTPLnjAaA+Ku4clFc3Ul6CFTb30rewzJB2dgJMM8Miyqiv4V31hXuoaLAKOhGODKfMkgxuTqzVBRrDWfF2McFZriWHz6wlaaYJW0UNu5yCK+0jiXkKWc/U7ddsAQ1NLQu0JF0EEJFMVNM/PIpypwJsLtf7LuZQvqa1JTKHzYo1JGHPYlsL0M0E5QyXkd48INZ/bQ1BLR/bgDcSkWwa6Kxv1im8qXp4iZzmPgmx34cNDxozHa5OIKnURqHdrERzqZbPFzNRLpdZoDmn5SK4NpnLJIFfKw7t5FF5/WZD/SY4pXgXuWfk+1om7dVkQEdc0ZmqonxxHeGFGykTkNmbZxOnPy/nh9xTVAPcWEebJgKcpaaKlJW0uAESTlTLIf0k+S1DQxYvPwI+Vo4BtRUoHmUUJ0ukK0hfGEVaUPISZQpkPOS/VgaI87LKXaR1lBkPSzLbDQ6h5efYZfgfTYiU4LM9FK45xeNs2fPqud73+vtvu/v3BnLch68AbzwCzBQn42mefe/qhP3vmKUw364oIvsQIWyPICm3sOwhJQsH0RSuBH6v2rrTeGKDRUouEuGHWHUiYkcYxwjCS+zHFRcH73D07gd6CIB1NrNwGZklmuJs5rivZd9wYhsKNBjlrRUirDaDaRNYIgfkELSIywxaCgRJK+0eR2zUgh1UYR9qP280Ue8oWqFTmwo9SMbjNk1OIxhaQVkPlsm0TbegXNuBW/Q86J0aEXFCjdJIKPvwdgyjuGoG3v1cQtHIwiBfPTa030T+632Z1JdO0GV9jHUi28jke1wHLujFymYd87CIcn0P6wnnErRApMx8EVBkAnrjT4lFfcoR19I4LmK+/JGvB3zeMuC+HJNA5d42uNrqKEaCjGIg4fTo2i8rr5xHNV5ErFOD2leD05OENFSRqF2OcDwDytouNM+t+PRcG94jnqQJbymg+hUN2vihFMldF89Qk3KMzYpg7e/bfzCNzV7JVkN/fzwWIwhAxue/ZT+ywhvRGLmkBX6cJRkpl/Hfv+dn0l+64+2sDDj6xEaUJN54BHsvKk9uzr3zm+08+8hfPPoNK1JLFupQBll5SMsT0FBDkcwLkyaoN6ZG1qczlFgzNKmstjIB5UFDmUBhq8gFypSKCu3ZI2jbiAWJ6Vhm12v4/HvzreTHiFyeUB5Vp4WAfHbWFCcyK66kAW+JGA27BR26kF/4ge5xZLtY0WTcNsGmM1Cim2kJ8YQ7NU9NIZ5vwYn768n3WlvWL301S7/xOvFlvEbmRPvi3b5NUNBVj6JmrtTa2W87wLQO8XutTgUQuUiJ5ia3gHopiyYIE1Ri101PAa1NifIUIx/zo+0xL2nInGLsjfLK/9cHbOwRs60HWE8BhlsREzt2cfnXwfOTo9C3U0JiYFQe42KOtRMLZLKBHRwwbU+qGfcOkezUKXs9LxlnG3Sg3EZ3diBFdmEH1+AUEk61Vnw8ydWmGlpch6C+j2FtCWA/RWqjBC5nxogNz+f0fpykG8gX89sMfwEfvuOfJEQcfdBxnwxFybDwDnGXls1n02J9+51uP/pfnn0U9iZc1wJzjpOhL83pxoFfSWY3xGanBcIKlbWWZUZAUtMU5t+kQlRLOcz04h4eFBJ0HvgB/CAwyxBlMD1k07nptIqbzFMegMBQ98jSqFa5YklEyKm6GkmdyCALJU8czU7BTF6NfCWApx0aUOeXMJiuovT6OZLwCt5lK24YINBrw2WXHUFCm6kxJTZspOaOr7BbzcO/eKXMv9WDf02zJRQZ4fR2k9VoX18LnyhqkJCazRwTt0NjEKfxKCIzV0Dg7hWy8qtFVB+Wr9IOb8gvX9ZKXKVsk5ZyogOX2DcMZLgMGaCiGhdmwbl0GnpzzA2TMntUaYnDyhQK8Yl46GOjkyssMEloifLHJ6mDQ2V+vS/x2nmEgslkZugKWtKhZ/PoEWuem4FHF6TIUoFfyzOJ0pxkaBQf5HYPoGepHOF9H7cI0vEaqBpgOymUuGuDeIId/8uB78V/f/cCR3dMTH3E2ICXl+s3ulczQZV6TjWXlV/urj33mu9969LEfv4AmDcsyETBdyqjoIb9nGOVtg4jqTcyfuiDk4aRNoxVaqUxhaRD5OFqOMew2XJw7iijv24bcjiGk/QVE0sJDeUGTHl1vEBDR0lIPZiisnmw7/SrtG4FGn0zxsf4ivXbGE5fa8yon6grfRq+fusR+LUbr1BQar48hm21KDZDev+kMXvJuQntHtKT0MRkjzFoUD2Y6V7eOIr9zSEjrBUlKJKUZA2EZ6/L3u8Jh2JQvo4mh80UMgPRze67QMzpTdUQnppCMzQuaXw4pY3SV3MHuxMVU7VID6LBdmICIgSKKN4zC3zWItI8ZEY3sVlIbWtPECEMX4OUDAQxGUST1U8qMSg1bhOY1IyOUtsbREKCR7Nurw0S35NixtT4FWkgRs6bO/1VjxKenkJ6eElR6soYatDZaZGgNFlC8YTuKvWW0xmdROTku2BQCUFM5SN94sVZc8Dz86n3345P3Pnikd2HhIxuRE3rjGeAsKz4/P/WVP3/q2+/725dfwlJyz/ZgJTCgVXSRu2EUpd1DYmTmeciPL6DQsDzIy2+zTgMsnqlsGKISUkQlF4WdQ7KAHPbS5hlRM9JUcMh68zBZGj5LaC+2R7BnRFUTvKQHmmQDxBNXwiEbZQgoYk2n0ApjS27X2IEz00Dj2BiSc7Nw6xFpgyRCMPiTJW9CBjRu45BsQwRs0KCzrmcAceH2Igr7tgnCm8jSLKFwhbSOK1n8St5XF7/71q1NmpF4DNYXiVVopUjOzaNx9IKofgnVqxXosGIlZuDEx11Brk84lLguigFyu4aQu2FEtLER6D7uaoZKqGNTODlPonvuJdZSLaeAMLlR8YjPwTq4dTToiBgDTNzJel18HmrxtgyRSMDoYqIisoPedA1eK0O4BrlB+b55H8nOPpQP7hQQVuPUBGonxpBrZZoBW4KIQMF6wEfffg9+7b73HNnRbG0Z4KuxUKanp/teTutf+ux3n3zkyLFjS6p9WAPMFFcz78A7OIIi24YCD/VzM0hPzSKYCyUiuqIz2KTAZNF0WCSJGMnPuncYuT3DQH9BKOKoSqKv7ab5WnnEGV2IR23oHKWlyhxc9P5Z0xY8i5CZmH5nYeXRXuOV9IZXfoIVXkFqOTbwj1dR0cVa2QAAIABJREFUO3oe7mQNQazI9WZGUXKloFzqku/F58xShCxHOEDgk9hSWZNaJQelQzuRO7QTcW+ANA7h8+Czh/4a2yTW/P038Q0kxWnAVLrOXHjNDOHpaTReuYBgIUQKI9Np1qMF4AlrWif6+TLjKKUXzxO8g8uId7QX/o3b4FK6L08REM34dO2y3O2sb9N5MFzrgsswGuCy/Hi2MPVsa8BEZhvMhkqJrs/FoSElbcznSwBvPkRyegbh6SlFpLN8sFoDbHq3naEynH1DKOwdhdOKUTt2FuHJKfiRnklLpag0WZDg5992O37jXY8c2R8nWwa428tEeoDf88AnXpoe/1f/4e8fP/DMubOywS5n5KwBDjIX9TyQHRxC4eCo9NZl03Ukx6eBsQrSkLXPZZ7coCrlfsYISxRp6e+iBEnBRzhcQvGGbcjvGJA+WqZOWJtkDWU9L6mfMR7vCCVtqkujRCMDaBmoRIVo8fUrpYDX/N0YfTdTxOcXxAB7M00U4SN2U1STFvJs/1rGAPPgIpkBX9OKI6H9Y58gHWe2SoRBip7De5G/dY8Y4DgOkZO+0QxEuBv5iTV/ja0brG4EGMXQ7RNHkOnaRiYo+OaxMRRqRMfHildgVGjbb6Q0oqxLzOwsdXHNJ54PvxULqWkyXIR/804FZJUCkfqjEe7qJeUQzYMxrazt9YZ2VTCBymmtkoP6JNLjLlRwGqWv58VzTspQjRjJuTmkp6bhTDeQRaqgxtzFm72ktk2AXM6Ht3cY7p5B+Nv74dRaaPz0NNJzc8hC3p8gzKUHgMQcjx6+Bf/Nux89cjOcLQP8Zifizb5eZAh37PzLFyfOfeiPv/LX7gtz03Ak3XiZSTL/xPpis+AANwyjcPN2eH1FODV6crOIzs8inagK8MMTEnTV6xSVHVOfstzENvK1ij1igLlAWAf2HIQFF95oL8p7RxGM9CIuughdJbtgFC7JaKP2o7J5Cixpe71vdjCu8PUCtDLE6cqmZdLiRulPQVoWnmV8ERpg3v/ScP8KP/NNvYyHTCNGfHYOtVcvIJgNUXCYfk7RyEKQbVvBYktcnCuC4UQAKpE0nxWfEOCLl6Dn8D4Ub9+HsNdXA6xnm7RVKFdtN8OgNzUam+7FEujJVhCydWSVCM1TU4iOTyJXT5F6SRs0yD0nUa3pF+Z7LnXOdCYX5zNyHeRalOlMEQ/m4d+yG+7+YTg0wFKjffMG5M1MkqC8DVCsk5NNjKzp3bciK+osm383X6GrHQgGzyLYDzkPtBxF42hrP8zjuc1YMlPN1yfkvCRAkv290mu9nAGWeVVD3RbD4K1NdB8IUcpOpP15eD1FuPNNtH56Vgx9Rq5vOl3LZBDDOMZ7br4Zv3HfQ0funMl/ZMfbN54u8IY6eQjAqmzD156/cP6hP/7KF/BCZVoP32UmiSACCs9j/xCKh3fCHS6Jlm42XUM4MYf0lWlk9VAL/iSEcFSXlnUa1j8IElouTcW+Ui5cvo8EHaVdQyju34Z4sIBGQM509XqlB9d2wHCVGyUf0fi8irMgvri1Zlb4/s2cKG/1a4l8rUVIzsyh/toYvJkG8iRh8Aj+iEUlaTm5i87MxBsIN1ij9xKUb96D0m17ETICTkKQuJRZPiY4PfJVbl3rMgIS2ZqeV5IukCI1nmugeXIa0etT8BciJDnFAUjfrs2EmEjYGrBLH16SPcYQs2wZUCebbGsDBcmEOHsYAZMhQDEgm/mSaNxmAYwIiqDSjZHMQgfeTB04M4MWwVekASX5DXXGXQcBUW7LOMdCBiRAV3Pm8bWBB3YoFHcNwblzJyI3he8H8GdCNH56DuGZKSkbUIwiXQYFSgN8/4034lfvfvDIDdXahtQFvopH/9qXeZZlpWqGv3nu3NlH/u1Xv4gXqtPSrL2cAWYTeZR3gb2DKBzegWy4JOAbtxELxV360oSoB7n0uKJYEcJcMAYiL314y4yS8CoTrcjYOXDgDpZUrGFnP9KevPT3tWvBnZy0AobKxBBsqElY+zRedAfp06wlSM/TAI8jm6qoNJvnIHJSsKd6Wb0pOjYmbWfbkeQANlFVWnRROrgT+Zt2Ie7xkaQxzbt4+kROO9lyScy3+Mtu3e6iEZCIiynOJDHqVx7ShSZaJ2cQci3M1JHldXcIYMlEaULILxvHoIQ7MRltJSyD9vdceDEjtlQ43Iu37kG2vU9AWULcstkN8KV4FmYZDBDTiTO4czGi8TlEZ6eRkg6U/M/kRDAqVR5z58tdUqi3OziTqDkr5+EP96K0awTJvl5EToLA9eFPMwV9Ds0zUzJnKxlglpzeeeAgPnHXA0dubra2DHC3zxcxwMDfPHf27CN//NUv4sXqjICLljPAfpwhyjlw9wyJAU6Hi4hcqge58KIUzvFZtMbnRE+X7FDU76RRIPBAgFQrUNWJUIMRAqfRiFn/HSwit3sIxW1DSHuDRbYek96xNSFh6pE65Ca+PA9eM4EzWUPjxLi0nrBHW3oLTZ19udGR7IJhwlKtJyNFaBiTktGiZCT8PcNIygEyGmBzwKgW8foSHWzimTdzrK1EQrJPZ7oeIzozi8arF5CMz8MPuH8MDaIZLFEnMyIbix0KJn3bkcbly0lTy9eQK9zd0Y/izbuQDJJ9SrEF692lsN7zLyBjOkEmrc95EPId7qt6C8GZKipj04imFiQV3ZYINeC55WvAnCdzPhqt77ToCxjO2zWI/CiDFF8cbRpgb7KBxsvnELITgk6Z9O0vXQNuRRHu3b8fn7j7gSO3hPGWAe72Yrq8AV4eqEBmpDDniEEs37JLDHDTSeDBg5+5yE230JqYQ/38lERflNTyqFBCY0mEiAFfLZll4UFg2gskqiKXQNFDMNKPnu3DSPf0IeOik0ja8KNKzUW3PnuGN7MBTpjGigF/roXW6UmEZ6eBhaZKnYnOr6lHLzEBqiN8MQ+2nTNGScmNA8jtGgZEZCIQ5CT1REUhZ2mQZbeX8tb9zQiILCaR+kTDu54g4pOxCpqvkTd5FgWqCLFn1iSLrcG0EbHtUrHHtP29ylxCiCMS30HSGyC/bxS5/aOIKKbisQyx/iCn9V4Igq8wqkoCaISHgPSwYSSKTf5rM2jMVZA2QqXYNcQ+AuAUB2bpCFhIfwiiZPaBLIJklqTy2v4RpNt74JQLcEW/mYIVHhySr7xyHvHYvPDuw+chvPQItaIQ9+zdj1+lAY6TLQPc7cXUmYKWCLgyLYf0cpq17MNr+Rnyu4fQf+seYKSMBtjnotSFhcRDNFdD7ewEkrE5ePNNqUWJsaTGqJX7W+LLUfxb9CoT7e/jW2mE3XIe+b4eODcPwxkowS3l2R+j3MVRvGiAuy242+1JWeP9RZM4deDXQ8Tjc5J+AnsMG5k4SMxWLAcEZfZBnBkLJDG0fszt+yRAuH1U0l1Me2XUhzWpTHls4RFeZ5jpGsdvo7/d4BO1FY4k/gRizTURnptD68KMgH8s8aSdLTXGCmJkxkpS1Pw/o5AlQCIDMAq4Ptj/PVxGjojbbb2C1ZDyA41+V/uQNsLs2BKOI/swiB3JSDWn51Efm4F/Zh5JSBQ5DFBVOQSE9MZ2Vyz5NQlBU+gZ0d5JyYe/cwDFA9vQ6vOR+K7SdPok/HCRXaig8fJ5YcSjmhupSZdDgTMCfse+/fjkPVsR8FVZaQRhVbfhq8+dO/teGmAFYS1vgNkL2mCNYdcABm7bB297L5qsAhNkRycr5yOl0PfkAuLzs0jGFgAqBZFIiekvIwO4ZARMDy5RA6zkFWQvzqTxnqLa7t5euCOUx+sXAQfx5i3rlAAdNjcIxPXIjp+p1GCljmh8HpisyyFMUoY0jJQxyByyl6JCiXrmHAuQhMOZC+BSo7lcgE8P+8YBOMb4CrBE2qzMbAqYZ3OP/1XZuMt8CDPGWgRQkKJETWxBmW+hydrjyWkqNID85aINLBzuqsojrT12+kSij/gNBUVaRjfymwcjfcBID9xhRl05ibiE+MNwSq/3GKzn50ttXBh5PSHE8esx0qkqGmMzaE0tiIaxkpSZmrtpW5R2qhUpKLnXXMk2pAS9jfTA39WP3I5+hIGWjsTw0gAnLjISsLxyAdlUVRSymKHSDpLLXzTA7zzIGvD9R25uhlsRcLcXkomAv/TDM6d/9t/97ZfxYnVaJKuWCyJZA66mIbC9F4O374O/e1CjqgTiPVMdhTvZq8VIxhcQnppGNDmPrBXD83ylvVsGZS1eoMhuGZSmpMtMnwv/KGWiT+vvGYE3OgCXaVABDin1HtNvmzkK89hy5KSI0hhunMg8eLMtJFM1xPMNZDNVcViWasdgtkHbSTIFvLGdYYiHbR/cviL8QR8EOosGg/BfS0FRl+qWAe72ll3x/lz+RKXT42VfNrMSXBN0vuKFJpKz80hFQKUJ1JrImqRzzEQ9SVqSqPYlNMUuHHICMCNFR4s//Pv2HpR2jiAbKCAr+Cr6wM0vpZ8tKQ7pwhOZVrYbJUimqojOzsAhC1m1iYiZPSPiwlq9JAeFVMReyxTQTENzRhDsSFlKAOloAVmZdf1MpGGlDdDXzEd6Zh7NoxeA6boY4NhlVnHp+1Ot7d2HbsQn737wyMFafcsAr7jb1viCLMuChSj9b39w4eT/9P9+8/HdP5wag08juWwbkoN6HCIZyKP/1r0o3rgDrZzysuapteOoB0hQVrbQRDQ2LyCAbLaGINT+WD28rXydpr7EAzQ/tjdRyS4WYc3Sc5tGIjvGRvNg+yByQz2SAqNCE4EhINjA9ArbRU2TrALi0kW4xlG7tt9uNUQlIqF2DB2jMBUpwqjaRDq5ICl72YYkNZGIV/8UD7yUk8NYYqecD4ep/r4S3IESnEIOrpsoaYMNeiVP2TEm6810cG1PT9efjgZYteaV9F9oJ11PDmfK3nm1FFkzREJN4GpDapFZGMsBLS0uYSRRL/V1SezgBOaHBtn3kIyWpBSU5tk6YzoOTLZE4+7r+xK941TPK46ZWls9X8g2J8xxUSaRbzZVQ+PcjBhhnn3MOITSa62qRQwW+HrpvTZGmaAszpvtHXZY85WBNaIoPiTzEOwdFo1u8iPEJB+hzCv/3zBiUf0oOj2D+svnkKuE2te/HEA1U7W2B2+6Gf/ovvcc2T23sGWAr8ZSvlCpjL5Unfwvn/nWkYe+c/qUoiSXQcrRm47iUIBRPTftRu9te9Esu6g36yiQ8F+wzoxePVFGSSstpOMV4PycNIYnTIOa9JhsVvLKmrSZRL+WHWsJR0362JgWKwXwB8oIRnsB9iIPFESlSb3PTEFHJq3D5WkjNjY4Xf/HhHVuTGBqTkah56tHyIwcHQlThJqPAA1GPnxdOadRDQ8an02fnhzC/FPq+GRY2ro25AiIQ8Y9mhA3EWn/fhTLn3RcRYQlUtENVwyvB4esaJx/iYhdRHmlNFykuNiQQ7HKh6a1VAUwnjEWzsigk0ZQ9MrDFH41hDtVQ3p+HvF0FVkzhuP5BjS6NBc1958AHUlyYhxi11NWuoylAjdFMhwgv3sY/p5ROf+Ef5781iKDpnx01EMj5iM8OYnKy2dQbmnUHYmC28WXON0GxxHHEd57+DB+/V2PHHmb528xYa1ylbypt2WvZ4Xv9p77yme+9c33HzlxXBbKchGw59IAR0jy7AfdgZ7b9qLV66MRkvCBm9Qo50iI6wCtBM58C8nEgkTB0cQCEGoKVHtLtdYoeS9667KKl1FUMjke4XwlKXtfHs5QCf62PuQGepASkUkPMtH2GW0DsIzNNMSSmNuUF8ecQKzFVgSTarbMSVILNE3+phfYquYouGezN5ls/GUjKUrDHWMZo1Se0uwXbSUwoa2p/draJBNMrnYcbMaLDgwJhsgQJ2GEITKxIjGUIXUn6wJCjacqwFxDBBZEWIwqYwKRWMGBNWegtmJq6yA8TzS5GXTkbxqBN9QLDJYBZihMHV94OVyGF1Qn8+BWYzROTKB+7DzK1GIhPampT1927uTcTfGzb3sbfu1d7z1yY4ItA3w1FvnY2Fj5XMl77E+/feTRx4++jGQFvlSpMSYR4sBFfv8Iyod3Ix4qoJW0IK34vuE6FQ9ReZAd1kJYfyIoiIQAlSZ8OtqS+tRDnUqGbFMSZZ1lDLAlehBKNjdDHDjIenKCzC0ODcDZ2YMspzrCBG4pMIT1EU0bURFocx4fi5SZcoAarmpFu5oDlyITbc4jZRvT03qR7WvTg1yvxqbs5me0Uc4654IFEA1vKxxiPlzqQIqIX8RsaI3Isr91m9axm8Pwpu+t2Xxp7yHlapgl0lrps+MgzuBFCeLZGtIT0wjrTWTsvW8lUnNlxkB4EAhTWQakKOegk0nbEil/Oc48F+NigJTqU6N9KN66A2lAxLPG31JuM3rH9K1ogD0+2HwoRDzh6UkUmf42AitLnX3c66zgfeSue/Dxex84srsVbxngN71IVvGGLMvKr7Vqf/OZ7z358Jd+9A9o0kMzB/TlbiepZXIEe4C/sx+lw7uB0R6ELhcb6yD6diFnMLUN4aQNmeqKZIHG0xWg3hKZPKa86J1xzfDHGoClDvqMVJWG2pJLkAs2yXuyQP1yEd6ePgT9ZUHqUporZRqVh4apDW9mAyLpKiNUrqevnWFrgAngMZVz+zvbt224rjer87KKrXVNvoVygprM6KBytQvB1iNNyUKR8up8LVaErm8MxWXPPIsx5C8lysyQsJZLQxllwHwD6WwVTVLxXiDi2LCMib+ieAqqi/FPdxmEq241toLpOUhN57jgIxsswxvpQ260H7ldfXKvyOiRW1lUmTJJOibwiKubrCkT3sQCAmpCC2vgG+VcNc5WOdiS7+OT73oAv3zP/UcGtvSAr87+zcbGyhe2j/z1n3//ux/4qx8+jfk41BrHkpB4srpQVQVwRkrChOPuGlD0s5EjE/EFMmDZhnQbVXPRTjcQzdbQmpxDNluH14iVKtEEWdZALmUoySVNKD0jZe2bUzo2ctRmgQtvqAivtwjfAIf8viKynCt9im1Wpw4nf7ORdjAlLxcPYGtc7VITQXUT9RpaQ6PW3u4L3cJYXZ192a1PIem/gdjJRyyufxUOaAscSBbK0kIYkptNyPV86XoXI8csHQOHZoxsroF4cgHJTBXxfB2ITPeG6evVBJK14IxElz9xLBe7dBoUfMnskXHM45+9BWnFJHrayqLadkKTlxAD7zdThGdmUT8xDm+uJdG5TDTT4EuUD5I4RX8+j996+P34yB33fmv3lPOLzg6n1q112K37brjznEjosSj6rT/7/nd+72+Pvbz73PyMTHC7OH+JdB0TywK1IoJvII/8jTuEDScruCqBZg53RsCS9rDus1kpbpQhq0doTs1LrzDrw34tkl5FAqcY0cr/lhhJYcCiK0fgkATZ2k8nKWemmukxBgRp5eANlpAb6RV9YSKlMzLBLCPF161FcS3dlzV8GwHp4aAkALYGyPqWGViDoNWJsKj1Tc5zci1N5aqeRQDLpvwgPcJWq9pEvVoSUudM6RQ7WeaIQdpwR9yqxknOlo50T/s8JHdzK0YqUW8d0XRF+LZJw0tJQe4eSc2LATZ4FlNjl3uuYIAlG0gK3pIPd6iM4s5BQT1n5ZycXww8pDRkcDOdUa0kHGmAawmaJyZROz6GfD0BOag1bXhJx4IZGZGvjGOMlMv47Yc/gA/eftfXR8fHf8XZsaWGtOrF82be+OzRoyOPnzv5hR9MXHjo5bOnZdMtZYCJlSXWWJSOenzkD21H4eB2YceJkkhAT1LsYA2YaGUB9ZiUFwk2KHcYZ0hrLSGHSKarSCarcCoKWKDXbfFbnd/BbnveX1Kphn5SjhDDY8v17hvVkYSkW0UPzmAJznBJFrNLMYdCbtHtt1F+BzHFmxm3jfjazo5D4yt1fA2Nfm31oPP72bNo8xy/G3F2V35mzYRaMn+NeoWWxYZSls3ZOGWSqrYOGrNPm4jqu22AjeQf9bAxVUW80JDWImeetd5Y2rtSx5UzSUZT2h2NSrFxYKyEIulBl70YYPTk4Y72CcuYP9Ij5xhZrDSzaHEtrPfakpKmrDk3GQVXFiJRQqsdH0ehpeVA2dlLMGHxScMowg0jo/jH9z0w9qHb7v5fR198/v9x7r03WnlFXVuv2JDn0xNPPFE4PTL0lb87+pP3P33imIpXm/Qk08gk59AISGJMkRVMqA2bdxDsH0X5pl3AYAHNLBK4u7zdqnYYj09AU2wP8jytP7EnkannSlMQg/HkPJL5Opx6KhGu1dK0NHhimA3oQOgn6ambdikudqvxY/VMxXtnxEsAQ8lD0FeCXyoIgYhbzAmCWlpraNBNPyMnj43yAss3uqoqTqBUfUQZbvgI0IA7ZKFepszwhgTBJSkrHiCKz+kA49jXWG1k03NtBd/loyz0bZMiaN+qY8oCn2zt7lJIoZNawfrF3wjxA51UZoqMkbAOVYfLpYkPs1+t8bF2efFg29goANnbNvIzX0XQzEZIwmbe5ExhDz1btuoh0AoRVRpIzs0jrjWBRiS1VsFUUT7VBCWS+bPgNsFcKKmQbQAiL36b6MbsQQXBmRIahRX6ivBG+5H1FySTx1pwyswUgaTs6TabVPag2U/KGkggTSqkHw0CsM7NIIi0ZGeZ0aRFVAkVTE1aWXVogN++dy9++10Pnn/nvgP/80Ch8GeOs5w24lu1ot/a+2xIA0wk9Cue89jnnvr2o9945ScKXOJFgymelYrMK6WzI0hA9g62nExkAntu2Qt3Ry/qPoFYBFUtfXX2uVEaj2g/px4imp5HY2Ye2fkGsgZFw+m5GZR0uzdYja6mUBcZtVQH1aRKBU7PKFql2YQdS8gI9Huk28vw+0vwekuy0EEmrcCV1BodjVA4KZgB0IXKxcu/sw2AjfYiPLCJL49Ul9YAWx5oewgQZW5wADL2hm5P3tA20lt9xGtZPrrKzTFz8R96oCYECemhr/gf3Rtc2/zPJLu4D1WDW4uyuujua3nMa/a9IlRhxrAty2nKWJYDXbowSG9bCwUoyvould2SCpnkmno+WCNuiILsOLYNYZs7Q01v21BKCc0EDyQZY791MYCTD+D05ODeMAAnn1Oue55NvrYNkr1OOPL95SNoN8yQnJ9D8/gEMNuAK/gadqMwd63nmEhxCNjWQRDkkVLhLorw6G234Xcfevjc7vLQ75cLwZYBvlqrmAb4fLn02Be+9+SjX3zhWTQNPZpsdZNOlkVkDBkNMNMxEb2p4TJKN+2Cv3cQYZneVLxsHzENGr1CgghEMo2KLVwbjRbCWgPRuQUkJO9ohiKjx3oLAQ/SnsRahTT3qrcni97w1Fq0pmvQgdIEZXpaOzcAadyYhvZ7S2KIiZYm21NQysPPBUJoTiQ3G+uF01WAj5pWEi/V1J6v1txca5/jukp2IvSfNpow4Zgc8aZlSXoezZjJ682JJbSFW9eqR0DIMkRFR2+hwgqLf88kw2HSzKYVv53pkIhpk4+/EPloX64cEByqRFt5qPRGUGjEaLfWRGuuirTSVFlVIolJLMQ0tHGBLluWadfXO8hwTLDAo4sOPJkIWM+Nc64ARoPBHjmPHMp7DhfEcRXyE1NOE8pK4msYEPDfl7i4Dtx6qipoJybhVSM4SZsuRIVraIANXS8Beb6XE+POc/OD73gH/ulDDz8xEPf8Wk+PM7bqRbqOb9yQETBFGV4fjv/mb5/7wcP/3/e+hbk4VC5YI3Qgk89Fx/Sxw6iYRtNBQi+qN49g3wiCAyNwRnuQppEsFpvivHQuDLGagjvMIS2vtYLvs3WhTZQ6y1xN6CxRD+FHgEfSJuPVS4QlKi3aL6dgEdZCLEONMZgm8rLc0rLRaBjYK5zz1PvsKSDfW0auXABKPrJigKSovxcjzNYAQzTP77yZY2BpQ+vMTBjja+fSGuHFjWBSY4KV45pZmgloHfftxvloA5pTA6xr3+4f/ktqiGrakZhxgtrUoZvZAEtbEI2fi5Q81xw5soAx0q2Fcs448yHCRhNpM0JSbYLkGgQxWXEYtl92ctnL/dqYqMtIfbYpdzVvQYwKnXyqiaU9eQGK+oO98HoKQM5Fmu9AqRsHV8ptAr12VIZ1iUs6TxYiVI9fQHJ6RugwKd7AXmLl6tZI3PKYyanu8CzPMFwq4/6bD5/7nfe891/vzvf8h42YfraO0cbZzOZJKcowmWVffOroTz/wfxx5HKcq82qAbfqD3MEkaQh8YYHhpEq/KBdG4MDZ1ovcjdsQ7BtG4iRIljHAIvYgp4fqllpeYT3AXRKSKh1eI4ZTi5DOadsSPdGkESKItcdOCQIMitemhbkRZF+90Q/Sg8oBM3DiKYrIQ6rCAky55314+RycwTyC4V4E2/qQ9hZk8TJdw9uSU4vpvc19cd5s25i6Ikz3d6Y7L5IoNFFaO0zbzAbgLVk4ps3FGF/juy4Ob2qoBW1muYNkRXfFJl6/PB94VuR8ZDTAcYKUjv74AkCOdLYR1am1mwrBhihFJUoxKe15NICByfwYmltr1OzhTyMoGT6RDFTgEwmBeLk5D35/UTEovQU4bJXszQP8b+JRhAJWS1+aeTQLhoGGEphdFoNiHTAGRc5EHfPHzgJjCwhaBMKSRYtShIZz2mQ0XdKKSm3aQSEFbtu1G3fuv+HJXxzd88v3Hj489ZYs1XW4ycaMgJ99Npi9++5Pv3Lh/L/4P7/7xM4fvn5cUhXCA0yAAFMUbD8KApAvNGHqwnGl15dLLenNIXdoGwqHtiMpuEjI79zRYdg5D6yIyL0I7DIggk5mJn6ucNZSXziCtCxF83WElQaiWgP5SiRUlnEUKYk8ayOSQjEGWTiL9RMXsZ72v8mMSSCDi5xQbqZSz4kz8seQxd6VFFBh2wDK+7bBGSxLf3FMAQghUVcw2ma+BMMjYJ1FNKYAdkxtXpnmF42y6swaFHyaiqDO1rWWEWBmqp3PVwGTzpYZk1ZliUeAgwbBrGT/2qbR7WGuAAAgAElEQVSyaS9jgKXu6nlI2U40vYDo3Iz8pAt1+Mjp+WOUd2l4yWJlCWw9jqpRauM8yBljo1yilKltIgBQV9qJqNbmFfNwfR9eKY90tASPtd2CL4bYIRhU6Hs1lcQMoxpgA0zn5Hosi4mplzR459XOfnB+wwTZ8RnUTk8IEEv4FWhoeTP5GCPsnKRyllMYgh/bC+DBmw7jwdve9s2DE/MffuCBBxobdY1s2ON5IctGppuNv/p333ni0W+++CM045YsIKL2aIAlfeIHgn4mgyQnNuBmj2NEOQfevkGUbtmNtD/fRvxdbhJFb1ZSKwoOsQvY/p0p5nZthS+lbinrLqb+4s+HkhaKGi0kjZb8PW3yzxgOG9Q71md7cZrUE58nkjq2C082j0GKMj3qs+4SIB3IITfYi8L2QXj9JYmAozTS1M1m6sFYYgfyQBJErdGNdini0Iqlhs8DQPn6mL73kZGJLPAEOyBtGILi7CR/2KjbfB2f2zFiKUS7cl9Q3D1OdY+yvJlXdH+W85EEenBbOkk52DezA2TOAQKZiCYWdr75OqKJeYQTcyIX6DLHLCApRsLKiasKbvpvjihHUb6RIaV4otpfK7Vf7ZNmxOuy3bEQICgXEfSU4OYItPIR9nqaRvY1nazJusWODqvVbUt4glxnslH6xZRSt311MJRxP2bVFuIXziOaWoBbadETkGchfzeBpNKdwgiCEX6QQ2TaQ7e5AX7xrnvw8/e+81t7qs1f3LEB+3/tmGxYA5xlmXchan36f/vWkd9/7vXX9ozPzSByMvi+JzRltLr8Ozcx2ddYx8i5PtwwQkgUw65e4YXOtvdI2mWpQqlN2YghNmlnQVrzUKeEmsm8MH1jlqZJ/6pQgxM54gUmpLUkUCtMxAAnTar8sJ7DQrFtkTEoajH6xqMkGpobgM/IiDfwJDVEr9TP54SwgyAtEp+L1jDrllm8mGLdxAGEzIegwtVxovOTVYkMrSGdqSAjvShfVMwhI8CNhPHUE+Z4CqbAaMd23X5ptHC9XUqckRc5SbbGpJW6RG1prYmk3pSoye0P4PUU4ZGOdaCsSFqucxoPyVJs4hS0pHBpPAk/NoQ+YYSk1kJcbcJpxvAbCniK6dhTNIYOJo2wAKFSuOLhG21koxompTruCd9VJDMNfD4nZS23mBfDK6AvcjW7ienIUIOtpB3aosmL0bbCXDqia5tBYvawMwiwaXEp5bpIKHbz9Cmg2hItYt6TQVTqpnBNVlIwM3GKIMghNv3g+/JFfPy++/Hh+979DW984r/aMsDrdHIcPXp05EuVyS8+d/zYz/zo1AnEvi/yZfSwRQHEB3LwxEgyJSM9v4w6GdUMFlHcMQTn5hGRtFOQlfag6XGoxlWIMoTIysgWdkbCJiUiJUZdhW2hb3UUpQqiUbPo2HJhcdVqBCAUmg3C9W2N2LQkdYgJyC1FWk1VRkRyjxuHP0xLibepNRcxGJaawqa1r79z/YpXm/IHEzlJxytFa3IB4fkZZNMVOBR4pxPEu+V8gExkfWV4A/xRlKebDxDnFHwnuQfJ3hnktOUiVa/s4mcyr2u3zBjgly6JRYS63FLWlzHAdq4u6j1efgJXMk+2P7adpbGPz4ex38esGXmt+S72G10UgNrv1dHPqUQ0dt2ZbAHbAUm/yr00l0jmJ5mv6YFbqSGtU+ZTwQ0+QYUc++FeeLsG4Y32CaUhD3mCbQTMs4kvjSzt2cKNrk56GqvEYJ48yjybWB+W8pb5PYGonAdp5zKYBxpyI2Yh96SjUwq0PEODaBSKiIsz7cKihtQ2vBbNbtanEAyZuVEDvIi10DYmNfKi7UzjKuLPrpyBXpjIXoyeP08yA+lhlvtJJ4hJawtYVXXAXT8Qp8DPUty1fSd+5d53n3348O1/OAz8ieM4G46AY8NHwDLXr79e+Pu+3Be/+oPv/fzf//THaPgBvNSDH7FOGqPlpRL10tNmKlrQfzxRKN5dyCFXyMN/x05pTWJ6Q3oQaWCNB8fjWVPNV351nLWXfdPi3fRIlNrJonjPRe+xaZ2LHqC9I/Wlyhi9ia3sMlNjN3TezcGphKieGEfr5CQ8qluZ4rjUqmhQuNPZX10qwO0vwxvsgcuWr6G8Cr0zaiBRiukx59EjJBGCxrOnZAdpmXkuFZc0PDFtA9wR73YYbykbGGO2uOaWN0ArznwHCKD92g4DL4dvhwNgiTPan982gBevMtsnKqh7AQjql+RhmzZCIX6QFP8FGtwW0kpDIt8sjAQoJBEWS0aUmyRisC8Pd88QggOjSHtzkoL0eWhf+dbbdK/kHLW5sO0iM6Ng5+eyZ0vHgSbygWb5tuvvZr2+mXPvDYNvD0LPhWfAYdKS6bnSIeJOV9A8OYHkxJw14ZfJAmkbGk9lMndxnZVdFz9/+5342D3v/O6tg9s+1uc4GxaAtXhqbNClS17o56qzn/7Gc8/83hOvvbLnZKXChjm4pI7MYol02bfLeSfSWWF5dLtdEW1n6sW/Yxv8HQPaysNI0yIPjXHr6iAZ9qqLh//iZb8oobZIMN8+0TuecYNOYdcfm958kLiitlI9dgHx2RnkyOPt+9rkTwPEoIEC7zwCmAJjO1c+kMg4N9KDHHuuS0V4pZwwlSUBxTTU+5fMhPQZa9lAWdW0xYy/EfCcjRDbhq8dj2p/sj00Rd3H0pxZsIy6WEtdEl0s4SKKTyntK4utKEreYNiFhKpRwWnSc2merzMhnhCRamp+8nvjJIjIvVHYYZQl4EIKuTdjREwzkzGu0UI609A0aGTToyZbxHHmdhTobSpgSGzvQ/7G7XBGeuBQD14IbdZkBrq+vtb7AywmRUepY6xsUmWFDMKKDtxavyADGNODn/J8JaC1GiI7O4Po7DTSifqy4YOsEodAWd1bu3t68YkH3oP333zr12/Mlz/mOE5zrY+4nu/f8KubvNCvhdUvfP2VHz/0/VMnETue1o5M74klcu/02MXrs57fgX4U943AG2bqK0AsqeJEEXgmYnmrJ8imIa/kvitpmC6lFnIl994Mr/GIA6hHCM/OonbsApzxKgrkS8v5aJKHlr2IMtGWunSRHUv8NfY+5nNCC8q/u71FpCXqnfqSog5KOUkjR5H2Cxte+zb1peJdFrfZRX9nalDq/xZBatjQDECG99M2shUM8BK/tuWLtv3VnPjFmrm2dmf+3bykvTSo3GW4PLWMYvYWj1LWGJ16IsaVPaiMcp16LLX1rElShRQR6+zmM+x3tzSH/JN63UhiaT1JhoqiVhbsHgTyNPB6+G5dS4/AtX4+cOVLXzBBpKYUhIkFxCcngckK4tpK2WNaXsUE5FLgvgMH8fEHHjp728DwH97w8tE/2Yj8z52zueENcJZlxZ/Mz3718z986pHHXnweC6ZzkJSRZFDRstailqytkSoDZIpkJI/y/u3I7R5B1lcQtiyyYykfreWi7d4RsJIHaikrl3qCLQO8/OFEIB7Rls2TU6i/OgZvuo6iS8RzgHoWS5+2jPElqX1FvkMJEAxFaMoecvZAMjVdVjayfF8RbuAhIlMaU9WsJwe+1ubBlhDTyG3XoU3vWcNnua4vWQh2Y65kf2x/+eVGQZ6/MwIy31P3gLlsn1YnQ5Xl6aWxlcIg0axkXkoUxU8wW5wIsDCbCwVcmNX5Q2Q5GZikEVXGVbh8LcbR8hebiEgyBn4AhwaYrXX9OZRv2YPcvmGkedeIrGwZ4OVOn5UMsM1qLHWPbhoArQkTBKtAMt8J4FRaiE9NIT01CSw0L+oCecMzMnPJ9euSzx8Y8gL80jvvx4ff8c6nhmYXPrZz587J7p3MV+fO3Rz/q/INqA88sW3kr7/x8k8+8J+/+22cqMxL6w77fl2p+6qmpRCY24OngxkpLXso7BoWdiwM9yLL89BQvioBL3SZjH8lA9wGNywxmt1+vqsyiV36EOHcZtqrESM8MyOE786ERsDk066naoDbNKHWSBJ5bpHTZg1I6pb/I5KUteLAFyS6SxAL25hY6yrl4ZYLgiQl6l4Aczkte4jRk6Kdyb7Y+9vo2LIeddJlCor0DcnFi+LhTp6zzs1so2pp5bEgHINnUDJ/Qz0Yd0TElivb9OkKjWklQsboPkrE8KZMK7ciIaBhW4zDPneCZIi+NbU+oZc031VS9GbsFDirffWSHpfnItQ2FoclGSqgdMse+FaveysCXnFnLGeAZc2tcH513QBQhU72ldZ+nak6whMTSC/MwW3ESIirWPJsYzJSc889noeb+4fwqz/zMB6++dbHhx2H6ecN2/9rv3LXx3/FFbTGF2TPPhtM3X3nb748Pf3PPv/9pw5+98QxLLBwz0OGLFVcgKYvjeg6XtJ/aAkaSIQxWIK7ewi53UPC9MIeOhJ2tPE1a3zGtbx9JQ93pQ22ls++Ht7LGnAucZFN11E/PoH03CyCFufWQZgqIYoYYCnadmRKTBrYo5hlW0lJUblCaGDEMygjKShgoj1JUM8WJvYTE+0Z+AgGCoI1EIPkeXCYEmcrGUnqTc9kG0Hf4QDYvLRWmpd20zohWvqqxdfSwAUsyZh/krKgEf/Q4CSTiJWpZEa0bBdiSCJo2oT/nSCZa4qQiaD2jdEVIhnuIQ4Z9WYNEYNFvopRNU6vxMBt1LS6BSI0ImpH5CoXOgdkTOnv7Be9bgyXwNoz++St43w9rMVufIdr+3xQ4gxJP7PWP99Cdm4O8ZkZZLN1cdpEAW5JC+wgITe0k2C0kMfPHr4DH737vguHBgf/1WAQbGj083VjgPlFnn/++QHvxoO//vgLP/rnT7z6yu7js5PC7sJ2H6l5mXSgxatIi4Rg67SwH7Gmt70PPQd2IBjuQeJliMg1RR7plXKA3dhVHfc03XVLfoqtp3X5MTbk7Xnws7ZY9PII6hkap6YEBe1QRpK92WxVE91vNagKgFLKUa4faWESMm9V6jE6McpnYBCoiVHxIZpYyA2k1sX0aSbRt0uJNrZ4CKG9KwQHwthGECDbQgomxW1QwTTONNQiOcl/IwFCx+i/wRR3kBuo+b3kFdIEb2q3jCYIRhSlmkyAZ0k1Qsp+dLbGRbG0/rCfVF5HY1yPtZ/U5JGFctA4sXwupgg1O6CtJkrwYNpdaGwNkb59LIF0CRWoAqxyGZ0RB85AUbJQ3v5hYaojiNJLlCJx61p6BC5CQV/yMltuW6/xk4yR4U5wqHo0voDo5DSyiYpgBaTbhHqIS14kxCFGIMT+vj7844feh4cPHT4yOBt+om9X34ZGP19XBphf5uWzZ4dPh+GX/+7Vnz545KcvYCGJtL9NiDIU4WnrYUotqYcuBRMiH4j78ijt34binmEkZR+RJ40mcBm1mMPFAAul/YSHdeB5iM0B1K1FvlKKYqUUdreeayPcl4aBhi/n5xBkHqKZKlrnZ5BMziMjUrcRwqX+KGlK2waY6yWVnkga50CwVRqHSj1zsd1bMQL6a+2ptZGmiaglOgk0HRsLEIUMZhr5CrEK+xrzvvYCC/GBQeiL5rMyoAn939I8MWr0lrq45huhtv0IuNBw9vK/aTSTFDF7oU2HAI2rz3iUWQFraE1/puIo3tiSp9zoRkpQSE84DvrAEv342tYn56zJJCSUy+TfPQe5vgK8cgE++cx3DiIbKiHJMR/N3lCdh61rORO1/Oh09XyQsokpsZj6voJfdZNwnsmIlYsykBEwPDWFxtlpZJUWnFjb11yj4iaZDrNGtBVP95bj59AbxXjvwZvw8Qffe+HQwNAfbHvsS3/ifPzj14Vvdt0s7+xMVjy7LfziN1564ef+8vtP4nS9giQXiCqItoVoratdGzOHCYk3JFIKAG9bHwo3jKpKEqNiEo0zGiErD6W/XOVtjpIY1AnOkZ2F9asu14m3DqDVj4DQ83meOFJCZk+d1JkK0umKMDNhsiW92DQQNBScS4nqTDRJJS1tk+2QM+xANi/VpWs31uIBePlmojfQhXaSevDvBHYt8fWvJMIh7aYaPtuKdPGTdfZ+yrl5yadZp2KpGWifm/b85B0EKW3S+oz6pd3I1JrJnEjKSdbmiwHc3T0I+koIBnrg9hQRU/mHR69xFoSlbuu6NkdA9gwFGdRhlFVGxTk6b8Jope1D+fkW/LEKGicnxAlOW6w7KPlHYHTbrQFmqcPjXmUCk35qzschv4RP3f8QPnD7nUfyzcYn+vquj+hX99t1crEneCKKPv3jsXP/4rF/eGbn906ewCwTWELN1lkX0y8s/2KMsDarZ0jLAdztvcjtHoY70oMsr6lAkSsktSWjYc+VqFd6GHmIbHLB+2t9+WSRiTw5d5xvOlLsV2Vk2AzRPD2jqF62zZAjuhmLdrTSILpIiGpWOKcBDhkH3wAE1srUdPkN2Gb9XhFEczklrc45sUhUu+YXP8/8baUTYPkMoYKoOu6h3X/mTRlEuUbofF06ua7WenuLcIVzuAB3W0GpP3Mq5i4ZJdPuJGnvLTWMa3yLqYNqAxsxwBZPwaxRI0ZK5aZzs0gnK0CdOANmTFQoxmqXy/qkk0bhBRp0U9rpy+fx3oO34Ffuvf/Cndu2/UGP67L2e11Ev9eVAeaXOb+wMNIK3L/63onXHv3cM9/DS3NTSCL29BquUpNG02BADwmSMTD68VkmY+arJ4C/awjBnmG4/SVBRYumrijjePBY3wOh9WqEKfCw0hl2je+g6/vxDP+KFQsXMh6DOKZTlc5URTYymq8hnqsjWWgKL61HUY3UQWzkIqVGbGhITXhsOMjWdhasBKJZvk9jGXiWPRFtv3u3Zpl9vG3CVc0ccF8wi8BousA0uOcgLvrIKGU3UEZuqEeMsF/MIc0rEIPujeA2LLewoT3sagq1W2Oyme5LkQiDnm+3TBrCFlCmdaKK+oVpRONzovdLTIU0oQhkQDsLRGiGSnVtvn3lsubKunlwGJ947/vwMwcPHxlqXF/R73VngLPPfc6b/eWPfvrU3Py//MI//HDn4y+/iNlmUyMXHkSXcPZy4YQOOVWBXMpaVSYsR+lQGf7uYeS3D8IZocZuipikAx3UbzxqeGCw3WnLAF+7J46IMZjD3OpJSW1Yc7IIpLyQKZEE+xIXWvpntYG0GcNrkmxXtUkFpGXjYMsDThLbNSyAlQzwSqtLDq0lLuWvXsPDrTitpJLUFLl+ClHLmdRtY5a0pTVLkeHoK4qYu8O+6Z68qE4pUtpETCYrJd/XotF5060M04qzsJ4vEFyDAAHJqsYsE0kzFACbVZrIjk+hNkHpxAaChJlpTzXVCfYzkbIAXQl8lPYUg7RJMgzlcvilt92Fn7v3/gsHBob+YER5n9fm8a7nYF3ms7u5O9flqy4wCi4V/+qpM68/+hdPHsFLU5PaCE7AjG0n6SBFYCsKXbIcNYPphbHGW/TgDPehuGMY3v5eISzngUJBBrZGUEOTABmrgHTdDeK6zFx3PpRMstzgArIyPb1CkGHENVjWF9GAJIPHdHUjQVxpoDlXQ1xvIj9RlfYcASYxdSYkE1r7EhPuXwJDfpNfYyUD/EbjvtJq05hxkfXyrY8hO5ncPMrh8cNY8yOgxneQ5TzVlaXh3d4nLGIUXHApekKaT5bjzb6z561EAwYYKSlrow3sd9WBeJOTtfXyi0bAdMZrZoj/Y4sdPKQE9tUjJMRZHB1HWGuIDCU1i2lgrcSrSJp7gTi3URJJ9wlfwvJP3nFx67Yd8f/wyM+HN27f9XSv539io/M+X275rLSbN9ySo0zhfJr+5uvV+d998sfPH/r8T17AVKMhdeDYEHNYAnnp/zQALdn8kj9jysxFRqYjquLc0AdvpAfoKYjcIRGjNMA81EU3dlkm0w03fNfdAyem5Yx1JRtdSb3fIKQZgVngkShhEfUspBMx0lYIZ3wBSZPkEzGSeiSyemglwjdO8JZgtNawi1YywBcxWcnsXPxhKrLe+e+XgL26EEGKAbZVcYc4iUyMLluqKIvp9RSQlxRzHvFQSVquKDFIIy29+MJHbTJKpt6n6UdGURoBk7udc0TcxdZ1rY4AUc7MINq+bg+MT5P5BtKpCuLxeaTnF9oKTuIYGg51QcWLAc6pAU5DyTTyCuIUB0e24x033Hj6U/e+8/Pbewde6Qf+k+PI7ryurjUcHdfuODz77LP9/bfe9Otj8zO/83997zsHXzx3TqjxwjBsI5YlPcZDmQaXtWABW6kGqUeqQgo2EIG6s4D8rkH42weQkIifgCxR1dJacIfYzLU7IJv4yYRMSTKxJlEqB7yhN5YTgQbYQKy0Z016xKVOnGYIG0pE4bZSoBoimWWduIGsFiJrxSJvuZZrJQOsuqudIMI3btk2AMY8iHbYLn7PtTzfsu9lCrlcEAYwSno6vXk4vRrp+qW8KEjFbLsy9T51VDQbZZP5bL9iRETnmI8ceL6CcJhtYKryujyhujYjV/XG0hvvkMyGWSTREURWj5GMzyM5MyNGGE0aWe2LZ9c9f4j8Z2YjlTqQD991EaeR6ACzoNEPFw8dvhM/c/td37y7nH2qOd2sHj58uOpQIus6u67b5f3000/3jbzt4G98+eix3/vBsWM7j46dRzWhDpa2o7Dm4HomLUnQCNNe7O8lh7Qh3xCga9mDP2KQ0aO9iHOMfLWmLNGJpQq0h7zCqxfZk9ZrhNvteFYOb1HtRuuZWhtNSEV0PV8d9tFOjQaMZmI6+hatLqSt9fNPZj1o//wEcFtsY2ohoaxeM0JCDuSpmhhoWVME/DGKNpqt1rBfylZm24c4/gQo2VPF2CfJ1th69WIu+fKTdPG9F5m8rGG392x/dyHB0HvJ8df2IDs+s53CJk+2Mf/MCnmOCKYL41eOYhQ5OKNlSTGrmHuAlPuDaWjRnmU7kkG0toXb9bMtYEcOcTrBBoBD9TLdfzruwgV8HV9CWiKgJV2T0lUtpVDlKVgryn6tQ6eURbpaTHGjLYBKoqLIoUiCg0LkCrVkc2IB4YVZZEQ810I5b2lwNbloNNVd5WGgpnEaUxO6IOnnLInF+L59ZAcevvXOC3fdescfvP2rj103Pb+Xm4v1Mg9rXRdX9P75+fmho2n8+R8ef+3RLz/7fZxp1pB6vnDYplEoEHhhHVrubvwlgSRCFDAAZ7gE9OQkQmbjqByyZD0ShKwxdtJPmiox0MVdGlf03G/Ji6wBprdgiCQsKIebW4S6mepL4y094eUG3LTBqFEVaRdJn0rPMAksLtTEEINgLYoRSCtTKAZZZDBDY1wYiQuDlNLziZHl+Ad2zdBYmWNOWqCMRGAHPeYbHtPcRx2KDqfCvEeAMWTB4n15O/kxhBp6e2G+ah+vJv2rPZ16T5ddWMwG5XNwS3lkhQBOTwFOMS99vBjIK9Wm+T6W/egtWcOb4SaGKlTOESFsUc4CGiju0fXkAlNHNJCygJRtpC6vDHLiLDgZwixFIXaQr8TAZA2NczOIZyrwKMrBdm5ulMtaHiqBUaIyg9tTQuw58MMIh8r9+Ojd9+Kd+w4cKSbpJw7v2nVdMF4ttZSvawOcZZ/zjrc+8ptn52Z/9/Ef/fDQ919/DRPNBkLpM9Qf9vUud3GAKNoe5124g2UE2/oQjPbB6S1In7Akoi1rENmMjK8ozFuSzl4nC2ywQW0mQNuKZQ9Zm7e83iPgtR7ito3H4AO0TcZYL0YqrEqRWYoCBdJbHAmCWoTnIwK6SPVIoQL9ITGMGGfhZFY2IEuGoZgEUx+1GsImc37ZryGh9GK6eZHLelHdiQpGsibbRBnmTmbnywEvnNTKwkXiDxBMIz8u0pKHoJCTKCXXWwKok5xniYa1XwpTWJ4Sa8ivJ3aBtS6eld8vrrthM7HYBDpnli43JuBknS4uESGiYfaDmQqmkUnfSg51g5wgbalTDRGNzwOTVeF4pviJlHDgChXssuer6ykdLIBtQQEP3XgLPvSO+47vLvf8m31f/ep/vF4YrzalAeaXZj2497bbPvXq+Nnf+7sXf7TzeyeOYSbSVDTXhmtVGZYcIU0kkvMXBR9OXwH+aB/8bX3w+kpw8rZtQhHUml40i06ignWSU7MGWNVuL4Lu2M3EZ5VG+HXa4BvuY43Bk+4e42glPp0wOZ3UyEYUpmd9WA1wVjPiBvw7jTQRovyT4gY0xERemzS43MdQRNo5WbHo1QGyIjLfRq42Bc3DUi5LddmWCDRGmuuXQCe2BeUDob4kMYZyVrtISoqF8BkBkyyDh7GZOBoMtu7Z66IU/4ab3HV6YKbopZaq2Q+WwJj0JeKecacgg9fxElpIltssboLZH6pf0Xmk8Z1toTm9gOb4DLyFEB576BmW0Cnlcy/BZCYZE1l3PuJaA8NegJ+56Va8/467Lty+e98fTv3kxT+7995759fxq1+Vj94UZ2+WZUMnW43PP/36sUc/99STeGV6Ei2mftyAPtpFIJdLR136GVkrkxWYgpqwCY3wSD+CwV4420siS8eIgdle1qyYftbAZTkS3y7Pr+2O8QlrMAe70AF24rZZZ1o/D7vLI/DW3L5tYN5YM2akwpqo6PnYoNMaYol4M3iJL4eR0GC2Qil/WONMEQQiq0X2jwcb58cYZv03RssrOEh8j11rgmzS9HHbAEtrBwUiPNUrDnwxxsLi5nsIenK6dhn9UiRC6rsqscjIJ/YSBUIJAY06mFLCkP9Qsg3r4a2vqXhrpvtq3kVWTsooUXunOWfkFaABZplDMCbrjDuSqNw4COwj4Ly7JNhoRQJGdE4voLVQRVypw28m8B32d7sIDUXvkih2EWJwkLhAsRnjjuHt+NWHfxZ37dn3xGAh/yv9jjNzNedivT5rsxhgbwbpb56en/ndb/74hUOPv/A8ztbqSIIcMgqmLwP0CNk9QdUW7gV6dazTEGhCUXb2N+4bQG6gjKBcgJP3lIDcRMBaH16nqbUGWOVI2sAJjVIsClV87HV6wI3xsdL/ax/VALc6247omInYR0cUYxmVFX3taw8xFwKNsolwaVxZA3zvCKsAACAASURBVCMvrqSjYzXAIv3HvmMaYqoRNbk+lx4rvtfgdwyBxWL6mQ/ukW/ZGFMaVv6dbXY0qCy/eHkrHahRmFA/Gs1iqRezJmkVjJRnUvEOJiUvqWtZUxtjPq+lp6Tz4qUuIiP+Qf9JOAYMm5iyt62vg6ywKRXYoHCN9MpXW2jNVhDOVOCfryFlRlEAiEwselLOYG2Y78yZDNzlxp3rimxXh3oH8Au334Ofu+sdx3eUSv+mB/iP1xvhxlLrbtNsm2ePP9s/svvwPzo9M/NPv/3SSwe/+9oxAWVFQgiw9CIXz5QgKyFfUPQzD6aEDeUs727rgd9XQm6wB95AUbhuRQHHtrusgwGWKEXaLTOks3Wd+0Kg9b3Ab0dHypG9vhv8WjoQL3tIGAa0NmraaAGrwXHgi31cVEtSOT7VQLVWSbWGNZiR5dB2jthLrP3ntu6nqkVG3J6HWCgEjUteNNrty1KtGkCWgGiYnWHa2Kxb0bo2coAqz2kcsE4FJ/PdxIAbEF9H3lkBV+bbLQmyudYn9hp4PjHAmUpVSmsWMQPVBqIwFIQ5a+7rnYLWJZIBTDfXY2RkiZutI5ytCHucX40NCFXdTtON1FaxWiqDznpy4Dg42DeAh265HQ/ffNuJA0PD/3v1zJk/P3To0HWfem779NfAOrxqj/C1p5/uu+nWmz91vlb/nb97+ScHv3XsZUzUKssS3gvaVdJBmdF6ZZsERc4zJKzhUbCBknL9RUFIe8NleP3aliHEA+sQGogBNmms6Oh5icDcgR54gz1wynmp47E2yI0lSPCta8kRyAigMiAmSetaSlMT+YmgvBlCcWg62JzU2GoEqTXjzkhRk7d07PRtF+sQKTCnjSZY8vlUDMRQTpp7MJJtp6CN8ZenMNGyPJZ5IOr1dvYi28+18oOu66vjQMfAeA/CKNc28lsO3Oq3j+DU5e3klHfrIWoXptCsN8T49u8YRaOwyFu/+s+5sndqKaPDnzP+mdNKhFwjmq4gnqzArUYiaILI5M801aOoCAYzBhHfXvOX+XiuoYF8If7F2+5q3X/41rFDA0N/PP3SS3/27ne/e+HKnvb6eNWmiYDtdLE/eMc993zqp+dP/c5zx185+I2jr2K8VtXWXcne2R5e/bsnOsJmoUn0o6hFeygRkiLk85RYK/nwB8vIjfQqQKuQQ1zU/kllAeL5rW1BjFyE98HmM62erOnRtc9r627ts9tIy0laU1KG+rxKo6oGn4AxWfxMaT59EmGjBfQXUdgzAnekjISp8pSMXqm0OtCo2AOa9xL5ONumdJ33Ya60jZWxydZVTY3VrhPOu6TnbIuROcA6EMeaZbBH2xu5ma3xbqeRJVRebClakWnNthF1PFO7Hi1dU2og1XYqYvoNh2zbPbjkOOA92TfPy36OoXPVdiZmWrYcuKW9N10gkg2RZghjpLimLOOXpPPZR+sAEwuonRpHHEdwh3vRd2Anoh5dexYp3/7TtqfZ5WWNp02xtFuLL55xQdq3H9jmbjryYFJqU11oYYSbVN3seK6GaHpBeNKD1EHAIASO9smb9ao926ZEYdabgAqFtlc3BdviCq6L0YEBjJTLZz54291/ecuuPSeG5uY+e9NNN20q43uRP77SQXQ9/Z5GePjWg5+aqcz/zmdffOngsydew3yrhhaBMLaVSM4tGltdrksxXgnHNCNkgmxo/siB21eC219WhqCRAtxSTtK/BHA5BEU5iiLkrVn/sZf4wzaCMkAa1TFuH6GLmAz5RwcO72kMMJ9XeHRNi4u0x3znNBpzVSQFF6V9I/D2DCDty4kkEJ0AiZSNAZYon61TfA4j3ydKUNfT5F+n38XO0aUedefcbTpve73nmoP//7P3HkCSXOeZ4P/Sl+2qat9jenocBhgYgjAiCYIiRCc6CTQYWnCl0+7yFLrYCylWt6uIizjexl7oVnvSBkVpY0VpZWgF0En0BCFCEkWChGA0AAYEMK5n2puqLp9V6d7F/7+X1TWNnpma6R7br8DmdFdlZmV++fJ973ffjyEKdP8jAVNMHZkxJC15XEEHmNCGYhRlD/ipIrSnliiGqu0ogLN7CFifIRbHXQs9nBAwNCZiHfIipZhH3Pc8XvNRH+yzeuHkIj4mayRfP4SwIerZUXQmmqlCiBn9TQ84LuTR66dpoJsmHRUVzCj7HucdFDeS9ctCeUPWyxs6YLUA5jxYXgA7Mll47cGbYdfwyA/GGv5HWbFYfdvb3ta40rfrSnz/ln0myRI+uPfBHy8Vf+uZ4y/vfvLFIzBfrwuhDlK5EgSHBfHnImBKXJF9LMlNh/E2KukQ9ZRWfwrMdAJYwgJIWsBSSMYoSB+XH4isi47AfSfDR6h4UN2ofNGit9tdKd0+gp5FbI8ORg+SyFT0fzoNXhkFSADMgRToYzkwRrLUYAJ1eXVM9IkXGLJhAa3TKWYYBy2vxNBU36kQuA4QwDKjDoHKdosyWYmcHQGHoOFBOF8FPo09c6uUjW7sHIDk7mEICwbFiHE+wrmIGhqQfK74ofKyjtdOEHVHP5xCJkjAXR6YTgmdmLdQ4Y1sDCqfC0i9yq82qTQoarSBl9tCLwE9blRFIcMsOH9JfX1dLtbREIkNYqH3jZa0BpGhQYhZ9kEAY7YD9+67Ee45cPD4tpHR33uVndwyCVfrjeYtS8AIBpKwecuND86vFH/r8SPP73785Rdh0XWhhd1ypHvXRGlBqSS0HoDUQFwqYQn6k24mSY56QjQbx/IO0stFFaG0TWSMkn4aCthLWUvKKJWuKSJ2/JNWzHLQd7mORFaP0Csm8XpcgUo3JD5UOuoWV5rgPbcgygWQZh0doD8Nzq5BgP4kRLaBvUtEspZcUJNLGo8HEaBGFilmXQfzoLoEhcCVQADLvygUhKppRH7YcAJ16EUeiVZpQWO5Aq3pEhjFJmh1DwAFfkZykJwYhmh7alUmFyUc0Wclw2KCgON0uNhTh/KVcVKCDJmRCosQeMH5hBrJyJI3qHoQYUlRvUVdwDTXJzEZ7F6E/XxDtHrRItc02QFudVEu2noKr6GohY/zBKgxJU1gmC+DcWGTcxhOJeH1N9wEb7jh4IlducLv1xaXP3/nFkq4UgS8DgI/OfqTbP+Ogw9OLhd/6ydHX97945degOlaBRoMa341MANRcnE2FzS5n2UWoxCZFxTcyW3CwU7ebAYRauQ6BgCSMgrWJ2ww+xzQTAMiXMhiHWZcg4luG1zlxlJukgXlYyYIE/+jgnaNsrKJMEMAqx0BKzXAX6xAcGIFoNGmeC9+R5S2QBvNgbEtT25yI2WIHq7kwhIuaXxRyz60kBUBX4l5W33ndYAA5YpQYwnsfyspSTcov4LCPO0A2PQKlOeWwV+sgdOMKKs+NADCrA3O9n5gBwapJhutyI4vrCsJrkO2MgxFT6+0PvFZxiU2eeiwrA0FYLyAyikxPBW6HvjLLtWnR24buOtRNzCydmXpEQ996UKXlR0ycTBWcqMseOmVI33vTqMTTNTDfTRIBwATyQy84cBNcMe+G07sHh7+g/mn/2XLJVwpAj7LQ42WcP7gjQ/Ouc3ffPLoS3t+euwlmKyWoILNG6SL5qwxYJkggeUdnTicjNkKMsYVq1yBUgkItjtECT+dNHQ17B5jyXZttglkMUuxexy86ComWUB6mKWOb0erd7UhROw2xyJ5rdYGvlglAo4WGwDtgAgYn4/Q0sHPWGAO58AZyoM+nARuid7GFAOWD28n4/c6mAjVJSgErgQC5AHuEDCnsBMltSHJtQJg9RbAiUWoL5eB1X2wAuxbrVGDA0/nlNCJBGxn0mBmErTI7shBYv6ljl2FZD9mJPhACL4guYofTh27iHxR/95tE+ky2TyEYrs1v+NeFhn5UjNAJpyihwwNgdgNTlY71gSL1r2UhCia0oh+wDTVST1rjD/3ZZKwL5mH+3bth9fs3ncin0z9wezPtl6289nGn/IuSmSwROnAq1714Ipb+83npk4PP37spdSJ5SU2Xa2QQPrZNKPj8hHSfiZ3tCAyKj3BhAQNoyDCbSS6ngiLWZRxoNUrBBHIAsYELdLi1Sh+jKRqZBJkIdMAx3iPjipGOjCpwIT707fFyVpeCFGlCbxYB44PONbuxd2f8AHWGPhY/Z5yINWfA74zBVrGAS1h0yqbLHrUesX4M7nPVJnJlZi81XdeHwhQEqcouBb5ISjcUm8DLzYgKtYA5lYgbHqg+eg1E25eH0LqUqZhHslwBpxcBux8lhI5MSkyCEMR9tKoVYKweDEJFAVcUMiFyDeE0A8gwDguNj1AK7yNXbsCqUcuQ2fIoCJwLLsWCas1DoVhqxqc19DVTJr30ktGFrxUEaD5DI0K3I/q2DlYTINcMhncvGtn497dB/S7R8cXBgzzvx374XOffc07tlap0blGsiLgLnSOFovZXCbzoblWc+LFubn3vDAzPfadI884Ky2XsvLX67weW8aUCiH/IDlKWZ7EGEZtyC8kawni+MyqIENc5hIrEMXfhWSI+rsoG4juHFoEoBWMBIwrVPzB7GoiTcxA1IAFEYTYlafpgxGIRA10L+MDjckS+MK2i5iVaSYdCLcnwBzIgtXfR/FpzMoOAiRgBjr2csWHWb0UAgqBi0KA+uViHomsc0Tls3CpDsE09sutgt5EC1SYkhHHdo+iAxI+qfS02jroSQe0dILkQulZpw5XYoFv4K+y/WUUov9aKK5RPW6srBYLp8jKCzEXicvBMBMdSy4SxDSH84tsCSk3jMVkOjW+Mp6Nl4W5J2hA0DZ+CGnNhJ2DIzCczU4dGB74zFtvvYvtSGamiyeOfX4rlhopAr6AR2f+8OHUbDKZzI6Pv+fw5OSeZyZf+tBStbLjxZlpqIQhtGRNcCw3iQ8L2qAmpUcIpzOOZUziwpgsdqMRAkUiNixaeqEAhiTQ7kJfuVCmNK5O6ZFM65ILgDieTJtSeYMogxItzGQEOtYhxsU3LkqlCwkfKnqs0DWF54b795lg5NNgDvWBPpCFMIElA6JsAslex5W5xI/OS9ZLi9PmoFEhrNiAakOlVrD4Dd1ZisAvYPipTa8yBFbzmYQCXqdkutPfuKsALE42lg8EPh8hi4SEI0qONkMIyk3wMDy0VAVea6FongxRSXdunLxJ9cHi2BiCwvwRepJiT5rMAUFyj/VuqZIiPuH4XM5o1iErOuS+onJCkLE4rLRwSYtAtJjEygpsRygcdquf0+Kf+qhrQImowMFmDAqaAQeHt8NrDtwMQ6nMY1AqfTjrOO0bRkb8oaGh+lV2e6/46SgL+Cy34PDhwymzry8bZRKfm6tVf+6HL76QfHl5mc3UalByG+BiH10UEw99oRXNsHEXiqjLtrEyMxmwqJ4GsbA+hZuakzWKP6F0J21kJHSe+4s4CCVOoExlLgHaYAZYIQEaqno5BkltYnA4TvYiF7iMdUuFYNBEQSKRdewNEIkgMWsrAr6I26J2uRoQEBGj1dwL2dybEiwlAaPpKJezncxffBBELQSWGYWgtUPgZReg1AS/WAe/3KTYLFqo5+lGfgYKG3nOzwYnVT3IMqdODXGsR0CLalEVIVh6VdVN1Bdjy1XhlMtaNuweHIL9/UP8dbv3NQ4Mji7kbPu/9v3oR/+T3XcfdrxRr3UQUAR8jmHBOTcrYfixShDsO1Vaeu/Jcmn0mckT4dG5mexis8EqfhtafkixE+z6QWDKhu3C/hMC97RalFq7saKQYRiAP57nnVMK81KPWrJg0bXl6MCxRjnngFnIgJlPUUJYC6U2kXg5qmZhXTSusmM1JXwA4wbvwqKPe5pSHJwUf84uA3Cpr00dXyGwYQRi93EshCFV8IRpihagFKrBsR9HmZC0cewHERjlFgT1FngrdYgqLvAGlvkEonyQ4qhXeIGK7Cmt5LgdZjx34fyFYS18xCkJS4qqUggLY8acQ97QYOfAMEwMDPO79t3QGM8XZrfnC1/r04yTK9XqQxP5fHnD9+A6PoAi4HMTMFtaWkqtBIGTGx54/6LX3v6jI8/zcrPxgelyed/LszOw0GhAK4yo8TR2QqJYLa6Ow0j09TQxbrtau0ekJBuxI3FjfeCq1MblH2moxU/ymJhEgeUPtg4s44CRS4OdTYI/mKI4M14bbYaZnETE4jpRPUzU+4kfMn5JFUfGlpTW9OW/qeobNxEBUa9L7l0qc5Xq7tIdjWU4FF6SKleaz4F5IVUehM0WsNkaePUm+I0WaJ5osiHivULhTo/LDDfxjC/kUMLLJa6NMpy7mojQ0ywbi5CnG+cz1BpCyz3iMJjOwC1jw/zmif2Nnbn+2fGBoa8NJhIn/Ebjq0vNpnvbyMiWVLe6EPwVAfeI1osvvpjxEgnjmaee0rbffeehhuf95sm5+ZEjM6dSS/WaNl9dgXLgQYtWi9J1FWHzIXQ/S3+UjM9QEXwc34kf3h7PY7M3I/EurEuk+LGICYWWRkpeesKmbk+YBIJuag0tZNsQvWMxC5vqh1d1dmJNdnJZy+uKOEbC1UshcG0iIIRZYzlYGSftSsjEzyhdIuDAXZ9q7jmWAaKwRd2FaLlJ2cmYGBWXJeLzEEhSx0fpSr0o+TlWu4sznKVEplhIM/Blsw4snLCZBlnNgJ2FARjOZKNdI2ONW0eGZ/vyha8O26mT5srK1zRNc0cU8fZ8SxUB9wzV6oYvLi1lEn19H1yu13dNLS+8t9isbTs6fTo1VVnRZqpVWPHa0Awi8AJsUI3rRlmsLhVlRAgJ3beiE013N5qLOJ0N7eLjBMKwnEH2eKXEC5k6hf1i0za1tONJm2LDgCpe2PsYBUV0BjoqfEkpTZLvlHKZlGSGjSEoFU29FALXHgLiOV0Nsaz20ZYVDJhl7HokcMGbPgSVBvBKE1itDYCKUl4AYSuURQ0yFiNjMkR81Db0yj0dFC5C61fqCpBTXEpVCk160UQhZZnQZ5gwmsnCzmwuumV8ojGczc1k06mvTqT6Tp4qTn5Nn+9z77xzTPY+vfbu9ZU6Y0XAF4n87OxsshJFicRQ/3sqLXeiWCq9r+S1Rl+anQmnSqXcfLXClqsVcDmHlueDH/gUS6HkBYoJy9DLFXwA8dKphYTM0BYrdJlVKeNCpoEiIQwCnUGEpJuywOxDfeskGGgVZyxS8KIaYlTroe5MMlsTs601PP5Fgqx2UwhcaQTooRWKVpR4FXJgqCiFAhdtH4JSEwKUa0QCrjWBuT65msmzLCqCOiI6IsmJ3qAf9PZ2lKyuxHXiYhtPEEufpBAPSlU6TIeMk4SM7UDWMnk2mSzvGhziN27faQwnk3MD6fRXMqZ10j0987W+vj53bEwR78XePjU1Xixycj9BxJVEX//O94aWse3l+XlotFofXKxVRk/OzwQvFMus6rq5eqPO6i2X6mxxsJNMm+hStm63krPemPiDblH1DVyDaKcotK+JiNFKRzUcLJ8KMVsbuzcJBR4iUoORa9rATk9Yl9xvg5YSVjFZx44l9WmB4tuUZKlG2QbukNr1SiFA7UijVaGbsO1B2GiRlQs10awAagFEXgB6wKmTEOZUUfoDLkRJmEKcvVhwS4UqEU0VzYw6zVcuzVV229dxZnY849CCAPtdy5ASLsDThg0DqSwfSGXLu0dG9V2p5NxSeeWvb5qYCA7umLD6dH1q+ejRrzYaDffOO+9UFu8Gb5uaGjcIYLz7/Px8qtFoGK1WS0/v2/P+lXZj+4mF2fajR142dw8Mfijw/f0zy4uwWK9CqeVC1fegGXjgRREJY8RJGbG4OslOknD76gmS10qWIgqvNsludYKwImnizH6vnT6ucccllMaTNX9IqKbs1IIEjCpZ9K34AapnoXuKsrvFoytCX3HDCCCFMJ7BhhIooWmDjl2f0g5o6KJOWMCxftEWvU+7ayiFZrawEETXKZnIIpm6a41Bn4tGETKTXNZRx1dJ8bm4lzIdc41L7xJPcJs0fNRhekTgzH62Mtmva3x0DiO9MOTijXMvzuwLJAlQOmyk+7Wjo0xyiwy0ekAKUlETmxU0IaxjJnMbuOeT6ISGfXxlRjA+N/S1uGAl2Vjh0iWiI8cQdhWSyU5xZQ9mWUuLGFWz4vp/egalwIV47rvqfeVFyidHhrC66pElwVO3ojhpDBOsqP0oFj1gMwgNHN2AJNMg4diQSydhIJWB0cIApKzkywuV+hdv2b0X7hwZmv3hj3705bFcLtieTOpDQ0OeivH2OFh72EwRcA8gXegmSMZzrmvOLfws+senJ/WPffCDH2QMfmul2RiarVaDqfIKLDaqrOY2c7PlEqu5LvhhiJYzqVy1fB98TNTC/6TCDD1e8QPdddc67cFicuxUIMqVt5SaC9Dy5hEYhr4q2IFJGHEWdndiCU4YpLaDcjyCPNcbKBTH1kUDCjo906DexyyTBMgkABImQFYDZumk6EWa1lJKkzRyMRklCkjmLi55wOMIUXcpXCInsHiSEloAgrBlE8Yzb0/3PHShN05tf9UhcNbbKdedneVWnLIrRW/iMAgScHd3IFq0dhXU0ljCq8aFbMgBtdRJI7kdiob0yy3qg4ukC2j9Yqcg+VyQa7qrXej64InuRFT/L3mUZBwloYo6Y5SgFB4xUeKDj50gc2zMQM0RuglYLihIDEd6wqghAnUwlx2X4kWJroOpMSJbLYwgYRjkXs4mk5BJJPlYJlPOJBN8uK8PtufzRj6ZXuSg/cE3v/Wdv94zNBQdHBsLDx48qAQ0LtGToQj4EgHbfdhisZi1coUPBhpsrwSBP1dZieZrFTOtGx9aajRGSo1a4LbarFyr5qqu26g1GknX97UWJnNFESnNoP5rEIXQ9NrghwFYjk0EjRXumCxBE4t0FZNFHetDRwY9pChFie8augYmYyLpCgDa2CZNkvuqpJVMpsL0sfOMELJM0ZKlbi/YvUk0muCWQV1ctJwFmmOBmUC9aUvI6qGbGiU0ccIxKArd6TMqcl6EPjZJ7QXCyj/DldZV8oQELowFea6xyyA+byWleRlG+KX7CmrLSclK4t9YdjFmHgyREH9GofCmxONHErLokS08KHGdq5BpRPKKQPc4eXsokQqzmFs+hNift4Vt+gLwK64Q00ByRnet7Iwm+mVjSc75r50sYJlTQe1ZZJckYnK8MFlrKxotCIFlKlXEczZkOZ94vCk8hNdoGqYoCeQc3KYLjmmSGJCl6WDq2AOJgW2YUMimwdR1nrDsctIweS6ZhoFsFgb78oahafOOY34xbdt+PpHS+h08ija9VC7/9b7+/ur5r0xtsVEEFAFvFMEe90er2HVdM+rr40vFIo88z9i1Z8/7PV3f3gy8drVet8O2d+jEwvw/2Kb5Os0wdjbbbrDYcKHpedD26Ye1vFau7XksZFDXGCSDiGtYc0slBUjIYQie74EXBuAHARTrHnhYr8sDaEUBaGSxYnEFas0KVxnNWzTBrWrECq1p0XT7XIkinUlNllbFukDxpMdS0vLFbGnLIPc06tqS+pZlgIkubEzi0kRPY7K4Ufsa41JIwBhXo4lJBtekKzquOY77GJNQHomeiGzTzjkrAu5xhF6dm9ECMLbyaIhKMiMrkIFuSn1zqSgXh2FoSUY1rKbI7MWKA0ygQp1kbFoQRFQepDV8IluM7Ub1Fmgt0TmI0cIvgqDld6RksVpAuH1FWAT/lfI7ZwWvY3GTKxxPWSpLSS8PSCEPEU7CFAsNHM0EGzRImCYU0glBxHitTCP3sdSkKhumFSYTlh35fsY0zJWEafGk6UDCssDWTbANA3b0F4wojOaXKtUv5jNpfyDdpw1k+mAwm0Zqn1mZnf1yrdUKBjWNaZrGEtWqP3Lbbap+9zI9DoqALxPQ631NTMpBEERRKmX15fP3l0ulH2YKhddpljXhR4E/WS5DXZBwFIa+OZhOfyTiPH90bvqLY4XCfSYzdnhhGFDciUfkyna9FrQ9D1qex6aK5Vzda7OFWhkWahWohT60sKOKLD/C2Skm0bgEQWhVi4ki7rR0Vpgk8XZaJco4W5wFSprSMuGMJEcsHZhjkYWs2SZYqLyFLRix4xOSNJY8YXtGU/RDZrook8ByCexbjPOYMDqkGD2672KVMWnKi85TYpsrV+RxBQfWdfbVsdVJ97mTSSQImLqIkZEY19kKK5kmNg5ghqboFIQWbcujnrfU+xa7BmGLPuxMhO35sDevFwK15JMWqFhEinGG3xtrMYvwshhZ5yshjAmYHNDSB017yhwP5geAlQaOroMDDEb6+mAw3cfziVQ5n8nwsXxOWLREvjpYum40262FIycnvxgx3pgYH9s9lM69abFa+WvHMlspK6GlHAcc2wbHMPm2dJ/Jw3D2+aef/tJyuRwcGBpi+Xwe1ftYIpHwVTz3yj4sioCvLP5nfDtmVI+OjroLCwvJ2FpeWVkB/FlYXOS7x8eN/QcOfAAACsenpr4wPjZ2n2ma40EUYSdQEgBBl2wLLeZ2O/J932p4/od9zgdPrywHxxbmtIV6LbdQr7LZlRJEGG9ut8lSFs0ZRMvDWOuWrA2aKM7+wjIGYXnKUo2Obqx0aFP/0C6xd6msIyQ6NdASumi7hi5rJOCEDVrSpt/pu7MmGNgfGS1bTOqK3dyy2knYPyKxRWSXrRE9obaN6nWtItARUotzFKRrWXAZarELtzB9jG5irM1Fwg0DiPwQzDpQw3ksFYrQysWSIYzjkpWL/XOFO7pTgkeeJNlYnqoUxCJOxHG7mhUIX7fUfz47unEFAbXzQw14meNg6TpZu2luQCHbBzsGBmAgmeK7R4ZrectZCDn/4nC+4A32ZTRDMwCbmpri+TTavj/3yN///cN/+9Wvtv6vT3xi5/BA4Q3HTp766szx497w0BAhhCSLr35NY81mM1Bx3KvzCVCz09V5X856VkeOHEk7jqPv2bOnOj8/L4gazcM1r6WlJd63fbs5MDT0AJjm6GKz1j46P2czpn1oCgnRGgAAIABJREFUoVEdPjp1OlOs1xvzlVqy6ja1atuFZhSQRaFrsg8wHlbqWJ/thOKJKc6OjjM+YxcgxshkFK7TzRETvHAyI2NGkySPdcZIuKYBOsaITUzY0kErOGDaFjBsy4jWMcaVLZPIGM8t0oSUJ6VsyU5N4rul9X6lR/iaO3Ohp7NRC/5c33e++P7V8Gh0p/91ezbiJCtoIoEKIo3aPpUCIeFiIlWImcpYJoQuZwxl+AEwP6JkJHRFC0lYEYLBF3mRcBBJrwq+h0pu9HjFyVoyNotZxDigkVjPQb/U2i+kY2BtMIeMaUJ/MgmFZBoylsN35gbKo4OD0e7RUaNgOUt9mezDScZOTR0//hVeqfiDg4Nn3EK0XLsJlXOuPfvss4nblNv4ahiuF3wOFzofXPAXqB2uLAKxm7vdbocVzq2xPXveV2w1d5fLpff8bHrqsUWf3Vt1m9tPLc9nFuplVmzWwcN1vUxUiclT+nRfWeYkNW3jCUpka0vxAoxdxQlUsnUiue4onhtbqjjlxQXRog45ds9RnXTSoBgxEi/Y6LrWyTpGfWodreaMCYB625i4hdsYOsWQsbaRSp/QQj+PI7orKXbTb9b5pLC7H8C157FR8o0v5mzfIUpjNvjqkNfZy72FfrLI6u1lwjljmzhbGBOgMJ6P5XFotVIsF3vrtiDyffodE6l01GFGlzL+jZYwSkQSeYoyHtJpx3OJtcqxyoDIVxbaUcEukCuaLGwMgcgcCfJ2d5W5nRc/auSAdfQRmDqD/lQaRjIZvjPfX943PKbl7MRSLpX4wvBAf3vIydg2aHOthdqXAepNJW6xwXF5jezey/NwjVyKOs1eEEA3t6ZpachkfmmuVPqHU9x4fbFW3qvz4IFibWX4xNxMZrZWZnPVMgQag3o7IElNspZkPAx/xdxTUeMoyFRMcCJOhi3MKDaHEpdxdrRs3B2L2VOdI7qnu+Jo9BXx5CgnO0aCBowypqlrE06QOhP1yYYOZtYBzULiNQBQqQutZUr4EmRMSTpdMWiqdUYBESm/h2KZ8tQJPkEUcZmTcE2emUgj6VxmpWLG9qqNL5OEJCnROkR+Gscuxd6CjOI4dnzf1iPgOHu2l3u73jZx39b1vqOzBsLr7Zzzaiu9tTXVsdu3gxdm12MWPX4Qe0riem05s/BIfB7HSkWEIu6riwlV8vtQKxmbE5DgvyBKvHbMSCYiRSuW1KcwO1kQLpUJ1TxyOeOijlzQaKFispUMR3Ts0zg0EidnycRFynHoEsSg08YGJRRHZuDrnNy/Qi9djHkKg9BliJCH6BQU99PFa9DIvZzALGTbhoF0Gkb7cnzX0EitP5lYdIPwC7dO7AkLidRiuHzyS8xmnl23dRWTvdhRfu3upwj42r13GzrzON78+OPTTtFaSL3q1lvfu1wtjZeq9Qdm6uXhYwtzmVros6NzS7DSaIAbeNAI2uBzSo0SsSxp7YoSD2FKoIWAsWjqhoTlTnKuxUkLs5w71minbvHChmBMYHEuDmVDG2j9GpS8RcRrmRCZ4j0zbYGG5Kxror+xqYOOljRayViTbMl2p0jSsfXdEf0Q50tudeJLMeESQUu2xO8/gzi7LUIiFEk+qzoKndKu1QS3c2CwUanS8wiRnBHjj5vMi7WBLA1bXZTIxGOZ9CY2QgIVC4m472SXtjmGM6RQTEyoQjhG/GD+QNhGFzKnzGQkVHINI7mihYvEW24LgsWwBSZNeUJjmaPKGhKuzFFYv1L9/I+IWISs3l9cGOJYpoUAA/AhpITEuG6XEr/wsLiIw3ESijI6LBHEe53QdFKTGu7LQ38my3cP5FZ2DYxqY5m+5QEn+XB/KnXqheef/0qacz+TyUQqNnv+e3Q9b3Fhs9/1jMQWvzYk5BpAsjA88N7lVmu82mgcaof+4PPTc8FcqagVa5XcXLnEZislaPIQ3CgkFS/NtElVh6oq0AqhDNIIOE6OlHC12tAbJzuS4ezkJ6Pa0AUC36VqRPwv2Y/czdLNLaQ+gQhWT5jCWtaxrzGAZhpg2BZZ0mgd62lLWMT4Q1rW6L7WSRAFt49oopVu9c6/8rHBf8hX2XUNssZTWLwo9SfKqGiyjrN4ZbyaJnMqnzkLBmTsb+wR7SisrWseCyLpaDzE3oyuRYZuGGe4bGPM44WQznR5Q6XwMZKptGBxW+wSJEQuRNmPcA3LMqAghLCJ1mxAZIyfY80tEi7hhsfxRO9ZQkFaxauxYKmQdoFDqHtzcVzhkl71AgjCxZ8I7VtpIaPmBl0KXZhoU+iE2HCFga0xGM1mYawvB2PZHJ/Ytq2WdpKLKcf6wo6BoTBvJRdrCwtfzgAo9/IG7tf1tuvGnu7rDQ11PfDk7GwyA5AcHhh4P9f1kclKpT21tOBoAB+er6wMoWW84NbYbLUMxXodGhGjkiaR5SkVrajuUiZZIZl13NXC1oh1pamvcE9RwbPfmLUx1niijveguLC0UuNM77j7CxIvTxhikSCtaEruwhpk/BuTwDAjm5SKRAvGzu/4N3KzLZW7pDADJfBISxp5NcD4JDIsamx3akAFoVNdaUdkJGbhMx/JjmF5kWNTcmrX3mu+JwYwrveWZWWxQpSpmWJfKbtE5IcsFCu1YYwVf0dXdCCs1tg6xcVFiF2BZPyW9MXxc2nhkpWLilOxnCqFJBhgz+z4+NS4Xi5CYks1LjsTWuobnMJo/RQHP8RAFeEWcVzOMUQR18Tjggn7fKOFrAEW0u7IZSCfTmN7Pr57eGRl/+Cw1ufYy4Vs38OO45yanVv8Cnddf1cmE6qSn4scxNfxbhscvdcxMlv80jB5y7Is44XFxcjk3NqxZ8/7Fqrl8UardWjZaw2eWJoLZoslNrtSyddaLluuVaAe+NDiZDOQm5p4xxQiAme4IKXLbzNaMVJLRxm7pePJmGvskox1ooW795VZQAFOuGTRMJHERfFhESOm91A+E1mQ4s6ClIlM8V8UNbHF353t5b5xY4sIpQRlkwsS4I9dl7EaUpeFK36NneuCBGj7DbyQ/FZTreLHXdqvtEJAC1y4hMkzgaSIcfu4rAstUNmMnpLnJPni7/i+3/I7+8SJUSLRDokZCTYQFqy0itFhgNvFiU3AEF9xXqvXH18wurZXIYl1w+k8e6zDPRd0dImiuHfVO4GtOKUHhcavDN6bTAOLM3A4wFhfgXSTM3aC7xsfWxkt9Gs5yylmnMTnJwYGAt33l1rLpS+DsnY3MHK3xq6KgLfGfd7wVXZc1AMD72/p+vCp4pI3Wyw6fhB+uNJsDk0uzGYW6hW22KjDcqMJLoqCUM9jUWMsZljBBUjIMa2cP0f53Kcel4F0YoBxs4ouy6gzyCXBdSb8blUlafWIfKJVwYcwILHP1exsaQ1Tchi6KGmypnoWoedLIvxSyxr/Rt+BlEcUllS3+D76mM9OsGhtY7/lLkp+BRjneoDxWkjXGIlzvReetlQaIwLuis2K+C4/w0Kl48TEHJfm+Kvk3VGpErYj/c8gF3UcGF99v+N1RylJ0emvKzSxumTQqJ9216vLXb/hyYtOXZNuZrznYjGHKVU4RrFWN20lKSErn0jCSDoNQ06K7xkZW9k9OKxZmlFM5xKfH8gWAisMlyqLy18yXBdju8ra3fCMszUOsOExvDVgUlcZIxB3fZqbm4vMXbus/oGB9xWr1fF6o/aBmt/uP72yEs2VSvlivcpWkIybLrTCAOpeixS40DpGysGsUhx8oop3A6+O1biaTINvxZQTp0iJzeRfctSTRRpLVcYcIRs9xNKcHQ3f+Hti96RU3yLxfOlijr+DaEY2BYikB1eQsliFUMy1c7xzPIJI2OgO38CLLOCzBZkxSUyWhHXKa+KS8pgRpSpU/LlwTQtvAp65iQQbX5e87nit1blWmb8mqE38IaxZkSPQnSHewUWOC2qm0PFwSCCkxRwruG0AHogirOUViVS6xiDr2JDSDUibJiRNmw9l8yt9iSTfMTgEEwNDes4wiynT/PzE0EgQtv3lpeXFhxXpbuQObO19FQFv7fu/4at/8sknk5mxsWSmUHh/pOuD89Wy0XbdjzQDv39ppRQ+u1iCpXqNrbi1/HKzyor1GrQD0VGGrI3YYjzLmZx3gHZrkHSbumt37JSdxG5o2S5ubaOH7vOItaXj97qzoaUx94rzE+nSnXrpbqnCWPhCJKGJ19oYZnfNMi0kNpgFLfSLVxc53dnCncxuaa3GlylUoWIFKLlwkYlkHShk7JgWMTEvyt9W10RCKWpVnKUL3PiUYoGLGBO5UKFjyLKkznfGGctSFpLWQudZv633cadFIC4GuUhCs0ydugMVMqmVnX2FaDw/aCQ1owih9/mBfH9r3+g2bXu+3zB9f7G1uPiwqyzdDc8d6gC91cUrnBQC50UALePJWk3fnkiYydGhB7imD9dazeAfT0xH08WiM5pLfaTWag5ML8xli406owQu34c6hFD32tD2A1G+hBYZWscYdyUXpphCiay7MoriZgwkrh8TjMy4ljaa2CtmB+liJWtKvkf7dZURxZKGqxac6JF8pg9YxpJlQBnLYDp5TB0iWg02d1XVys6sZ1JC3OVnPYA36Bvo4HaumxdHiLsXEqLDFSYjxTQsFgyiJaQ4WnxuGIPvvGJJyM4bwpXfXVcdewbiA5EqlTwo3slY0Sz+EiTIzjdSvF58CY0Fit2Kbkh0Tqt1Up1SrzBOKsMyIYzjouYyZsUHEaQcm7KWc4kUjPTlwLKsk1Pl4md2j461Do7utHOWs7gwOfnwyvy8d/Cmmxg2LEilUoFKpjrvdKA26BGB8xoYPR5HbaYQ6CAQu6lRIvMfX3iB50dGrDtuvvn9zba7s1avf6ASBv0z5XJYajX5qWpRqzQa+WqjycrNBlTdFrTCCHyUFsTJk+qUVoUxOg5JWf8ZN1wXBKFRcpQIU2L8WYjpx3RB7tPYtIpdzhiDpRIUWagbu15jqxAzpV9hTb8ymetib//5LLiLPW6v+12oHGVnPdPjF4i4cpe3QxJ5vAii5gddiyOxali1qiN5gnQfZWMPXBZg4xE8Fw2ztONbLGUhReMOsWCwkWypGX0EuWQS+tMZqtFNmzbPplMre4cGopFkzhhMpFY41z75he9883O5IPBefdtt2tD27cFtIyOqM1CP91ptduEIKAK+cMzUHheBALqqx/bvT1qW9YBvm4OlViuouG70wvRkopBMf7TZ9grTS4vB/MqKVnPdfN11Wd11oRi1oeG1yBoLMOsWW8TJ2CHOwMTDcUYsCv9pqFuE/2E5C2bj+l0uYZkE1XFdin7KcVZtJ87ZlTR2sQIPFwTRZpi6F/SFcuPL8PQLZTNxj8TX0Q3rJOHFLnqBfVemuqxFpnaZMrZMXKyJsjJqQ4niaJiYjbW41F4TPSaitty2LHAsE7Zns5C2HUgaFh/M5Va2DQxG23L9hmNYpUCHz41mM27BSGCq1ZJXhS/m86x8MVCqfRQCF4PAZXgEL+a01D7XKwKH5w+n0o20sRRFPON50Zym2Qf37z/U9LzByfl5b65YTGRSiY+2gqCwVCkHJ2tFreG6hXYYwkqzQT/VVgsCTaP4aJuH5LYWgvlIwNgxBquLRXSVEwHLWt04GzmO00pZQfwc03Bi62s1a5uRrKF6nR2Bc6JDQiJGx8KNY6+dlGc8rCEyxoWjOXbYIxGL5DZqAyjJGP8WtdRC3MXSDcgaBgl7JA0Tsk4CCuk0pGybpxLOSiaZivYN9LP+VFY3QCtpBvvctsKgW3BSFsdSoVbr4crUVBubm6TqqWDkNmXtqrF+eRFQBHx58Vbftg4Cscv69OlWmBzR7J179hxqMT64sFL0JovLib5k4qMhaIWFyko4VyrCQrkM1Xabu+22Vm+1Cn4UQr3lkjIXZtV6PAIPFaYoG1p0XsI2i6SWBZpwbUsrF5OMhREt3xEGWpzYS0JX6nUeApaYdRm4cjGDCx8hxHJGMplcACGx+oi/9C5jXD+O9QtRFwYmejM4p9ht0rQoaxv73SZMC2zDhHwmU7I1PSqkM2wol4Ox/n7d0Y1SzW99LpNy3N35IS1rOQb44ZK/uPhwpVIRhKtiuWpYXwUIKAK+Cm6COoUzEUBCnm40jFqrFSb7+uxdo0OHIk0fXG7WgrliCWaKRVgolSK37SYK2cJHIwb91XotW/NarOq1odJqQtVtgut59G8QRWBYNrSDgEiaJAVlra6O2pnU7UZGlztPxGVxPl9bt35NJnRPJy/b/WHMVtYTdXKskYexCgwJVgdBso5hQhj44FgWWKYJA04WbMOAhGHwvkSi3mc7mUI2Wyqk05gitlJpND+XsBx3dGBAG83lYKivzzAiWCrNzT08X6m0t1uWhi38FOH2dLfURpcZAUXAlxlw9XUXjkB3UtfRYhFKpRIcO3ky2n/TTc7Nt9/+PjcIdmph8MFWGOSrXissu01Wc5u83mpqxeJKwW23MeO6Wm+3M64fMNf3IZClLA3fIyF9fOG/PsonEkmvpvR2U/EZak1b4OnpSiI/543ruO2luzgOo4vWHKLcCnWtHdMCEyU+KV6vUfMCC/81TEgYFk84Vj1p2RknkVhJJZPheP8QpOyEwf1g0W01H9k7PPIWTde/nE8lXVPTV1742UsPuydOtNI7d2qF/n5QmcoX/nypPa4cAltgCrly4KpvvvQIxMldTir1gB9FA6EGYSuKoBX5YavVTvp19195vm8+O3nyoXxf7l2RoQ8U6/Ww7nnQardhulYlS9mLQnC9thZGQaEd+tDyPNK3DmLNY3KjRuBj44Cu2tz1sojjuOiqMb3WR7uKS/cDGBcvdcdVN/qAro3Rrne87vNdrQ2W5yjrrM8oD+pKAu8+Hrr5LcOUQmCCcE1s54fuYzsBjmaAaZillJ2IHMOApOnAWBZjthbkEmldj/hSuVp+ZPfo2FsaYfhlJ5GojQ/062krYUR+OF9ZWHh0ZHTovqgdfOPY4cPu3r17I1USdOmfMfUNlw6BjT7fl+7M1JEVAheAwOHDh1PJZFIEHAHA87wov2OH41jOBzkw+/j0qYe379z5dk/Xh5drtQDrkKu1GrxYLEK1WWfNwAtD30/dtG3sQQZRX7PRCL0wgKWGS8IhXhBAy29rYRAWAh5B2/fJUsZmP9SCETWwuWhLhy5vJOsgCEG3bTofrJf1fJ/Im/rJxiVRDJ2v+JKCFXEbwFj/6TzdkM76AEtpR2xP1b0QIOEMWaKDkW6UWaQyL7kVdrYyTYy8CslMr9kAwzCIWLGOFskULVdd04VFqwlL1jZNUsWyTKvkmGZkWzakkwnoS5hgGjqkkmkM31aOzs9/1rYTjYzj6Nlkku8fHIaMY0FfKmOYYbhQKs1/v5Ap/EK57n7zZy+80Lh9+3YNCgVoTk+Ht952W/OpJ59M3Hnnnc0LGBpqU4XAVYuAIuCr9taoE9sMBI4cOZLWdZ0dOHCghq7smmnqYRTxE8ePM3Jll0r0NYuVY9GdE3cn7r33nkNkBbv1AGuRXy6WAcuham498sIgNTE69iDT9L5Gux1i8le53QLfR9INwQt8IuZ26PMgDAyIeN7lUdkPkMsDQ+dQwNQwJGLcHkmYiqTiOliqXV5thIDvUy+Fc73OqpQliNaUzSAo05jaRsrmGLI7ky2bISCxIvlSa0lNK2maHhi6YVk8zIGmrdimFdimyWzTJrK1kJR1EwoOupQ1lG3UIeSVpeXSZx3dbGSzaW0wn4fBtCMa2tumEXEoHX7+Zw899dOftgoTfVoBCrC3UIDcnj1c18os42fC4ZERRbKbMfDVMa4JBBQBXxO3SZ3k5UKASLpW08NQ1B+9tLwMp6pVVjp5Mrr7ta9N3HbzzYdCXS/4URCgpTtTqaDrGoIwILc1Jnq5fivUmZ4bymQeOD47+zcL5dK8zbTczeO7H9RNPet67RD3RQvZDdDVLa1fJF95oUTEERKw1E/uBYC4vEoqgGFpj20JVTFql4wlWpRpLKxbLOlJYN00WraWAbZp6VEQVV+em/5syw/Lg7nsyMTwyP3L1eqXIs7KKdvRLccCB0nYMChRajCTIoI1QcOCotLxw4cffu7YMXcindZ2776L63q5M8eoJgW93ES1zVZCQBHwVrrb6lo3jIAgaOxbWIIwl+PLxWLnmMXlZfq90mhEB27fnxnOjbx78vTMd//oj/94+VcffDB9+203f4Bpeq4dBCESLFrBTd8jq1fUMkdEkmT04t/4n7YqtXihJ48ETD/YTRF/o/9hnTQeSVTeOvJfQ9fAdhI69/3y4edfeOgvPvvZ+m//xm8MjG7b9ovVWu0bTz3zTK0vlaKd+gcGaF/6//5+0MuCZBXBXugdUttvdQQUAW/1EaCu/5IhMPvkk8nRO+5wmdDDBHSHW5al5XK5Tm4U0XcXib/iZPov9PTiHeTCYHV9IA7Uv+aAXZ+jtYqx84MHD9ZxU845m3vqqcSYirle6E1Q2ysEekJAEXBPMKmNFAIKAYWAQkAhsLkIKALeXDzV0RQCCgGFgEJAIdATAoqAe4JJbaQQUAgoBBQCCoHNRUAR8ObiqY6mEFAIKAQUAgqBnhBQBNwTTGojhYBCQCGgEFAIbC4CioA3F091NIWAQkAhoBBQCPSEgCLgnmBSGykEFAIKAYWAQmBzEVAEvLl4qqMpBBQCCgGFgEKgJwQUAfcEk9pIIaAQUAgoBBQCm4uAIuDNxVMdTSGgEFAIKAQUAj0hoAi4J5jURgoBhYBCQCGgENhcBBQBby6e6mgKAYWAQkAhoBDoCQFFwD3BpDZSCCgEFAIKAYXA5iKgCHhz8VRHUwgoBBQCCgGFQE8IKALuCSa1kUJAIaAQUAgoBDYXAUXAm4unOppCQCGgEFAIKAR6QkARcE8wqY0UAgoBhYBCQCGwuQgoAt5cPNXRFAIKAYWAQkAh0BMCioB7gkltpBBQCCgEFAIKgc1FQBHw5uKpjqYQUAgoBBQCCoGeEFAE3BNMaiOFgEJAIaAQUAhsLgKKgDcXT3U0hYBCQCGgEFAI9ISAIuCeYFIbKQQUAgoBhYBCYHMRUAS8uXiqoykEFAIKAYWAQqAnBBQB9wST2kghoBBQCCgEFAKbi4Ai4M3FUx1NIaAQUAgoBBQCPSGgCLgnmNRGCgGFgEJAIaAQ2FwEFAFvLp7qaAoBhYBCQCGgEOgJAUXAPcGkNlIIKAQUAgoBhcDmIqAIeHPxVEdTCCgEFAIKAYVATwgoAu4JJrWRQkAhoBBQCCgENhcBRcCbi6c6mkJAIaAQUAgoBHpCQBFwTzCpjRQCCgGFgEJAIbC5CCgC3lw81dEUAgoBhYBCQCHQEwKKgHuCSW2kEFAIKAQUAgqBzUVAEfDm4qmOphBQCCgEFAIKgZ4QUATcE0xqI4WAQkAhoBBQCGwuAoqANxdPdTSFgEJAIaAQUAj0hIAi4J5gUhspBBQCCgGFgEJgcxFQBLy5eKqjKQQUAgoBhYBCoCcEFAH3BJPaSCGgEFAIKAQUApuLgCLgzcVTHU0hoBBQCCgEFAI9IaAIuCeY1EYKAYWAQkAhoBDYXATYyZMnRxhjq0ScSgE0GjD+xBOLK3e8Od2wGukwDKN1v1Zu+8QTTyzeddddGcMwUvG2uP+JO+5Ia5rWnpiYaG3uaaujXW4EjhyZKtx00/YKYyzE735pdnaAB4HlRBHfyLm0NI1ZQRBOTEwsMsY2dKyNnIfaVyGgEFAIXG4E2OlW6w8sXYdIE1+tRaAB59HJ2dnPDff335lOJG7lnHvrnRgD0DzOw+Ozpz63s3/w55KJ9M0h534EuP/pLwxlcq+xmP6jiXz+Xy73hanv2zwEppaXt0WW8eD0/OJ3v/DII1N33HJL8t4773wwadsjOufBxbpRiG056Czy3Uat8RcTg4MvM3xHvRQCCgGFwBZAgH3j+MsNziMIOQc0hDUOjIdhNLm09K18X+bmXCK1l/MogHVsYKZpzIuCaGp56ZsDyfStmURyT6RByAGi2ZXit0f78rdkdOO337b/xm9uASyvy0vknCfmvda/P7Ew/+vPTJ96bLZenbJ0I7V/ZOx9KTtRAB6FjAvO7GbOtaTc+SwCYNrqtiYztLzjeCOZ9OeTbf//Hh4eXrgugVQXpRBQCCgE1iDA/s1Dn+V+GIIfBUTAOHFG6HHWNbR6DR5xDXgENMfih12zrKYx4JoGGtM8HgRGFEUa03VgGgPHsv2U44S2677nvx568LsK+WsTgWq1OtBIJL7zzad/eucTp4+3q74f4H22mJGwNB38MIAoCsW4kKyLYwWDGnFkg3NO46cr0EF/a7oGKdOGAyNj8NZbbpvrA+1tOwqF565NpNRZKwQUAgqBC0OAve4Pf497YQBu4NMEKihYTI4R5xCEIdAECrzzWed3BmDoBpi6AWEQQhiGoGkaTbyZZAoyiWQr027/8pc//u8eubDTUltfLQhwzgcWgH//T/7uO6/63ovPQznwIfRDMDgDU2PQ5iGNk7XjA0eSJhl3vfFDY0zTIGs6cNfOCfiVN/7C0s5k4s3DdvrZq+Xa1XkoBBQCCoFLiQB77Z98kjfbbWh4LeDSatEEE5Nbmkfr51/FJ0UWMG5MuTg4DQtDKG0noD+Xcwued/+Xf+03FAFfyrt4CY+NBLwI8L0//sG3X/2N5w/DShjSYstgDHT0llxUAHjVXHZME96wZz/86hvuW9xnp99csG1lAV/C+6kOrRDYKgg89thjxvDExGBG17Uoiprj4+MrV9u1s3v/7I95o+1Cvd2CkEdktegYpAMk4AgwL/Vcc2ygiU9ZdzJsyCFtO9Dfl3Pzbf/+L39cEfDVduN7PR8k4Hngj/z3H3z79m899yxUIw6YFK9rIpbLMKbb68FwO97lrWYApmXAGyb2wcfuuXdxl5l680g6rQj4QvBU2yoEthAC/LHHjFMTNw9qmsuiKOIvQnPdq6+WloM7br51PGumPsxAs1kEx5ZmZh43LznvAAAgAElEQVSywzAyDANtB3fHjh2lKw0du/fTn+LNtgu1lgthFBMwmcIQofVLs+vZp1i0gOlTTOKSQWIeRpC2HChk+9xcECkCvtJ3eQPfLwg4euSPH/3W7d9+9lmohxERsGYw4DoXBIyukwt4ddIJGEDCtuD1OyfgX73u5xf3JTJvLigCvgAk1aZnQ4Bzrr0wPZ07eBVMslfzXUJCm967N3s1kNFanNCC1ScmBldaLVaN6vyJyRPB2+569c49he0fMSHSG6EfnYAaIE1paDOis1ZW83DO/QQY43mw3mUw3eRRNM019rdJ0Lht2lbVbx9/6Im/f2g8n41GUhk2CEnI6hktH2Wa4+O5y2Yps5//9Kd4rdkgAo7nUbR6KQaMLuWu5Jr1BhKSLoX60ALGXzQGURBC0rBhpH/AzYf8/od+7ePKBX01P4XnODck4DmIHvmTR79z+9ef+xeoRSGwEDPmQZSu4W0/R+HQ+bg5aVtwz/Zd8Gtv+IXF3Zm8ckFfo+PkajptHJJT7fbBtqH9UtNrfHFybqpp44SmXmcgUC21gjtu3rPLMJNvqjZKf3FL+spVIPCHuX7q7lNDJU1ji1GdP336+WD8xlfvHMgNfaTMPX0uakSnWmWf+cHOiWT2XTpjWiv0+AK0O/kncR4K55zRm5wb4AUWenRNTedJy3YTTAdbN42q780cD5tf32UXogHDZttYArZpKSsJcPTZqWMPGa0WKyT63XsvsduavfFP/4gIuNpqEnly6UrWDUNcA1nB57BwpOVL1jK6o5G4gxAShg07hkbdfoju//xHf00R8DX68AsC5o/82WOP3P7VZ5+CKg/BQALGWjO56jyX/XsuAkbedgwT7tk2Dv/2vjcvTmRyioCv0XFyNZ32dHW6v+b0/25Rj9694Nf/NoSowXAWXmehuPVYWTy0PMLsDd13GIznrMTr9SD879Gp05++Z+9ti5fzXiLxPnP7sUJ2bHAnd5IfWdTa+smgFh1zV4JW0N7Rp6XeVeeBtsxdKHKPVwPXaEWhRYYe5+DyM3OUum8xltcGfkA5Sqaug6MbYIAGJqPKHZ6w7FbBSPBswNiwluCjRsJIavp0kwVf7zfThg78ePqlhYfS6TSza6x18ODmu6xfScCUS8VBNw26D0Ss53qtIWAmCdgxHNg5POoWeKgI+HKO6E3+rlcQcBSAjmstJGDJvBdrAeMCz9ZNuGf7OHz8vrcoAt7ke7cVD/cAgP6f3dLr5g3tS4e9leEFr+4yhoUcXJoRFxYuud4w7K4k1TWNcxYZSaZbNyYGZm/gyU/eYKQ+yRhrX8rrfvjhh/W77757qBIEoblzdHuk6x9YCBu7auC/czZy9dNBjc9zl694LaPZ9q12FIDLIvA0AA84RJSrpFESKOYendUBJ7kMrzmu7qHfUe8C/zUMQN0pM4igj+nQp1uQMyw+4KTcPLMNB7TpEe58fUeizxwE+1i0svAlqxY0JiYmypuFz1kJ2DDRAr44AsYs2YQi4M26R1f0OOci4FAky1/0SxCwAa/fvgv+rSLgi8ZR7biKAK/y/pcS9f/zp37p179fm7JPBe6qA2+9cNpGBvC1BnzMVCg3h356jQGK6GRCBu8a3g9vMEb+aQTq7yqwQuVSXtqi590emOzBxajNnw9r2zSAd55ule1TXsVc5h4UwzY0WAitKAQPkzYxGbjrhNCiRQMAifR8VRhoHIgiSTyO/FfW6wglPj3+FHTGIKFpkNcsyHIdMprJtxup1k6nTx/Tk9NDZuq7A5p91D0991e3bpJreg0Bo0QRus43ZgELArZh5/CYsoAv5Ui+DMd+pQs6ACMUcd/NIWBTEPAvvGVxIt2nXNCX4Z5ez1/BV1ZyL6S1//0HQfG3v16bTJ0KmqJMkl6vZOCtxL+EgFQ8xHk+YljHz2E41OGBwRvgHc6On9wIxi8yxjadgPnDD+vHbr+9EI0OjPmO+R9K0P7lk16NPe2t6Ct+01qIWkS8PqUTieobDH9yXZS54g/dK3xPLiQwvBXq57mDUu82Xnt0rGU0HjiAGTDKdcJwWoj0xzgYEYCNWlTSdT2kOzBuZfheJ+/vTORmtbb/yZUTLz+0JzOsbYucDZU3XSICDqQFrAj4Wp/szhUD3jwCxhiwckFf62Plajn/x1amX/V8KvzuNxunhueaVTF5S6tv7TluNQLuvn7sqtJgDEZCHd6PBGxv//Eg6O8obCIBc86tZ48fz43t3Lm9qvMPnAobu+aixi+92C46p9pVOOY1oRH50DYYBBomMTMwIgZ6hBUWHA1Uot7YjUxk2WXBGueq0OkoU6weA6+fFB/lgOAh9Zahv0PgRML4QgsbFyv4KcaMM7oB/ZoNexI5GObOiaxhfeOmxJCxB5LHT50+8pf3jt96UZnTioCvllnjKj0PRcBX6Y1Rp3VWBH5QPHXwZ33s0W9VTo7Mu3VRmUIR4FdawNEWa8DVveBAx24LGIxGJrx38AZ4szXy+BAYb99MAi5zPuEBfHwubO6ejZpvf94r2kfaRXOyVYUm49AOOQSS+PDuYK4c3RK00DkHDQO9XQrIpLpHuk+cyNrqFpZfZ0TEEeIz4sAkuSwSpX0WgsaFSxsJN8JEZKkISQsA/NEYETMeow8M2KYn+XYz3dpj5/U7E/2zRsT/0Dty6i/vvfXCSVgRsJrIzonApSVggIRhwutUFrQahZuIwGO10zcfcfij3yweG54KmzSpx65X1WprFWjEAjvnjHAT3jN0A7zZHHl8BKxNJeBnGpV36Lb5+Rfay6l/dufNF3gNZkIXgiACE5dGukkxXkz2RRKkcAEHImV0B1N9r3Sdy1+ExRrHgM9XXRb7q+Vlv/L+CyKP12ZcJsvjueB7EQ9o8YYWcryvg6VMzIBRzYLXJwZhVzJ/ahtL/rfG85Nf2ZXN1jFJa35+PlV03cxNu3YtnKvNqiLgTXzwr8dDXXICNi24Z9tO+DdvVGVI1+P4uRLX9Fht/uYXbO/RrxWPEgELTXIhFLR2At66Lmis5ddIxCIXMnj/yAF4mzX6+Bg4Gybg2O38pNMarfQl/qMG/IHnanP6S2EVyiaAzyPQQw4G9vlBUSokyQiJUBArJf+SwED3HYsDv8ISJac0A3Jbn9uCOHPBEcsld0i8IzMlxKeobFJqG4jzwDxpuTDAjyRXBwCQ4AzGuQF7swMwbmZPHLQGv3fAs16uPv30/xy4667tkRW9dhCczzLGMLS97ksR8JWYIa6h7xRKWPC9P33se69eWwe88RiwqgO+hobCNXOqSMAvOsGjXyoeHZ4L6pTdql6vRAAJOIg4pPwIPjB6E7zT3v74jWC9faNJWCuc7ypD8L/+pLE48U/R8rtPN8qJKb8GLZ2DrutEvqsWp3D9XosvPG203tO6CXutLP/55Ghwp9U/k4/MP8hD9ENPY7uG9OS3FAFfi3f3KjnnS0vAog749dtVEtZVcruvi9NQBNzbbbxUBPxsUHlHCfjnnqjPpX/gzpnloA01LaSqCcws1tDajVUTZdVNb2d8dW1FFjJjYAJAlmswYSThrvQo3JEcm9wRWX+4o2l+HtKwpFzQV9d9u6bO5vIQMNYBKxf0NTUwruKTVQTc2825FAT8k/rCrfOO9jsvtksP/HN9Xj/qVamUqCPaE4oyV6xBFi7ma9cCxmzsQNPARG18HoHJGOyw0/Dz2XF4vTUyOdzW/t9xx/mTc90N5YLubaxu2a0uGwGrOuAtO8Y2+8IVAfeG6EYJeGpqKhE6Tm58YAATjaJn2/VbThvt33k+KL/nifqccyysQYDk1KnhRQlbkd2M2cbIvpTsdI2+kIAxuOuEaNkDtNHFbuhwg5aGt/XthonQeWSiyf51cXGxefeBA6X1LGFFwNfozb9cp315CFi5oC/X/dwK36MIuLe7vFECrrZa+3XTfGNS0z774srK3lLW/J2nouJ7f9iYtU+0KlBnHCyUrY2tXJLfEg17qJQIa32v0fgvIiyyyBkRMNYKewYHTwfIRBrsNbKw38ieeldm/DsjzD68TTM/jYuUtXdGEXBvY3XLbqUIeMve+mv2whUB93brNkrAK667yzad25kPz5wyvf/0TFA89L3GafuwtwJ+iFzDQMcsYqZRb3l6R2egYXFvxCEKw04Hvt7OeJ2t1ljQ3el25+vEdtHf2bVjXENMpUy6EPOg38MIdlup8CMDN0V7WfKxiQb/aCaTWVIEvBmob6FjXFoCVnXAW2goXbZLvVQEvFbGo3vuP1ue9bk8rN0CmeuBs9HPXzHZyzc6ktCo/hTBRWdBY1OFBx54QD8Vtt90Gtp//a3ayeyPGguwpAVgIQ0h40YBaLrQWxa1vUJsQwuoIxNExvnqiNYfNoSNvJD1JVaElS1ENdZceEf9eWNa9ug+NzgDTxOKWQZKW2KSGdOoeUSKMfiFxDC8Pr1j5lY99//sAPN/rHVDKwv4sk0L1+YXXXICVnXA1+bAuIrPejMJWMdSExL958JlSh5UIexBtaqyA7yodJJJRfi+rLQRMJ1Fizp2v3bKpNZQ/Dk/7/qCdfePP5duXzqPrm4Msg4Iy2hy3ID3Dd1AdcDbLrAOeJnzbS9H7u/91Js79P3ypDGFIhsMwORCbSqEsCP9GMpmCIgGZkJT34HzCGmgMAaJbhAWsq0CF9nUpJ+hY0MJ2VxCku2qVjSDEMkfuydFWHeMild43yLwSdKSg46tg6m3eczUYhu87yTEcY4KNvxePA9fE3Ft0paWwpmonIXrjzFuwpsKu+A15tD39za1D23PZovdj44i4Kt4IrkaTu1SE7DqB3w13OXr6xw2l4AZMEOjCTYIQ6JStODwF5p0ZVSPtIW7DS3JAvQP6Q53m2yv/PuMbOB1tr/4z2NBi9Vs446qExKgBjCg2/Dewn54kzn8+FjZeXuh0HMzBv2FVuNtx432F/+mdiz7VHMJXOwXzpkgMFy4XJyB2zUgdSJEgXMEAS6EUFSFWJxBaOhiCUTxZEnUVKArlkPo7m5DBKE8L1oYoIAHHodzsALRhIHOE2W3sFUhylxKAt6IGxsXD7hAO2Cm4a3pHTNvdIZ/P3rx5GduvPHGDgkrAr6+5p5Nv5pLS8CqDnjTb5g6IGwmAeOkbODEHMcspQQi9j0PMb4ZrnbnETU1ay3N2AIWqsSCplctYvGe2PFSfC6YaP0FANWxagwGmQXvL+yDtxgjj99Qdd/OCr21IzzB3fFFP/zdp73FB75bnTSO8yZZlhZeEVqPRJQbEEERhbYkpIL/RWhPMy7IExs3YPtArlNL06RhghYJlzCSP+lJRxF4HtYgR7DCAmizCJCuUQKTMrPRKsb7KtHXJAHLr6U7stpJ62IeLCR7HZJRBD+fHIH35m+Y3B2Z/9+gRq5o6gKhCPhicN1C+1weAlZ1wFtoSF3yS91MAkYXKYlHoHoTxiwFJxABoHWEk77oM3tmtJcoQ5JPt8Up+PdMUnpFLeymfS7Oab11Ab6H19JmHIbAhEO5ffA2c/TxG6utngn4ed6851Tkf/Mfisdzj7fmYUHHPqUANprV2GABLckNEjCLhAeCwgA8oPtgY3ciy4IhKwnbAgc0jQW6aS7YmsktpjED6J5FPAySYej1l5kPi1EblgIXVvw2tWD0KCkMxaeZ6I1M8VyxGML7imSN9xkt5ot9MemGb2kh7AMHPjp8C/wcy3994unn3s/uvJPkKRUBXyy6W2S/y0bAqg54i4yoS3+Zm0rAmgY6ukDJXuGk5oQWWIBxRQCwwKALInGJ7kuTIhOxkH+8jeDftelV0gKOk4o28XOhgL1qmQvPsPh+zNitGSEMcRM+kL8BftEY+fG2svuOQo8W8DeaC6+dMoPv/XjpROZnYRVqBieCJNLCRGBspnCOdoG9jATMow50PFYEZgRQCDTYbaRhZzIbjjm5+f1aRm8F/un5oPW5tGlFjmkzUyP69Z0o2tunmx+sQqDNR61wvl1LlsJ2/5Rfh6l2HSoshKq4sXQvdbSgZUjBRysbE8Yusk4Zd0NrHDsZ18wQMj7Au/p2wZsS2/7ugGt8aFRmRCsC7mUUbOFtLg8BqzrgLTzENv3SN5OAiUBDpDHM4MWYJqOSGtFMAP/WulKbOrbm6nuxwP96V/mKJKs1G234c3G8tTbcahY0AIYpUUbxfQMH4M3G8BM3M+etvWpB/8XiS+94PhE89EJtIT3FXfDQYgyQeERsOW7ht5EbzHSd3No6j2BUs+GgmYdX2QOwzUz9swXGZ/eaWZ0Dn5p6/Ilvl8vlKHFjggHsgpcfeSR898c+NuZY1rtbGmgrkd8uBo29YOiHTgS19FRQKyARH26UKGMZLV70YpgoqkGuDUy8E20RL+ZF6XloVTMdXEOUXN1m9sE7s3um7jEGf3evbv4PdNQrAr4YdLfQPoqAt9DNvk4udTMJmCxbUdIKgJKKwMEIOeTAgj7dAkwi7LDcGfFf8fYGPJibdDekBbyW2/FyQMRQ0bJ8fXoMXmMPfne/4RxijNXO9eWPPfaYcfc9b7ztR3zp3/9Z/fj7pryaucw96jeVjDQwwggCjZPluhGlKzKkNUYLne1GAm4y+8K7UmNL+7T0bF5zfnfmS1/91uhdd/FmsxkdPHjQW3vOuGSaPDlpz83NMeu554JtHzu0jVvZt86Cu7+lwQMn2+XkP9Xm++e5y056VWhCQBavxfRO+8G1oYULuSlEwpjUJRPBMlyD+3N74K322CMHGhHVBW9pAp6dnR1wAZKRbUfFUglmikWYKZWg5JZgulQC1wVIJFYhp18TCUgkEpCU/95SKMBAaoDlHYdPHz06f99992GnquvmdWkJWNUBX8KBwiYnJ0dCyzJtHN+uCyX8kWN8ujQDpZILiULXAF/nZG7dthcKiQQU+hNQSPRDWtO0VrvtHZyYmL+E576hQ28mAVOfWnTjahrFfaMwglTAYJeVhT3JnH+Dk18U6Tyi1yFO2N0W55kEvNb1vPYyL+XnZ5yVXDNoEGAZThQY49xZ3Kcn/8vuI6kvsTvP3j4Pd2w0GmMtx/5Pz0L1o/9p+V/sYtSGGoREXimu0wLFYyH4unDDXuwLFztIYONmCl6dGglv0vue3m9kv7idm6eqJ09/a9++fe0LOTbnnD316U8b2z72sW2BY711LmzeejRo/uvn2sv1Z+vzhdNRk3no6kYCjgT1ahgjXmfxgm+d7criZDq0oNHd70Q6tDQObQjhXnsQDmX3zNzBsr9LyVhv/NM/4rVmA6qtpkjDlt0pdFPENnAAnvNFsQ8mttMYUHZgEEDCcGDn8Jhb4OH9n//orz1yIUBdym1fmp0dqBSLCRcA9u2d+EiTGROVtusXqzU+W1mGuXIFim4Dlqo1aPptSNi2AFpKqpmGCamEA46ToM/253KwLZ/XBpLZYG5q+jOnTpyYuXH/fmMgmWQ48T3+gx/MHzp0SAQa1t5IzrX5+fn+mZmZ8p0yKN+9ydGjc4OVyvqfxdsdnZsbrKyz/4kTC8ORHVjtcnlhvdVhrxhfcgK+zHXAJxYWhnkY2g7nPAzD8M///M/nP/GJT5xnkPeK1up2n/jEJ7SPf/zj/SMjI8X1JOgu/Ii97TE5OTlabrc1p5BOD+T6f9XnWl8z8MNSqwFL9SqfLa/AfLWKv0O5XgfNtIGyPyklh/KM6G9MUTF1HQ70j0IulYTBZBqGcgUYSaYN7vvFlXLpr3irVX71vn3LXQWmvZ3kJd5qUwmYknNEvSoJSWD7vpDB61MjcF9m59QeK/tJAK3JIULRJ/GKS2+iGNVLfMEbOPyKBrztu+YgN+bai+Wvv27HDpwaz/mqzdUGlwv6b/1QL/3mp4ov2G7gA8ZM4zpYtHoxvowEdL4qJKrhXYfJ8H0fIkgzDe4v7IG77aFTOWb9H8Hjz33jte3X+uw+dtGGDhLxfYzpnw1ab6lq2n98qjn/9EJQ//UfuLP2UdYCPeJg+pEQDUHVLhlGiHsB4xjA2mKkYA3JumvRhbRNw0Amnpuggx0xcnG7WggTWgI+NHQTvIbnvn7gH376vi1DwNPT0/2LmpbO57IfrHrBrhMLs5HO4N2lZnOkWKuFVbcBxXodVtwmuDyCuh+AFwZg6LoQEKeVMNYAMrANCxzLAtM0YdAyoT+TZgPpvrDRqH+rP5Ob2TMyam7vH8RpzYdW6zP1mZmZm44cWWJriHie81SjVvvf5kulf/ybxx47uWM4a6DV7dfrfOeBXdbdN7/6I0ul8vf/7tFHTxXkZ8IKB6jWQ75/fNx61c03fWS5VH7ka48+ehr3x/dHtvUbb3rV3b/qmHbBbTR+f3c+f+p8D9XZPr/UBHw564CPFYs7rHTy48D0AU3TOA+C+nPHj//FM08/vZLpT6KeOsA60w++tdZOXPueizuiVwQSUKpUopsP7sveMjHxwawHD4/09/8sLgS52Ptwvv0OHzs2lB0aKiQTiV8p+156amk+BWF0f8VtJmstNyo1GrBcq8ByvQFV3wP01+HEiZmq8SsuhqFMUBQj0HUYSqSoxKPPTkB/Kg1j+byWMM0aN/RvJNKpqfrk9GfsKGru3b3bSLYNb2Ji6IpbxptGwBjzBQaWH0KoM/CotoWBHXL45cxO+HDuxmcOgPn2T33qU+V3v/vd6xtEk5MS3l1rbmH8fvz25f5cfO8kTMKSbTOYng4PHTr0CjfueuOOP/Cw/sif3POOJxK1L3y5OpkOfVqavKLk6Gzk2n3MtdsID4J4WpDEscXf/9J/MPw5o/+b28H4CGOscb5nodfPy63Wnsgw9rtBEJzSvW983T1lP9aeg4rfBiMQngyU60TvR0yoeGwkX1LxQsPTMKhuGM1VUTtMafHCkCX3MxZlcfBZBC0WQEE34Z2FvfAGPvDo3X7uV657An7ppZcGwoyZSuSGPjDbqO9dKJd+cbnhjpxcXAznS0VnsV6CRrsFXhCCGyDpRgConsJECy18BKn8AE0DWaCNhfhIzDpaClEAtmlAPpGC/mTaL6Qy4bb8AOzsH2QJ2w6Hsulv7+krnNJarS8uzszMHDlyZCm2iH/47LP5ctL59sxKcWmuunJcMwyThyEqfEemqds7BgZ/ablW+3Gl2TitaZoZD07ZwDoydMPeUSj8UrFe/1G52ZjWDcOg0REE1o3bxu8vZLJmu9582zsPHHiy10G5drtLS8CXrw74uZmZHa5l/btys/6rtZabIasvClsvL87/bdP3Vkghj7JDcXUrUIizRc9oGL6aZ0Of2z5Ay2+THJ3h2KAZOnC/HVqcZQ+MbXvna0a2/+1YbuB3GGNoKW76Cz0dbEDPh8x6cLHZ2FFvtd69UK8lJxcW+fzykr3UqkCr3YZ6qw2NdpvGeIhSgKYphBJCTHGJy1WEuy0ui8HrY5pOWcAoLZg2TcglU5BJONBfyPmO7VRzzPib3aPbGreM77ILhrUMYfhX1enpyt69exc3/WJ7POBmE7DthxAgAUt07IjD/dlx+FDfASTgtzDGzlA36vE0r9nNuMt3/YvZ+M9fcU8c+lptymRYC43ezzVXdFEEjB5VtDgjDpamwxvSY/BOe+zEHfbgfyh86UtfW2vEbARElNI8dOhQtOL7b6gY2l8+Hiylv1+d7H+2XWItKdyBTwcqnxEZx/XFUuYMXeS+hnnOItZL5Wq4PeUNCIL2dYOes7YWgff/s/ce4HGVZ9rw854yvWlGvUtWtdxtjCtg3DCYHiDZkAIE0gnJt7vZ3a95N/t/XwpssiT/7gIhgc0fEgzJQgwGY1wwzeBuS7JkFcvqdUaaPqe9//W8Z0YWxlaZkY0MPr6EjX3OzCnvee/3eZ77vh9Qwa5QuNaYBZusRW2LzVnbP7UAfPLkSY/R6bRpHtc93T5feffgwMaOYW9OY0833xcKkYFQCHyRCKicygzCsYjD7ivLLLDbzQaCSmU9L8cWN3o9CCdvfQ+AaLxOIAABE8eBiXLgNJjAbbGB1WiCOYUFypyM3Fiu3fFadnpaOwH1/8s0WI/g5/34iSecPTmeHRFNvSoYDUvMEk1RdRE5PlGNGoEjMlsMxrcx878uWlNUI8fxMqCwG+3U9GidWEWj0eVwDBtCkQ0/vvPzB5IdqJcGgC+uDhjBV7GbH67r6Lr/g4Z692AowGo7DHxEUWKeAWO2xEJnLAAzMk5cvpH4Mz4iZH1GpBiLkHiTvtolsgw2nifFGVmG+xevrPVYrLeZTKbWZJ/B+Y5rbm7OdObnu4KEfLVneCi/1zu0uW1oyNbc3yv2h/QSykgkAlFBYZOZimkzHFKstoWjSF/V81TRJ8747MmiX320s/9KmILDiQdNC5AlihMtArIgsBJMucsdy3G4aXVOPl+Y5vbnZqRvcxvNHZIa/p23c2Bk/icAxNMOwBICMMQjYA4SAPx5Z+XRajAgAF+UxdV0jpfp/CyZ0pUNVHr12ZF656uhTl2qg3PPdABwPALGgMfFGeDzntlwDe/emzccuSUjI2Nccliy1xihtDAMsPGU7J93VPZ+8+VAK98BUUZOi2mabj+KkuF4Zoh9T1xmxqm6TSnK0/B39lolLDEZZsQXJmjownNgiaqwkHPCJs8saZ4ps+tTCcA9gUCGwvP3j0RCZYe6OzZ2Dw/nNHa18x2+ITIYCoFEONbHUcY0G2rVWKFCd1tJTD0oosZNpuqoxk9PSehesGdta85q6liUrKmAYIyrN/w93eGCcrsbFuQXKJVF+VKO2/2yEJZ+Gunp6f71f/1X9GSeZ3uU0JX+YADUeJTNADiuLUQ6/1gSgD5Bno1Y0E0dFwTsdJnjjV6LsZnMkO5K86bFlI2/e+AbMzwCLoaHLpIO+MRQV4FEDA83DfTdv7e2zn3odAuE0cOIqhCLRcFoMp01RhgN/3RAYoAbJ9acx0aXrZGIQkDSVKAiB7zAAScr4KAAc/KLYGnV7NDGguJ/so8En3DPmjWS7AQx9jgEXlN+vgtk+cu+SLjg2FD/zV1Dg7bGjggGbAcAACAASURBVDNi58gw9IdDLFKT4g4/JE5D/SiVQ3epZ1pFXHuMmTs/ssBDrSheYzwiwTlWX+PpxhM47pADbAMess1WKHa7YV7JLLk4M3MkJz3zFafF2mmNSr9OM5uTLoEkc88uFgCjaQXGOAjAmIL+gqvqMwnAEUpXNVBp+9Pe4/Zd0d5RX+bpAODEZyiaBtmcCR5KXwArxLQ9RUTYTAgJJzMeJjqGUsqtIYT7QySyuoGP/eGPwVNZBxQvyKoKeB5n3c3ONnhgGmHgGcFKoSrThaMzGiGUOachkQvZQ07gwSYYwS6YwGEwgV3lIF8zQrkp7d0io/25Tw0AY2H9SHNzekSWLeklhV/o8fm+09zZnrWzsUHAiSkgRSGiySy9iLRw3XYMERYjhFFD11FwY1ECTjYYAcS3seCXQGpDHB0T5tvoOUrxRY37xSoggEvloNBqg9KcDFg4a1a0wO56pSQ7r7VvoPdP/2PXG//il2IrhwMjDIBZbMImRx1m9d/1GXI0UhmDyGgyziJnli7UARjF8Gk2B2R5PF5XVLrh9/c9NMMj4IujAz7R1VygeLIfbjzTdv/eE8fcRzraYVhVQEUtp6aCrEggcLhMOpt6nehlPfffWfzIc8DhiwcADg2g0p0BNyy+GubPKq/zKOFbC11ZLVP93PPt3xuJlIDB8LWeoD+/u7t7c+fggP3NM63iQGAEfKEghHEiYANIlz4g9vJxq0RcHGpYu2KZHRxMnG6SPyqdOTeC0QcZjxFvvPnAaIo+np7HTwvHDRKMigoWSiHH6YKSzCxYVFUjF2ZlB4os9t+ODPX+h2GYC8yZUzKYsOCbjvtxoc+YdgDGGjCnE2kw0WjUNLjlMwzAfpmuOsmHX31q8Ljj3dggCKxWPl01YH2eU1QNcngTfCN9ISw3ePYWAEEAnrb67/nGTmgglNPs1P52j9L3ne3hdqFLDmM5kM3DCLio/2ZBWjzCRYIW+m5hiQZ5ATbKQ7rBzORpFk4Au2AAByWyQTD0pot2cItmsIMgGiWlnVLuR/ctWvbGpweA9+wR+lYu/3Z7wD+neaB344mOMwX1HWeg1TcMIUVhkyQCo97pAicofWXP6OaM1aZPOEyOzQroegTEx3V++qo/vvofJa7oYnwcMEy0jUCYsDdDzSCuiigPWCMRNQo2gwhlngyYl52rLCitiHjc7tcf3fnaspaB3oJwLMLyoMwInFUSMG2IKyp9whwVz58zclCjiN+JrjMoWsdJlygauO0OyEhze42+kXV/+ubDLOWdzHZpUtDTD8BdXV0FstXw8HveoQferT2RdrC1CfqjESCiADwnAFU1BsJYxx/v/n70niVAKp6DYExNAjyzK9TAChyUp3lg/dyFsHxW5RmXxf5z4/DQ05mZmcFk7v3YYxp6e0vAZn3EG418+WRPp/XD+lqx2zcEbZEwxFRFX6mzwFYf10gWxEGD7oCJlPK5hokssj1XY3HOiQrsPYkv/9j+Hz1AFfRyjCbLrH6D6UiHaIQ8dzoUZWTBqrIKb57bs63U7mrNNBj+hRCS8r2Y6F5OJwBTSsCg6CSsGFu+cGBUNbjF8dmNgMOUrjxCg9ufHDzu+DDmnVYATgQaOJ4ziBHuz5gHqwzpu2d19m4mk2BoTzQ2Jvr3jmho0ylReekPIw2GdyL9IOD7w+Z1fTGK0ayZcmCgBKy8CE5BBDMRwUkEsGmcnGa09qbzFrBzBrALosircotfij2XbXLQNM5CTAAiUdXTwPN72uvrsz4VAPzmBx94iNvislpdvznZ07Xy7aYGvn6oD7yqBLqiDanhOCHp7LVE+hhBU+CwXVXc8SSebkww+jCiRMKVTmrDCOIcWTYTiuvSrbMF+ng9BGuMcXYc8uWjWD/mOLATAXIMJpidlQfVRcXyjqZ6vqm/h5NVhQEpE25jBEzRSxWbWSeqzR8fOgk4wOgGaxDomYrFbHTpcVpskO32DM93OO4SHv3l3i179yZF27+4AHxxdMAY+drT0h/u6ut94Nkjx9JOdJ4BrxSBKKisjoOgxBppM7Ld5KT2Y1OzZ2EYQGFuN+h/C1CS5oa18xbCqvLqMzlm2y/6TtY9s3DhwuGJXvoLRnJ79gjp6UWesIU6bW7Xt9p8Q1890NLsrO3rgqahfghR5SzAxtPn+ljViWS6gb0OyKxEN3riY0re4wKwDtm6s6AeCes5eR3ccWiify7+L6bgKHYNwjox4YFXKJiBg3kFubCyao4yLzuvhcrRe7rO9PTcsXLlRSVoXSwAZixoegWAEYAP0+D2JwaPOw7FvGyxl2jb95E8SqKkM84LcCGiFnIVnCDA3e4quM6S/W4+mO7OIKQ78VHHenutJnnEVZFf0TOdMr+ATK/pJLHnXwg0Zb8aOMPsKQ2iLj0VKKcYDaaeNGIAG4iQyRuhjLOAiYjgEIwCxKTTMqG/94hm6uRMxACcyKmx04HTHTuampqg2mwmUFwM95Xcp/wl+vosjScPXPYAfLipKUNLcz7QODJYVtfacsOprq68Nt8Q+KnGmGeowWK6tNEmkfrklJh49UlFn1c+QkZJGKnHnzhb+ccjY/2v4nmIhG/rWBCOj0Icf5jARjq9wirzHOtLaQICDl4Et9UK/VIUAkjiwTpiPLXHBmU8EmcR8DmdPMeOZ5ae1mfb+GRJ2KCxcDyU5RVKf3fNdX9cnJbxP4nZ3J4MEFx0AJ5mHfCJ5uYCyM58uN039MB7x4+m7TjVAH45xliaLEuAt4pZCyLZHePWjwLw2AkEbysjxaMfMKag2DPC2ieWMJDEpYHC82AFAvmiETYuXAyra+adSTdbf+E9eTIl8MVn5fV6nRFR/MHp4Ejxyd6uW452nHEdb28Db0wCZGliWtQQH9cJ6RAbymyhqF+JzilMRLE6kMbzNOxPCb7BuWMjgct6z9sx25j/xc/C9Jue+UFswhoZgj3L17GbZxEIzMrIhsqsrOGK4pKX52fnd2QbLE/lJjkeJzOGLx4A69ZWn/UI2E/pyuNacPtvBo87DkS9qB9gAQCbErEtYHy+SnBJJ/PMzt0HgxcL5WC1MRvWppf1VhHHo7MAfp4A2wCNVUtAV/vbev6zpKQEubDTsg0MDOT67KYfnlCHv3si1EcwaDICpzjsjgFZ0063KKHfu0ULdXIWkscbYRHnANT6moATNUlqC7S3v45gW15eDoIgkKGhIfV8Hg8+GinmNHLbZQ3ATU1NGf60tAe7At5vHehsy9rXeJLrHRnhWEkXV+WA7afOb8U2LU8rhQ/RS28ptuti8wGnM/TwehEgkI2LqzZFg4Xl1fDPG24YKrQ5NxFCkqoDX2wAnk4dcHNXVwHndD7c6B18YM+pk2nvnmqAvtBI0i3RWNN1iu3o9J6kCMAa0ZjUCMsEqH80moxQaHXAyuJSWFsz90yZJ/0XnXWpg++b+/dnZebk5Ac48nzdQE/RmydPCI3eQQhKElBFZ+Nj6lvvzzNzN8wiIWvaYzbTlRXVyvKSskCFO/MZEon9a01ublKLwomudjoBGDMIKENiKWi2gNN1wJ/lFDQCcJ0W3P77wVrHW5EBNufg/cENAwxWFsPMUqIUMtEDO8+/M4IgZpU4K6zLrIQlnPttjz96n9LTM4z9dH00UqSpdImbN28jhExKvzzZ02iOBK6PiOS3XiXKmXmR52XlNOW4raLAnz78uz+9EcgK0LLyMrRygurOTv3Ci4vhQmB7vu9FCVRpaanxsgXgfYcPZ5RWVz74bmf7tz9sasg92nEaekJBkLBuygS8Z1Nnk73xn8R+Y+UtyXz/uQCMZvE4cA2yBgsrGAD7Cm3OGwghHyb1+ZSm9wLseGrPjkV/Pn4I/KiPwwgSA5x4EiCZz2XrD5g+HXDzUFcBZ/M83D448MCbx4+m7W9rgb5YGKIKq0EkvTENIF6rqrcnY4CCZQdFQ6YIlDldsGL2HFhRWXUmz2r7RU9r2zNrUkg744ki2SoE2oN1XR35H7Y239oy0Oto7O+FYeQy4MoSme842YlYPpmgiJv0lU/PgQkrP0xTZhrMMC8rF66fPddXnpP920Dv4C+XVVWdIUgdncbtogHwlRowe0p+Sle30Ohrfxyqs26LdOsZkIQeljkGYpMKnReTqhc08gkWih5YzLu7qs3u13OIuSnaP/h8VXZ28JcP/zLw8C8fRvCd1vEzFA4XhMzGzRGQOQtwghm4tkBbx462tjZluq2GL0sA3td0OMOTW/ag1+f99ovHjuTub26E4RjeLl0ipNNC9OgSawmf5u28AKwBW6XPL6tEAPYWmaybiMEwgwE4NR1w19BQgeZyPNziHXzgrePH0/bVHofeWBgkQRf0n8vvnex4YGQmjoCCJBz8HBTVIwBrems0l8kMN1fMhqXVNWfyPWm/6GlqTRl823p7S4jD8f3WwPCX9tXXWnc3nxSGQgESkTGfoxvooy6dlSuQADXDhzdLRwkCqMgUlzVwUYBlJbNg3cKFviyn60m+reuflixZMq3ykosBwAqHTlhXWND47oQpXdpOYy/+yddY8Fykg2VhWOkBSX9YskH/BPRWiKekJ/u+nbsfLvBVkUBuTIAazqEtcuRoRSZHTzpvecMJ/Knets6tbkkKVlZWTqsOG2VJzc3NrMtGp9BJ7EP286aRk72uscdddgCMNV97ceGD7d6Bb7935FDujlOnYCAaBY3DCTJhkIGkqzj3E2tRn+LtggCsUVhQVgU/Wr/x8gDgJHTAKD07efp0oacg7zunA/4HdtUeS9tXWwedfh/E0D8CJ/1UFmDxIikCMNbvecHASHyiqkKOzQGzi0voF+YuastyuB7vPHz4mTVr1iRNuMJrae/vLzG6077X4R/5yo76Wufe+lpoiwR0Mh5OblhOQZkbGmsw0T9hDeFn7IaMflkBYjAAmMwgIxExFoMsUYQVs6thbmHJqWKD6W5HINozf/78aSNmXRwABqavRs6IScMUdBF8Vo04ensDmT4P98hbka4fPBlqNSILHyNeXJjyms7A1wTdmwDVBsluCOAyR8EiA2RQEfIMVigyOqHcmq64OUOPmRjeyNa4ptr2hj/wmqhlW+28mZjDi3JyBpL9zkt93GUFwCdaW7OcBXkPdAT9395XfyJ375ED0B6KgYoNmDkKzLSH1e10Q+xE9JNsBHSpH0Yy3/dxANY7kBgUCgvLEYAxArbM8Ag4ORnSwMCAXXI5/qEn4H/orfoT7j0n66B9ZBgiqHlNONKkuP5SkEKHWMcLTHgvoDzCYICrSsth9fwFocWezH8cbGx6KhW2Mz73fkptBJQt3cHg13bX1Tp31ddC0+AgRHmsQWNZAeVputcsEgoRgDG2ZySombrhuUkKEF4EzmQCledBVWIgKjLk2G1Qmpk9fPu8xX+pzinssErSr7NdrmlJR18UAGZWlBgB6wB8M7Oi/Gw6YeFwa/R7V9UZQq/+S+CUIyjFWDMGTVPZghCVIyj71JM1yQNwYljrNo8AIgXU0UKuwQpZggXyTU7FrZEenya96hEtarboMFo0oaWpveE5BGQHJ3BpZhO4jCYq+CXeaTQGc3NzpzVaTvXVu2wAmG7dyg/fddf3eqPhH7xx4kjezuOHoW3EB1E1YQ2JMa/OadWlF5xeCz7H6WfKN2yi+e0TRvfPMgB3+/3pp5Xo7iOtLXN34mIsiD09Ub6FDbA1Rv7RO/0kv6ETGuptGPhSAhkmMywpKoL1c+ZBTV5hnYuSW10mU8pGG95gcG63Kr/8/pmWklePHITmoUEIySozghEIZRMQslsYGV8vsDBGLmHNamfmxgwMGBuagsALwAkiqAQXNCoQRYE0k4XetmiRurpqrr/SlflkhsD9aDrcji4GAI/qgElchvQZNuJgC8ZIZFWtEHr9/w7XWf1ShDW1l/C5YpaD+SzoRi8fY9FPYajqCSjssKez61GqiSxrEyVgRw2uwQRO4MAqGmNMFiRYeSsRemKa+qqZM2gu0UgKeQtYQIB0ziSaNa1V7o/+OifHPmMi5MsGgNtDoVxOFJ8/0nVm1R/37YbjA70QQt0r03TidISTk67VxVBYJNilgmdezig5SnZjspVxqvy6RvKjm85w1vWRFxufxwVgTEGzGvBMjYCT1wHvaD6WebCtLTtMDFtb+3srG3o6IIySbBZlKaDJ2J9Ub4853qZLvi7c3BNbouEkwNzFDCaYk1egblq0aGBpfoHfRfl/72tvf7qqqiolj9qGtrYSU4bn++80Nd634+QJ29HeTggqCoiCgZG/CNODxzW5cctUwlguAFQYH4BH2fbsJpwdkGO1zJN+N8ZE27pT68QKAwm7iUkKiKquuUe7MMpxICkys2qtyEqHjXMXwfqKOacyRMPtHqPxZKqkmukEYGbEgQS8uBMWUoyYDMlWCJ9Pqzo6+zPoBY1PPizRpce4kRce89UV9koh8HMKM4RhMiRWHUGdPRoKpb4lpJg6nycuQGdmbnq6Gx3YjSqAjRPBwRvAabTEMBXu4EQopkZw8EbI5C18mtHcF9HUX72yf99zgstICy0eshjS9P7uhHBGSi95hHxZADAWxU9FQo+0j3j/dvsH+7M+ON0Cg6oMMnrvxiMdZt4YN8rQjQdQOoIyDV27ecFNN1GOI6U+Gycs9/AYVkOM639xFcZMuBM637iemP0vy3nrx+JygA0Vtr++MGCfFTdFYPsnDBNSROgE+QEHPMqQcF4eTUFfDgAsirAyrwgevG5df4ndtc5tNJ6Y6JXtjkQKW6TQg1vf31N4uKltc0RT3JgGQzkEGntj3QnLD7rF9/g3GJ1u2AjB3ZiFo+4Jjqkz1LVK6PEck8GtcbC4sATWzFsQKM/Le6zIbG/1hMOvEJfLN9H5Xujfse7b1NReoqZbH2nxD3/5pQ/ecx7r6QJvLMq+m8fOSji+Rz9AH8mYBmVrSt0XYrR9wrnfg7sw+zy8F3HrSXZLmDRIH/Jx9flHV4rx7vKItwg8LJOAnxNvsYajGbuD4JmJE9xfFSMhZG2z53E2msHzwi+1iBzUpGfDLYuW+ZdVVP57MSf8U6pR8LQBMBsJKPPDshbafFLQBB7Mkga3WIrgLk/10TkgfOaaMeAY6u3tzTzjFL73mtT7396J9Bo7SAx4WQNRpnrTCp4wT+RUAHjssczhT5dh6128Ep4MLMmpv+u4UEZbTJHj2b+jEUymyoOFFxg4Z1jsiAkdPVR61S6atAKjjSwkTrCDAZwgGnhFahro7PmDhRAiquZwefnFryVfFgDcT4PZ7cOxrfuaTq5+ef970BeNsBcBJwGiqSlFmSTR7SDeTotNcXHLPTbZocOPPuuN2vzp+BnfL0400Fd+uo1kwmsa5SoKKID+0DhIEu0exgbk52tGPZUJHY/XdcDcRwFYBr0GvAFJWDM3Ap6qDriupaUw5nE/fLjnzH1v1B5yHG3v4lVNI8z8gZlCTG1Fg5GZghMs2pSipWR80tDtSAmoRg4cKoE5Lg/cvOhqWFpSVmdR1Nu//bWvtb7wwgujXaqm8swS+/p8PpcmGv9Xc2j4/pfqjjh31deDN6w3JEZOA4IjYz2PsyU6NF1oF9QuM9kSqgOY85fuA808w9FzN744xAUHW7iimUZ85mN2qPh3jH1N2eSGv5BXg1aBuDYV4vrPZK6fLRA0DTyCAa6bXQM3L7zqVI7FcVuF3Y5RcNLb9AEwvlfYA4rqVps8AFpvmmMUbrWWwu2e2YfnjcA64iJJL8KSvsgpHnjw4EHR5XKlTWebyOOB/muajHT71pEG62EtAEYFwChzzHFO5TUGhKkA8BQvke0ep97q7xDVWwSy4iRFhzYO7JwIbtESw0jZJRggnzcxV6sMYhLMlHSJvPhqlmATjZRrqj114o9ZRhd1WK28LQihiwHIMx6AkXjlKSr42jvNjd999fCBrKNd7RCKI6JuA5laDQzTlIkUJGvXFo+aWP2KopmH3h6Q6S4ZC1Vv7cYeamIyizdjxk/C/TC1hhM5TlgojWKV6XhUhtEwiz5Y84R4Q4hkRlr8mMsdgI28AKvyUYa0vr/E7hw3Aq7r7i6MWIwPNw703P/m8SNpxzvbwY8TYzwVmszLjg0UWM2YtZVkT1gn78WB3MYDVGXnwYa5C2FpYWlbmsH4i+G2tt+kmnbGxzcQCuUGObLnrYYTFf91+AA0DfsgmogUscVZ3EgmFQBGgxYVNct4fZieB40Z3aOVCLYUtBgENlFGwxEGvtgdKiJLIGsqWwBEVZmVdJBTwWMdF9P6isZ+sPMXykSS3VgQr2lgEUUodDjg2opq/w3zlz5tD4UfL87OTpqQNa0AzLF+UQCKpNc0OQCzTGCToxQ2uSpPFEvhexobWgOCzcbpzUln1hY1myDsH1FmV1YVGYBfH/SPPKcNBQNzSkoGUrVw7JFCV7UJ9MX/8jUU7o32QZAA6wKnqir7QQkfywJ+gpteh9bJYEzBgCx2TkB3K0YWIwIBK+XApQngBgNkWh2xDMHG8wDdASpvLzU6tRzeZkTZ00BP+x89YCYugNB0kblmNABTSkWvpn2vK+B/5IX338rb1VgHA7Kkt0iL92dMKfyNg+poWoMReBgC6z2I2OpfY4DKulsYzaBJsk7s4QibpKJRCQSjESRNgRBaSmJkEe9MhGAcN+XSQV7v1TvqgKV3ZEptgF7uAGzgRVidVwxfX7O+v8LhWGe7QAq6paW7kOS4Hn637dT9uxpr046eOQOBmMQWMWP7b071Xcc3DYlCjNSE0S+mXeM9mY0CD4vS0+G6hUtgZUVNW6bB+Iv248efTZXxnDjHDq937tHQ8LbtH7xX9H5rM/hwMckJIKCXMlul6an0VACYYDpOVVkaGPuRitgqjQKkO5yQ4UoDj8msaVQbMBEuixCORqnWr4GWGdMUEoxFoX2wj9Wjg4oGCpMZEGZQj2xw1PjK6PqSyobNUUQBOEWGuRnZ8OD6m3xzPTlPZg4J/0Ryk2s/N60ATATATmeANWscGzwBg0bgalM2rHAUDno0eBk4GiMa4bD5Ci544tUodldwofNJbXgeUU5hHaoFQgqtwC+zUsPrucTYIA4MPZ6bm5uS/hrT0EMZzu8fivT99cvDLUIjHwVV5IGTVQBZ1buzpTi/pXrvMEU1WoKMOw+ynu5xj30Zm5khcxvfDwpgNYhg4fUfl8Ecy9VMkCs6BA9n6LIKwvZC3iZYFa0pMNi31eI3BisrU2NVz3QAtvQB/GVfQ93a3+3dAS3hAETihQDknrCa1HkaQU/lobHjWe2PY6s2nHxxpYSRmdFggCK7DVxmCzgNZjALxgG7aHRzguDVRC5IgQpSMJIXkiVvIBZ1DkaCYvfIMIQ1jWkGsX5GY9gvRyclJJpWJ9yLJkofTuY6LncAFgURrskrga+vWddfYT8/ANfVtRQast0PtwaG73/+g31pH3S2QUBRwSgYUWiYEmdnLAAj4xhTopqsgInjINvpVO+smdt/zbyFgTyH+987jx5N2d9ZX4dR0tHfX6qYTN975sTBr75be8ze5h0CGS0uGQBzIMbJY0goG4/DMNEYwt7XvKKBnRcg02qFWdk5kG42g8fu6CrMzNIcgsHXMdj/YlVO/r0EiNzY0/V8Tnr6FxSe2nxBP3+6vy+32+eDhu4eGIzFIITRDYIvS0mj1jO1DBSnEQbiiiJBtmiCu5asZKloJ4Xbc/RU9JQRfroAWF/k8yyLRTWZkX2Y3zWlUMTZoNLgpnZBkBntY4wDcqJ7DgPgVGtMk5kEzruPHkTImMHTMArUeF6lQo01S53NOT60h6QbS9LSktatJ76yR5KWtnGRF/4ydKrwLXUIBkWNNeLgmHYe8feTW4DgObIsZTyDqYdW8V48ca4OtnHF+Z51ros3f8VMkIgZIo4Hs8qBWzBBjmBG+VOsmLcJbiJ2ekTLmw5iaJT7ep63gJnwAKHKJCROMxyAuy0HQ/ZXXn5v35pXDu+HkEkEBVPGsgqGeOTDWM8pbOjQw9h0+BmyAgIayHM8FGfnQJYnHarT0/tz0twRu2BU+we9f5iVk7tGIfBOSFUaRINgs2nwpbbevt3UKK4YkSKzWvr6svpDIb6lr5c1AYhKks7MxtNEoMfvw9oiqy3rjMFUtssbgCmIGAHnF8M3MAK2Oz8SAbMez6dPF5rd7u+29Pfev7v+RNo7raegX5ZYWtSAbQUp2jMmfxN5DttR4ifwoBEONE1hDddLPB6YVzorsDqv4LH5JWWttnDsFVcKhKuxzxhrv5LV+r/ahvrvf2zfm86Grk4IKTKLrjDngnUrJLDg/ymqPO7VTQTAGLG6DSaoySuAiswsmFNU3JNuNPlAVZ/OdDrDTottZKCnZ2dOZuZmDni5q79nhyczc1OIKJZAIOiKKOp9fX6/s/b06ewW7yCc6u+F3lCANYPA9pfMLijJjVVwVPRYVhlpxwIE5qRlwJfXrPcvzi9+IlsQUJY0ZYb5dAKwQHmIoLiVqmi4z1LQSDJCPapT5iEixktYo3mzRB9v/aZMzBNP8uZN8jCeYGSnZ3YEhcJKdwFca8z6oLTTf0NJSUnKANzU05Ohue0/OCL5/vov4TPCSYp2wAqb19AhCzkxn+QWp+/oGdNzpgnWxYvVivVsZyJYZwETS4UBSPg7Zo54Dmw81opFyOcstFh0am7O0Fkk2F7LFu2igxObwj19T08VhGc0ADc1bTe+Ec3e9t7J2vUfNDeCZjGzG0ljKNHQxd6YXktlU3mcxDUQFBXsHA9FbjeUpmdCZUHRQG56RiDdbH4uz+Vut/AiDYTDrzp44xJC+eP/+pN/7HjooYdMZo9nYzgYPBi1muYPRaKzwtHwXw3Fovl1Lc1Z/X4/f7i3CwZDQXaemE7kDYJei8MVl6q3x0slCX3ZA7AgwOq8IvjGmg39FXbXuQBsOhUI/a82/9DXXztywP1eSxPrcsWy+FgrYDaHyYMvGzdYk8daEKMZYYoWIN9qhetmz4F5BUX1HpXcnG0lcAAAIABJREFU9tjf/V3KhKuxYxRrvyOctmdP7bGKpz54H4aRVBhn8bPyBTsv/YiJAqgEsS/x+WzCYXbReimkJj0dyrPy4KqKqp5il8ebbrb/p9ts6FC83ldPnz4dMZvNpKamRqqrqzPgZyT+HHnnHVp2zz02xWa7KRCNFnjDwS+f9g65DrU2ZR860wbtwWGIsNaDuvtcchthz1FSFRCx3RtQSCME7ly6Au5YvKzWKilrs+32KTtkTRsAswiWhzCzoFTBqnEsooriqgNbjcYwB4YsgrObziYYX7qY3L2a+lGMx8IDi+YQaLBN6RpHPtxozn+/usN/43QAMJ5VTzi8tEfU/vSG0pu/a6Qd+tVovHGJzr7/RDdGNNBfprjeRZ9x42jLygZI1mLpcj1iTnS+w3UXkmuReCfx6MqlE4PslAc3iJDLmWC+2R0rMLiEYqOrJ10VfqW0tj09FWvMGQ3A/++rW7MPxZQX2od9q04P9QMVRGZ1BrKsi7NxtkRKZgpzsEYE4PGmEgLlGZnakoqqgZq8/JDLYPxjhtPRpAQjb/TU1vbnRyJ8+Y03xvbs2SNcd911asJAnu7ZI5A1axT8+7KyMtGQk7NxRFGKBn2DfxWKRfO31h7Lauzu5Pu9XoiqCvAGkf3goJBlmenYUoHgyxuAAYwGAVblFcFD167vrxwDwPtPnMgSXa6svlj0j++3NVW/0XgCemJRMPAGMCjYAB7pcVi8ubCGV0ewMW/eGGBLTArsBWRxp576zbLbYHVlNSwvKm3LMVp/EfAP/2ZVijrfcyYgrtXnm3s6NvLSn959q3j36XZ9ymYLC1UnfyXSYgiigjBuGU13x4oz9OOXyyQbVIN0u125Z+lV/WUZOcN57qxnsk32Tt7v237s2LHQZE3l2bhetMhhtppu7AuG8tt8Qw8dON1Ssq+xHtr9w2wRfKHxm7j1403AioILUQ0MZjNwAgEj1WB5YTHcuejq5ipb2q1FHs+U09DTCcDoJYARMDautLCeewAREQDzEuhtbUBh82hek832KSxIpheq2NkwrSwPUtyXeY09DzabC/ZXBcim6UhB4xn7u7vThzI83zosRL75Vqg9+/hIL/g0CWSi6a5Y8U2/O/qW/KJtavcoofOPt7BmBzONMlO66ATMhM0rY7snSLPMW0L/YcoWzI7h/qM6ZAJGQiCd4yGfWGCemA41pvROj2B4vL255YVcMAWurq4emuhsZywAf1hXl10fHH7gxZPHv9Pm82ajyJtpcNkSBc2/9cGF6YNxt/hTT/S1Z/qx0TmZABFFyDRaYGFWLqwqq1AyPZ5fZDvT6rhodOex3bt777777imF2KNAnJm5UaVq4Xud7V9q6+1dsu/EUWhB5y4jD5xBZPplNRzRDf5TICpc7gBsNhpgRWEJfO3atX1VZscau9F4stvrLQwbjQ819fQUvnTswOaG3q603miY1dUZQQnLEPH+yROZrBBF1yRy6E2Lv5iuG3W+uiEEY2CoGhgpBxkGMywvr6QbFixs8wjiv3rfPfnsmtuT93c+37ikA9Te4ZS3bDv+4YMvHd5vPz0S0kGXlSlwya2vxPE8maoKx/g44wMXj4zFzaHMCFnKGphVDUocTlheM8e7orr80RyLqw16Bre3t7dPGnjPPXcc165il82aVfblMyPe7+2uP16yr/YY6ZZjbIJiellMNzJ9OyYf8Vp0edx4G4IvW0eJIig8ajgJlNrssLlizsitVy1/Mt9o/GdCiH+iiWzsv08XAOtAofe6xYmY8U6Qj4Xrfiai1ifv0W1MPWkig5epXM+U942fkx7xcay0wa5E0WC1Iw/ucMzaXzaiThsA4/ntb23NUouyvtENwYfeH2zLPa75oY9IwCn6+MUMj26fqvs1MOlkwithyhc4+QPYI2G90s8a7iQWjPh3DIDjZFxG14rvq4NEXAqI6fu49p4trxC8MX3NvKo1cMgc5Co81DgyIN/kOJMtWHeVUmsjHQr+ZskEdeEZCcDIfu7VtEfeOHb4kd8eeCe3zecDA7JlEiupKSyf0Mkm7lvPHgSmfkfbZFGAbJcLFuUXw7WllQNXFxUPmyn9qsdi2R9/XknH1jhhGY1GsWzx4s1tQ4P/8G7zqQX7WhqhOYCpO5UBMMRk1jDgswzAVtHAuuM8dP2GgVKr9XPtjfUdzsJZ32rz+e7ff/Kk4/naQ/xILEpEfP5xne/YtOxE7fg4Jb5QY5lCTFsjCOOEwCE9BYiA0gSALJMFri6aBeur54crMjK3nD5w4KlUmiucb4rYAsA9IkmLeiTphaf3vVH8ZlM9BLFZQQrxADKRNUqAGV7wAlg4AoVmM6yrngPXzJ5zMJuodzzyjUe6U9UsJ67n4MGDzvT5s7/WNNj/j68deN/6SstJkJF0g3xfwuslIrYojqPVBItLRo3AZ0JQPwogCgJk8iKsm1UBX7xubX2hxbrOSkjP5KdcgOkE4Kl874zal2VB9BqGJKCSgwNeUmGZIw/uTqvaP2tYmlYAxmtHySiXl/lIozLyN++pA/zxyCB0aTLrD8xS89isIQGEcYb0RO/vjLqn55wM3l62vsdlDtXAiiVM0QILTBlqjTG9J00wPm5v971gV9XwrFmzUPb1MTyZqQBsPK3I27YdfH/9M++/DX5FYana+BQ6pfyFbp+uV/hwQ/DF1CXm9o34olfWwIqy6t6StPRfl7tdLYZYbIfVap3SCz/eINm6dath4YYNt/ZFwn9/qP3Mwt21x6B5sBdiSPsxYHcdnXWdLAhf7hEwCuIX5hfBF6+5LlLocLxEgQZ7hofveOdUg+fd2hPQEgrojRXiIMWe4pgF2EQvMD55XfqF9XY9/cT03mhcwla2CmTabDC/oFjdOH9x/6KsvF6jRu/JNJmapvvlp/39tkGr/ftH+7r/5jfv7LIfGuhm4DmF9eTHTonZ8yGDn10LQI7VBqvKyrWNCxY1Z1mtj/m8gd+tKCjQ3T2maRuORkuDHHn5WHvrnJ/tfQ16vMPsXgJmc9jETzHpwKZaZJmOuyU6OhECUeRzcAI4CWFp6FuXrazPiylr5peVTakOfAWAdZTTF0M6y5x5E0gaLHfkwl0XCYDxOfdK0jKfSJ+tVbxpx0Z6Mrarg6wnN2ZEsAaNRDZUnMg8YZkE7Kl9uW560goVNImivwpmDSCfN0O1LROKjY4zK8Xc3VkgHPb8iPs3suXjkoEZCcBIUjkVDj7/4vtvrXr9ZB0ojBF6NpUwlQemYg2EcqzOiyxkbFuIhCjM32e73HDfsmt75uYWPRnr9v5HW92Bgfr6erply5bUtBXnnCCC8JLNm2/tC4X+fveRI/N21x7jO2NBAIcFKLKkUXc60UR1gYu+nAEYL8kqGKHYmQarK6poUZpbjikStHgHDPtbmqBlaFDvP5NoqJBID425FxMBMK79AcsXmgoYRXMCVvMA5Dj5KpvnYV5xKVw/d36gIivn0SKLo0UbHn41bRokGuc+Mtrba20zmb7zWu3xf/jziYOOxqAPjASnxuQ3mfUp5thEZgMOrioqgVuWLhupyS/87/UfHvzPW1etmjKLeKKz6e/vt5k9Gff1BUce+cV7e0oONTSQQSSSiUijQmazxprhMAieKALGFLuKgE0gitE8cGAmALOzsmHV7NmnVmZk3f56UXnDFl1eO6ntCgCPAWAgIPOXDoCDlGaHVfWGbhoq7ZRCD26Xe7PbQl7oozEIE8p06FgXxpQ0urDhs48rSyf1bGfUTsxpiweKmIIpaWwVSjWwUAIuzghlJifc7CzTyohlTwExfcFOyMeaQMw4AMb086Cmfe+99pYfPLN3Z86Jvj4md0j2IWEXEwRgjrV0RQDWgFNVyDJbYElltbSpYt5js1Tz4yUlmb0X8+EiCC/bfOsdDT1dP3vtyKH8t880w7ABgMgKAK78P6MAjHVLZJ/nWWzgQkMTVYEhJQYdAT/4NRUs8Qpjoo7zMVCbgAOAEzqzYkTfYgQIjrKuKhgVmw0irM+fBavnzocFRSV1dkpu//aXvtS6detW7XzpolTHB6XUVhsY2fLc3t1f39naYOuWo2DBtG0KHywhk57nQVBVyDNa4HPLVqrr5y34IE0jd2babBdtTO/cutU5d/MtX3m9s+2fXn3nbWd9XyfEBIE1PkHXNwbAepFv3Ktj9VXcH13jWJ9jJLdwkGWzwdLyipFvL131RKndif7QocnepisAfBaAMV0UQ1tI1IPHLm4KGp/Pli1buNmzZ5Oaq67K4PIzH6qH8Dfbwt7sw6FeaIYweHlW+Bk1vxib/5mI8T/Z53+p9mPXkbAqZQxqLKXESV0agIMTYJk9G5absrsrwf7L/iN1v16zZMlH2iHORAC2DAL9y+sNdWuf2vsGdAcDSUeH+CAQgFHsjwCME5VGVLAQgAXZ+XDr8tWRHKPppmU5+XsuxUMbGKD2gDH0h/dam27485EP+fqRQVCwg0jSlWZ9frtcvaDxnsewj7OiMQ0oiwXRYYzjIKDIwBuMYMT0MWYvLjCPTxQBs+Q1djPCBY7Ag6xKoCoypBmMUJyeCfcuWt67oKh0xGEQ/gNGAk9nZGRMe8SI13nXXXfx//b73y88HQ48/+sdr5a+dboFwiIPRsa2TH5TMIXHEzACgfk5efCVNRuH52bm/CQS8m6tO92tFTmdKYwu/bwiUQCz6ew5xmIx0tffr161YkXBaUl68fldO3PePVUHAUaOpKApGuvNjec1kU8Hc57D2iCH2ni9lahIeEBN1FUVFfDfr9twys0Jd3js9vrJCr6vAPAnB8BjRzLWhA1Fed8YofI36mJD2ceUITglj0CvHAEp/l6fm/m73EA4scDUdcRxV74ED4IAuHkBlluyYbUtr7NAM/xKPd3727EllRkJwF2qum3rwfev/8OR/eBDpvBETOdx5i+Fo2wSQD0f2vJhLTDDaITNcxbAzQuu6kjnjHdlOy0fJD8FTv5IJGbVXH31nZ3R6KOv1B7Jf/XIARiSoiktMC53AEapAmpBecb4RSIRVusJSJIMJtEEHFHipJ7z3+eJAJi9GOwmcaybjSzHwEF4mJ9XQOcWFJ/eUF7zVHF6eicXDL46XUYb5ztTrP922a3fP9jV/jfP7t1lrxscBFkQQWAtRVLASHSSAg3MogCLC4vhxvlX+Z2C4U9hTYooIhGsmqh39Epq07vOyDEZjCIPolFk9qssUUyIylFwBIG/de+Jo7b9LY0wIsf0xRISDJkpOpJTJlheEB6opjAfaqxnY20ezS+w+UF1Xh5s2bDRX+7OesJuMEzalOMKAM8MAMYhhyCcXlTwzWGOfrlJC5Da6KC5QwpkdWkRGJQjMIxjhq3Vzo6TiYZMUkP5IhzEGrZgExNW19blpKx/MTaAYG4emNjUIJMYYLU9F9ZaCjtnaZafZvH8rxLVtJkHwN3UUm/3v/yH/e+se7nhBDOGR8JUshtasWFbQgEERghB7uvcjCz40rJr1YUZuY+qw4M/Ly0t7Uv286d63NDQkCPicDz3fkfrDb/bvYNv8Hr1lm9T/aD4/pc7ALNxmjBMZx7b6J5LQI3IYCA8aML47SQnBuC4wofjWc1JUBWYm5UHG2rmh/Ntri3+5uZf51qtgcnqYpN8TLiIsDQHfN/debLuH7YdPexoHR4BBVtmYmomaQBGgBMgStGYhkCxyw2lNjd1mUySKgCJ8gBGNhOc3caafODffnyyS4ha9YYhzIJCkkHkBRAEJK6po32uVUUmkYgidIeC5PTIIARRn4/pZLwkJq6cSOOOBggCcx/D+Rc12VgswMWyKsuQ73DCP950EywqLKnjo9L6yZIjrwDwzAFgHGMhSnPCqrp5ADStRfUVDRF67wnFS1oiXmOfFMqWVZXgIhIzIAmJT2LU6tyfUaH1uIvxxCjX0ULXH40d/Yk/j9WnJ48scYMPxuCPN9dhiTpd1cKUNqwhD7ppKTALTHCXpwoWce5d5qh2b0m8PDTjALi7u9tSp0gvv3z04Lo3WxpY27NUImBcsTMKPieCgmJ6qsLtcxfCPUtXdWTz5rs9TiY5umQbGnf0rlhxx5mA9yf/dfDd4tfqT0IYSVjo7IUrJ0XRVZXYzDquWR7v5C53AE4Yo7OOJUyuqJvXabIuWUDS3Lj9nCd4ctiVCvEA5WfIwCyx2eH2pSvh6uJZ9S6Ov7XA6Wy+FA8f7ScHjeL/fO79tx/afeqkDUsrTCJ3rj/eFE+GUJ6Na1Q4mHkBDKpOuEHtp4SffZ4ZZhSEz0Nq+9jXo98zpojjDl1IntEJGfrqX0RJlyhASMW2m7rMi11SouHwBEtLlC5R9POOS6HjfT8ZMdFlNsH3122AG2sWnEwDspZMUo50BYD1p5iQIV3KGvCFhi86rc2uq1Mbb7opq8uo3ngwOqAOS/4qu2j6wQiVhK6IH7pjIQhzlDmPocYWgYxHy1PMjiS6XsfHWILlnejPrrtb6cNdX8jpMDvKsIijLvtYNoR1Le9YZt/Hg6CJZx5d7514yeKAHw8ocAGL7w1yIuyUg0XmdFhtK+heZMz48SzC/YrFy9c99SsaCIfAHw2zNB17seIdSvBmMgnHuAig97ll+2Ekx3OABvJmwQSFWbkRN1Vv+/29D7wx2Xnl4MGDllNm8eUd9SfWvdfWGl9tJ79OQbYrThIcZwCFyJAh8PDNa9ZKa8uqH+NDkZ/n5Fz8psvnXruP+lwhybhjZ+PxpU+89RYMhMPMohIHkxKTdMKQILD0nz6QLrxd7gA82XGR7H68IIBKkHinwSynG26YswDWVs1ty7c5fy55B397sWq+554vpbSgTVN2PrX7jcrX647BiIJNOvR3Zzo3Nhkk/7okdyqj9plT78d8oS/UVA1Mogj3rbgGvnT16vpMgHVXAHiKj4dJkS4tCWsyZ7i1bqvh7pq7lSP+vmXE6njWR2S+Neqz9MnhLBRo9qphGCEqRIgKvkgw0SLh7EczD/0EeurjnS0QR0PcuOEHLrzjzXoSwUxi8ck4IfHI9SPnfA7dZKL5d7zrZUEFJWBWUN/Og5XwsMFVAmvNubuKw9q9SJKccQC8/fHtxp4Vrr/sbGzY8GFXO3CYxkphQsHoQFAQgAWgPIUSpwO+t/7GyEJ39k05dvslIV+dZzK2BVT1jx90tNz0s907oXmgfxSA0WIRBxQCMLNGm6D+fQWAx3/liYBCAQ1yzBZYP28BrKle0FZocfy8r67uP6erreBkJp1IhBZ2itKup958veyNkycgqKl6W8ppBuDJnMvlsA9GDSgb+/ziq+Frq9bV5wrcFQCe6oOboQCcuIyBUCiHM1puCoGq9ZNYscKRe3tolOuQA7QPItqwErX6pGiWgm1fVQWCsgQRqkKU6hFyAhbY7wnryLgOHX2cWUAj6G8Y8yQ5d3HK0sTjLIA/Et1O9ebr0bWqUhCRBCoKIFAKS43pcJOrpHsB7/hJATE8PtMAmHT7fIWvNNT+fvvJEysPD/SylUMqWTpMa/KodcAepiYB5uXmwHfW3tAx15F9t9NALmn6OfEI6cGDYmTugtvqvH1/93/37Jh/rOMMjyloJCFRZLVqFATG2E64Cl2JgKc+/PUjjIIAbkGA66pr4LqaOW0lLs/Ph2obn12yZMlIsp+ZzHFhSgtaIoFdT+1+o3xv00nWshKfc7L672TO4fI4Rs8VssYlAHBzzTz4+nWb6nPBtM5qnZwj1pUUdLwGzIBp5kXAo/MgpaS+vl6sq6tT19x1V5YK6o1DoPG9ENbao345rCmlFtF8b0xTYESKWCKqnDWkRmFIi0KIaBACFXyqxMqUEmiM48HKyKwPs94KkpE78RfzxI6DLevjgo6IlDWr+FiANPYvUiAAY9SNvcZ5ngdFwE5rGpRoBrjdUw4rxPQ3C2T+azMKgCmlQr8sP7Dt2IH/vfXD93NOBkbAKIop1YCR4CSqhNUUzVYTXD2rVLpz7qLHVnqy/tVms10y8tW5D7lp+3bj4LyaW//P3p0/bRnsL4rJEjOJwJW/LsvQATjRyeNCk+eVCPj8d4a1eiQECm0umJ+br21esrQp32r+N39T2yUHXzzDoXC4oEUK7Xp6987yd043QxTTz2hCEE+FXR7geAnPktWYKawrr4DvrLu5voTn110hYU3u/o9mDFkER0BCHfAlsKKc3NldeK9ER666ujpA69S/f+aZLM3I3RjUZFVSYyUG0XDvkBbl+rUI9YOsBVXJGpLkrAhVIEAV8Gkx8CpRiKLaAb2n2SI30WxFB2D2C2u0jF+DrPuPplfj7p36Scaj6aSvC+cgnMRFgTl/of+ASwG4zpwNN9gKOhaIntdmGgDzPZJ0y8tHPvjpnw8dKDsZHAaTkBoAqxyAQeVAkzSwOyywqroqWMQZN//g+g1vJX1jp+nAh378Y2dLpvM1bzS0fCQYAB6NIjSU5Whs1cQYqhMwwK8A8PgAvCA7D25btjK8rKD00dZ9+/5l/fr1lzTyTZxd19BQQYsa2fX0np3l+zvaQEHNoIrkqbOt0aZpWH0qPgbnRWzXeU1JCTy84bb6fINhXcYkLWI/yxHwWDxh3BwKIPNjvKDteXC3++J4QV+EgUfq6urEui1b1OXPPpsNZvOmEYhxg2qU+jRJ5qg2y0mMXwxRjRuCmDIgh2wBNZYVoDIgKI+oMWhVw6yUEYxFQdYwdU1ZEx+mPCEARsb2+qjL4igIpwzAuk80MB4KOmVpwGsaVIMFbnOWatda8pUZBcB4H44dO2bd7R94aWdj/bqjQwNgFkS9OXKSG95wA+WBxjRwumywuroqkEfpDf9t7eb3kvzIaTvsu49vcTS68l4fDAeW+0aGQTCIOvMZWdHY5g1JcRgRj7NdAeALADBbwVKYnZUJdy67JrokI/85w+DIY+XlRWjocMm35qGhgtORkV2/2ftm+cGeTlA5nnWnYTWoJF3QLvlFXMIvTADwiuJieGTTbfWFgnFGAXBC6sLIQJ/Udu5XnzNN6l7QABLzgtabMSzXmzG8Nw8sGzMJCX5Sp57M945GyFAH9S/UKw/87d/mWMzmTUgfHlRDsWE5WmbkhS9GOcpFNUXxyVHHSXnYFSGaT1WUTD+VYViLwQinQlQAiKgKRMMxlrIetbs9B4wnykCOPzknvOf5uDaegMJTyKYC3GjOg/XOUphxALx161Zzd67n5TdPNaw/OtQPRvTvTUkHrIHIrCg5cNgtcG1FVXixO/1e/xNPv/L1J5+UkxkI03XMD5/4sfOYLeO1gcDIcq/PB4JR1DVkWAfGdAmC8BUATul2u20GWJJdBJuqFoTm5hS+CErsp0UezyUH4eahroJTociuZ/a+WX64rxsoZjhklb34010HPqvkPY+B2EwGe51Noz/veAS8orgEvnfjHfVFvGNdxidUAx57PxNniOlMgQLEJlKJpDR6Jzj4HBnZuWRVRj+iAIqARjcERElj3ZA+5648UR0T7sozmU6lIEJP+crq+utsJiXNXZqT00nQsWLqG4uQ8bBElCwKwiYQRU4BNRaIRef0RyNXdZPIPrfJ/sUhInPdWoj2QASGaFQLxCL2kBTLDEgxiFGNRan6D3b30sm/qbCg2VjB+RzrwIoGgihCTASwqhTWiBlwnat45gHwtm3bLHVW4eUPujvWHe3v1W0WU4iAqaqCgk2VeRHcJjNsrJyjfH7+0m3lDvcPTSYy7R1vpjKG7vrWt2wjyxe87g2FVvp8XtYTFfvWor0g+g2hdSZbfIyTALgSAY9/xwlPIQ0EWJpXDJuvWh6ZlZm9VYxGLzkIYwTcGhnZ9cy+3eWHujtBQX2grAKfajtKvcdIvNMi643G+ANY+0IpD/vz5bglALhkFnzrptvrS622dRmfgA4YI1yeUta5R+9hy0GYp+AhAlSAGSiWjeL9bT/Sd/YSNp0f7/GiPSIL8bD7m0qhxOBSl9vyTpVwlielVvHfy8uJbkX1CWwxGquSNLpmuHvgmYJp6thVt3WrAWpqsIasPPLID4sIIZWSoB6TLJYbe0Hmu5DgJQ9De3REtlAyK9tge2hQjmR1hIehRw5Dr6CClyhgUAFMCtbP45NvMomORB9kSdEJYQYRJLRCVgDmi26ocWTNPAB+Yts2y4ABXj482Lfu2ECPbqSffAaaNTuIEA00gwAZvAluqZgPD1xzfTDXYrxZJGTvJzDu9AU+pWTbhx8W/1vjsRcHgoFFIyMjjISFdWAs1iP1HgGYPf8rAJz0Y0IfLcwipBtNcG3lbOz3G5nlztjKy5c2EsYacJMcYgD8QfsZYKkXZsCSPEAy0wFF91HG+QEXmug+JYoi4MITMyl6H7FkZo+kb/m0HMiGvarCqpJy+Prm2+vLLNZLDsDsHFASiE0iROzaBGCkAgR5DSpFK2wy50lZBkc3tsDh4zcZx1ti+6TvOp4JLvTQ2YbpqikIZo3rNnPkuWKjszMfDK8QQqRpeWBJfEiE0kJNjc3/2T//eMeWLVum/TwYAXrrVo7cfbfKgBl9zUtLaWtrK6m/+27l+vr6rLTyom/7eOXzZ8Ijjh4lmHFU9kI9DUJUUsCkYPYg7juTzMPERTalzEmOlRNFHlRNBatCoMjogmyLY+YB8OOPP24MV5f95UBf14YjfT3MrCAVAMZJTuaA/bh5I9wwqwa+sW5jKFc03WwWySeiA44DsKEpGPzh/971ysPHT59Ol2JRPeIVeAa+ChJ0eLTlG39kX4mAJ74/uIJBW8tskxWWFpTA+rkLIuXpGVvFWOxnb+/a1XD33Xdf9KakCMBtWnTXM/v2lL93phUkzGzEW2QmMXeNHoI6Q3T7wjQ2M+3E+ZbXQZ3ZdH6SKdIULoyBn6LCNcWl8OBNt9VXWh2fCABjhyYR5SRGHjiFgknhAYmdK21ZcI+jvL2Ks/0MAMJEbzfNXNeYBuaij6iJby6eQoz5guo90AXgBSPQ3rb3P9xxwmBQHlq8WLkYXb8mPjN9D0opgmJ+e38/DFNKh6Neh1kbAAAgAElEQVTDoHA8Z1eF0NKSkovWyWvs+XWGw/l+s3B9UIuVy0AfrJe8WfuCXdCoBiDEXAnj55oEACdKS+jtgH+m8bndqALkGOzgMVpnHACTxo6O3Dfbmv/41pmWVQd6u1h6LSUAxlQcz0FMU8HFG2BV/iz4xoYbA6VWx40Okbwz2cEyzfuR4eFoSTeNvPDjd3Yueu9kPZNa4SoJLSiRPo8/qF2Ld0K+4NdfAeDxnwy2dtBw4GO3JRz4ogmuKauETfMXRkqzsp+z8PwPHYQMTfPz/djHMRlSLLjrP/ftKd/X2gQRNOJgZgGpfTPaWSbqyGy1rWJPUj0vjeOJOdTFa6tsEkghm5TamV7g6HMLl6N1YLTwU+C64hK4/8bN9VWOzLWZhExqUp4uFjSeClIwRKAgGfQI2KxwjNm60VkIX3ZUHakIhm/4x5sf8971rdmJufqi3KZkP3R2aSm7o/WtrQRTs/39/drF9j0/37miBW9jSUkBZzYTjVLqV4OKOzO3gOOEr0hABT9I2rAcwbEsOonYJvb6n1pQUNCV7HVP5ThsoXj3V7+a5cjL+aZX0B56P9af9UbgDLTIAVBQq39ez/SJvwHnbywBMK4HZqtQiqSprBVjmmgGu8E0swCY1lHDUKn01++eaf7ub9/ek33UN8AMKVLxgmbdKkQBoorCrMDmp+fCV9esC1dnZN575+rVrxw6dOiSE7EopSavovxdbVf3dx595w1PfXcXWzQz4hVOmigox4mT2auNP0NfAeDxXwTsk6sJAsiiyF4mo6pBsckK6+fMg9U1c/pzDeY7ixyOi74Qw3RbWzS097dv7SrZ2VjH2i0mbJUnfpUvvAfqGRHDDIIINoMRBOzvhz2CWeME5D7wE46hVL4/5WPHcm/idAe0CWRqAFWFlUVFcNeadY0ldsuaDGLtmcz3TRcA43dxKvoJaxAx6JIek6qXhTbZC+A+Z/WRskBoA3E4PtLjdTLn+FnYB30dPuw7U+APhdTsnIJ8q9n0lYimCn4ao2FQ5LAq50WAbpAUhQ8oMepXImDkRb7CnjEwC6yPV3CmRy9liry+vj4no7Lymye5yNdeGm7M+SDSByOIH5PxTD/PA8W5m2WjsNSEyai4FAlXwWZeBJNgmGEATKlpRJKfrR3qv/2xbX8WjwwPgSDyKXVDQk0tAjBLJWkUiqwOuPOqZcqGmnnb8iyWvzURcknM+Mc+H2zM3g/09T11J1Y+/tZO6AsF416mOtgiAI+WksazSouvzC7nfsAXeyLiZAVUXIUaDaDxepcdG6VQluaBJeUV0Rtq5j/vIMK/xIaGvPPKyvoIIRdlQRaiNLdPiv7pmbf3LN3RUMsNRMMMGFPK7sS92nHUeKx2KMvOhXy7C8xAtKgs9XM8ZEY0rUsDkLCSw1bhF/uGp/T5+tkh0QmXoAIB08Kc3LxFFZXvpFmEO3KIfWAyHz+dACzIAERVIWpC7SgHBhBY6eBGWz58xVF1tDoY3UDskzuvyZz75bQPtlctKakuIGZCKKUUBfbDEIWA30+6/H1KXkl5vuh0fyUGCsQUKVsA2BjQJN6nhGmQSjRAZb6Dxng5JjGryagmg4OIsDarHJbxmXsWdA3eRKaJnDXZ+9pwuCE3MD/3kX1S7/ff9LcL7RiV4/yRjME6NmNgUlJdD6bbV6O/P7CGKTx6AcykZgx061Y+cMsdNzX4vT/9tze3V+7rbGMr+VTaEaqM6CIAxS47mgbpggHWVs2Gr163LphvMt9svvRELDIcjZZ0EfXFP7/39sLnDx9g6UiBNcLQ63YfabF3BYAn++6cfz9cebKu78AcafSMgco6I+U6nHDP1StC5dl5r9d4Ms+4Oe4nhJD+1L7wAqeBXb6Mxi8+f/TD/+ft000ZZ4Yx603Yi5jKlmDgFrg9cG3NPFhaNEtzCYbansH+F9Ic1ps7hn3P+2MxL0/0yvAMKE2Oe7mJc9Q0TXGZLblV6RmfS7PafgUDQ38oKSmJTuZeTScAo5MRJ8kgGdHTVmCSRkzj32QvhK/aq45WBsOfOQCmTxwUW9bmZGcW5RbEBPhKTFNFPyial0rg1aKAdpEBTVKimpIjabBRIhoX1iRuWInxQSqDX4lBWJMhRjTw46oQF8kcYSYZTsrBBlcxrDfk71+gGO9xm80dl0IqNTAwYPfzctosd277kejw+nox+vIrw03mY+FhvaNRkq8plhBHqz5j+JDo8sasaGcSAOPLhX1Ta4PBl5/e/ca67U11zLUkFSIJSnpw7c8JIgDVwEE4WJSTCw9t3BwsT3NtchPxoqcfz4l+xX5N+ft6/9B3n379lfT97e36+SGRBiOUc3W/n3IAHiv91NU0uhewjkvjNyuItw8dd07G+i8oGAMqrL5ORJ7VR5E9jCbpS4sKYUXlbO2a0soBt8l8Z5YovjuZST6ZfX6zY0dBj4nfta/1VHnTYD9LSYkpAjDjCmgaFLnS4KYFS2Bd9bzBHKvtb9pbWl7JL85fGQn3v3XgoQMB3zrfjKxRXug+vvnmm9r/efxxt9VqXSVEozszMzMnbRoxXQDMNJyEA4OkMBY0a2+n6unxm51F8FVH9dGyzxAAb9myRZDXVOZUz11YODet8K9A0Qp9mrw+qMR4nxqjgxrqa2PgozGI8hpEgHL94QiP7Hz0ao5RFWRCmXczy/LhmhhbcmLgIfIQ43Wp1GIhDW6yFvfNEz2PVwiGS5KGDsZic6mBrHiMGJ76q2jw+lNi9C8vDZ0yvysNsUVyUgDMnLQAaOLNw4wXzuf4d/jeohXtDARgc4+q/uU3b+1a92LdYcZEw5pWwi1oNDpkbBLdZHvcjXl+EqAcz1iiPFWg2GKDzy+/NlSTnvOlZ370o1eevISGHD2RSLGPaH/a29yw6Pm390JXwK9T1OPto/XrG8OU+ZTXgFWqR4EWQQARG1jzPEQUCcKaApKmMvYyA0y06IzrLZGahrVPfJEF7JY1zj2ieG9xpYkDHm8ygnDCC1aj4DKZoNSdDmsqa6KLSku3ZovmnxTZ7RfFqGN/U1N+ixTe/fw7+8obfYOsLo3ReJKLazZmFJzACIV0gwFWl1bAnYuXn8kVLHcUZ7iO7tmyhVuzZYuSzGJhphxDt1Ke3I30p8lv0wXAOOdg+cIoI4+AsH7HTBesanCLowjudVUdrQBxPSHkU18DxnQzVBcvOW4If7nJKBUU8rZ1EJEN7WqQC8kxCKEfs6ZAABTWz1fGVAYGFay5W6Ktqu7BzBbWcf066yeNQYdBABklP7ICBYoB1mWUQ7WYtmf2O0dvLFmzZlKZj8mPkI/vORyNlnICzHEIplda5ejaJhJ++aWhRvNueVBfJE/1JWX+FTohXuL1RRv7HB65GRoYNAALEWYgAPf2WoNZWa8+f/jDa3/z4dusVy5bLTCE0i9E7yqls9MS4HWhm8+c/ii+POiJisGQAg4AWFM+W1k7b8m2EpP1BwtzctpSeXiTPJY0d3Xl07S0b9X2dz/40ofve452tjOgSWW7nElY+CpyGgGXwQxV+fngMZshJss9CqgZ3SM+oXNoAMIaBcqzmqA+DrDtNEvV6y8z+kxMRFS70P1lOkmNgpXjYE52LmyatzAyP7/oBTc1/qTIM/0g3BUOF7SFhnc98cq28sN9vRASkdCTGgBraGmJtUmqQoU9De65elVwVWnFby3RyP/weDz+VMbWZI9lLNKHHioAQTUYZC5alpeHacNPbJtOAMaZBwFY5QlILJwhLEq7xVEIX3BVHa0Gw2cCgKPRaFkbSI/uVHpv2KkOiF5F4sSwCgPYViSRiopnrdg8HX/646VdWMN6IKBiC1Z8xwWO/dmhcDDPnQdFgv39L6qZ94UGB4fnlpZe1MY5lFLu0KFD/JIlS+Q6OXB9E5Fe2eY9ZX4nAcBTHc0JACaE2V4iAJmwfMEDRKkCDiqAhzfPQADu6DCP5OQ8+2Zr421P7N0ptvi8H/Hp1Cnhk++iigxq7A3J1l0iDwrO4LIEVRnZcO3cBaEKa9pX0kPRA8rixd1rCK7XLs5GKRV7NeXvO/wj33nlww8ydtedgD4pyh5IsgCCZ3q5A7BZBSjLyIZbV6ykBU5nS0tX+68z0tyf6/X5lrx39CgcGR6ECGiMAMNebEVhxhoCJ7CGFSqdUnD0sYeLq1EcI2miCPNzC2HtnHmRhQWlL1hl5SfTbVmJTOgzscjeZ3e9UbKjoQ4GQQUD62Oa/IalCzSW11SVuTNtqlkAn7tqRXuW0XBbptV6JPlPnvyRx3rb5xis9m8oAu/kVOgfHOz9/9v7Eug4qjPd/9bWe6vVai2tfbVsebcxmNUGjIEsDJgA2TMZEpL3JiczZybJMMx753lewkxCMpnMm5w3eU4mZJIACXZCSAYwBmOMHQzYBtvYsmRJ1q7Wrt6rq2u57/y3qmQhbC0tOTFjykcYt6qqq+797/3+9ft/lJ5IyaGghyty5gFHCMepqlL2BwLmiwXAClP6OZZJf7kBcJbSK/r1zM7dmb6qp9I9ZIRqwGcNUNA5YUWNbCawuUoOS0JE7yQCMLZiFXlGQiRkDSiSPLDMlT/weU/jS2HJ1Z4dm/hRRSh00cuStt9zj/TBJ3687QQkHn1mosN5Ohs1GyrM85isruMI64SEvO8ONBoIZZ69EHFAiXjp1QEDJmKN3nHHB07GRr/9Hy+/0Hjw7FmWRGVHB01DmOCiNnmTZyEaYG5LdEGiRiIKYIgcKEoGfLwA1SVhbVvj6udvaFrV66T0Z2Vu96GLFfBH1/OQlvnV4bNn1/320O+hfWIc0tgog3lY5z/Btjy81wHYCxxcUVkDf7bl1mRDfmj7nscf//Gm+z5yy2g09j9OtLatfOL0MeiOjUPG0Fk9NyvPUjWQeB4kUWQdTt6RtDbfhYKlAZiXqBsQdLhgdWkFfGD1erkxWLLToSqPvHXgwKIRdWAm9ISu73r6zcNXPXZoP9eLZRd0tkrvmV9IYMkrwIg9sMB/WaAA7tt4XerKyurHXKnUd3/4wx+2bd++/aIkPz/55JP8kquuWprm4as9E2P3RLWsS+SlmKoqz4S8nnTQ6+FL84rBLeHCo6Mj4+M/ElVVCXq92bYTJwZralYUVlWFBhebDGLRATirg8YDs4DRZrscATgSiRQmg94vvaqPfW1X/Kyz3ZAZ8GKdfc4H28eRJQmr9DEgzIOKnMxIgGEQaHT46Ue9dXSlt2ik0BC/V8hx3yZkfuGI+T5bLJNpaBW0776Yjdz+UrKXH1BTs3IxnO87bABG7x0StyAAi7h1AXI86FAheKHalX/pWcDMqhsYcLcVBp/e+fv9W3555HWQLSvB7OBoAbDF/mPHBi800OjgY/E/7LGL1I4OEVPiQVOy4HW54c6GFfrm5av1+qLw7qDAPZwnSYcXC4TRrdHa21uSUVVvxuP60+bhgQdeaT5VcKKvF2I6MnQREBnxd+7Hex2APaIEGytr4HM3bRmqc/puCTocb7e1tTk85eV3x1Lyg7taT6x8rbUZusdGIIX10SytXweRIyAw0pIZmTpnHViRcMwrgrVHaAkXiA7YUFYJt65aL9cUFj+RT7ivVuTljc96ozmcMHBkwK2vCH7yzUjfN3+497n8kxMjIKIPfQF7GEexxRoBnY0LQD4Q2FTbAPdec0NiSWHxfxTw3EOEkMQcHm/ep/T2xoIjPuORlv7uj+9586hrUE6B0+mCfKdDC7gcNOj1QkleCfhcLk7i+IRuGM+UB4OqzyEODfb0PV1dXv5BgOwv0gklHeT5bFlZWaR7dLSoKrQwUL5YAKywtXp5AjAKR4ccv65NyO5+YqLVczg7AQoH4JjCJTOdU2VWgUKiCszNVzS2P2OePoIVeqXQq+3jeFjD++DmgnpYRQOvFQvOewoI6Zv1vrmfwJ1WkvedBfnRZ+Jdjre0cYgbag72r5l8xYxFDvMIsJ4c848AMpiJpBvQ5AzCUm/RpQvAo+Hws6+0vL3pe/tegME0aiFmfSwjHmDZZGYyDeufO8OAswgba4xsMFYtUZJApwYoSpa5MRt9ebCupg5uWrVWqw0Gn+UM9eEKd94buc/huSvR7TwE8NWe0eHlx7s7thzp6iw61tsNE2qWkbhj/JFHF+gCvuy9DsAupxM2VtTA5zbfPNTg924JEsdJHI59+/Y5V1xz/ba3okMPHj3TsvJA80nojkUhyzwfLK3O8oosRH0B1tEGndi48LELCibYFIlOuK5xOWxYsmyoRBLvkyMjZ7du2IAdWxYAleYkj6RSpR2KvOvH+3Zf9VpfJydjhvYC7so8Ajga2F0JlRJNg0q3D+688mq4YdnKnhKJu7NIWlxXNPKYv37iRJmen1/brym/PNTSXPLK6ZMQ1TTgBR5EaoCDA3A7JMhz5INDEMDNCxDyerVwXh7xSdJEKiMfqioIbfT73C8WBoKKV3IMRsZHfltdWPLBtKL+Qksk0rwmak214f75Wj2LDsAYA+YIK5u5XC1gJrvZ7PoOXt3561hb9cvpCBnndGAEy9Yx75p2XMuYFKnqJuc/KpEspGIaWZg9LBGAa8ViuEEKj1Q4/P93tKvn8UriiC1mTPjIwICbi0YLuYbyigGiPnQiPXLrwUSE6yEZFuLKZX+2dwrcnVB2cGzwPtinWNIpXOkqgbX+0ksUgCl1Jij9advw4Ee+/uIz5OTQIEgcdgnSGEUjS0qzQHg296OBdXzMxYvgrYMgojsbg/24mDhwiRyEfT64qroWNtbUaeXBgmfzHdLD/+7OO7J9AbwFzV3N4XxffvAskJ+c6e9f//KJY6Q9OgbDcorRIqL7FGMfzKa/jF3QTkmAqypq4PM33j68JC+wJUjI2/aCRktYKw/f3Tsy9OChjvaVB1pboC+RYAsUp0bXVeBYt59cloj5LRhCRhDjeNwMCHMPOYCDsD8AS0or0jfV1+xeV9XQH+RhR9DhY8rBQo7e3l7XgNP5id0nj/7Dwc7Wwq7x6GQILZf7snwILGfAd0H2K0MDLy/AypIKuLZpZWpLReVjgg7/VFdYiK3nFuUYV5QVMap+/nhPZ9kzzS23dwwPugeSMVAoZeQC6KGgWGaCIRZOMDcfg4KTcODiechzucDr9ugiEL6yIKAV5QeJx+GekPXsaxX5BVfxHP9iTWGJIuh0SIlNfHNtTU10Pg9+UQCYJ2DGgC/PJCwc/7a2tsJodcmf71eH/+b5aJezHxQgVjkRs/bmM0mWm9FsmYghwnPeTbSUEIzRcswKAJXUBWu5fKh1BCKlTv/eJeDu8IzHd1QWFg7M8yvPe3pCUZaNC+TLzUa05rQWu/mN5JDQoaZZNjfJMUl2UlVHHnHOJN3AV81gErAKsMVfDTfkX4L9gNmm+OSTfHrbttsGE4mH/vGVFzYc6uoQcZPUdI2lrJtZd2YG9GwJTDRLmVaOu4CG2gxqXGhPY9wfeMg6AFyEQJnDActChXB14zKtrqTs2Wwm849qIjNYGwxyI729vZgdN5fJbu4aCXdnBvxVBSWfiCXjdc93t2853d9X1Dk8DHEwIIMxaWwOgBy+mg4ahzVm8xXdc0/y3raAKbg4Ahsr6+ALWz40vDQvb4t3CgCzRf/ssw7t2o13tyWif7P3xNvLD3e08eMZGTSOgoG8qijYUw62jC1t81w98YVnLqsTRtAiYRs/jDEz/KCArmm/w01vW1JDr2tak2ksKN6lp1kbw1NzkYOZztn/9tsVvYKxd8+Jow1YB44WOG44WJw/KQlzFAnKi0yOiKYBFbDht7kR+nkHNBaXwmfWrEkWFxQ+Jsva93lFiW5saMjJhYdWb0dHR7mzoCRoOMlfdowN3fPq6ROu37a2kZSaJRiHZkqxYXZoQjeiwXpaI5WfmbGOe7WOfVEFAXhOYIqPn+fA45Ag4PGC3+vRBVXnC9webWVlDVcZLGzxJ5NbrmhqmhMFpT3mFweAOchiAudlmgVtj+0RNX7dGaLs/s3EGU9LNjZZz8t+b8ks7s921cpM64Dt46zpjEmXyiodpmRU404tCMjEDRAweAhzTljpLjQ2eIpGvBr9fwdbmn96a2GZIaq84NadyerqwjnJyalTpySfz1ehOBzwk5NHtNuuvvIa3iH+6Kg85HxdHuLOaGnIWBllBp3Ttv/u17S8Woz5ioUaTazK6hqU6ALc7qtJbwksGbjk6oAnF9H27ULDl//qtsdOH//OwbbTja2jA6wnp2AQ5rLIIvG8yIM0W0a0jhx8nEUDZvErM+8l6l6E8QTjji1SnW0G9YXFsLKqVvO7/buXVFYN1nu8kEnHf9Lf1d9XWVYmYMwjm81aouZgQRCZUjo+OGj0RWWhqqnuU12jw3UT0YmbJxLRwgNd7SSSiBOWXICUZsyDanZ4wj7H+gLAlykrVrMKTGbALkpoHQqUgKQCrG1YCl/feut4ldN9O5GknNzqlNLQIMDzP9z3/LpfnzgKcfQioMWFayeH8rjpYImuyWsqauCBm28dXhIoeBcA4/mPPvqoc91Ht93bMzjynVdOnig81N4Kg0YWNIkHUcUd31zwKOxmrSaOLapZmPY/s38Xy9PwfAHHkbnAcE8wqeOwfK3c5YINDY2wddVauS4Y3Ckl44+EC8ILAmHsjDTKw/6X3nqj5tGjh1lsGzch1lqQySY1i/cFzF+YBe6xDIkFwk2LExc7K9EzAHySA66rqIDGiupETWnlc1XuvL6Q4Hw0ERuJNpSXY0bpjIODoNvV1VWlEELyQyF/FoTPDity+dnhyO1vdLa6j3W2QW9GYeOOmwv7w4DWpNtjN+dNq9H+t4Fja7MDsax2CryhgUPkQXRKoKoaBICHa2uXwJ9svK6tiuM3z9fSWUwAxnI3CftzszIk86UuxzIkWwoHaHZ9O83ufDrRVr0v0U8UBBbLh8M4k1HxshqAMNKJmfY31q0LFyuuO4v/2xZJTPBCXgBBBMXQ2D3RdVvKu2C1vxj8IEY0gN23OIsNL3E6RID2gf6+n9MMpS4nfqkDHGx7xh0bQGF/AKJjo1q4oqa60O35dBx07kV9LDuRiVcohrK1IxPl+40MJK33QWXAWAB5K+4rqIhmeQAnCGYWNGD8NwA3CCXHrvdX/cslC8A4aANHjrhbS8ufefHUsc1PHzsECR7dWCIIqgFZ3QBF4AAJahYSBeQo0hMSUDE4Tiz3o9ePQKxXF4VpY6jA0Km+x+PyRArzgoJPchIkjMCpwRhulhqQVrJ0cHTU6BkaEnQObhuIRwvPDA5ww8kERLMZc4NaqNl0gevf2wAM4BREuLasCh64cctwjS+wBZOwzveqlNKCiKbuOt7bvfl3R16Ho0N9MAYacCqCjZmex+p68b+YcEfRv8GBMVs/xxnmxaxT5qHU74PrliyB25avkusCwZ0kJX/7lRdfPJ1rG8NUKhWWJfHXzT2dG7/+4nPQm4ixhDzct7B7HFrkaM3is2M2aC4Hs0IIAZ8kQmV+CNZV1BiNoZJkQ7j0+aDH05tKpX6cTibloChqtTt29HU+8ECFJIoOwnFy6b/+a//JT36yrLyusiCpa5/LqIZ7PB73jk3Ebm8fH3Mf6TrLtY0Nw2gmubDwCU6VhlazCjwSXUhYVkagwumFO1asgbs2XH2g1um8mxAyJw7oi2EBo4YrTgLw5VsHPAnAAwOhkULflw6okb95Ntbl7DLMln2mAoZLTzcB2FZocxFe+xrmQeGY1xNDQyjTSMzj4UQI8A6oED3aGiGPejmHIBIyaHDc8z7eabg4gQjAAf64AAmYkAxdhzRokDQUVVGVijwibonpKjmsTdD+bILrVOJ8itMZERCWHaESiblCC9q4EcANJCUhjEMcvZ5uwsENBRWwkRTsXjWQvuuSBmDa2elsLyz5ycG25m0/f/UlsVNOgiBIjL4M6x4xpXuK5yOnqSYUE+mxlyp2zDTbRmGsyiMIrLtModcLeV6vXuALGEGvn/icbsbbjO4zXUeXsg6pTAYmEnE6nkyQwWhUGJOTkNLRSrcsk5yebG4XvbcBmGL3E7iuHAH4lhkBGOPBgZqabeNK5m9PRfpXPvfWYTjW2wkJnTIlmoUkcLESU+iZl2EqD+vchvNdZ3Eob4YBpW43bFraBLesWCNXF4SeKATuq4SQnLKjjxw54q5bs+bekVTsK//26oFlr7e1cqNZGTTW+QuJ2tFdRUFVMcZtUiDmeqB8eHkRQpILavMLYHVdvRHOCyQlSXgmFAgqBUQYa+/s/OWKhsZPOJ1SYSqTGTja1vxkY23DxxRDrRpKJrbG02nXwOgYPdPXK/ROjMFgKglpipnjmEexgGfDecM9jhpmH2zWt5mDNSVl+iev29y8qij8iDY4uGuuHNAXG4Av5zrgqfJ3TB6/blDUd78Y6/bslodMI5dRBlsWLfN8YBIVMfs5LuSwvA6mqJhrGnVqxAA34SHIieDkBPDyEgQlt+bjHdQJPBExwGiYHlNkQERZlYkOSUOlCU3m0qrCY1b7sKZAnGYhgfs/b7mKLU5+vG5BJaKWhY+WPKtSAIAa3gVb86uzG8WiJzaA+/OXNgA/+SQ/9ME7bm8ZHfzeb98+WvdSWwskMNEDuZNRy8KY8BTWldzmGctAsECa7QSmj4mxbWFCicnNLPI8eBxO8EpOZrFh3JFlX1O0gAkoahbSqsL4TrHtIbodGL8zMr1Y97Itktye8cJX/dcA4OpZLWAcAcyMXn395rsmDPXB19pbVu178zC8MRhhdKUIvpwgmNSklssKQYzmaEGamh1hnbQ0NQuiZkB1Xj5sXbUObmxaMVzAiduq/P6ceaMRhIuXLfnEgcGBb+1+/dX8oz1dkEKXs4iUnAJwqGAqFgDnGKYwNy0zCVGkwBi/Cr0+KHR7oCxUqBUH8omfF+LD0dgrNYXFN3pcLl9CkSc6hgYP5Pu9m2Ut6zszNMxFUymYkJMwmkLFklVNM68R25yY9rOAg1kZZh4E1SlUBYJwXW3D4O1r1j9Iz7Q/ecHp5rwAACAASURBVM0118jzvftiuqCZBay+Xwc8dQ4Gsqn1SUHYdSQzVP39WAukjSyrkcapxKoCVtkumAQxFLn4F3CgXwvDSXjgUsYfs1WlaZ0iuyGCrZPwjNoRLV5stCJRDEABq5HH/AMEb2RZkg0VUrrKspFR6RMIx/ZtBu6o/FKLbRFlnOVN5a5gsvocg4KL8qBgpJMAXO8tgZudpSdXQ/5X6h/+5guXNADjoNNO6uwIxn/yRqT33l8cOkhOjgyyxCWREXnTBQMwJehwMNUss6TDcmfahoed0MPihDipZuDTJn+h6OIwdEbmgPFXFn+zOECxi8ZCSkzmIrf/ZQD4pluGa7x5F3RB22PBLOH6+rsj8dhX3mg5VfDkiaMl/bGYhB2lMI6KCT4E3VX4w+FCzX0BsUWPrmCMabJ+0gI0BENw07KVmXWVVTtLXN5vNSwgKat5pCuckvJ2HXj7rY1Pv/57rleRgXhcJr0qNo/QMRac+/MzALYD9WYSJmDdsEQB/A4H+JwucIsSiLygQ1bjGasWiqzI63ElzaMymUqbreJwo8NoL8bHUa4ltDCw/thaM3OR1fOdQ4iZG4G3cVICNy5dDnesXX+mUoPNTdXVc0qqmX7f9wE419mY23UDAwMhqbj4cx2Q/G/fT7RUdqfGYZRmGdgh8KHlifX6SJwDxgIBmLXsNHMabAA2n9KsHkHwtA9GbYnc8oxf3lQSM6KZR4F88+gVY+5sVjtvsN9jHT7b6tFmYpzxlkKJ686KS89tVN59FlrQ6I3zGjzbR/y8AHcVLYXrSWj3unb3naSBKJc+AFPKDabTt3UmEw/957GjV+5tOSlGMilm6aCmsxADB4cMk6BQk8dJRq1qsh0ggiemj1saEINlO7NtSm4BxhqZ3Yzga2lneC+biBvvv0AbYcb5/68BwLO7oKcOwqu9va7yoqJbOwb6qvb1nn3wVG93SWtkANBU4gXBjKEaGrCKmAUKCGbOm03tzWQnp06hsSAEt6xZJ69uaNwV1ihSVuaUlPXkq6+61q5e/Ymh2MQjvzq0P//g2TZIigJr3muoGjg4wYxD5XpgohyW22G1gGg1oWA2sVkWhBYCMvWghYHfxw4sAZEEULBjDVBw6eYawwRI/BuvwUxnZulQzJ1YGHsrh9UJzK3IQ5XXBx+95nrY3LD0FbeqfyScY5/dRQdgq1oBs6Av5zrgd1jBR1pDY6tL//wlY/Rvj0Z7HS1aHOLEAAEtTw1732L/ZLNRyEIOVEBR3lieB0tONEuU0AvKqLknPTKYgGj2T7MP1n8XZRaVRvQETXGR46pi4SqLDpOVylmuZ3OBnDO0cn1+VD1UQwevwYGPF2GFJwgfDNQZqyDv5xXAfw57j1/yAIwvj22w7vvyl29rHhn83nPNJ+p+f/YMZLATDiNStkYux1FCdzFq8rYWxGxYs5KFTbRJFHguq3OSjctSwgSrV6QtZnazCGZtWEXYOT7anC67HAHYGhjuzba2giGX8GRLpH/zi28fh7PRCZYYZzmsmFpLJ3uBzWk433US1p4jgIkCUg5Q0FWVMfSsKKuEa1eukm8sL9vlF4RvhX25gTAmZMUl8VeHOtuv/tVrB+Hk8CCk0J3HkqDRMlwAALM6Z7MMCN8BFU2mJFrxNNtFjZmrVg6z+TvMZLUsDBfz+JglIgQ9QJbbmVkKLBN+Yc+Hc4WZ6EGXBzY1NOp3X3HlqVqv/5H0wOCv5hv7tSfvYgAwZkFf7nXA0xdHdzx+3YiHe/5gZsC9O94FvURhMX1ONUMfBpb25e7AMb8OZdeiEmYyadXUslgwyreV8MUy6wllCVe2mxrP57FqZrIsyjacLXBF+bU2eybXmAhpZpJZlRVIcJP7C+BaUg0KAqWwwpkPt/grjXVS8EA1cT4c/PuH95Lt2433BAAzrKPU2S7LP3mh5eS23x07LHZHY5BR0TqxWZHM8g170ua63WLWHtqouLkwGLbAmBVPsHkyNy2zRs1CXYtYgBkMlotwqoVsAzgDddQCp9d7mLXnC4gunHu79zYAA7gEEa7BJKzNM2dBn28+n332WUfZhnXbhjPpBw/3da/ae/JtGIjFQGNF/agtn4sfTV5vT4Y1/rP1+WQuVtSgOR54jGuxsi/soCRBTagQ/vSKdXJ9edUuXVG+tTyH8iQk5nAVF9/bl0p9bf+Z5qbfvv576E0lAJySWR+OAGrKv9UFzE48fpdUnVfkUctnOiqW41nZqizeiu41Fi83S0es8mkrB8K8Fco2doM0z7FKs3A92LLLyupmsXDM2hR2PdvKJuPZ5saGKZAc5WBleSVsu+rq0SvDpV/peu3wL29cQAu6SQAebyuOqEmmYOd0sO5rdhnS+3XA08cwFUttyLqcj74hRIO7k93hw/IIjBsq06hYmwW2l9omS04zYBpGVmoOs3BNIjzTKkbljdW9W55Ki8yDtT9kcV80gjD2Yiq0drmMrWwy3yTzkKPFjl5Mi5MB1xxbd7MDsB2KtO5iNZW13hXLkIBCgSDB9Z6y7E2u0kP1VHr4pw9/Z6/Nz/6eAWAkft9yzz23tw9Gvre/pbnuhbbT0JGKs/grFjlTqgNFWj9c0KzBvblRzOoAmey/a2pFk0H3KYvWnH/7ZlOJHqZuKNbvressbiLmisYHYRSaGBNBsgdbc7NiG3bKvk0qYm92Nu3mTKL7hwDgCNA9P9q3Z+3i1wEDuEQRrsEypBwAGMeF1Qh/6Pa7YkAffOHNw8tf7+zgexNxkFETlzCD2SyLYAuFkWaZ9KWcjqVKhNV3ziQjUz0abP5YQ21MrkCaPALXllfB5nVXZBpDJTt9GeVbDeH51wj/7ne/cy+78cZ7hlLxr+4+/Oqy/a0t3BiP8SsehKxqUa5S0HXdLJu0SOxN+ZhZwicB2Iptscxwq5GJLTumiFq7nCVsbJNiQG0Bv9VE3NJwTRxlJCgzfz/hJRY/N3R8DwvUCQ+UgTcBn0ig3JMHH1i1HjY1Nr2SDyRn17O9Ti4OAL9fBzx9H6JJWpzl9JtaRLm23Yh/8ZV0pPx1dRxGjCw4DA7cFJUWjIRah+U1QaPE9sRMGk0X2OSmivfUa2yVirm5LZCeqmZZ266J0udJxTE/RuvY/GKmJth7vsXMxVTc2fqxW1czJZVpumZIEzkE0JPkBgJb8qtgrRBqreRcX94tBl6cyrD4ngFgNkiUOmNy5icto2P3PnXyKDnQ2wGRRJx11EDANTRMvjE5n02LdvYBzE0vm8dVKHS6lWXH88CJZl0a1XUGzlO5re2SEzsOzcppZhOAPwARx8UE4LnWAc804vsefdS59BMfvffkQN8/vdp9NrS3+SREUjJoRAAHMVjJGi4GJhgMM+gkObo2XxeT5WWx4corOGFjXT1saVyeWVlSstOlGTnFhBGE12zZ9PH2kZFvv3S6OfD77rMQUTOgZhTG0IVKJbrDMafF3nCYUjFvAt55yO6CT0UKPpEpDsw5yFmEHVZ/bqy5XFEcgqtrl8Dmhqa3G3wF3xzu6fxVQ0MDcibkfCwmAL/fD/jC04BELQg4kdaBgvEK9/1vkeSXXtNGyg+nhiCma2aODnqQTNeL6da1Ac8ijMl5ki+VCy3CHoZPaGmjks4Qn4ITCKyR8uADefXGMuL/+TLeyeK+Ux/9vQbAXDyt3BoD+ndv9vdcc7Ctmew70wwxRQFeEiddxQjEONkssI4DkqsLahEmmVnOFnOUXS9nui1M7QstFLukYxJsLYt5LqVL720LeO51wLNNBbZLU/IDT5yOjtX/5+FD4eO9vdJQIslaUKKNixsBZkCaqcCmdTdZcjbbzd+l+pu7CM4bJoMUik5YV1oBt65Zl1lSWr5T0vRvVfl8807MwkYNssT/onVsrOqFY0cqTvR0kfZYlLnSkMOcudZY+R1y1Fr0lbO5gOf7bot4Po6woHEsgYtIIiMWQWWI0zQQdICQ1wN3rV4H6+qWvF0XLPpm+6uv/nohrueLYQFPBeD364AvLBy/O3Ik5F9bf3+/Jn/ptWR/+RvZURghGrhUM3GKhXqsJvVm2oCpDM8awlhEeVz0W1mJiMxThJiLe7mVNIbYs8Tphw97K4064jtQRlzfqBQce6c3dLk4AKxq4BKdUFlcKgepfudjn7x/z2K9PHNFb9u2NRKP/13H6HDZ46//vqh9eNCdNlTI4saKrUfR5YhZnZpZ4D+bFblYz3a++0wCJMvYQ35cM9aAGzeLjbGN/J31ZpOZ2FbMbqbnOz8Ac+DQKKypXxwqyotnAdsAPLc64JnGAWOp3vLw1j5ZrmqJ9P/tK82nSo6eaYFRzFxFGWAcxZrZXgM3BIFn1X/Io7yQA13YgqpDEe+AjfVLYcu69Zml4ZKdDjn7rfA8QXiQDnocUHzroCyXNvd1fvF0d/fy/2w7DWMJRhNgJoRg9ifKBbY3Q0IYO+9hIS9xsa7F0j2Ngi7wQB0S6zhlKBlwaQaUeb2wvKJKv2fthlPF+cFH+g6/+avFAF98lUW3gN/vBzwnCdnX2hryVYfvP0PREh4uPy6PwoSSYV3GVJahjMykHCsTwvAPyrF2cdv7zum5cz2JxaKBZ9nXrEqA6iAZBAoMHsocPljnKzZucZQccOrwjccf/s5L5+vLPSMATwWCCz4kS67AWknTxYe1mJgp6hJdUFkcXnQAZpYHpXwkldoympWrXz7b8Ven+7qXHD/bBqNI+4isoILACsBpVrfaFuY6xItznTlRGJM2WGsqFmtm/VutFlxWDM7eTKduqrMpDxe0gDVgAPyNReGCps/veOn5dU+9jVzQxiQX9AIrfJhFZzJhVcMDc6wDnmFGGC5FEomClCg8eby3a/P+t47C3r6zkGFdz9gKQXJWFp5gjbIRzxCUZ88UuODXakieoSJPLUDY5YWNjY2wdfWaTH2gYKcoZx6ZJ2Ul2b59O1n/oQ85K6sr7xlLJb721JnTTSfbz0BkYpz1X8USIcLxJtsXKyXKMcFocUR71rswLw8ylOF46zpIigrlTjdsWbcOOdfH1oXCf912eGFJV9Mf4uICMHdZc0HPNuFHjrSG1NXh+3v4zJdOpYbLX0kMIPsUpDlko6JmRQHWCiMAIxe+mQX13j0oengoqyvG0rxiQ4BVYhDWekuMKof/wGrq/cb3RfGlC3XWeycAs8JpM2ORR5eXRaw+4xqfDsACD3r24gKwNVukt7fX2e/37hgYG/3Y3qOv8cex1y7ooAkCo4nEzitoNPwxtyjmecGNksUfOUaLhvFIpBtkyWOMV9pykVrsWqaSYZWi5RwDprC2YRl8fevW8Spf4DZCyOFcpNxsxmAD8JusGQOPGbW4sc6egzPjV5oALMC15dXwhVmoKOf67Iyoo7Ly7rGs/NcnOzuD//76K6WRZFxKU52VKJlNGrA7FrqNUN4XBsBoAWPZAnI2Y8wn7PbA1Q0NsGXFWrmyIPQLLas9WO/zDc/1+e3zXn31VVd41ap7D8dGv9bSdqbpUPMJ6E/EIYuZ2KjkIjkIljjM98Z/4PPNmBhmOwM4NB3K3F7YUFNv3Hrlxt7KQEFHQM58zJfD+Mz0GosOwMiExWESlplXi7Xgd/gr4WOBpceWgXQLIWT0Dzysl/TXoTu6Yv3S+0d15Uv7lOHyvnQUujMxGDMU0ATMjsbcZNMDuICOr3/0MTCTac1SK7b2RRcscwZhvRgyGsS8A3kgPvxT0bl3pra27wJgBAtGwzgJwBfmezWrcszEikkLGDldsyq4L6IFbI88uqOv//Cdn0hq6l82R3pXvdZ5hj/acxYGEgnIYParlTH6RwVgK+uWeQcQgFGpUXUIOFwQzi+AoXQckkqGJY+xOOWUus/JDjMXEDUmAGgVsfec3g3JBOBv3HpbvNLr30oIeT0XiUUAvpALGjMQza5B5+5s/6895jOV+dgWMGYSLxYA45Ow0p6ioq1dY8NVL7S2PtQc6S0+EemGGPYPRpp2rA003RCATExTj6llBdM/n/pvuwiIhRQszR4XInbKKXG5YdPy1bCxsakvjxM3bSguPpvL2CMIe9auvXd4ZOhrx7vam97q64L20RGIZbPYhsLKJLh0LQi2vQo8iAaFAlGExsJiWFNeBctKy48vKS3bkedwDwQAnieEzJtu8g8KwFkddMGqAyYIwAZ82Pc+AM80B62trSGhvvrz7Zz66bPyuP9MaqT0TDYK/WoKMoROhgbRCn6vHqzmhgLr0LTMGYAa3p1d6i3qrzIc3fma8A8/dM4Mvvje5MYffp8m0ilIZNLMGjNr9pBRCCv0zNZiMwEYGz/chJgL2iyzQRe0W3JBRdHFcUHbE0YplTLjmU9nnZJjhGTvaouP1R04daLs7Z4usXtsFJJq1uQHtq3I85VOTgOPGQ3O8+3OUz47l9J+jj8fQdcmNmBuZ02HIO+AZWXVUF5S2v/7s835w7EJt9ncwez4MXlYLC0zCShaoTYAY0kWulVF1jScwIraBvr1rVvP1Lp89xFJOp6LoE8C8Mt71j514k2IY/cT2wK2avJmlA8mZef/ZnxVpySxMqTPb755uHaGbkg5PDt5s60tFBWdO9vHIpueees1aBkbAo3jWaU+lgmwGu1ZtLPZ3o15L1iJE2GbCmgaA+GaYBHUh8siJQL3sTpPQde2a67pmZ6AMZd3QhDOX7LkvjEj+xcnBvuCb3Z0VLQPDpLheIKxVXGi6UGZPsyTSpH1Arlsc+dVRqZkgbNbTyvXM9/JDEvhIfICFDpdsKyo2LhySWPvipKyMb8kfPfE8/t+3dzcrGzfvv2d9U9zGZRZztkXH1h62qXv2zXeXhJRE6wOeLpiOGWRTbvbZF2KWbKGnirNJOpnfMdATAv4fQCedaYSlBZFdP3mXpqq66fyx09mRwP9cizcI8cgDhqLC6M1PFV4cV0y+ZkyYdNldzZZtrd5qwLpvM9p34OtXXuLOo/Am5XM05LF2AcUXISDcskLlaIvdYW3bLiWOjpCxPGLfI10F33zmy8h0cZsg0Q27/hXmpZlSCqyWZhvNRowa2LRu2Yu7/NuROzJzd/YjZQZJaNugEdyQWlBkezXjDt/+aeLl4Q19YXoKSopYWWLruvHEgH30lGaqY0MD32yd2T4hjc628lbXe0QxVgwAh9j8zFfxHYLs0m2PjTrwExrnikUFriYqXrmpmKvYrv1FrsnAtJk7Zc5DkgfiBmyuCmD1XgcqAZOUYCgKMHG0jpYVV3flRaEH/zi8MFPReXU8rScZkDNNi6riJw1FrAm+0JCZyZwmRsemynGhwrgFRxQVViS/ty6dV+/rbRqB8nLy6lzzyQA739h7W+OH4U4cixjU3WLTYmVvk2VjmlKzuQ6soHAFibrb5fTAddU1cL91980XOv2zcoFPZtAT/09EnVUrtuwLUOMB1/raFn13Ik3oTMdB4UQEDjeah7PGhi+S8Ynn3sqYcqkWW/DjP03xrZMJh3mdtENRjDi4sXU1XXVe26/6pr+JYHiR9N9fWPLamrmDcTHBwc9Hr9/a2dsrCyWiH+hY2hwxZudHXBmoA/iVm3yuedF2j2klzQ3MbNZifmHzZNFMG+Dtt0/2dyEzsk+3o91g7Hrjq0lgO9nryM2hSwJwWQQYr1TkbSEAkgcBz6nE5YUFEBTuAIaisPHQ4HAjip/oF8Yj+2pqKhYVKvXnvftmzcLH35u1w2v8clf/nqiIxRRU8BPcvqej1p/+s42daVZ4QorbISvimVrTs2Aba4q+Fhw2bF6EN53Qc+wKHH5nEwmi0Y93I1dWrSWGPoXe5VoxZn0OPQoCRjnLdnBenyLEpjTAXirbp3hyVTt0toPp+afTGZSs1wbizzJUgQZE5aV6GqrqWY9sdlFjTEhgskfbe79SE9p7v/4H5ZkhQxbHH5OGY+6DwTwGRw0OPxwc6ACRI2c9PKef1lCXV2lBw++/Pf79xvnS7g63zCRq3f8H5pRFEgrGfbFmDHKLDFMELIW74UanuADY2s+Bhh4Entwk+jA63BCUX5IDmS1O3fd/4VFy4Ke/hL79u0TbrzxRg1r0nbs2CF89IEHtgwmEg8dj3SXHT17pvx4b784kkxC1jAgY6hmEhRnWvfMCprycuwzO2Y8GTvGbknnmIBMWbCsJyCgYQtD5CZlxddmfBfZk9gEcoSVWzg5HvJEEWrKwtBUVgEbSqp7yjz+773y6sHHHx8deDKlazdMxMZNAbSShRDEcS5Y16WZOs5YNDEI/HgtUw4MCgGXF0J5gXFHPLX1N//9L47OB7jeoeRQGhoAeP5Hr+xZ99Sbh1kSlqFT1sAeWcRYHHUKAE+pZZ/8lG3UUwDYIkdil3kdAlxXvQQ+e/1NQ/Wu4C1BBzlvP+Bcnx9rhFfcd99d7fHYgy+3nlr18tnT0JNEAhezFhjjwliLPesxbZ9+F5PZFMXDBHTTc7S2KGxsWrVGvrau8YVKt7df0PUdLz799Kn59hJG+T569KiraOnSeyNy6i+O9XYE2wf6Kl7v7iWJbAYyVntOpvixBiOmls7WJZNrJAiYklxgZeBjhioDWUuNYuEkxpFujovtXWHkAna/V1Z/jJ4dJAcxlQ8G8zr20wYIOt1QESqE4kA+vaKqvGdZccVYicv/3d5nT/z66nuuzuTiCZh1fqwT0ul0+aCD/86zat+dO8fOOEbRWT+FMGQqBM826ybLLceI9DGpEzubZUUEYAof8dTBfYHGt+qAYHjn/RjwLBOEQ3m0tbVArA1/fpTTPnVGHssbVFOlZ9QURFUZkpwBCaqbzRUs2WRbKHYnMl0tLI8AGbAYbz9rzWwaTXa/FTPZ1TKwbMvVdmhYpUJsWdjEHJN8AITRvqIcY6mcirJvLxWKa8lg+52LAqt2aPAUQgEVs1UOf/ctUpinhnqwqGfgC6SmBuvXZxOrd4wU2fCD71FZyTAAZjVMLIEJAdgEFlvxfcdVUygfsRWUCTw23Rf26jVYl5XC/KAcyOp3/uYLf37RAHj6vGOG9LCm3dw1NlyR1tRPnegfuKFnbJQMjI1A18gwjGXSoLCOLyIQgWOMSLYFyf62qaUngdgs9bDZqWwDzubWxUbqbNOzRgq78JhdkCgIHIEQ5aG2OAwNRSVQX1HZ31hWGQs5PD/peu3Uj/7nEz9QuXXL98RV9eqJ2ARz37NsaZu5CQGYJcLN5Mkw59sEYItK06Dgd7qh0B8Y96czW3cuAIATiURhzOvZ+x8H9q586vAhiFMKKrJIobdVR3IF4Z111nb22HkXpM0WZpucBApEDq6qqoPP3LBlrFpy31zs9ebkKp9p/TNL+Nprt/WlJx58o7N91cunjsPAeJTxRGvITGZ7ON65NNhKfkem92xUp9bvWV2gZVP7OQc0BArgtpWr6XVLlsglXu+vRDnzVa/XOzRXUJl63uDgoCeTn7+1b3y0zADji691dC6PTIxB/8QYDKcS7Ad79WKZFXp+iGoCECOvx6dCtjgrrMS4EXgzk3qy7ykjhzGJY1CuBewjY2Xu42dMucT+vTzKJoCsKqyHr4dw4Od4qAqGoKqgiNaXV/aUBIOjJT73oxX5hX0q8HsqFjnWe77xy1DaOAzart1KX9Ovh1u4LoKtHuaRiTlt+2RqlMgBp+ogGBSyAoCoUfiTQD3c4a8/uQzEm3yEjOQyl5fjNYM0UTSiw43jVGmggvjxM/JEXlzNlA4bMvQpCRjU0hAFDVKC6b0Rs6YnhpVuIghbHhbTIUnN2nJLOTa70J2j/rW7xduWL9uWLWvaVqAFVrxjKqeY08IUzylNdVw6Dz7goJh3QpXTB4VUytb7S/oDIHQIAD+rBxcv8aQvDwSs8Z3V5Tx9zslndj1OFUUBtIJZD1usj8QEJssCnjVIZruuWCwMVRAOdE0DpyBB0JenerLZO/753o/v/kMKm20N3/WZ+2/pkRMPpdRs+HRPl362v6+6LzYhdo+NQBz79nIENNSiLC7cSe5KpkyYixZZiPCwLQnTmjMtVTO2TFhiFY4Z0hQ5eA4KvD7wSRL43W5YWVAMtaVl/XUF4Zjf5XyswJ3X4UzDXr+fjG7/538O9FeW7smAsSEai54jzGebHDDWrEnr+wKBAKw9Y5unpRkwC0Y3wOt0Qr43L+6R5VseufcTb+Q6/tFoND/mdPzi+RNHt+59+xgomIELpnJhEqFbjS7n/AXv9EEHHDwsLS7FrOFTYYf77jK/v3XOt5rHiYw3+oaN2/oT0Qdfbz616sxABDIatpC0YlAXGN/zhl5m+d5JYxjnQpBASGdgRWER3LZ+PSwpLnnLI4jbXIR0zePx36n/ojVx5Iircs2aeweS6b+ayKTczd2dWstAr2M4Ea8eyaQgqmRAoRTkrEkqxfOsQZvVNB2XKSPRNT04dm9fS9E0w06m1SxYGeMMfKlJ64lWichxIAki+B0i5DlcUOoPQNjjow0lZT3l+fmjLsnxaGlJaZ8QibwQDofli2n1Th2cjo6OPL46/LkTeuJ/7493u/uoarogp/ppzjepF7JbcG0JHPAaAjCAatLXwRpnEVzpLnthDe+5L0DIRK5zeZleR4aSySLFKd7YT7L1HIFPDeoy9ChRz5iulA3RDIxSBcayGYiqKihoGTPz1lyr9naHU4EtadECNsMh58ryzM50Zn9f+xo7rsy8hKyRCICC7GxTqCexPaGbF8BJOcgjAlTzPiiSPFDCObIVrvx+nwYdHk58wq/xPWcPHXp5ZGSESc58PVr2vJPHTp08o+JLalmm6eLCxGQe2+1px0Sn7wD2S2EOJnPx4GbDUIOAprNWaiTP4zGInH7g3lXr9v8xBA3d08uv27xFFSDc3t9vaJr62TElU9ne31M+FIuJY4kYjOka63eaSqVBzmZBRVce9ou0Wl9h/Ig52Kxsb7aZsXZYPANh1PyRz1jXVPA7nVDo92Psqy8cCCaLgwXC2tJyzSVJPyt0+9tdsrzP5/Ohu4pN2s+ffdZPqit/avBkZTyVxHoYRqBpAw1gWgAAB2ZJREFU8/ISXrCSESwu42mDiDdB4GfKAOtiY9bZUUqpW5Q4r9Mtc5nUp7atWJezVXnq1ClJLCv5cO/YyEORRGxd0tD7NIOmJJEFH0Cfb7/dKfiLm7JL4rhChytb4vb9m5bJ/uyKurrYxZIVBOHyazfcPZZMfaVnYsIflxVdEEzb7x0b9JQHmE40NS3EfeFHZTfkIMMT0JIpWiiK/PKy8nQ4EPi+kJIfLyoqSi70PdEaFouLP5AF8J7u61aw7Mrj931uIDqeH43HK6OyDGcnhplcozWMYRiUbw2z7bGXr51rYOU72LzXtkrCFE0EXIs4BqkjsQ93wO1lHhaXINHSvLzO0mCBWh8OCwWSK5bn9f17kdc7kI1E9uzYsSMz11jYQsfiHSCciTUkJeGpLjW2fMzQzgLhVKCYrjgPSxhvaAkFxv7Q8sIeyCpPKKWGUKCL4yFwPZLX2f/08uXLs4v5/JfRvRgQqx7n1nFd1UdoooZw0qdHiEJHlaQ3pWXLIpoCMtUgpmdgQs2ADAYohLLe1Gx6dNNiZR4bS8FkQRekWbATJFnxmEn+gd5J1prQ4jpHTx6PbUYpgaDkhnzeCQWCE4K8E9wGyZY5Al3FolfwU+h0Eelxp0Z7MM4Lmzfri6FUkpOx2KfRrZTNZoFnT2PGgAF/8N+zHKwyDi/DxvSM75VxHVOi6lzA46FyKrV3TSjUP9t9Ltbv6XbK7WzaSWpra7ma9etvGs9kKqLJxCfjSqaifziitYyOQjwlEz2rlqeUjCsupyGlqayMCbElq2VNlx1aA4RjyTuo+eNmhM3fwx6v7hD4iM/pChbkB6JloVA0MRH/WaHf31UWKnI0BIOayMt7fOQc8NrviuDGVVRsVTmuMK1mNEPXCY6j1aKDjT8mJMx0qKCaXMFogLO54FE5YOFkv9utamllT6Pfv6AY1fbt26XP/vVf3qkT+Ou4ln0qrardTsmB9jno2Pwkx8njedYOgXNQqiix5O61NTXRHG8158s6KXU6stnbI+lkIJFVNBePDtSLd6RBBSUlUx8hfMjjSesj488tXbo0sVjfiKV4hYWFZP/+/cZHP/pRj1pZdkvfQKTcyQt/FpPTgTOjg2WpTEZIZRWIyWlIKBlIYs6HqoKK3NLEXO+odOP+xRMORJQ7a5NyCQBOhwM8TicEPD7wSJIa8Pp6ivJDVOJInMtmd4QLipJ1xcWSm3Kx7Njw7j8W8Npj2tLS4vM21N6fJtrHkpr+KKVGwsB9FwV19i3tXVOjggGiDiBhhYfIU003BD/wY3znwPML5a1eLDl4L9/HyuPREYwzHufWET2jy3q2xi1In4qCzqcMXRtXU56onCyL6hkuRrOQBh1k0CGha4xhDVMpMW8GsYwxj1utCTHsgtKMezcqUA6Ox6AKk3MPEaCYk8DFCSABn/a53H0hzgWFvAtCnEOkmexZXpR+6udF3qPRvuDBg/vmk2A1lzkh9MknLZG8BwB2TrsGP5vtmH4Nnn8PvNz892RzUxOFe+4xFkNTmO0p5vL77du3c//rQx/ix9evvzmjq6Uj0Qn1cGs7jSYSYlNt7Vc1Qpb1j49BDGPiugZZQ4e4nGQuXQRciePBJTrAKUog8QK4nC6oDuYnR8dHvlMfLt/GicJzAbfrTWdS3tcQDo/u276P39w0Qsm9914Qo+wNdLPlynj3e8xlDvAqnAd7DnH8XyabmzZTuAeNnYUTBmMjjLiu3Mzxjjd8hIzu27ePh/0A7Dsmv3suszD1nJ3wcnMhGWkaobm6cOb7jXj+O8f83Jjlcq/ZrzHXx8vNzWSkqemivydGbltHRr3FodCWhCxXJ7PKQ6quhxB4oxkZxlIpmMikIS7LoKhZUAkPGILCHzyckinfSBSDG0Nhnge8Ljf4XS4IeXwgAYmkVfUbJYUlCbcopqThCAPcTZs2ceiO+0PO40xjH6e0QNOVq7Oj0X0/+MEP5P/V1JRLNOFdX4HzCJs2waX0rrPL4HvnjKlgLDqdtyg8z6d0XUnqcpNA4WspojuiugIpokPCUGFMVxj4YvKWamigojEJ5g9OOHZkYkYT4cFJeHBzIkjUVDK9RIAwkcDrcCFx04kE0b4b5J16ATiJVwfRyCi9bx0+tI/tzc3NdC5lRfMd6UURyvl+6R/7fEopBsT49vZ2eOmll4zlyzc5a69Z8tsMwOauoUGIZjKQ1FVQDA0m0knWhUbiRXDwPHgcTnCLTsAuPh63B+qD+WOQyXzIIUnbeUq/WyyKezAGvRig98cep+nfj+NGCEFX+fvHJT4ClFJOAajOAuwFgGpMzEpqOoykEjAupyGekUHRVAbAciYDWIqIh8flArfksACYQEVBALwuD3glCYKCAIZmtPIx5eaCt18fgs2bOULIJet+fV9eL3EhneXxaFubAwSBkJqazLAs38BL0jMGx3ljoEEaDIjTLANgDBmiSxr366yhgcL+rTMvjh8EBr4OwoOLE8HDieBglrAAbuAhRDnw8gKoALvzI5G7IRzGbkUcdHURqK7WLvZ+9/8BuqLoMgoBsYwAAAAASUVORK5CYII=", + "created": 1722535141187, + "lastRetrieved": 1722535141187 + }, + "14425b5cfc24549457fe531a77b482c2336c0d1d": { + "mimeType": "image/png", + "id": "14425b5cfc24549457fe531a77b482c2336c0d1d", + "dataURL": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAAAXNSR0IArs4c6QAAIABJREFUeF7t3QncdV9VF/BlaZaWaalBmvOsWSIOWY4UKqKCOIDgAJKSY5qZOSKKSs6i4IyKCBipmBpGWhqaQ5ql5oTmWJkR5ZRlWff7d5/X8+x3n3v2OfcM995nr8/nfJ7/+79n2Gftvc5ew2+t9SLRqHGgcWCQAy/SeNM40DgwzIEmIG11NA4c4cBtFBDv/BIR8Sd6f/9YRDheLCL+SEQ4x/F/esf/Tf/9exHxW+n4nYj4/bbCrpcD1yAgFvafj4hXSH/vHREvn46Xi4iXiYg/ExEvHREvFRF/KgnBUrP620lYfjMiXhAR/7V3+PevR8SvRMQvp7//Y6kHt/usz4FLERCL+7Uj4rUi4jUi4tXS8cpJKC7lPcwoQSIsvxQRP5sdv5h2qfVnvj2higPntrCoOK8bEfeJiL8UEW+QjntVvc3ln0R9+5mI+Lfp+NH099cu/9Uu8w32FpC/EBF/LSLePCLeLCL+ckS8+GWyctVR/6eI+FcR8X0R8b0R8W8i4n+t+sR283s4sLWA/LmIuF9E/PWIeJuIeNU2D7M4QDh+6PBx+WcR8R3pvzkRGi3MgbUFxP3fKCLeJSIeGBFvvPD4h27HEP4vyUD+bxHxwnT8RkQ4eKF4oBwWm+N/R4RF5ug8U8bPq/VHk4er83Z1HrCXjIg/mYz/P91zCPzZiOAg8EFwzdrk/Z572Imfc+D3syPCOzdagANrCIh7sh8eHhHvHhGvssA4+7f4nxHx8+n4DxHxC8no/dWI+I8R8Z/PSP3AC4LDs8bL9ooR8UqJJ3bPV48IauaSxDVNWJ55UFm/OSKa1+wE7i4pIL6a73NYrB+QDOsThnXPpb7y/y4ifiwifiIifjIifioJwTXFHv548sxxTjg4Jt4wIl5zAXe0XdGO8kUH1fZfRsT/O3VSbtv1SwjI6x2+Uh+ZhGOugU3F+eGI+P6kT/vvn7vlQTjqm52YWsqB8VeSa3vuGv3xg9r3xQdh/Lr08Zl7n1t13SkCwuP0SQc35INncIxA+KL984Ox/i+ScDSvzDgj2TRvmRwcnB2vM37JXWcIZH76wT56ckT87ozrb9UlcwSEHv0ZEfGIiZwSGLPdf1tEfE9EsCUancYB9sw7HD4w75w8g9S1WhLdf9zBJvqq5Jiove5WnTdFQHhyPiwiPi0ibP81xHBmLD497RJNB67h2rxzzMkDDrbaeyWPYa26K77y/ilAOe/JV3xVrYDYNZ6atvYxdvCiPOvgufnStFNck0E99u7n8jtozkMPDo0PTG72sXFRtT7u4Kb+gltu993FpxoBeYuDsfhNCfx3jNFAebwlX5ZcrWOT0n7fhgOM+486eAMfUhEYttPbTXi/GlUwjH5LOI7pthCrTzgI0JMiArK10XlygEHPqfKwkeF958G9/m4poHqeb7LhqI7tIDBSmDUUCRZx/vyDkH1KQqhuOOz2qBM4wG38xOQ2HrrNdyejn7p8q2lIQER+BeledoA7UKaPSqC5W83AC3158JkPPjhbPuuIdkAr+NgLfb/Fhj0kIN94JL7xtQcb4zHNTbvYHOx5I1F7rnf5NSX6GwkQuecYd312SUAYdWDVJRL/+PgGWdh1zpZ+uOxLqOC/WLixIO7bLv3AS7pfSUC4c0tBQAGlRzfhuKTprR6rlOV/nUCV+UVslh+pvtOVnZgLCN0UVBoCtU8y2oDnpIs2uk4OPCh5LPO3+9Tk/brOtx55q1xA6KJAgjl9Yoqg30om3ZKXthak+8r579MzKlzDV8uiXECgRiFqc3rHlIxztYxoL3YPB76+IAzUq60S3c5uGnIBEfuAss3pXQ+FFL7l7EbfBrQ0BwBJ4bn69NMzUcNLj22X+9UKyFNS3GOXQbaHbsIB9cOUI8qBqE1Aeuwf2kFEVO+bStBsMlvtIZtzACriIwpPbQJSISBOYbwDLiqG0Oi6OPDeBy/l0wZeqQlIpYA47d+nBB1bcaPr4MD7pqQp+T4lagIyQUCcKiYCESpdttHlcgAIFTICFP4YNQGZKCBOlxn4hYdUTfGRFjy8PCFhT35FKgoxNvomIDMEpLtEDSrYLADGWw+NHltpZ/C7zNDHJo9kTbKcITcBOUFAuksx8fEp97wJyhlIQjYERev+bkR80EjyW7NBMg7UxkGgOtXSHSPGu9pL4ibN2zXGrXV/N7eKgn9IKuTwoiOPg8FT6UTRuj61HaRiBwGBl0T1lan+7NjUKuOv7CXVS3Fl/260DQfME7et3HL5HjX0XYdSrrxZskNVxmwCkjhQu4MQEBgthct4Ph5Zw/V0ji+TBCy57SaiFSubwLzKU9X3VRvrPQ7exbeuqDXQ3dYuL2vwa1I1E4Z7E5Ae06cKSHcpUONnVqpd/TlWTV2eu13lnx7yTp7f8ksqReDmaYpoCNreP8WllCidQuZBkQ01zvrFrZuAZFycKyDdbd4q5QoogzmHVGNn3zwvZTGqH9v6XNzNSXWufJQIhR2CbVFbGK5/NwXB2YifO2AjNgFZWEC62zHsFAFQ3V0H2bmkbJDuSbLb/FU4QlX321S3V18R/OwKV4Oa681Y65Yt8V5VfILBJtQfZYiagKwkIN1tfenowVJ27S5LELcxVaxrf6DxpX/DhonDXGLlRg14NCCVnOQgAF37A3beEkR1UuFSNXdlfGrKvjYBWVlA+re3AN7zsBPIJaEanPIFHFowKgByLTvUAXbo58f4BIlRyZyTwEHvrlkkcxcnLJNUZS2n+x2mLPiuTbV4BL4olLAG/fdUHJxT5NtnOESagGwoIP1HURu0YHv71KNwqN7WGoumu6edqGvBRpXrWrDxqhE0B3e0HYkdRJi69mv9Fmx0/64FG3VS33X917Vi24N0xOX4+MepwecpLvUmIDsJSP+xFp0SMxp5yj+xu6z1Rd1jwa75TEKr45aK7Jwb3OZLBmSbgJyBgOQLiOqlWARBYZBq+qk5j6/ybSc9GDkrHD9wSIf9wZV7DjYBOUMBKQmBXUaTy9ePCC3eOgP2ta9QcOwKbCdOCPk2/jp48NgUW1ITkAsRkKFFYbdhBNtxugNCtTtElNk3azgE5i5ULurOgQDr5NBtixdOt95fnGFMzx3L2HVNQC5cQMYm2O9AeZ0XiXOAwHA/8zB1B8Oaod0/Xiz1Q2eQO+xiXd90Br7/tti1jusf3Kn9g8dMr5TukC+zpveshie15zQBuQUCUrsY2nl3c6AJSBOQJhdHONAEpAlIE5AmIPVr4FSwYv2T2pmXwIG2g7Qd5BLW6W5jbALSBGS3xXcJD24C0gTkEtbpbmNsAtIEZLfFdwkPbgLSBOQS1uluY2wCspOA3Cv1nRBxhkB94W5LoD34GAeagOwgIG+S8hXAO5B8C6hUnVXV9wXdBt1otD8HmoDsICCql+i3PUQSfOSgExSQ7h861HT6hQvCL+2/rJcbQROQHQREY0gdcqcQwN+PpgPs+3siQm5Eo3U50ARkBwH5olT+8pSppZapmvKlp9ykXTvKgSYgOwiIXG0L+70SjHx0lgZOADVXAKFf6Gzuvdp1ZQ40AdlBQLpHysmQh84e8VfC01RSL0pOdqN1ONAEZEcByaf0lVKVQIUb1P6VXitJaYgUJ3DNbSoit44YDN+1CcgZCUg+TVSx+6TCDYo2qCwoF12rMGmqKpaXerhvvYiu+XlNQGYKCLVI3GJrkgarJJAKiq1m7/rcf2Yq9td/UusP0uPGUJ/0T01FqtefovaEvTggl18BCVUgm4AkDtQmTCnh+ToR8YK9Zq89d3UOPDoivrzwlLaDVOwgTlHa8sFN1Vl9oe7xALXHIBlKxfqagFQKiNOUz9eBqDXq3GMZr/NMmoHavrlq1T2tCcgEAXHqc5NHidrV6LI5oJj4M1LdsKE3aQIyUUCcrjPUB6ZS+5e9RG7n6F8ytV/72xWv3wRkhoB0l+hDof+2EpqNzp8DnDIaHH32oWOxMq011ATkBAFxKbg678cTUs3ZGqa3c7blAMF4wOGRj42I+058dBOQCgHh3lXv9hgx3J9+6KP+BYeWxD88cRLa6etwQDfchx4Anh+Z+h6OPaU0z01AKgTk7SLi3RPkfIzJfpcAZVf5hh1K+NeM79rPAdN5/4Pq+76pGv7Y+3K4PPKQf/Og1if9JqtqA4XAhN+ftukvjIhXH+N4+h2w8NuSoOiZp9J5o3U4oBEo+0JagQ5etWTX/zupt2PDYmVcmyogLrdtY+jHTuzLpwegtmEE5jsOrmKZhpfSFqB2sW15nnkADXqHg0r7zqlT7pTn6234EakDbnddE5AFBKS7BZuEbvvhqZHllMlxriYyBMbxvNTauQnMMBcJBAP7rXtpAvqbTCXt3B53QE5/S6GFdhOQBQWku9XLHBb7o5J9MicJqrsPPZgax35xmEgtnW+j0EAxazenZ6PjTVMqgP8/h/DQzi39WRGNIZ42AVlBQLpbSnay3TP2bPnaJZ9KhEbRhn7vvp9NgUp56pdOdgW9GAlD14eR/QAbJQ/mVLJLPy05TGqKXjQBWVFA+reWXvuQiHhYUgdAqZckdbS6/n4g2r/c6wNo15F9qDLKnkJkgctlkUcP5/QK6XjliHC8SgrWLd1P8dcOnYKfHRFfl/qmT+FBE5CNBCQXlnc8qEzvGhH3P8RJqGRbkAQrfn0HYdEx9jfS8VsR8Tvp+N2I4EBwCHpaUK6lhtgVu56F1BuL3s5I93+JdCiIBwXr0GDUwT7TD3Er+omEtmZXqC02RSi6MXqPr0mI7f64xbfs5DI+7XgE+rcjAg95JbvDORwv4ibdcfEFNuZ4sU6ZdItNOu39UuEG7mOMbzSNAwrrcW7I8lTK1a45hcz7a6QCGm+WjH8q3tK7mUzQ70tjNM6fujSbcmsBySeR6vUGB8PxLdLBIKWPLz1RUxbPuZ3rS62Inp3BYpO3MVUgvJMd0IfpgYd72dFPcajM5RGBUW5WbhE10C5+1rS3gJSYA2mqvM8bJeFhsPq60eevmah1zz8E+n4yHeIUP5L6qc9RmfDK/CqE8T7JHjwnHlLN/mHKMVKMY+47rromzlFAhl6YXi9a7MvXP14xIhxLeH1WZXaqaq9CC+/SzyVHA2eDg3eOHbQE4YWI+kcllXaJe655D44W0KQvPjdo0iUJyLEJ8h4vm7xCvEa+lC+XDv+fV43R3B0MUoa2Y6pgMd550bqDIdo/OAR+PTsIxa9uoFJ4r7+VIuRDGYK1C50Q29E4N/rGOLWIo8KzuoODglcOBOkUjyUniljN5yf+1Y51tfOuRUBOYRDHAe8MHb3zWPnLg0XtcfDk+Atb5it/bsFLQi6B7ZPSR2EKP7wP20aBcN4wHii72Rz7AA/t7l1ch235NgO57sfG6NlfdhDEz0gu+ynvs+i5TUAWZefmNzN/4k1ycaYY3VAK/yR5lwjHmv1Z7CjsSYhwbn4Cc6yCZp+JduaPS7Wdd6mL1gRk8zW92AOVYaWz80rVkDTpp6bDTrEXCZiqkgmKz4NZQ/KLqI56x2xKTUA2ZfciD/P1/dCD7fTpEcHjN0bSDCSxqVyyy1d4YIDWnrwVbS3krozhzKi1T04p3nPUvzE+FX9vAjKLbbtdxPkg2g3zdowspn+UhIg6de4kP/6jkx3FHjxGdr/3TPi81d+rCcjqLF7sAXR4+Kp7j9zxWclYF0+5NOKB/JiUQnHMG2YHoXKp07YqNQFZlb2L3Nwcybn5vBGEAc8T1Quc/dJJcPhJCeh67F2+OgkKPN0q1ARkFbYudlNfUfYDPX2ILI7HH+yRz9qgd4r4h36T4jriI2uStcmY/5yEiB56Fvc0IOwq42kCsuYUn3ZvBjh16Zi98eMpDx0IcG36q8muoQaJB8kmZTSvTdDRdgo5RkMkZwif5mDUjo5/SwHh3gOTXkXS156lje8vQi0D8C2PPFfuhpzyLTw6hFUA0Rx2BDslvmFxrk3WqSqQ/+BIpB7CWZyFqrkYbSEgoB4qMJpsTOXLfk6CakOoysFo9IccAIcRxJMKUCIfmQ9KmYJb8U1/mE8oPAwyF0J4K2QBaL4mPxLOSgTiI2d/MQfFFgLylOTnLr2Qr59ILjSnv4Tn4pNsTli1vtRyPN584B4yJUHVoXy3IhgrC27I/fpuh3jGN201mGSPiO1AKZdIdil10N+TaQsBsTVD4daQL5GsNJFT/nt5ELZwC+PaiUFuoQ1FxuWUUyEACLckxf/U2xoi4+J1Ws2TVHgwcCStxO5VIjUMaCyAoyfRFgIiDfSYgVXzAl4YNOFaS5qaB73k/+YAM+SG2DkWN0JHmE9dkbk4RvBSgIVbEo+aOIigYYkklmk3fpKNtoWA2D3AHORsnEK2TIC8a2zeI4rMTVsiwgHgt7VzA6JZ+SUp0mPELjLP8F5bEtgNIXn4wEPtMkrmzraRthAQY5d34Qvo0DF3yMgaYy5w255Au7HxzfndV9oHxILMifpCn9565zAOuxnIeS2BwMBUbU2g/rQUzYBKxNOnXO4s2kpA8sEpGPC2vQqBNQIjb+FeKStv1sue4UVgI2wtsYWc2F2EY2ubwzgkmLEFJZ3lpB+MwGQp0YyX6Qd34LPCHz4yCuzlxEsqL8VuOJn2EpB8oBYK5r5JqiRoW+8vGlskNeRzJ7/h+V5APeCx8qHIicryVht7q/pjEL2WrptT59aFJFabOSeVMS3G2SrNCdMlnPC9Aw4hOzGv12Q1tVZATBZX7JZEQFQZFJwi/demWoGPyOco0SM2jnP0xyAbUIQ+Bwv2A4MCmXYYO3pOe46dCm4HK9Us5o2Tpz+JagXkQxJ4bNLN28mDHBBbsAhL+Rwi5EPerC1Y+q2HeNQ7FR70JQkY2P30fgkCkp/KUCdkyhXtQepEf+XAg72XGEo11QqIyaT2nFPCTfVLntmJeK79A2dFTj+WVM01U2CPsYMTpbSAqCa8VCLVHVERqVTU4pw+7bBWPnEnvuMvz5adLCfVY+wy1fytFRAP8sJevNFpHHhwCnLldxFog23aAnhYegMZfYKy+qbnBAcFVZwTOAwERE7AjO4DH7UHMdo5PziDctL64ZNrBzVFQBhe3HirJ6nUDv4CzxPcYkuVOnSpSALztBdxhyq3kxOBVchvCDMnz730tVYUbiiIt8U72qFLuTGE1y5S5R2cIiDdS/FeQFXu4anYgrFrPkNnLi2Yc4JAtQi3hGv0x8CdawylgtvULuDSIeJEYbAr5p2TAOd3r8nQkXs/Y8Awl44sgDhKcwTETQVm1GFSar9RHQd4flQQLFW3F+TaMxNQXsdjCq8Bcl9TNeXjB9RvKAD1lveyXRXPswPifZ983O0iIExHaa6AuCkg2N9PHoO9GDD2fuf0+9DuISnqGBhw7Xewc9HX81pVID0WEbDpGHGrWmy8czmB5k+JyI89a+rv4jniOjnJ71ezeDUB6W7M8yJXQMXupnaV2c32EKzKCy7g1+svmb8wNuHZ7z6QItClYKWgLKGuJSoLuyMnni8esMlButoHj5wHps97lfNeXMe41EgepFN2kPymoOkAd76ISxVhXohHu99mCNdUrQuv9AZyOYxhiUVtLYm0w5blNFXYln7doV1kNOZUKyDsDV4OX7sxAqwTqHHs5eYbG+PWv4PplxJ8/L+96lb5skqEWlItEivzrqeoa2vMjYAs+0+HgD7xaEEDDO5utQLC383g+sxUWqa2tioPhiaSEoG06LqNRAhKeSwCcqWI9VY8Yj/CVOV0qmEt4s7uyKnW4F/r/YccCXZ3O0mRpgiIqClSLlKJek3sa4kRrzwLOwWjuBRvi70Cb1Uq27On54p3h2u2BHU51TV7zGX8gJRvX7tuljxPdRQdrvISpzCGsIaLCYgbESzuPxFJbrypRPXi1pStZpfZOtFm6njnng8SzhUOPt4n76v49F7eP7kbMjRzWiq4J/Ku0F1OPGIAqHsV6mBvsbtyErhlyN9Fc3aQ/k1cL5CkRpL0xrlkcCALdinIXdv8XkGzue9Qug5Pnlv4QaD17y35oAn3klbQaQP9y5aEhxyDrVgrpYj9hFeYfaoCc99cuNqHHgRlcQHp3xD2hioBdnBqq2c+eAYkbBBh4WP3bzvPWfayG5gymWwfVvhtr8xItqMPESHJaWmAoUJuyhflpGqN6ox94OPsFT/xQju63Ts31q0zpsOqAtLdnM8fcwiKYg3+vRTZVfit2TD+8kw45KtrccYRcC4CZHcV+8izJXmthkrWLMWnofuYE9ipnPAORF2i1pJUC51f8plj9xqyCVXOv0toT1WxxgYDVckYfZdkszCU1iS6LUNMuirdn8C8IEX9ufL0wHPIVVDtwkHoxG0cridgbANOBPzx1ZU8RG0g7A6RY9gj7wfG0PU+tHN6R9lt3IdSZnPiOeJR2ZqMlQ1Q6l2IB2vUI8OjHObhvfHYR4J2sDXxHBLcnAAr7wp0ri0g/UFYZPdNtYzo5lIzpzbQ3JqZazzPu4teb02fktoibP3coefhwSl269z3UFMLTCovkpEnhN1z/y0FJH8hXxcCQ1C6I9cN5zLhXK+zS/FoVSfsLPgikt5qAr0LPnL0VnbcPSAoambl1Su5vamZN2hPASmNhetT0pDt11/GbCnSO8r5Mz2BW7uEe9piuNzpg/7+LQaQPcNHgoDwnm1N1FyB0pyoxTcQ6uckIENMstOQbOUt/X3VVECO77pULmdrZk953qRstik3rjiXOsOrdEof84rHVJ+yRzXGbnDs4lKOi4/XjUqSlyAgxzhOeCTsqNro0OvOV0A0t38woksJPdWzWXkiLxD9lhFaqvWlqobqGnuRIB3UbU3zz7XGyIUP1Cgvfy+yVkrFrbV1Y4vcoUsXkCkM5oVioBEWnhWeqP7hd4Zb/+DJ4tEyqTxcbAgqAa8PDxiB4BHrvGNdhBi4U63dnID59vDcTOHTbTjXuv/NwodCAFMg81YKyJYTL1KuAmFOvtwnFVPe8iWu/FlaSLBz+0QFhRdrArLy5JdyoX/phJrEKw/3Vt7+6Yd03Idmbw7ydKOgxm1SsbZcBZDLefu07zrSz2LLsbVn/QEHSl2z7O437LMmIOssF7ixvL6UUvwPWedx7a4zODBUI4CX7w7KugnIDM5WXALukrug124PwAXOfSkAJteaF48TwleRb191D0BF7k34tdtOQ44Ugdw7sJsmIOssE56t3JUqyayE7D1lBL529Gjp0FAJtSRoKE8cJmkJcKf03dcd6HFSO6ax84wTlmwpQOXDDh+Sry88VLD6jgu4CcjYtMz7nbs3D8hpUSY4thQJaj1poFRo7TNUQuf7P6UpKJiQlGpo2LUJLOW9F8pKHAItguPcqZfVBGSdKRU3ycFwS9U2JnigEiU38py3MVbVMu0oU9OgIZ15fmoaIM0ZW+kagViI5FMhKlKLBSxz0oRHt+V7qAnIUtN28z4Cinnu8xIJSVQZLmSZcUuTwKY2F1PSgO0ae1TXvPGVn8mIoUr20AaAnZsJiK+MLxSdT/RSLjpDkZROmYyZfNjlMnpyDm1RHV2u9lyyc8iplltzjKghP5C+7MYBNaDKOeN9DGJCZfvQCTsJWM8e/RNvLOKZDJX/8czCtcCxd5wYW+wg9G497XLiKVBRgsHor0y7ayk456ua6+RfdTD+PmDmZLpsKDrf3VI7N2qSHPhSJ2C5NwptfMxAym13HwIy1PkqH/4lC4i5KJX7kXJxp7/6FgKiNCnY+hjBN6nOaGdRR8p/M5b2qoAxNt5jv8stkHfdp1MqhrzdkSQrWZOPPsAmnl05YHOujcUTB3YUHymYMbGcMRoSEDZSqVjF2P3y39kDTyhctMQOMlR5xYfkzprbQkBKySm1jDJQ/ntR6MfulFxTO9b+eeINiu31CXpVrv5UYsv4yNyVzJNy3sHYiyVrRh5ECKi7pU62tVH/IQFRFFpx6FNpqPDDEgKiH4ssyz4x/Nl5d2gLAbGtK7VS6gM+hYF7JhtNGadzS/WX+PBL3ZvG7q1+lSBjTnLtfWHnCEd3LzXNnpcvivSjGrsgM8fokgWEyvvI7OVUPJE+samAeJiJpAb4IsjZmEuMzaPVuOfeeOHrwKYF7/rELmC4T1UZh+r6auVWqvE09VUEL5Unyklso1RkrX/eJQuIltFiOH3i9qXObi4g/Wf6it4vpZ4C9E0JMPG3Q8WeOw0tOu9e02+jez/R6VKTlyULHtjZqXCe1SeCbG6O5YxfsoDYgfMqO3cVbthCxRpbzHBD9HXFzHRM1dClVO3kksB+Q7qz+IXuXLU01DeQ2qrG8VI0hEt60Ijxf6kCoixTqXDdXVUfcwGx5dh6clLfqdTNdKkJ6t+HUSr/XKU7wkInBIngerwUN/BQSqd4UMkrM8THUs6C7EWuyJIrd+58+JLyhuXrwViNeYguVUAUXhdayOmu4to5Q9gHJRVGkE8Et1EdB/BV8Tpfqj7ZPaZEwUv2h3hHqcd63ciGz9J914epT2wcts61CYi6yFp55HRXEetcQES9RV9vuLqSWjBlYk+drGu4Xv8PcIY+Tf36i+hCl/ZJv79S/41TeaY1Rd6wkzZxrM3Fpe4gXO73zxgmRQHG6wYeLRcQ15Sy4fz/PXs7nDr5e1w/1LDlBhhuZGCliPypkJWhR5bShKF8j7W3uEQBYd9yPMiV6RPo+8Nz5pQEZKgZ4wtT4bE7QK49Vt0FPXNIz51ihyh+nRfO09qOy3xpKu14R5vLpBJLJSzWOQcKeU5L8R08xdsbVBIQoDjV00sVDRlywHKi442Oc4CzAaZH0eg+1UapXaOPR96qwOSWGmWeOh/PzwsWpGLOQH1DdIk7SCkX3fu9WkImjAqIEwRLYGlKvQh5knQNhfycmj9w6iRe2vWCbVylfZIZxxlS01Wr1AkKZo3Xacn6vnRvLRBysphAMq5FQGwIPgSEoU/6zqjYeReVdpDupCEUbve7YJWGOYB5jcocAAp8SuEnyU6fXcG0ofjE0l7FoQIGY30AYu8qAAAI+ElEQVQUL20HEa4ArclpMB36mIDYPcCBc7xK/+airW4OvXlbu9geW+eKMzO08+QpdpwYz9gOzINVKrDAeBZUXSKfnLHqIyd20yfeTJH0Y4XuLk1AJIX56OQ06Dg5JiBu4neZcGO51IoUULk0buQua/SHHABDLyU5qeoH0j9G8EHSQ3O6q47s2I0Gfje/pYY+NVVYLklAhC6sTaVn+wQtLv5T/FiNCUh3o8ekxotj7dTsKLK0YFpE3se+kDPn9KIuE2gDk8npywe+Zvl52tiV4ClsEe0M7uRPz+CKOA3ISmkdQDLo3XeMLklAhtTdo1XmawUEkwDtvnokG63PTAk3X5tKq1wCwHDG+qq6hHrl/S2mPvmYMBZ/ZeQu5kjALs8vcRkvmeocpa61Y4MT15LEVap67yOXl+Us3e9SBAQg03rMk9h8wHlrB9fnFAHBIA8C6FKhQ6X0WjKBPDqitba027azDLU/AzPPYfElnvqa2ylyW8a5vIq+ggKINfgsNof5E48pzb8gmgzQklcrH9uQgMi1WCIUYBwl/kxNmNJ2ogSVuqtYdf6CUwWkux5YTm4zWHcekRwTGsEvoX7ZbPLR7+T/jl14wb9bSIztHKXMVcu9WFMZ5MOTEAyxgftSHopdAQ4sJ67lrsjcjaSg7MQpeSaXkJPO2aTlRCntexSEO1dAOp7eOwkKT1du/NSsZzuJXASuNzaLnUaG3DXuMOyyEoZKoQVu1jEyV3YcRRXGqGuT3VU1kVJQ08oOiE9xiFq6BAFRD/lZhRe6Kzmq9NKnCkh3T+Vk4FhMnu3vFAJpgWJV5YSRSPq5IU8tFHbKmJa41gK1cPOKi9QiKlQpMSp/rq8hgapRy6aOuTY207/vUF7F1GdPPb828cy6xNcc8Ol5kvagGo7SUgLSPcT9GJO2chCFpXoIqp9lZ2G/WGTUCam31BYG1pJR5TGenfI7Vzj3bE7y7aEXanZOPIYbspvkqOs5Y2Nz8PDUVkXpP8NYuKrFdLYicy71usbeGmrWSVOR+zTK76UFpM8kBj03JGERB8i9OEsyVJCSUekAnqOD0+v9fzaOw0LoWqUJfo0yp2KAjGZYKw4LVcEFBsFA2GiqhfhAOKii9H7H0KJ+xMHL8rSKZ3an8MgQkjmVUrp7SMj66ErYy9DQqG/GPaV49oTXvHGqnBVASNrFGEkhpn2UHBviSuzfUVpTQPIvDdXLZIIvQFSWBj464AVPsOsQFPEEniAH16votB2LAFFpHNQiByPbAueY4B5d8h0ItIDVVKeFHVuNJ/k6Y3Eq7FPdkk4uqMv+W4p8KNbsoGtOjL2GzBkoVCnAqhwRIauirQQkHwxmQqnyItjqTPIUt3HVy13gSQKCwI1zdjclRn148FMNLfYBIWaod/1BOmfIpaikc6dQD3TqVU6qebJfqtEeewlIPnDqmK8nTAyDtTvmeMbmMvVcroOU9nVvNI8DPhI8VKU6bMISsIPVdC4CUhqwsSnzwwD0RaRzO+i84NnXSoxPyVYKUDeaxgF2H/ukFOfhGaW1TCqYfs4Ccow1VDQwDQhUhyBY95fwMJIdp1ZznDY9N89my6i9RL3hOJD/wYnA66aDkX9/QwH+4C48NXbTUsDvlDFd87XsQR2z8lxz7wxMe5/kAZ3Eg0sVkJqXZKhR0ejiDt4lfnHC1T/o6Z0R3v9LuNgCvjgOBnxnzNPhHfR7hqODh0wMh5FNMPwdg6ObNJCMUh0wXzxdpGoN0xqeXOs51rG8m/cbeMHZ+TPXLCCXshiOQUh4YoARLz1IuvZcKOEDBVAiOSDQ6LOoCcgsti16kTmAklakukSQtfryje1Giw7qgm4GPAtdUCJxEB7S2V67JiDnsRLEL3heSpB2IxSIe9QFVZbciqvHhIO9J4xwUsvrJiBbTeX4c0Tc5X2o7lciCGjAu6XaII+P6HzPsG6pVRDlJYKa4O49uURVE5DzWgQAjYRkyI2tRjGb5Dbn//NWycYcMsghI5RmLRVnmDzbTUAms2z1CwRM4YTyur7dgyGb7SQnfx1Xf5PlHyDOASpScuV6Gm+jniZTKugfHWUTkOUncYk7EhJFqoEcS8TolFrAtTkHlrLEGLe+B5UJuHIo2cvOIXNwMeHwgk1Atp7m+uexRbh5oQmG6KmpNplA2LWSeBYXriJ2Q4FfNofiFouoVX1GNgE572XFFpGncQxKLjdGjokd59oIZF0OTQmV270rRAKE+CoqZxOQ819SIv2qw7A7jpF4CaBjTUnTc39riAe1uuSqHEspkHEq1+gkV+4xZjQBOfel8gfjo2aAcD9uoF5y9xZgKdpl++rSyS+NvKeiEQJ/pTTZ/vuIkIuDzA4C1jCnCUgNl87nHBmaDNUxNDNwpNq/FtElxE3YFu+RyheN1TTwEVA+dJOOZ01Azmfx146Eq/OJyWMzdo14iVJAT56RqTh27yV+l50pJdvuKI1hjAA4AQ/VJdiEmoBswuZVHkIVoUrV5PpDIYOCs2UUS9uzGao1J+sR9oxbtiYpTiYgm0TppEn5HKdyvgnIqRzc93qLS5VEZYBq88FB8Rn0OkrpIAWmvzbBmklWEuEGvMz7cxx7Ple2kkQ1xfUWf48mIIuzdJcbUk8UfJvaaNXXWElT9aF0rlI1BMjv1OAjFIDcb2BB9adkSE6twKk0j/KoVdVH1uJ6E5C1OLvPfSVgffJAu4XaETHqwVl+OtUfE4TrJ4X53WJXJKI7FNyAI5MaTTAkp80lqGYtGfw9VVDnjuHOdU1ATmbhWd5AHr8CBapdTv1y7/FCBOE5h5jH4xNYc48xFJ/ZBORspmKVgfiSq5qoKJ2GPedGKmVyHMh3OcsWGU1Azm3JrDceAEgG8gNTWaX1nnT8zqLe2mDoYMVtu7sadWy4TUD2Wib7PlcFGFUutZOWxTiUpLXEKBVp4wToDu0vLoaagFzMVK06UM063zgZ2ACCDG3RenD7UgeqfDCKSnAfM+zzg0Cc9S7RdpBV19bV35ynii0jliHy7S/8U+fZ8ldJpKuktoNc5bS2l1qKA01AluJku89VcqAJyFVOa3uppTjw/wEv/ZNB+2EDKAAAAABJRU5ErkJggg==", + "created": 1722535283692, + "lastRetrieved": 1722535283692 + }, + "052b11aa8b22d6eabf95831f5c83abbbdebc45ef": { + "mimeType": "image/png", + "id": "052b11aa8b22d6eabf95831f5c83abbbdebc45ef", + "dataURL": "data:image/png;base64,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", + "created": 1722538330971, + "lastRetrieved": 1722538330971 + }, + "f8e4899a9159ac15f50bae4ac5c2dccd836011de": { + "mimeType": "image/png", + "id": "f8e4899a9159ac15f50bae4ac5c2dccd836011de", + "dataURL": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC4AAAAvCAYAAACc5fiSAAAAAXNSR0IArs4c6QAABXNJREFUaEPtmXlsVFUUh7/73rz3ZqYlhYJtoVKUWCVo1LiBCJKYGJciEqBGgQqyapRoNFESghtqIFJqKTZxVyQmBNwVorIV/lIUF1SUQqhNoSJS6ca8N2+5Zt6kDdL1yWSqSW8y/91373fPPefcc34jpJSS/+EQ/eBpvrV+i6fZ4KTG4q6LW1ODs/c7ZMuplJ9BZEbRJk5AyclpXzsl4G59Pdbr67Df/wgZj6ceXA2hP3w/kVkzQQh//dSAHzqEuboCe/MW0EKISAQUNQUH8JAnm8B10UpmkvH046Am100deGk59tZtqOPGYdx6M2LI4LMHt21OPfUssq4ObdYMMpY/0Q144j3yvN5vKgTu4cOYCfBtO9CmTyW8aAFqwbm9X6OLmdI0abptOvLXX3oGly2tPoj754keDyB0HXXECLCtvge3v9pDrKwC78svwXG7tZrIzcN44D608WP7Htza8hnmilXI2lpETi5EI13Ci4HZGCV3Errskv8A+OYkOCdPoM29B7Xwgq6trhuECkf6Ud/Bx4fn+64mXRcC1nEiFAJFQVpW733cagM3W4lUlKOPubrHIHMT6fDM4ByWh/3zfrya35CO0+Map08IXViIWlgI0ks/uDJkEOYbyUeJltZg4HNnE75jOiJs9AH4OYOxNr2H/cUOiAUrA0LTpmAU3YLQtPSDq/lD8X4/hnuiAbzus9OZ15GoSdTcHKRt9wF4uh+glAVnP3gvn/yUWjyRv9t+AfKKFAKRyONBapVUgSuDs4m98ir2xveRzS0BsEG7dx6RGXciwuH0B6cyeBCxFyux129ANjUGAg89tJjonBJEONIH4Hk5WLt24373PVhWIHD12mvRx17ju0uvy9pUuUra6/F+8P48nu48nj8U53ANXn09sodO6szIVQuGEyoY7tfyaQ9OZUg25ltvY3/wCbQGzONz7sYonoow+qSszcbasAn7s63QGrCsvWMaxuRJCD1IWbvl82TP2dxEtHKNn097Gk71QcxVZTg7d6EVTyOyaD7KsKE4tbXIY8f91i7IUPLzUfOHIR2bpsnFSXliTgkZTy7zW7pOBaF41S7MlaV41QcJV1YQvmFiuwjT6eZSYu/7CfO5lXg/7EMrmUF47myU3NykvBGw30xSCR/Qa2iguXgWsvoA+rIlROfP61qCc/b9SGxVOW7VTvSFCzAWzkPtRpVKFELx7VVYz5ciW1swFt+PMW0KIpoRxMgd53oe1sefYi5fgWz8i+gLpehFt7TP6yDBecf+wHz1dex3NkB+PuElj6CPv46E+NPZ8I4cJVZRif3ehyijRxF59GG0sWPar/Tf0idEqdjK1TjbtiNGnk9mRRnqhYVdgyf8Mf7FNsyytXjVB1CuupLoE0sJjbqog8t4x/8k9tIryUMmhMn7FhJZOBflbKwtJbKxkVPla3He/QDZ3Iw2u4SMpY+BpnUDDngnG7HWrSf+5nrkXw2I4QXoxVMIXXEFIqz7CpfzWy3xDz/G2/M1QlVRi4ow7p6BYujI1mBdfbtf2zbOoRrin27G+2YvmBah6ycQXfkMSl7ePy6vS7XWa2rC2vgu8dfWIY/WgVAQGZkQ0cF2knBWHDIzCd10I+FF8/3C36x8GS9REQYdhg5xG9lwAmzb7/C1SUWEH3mQRJZp08Xblu1eZnYcfC1xTSXez/uT5anfsQv/2kRuLvqsu/zHQhkwAHvvt8RKy/H27AmKDZkDknCmCdmDMBbMw7h9EkpWVgfoTtNhZzsmLOlWHySRcWRdPUQM1MsvJXTxaJTs7PZP3Loj2FW7kUeOBgePhhFZWajnFaBecjHKwEGdAvfO4sG3T9sXKflHIm20p23UD55uq/dbPN0W/xvACquwtqUnKwAAAABJRU5ErkJggg==", + "created": 1725544409286, + "lastRetrieved": 1725544409286 + }, + "39f6aaecb1c0b0b2b31e3bed9bf23bd8bfe551f5": { + "mimeType": "image/png", + "id": "39f6aaecb1c0b0b2b31e3bed9bf23bd8bfe551f5", + "dataURL": "data:image/png;base64,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", + "created": 1725545071196, + "lastRetrieved": 1725545071196 + } + } +} \ No newline at end of file diff --git a/v1.46/assets/img/UI-Import-Dialog.png b/v1.46/assets/img/UI-Import-Dialog.png new file mode 100644 index 000000000..d7ea7e8df Binary files /dev/null and b/v1.46/assets/img/UI-Import-Dialog.png differ diff --git a/v1.46/assets/img/add_branch_protection_rule.png b/v1.46/assets/img/add_branch_protection_rule.png new file mode 100644 index 000000000..69c07f757 Binary files /dev/null and b/v1.46/assets/img/add_branch_protection_rule.png differ diff --git a/v1.46/assets/img/airbyte.png b/v1.46/assets/img/airbyte.png new file mode 100644 index 000000000..8207a2228 Binary files /dev/null and b/v1.46/assets/img/airbyte.png differ diff --git a/v1.46/assets/img/architecture.excalidraw b/v1.46/assets/img/architecture.excalidraw new file mode 100644 index 000000000..a51dbc395 --- /dev/null +++ b/v1.46/assets/img/architecture.excalidraw @@ -0,0 +1,3546 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "type": "rectangle", + "version": 1242, + "versionNonce": 25930805, + "isDeleted": false, + "id": "_aEm-L6P94yZvYLPiUQdu", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 577.625, + "y": 224.6171875, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 566.3671875, + "height": 441.734375, + "seed": 883304279, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElements": [], + "updated": 1665354334763, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 502, + "versionNonce": 1695398075, + "isDeleted": false, + "id": "TgGwOOzgVI1in0sDAxa-r", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 585.609375, + "y": 194.30078125, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 135, + "height": 25, + "seed": 1816928153, + "groupIds": [], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354175302, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "lakeFS server", + "baseline": 18, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "lakeFS server" + }, + { + "type": "rectangle", + "version": 719, + "versionNonce": 1032096629, + "isDeleted": false, + "id": "9B7vsP3VbZUcmy_h0fyUT", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 631.6484375, + "y": 370.693359375, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 169, + "height": 93, + "seed": 1114015833, + "groupIds": [], + "strokeSharpness": "round", + "boundElements": [ + { + "id": "nJIgCOrDzHKFPTaxD6jNH", + "type": "text" + }, + { + "id": "nJIgCOrDzHKFPTaxD6jNH", + "type": "text" + }, + { + "type": "text", + "id": "nJIgCOrDzHKFPTaxD6jNH" + }, + { + "id": "f4fx7Okaga8CbENsmpkmP", + "type": "arrow" + }, + { + "id": "Bv7_JtCztVbjCF9lOPXMj", + "type": "arrow" + } + ], + "updated": 1665354057906, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 957, + "versionNonce": 1212742971, + "isDeleted": false, + "id": "Bxgkr0odgFyw9uf9SBh9m", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 630.6875, + "y": 247.59375, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 102, + "height": 66, + "seed": 379535735, + "groupIds": [], + "strokeSharpness": "round", + "boundElements": [ + { + "id": "gYy1ZNZFlRjyv6QM22Mwh", + "type": "text" + }, + { + "id": "gYy1ZNZFlRjyv6QM22Mwh", + "type": "text" + }, + { + "id": "gYy1ZNZFlRjyv6QM22Mwh", + "type": "text" + }, + { + "type": "text", + "id": "gYy1ZNZFlRjyv6QM22Mwh" + }, + { + "id": "qlZi2lbDur0dqp82LYO_L", + "type": "arrow" + } + ], + "updated": 1665354284481, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 1437, + "versionNonce": 2106152757, + "isDeleted": false, + "id": "2ZfD2SrM-46E8aH7dhW-L", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 294.03125, + "y": 378.376953125, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 169, + "height": 90, + "seed": 1564026839, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElements": [ + { + "id": "gFQ7_SRIz8GTTeavtNxc1", + "type": "text" + }, + { + "id": "gFQ7_SRIz8GTTeavtNxc1", + "type": "text" + }, + { + "id": "gFQ7_SRIz8GTTeavtNxc1", + "type": "text" + }, + { + "id": "gFQ7_SRIz8GTTeavtNxc1", + "type": "text" + }, + { + "id": "gFQ7_SRIz8GTTeavtNxc1", + "type": "text" + }, + { + "id": "qlZi2lbDur0dqp82LYO_L", + "type": "arrow" + }, + { + "type": "text", + "id": "gFQ7_SRIz8GTTeavtNxc1" + }, + { + "id": "f4fx7Okaga8CbENsmpkmP", + "type": "arrow" + } + ], + "updated": 1665354301139, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 1734, + "versionNonce": 1185922709, + "isDeleted": false, + "id": "LFEQGiwWugw-bHxiMcZeO", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 292.69140625, + "y": 538.07421875, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 169, + "height": 110, + "seed": 513927961, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElements": [ + { + "id": "qlZi2lbDur0dqp82LYO_L", + "type": "arrow" + }, + { + "type": "text", + "id": "6tgg9ZzYCBwT1BVPy4fTj" + }, + { + "id": "AB97GotmGG213cLmZEUpn", + "type": "arrow" + } + ], + "updated": 1665354315695, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 1406, + "versionNonce": 42022811, + "isDeleted": false, + "id": "FcI_PQ6EPBwrqiPhB5Ph8", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 925.701171875, + "y": 241.80859375, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 169, + "height": 93, + "seed": 329647831, + "groupIds": [], + "strokeSharpness": "round", + "boundElements": [ + { + "id": "ePEr9LdcAMy2hfkyeKgHd", + "type": "text" + }, + { + "id": "ePEr9LdcAMy2hfkyeKgHd", + "type": "text" + }, + { + "id": "ePEr9LdcAMy2hfkyeKgHd", + "type": "text" + }, + { + "id": "ePEr9LdcAMy2hfkyeKgHd", + "type": "text" + }, + { + "type": "text", + "id": "ePEr9LdcAMy2hfkyeKgHd" + }, + { + "id": "KcyC9x5YsNNHh13B4n1nx", + "type": "arrow" + } + ], + "updated": 1665354057906, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 1052, + "versionNonce": 1432963765, + "isDeleted": false, + "id": "5ER2G9M0ztifcYbrsZIow", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 925.7011718750001, + "y": 346.91145833333337, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 169, + "height": 93, + "seed": 726083447, + "groupIds": [], + "strokeSharpness": "round", + "boundElements": [ + { + "id": "xZMYT3ni3ok2L7lxP6yGX", + "type": "text" + }, + { + "id": "xZMYT3ni3ok2L7lxP6yGX", + "type": "text" + }, + { + "id": "xZMYT3ni3ok2L7lxP6yGX", + "type": "text" + }, + { + "id": "xZMYT3ni3ok2L7lxP6yGX", + "type": "text" + }, + { + "id": "xZMYT3ni3ok2L7lxP6yGX", + "type": "text" + }, + { + "type": "text", + "id": "xZMYT3ni3ok2L7lxP6yGX" + }, + { + "id": "_WCe-x56UysqDesPMcovo", + "type": "arrow" + } + ], + "updated": 1665354187260, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 1189, + "versionNonce": 1112378427, + "isDeleted": false, + "id": "svs0ZIIoEf9geQINc8L5R", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 925.7011718750001, + "y": 452.0143229166667, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 169, + "height": 93, + "seed": 1969047831, + "groupIds": [], + "strokeSharpness": "round", + "boundElements": [ + { + "id": "lEnBUWHkXGiRrMqpAQ7DR", + "type": "text" + }, + { + "id": "lEnBUWHkXGiRrMqpAQ7DR", + "type": "text" + }, + { + "id": "lEnBUWHkXGiRrMqpAQ7DR", + "type": "text" + }, + { + "id": "lEnBUWHkXGiRrMqpAQ7DR", + "type": "text" + }, + { + "id": "lEnBUWHkXGiRrMqpAQ7DR", + "type": "text" + }, + { + "id": "lEnBUWHkXGiRrMqpAQ7DR", + "type": "text" + }, + { + "type": "text", + "id": "lEnBUWHkXGiRrMqpAQ7DR" + }, + { + "id": "wECT1xqiaxw7G2ECloOnC", + "type": "arrow" + } + ], + "updated": 1665354057906, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 1273, + "versionNonce": 2085398773, + "isDeleted": false, + "id": "APPf-R5uuQPPULrXAaGQl", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 925.7011718750001, + "y": 557.1171875, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 169, + "height": 93, + "seed": 1676121463, + "groupIds": [], + "strokeSharpness": "round", + "boundElements": [ + { + "id": "iKQzPTb5mtu0ByF_0GqRF", + "type": "text" + }, + { + "id": "iKQzPTb5mtu0ByF_0GqRF", + "type": "text" + }, + { + "id": "iKQzPTb5mtu0ByF_0GqRF", + "type": "text" + }, + { + "id": "iKQzPTb5mtu0ByF_0GqRF", + "type": "text" + }, + { + "id": "iKQzPTb5mtu0ByF_0GqRF", + "type": "text" + }, + { + "id": "iKQzPTb5mtu0ByF_0GqRF", + "type": "text" + }, + { + "id": "iKQzPTb5mtu0ByF_0GqRF", + "type": "text" + }, + { + "type": "text", + "id": "iKQzPTb5mtu0ByF_0GqRF" + }, + { + "id": "S4SJSvhxNOOGmTdSWiyvI", + "type": "arrow" + } + ], + "updated": 1665354057906, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 472, + "versionNonce": 988171483, + "isDeleted": false, + "id": "_philqtA2msBgS2RN0gJq", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 631.6484375, + "y": 520.80078125, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 169, + "height": 93, + "seed": 1462723511, + "groupIds": [], + "strokeSharpness": "round", + "boundElements": [ + { + "id": "WlOxNA-p-slsjxP8fsP_x", + "type": "text" + }, + { + "id": "WlOxNA-p-slsjxP8fsP_x", + "type": "text" + }, + { + "id": "WlOxNA-p-slsjxP8fsP_x", + "type": "text" + }, + { + "type": "text", + "id": "WlOxNA-p-slsjxP8fsP_x" + }, + { + "id": "AB97GotmGG213cLmZEUpn", + "type": "arrow" + }, + { + "id": "tqXh-I1GblNxzaOjAhp0X", + "type": "arrow" + } + ], + "updated": 1665354057906, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 642, + "versionNonce": 118866517, + "isDeleted": false, + "id": "nJIgCOrDzHKFPTaxD6jNH", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 696.6484375, + "y": 404.693359375, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 39, + "height": 25, + "seed": 1667728823, + "groupIds": [], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354057906, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "API", + "baseline": 18, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "9B7vsP3VbZUcmy_h0fyUT", + "originalText": "API" + }, + { + "type": "text", + "version": 891, + "versionNonce": 40550549, + "isDeleted": false, + "id": "gYy1ZNZFlRjyv6QM22Mwh", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 645.1875, + "y": 268.09375, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 73, + "height": 25, + "seed": 386463097, + "groupIds": [], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354278569, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Web UI", + "baseline": 18, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "Bxgkr0odgFyw9uf9SBh9m", + "originalText": "Web UI" + }, + { + "type": "text", + "version": 1480, + "versionNonce": 2076353179, + "isDeleted": false, + "id": "gFQ7_SRIz8GTTeavtNxc1", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 318.03125, + "y": 383.376953125, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 121, + "height": 80, + "seed": 204416281, + "groupIds": [], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354301139, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "Web UI\nlakectl\nSpark/lakeFSFS\nClient SDKs", + "baseline": 74, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "2ZfD2SrM-46E8aH7dhW-L", + "originalText": "Web UI\nlakectl\nSpark/lakeFSFS\nClient SDKs" + }, + { + "type": "text", + "version": 1364, + "versionNonce": 1171190037, + "isDeleted": false, + "id": "ePEr9LdcAMy2hfkyeKgHd", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 939.2011718749999, + "y": 263.30859375, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 142, + "height": 50, + "seed": 1724102169, + "groupIds": [], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354057906, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Authentication\nAuthorization", + "baseline": 43, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "FcI_PQ6EPBwrqiPhB5Ph8", + "originalText": "Authentication\nAuthorization" + }, + { + "type": "text", + "version": 986, + "versionNonce": 2007242427, + "isDeleted": false, + "id": "xZMYT3ni3ok2L7lxP6yGX", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 967.201171875, + "y": 380.91145833333337, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 86, + "height": 25, + "seed": 1840934777, + "groupIds": [], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354057906, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Graveler", + "baseline": 18, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "5ER2G9M0ztifcYbrsZIow", + "originalText": "Graveler" + }, + { + "type": "text", + "version": 1130, + "versionNonce": 1431963253, + "isDeleted": false, + "id": "lEnBUWHkXGiRrMqpAQ7DR", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 966.201171875, + "y": 473.5143229166667, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 88, + "height": 50, + "seed": 281589721, + "groupIds": [], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354057906, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Storage \nAdapter", + "baseline": 43, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "svs0ZIIoEf9geQINc8L5R", + "originalText": "Storage Adapter" + }, + { + "type": "text", + "version": 1204, + "versionNonce": 1242007387, + "isDeleted": false, + "id": "iKQzPTb5mtu0ByF_0GqRF", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 982.201171875, + "y": 591.1171875, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 56, + "height": 25, + "seed": 1612702073, + "groupIds": [], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354057906, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Hooks", + "baseline": 18, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "APPf-R5uuQPPULrXAaGQl", + "originalText": "Hooks" + }, + { + "type": "text", + "version": 394, + "versionNonce": 1637576661, + "isDeleted": false, + "id": "WlOxNA-p-slsjxP8fsP_x", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 657.1484375, + "y": 554.80078125, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 118, + "height": 25, + "seed": 11736889, + "groupIds": [], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354057906, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "S3 gateway", + "baseline": 18, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "_philqtA2msBgS2RN0gJq", + "originalText": "S3 gateway" + }, + { + "type": "rectangle", + "version": 1587, + "versionNonce": 1349194491, + "isDeleted": false, + "id": "S6p1P0dhiH25w1GCOnTPp", + "fillStyle": "cross-hatch", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1274.0637531815069, + "y": 504.4251538793582, + "strokeColor": "#000000", + "backgroundColor": "#40c05788", + "width": 65.08084106445301, + "height": 65.08084106445301, + "seed": 1208316473, + "groupIds": [ + "p8XMXpqXhpKUaBRdzQEwH", + "0GDE3jfCf0MWKFg5Aq0E4", + "0wcYe7v3VXAclSCBbcLcS", + "9p5ZZoHV7wS9XjrQwglVX" + ], + "strokeSharpness": "sharp", + "boundElements": [ + { + "id": "S6p1P0dhiH25w1GCOnTPp", + "type": "arrow" + }, + { + "id": "wECT1xqiaxw7G2ECloOnC", + "type": "arrow" + } + ], + "updated": 1665354780006, + "link": null, + "locked": false + }, + { + "type": "ellipse", + "version": 1371, + "versionNonce": 745430933, + "isDeleted": false, + "id": "tdjFsnYUHbm7qID9T53R7", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1287.6766083591658, + "y": 515.4922499048741, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 39.10563151041674, + "height": 10.753995455228363, + "seed": 988588503, + "groupIds": [ + "0wcYe7v3VXAclSCBbcLcS", + "9p5ZZoHV7wS9XjrQwglVX" + ], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354780006, + "link": null, + "locked": false + }, + { + "type": "line", + "version": 1989, + "versionNonce": 1608044603, + "isDeleted": false, + "id": "i5RrCViQzPUN9hFfmBwDj", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1288.0345247754321, + "y": 521.3707179537521, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 38.295773237179446, + "height": 40.48662140675077, + "seed": 921486105, + "groupIds": [ + "0wcYe7v3VXAclSCBbcLcS", + "9p5ZZoHV7wS9XjrQwglVX" + ], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354780006, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 3.8452774439103905, + 32.14685684595355 + ], + [ + 6.768312737880933, + 37.98883103590748 + ], + [ + 20.34867663261207, + 40.48662140675077 + ], + [ + 32.537268066406114, + 38.400380608974274 + ], + [ + 35.36686823918285, + 31.944173177083314 + ], + [ + 38.295773237179446, + 0.09767190004004078 + ] + ] + }, + { + "type": "ellipse", + "version": 1381, + "versionNonce": 1124574453, + "isDeleted": false, + "id": "n4YLocvG2ZKKd-4yTwDUV", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1304.8048128613698, + "y": 531.6332171321251, + "strokeColor": "#000000", + "backgroundColor": "#000", + "width": 4.69818115234375, + "height": 4.69818115234375, + "seed": 226973431, + "groupIds": [ + "0wcYe7v3VXAclSCBbcLcS", + "9p5ZZoHV7wS9XjrQwglVX" + ], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354780006, + "link": null, + "locked": false + }, + { + "type": "line", + "version": 2067, + "versionNonce": 241766619, + "isDeleted": false, + "id": "CDm-90FSnkFU14GpRbSiW", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1307.2949312695728, + "y": 534.2062075496056, + "strokeColor": "#000000", + "backgroundColor": "#000", + "width": 23.24691772460949, + "height": 11.53113708496096, + "seed": 1920399353, + "groupIds": [ + "0wcYe7v3VXAclSCBbcLcS", + "9p5ZZoHV7wS9XjrQwglVX" + ], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354780006, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 7.0229309082030795, + 7.4353179931640625 + ], + [ + 17.00493774414076, + 11.53113708496096 + ], + [ + 22.923687744140693, + 10.143841552734386 + ], + [ + 23.24691772460949, + 5.890612792968767 + ], + [ + 17.962628173828193, + 1.7561248779296932 + ] + ] + }, + { + "type": "text", + "version": 1900, + "versionNonce": 890322517, + "isDeleted": false, + "id": "gvnBdXocomaSYbJ15dp6t", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1222.1041737137334, + "y": 573.5953984820812, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 169, + "height": 75, + "seed": 1318019095, + "groupIds": [ + "9p5ZZoHV7wS9XjrQwglVX" + ], + "strokeSharpness": "sharp", + "boundElements": [], + "updated": 1665354780006, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Object Store\nBucket\n(S3, GCS, Azure)", + "baseline": 68, + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "Object Store\nBucket\n(S3, GCS, Azure)" + }, + { + "type": "text", + "version": 2360, + "versionNonce": 1315454331, + "isDeleted": false, + "id": "Dstrr1oxpMuw-m4JGSQNd", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1182.6666737137334, + "y": 379.8079656063978, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 248, + "height": 75, + "seed": 4475417, + "groupIds": [ + "3vUy3YGgxOz_BM44Ug3Wm" + ], + "strokeSharpness": "sharp", + "boundElements": [], + "updated": 1665354780006, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Key Value\nStore\n(PostgreSQL, DynamoDB)", + "baseline": 68, + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "Key Value\nStore\n(PostgreSQL, DynamoDB)" + }, + { + "type": "rectangle", + "version": 2053, + "versionNonce": 1499507637, + "isDeleted": false, + "id": "QrK4-de5GsjEjuLVX52yz", + "fillStyle": "cross-hatch", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1274.1262531815069, + "y": 308.92678350367504, + "strokeColor": "#000000", + "backgroundColor": "#4c6ef588", + "width": 65.08084106445301, + "height": 65.08084106445301, + "seed": 1284489207, + "groupIds": [ + "ViKZFsTx2amo6qdF5pqIB", + "KLrkluwnW3w9OX_UyMG76", + "gJO33xk2S3V-m-z0IgTNC", + "3vUy3YGgxOz_BM44Ug3Wm" + ], + "strokeSharpness": "sharp", + "boundElements": [ + { + "id": "QrK4-de5GsjEjuLVX52yz", + "type": "arrow" + }, + { + "id": "KcyC9x5YsNNHh13B4n1nx", + "type": "arrow" + } + ], + "updated": 1665354780006, + "link": null, + "locked": false + }, + { + "type": "line", + "version": 2902, + "versionNonce": 594369211, + "isDeleted": false, + "id": "-EDC7qSOsy8GhwdGINNIA", + "fillStyle": "cross-hatch", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 6.070517456686609, + "x": 1324.9076059293707, + "y": 358.25696050529285, + "strokeColor": "#000000", + "backgroundColor": "#fd7e14", + "width": 4.515147036494501, + "height": 6.809419856658472, + "seed": 1430626041, + "groupIds": [ + "eGSGWFEsoUXpvRXdhwmB4", + "AcdY7zGYermAUxB_oNgFC", + "gJO33xk2S3V-m-z0IgTNC", + "3vUy3YGgxOz_BM44Ug3Wm" + ], + "strokeSharpness": "sharp", + "boundElements": [], + "updated": 1665354780006, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 4.515147036494501, + 6.809419856658472 + ] + ] + }, + { + "type": "line", + "version": 2795, + "versionNonce": 414646901, + "isDeleted": false, + "id": "Vgf2G2dX5nG0xUedD_BMI", + "fillStyle": "cross-hatch", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0.029928014204294584, + "x": 1328.4106760236623, + "y": 316.08795953786733, + "strokeColor": "#000000", + "backgroundColor": "#fd7e14", + "width": 4.878221980723982, + "height": 7.187766181342914, + "seed": 1117956375, + "groupIds": [ + "eGSGWFEsoUXpvRXdhwmB4", + "AcdY7zGYermAUxB_oNgFC", + "gJO33xk2S3V-m-z0IgTNC", + "3vUy3YGgxOz_BM44Ug3Wm" + ], + "strokeSharpness": "sharp", + "boundElements": [], + "updated": 1665354780006, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -4.878221980723982, + 7.187766181342914 + ] + ] + }, + { + "type": "line", + "version": 3402, + "versionNonce": 872958811, + "isDeleted": false, + "id": "v9QeKKJVHsGUaok6amhuc", + "fillStyle": "cross-hatch", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 5.765434113477622, + "x": 1332.629635512782, + "y": 361.39783418032465, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 7.027484543816502, + "height": 5.025822775075784, + "seed": 755587033, + "groupIds": [ + "eGSGWFEsoUXpvRXdhwmB4", + "AcdY7zGYermAUxB_oNgFC", + "gJO33xk2S3V-m-z0IgTNC", + "3vUy3YGgxOz_BM44Ug3Wm" + ], + "strokeSharpness": "sharp", + "boundElements": [], + "updated": 1665354780006, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -2.6558630674341366, + 5.025822775075784 + ], + [ + -7.027484543816502, + 2.0346398876757292 + ] + ] + }, + { + "type": "line", + "version": 3619, + "versionNonce": 670624725, + "isDeleted": false, + "id": "Y6DGEH9GO3DBRnS6V3Bmu", + "fillStyle": "cross-hatch", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 2.48666424209895, + "x": 1285.537585021598, + "y": 315.4442679408971, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 6.480608834450265, + "height": 4.428740972665685, + "seed": 79392311, + "groupIds": [ + "eGSGWFEsoUXpvRXdhwmB4", + "AcdY7zGYermAUxB_oNgFC", + "gJO33xk2S3V-m-z0IgTNC", + "3vUy3YGgxOz_BM44Ug3Wm" + ], + "strokeSharpness": "sharp", + "boundElements": [], + "updated": 1665354780006, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -3.0517914343207093, + 4.428740972665685 + ], + [ + -6.4806088344502655, + 0.4183784164032155 + ] + ] + }, + { + "type": "line", + "version": 2996, + "versionNonce": 557590523, + "isDeleted": false, + "id": "aQCrDAYHZkiHVAz3R-cLD", + "fillStyle": "cross-hatch", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 6.070517456686609, + "x": 1282.3188097297736, + "y": 316.7779651160744, + "strokeColor": "#000000", + "backgroundColor": "#fd7e14", + "width": 4.515147036494501, + "height": 6.809419856658472, + "seed": 1235416249, + "groupIds": [ + "eGSGWFEsoUXpvRXdhwmB4", + "AcdY7zGYermAUxB_oNgFC", + "gJO33xk2S3V-m-z0IgTNC", + "3vUy3YGgxOz_BM44Ug3Wm" + ], + "strokeSharpness": "sharp", + "boundElements": [], + "updated": 1665354780006, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 4.515147036494501, + 6.809419856658472 + ] + ] + }, + { + "type": "line", + "version": 2859, + "versionNonce": 1039575349, + "isDeleted": false, + "id": "jI92EQqdfBMt7di-mknre", + "fillStyle": "cross-hatch", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0.06885648930104615, + "x": 1287.3425001592234, + "y": 358.0083078048653, + "strokeColor": "#000000", + "backgroundColor": "#fd7e14", + "width": 4.878221980723982, + "height": 7.187766181342914, + "seed": 1304334167, + "groupIds": [ + "eGSGWFEsoUXpvRXdhwmB4", + "AcdY7zGYermAUxB_oNgFC", + "gJO33xk2S3V-m-z0IgTNC", + "3vUy3YGgxOz_BM44Ug3Wm" + ], + "strokeSharpness": "sharp", + "boundElements": [], + "updated": 1665354780006, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -4.878221980723982, + 7.187766181342914 + ] + ] + }, + { + "type": "line", + "version": 3628, + "versionNonce": 1091268763, + "isDeleted": false, + "id": "1Rmd-DXZ6u1CzIxIxpIX-", + "fillStyle": "cross-hatch", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 3.854199750177644, + "x": 1331.6476757175305, + "y": 314.65376079179435, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 6.480608834450265, + "height": 4.428740972665685, + "seed": 1588983193, + "groupIds": [ + "eGSGWFEsoUXpvRXdhwmB4", + "AcdY7zGYermAUxB_oNgFC", + "gJO33xk2S3V-m-z0IgTNC", + "3vUy3YGgxOz_BM44Ug3Wm" + ], + "strokeSharpness": "sharp", + "boundElements": [], + "updated": 1665354780006, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -3.0517914343207093, + 4.428740972665685 + ], + [ + -6.4806088344502655, + 0.4183784164032155 + ] + ] + }, + { + "type": "line", + "version": 3622, + "versionNonce": 1008056981, + "isDeleted": false, + "id": "grDakEOTelrLa7WPFOrwt", + "fillStyle": "cross-hatch", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0.663921886409196, + "x": 1285.56544494387, + "y": 362.2619734878205, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 6.480608834450265, + "height": 4.428740972665685, + "seed": 134253687, + "groupIds": [ + "eGSGWFEsoUXpvRXdhwmB4", + "AcdY7zGYermAUxB_oNgFC", + "gJO33xk2S3V-m-z0IgTNC", + "3vUy3YGgxOz_BM44Ug3Wm" + ], + "strokeSharpness": "sharp", + "boundElements": [], + "updated": 1665354780006, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -3.0517914343207093, + 4.428740972665685 + ], + [ + -6.4806088344502655, + 0.4183784164032155 + ] + ] + }, + { + "type": "line", + "version": 4551, + "versionNonce": 86549819, + "isDeleted": false, + "id": "Yu5RqzMvmG_q5RNZGObUb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1293.9760669426707, + "y": 326.56302247891716, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 23.135415315317864, + "height": 36.920965026381495, + "seed": 1601559161, + "groupIds": [ + "pWdcZI6tf4oqswgXag4nZ", + "eGSGWFEsoUXpvRXdhwmB4", + "AcdY7zGYermAUxB_oNgFC", + "gJO33xk2S3V-m-z0IgTNC", + "3vUy3YGgxOz_BM44Ug3Wm" + ], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354780006, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 25.503446923456124 + ], + [ + 0.40532440068439735, + 30.11539925866262 + ], + [ + 3.1876357067575456, + 31.80990219489879 + ], + [ + 7.354871715271549, + 33.14980858335201 + ], + [ + 11.79869252961072, + 33.49583129123406 + ], + [ + 15.592667073872917, + 33.15082359908378 + ], + [ + 19.15112117952793, + 32.29793104408936 + ], + [ + 22.700411705907744, + 29.933635302086913 + ], + [ + 22.943034924407762, + 25.503446923456124 + ], + [ + 23.135415315317864, + 3.4738605093386736 + ], + [ + 22.843298221964968, + -0.11105662756083756 + ], + [ + 19.96759931086617, + -2.0234583686940315 + ], + [ + 16.74018432777816, + -3.10679842415807 + ], + [ + 12.544405636380267, + -3.4251337351474422 + ], + [ + 9.881394068972043, + -3.4158696025941406 + ], + [ + 4.21068157261921, + -2.726823717701885 + ], + [ + 0, + 0 + ] + ] + }, + { + "type": "ellipse", + "version": 2708, + "versionNonce": 990617589, + "isDeleted": false, + "id": "5N1mH9nR7sZUzHHqQQx9k", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1293.8908851715294, + "y": 323.01507548738044, + "strokeColor": "#000000", + "backgroundColor": "#ffffff", + "width": 23.09445309598474, + "height": 6.279263528942145, + "seed": 1598416279, + "groupIds": [ + "pWdcZI6tf4oqswgXag4nZ", + "eGSGWFEsoUXpvRXdhwmB4", + "AcdY7zGYermAUxB_oNgFC", + "gJO33xk2S3V-m-z0IgTNC", + "3vUy3YGgxOz_BM44Ug3Wm" + ], + "strokeSharpness": "sharp", + "boundElements": [ + { + "id": "qDAjBIpEBo14rHQOTksb5", + "type": "arrow" + }, + { + "id": "k87rpiXpFp_U0HYO0AxcM", + "type": "arrow" + } + ], + "updated": 1665354780006, + "link": null, + "locked": false + }, + { + "type": "line", + "version": 2549, + "versionNonce": 1200018043, + "isDeleted": false, + "id": "i0C0dBGFwbpjXPU7tEH70", + "fillStyle": "cross-hatch", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1294.290593207425, + "y": 335.6774826586258, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 22.7078851177541, + "height": 2.9175197700512814, + "seed": 212214617, + "groupIds": [ + "AcdY7zGYermAUxB_oNgFC", + "gJO33xk2S3V-m-z0IgTNC", + "3vUy3YGgxOz_BM44Ug3Wm" + ], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354780006, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 0.6822069967714703, + 0.7376254855918456 + ], + [ + 2.3335499504986355, + 1.5019708109206908 + ], + [ + 4.313367541800834, + 1.9645855665289391 + ], + [ + 8.191658726607782, + 2.5738270010049926 + ], + [ + 11.917316337340536, + 2.6118955005120905 + ], + [ + 15.218956419281389, + 2.402545763947514 + ], + [ + 18.07580483939641, + 2.022006211239024 + ], + [ + 20.76827744650372, + 1.311150431337028 + ], + [ + 22.157553094084978, + 0.515659662955493 + ], + [ + 22.707885117754103, + -0.3056242695391904 + ] + ] + }, + { + "type": "line", + "version": 2577, + "versionNonce": 1994516149, + "isDeleted": false, + "id": "yaYPo2SPPV5_7S6L6vQCg", + "fillStyle": "cross-hatch", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1293.6484666284866, + "y": 346.41196748549527, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 22.7078851177541, + "height": 2.9175197700512814, + "seed": 314776247, + "groupIds": [ + "AcdY7zGYermAUxB_oNgFC", + "gJO33xk2S3V-m-z0IgTNC", + "3vUy3YGgxOz_BM44Ug3Wm" + ], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354780006, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 0.6822069967714703, + 0.7376254855918456 + ], + [ + 2.3335499504986355, + 1.5019708109206908 + ], + [ + 4.313367541800834, + 1.9645855665289391 + ], + [ + 8.191658726607782, + 2.5738270010049926 + ], + [ + 11.917316337340536, + 2.6118955005120905 + ], + [ + 15.218956419281389, + 2.402545763947514 + ], + [ + 18.07580483939641, + 2.022006211239024 + ], + [ + 20.76827744650372, + 1.311150431337028 + ], + [ + 22.157553094084978, + 0.515659662955493 + ], + [ + 22.707885117754103, + -0.3056242695391904 + ] + ] + }, + { + "type": "arrow", + "version": 6012, + "versionNonce": 1537912763, + "isDeleted": false, + "id": "qDAjBIpEBo14rHQOTksb5", + "fillStyle": "cross-hatch", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 6.034244644020102, + "x": 1293.570274904469, + "y": 333.0746597642921, + "strokeColor": "#000000", + "backgroundColor": "#fd7e14", + "width": 9.312361834934453, + "height": 17.671409793681782, + "seed": 1117409337, + "groupIds": [ + "AcdY7zGYermAUxB_oNgFC", + "gJO33xk2S3V-m-z0IgTNC", + "3vUy3YGgxOz_BM44Ug3Wm" + ], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354780815, + "link": null, + "locked": false, + "startBinding": { + "elementId": "5N1mH9nR7sZUzHHqQQx9k", + "focus": 0.17059876156304296, + "gap": 5.982831142860286 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -3.465638014918799, + 0.7718575351198613 + ], + [ + -5.876234540924429, + 2.2686732691115044 + ], + [ + -7.611221385428145, + 4.187007865361685 + ], + [ + -8.997800821851968, + 7.29372360223152 + ], + [ + -9.312361834934453, + 9.676626083368124 + ], + [ + -8.554263497776105, + 13.118230666911925 + ], + [ + -7.085140858725698, + 15.667973469486617 + ], + [ + -4.895857300277928, + 17.671409793681782 + ] + ] + }, + { + "type": "arrow", + "version": 6142, + "versionNonce": 224755061, + "isDeleted": false, + "id": "k87rpiXpFp_U0HYO0AxcM", + "fillStyle": "cross-hatch", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0.31086799431261625, + "x": 1316.7807046060636, + "y": 333.0966330332307, + "strokeColor": "#000000", + "backgroundColor": "#fd7e14", + "width": 10.586513682546029, + "height": 18.03828294930969, + "seed": 119319511, + "groupIds": [ + "AcdY7zGYermAUxB_oNgFC", + "gJO33xk2S3V-m-z0IgTNC", + "3vUy3YGgxOz_BM44Ug3Wm" + ], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354780815, + "link": null, + "locked": false, + "startBinding": { + "elementId": "5N1mH9nR7sZUzHHqQQx9k", + "focus": -0.31376123802392564, + "gap": 5.844781649134341 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 3.9398194479572393, + 0.7878819391097368 + ], + [ + 6.68024272166653, + 2.31577281187833 + ], + [ + 8.652616894185485, + 4.273933628848496 + ], + [ + 10.228913266236956, + 7.445147366688905 + ], + [ + 10.586513682546029, + 9.877520883980232 + ], + [ + 9.724689522220247, + 13.390576039308046 + ], + [ + 8.05455608074463, + 15.993253621786636 + ], + [ + 5.565726634756559, + 18.03828294930969 + ] + ] + }, + { + "type": "arrow", + "version": 2899, + "versionNonce": 270232853, + "isDeleted": false, + "id": "KcyC9x5YsNNHh13B4n1nx", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1125.0397205887334, + "y": 343.70943497603946, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 134.44921875, + "height": 0, + "seed": 1818528151, + "groupIds": [], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354780006, + "link": null, + "locked": false, + "startBinding": { + "elementId": "ovxFkdb6JYmDVntxtXYhP", + "focus": -0.4924045350392734, + "gap": 16.183593749999943 + }, + "endBinding": { + "elementId": "QrK4-de5GsjEjuLVX52yz", + "focus": -0.06890602221680925, + "gap": 14.637313842773438 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 134.44921875, + 0 + ] + ] + }, + { + "type": "arrow", + "version": 1980, + "versionNonce": 556071835, + "isDeleted": false, + "id": "wECT1xqiaxw7G2ECloOnC", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1124.9655018387334, + "y": 535.313772100086, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 136.41075134277344, + "height": 0, + "seed": 2147214713, + "groupIds": [], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354780006, + "link": null, + "locked": false, + "startBinding": { + "elementId": "ovxFkdb6JYmDVntxtXYhP", + "focus": 0.4224560986162166, + "gap": 16.109374999999943 + }, + "endBinding": { + "elementId": "S6p1P0dhiH25w1GCOnTPp", + "focus": 0.05076155392223218, + "gap": 12.6875 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 136.41075134277344, + 0 + ] + ] + }, + { + "type": "rectangle", + "version": 571, + "versionNonce": 1719794715, + "isDeleted": false, + "id": "-2EVeASmSy6Dzai2GOLcp", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 863.2155018387333, + "y": 720.4729694209747, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 130.29506185356837, + "height": 78.10175988474508, + "seed": 67551833, + "groupIds": [], + "strokeSharpness": "round", + "boundElements": [ + { + "id": "S4SJSvhxNOOGmTdSWiyvI", + "type": "arrow" + } + ], + "updated": 1665354057906, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 939, + "versionNonce": 935307029, + "isDeleted": false, + "id": "QGA9hcyCu7CIxfyEs9-kR", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1014.1647205887334, + "y": 722.5747293057198, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 131, + "height": 76, + "seed": 515180601, + "groupIds": [], + "strokeSharpness": "round", + "boundElements": [ + { + "type": "text", + "id": "GHNC0SfzsX_EaicI6lR8W" + }, + { + "id": "90Cmc39ToPGS7gEAyoJ0m", + "type": "arrow" + } + ], + "updated": 1665354057906, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 589, + "versionNonce": 1656864955, + "isDeleted": false, + "id": "GHNC0SfzsX_EaicI6lR8W", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1039.6647205887334, + "y": 735.5747293057198, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 80, + "height": 50, + "seed": 499778169, + "groupIds": [], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354057906, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "WebHook\nServer", + "baseline": 43, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "QGA9hcyCu7CIxfyEs9-kR", + "originalText": "WebHook\nServer" + }, + { + "type": "line", + "version": 2597, + "versionNonce": 1942223989, + "isDeleted": false, + "id": "GW79IEdKEHYHBe8eryERC", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 6.239310365041726, + "x": 878.2580781443856, + "y": 743.2507145334735, + "strokeColor": "#c92a2a", + "backgroundColor": "#c92a2a", + "width": 18.43824366436583, + "height": 17.30749582081731, + "seed": 659418937, + "groupIds": [ + "s-Go0sl61eFF_N1KyhrXn", + "6rZueH22yRCRic155yH5W" + ], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354057906, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 11.207015016493163, + 0 + ], + [ + 14.485970010828552, + 1.639477497167701 + ], + [ + 18.43824366436583, + 8.146087016565971 + ], + [ + 16.16819789905669, + 17.30749582081731 + ], + [ + 0, + 0 + ] + ] + }, + { + "type": "line", + "version": 2816, + "versionNonce": 400552283, + "isDeleted": false, + "id": "CKp-X9iUrQwI9UIKMEKro", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 3.0886314529654637, + "x": 895.6849336935974, + "y": 760.4526337597035, + "strokeColor": "#40c057", + "backgroundColor": "#40c057", + "width": 18.43824366436583, + "height": 17.30749582081731, + "seed": 808877271, + "groupIds": [ + "s-Go0sl61eFF_N1KyhrXn", + "6rZueH22yRCRic155yH5W" + ], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354057906, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 11.207015016493163, + 0 + ], + [ + 14.485970010828552, + 1.639477497167701 + ], + [ + 18.43824366436583, + 8.146087016565971 + ], + [ + 16.16819789905669, + 17.30749582081731 + ], + [ + 0, + 0 + ] + ] + }, + { + "type": "line", + "version": 2735, + "versionNonce": 1263969749, + "isDeleted": false, + "id": "UyAUCreQoGs3b5R1XOskd", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 4.678603911496447, + "x": 877.9131086878907, + "y": 760.6056946708031, + "strokeColor": "#364fc7", + "backgroundColor": "#364fc7", + "width": 18.43824366436583, + "height": 17.30749582081731, + "seed": 1914544153, + "groupIds": [ + "s-Go0sl61eFF_N1KyhrXn", + "6rZueH22yRCRic155yH5W" + ], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354057907, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 11.207015016493163, + 0 + ], + [ + 14.485970010828552, + 1.639477497167701 + ], + [ + 18.43824366436583, + 8.146087016565971 + ], + [ + 16.16819789905669, + 17.30749582081731 + ], + [ + 0, + 0 + ] + ] + }, + { + "type": "line", + "version": 2934, + "versionNonce": 925830651, + "isDeleted": false, + "id": "ko_pIRQK8MO7BhRsKb3qD", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 1.549319999052873, + "x": 896.5709399155492, + "y": 743.4814283814526, + "strokeColor": "#15aabf", + "backgroundColor": "#15aabf", + "width": 18.43824366436583, + "height": 17.30749582081731, + "seed": 2017783, + "groupIds": [ + "s-Go0sl61eFF_N1KyhrXn", + "6rZueH22yRCRic155yH5W" + ], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354057907, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 11.207015016493163, + 0 + ], + [ + 14.485970010828552, + 1.639477497167701 + ], + [ + 18.43824366436583, + 8.146087016565971 + ], + [ + 16.16819789905669, + 17.30749582081731 + ], + [ + 0, + 0 + ] + ] + }, + { + "type": "text", + "version": 2340, + "versionNonce": 1636639541, + "isDeleted": false, + "id": "C1z4kYjS5cqqozcVs0TUd", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 914.0789195264196, + "y": 748.7180603534874, + "strokeColor": "#000000", + "backgroundColor": "#364fc7", + "width": 66, + "height": 25, + "seed": 763639033, + "groupIds": [ + "6rZueH22yRCRic155yH5W" + ], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354057907, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Airflow", + "baseline": 18, + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "Airflow" + }, + { + "type": "arrow", + "version": 501, + "versionNonce": 598840987, + "isDeleted": false, + "id": "S4SJSvhxNOOGmTdSWiyvI", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1000.8877577080685, + "y": 651.1171875, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 76.4718001322866, + "height": 66.55519805571976, + "seed": 1202091319, + "groupIds": [], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354057907, + "link": null, + "locked": false, + "startBinding": { + "elementId": "APPf-R5uuQPPULrXAaGQl", + "focus": -0.3278195400237206, + "gap": 1 + }, + "endBinding": { + "elementId": "-2EVeASmSy6Dzai2GOLcp", + "focus": -0.47296661320585337, + "gap": 2.8005838652548505 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -76.4718001322866, + 66.55519805571976 + ] + ] + }, + { + "type": "arrow", + "version": 435, + "versionNonce": 1523381397, + "isDeleted": false, + "id": "90Cmc39ToPGS7gEAyoJ0m", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1028.9420643387334, + "y": 649.4946511807198, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 49.6228133264749, + "height": 71.74441315406978, + "seed": 1476473241, + "groupIds": [], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354057907, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": { + "elementId": "QGA9hcyCu7CIxfyEs9-kR", + "focus": 0.284443406640884, + "gap": 1.3356649709302246 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 49.6228133264749, + 71.74441315406978 + ] + ] + }, + { + "type": "arrow", + "version": 725, + "versionNonce": 1056310715, + "isDeleted": false, + "id": "qlZi2lbDur0dqp82LYO_L", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 618.9576893387333, + "y": 279.30927731586377, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 146.6601562499999, + "height": 2.02734375, + "seed": 1645838231, + "groupIds": [], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354290661, + "link": null, + "locked": false, + "startBinding": { + "elementId": "Bxgkr0odgFyw9uf9SBh9m", + "focus": 0.012381923951955132, + "gap": 11.729810661266697 + }, + "endBinding": { + "elementId": "c28Qe0SCzKMZd3JP8Kk3b", + "focus": -0.030587254493153675, + "gap": 13.949970758483033 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -146.6601562499999, + -2.02734375 + ] + ] + }, + { + "type": "text", + "version": 379, + "versionNonce": 599433083, + "isDeleted": false, + "id": "EdJsglDp3VgseBHeDcM06", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 298.0240955887333, + "y": 194.4634011807198, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 104, + "height": 25, + "seed": 100125529, + "groupIds": [], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354359520, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Web Users", + "baseline": 18, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Web Users" + }, + { + "type": "text", + "version": 629, + "versionNonce": 130473301, + "isDeleted": false, + "id": "ZTIEx8NH_vfxlwKr_MrOM", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 298.8365955887333, + "y": 507.66261993071976, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 115, + "height": 25, + "seed": 1796789593, + "groupIds": [], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354315695, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Applications", + "baseline": 18, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Applications" + }, + { + "type": "text", + "version": 717, + "versionNonce": 2085277173, + "isDeleted": false, + "id": "iuEBgNrxLinbhXOGKd74q", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 298.0240955887333, + "y": 350.2759011807198, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 137, + "height": 25, + "seed": 489058615, + "groupIds": [], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354301139, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "lakeFS clients", + "baseline": 18, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "lakeFS clients" + }, + { + "type": "text", + "version": 565, + "versionNonce": 203481403, + "isDeleted": false, + "id": "6tgg9ZzYCBwT1BVPy4fTj", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 312.19140625, + "y": 543.07421875, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 130, + "height": 100, + "seed": 309086487, + "groupIds": [], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354315695, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "Boto S3 Router\nSpark/S3A\nKafka\nTrino\nmlflow and etc", + "baseline": 94, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "LFEQGiwWugw-bHxiMcZeO", + "originalText": "Boto S3 Router\nSpark/S3A\nKafka\nTrino\nmlflow and etc" + }, + { + "type": "arrow", + "version": 1560, + "versionNonce": 2145815675, + "isDeleted": false, + "id": "AB97GotmGG213cLmZEUpn", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 475.5631580887333, + "y": 570.0230638987974, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 138.765625, + "height": 0, + "seed": 1979912921, + "groupIds": [], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354323419, + "link": null, + "locked": false, + "startBinding": { + "elementId": "LFEQGiwWugw-bHxiMcZeO", + "focus": -0.4191119063855012, + "gap": 13.871751838733303 + }, + "endBinding": { + "elementId": "_philqtA2msBgS2RN0gJq", + "focus": -0.058543712877364124, + "gap": 17.319654411266697 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 138.765625, + 0 + ] + ] + }, + { + "type": "arrow", + "version": 912, + "versionNonce": 771428981, + "isDeleted": false, + "id": "f4fx7Okaga8CbENsmpkmP", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 477.1725330887333, + "y": 419.82416426602776, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 138.92578125, + "height": 0, + "seed": 1508910009, + "groupIds": [], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354311400, + "link": null, + "locked": false, + "startBinding": { + "elementId": "2ZfD2SrM-46E8aH7dhW-L", + "focus": -0.07895086353271633, + "gap": 14.141283088733303 + }, + "endBinding": { + "elementId": "9B7vsP3VbZUcmy_h0fyUT", + "focus": -0.056576449269414304, + "gap": 15.550123161266697 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 138.92578125, + 0 + ] + ] + }, + { + "type": "line", + "version": 162, + "versionNonce": 363053269, + "isDeleted": false, + "id": "EWRSqhwZ2v-na6UAj8dLs", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 530.7819080887333, + "y": 118.75636993071981, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 0, + "height": 699.48046875, + "seed": 341512663, + "groupIds": [], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354057907, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 699.48046875 + ] + ] + }, + { + "type": "rectangle", + "version": 1055, + "versionNonce": 1020257781, + "isDeleted": false, + "id": "c28Qe0SCzKMZd3JP8Kk3b", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 295.8950993498263, + "y": 228.874571730831, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 162.45246298042406, + "height": 97.2259675748086, + "seed": 151848981, + "groupIds": [ + "R-fNoTpX4maAyiy5bwymb" + ], + "strokeSharpness": "sharp", + "boundElements": [ + { + "id": "qlZi2lbDur0dqp82LYO_L", + "type": "arrow" + } + ], + "updated": 1665354278569, + "link": null, + "locked": false + }, + { + "type": "line", + "version": 838, + "versionNonce": 774463317, + "isDeleted": false, + "id": "D6Vjp_tb3fsyH-ctJK1OH", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 294.52875384721625, + "y": 242.48792166413278, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 163.66954523384825, + "height": 0, + "seed": 540471227, + "groupIds": [ + "R-fNoTpX4maAyiy5bwymb" + ], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354278570, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 163.66954523384825, + 0 + ] + ] + }, + { + "type": "ellipse", + "version": 658, + "versionNonce": 723430523, + "isDeleted": false, + "id": "mFwVUZ5MZ2PAuQg7jQHzl", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 301.59630788569126, + "y": 234.30080117438402, + "strokeColor": "#000000", + "backgroundColor": "#fa5252", + "width": 6.354044670437319, + "height": 6.354044670437319, + "seed": 1455242613, + "groupIds": [ + "R-fNoTpX4maAyiy5bwymb" + ], + "strokeSharpness": "sharp", + "boundElements": [], + "updated": 1665354278570, + "link": null, + "locked": false + }, + { + "type": "ellipse", + "version": 703, + "versionNonce": 483175605, + "isDeleted": false, + "id": "rClxA705H32TIXIuT8Bzz", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 314.63314026398604, + "y": 234.30080117438402, + "strokeColor": "#000000", + "backgroundColor": "#fab005", + "width": 6.354044670437319, + "height": 6.354044670437319, + "seed": 1826046043, + "groupIds": [ + "R-fNoTpX4maAyiy5bwymb" + ], + "strokeSharpness": "sharp", + "boundElements": [], + "updated": 1665354278570, + "link": null, + "locked": false + }, + { + "type": "ellipse", + "version": 761, + "versionNonce": 1697211675, + "isDeleted": false, + "id": "nXSKBLbL1yLdBl6mmo2b4", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 328.2425294563652, + "y": 234.87335798846848, + "strokeColor": "#000000", + "backgroundColor": "#40c057", + "width": 6.354044670437319, + "height": 6.354044670437319, + "seed": 1602209493, + "groupIds": [ + "R-fNoTpX4maAyiy5bwymb" + ], + "strokeSharpness": "sharp", + "boundElements": [], + "updated": 1665354278570, + "link": null, + "locked": false + }, + { + "type": "ellipse", + "version": 1040, + "versionNonce": 1751076373, + "isDeleted": false, + "id": "Mh9x2szX1497_0haYDzCg", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 90, + "angle": 0, + "x": 348.6019088665661, + "y": 255.2648863311597, + "strokeColor": "#000000", + "backgroundColor": "#04aaf7", + "width": 54.2680166090767, + "height": 54.2680166090767, + "seed": 778337531, + "groupIds": [ + "R-fNoTpX4maAyiy5bwymb" + ], + "strokeSharpness": "sharp", + "boundElements": [], + "updated": 1665354278570, + "link": null, + "locked": false + }, + { + "type": "line", + "version": 1657, + "versionNonce": 1251215803, + "isDeleted": false, + "id": "TlUYtKTx8Yat7J4E-5VYz", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 382.9996450595104, + "y": 275.87488710290137, + "strokeColor": "#087f5b", + "backgroundColor": "#40c057", + "width": 35.85610336609899, + "height": 31.04786919388095, + "seed": 904537141, + "groupIds": [ + "R-fNoTpX4maAyiy5bwymb" + ], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354278570, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -2.325388564058283, + -0.5267206656258894 + ], + [ + -9.619125978041163, + -7.966925549111279 + ], + [ + -14.427821284761738, + -5.522853506520872 + ], + [ + -16.020885987601655, + 3.0148697513649148 + ], + [ + -14.315022585758907, + 8.56196563161751 + ], + [ + -22.13457547355497, + 11.288130750359024 + ], + [ + -21.85344640834797, + 17.331093366033496 + ], + [ + -15.72760937019428, + 16.958642351427752 + ], + [ + -11.045595679276936, + 12.039644336042855 + ], + [ + -4.598716190115264, + 22.697473369376752 + ], + [ + -0.5275508384131768, + 23.08094364476967 + ], + [ + -4.798283119120274, + 6.098058919610197 + ], + [ + 1.7613950690442115, + 5.522853506520834 + ], + [ + 4.017369049100754, + 7.4534279964299595 + ], + [ + 11.73280006089421, + 7.4534279964299595 + ], + [ + 13.721527892544017, + 0.8066098896195579 + ], + [ + 5.362276614134478, + 1.4104653807555212 + ], + [ + 6.969224233774734, + -7.316789162669303 + ], + [ + 3.1410099260787536, + -6.790068497043413 + ], + [ + -0.30195344040758026, + -1.1724493477530322 + ], + [ + 0, + 0 + ] + ] + }, + { + "type": "line", + "version": 1077, + "versionNonce": 1607910261, + "isDeleted": false, + "id": "U4TbV5DX0XCfbSiVt06V3", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 90, + "angle": 0, + "x": 349.9472493966725, + "y": 281.89429122810816, + "strokeColor": "#000000", + "backgroundColor": "#99bcff", + "width": 53.473960938857935, + "height": 0, + "seed": 274802075, + "groupIds": [ + "R-fNoTpX4maAyiy5bwymb" + ], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354278570, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 53.473960938857935, + 0 + ] + ] + }, + { + "type": "line", + "version": 3284, + "versionNonce": 1082202715, + "isDeleted": false, + "id": "QCBQ4txik2LHCSiGrJ3dp", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 90, + "angle": 0, + "x": 356.4199106665164, + "y": 262.28761283303623, + "strokeColor": "#000000", + "backgroundColor": "#99bcff", + "width": 37.243798848241454, + "height": 7.255009908906467, + "seed": 2111952277, + "groupIds": [ + "R-fNoTpX4maAyiy5bwymb" + ], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354278570, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 0.9812141829093962, + 2.8919681956901635 + ], + [ + 5.212785296889474, + 5.318302940240559 + ], + [ + 10.84355342442342, + 6.787676566209217 + ], + [ + 19.664854934769295, + 6.921573984780089 + ], + [ + 29.959011086092513, + 5.9860900906379 + ], + [ + 35.97091461134096, + 2.582820802133418 + ], + [ + 37.243798848241454, + -0.33343592412637807 + ] + ] + }, + { + "type": "ellipse", + "version": 1101, + "versionNonce": 1467518165, + "isDeleted": false, + "id": "fLYDxkyzzy0bAgkBtuAFo", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 90, + "angle": 0, + "x": 366.67630875020285, + "y": 253.50864135942476, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 19.72596765221649, + "height": 56.93834267864238, + "seed": 704625211, + "groupIds": [ + "R-fNoTpX4maAyiy5bwymb" + ], + "strokeSharpness": "sharp", + "boundElements": [], + "updated": 1665354278570, + "link": null, + "locked": false + }, + { + "type": "line", + "version": 3489, + "versionNonce": 1673729787, + "isDeleted": false, + "id": "Vv2w5sDYg4vDitoFBaAJs", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 90, + "angle": 0, + "x": 358.34564314934124, + "y": 302.60364451298426, + "strokeColor": "#000000", + "backgroundColor": "#99bcff", + "width": 37.243798848241454, + "height": 7.489841737098479, + "seed": 1117543157, + "groupIds": [ + "R-fNoTpX4maAyiy5bwymb" + ], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354278570, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 5.212785296889474, + -5.490446992146268 + ], + [ + 10.84355342442342, + -7.007381641354876 + ], + [ + 19.664854934769295, + -7.145613082344516 + ], + [ + 29.959011086092513, + -6.179849230509038 + ], + [ + 35.97091461134096, + -2.666422139481399 + ], + [ + 37.243798848241454, + 0.3442286547539627 + ] + ] + }, + { + "type": "rectangle", + "version": 188, + "versionNonce": 36430203, + "isDeleted": false, + "id": "ovxFkdb6JYmDVntxtXYhP", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 910.8248768387333, + "y": 237.4009011807198, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 198.0312500000001, + "height": 418.87109374999994, + "seed": 1940931643, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElements": [ + { + "id": "Bv7_JtCztVbjCF9lOPXMj", + "type": "arrow" + }, + { + "id": "tqXh-I1GblNxzaOjAhp0X", + "type": "arrow" + }, + { + "id": "wECT1xqiaxw7G2ECloOnC", + "type": "arrow" + }, + { + "id": "KcyC9x5YsNNHh13B4n1nx", + "type": "arrow" + } + ], + "updated": 1665354225422, + "link": null, + "locked": false + }, + { + "type": "arrow", + "version": 158, + "versionNonce": 1923373915, + "isDeleted": false, + "id": "Bv7_JtCztVbjCF9lOPXMj", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 815.5475330887333, + "y": 417.6782449307198, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 77.0703125, + "height": 0, + "seed": 909377717, + "groupIds": [], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354057907, + "link": null, + "locked": false, + "startBinding": { + "elementId": "9B7vsP3VbZUcmy_h0fyUT", + "focus": 0.010427646359565883, + "gap": 14.899095588733303 + }, + "endBinding": { + "elementId": "ovxFkdb6JYmDVntxtXYhP", + "focus": 0.1392227993770456, + "gap": 18.207031250000057 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 77.0703125, + 0 + ] + ] + }, + { + "type": "arrow", + "version": 300, + "versionNonce": 1021696981, + "isDeleted": false, + "id": "tqXh-I1GblNxzaOjAhp0X", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 811.9225330887333, + "y": 564.5649636807198, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 78.66796875, + "height": 0, + "seed": 140186005, + "groupIds": [], + "strokeSharpness": "round", + "boundElements": [], + "updated": 1665354057907, + "link": null, + "locked": false, + "startBinding": { + "elementId": "_philqtA2msBgS2RN0gJq", + "focus": -0.05883478643613427, + "gap": 11.274095588733303 + }, + "endBinding": { + "elementId": "ovxFkdb6JYmDVntxtXYhP", + "focus": -0.5621228935662265, + "gap": 20.234375000000057 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 78.66796875, + 0 + ] + ] + } + ], + "appState": { + "gridSize": null, + "viewBackgroundColor": "#ffffff" + }, + "files": {} +} \ No newline at end of file diff --git a/v1.46/assets/img/architecture.png b/v1.46/assets/img/architecture.png new file mode 100644 index 000000000..ee6136d76 Binary files /dev/null and b/v1.46/assets/img/architecture.png differ diff --git a/v1.46/assets/img/azure_postgres_conn.png b/v1.46/assets/img/azure_postgres_conn.png new file mode 100644 index 000000000..cfd401583 Binary files /dev/null and b/v1.46/assets/img/azure_postgres_conn.png differ diff --git a/v1.46/assets/img/branching_1.png b/v1.46/assets/img/branching_1.png new file mode 100644 index 000000000..e258a4117 Binary files /dev/null and b/v1.46/assets/img/branching_1.png differ diff --git a/v1.46/assets/img/branching_2.png b/v1.46/assets/img/branching_2.png new file mode 100644 index 000000000..c2f87c57a Binary files /dev/null and b/v1.46/assets/img/branching_2.png differ diff --git a/v1.46/assets/img/branching_3.png b/v1.46/assets/img/branching_3.png new file mode 100644 index 000000000..c6b153ab5 Binary files /dev/null and b/v1.46/assets/img/branching_3.png differ diff --git a/v1.46/assets/img/branching_4.png b/v1.46/assets/img/branching_4.png new file mode 100644 index 000000000..d34bd2d6f Binary files /dev/null and b/v1.46/assets/img/branching_4.png differ diff --git a/v1.46/assets/img/branching_6.png b/v1.46/assets/img/branching_6.png new file mode 100644 index 000000000..69556c739 Binary files /dev/null and b/v1.46/assets/img/branching_6.png differ diff --git a/v1.46/assets/img/branching_7.png b/v1.46/assets/img/branching_7.png new file mode 100644 index 000000000..93bb84bca Binary files /dev/null and b/v1.46/assets/img/branching_7.png differ diff --git a/v1.46/assets/img/branching_8.png b/v1.46/assets/img/branching_8.png new file mode 100644 index 000000000..212a5435b Binary files /dev/null and b/v1.46/assets/img/branching_8.png differ diff --git a/v1.46/assets/img/catalog_export_athena_aws_ui_sql.png b/v1.46/assets/img/catalog_export_athena_aws_ui_sql.png new file mode 100644 index 000000000..25fd7b06a Binary files /dev/null and b/v1.46/assets/img/catalog_export_athena_aws_ui_sql.png differ diff --git a/v1.46/assets/img/cloudera/ClouderaManager.png b/v1.46/assets/img/cloudera/ClouderaManager.png new file mode 100644 index 000000000..fc96e7164 Binary files /dev/null and b/v1.46/assets/img/cloudera/ClouderaManager.png differ diff --git a/v1.46/assets/img/cloudera/ManagementConsole.png b/v1.46/assets/img/cloudera/ManagementConsole.png new file mode 100644 index 000000000..3c91a38f7 Binary files /dev/null and b/v1.46/assets/img/cloudera/ManagementConsole.png differ diff --git a/v1.46/assets/img/cloudera/hadoopFileSystems.png b/v1.46/assets/img/cloudera/hadoopFileSystems.png new file mode 100644 index 000000000..35501d782 Binary files /dev/null and b/v1.46/assets/img/cloudera/hadoopFileSystems.png differ diff --git a/v1.46/assets/img/cloudera/spark_on_yarn.png b/v1.46/assets/img/cloudera/spark_on_yarn.png new file mode 100644 index 000000000..1375a1c48 Binary files /dev/null and b/v1.46/assets/img/cloudera/spark_on_yarn.png differ diff --git a/v1.46/assets/img/cookies.png b/v1.46/assets/img/cookies.png new file mode 100644 index 000000000..682d5705a Binary files /dev/null and b/v1.46/assets/img/cookies.png differ diff --git a/v1.46/assets/img/create-repo-no-sn.png b/v1.46/assets/img/create-repo-no-sn.png new file mode 100644 index 000000000..1b6f5f591 Binary files /dev/null and b/v1.46/assets/img/create-repo-no-sn.png differ diff --git a/v1.46/assets/img/create_repo_azure.png b/v1.46/assets/img/create_repo_azure.png new file mode 100644 index 000000000..29761e623 Binary files /dev/null and b/v1.46/assets/img/create_repo_azure.png differ diff --git a/v1.46/assets/img/create_repo_local.png b/v1.46/assets/img/create_repo_local.png new file mode 100644 index 000000000..214d8d454 Binary files /dev/null and b/v1.46/assets/img/create_repo_local.png differ diff --git a/v1.46/assets/img/create_repo_s3.png b/v1.46/assets/img/create_repo_s3.png new file mode 100644 index 000000000..9c81864cf Binary files /dev/null and b/v1.46/assets/img/create_repo_s3.png differ diff --git a/v1.46/assets/img/csv_export_hooks_data.png b/v1.46/assets/img/csv_export_hooks_data.png new file mode 100644 index 000000000..e4f27ba9e Binary files /dev/null and b/v1.46/assets/img/csv_export_hooks_data.png differ diff --git a/v1.46/assets/img/databricks-arch.png b/v1.46/assets/img/databricks-arch.png new file mode 100644 index 000000000..35aa9fb11 Binary files /dev/null and b/v1.46/assets/img/databricks-arch.png differ diff --git a/v1.46/assets/img/databricks-install-package.png b/v1.46/assets/img/databricks-install-package.png new file mode 100644 index 000000000..116e2408b Binary files /dev/null and b/v1.46/assets/img/databricks-install-package.png differ diff --git a/v1.46/assets/img/databricks_lakefs_conf.png b/v1.46/assets/img/databricks_lakefs_conf.png new file mode 100644 index 000000000..3f586a6e5 Binary files /dev/null and b/v1.46/assets/img/databricks_lakefs_conf.png differ diff --git a/v1.46/assets/img/delete_branch_protection_rule.png b/v1.46/assets/img/delete_branch_protection_rule.png new file mode 100644 index 000000000..1086a5a98 Binary files /dev/null and b/v1.46/assets/img/delete_branch_protection_rule.png differ diff --git a/v1.46/assets/img/delta-diff-operations.png b/v1.46/assets/img/delta-diff-operations.png new file mode 100644 index 000000000..2f9fb4c1e Binary files /dev/null and b/v1.46/assets/img/delta-diff-operations.png differ diff --git a/v1.46/assets/img/delta-diff-table-icon.png b/v1.46/assets/img/delta-diff-table-icon.png new file mode 100644 index 000000000..d3f21d9a0 Binary files /dev/null and b/v1.46/assets/img/delta-diff-table-icon.png differ diff --git a/v1.46/assets/img/delta-lake/change-override.excalidraw b/v1.46/assets/img/delta-lake/change-override.excalidraw new file mode 100644 index 000000000..a212a7386 --- /dev/null +++ b/v1.46/assets/img/delta-lake/change-override.excalidraw @@ -0,0 +1,1230 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "type": "ellipse", + "version": 1027, + "versionNonce": 647317342, + "isDeleted": false, + "id": "fe_nfDr9tTgEIvvpCd4v2", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4962.066245843499, + "y": -5360.556055867614, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 51.445748465402175, + "height": 47.903921944754984, + "seed": 105164354, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "id": "hnGG0ORkM1R9laet6Fu-R", + "type": "arrow" + }, + { + "id": "rQ1E3oz56mEvpV-VDg2J7", + "type": "arrow" + } + ], + "updated": 1709205412170, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1021, + "versionNonce": 768337282, + "isDeleted": false, + "id": "SoEo4-k9VMyZ5uBfxyIJz", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -5014.204696382217, + "y": -5340.757431640277, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 33.90399169921875, + "height": 20, + "seed": 1138333186, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205412170, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "Main", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Main", + "lineHeight": 1.25, + "baseline": 14 + }, + { + "type": "ellipse", + "version": 1096, + "versionNonce": 1366338462, + "isDeleted": false, + "id": "tC2jVLTBxRlrnJ20cLkch", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4850.969454146422, + "y": -5626.018764393218, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 51.445748465402175, + "height": 47.903921944754984, + "seed": 368805314, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "id": "hnGG0ORkM1R9laet6Fu-R", + "type": "arrow" + }, + { + "id": "C58w5kcGj-nrQmBTlM3Jh", + "type": "arrow" + } + ], + "updated": 1709205412170, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1019, + "versionNonce": 1006101826, + "isDeleted": false, + "id": "y_svLlAPCrmXkxzAxG-6R", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4973.38442513125, + "y": -5607.453373942603, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 117.24790954589844, + "height": 20, + "seed": 1976139138, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205412170, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "table_updates", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "table_updates", + "lineHeight": 1.25, + "baseline": 14 + }, + { + "type": "rectangle", + "version": 2142, + "versionNonce": 1599495170, + "isDeleted": false, + "id": "HabXaoI8CH7irylkjrLYT", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4799.428878125622, + "y": -5571.366127982683, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 155.75714111328205, + "height": 110, + "seed": 600761090, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "mDzdjx08Tx8DERt_I6oGJ" + }, + { + "id": "bRWwXzQ71wM5xiGBRf6Fg", + "type": "arrow" + }, + { + "id": "hnGG0ORkM1R9laet6Fu-R", + "type": "arrow" + } + ], + "updated": 1709205412171, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1595, + "versionNonce": 751754526, + "isDeleted": false, + "id": "mDzdjx08Tx8DERt_I6oGJ", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4794.428878125622, + "y": -5566.366127982683, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 142.6879425048828, + "height": 100, + "seed": 1136603842, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205412171, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "my-table/\n _delta_log/\n 0000.json\n \n ", + "textAlign": "left", + "verticalAlign": "top", + "containerId": "HabXaoI8CH7irylkjrLYT", + "originalText": "my-table/\n _delta_log/\n 0000.json\n \n ", + "lineHeight": 1.25, + "baseline": 94 + }, + { + "type": "arrow", + "version": 2359, + "versionNonce": 776654302, + "isDeleted": false, + "id": "hnGG0ORkM1R9laet6Fu-R", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4932.327073881227, + "y": -5362.938868759379, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 93.78930268948716, + "height": 215.66890458533726, + "seed": 667889986, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205412171, + "link": null, + "locked": false, + "startBinding": { + "elementId": "fe_nfDr9tTgEIvvpCd4v2", + "focus": -0.2679492115275112, + "gap": 2.650562094922236 + }, + "endBinding": { + "elementId": "tC2jVLTBxRlrnJ20cLkch", + "focus": 0.1113230338672914, + "gap": 2.6099758318858157 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 93.78930268948716, + -215.66890458533726 + ] + ] + }, + { + "type": "rectangle", + "version": 1255, + "versionNonce": 2134401822, + "isDeleted": false, + "id": "kkijwArtO7QkKMC0uzt0I", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4885.859025042897, + "y": -5760.962795521386, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "width": 626.6013076279205, + "height": 126.94807450850031, + "seed": 2102640770, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205412171, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1320, + "versionNonce": 2034853314, + "isDeleted": false, + "id": "7rgUrDQRWvC514soL_7DN", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4868.4364576124635, + "y": -5742.445399831138, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "width": 77.93992614746094, + "height": 25, + "seed": 323211970, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205412171, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "writer_1", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "writer_1", + "lineHeight": 1.25, + "baseline": 17 + }, + { + "type": "text", + "version": 820, + "versionNonce": 649744222, + "isDeleted": false, + "id": "b963r4PhcYVJd0u-BDUQB", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4802.081990073777, + "y": -5677.471527573025, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 127.03993225097656, + "height": 20, + "seed": 1110650626, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205412171, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "insert to table ", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "insert to table ", + "lineHeight": 1.25, + "baseline": 14 + }, + { + "type": "rectangle", + "version": 2226, + "versionNonce": 1952144770, + "isDeleted": false, + "id": "Sl5OkkrPd5ze725b4mtoo", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4667.254099237502, + "y": -5751.56239205704, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 155.75714111328205, + "height": 110, + "seed": 1194758750, + "groupIds": [ + "VN77kAFV_B4v8lW-fk7pS" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "ohSb2OurRU0qNlDleyO4Q" + } + ], + "updated": 1709205412171, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1679, + "versionNonce": 397718430, + "isDeleted": false, + "id": "ohSb2OurRU0qNlDleyO4Q", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4662.254099237502, + "y": -5746.56239205704, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 142.6879425048828, + "height": 100, + "seed": 95458974, + "groupIds": [ + "VN77kAFV_B4v8lW-fk7pS" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205412171, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "my-table/\n _delta_log/\n 0000.json\n \n ", + "textAlign": "left", + "verticalAlign": "top", + "containerId": "Sl5OkkrPd5ze725b4mtoo", + "originalText": "my-table/\n _delta_log/\n 0000.json\n \n ", + "lineHeight": 1.25, + "baseline": 94 + }, + { + "type": "text", + "version": 605, + "versionNonce": 1910005058, + "isDeleted": false, + "id": "loW37EPae1kVkmXVuXEKX", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4598.661108823377, + "y": -5685.441551837686, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "width": 72.01594543457031, + "height": 20, + "seed": 652219102, + "groupIds": [ + "VN77kAFV_B4v8lW-fk7pS" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205412171, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "0001.json", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "0001.json", + "lineHeight": 1.25, + "baseline": 14 + }, + { + "type": "text", + "version": 1937, + "versionNonce": 2086178782, + "isDeleted": false, + "id": "riWYWxJq3vRDrVWOgCCA6", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4757.9349944719015, + "y": -5893.660961115476, + "strokeColor": "#f08c00", + "backgroundColor": "transparent", + "width": 86.75991821289062, + "height": 25, + "seed": 1680093890, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205412171, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "writer_2", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "writer_2", + "lineHeight": 1.25, + "baseline": 17 + }, + { + "type": "rectangle", + "version": 1150, + "versionNonce": 2132763906, + "isDeleted": false, + "id": "ENZOzINYjC5AYsv_xPm1D", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4774.080569581123, + "y": -5907.653045786014, + "strokeColor": "#f08c00", + "backgroundColor": "transparent", + "width": 622.5461620288896, + "height": 132.6602189619462, + "seed": 877955714, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205412171, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1043, + "versionNonce": 280421406, + "isDeleted": false, + "id": "-XL0T2w3Vjb5h9UVEL_0b", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4695.662828790724, + "y": -5848.503605062552, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 127.03993225097656, + "height": 20, + "seed": 1662436190, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205412171, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "insert to table ", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "insert to table ", + "lineHeight": 1.25, + "baseline": 14 + }, + { + "type": "rectangle", + "version": 2568, + "versionNonce": 632255682, + "isDeleted": false, + "id": "wu9O7s6wpd_4VPxn-3QCR", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4560.755357500721, + "y": -5896.000928905702, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 155.75714111328205, + "height": 110, + "seed": 162054914, + "groupIds": [ + "Vlvg1MzWmG4hCc5yFv94W" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "62Yr4UKb6bJYYwjlIUFqk" + } + ], + "updated": 1709205412171, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 2021, + "versionNonce": 1723904094, + "isDeleted": false, + "id": "62Yr4UKb6bJYYwjlIUFqk", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4555.755357500721, + "y": -5891.000928905702, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 142.6879425048828, + "height": 100, + "seed": 324866754, + "groupIds": [ + "Vlvg1MzWmG4hCc5yFv94W" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205412171, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "my-table/\n _delta_log/\n 0000.json\n \n ", + "textAlign": "left", + "verticalAlign": "top", + "containerId": "wu9O7s6wpd_4VPxn-3QCR", + "originalText": "my-table/\n _delta_log/\n 0000.json\n \n ", + "lineHeight": 1.25, + "baseline": 94 + }, + { + "type": "text", + "version": 947, + "versionNonce": 1730645122, + "isDeleted": false, + "id": "xv5tZ1iJ5py8jiTy_uPxX", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4492.162367086598, + "y": -5829.880088686348, + "strokeColor": "#f08c00", + "backgroundColor": "transparent", + "width": 72.01594543457031, + "height": 20, + "seed": 1232169602, + "groupIds": [ + "Vlvg1MzWmG4hCc5yFv94W" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205412171, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "0001.json", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "0001.json", + "lineHeight": 1.25, + "baseline": 14 + }, + { + "id": "C58w5kcGj-nrQmBTlM3Jh", + "type": "arrow", + "x": -4798.600862037932, + "y": -5600.172060712383, + "width": 512.5524096461941, + "height": 0.3490622264407648, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 707598722, + "version": 942, + "versionNonce": 709293214, + "isDeleted": false, + "boundElements": null, + "updated": 1709205412171, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 512.5524096461941, + 0.3490622264407648 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "tC2jVLTBxRlrnJ20cLkch", + "focus": 0.07834831332532421, + "gap": 1 + }, + "endBinding": { + "elementId": "okug8_b1o-AK1c4zb1cHm", + "focus": -0.08446521325685712, + "gap": 1.2725227181444865 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "type": "ellipse", + "version": 1211, + "versionNonce": 960932930, + "isDeleted": false, + "id": "okug8_b1o-AK1c4zb1cHm", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4284.86130480659, + "y": -5625.7797410291205, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 51.445748465402175, + "height": 47.903921944754984, + "seed": 607501250, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "id": "C58w5kcGj-nrQmBTlM3Jh", + "type": "arrow" + } + ], + "updated": 1709205412171, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 2883, + "versionNonce": 1694150878, + "isDeleted": false, + "id": "YsU4X2D7I84VH5qlixNZb", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4398.895428489304, + "y": -5568.694422935351, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 155.75714111328205, + "height": 110, + "seed": 1290313474, + "groupIds": [ + "i9Ty7PgbjYEYjMfRwAQ_x" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "h5-GUvm1zeBixMrtqQZ-t" + }, + { + "id": "WVniNkq4JXSyroRgK0V3S", + "type": "arrow" + } + ], + "updated": 1709205412171, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 2333, + "versionNonce": 32232450, + "isDeleted": false, + "id": "h5-GUvm1zeBixMrtqQZ-t", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4393.895428489304, + "y": -5563.694422935351, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 142.6879425048828, + "height": 100, + "seed": 440495810, + "groupIds": [ + "i9Ty7PgbjYEYjMfRwAQ_x" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205412171, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "my-table/\n _delta_log/\n 0000.json\n \n ", + "textAlign": "left", + "verticalAlign": "top", + "containerId": "YsU4X2D7I84VH5qlixNZb", + "originalText": "my-table/\n _delta_log/\n 0000.json\n \n ", + "lineHeight": 1.25, + "baseline": 94 + }, + { + "type": "text", + "version": 1259, + "versionNonce": 1114432798, + "isDeleted": false, + "id": "tbzp6IoKEQ_09RUCrja2w", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4330.302438075181, + "y": -5502.573582715998, + "strokeColor": "#f08c00", + "backgroundColor": "transparent", + "width": 72.01594543457031, + "height": 20, + "seed": 728385154, + "groupIds": [ + "i9Ty7PgbjYEYjMfRwAQ_x" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205412171, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "0001.json", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "0001.json", + "lineHeight": 1.25, + "baseline": 14 + }, + { + "type": "arrow", + "version": 1429, + "versionNonce": 652491650, + "isDeleted": false, + "id": "rQ1E3oz56mEvpV-VDg2J7", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4909.624399796204, + "y": -5336.177683168648, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 738.7930016379823, + "height": 4.4436759483332935, + "seed": 1654600670, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205412171, + "link": null, + "locked": false, + "startBinding": { + "elementId": "fe_nfDr9tTgEIvvpCd4v2", + "focus": 0.024511903836125275, + "gap": 1 + }, + "endBinding": { + "elementId": "jIcpsn41EuSbCdnDmAuo-", + "focus": -0.02183714962544129, + "gap": 2.9915930404247533 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 738.7930016379823, + -4.4436759483332935 + ] + ] + }, + { + "type": "ellipse", + "version": 1464, + "versionNonce": 1429255582, + "isDeleted": false, + "id": "jIcpsn41EuSbCdnDmAuo-", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4167.849374154192, + "y": -5365.269027149354, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 51.445748465402175, + "height": 47.903921944754984, + "seed": 1049167902, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "id": "rQ1E3oz56mEvpV-VDg2J7", + "type": "arrow" + }, + { + "id": "WVniNkq4JXSyroRgK0V3S", + "type": "arrow" + } + ], + "updated": 1709205412171, + "link": null, + "locked": false + }, + { + "id": "WVniNkq4JXSyroRgK0V3S", + "type": "arrow", + "x": -4243.9285422714165, + "y": -5580.419412949524, + "width": 97.3017710453023, + "height": 213.499272478678, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 781890462, + "version": 1378, + "versionNonce": 1536523074, + "isDeleted": false, + "boundElements": null, + "updated": 1709205412171, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 97.3017710453023, + 213.499272478678 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "YsU4X2D7I84VH5qlixNZb", + "focus": -1.0442313323075774, + "gap": 11.724990014172363 + }, + "endBinding": { + "elementId": "jIcpsn41EuSbCdnDmAuo-", + "focus": 0.2565292854670769, + "gap": 1.995269766354479 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "type": "rectangle", + "version": 2851, + "versionNonce": 1862554078, + "isDeleted": false, + "id": "xWTA3yWkCeWYAENX-VNAA", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4184.040535592853, + "y": -5302.752519151736, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 155.75714111328205, + "height": 110, + "seed": 690885698, + "groupIds": [ + "QkQ7Tm6n1EKE9giprl8Yk" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "_hCKRkwFYAExNMeSOgBD7" + } + ], + "updated": 1709205412171, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 2303, + "versionNonce": 797491970, + "isDeleted": false, + "id": "_hCKRkwFYAExNMeSOgBD7", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4179.040535592853, + "y": -5297.752519151736, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 142.6879425048828, + "height": 100, + "seed": 1353071618, + "groupIds": [ + "QkQ7Tm6n1EKE9giprl8Yk" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205412171, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "my-table/\n _delta_log/\n 0000.json\n \n ", + "textAlign": "left", + "verticalAlign": "top", + "containerId": "xWTA3yWkCeWYAENX-VNAA", + "originalText": "my-table/\n _delta_log/\n 0000.json\n \n ", + "lineHeight": 1.25, + "baseline": 94 + }, + { + "type": "text", + "version": 1229, + "versionNonce": 2090493470, + "isDeleted": false, + "id": "WZThBioc8RIWhdjYGzJpn", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4115.44754517873, + "y": -5236.631678932381, + "strokeColor": "#f08c00", + "backgroundColor": "transparent", + "width": 72.01594543457031, + "height": 20, + "seed": 1849912258, + "groupIds": [ + "QkQ7Tm6n1EKE9giprl8Yk" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205412171, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "0001.json", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "0001.json", + "lineHeight": 1.25, + "baseline": 14 + }, + { + "type": "rectangle", + "version": 2255, + "versionNonce": 2101154498, + "isDeleted": false, + "id": "wxujanoYybgFtiGCKIa7g", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4972.787358498867, + "y": -5303.541197409743, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 155.75714111328205, + "height": 110, + "seed": 1679913310, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "oTDEG8OMQ_l-2EbLcHLeE" + } + ], + "updated": 1709205412171, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1708, + "versionNonce": 1323561566, + "isDeleted": false, + "id": "oTDEG8OMQ_l-2EbLcHLeE", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4967.787358498867, + "y": -5298.541197409743, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 142.6879425048828, + "height": 100, + "seed": 535270814, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205412171, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "my-table/\n _delta_log/\n 0000.json\n \n ", + "textAlign": "left", + "verticalAlign": "top", + "containerId": "wxujanoYybgFtiGCKIa7g", + "originalText": "my-table/\n _delta_log/\n 0000.json\n \n ", + "lineHeight": 1.25, + "baseline": 94 + } + ], + "appState": { + "gridSize": null, + "viewBackgroundColor": "#ffffff" + }, + "files": {} +} \ No newline at end of file diff --git a/v1.46/assets/img/delta-lake/concurrent-file-overwrite.png b/v1.46/assets/img/delta-lake/concurrent-file-overwrite.png new file mode 100644 index 000000000..1a6638fb0 Binary files /dev/null and b/v1.46/assets/img/delta-lake/concurrent-file-overwrite.png differ diff --git a/v1.46/assets/img/delta-lake/merge-conflict.excalidraw b/v1.46/assets/img/delta-lake/merge-conflict.excalidraw new file mode 100644 index 000000000..a4c4a6e86 --- /dev/null +++ b/v1.46/assets/img/delta-lake/merge-conflict.excalidraw @@ -0,0 +1,1499 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "type": "ellipse", + "version": 723, + "versionNonce": 2133466690, + "isDeleted": false, + "id": "ogZ6xhDLj2zCWtoP_pLWt", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4874.160408813066, + "y": -4506.505037062658, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 51.445748465402175, + "height": 47.903921944754984, + "seed": 2002829378, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "id": "WLwABAOJOSDvAU7Y7yFjD", + "type": "arrow" + } + ], + "updated": 1709205338879, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 653, + "versionNonce": 1992253150, + "isDeleted": false, + "id": "4onWMn2YDuyGxv896P6mo", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4996.617165404867, + "y": -4487.939646612043, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 33.90399169921875, + "height": 20, + "seed": 463693826, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205338879, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "Main", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Main", + "lineHeight": 1.25, + "baseline": 14 + }, + { + "type": "ellipse", + "version": 1057, + "versionNonce": 1586562562, + "isDeleted": false, + "id": "LLwD7_p7LskpBfMC0seH9", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4414.71486961106, + "y": -4497.629609816566, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 51.445748465402175, + "height": 47.903921944754984, + "seed": 951785410, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "id": "WLwABAOJOSDvAU7Y7yFjD", + "type": "arrow" + }, + { + "id": "2UbB1KMaCo94zzVFFyzaJ", + "type": "arrow" + } + ], + "updated": 1709205338879, + "link": null, + "locked": false + }, + { + "type": "ellipse", + "version": 581, + "versionNonce": 1399575326, + "isDeleted": false, + "id": "pwYTqEEjmc69F11pHjYF_", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4761.215198764938, + "y": -4719.065058599346, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 51.445748465402175, + "height": 47.903921944754984, + "seed": 2126958466, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "id": "1AwG7wawIuu2khWvBnauV", + "type": "arrow" + }, + { + "id": "Zmhu_d6OClqOpd2i8SGGY", + "type": "arrow" + } + ], + "updated": 1709205338879, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1006, + "versionNonce": 1212478914, + "isDeleted": false, + "id": "W0IxIdBb5Dii08JD7H2ok", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -5021.378123395241, + "y": -4705.650272396779, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "width": 77.93992614746094, + "height": 25, + "seed": 1107660610, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205338879, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "writer_1", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "writer_1", + "lineHeight": 1.25, + "baseline": 17 + }, + { + "type": "text", + "version": 765, + "versionNonce": 50315102, + "isDeleted": false, + "id": "-s9A1E-5y1TaIoxttsW3z", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4780.634325003079, + "y": -4700.357249151108, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 15.579986572265625, + "height": 25, + "seed": 1993758466, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "1AwG7wawIuu2khWvBnauV", + "type": "arrow" + } + ], + "updated": 1709205338879, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "b1", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "b1", + "lineHeight": 1.25, + "baseline": 17 + }, + { + "type": "ellipse", + "version": 1438, + "versionNonce": 2103766402, + "isDeleted": false, + "id": "zyeeGJMekmv4sNA5NsgZ9", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4748.924636543954, + "y": -4913.101373427406, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 51.445748465402175, + "height": 47.903921944754984, + "seed": 767043266, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "id": "BSSZFIfUQiKNRu4Rlehv5", + "type": "arrow" + }, + { + "id": "kUzN5rRojuoaj26p1Biqe", + "type": "arrow" + } + ], + "updated": 1709205338879, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1382, + "versionNonce": 701244318, + "isDeleted": false, + "id": "8-AtRPpXAf5qu2DAJhnYo", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -5018.254038922583, + "y": -5016.093077005808, + "strokeColor": "#f08c00", + "backgroundColor": "transparent", + "width": 86.75991821289062, + "height": 25, + "seed": 256507522, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205338879, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "writer_2", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "writer_2", + "lineHeight": 1.25, + "baseline": 17 + }, + { + "type": "ellipse", + "version": 1150, + "versionNonce": 1127214402, + "isDeleted": false, + "id": "9lHLcujynHEODAGbzWpPQ", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4532.408416451184, + "y": -4722.149829891901, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 51.445748465402175, + "height": 47.903921944754984, + "seed": 1481301570, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "id": "eAx3-tJuHqAGC3LF-JPx8", + "type": "arrow" + } + ], + "updated": 1709205338879, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 346, + "versionNonce": 973209566, + "isDeleted": false, + "id": "AuN4vCXle-xo0AA-UkFZA", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4677.104788347109, + "y": -4688.523164504064, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 127.03993225097656, + "height": 20, + "seed": 1436141058, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205338879, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "insert to table ", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "insert to table ", + "lineHeight": 1.25, + "baseline": 14 + }, + { + "type": "ellipse", + "version": 1416, + "versionNonce": 1594160386, + "isDeleted": false, + "id": "FIiTK_X32e1Ezqc3thhIL", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4443.213034196717, + "y": -4911.350116757134, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 51.445748465402175, + "height": 47.903921944754984, + "seed": 1614132674, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "id": "2UbB1KMaCo94zzVFFyzaJ", + "type": "arrow" + }, + { + "id": "kUzN5rRojuoaj26p1Biqe", + "type": "arrow" + } + ], + "updated": 1709205338879, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 1770, + "versionNonce": 934433822, + "isDeleted": false, + "id": "M1n1GhbJ2APqr45TNVrlk", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4823.349082948458, + "y": -4451.587461123878, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 155.75714111328205, + "height": 110, + "seed": 1497214338, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "kOypLf68N3ji-dtpJ5vkC" + }, + { + "id": "WLwABAOJOSDvAU7Y7yFjD", + "type": "arrow" + } + ], + "updated": 1709205338879, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1223, + "versionNonce": 308479170, + "isDeleted": false, + "id": "kOypLf68N3ji-dtpJ5vkC", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4818.349082948458, + "y": -4446.587461123878, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 142.6879425048828, + "height": 100, + "seed": 636529986, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205338879, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "my-table/\n _delta_log/\n 0000.json\n \n ", + "textAlign": "left", + "verticalAlign": "top", + "containerId": "M1n1GhbJ2APqr45TNVrlk", + "originalText": "my-table/\n _delta_log/\n 0000.json\n \n ", + "lineHeight": 1.25, + "baseline": 94 + }, + { + "type": "rectangle", + "version": 1939, + "versionNonce": 2093883486, + "isDeleted": false, + "id": "n4pOczy0p3JJCiL04xQoO", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4633.7769659940495, + "y": -4653.760927200805, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 155.75714111328205, + "height": 110, + "seed": 732804354, + "groupIds": [ + "6iyWuhB12BXL7nOQpmsnr" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "SvFtSb2ysu9i39_JK-Y_p" + }, + { + "id": "eAx3-tJuHqAGC3LF-JPx8", + "type": "arrow" + } + ], + "updated": 1709205338879, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1391, + "versionNonce": 384375938, + "isDeleted": false, + "id": "SvFtSb2ysu9i39_JK-Y_p", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4628.7769659940495, + "y": -4648.760927200805, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 142.6879425048828, + "height": 100, + "seed": 1274266818, + "groupIds": [ + "6iyWuhB12BXL7nOQpmsnr" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205338879, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "my-table/\n _delta_log/\n 0000.json\n \n ", + "textAlign": "left", + "verticalAlign": "top", + "containerId": "n4pOczy0p3JJCiL04xQoO", + "originalText": "my-table/\n _delta_log/\n 0000.json\n \n ", + "lineHeight": 1.25, + "baseline": 94 + }, + { + "type": "text", + "version": 322, + "versionNonce": 2099668126, + "isDeleted": false, + "id": "wyjveP0Tl9iJsRVzaYDSn", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4564.970399483169, + "y": -4587.317445755492, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "width": 72.01594543457031, + "height": 20, + "seed": 1617026178, + "groupIds": [ + "6iyWuhB12BXL7nOQpmsnr" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205338879, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "0001.json", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "0001.json", + "lineHeight": 1.25, + "baseline": 14 + }, + { + "type": "rectangle", + "version": 2119, + "versionNonce": 441859138, + "isDeleted": false, + "id": "X52u9_BiHmIFEHej-Oxlf", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4579.791605041528, + "y": -4848.161354044467, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 155.75714111328205, + "height": 110, + "seed": 917961794, + "groupIds": [ + "5AgixBmPhcSGPPH16TUb-" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "mstR-FmjOT92MIwTn27yT" + }, + { + "id": "2UbB1KMaCo94zzVFFyzaJ", + "type": "arrow" + } + ], + "updated": 1709205338879, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1571, + "versionNonce": 174858462, + "isDeleted": false, + "id": "mstR-FmjOT92MIwTn27yT", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4574.791605041528, + "y": -4843.161354044467, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 142.6879425048828, + "height": 100, + "seed": 215098370, + "groupIds": [ + "5AgixBmPhcSGPPH16TUb-" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205338879, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "my-table/\n _delta_log/\n 0000.json\n \n ", + "textAlign": "left", + "verticalAlign": "top", + "containerId": "X52u9_BiHmIFEHej-Oxlf", + "originalText": "my-table/\n _delta_log/\n 0000.json\n \n ", + "lineHeight": 1.25, + "baseline": 94 + }, + { + "type": "text", + "version": 502, + "versionNonce": 982082562, + "isDeleted": false, + "id": "h3Uxd9SHfAxqlA8lGGhlh", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4510.985038530647, + "y": -4781.7178725991525, + "strokeColor": "#f08c00", + "backgroundColor": "transparent", + "width": 72.01594543457031, + "height": 20, + "seed": 213013442, + "groupIds": [ + "5AgixBmPhcSGPPH16TUb-" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205338879, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "0001.json", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "0001.json", + "lineHeight": 1.25, + "baseline": 14 + }, + { + "type": "text", + "version": 420, + "versionNonce": 405820702, + "isDeleted": false, + "id": "jGTLUs8NOf4XHQ71uklsv", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4617.846880675621, + "y": -4876.945196697177, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 127.03993225097656, + "height": 20, + "seed": 1215728514, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "kUzN5rRojuoaj26p1Biqe", + "type": "arrow" + } + ], + "updated": 1709205338879, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "insert to table ", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "insert to table ", + "lineHeight": 1.25, + "baseline": 14 + }, + { + "type": "arrow", + "version": 918, + "versionNonce": 25269186, + "isDeleted": false, + "id": "eAx3-tJuHqAGC3LF-JPx8", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4494.295583776001, + "y": -4676.349554147726, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 93.69919137050329, + "height": 181.92035974070404, + "seed": 912116546, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1709205338879, + "link": null, + "locked": false, + "startBinding": { + "elementId": "n4pOczy0p3JJCiL04xQoO", + "focus": -0.9562988901370194, + "gap": 22.588626946921067 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 93.69919137050329, + 181.92035974070404 + ] + ] + }, + { + "type": "rectangle", + "version": 2019, + "versionNonce": 1633536898, + "isDeleted": false, + "id": "jEpOc9gA9ECPKB7-xBSI9", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4445.877185720612, + "y": -4442.136724682132, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 155.75714111328205, + "height": 110, + "seed": 1580294850, + "groupIds": [ + "xYKUDi2W49YoCvXGyJL6e" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "GgXUZoq4b8dgEhIsBvKwx" + } + ], + "updated": 1709205338879, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1472, + "versionNonce": 1155016094, + "isDeleted": false, + "id": "GgXUZoq4b8dgEhIsBvKwx", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4440.877185720612, + "y": -4437.136724682132, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 142.6879425048828, + "height": 100, + "seed": 1429977730, + "groupIds": [ + "xYKUDi2W49YoCvXGyJL6e" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205338879, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "my-table/\n _delta_log/\n 0000.json\n \n ", + "textAlign": "left", + "verticalAlign": "top", + "containerId": "jEpOc9gA9ECPKB7-xBSI9", + "originalText": "my-table/\n _delta_log/\n 0000.json\n \n ", + "lineHeight": 1.25, + "baseline": 94 + }, + { + "type": "text", + "version": 404, + "versionNonce": 811404098, + "isDeleted": false, + "id": "wb0_cbs-iPoF9sBYWHVv-", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4377.070619209731, + "y": -4375.693243236819, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "width": 72.01594543457031, + "height": 20, + "seed": 1889868354, + "groupIds": [ + "xYKUDi2W49YoCvXGyJL6e" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205338879, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "0001.json", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "0001.json", + "lineHeight": 1.25, + "baseline": 14 + }, + { + "type": "arrow", + "version": 1189, + "versionNonce": 1480442334, + "isDeleted": false, + "id": "2UbB1KMaCo94zzVFFyzaJ", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4409.411395697797, + "y": -4858.488569181136, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 19.946068101089622, + "height": 359.8628738488396, + "seed": 1598849538, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1709205338879, + "link": null, + "locked": false, + "startBinding": { + "elementId": "X52u9_BiHmIFEHej-Oxlf", + "focus": -1.187767547939438, + "gap": 14.932425499329838 + }, + "endBinding": { + "elementId": "LLwD7_p7LskpBfMC0seH9", + "focus": 0.03530906917672053, + "gap": 1 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 19.946068101089622, + 359.8628738488396 + ] + ] + }, + { + "type": "arrow", + "version": 564, + "versionNonce": 618550018, + "isDeleted": false, + "id": "kUzN5rRojuoaj26p1Biqe", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4693.745276794551, + "y": -4892.283184485677, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 250.17607011271957, + "height": 0.1822173504415332, + "seed": 472969666, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1709205338879, + "link": null, + "locked": false, + "startBinding": { + "elementId": "zyeeGJMekmv4sNA5NsgZ9", + "focus": -0.13173142231619034, + "gap": 3.9214480665472067 + }, + "endBinding": { + "elementId": "FIiTK_X32e1Ezqc3thhIL", + "focus": 0.19555038025911065, + "gap": 1 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 250.17607011271957, + 0.1822173504415332 + ] + ] + }, + { + "type": "text", + "version": 237, + "versionNonce": 1562760734, + "isDeleted": false, + "id": "itvK8N-Zu8RRRiLKZFlF-", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4373.438068288975, + "y": -4693.725003651696, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "width": 239.95187377929688, + "height": 20, + "seed": 1785817474, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205338879, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "Merge fails due to a conflict ", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Merge fails due to a conflict ", + "lineHeight": 1.25, + "baseline": 14 + }, + { + "type": "line", + "version": 352, + "versionNonce": 1365287618, + "isDeleted": false, + "id": "WT2vugnQfYCHjuts054FT", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4387.246487652812, + "y": -4680.468472889977, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "width": 13.118373325894026, + "height": 17.951572963169383, + "seed": 1363994946, + "groupIds": [ + "jdLwdOPNVKmDtD3-vXPaA" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1709205338879, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -13.118373325894026, + 17.951572963169383 + ] + ] + }, + { + "type": "line", + "version": 562, + "versionNonce": 1820418654, + "isDeleted": false, + "id": "90Zf7fZd5ulllMEm5WsuN", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4400.957250766653, + "y": -4679.711898531717, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "width": 14.59167480468659, + "height": 15.397382463726899, + "seed": 404910338, + "groupIds": [ + "jdLwdOPNVKmDtD3-vXPaA" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1709205338879, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 14.59167480468659, + 15.397382463726899 + ] + ] + }, + { + "type": "arrow", + "version": 718, + "versionNonce": 545454722, + "isDeleted": false, + "id": "WLwABAOJOSDvAU7Y7yFjD", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4820.558902143084, + "y": -4479.856055443219, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 404.6595485926555, + "height": 2.1077378845993735, + "seed": 1114702018, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1709205338879, + "link": null, + "locked": false, + "startBinding": { + "elementId": "ogZ6xhDLj2zCWtoP_pLWt", + "focus": 0.10653700306491325, + "gap": 2.3039530047365133 + }, + "endBinding": { + "elementId": "LLwD7_p7LskpBfMC0seH9", + "focus": 0.16409744857823455, + "gap": 1.5343036149306961 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 404.6595485926555, + 2.1077378845993735 + ] + ] + }, + { + "type": "rectangle", + "version": 557, + "versionNonce": 1908654594, + "isDeleted": false, + "id": "6AuEHwE3GbF_AEtNUpOi3", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -5038.888221585141, + "y": -5045.482805719315, + "strokeColor": "#f08c00", + "backgroundColor": "transparent", + "width": 669.6878387115825, + "height": 313.1841823032928, + "seed": 1795743746, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "BSSZFIfUQiKNRu4Rlehv5", + "type": "arrow" + } + ], + "updated": 1709205338879, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 888, + "versionNonce": 1322440478, + "isDeleted": false, + "id": "E3Z-rmUWZoIBam9yOArN6", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -5037.20835969898, + "y": -4721.684812635738, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "width": 668.0315021892181, + "height": 188.8683344243646, + "seed": 1823576002, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "1AwG7wawIuu2khWvBnauV", + "type": "arrow" + }, + { + "id": "BSSZFIfUQiKNRu4Rlehv5", + "type": "arrow" + } + ], + "updated": 1709205338879, + "link": null, + "locked": false + }, + { + "type": "arrow", + "version": 1609, + "versionNonce": 989908930, + "isDeleted": false, + "id": "1AwG7wawIuu2khWvBnauV", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4834.608650019732, + "y": -4504.732350186047, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 81.79272997921726, + "height": 168.82151191470984, + "seed": 753795970, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205338879, + "link": null, + "locked": false, + "startBinding": { + "elementId": "E3Z-rmUWZoIBam9yOArN6", + "focus": -0.18973897987154792, + "gap": 28.084128025325754 + }, + "endBinding": { + "elementId": "-s9A1E-5y1TaIoxttsW3z", + "focus": -1.9469887223595808, + "gap": 12.238418390298648 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 81.79272997921726, + -168.82151191470984 + ] + ] + }, + { + "type": "arrow", + "version": 3003, + "versionNonce": 235308382, + "isDeleted": false, + "id": "BSSZFIfUQiKNRu4Rlehv5", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4845.6801434550825, + "y": -4506.576247150813, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 107.13697027572653, + "height": 359.1605733587958, + "seed": 220611394, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205338879, + "link": null, + "locked": false, + "startBinding": { + "elementId": "E3Z-rmUWZoIBam9yOArN6", + "focus": -0.29402235190910925, + "gap": 26.240231060559836 + }, + "endBinding": { + "elementId": "zyeeGJMekmv4sNA5NsgZ9", + "focus": 0.3130525348324614, + "gap": 3.5398723098396054 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 107.13697027572653, + -359.1605733587958 + ] + ] + }, + { + "type": "arrow", + "version": 275, + "versionNonce": 529893250, + "isDeleted": false, + "id": "Zmhu_d6OClqOpd2i8SGGY", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4708.833474763065, + "y": -4698.500519625166, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 177.86420549665127, + "height": 1.169651576450633, + "seed": 62950146, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205338879, + "link": null, + "locked": false, + "startBinding": { + "elementId": "pwYTqEEjmc69F11pHjYF_", + "focus": -0.1487412340172701, + "gap": 1.1813995419280694 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 177.86420549665127, + 1.169651576450633 + ] + ] + }, + { + "type": "text", + "version": 944, + "versionNonce": 1946823070, + "isDeleted": false, + "id": "ku9fwnNuiqyc625XEumnj", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4781.085874121029, + "y": -4896.7100993141175, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 24.399978637695312, + "height": 25, + "seed": 121363138, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "BSSZFIfUQiKNRu4Rlehv5", + "type": "arrow" + } + ], + "updated": 1709205338879, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "b2", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "b2", + "lineHeight": 1.25, + "baseline": 17 + }, + { + "type": "text", + "version": 256, + "versionNonce": 1519338974, + "isDeleted": false, + "id": "wdm8lY-Pc3nWnX4OKAv9I", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -5048.63663120371, + "y": -5118.105719398638, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 723.295654296875, + "height": 35, + "seed": 1131516482, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205338879, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "Merge conflicts by Multi-writers to multiple branches", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Merge conflicts by Multi-writers to multiple branches", + "lineHeight": 1.25, + "baseline": 24 + } + ], + "appState": { + "gridSize": null, + "viewBackgroundColor": "#ffffff" + }, + "files": {} +} \ No newline at end of file diff --git a/v1.46/assets/img/delta-lake/merge-conflict.png b/v1.46/assets/img/delta-lake/merge-conflict.png new file mode 100644 index 000000000..410c27035 Binary files /dev/null and b/v1.46/assets/img/delta-lake/merge-conflict.png differ diff --git a/v1.46/assets/img/delta-lake/multi-writers-with-lakefs-branches-merges.png b/v1.46/assets/img/delta-lake/multi-writers-with-lakefs-branches-merges.png new file mode 100644 index 000000000..c0eaf61c7 Binary files /dev/null and b/v1.46/assets/img/delta-lake/multi-writers-with-lakefs-branches-merges.png differ diff --git a/v1.46/assets/img/delta-lake/multi-writers-with-lakefs-branches.excalidraw b/v1.46/assets/img/delta-lake/multi-writers-with-lakefs-branches.excalidraw new file mode 100644 index 000000000..4490b2808 --- /dev/null +++ b/v1.46/assets/img/delta-lake/multi-writers-with-lakefs-branches.excalidraw @@ -0,0 +1,2250 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "type": "ellipse", + "version": 650, + "versionNonce": 2050083358, + "isDeleted": false, + "id": "I8RGguEZIqgQ2iYCMY84G", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4864.8435371630285, + "y": -6305.026070423402, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 51.445748465402175, + "height": 47.903921944754984, + "seed": 123034946, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "id": "17huQdfU8roWs28YiJOFQ", + "type": "arrow" + }, + { + "id": "HVrlrSxgKJ_WzZvmX9Y5N", + "type": "arrow" + }, + { + "id": "-y7UzxgOlXVLOiBsmLUry", + "type": "arrow" + } + ], + "updated": 1709205155388, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 549, + "versionNonce": 1810814558, + "isDeleted": false, + "id": "_6MstH_s_f9liSx4461Ju", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4985.144203385236, + "y": -6292.842375059928, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 33.90399169921875, + "height": 20, + "seed": 1484672898, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205155388, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "Main", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Main", + "lineHeight": 1.25, + "baseline": 14 + }, + { + "type": "ellipse", + "version": 952, + "versionNonce": 57975874, + "isDeleted": false, + "id": "_pxFluJ_cp9w75XmiVlw-", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4403.24190759143, + "y": -6302.532338264451, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 51.445748465402175, + "height": 47.903921944754984, + "seed": 1470024926, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "id": "17huQdfU8roWs28YiJOFQ", + "type": "arrow" + }, + { + "id": "E1zwoGpModq1EKmZdw64p", + "type": "arrow" + } + ], + "updated": 1709205160427, + "link": null, + "locked": false + }, + { + "type": "ellipse", + "version": 476, + "versionNonce": 1066700290, + "isDeleted": false, + "id": "Laf-YTcaNfUCqrV36HKSG", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4749.742236745308, + "y": -6523.9677870472315, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 51.445748465402175, + "height": 47.903921944754984, + "seed": 174303006, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "id": "xTI2SX2v3Ibfasf1nrMu2", + "type": "arrow" + }, + { + "id": "HVrlrSxgKJ_WzZvmX9Y5N", + "type": "arrow" + }, + { + "id": "Vp4_YREtsDSxxEhj5zmIt", + "type": "arrow" + } + ], + "updated": 1709205155388, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 902, + "versionNonce": 474270494, + "isDeleted": false, + "id": "pe8NNkP-KtTPQCWZgkty5", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -5009.905161375611, + "y": -6510.553000844663, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "width": 77.93992614746094, + "height": 25, + "seed": 870126430, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205155388, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "writer_1", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "writer_1", + "lineHeight": 1.25, + "baseline": 17 + }, + { + "type": "text", + "version": 660, + "versionNonce": 905557854, + "isDeleted": false, + "id": "EeXqsSo4ns-ZCoBVD0LCL", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4769.161362983448, + "y": -6505.259977598993, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 15.579986572265625, + "height": 25, + "seed": 1722156994, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "HVrlrSxgKJ_WzZvmX9Y5N", + "type": "arrow" + } + ], + "updated": 1709205155388, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "b1", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "b1", + "lineHeight": 1.25, + "baseline": 17 + }, + { + "type": "ellipse", + "version": 1333, + "versionNonce": 1522998174, + "isDeleted": false, + "id": "frI8ILH80by_7U7jKorJe", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4737.451674524324, + "y": -6718.00410187529, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 51.445748465402175, + "height": 47.903921944754984, + "seed": 1746920286, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "id": "-y7UzxgOlXVLOiBsmLUry", + "type": "arrow" + }, + { + "id": "g5hSV8QmbxT18ueyrdRKR", + "type": "arrow" + } + ], + "updated": 1709205155388, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1314, + "versionNonce": 1837135170, + "isDeleted": false, + "id": "wZdBpoSIj3AqXRusmeTf5", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4998.286156905957, + "y": -6735.140045612948, + "strokeColor": "#f08c00", + "backgroundColor": "transparent", + "width": 86.75991821289062, + "height": 25, + "seed": 1061668766, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205155388, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "writer_2", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "writer_2", + "lineHeight": 1.25, + "baseline": 17 + }, + { + "type": "ellipse", + "version": 1046, + "versionNonce": 810503198, + "isDeleted": false, + "id": "nzVX7_-rJ4eSTAyqWqiK4", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4520.935454431553, + "y": -6527.052558339786, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 51.445748465402175, + "height": 47.903921944754984, + "seed": 373467074, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "id": "lIVdCf4mUsZuAfK280qjY", + "type": "arrow" + } + ], + "updated": 1709205155388, + "link": null, + "locked": false + }, + { + "id": "Bj-ulLnFznW98y3Rqhvuw", + "type": "text", + "x": -4665.631826327479, + "y": -6493.425892951948, + "width": 127.03993225097656, + "height": 20, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 610683970, + "version": 242, + "versionNonce": 1191975006, + "isDeleted": false, + "boundElements": null, + "updated": 1709205155388, + "link": null, + "locked": false, + "text": "insert to table ", + "fontSize": 16, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 14, + "containerId": null, + "originalText": "insert to table ", + "lineHeight": 1.25 + }, + { + "type": "ellipse", + "version": 1311, + "versionNonce": 296133762, + "isDeleted": false, + "id": "TE6v9B5AAJjR5aIgpNtWi", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4431.740072177087, + "y": -6716.252845205019, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 51.445748465402175, + "height": 47.903921944754984, + "seed": 2024224158, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "id": "P2L0-K8BUaSimEQic5kwJ", + "type": "arrow" + }, + { + "id": "g5hSV8QmbxT18ueyrdRKR", + "type": "arrow" + } + ], + "updated": 1709205155388, + "link": null, + "locked": false + }, + { + "id": "G9By4GiKoleoOWTjfa1lw", + "type": "rectangle", + "x": -4817.706152103706, + "y": -6256.431595821762, + "width": 155.75714111328205, + "height": 110, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 1254547010, + "version": 1680, + "versionNonce": 1948435522, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "RDlrbWC9cw0RtUoQ7CON4" + }, + { + "id": "17huQdfU8roWs28YiJOFQ", + "type": "arrow" + }, + { + "id": "oLB4nglhzy-mLQ4zT4MlJ", + "type": "arrow" + } + ], + "updated": 1709205155388, + "link": null, + "locked": false + }, + { + "id": "RDlrbWC9cw0RtUoQ7CON4", + "type": "text", + "x": -4812.706152103706, + "y": -6251.431595821762, + "width": 142.6879425048828, + "height": 100, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1130590722, + "version": 1133, + "versionNonce": 1737234654, + "isDeleted": false, + "boundElements": null, + "updated": 1709205155388, + "link": null, + "locked": false, + "text": "my-table/\n _delta_log/\n 0000.json\n \n ", + "fontSize": 16, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 94, + "containerId": "G9By4GiKoleoOWTjfa1lw", + "originalText": "my-table/\n _delta_log/\n 0000.json\n \n ", + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 1837, + "versionNonce": 201754078, + "isDeleted": false, + "id": "cYBcW8tBG39tjX_xiVwap", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4622.4522724539875, + "y": -6458.865588115637, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 155.75714111328205, + "height": 110, + "seed": 1920357378, + "groupIds": [ + "dDaO15OSW4bSJcLRyePcW" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "Q3K3Y1kUFR-G_EDVTLb7K" + }, + { + "id": "lIVdCf4mUsZuAfK280qjY", + "type": "arrow" + } + ], + "updated": 1709205168693, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1290, + "versionNonce": 590748190, + "isDeleted": false, + "id": "Q3K3Y1kUFR-G_EDVTLb7K", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4617.4522724539875, + "y": -6453.865588115637, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 142.6879425048828, + "height": 100, + "seed": 240157634, + "groupIds": [ + "dDaO15OSW4bSJcLRyePcW" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205168693, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "my-table/\n _delta_log/\n 0000.json\n \n ", + "textAlign": "left", + "verticalAlign": "top", + "containerId": "cYBcW8tBG39tjX_xiVwap", + "originalText": "my-table/\n _delta_log/\n 0000.json\n \n ", + "lineHeight": 1.25, + "baseline": 94 + }, + { + "id": "7vDHXet_nuaCq2V5wnHx1", + "type": "text", + "x": -4553.645705943107, + "y": -6392.422106670323, + "width": 72.01594543457031, + "height": 20, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "dDaO15OSW4bSJcLRyePcW" + ], + "frameId": null, + "roundness": null, + "seed": 905098498, + "version": 221, + "versionNonce": 171654658, + "isDeleted": false, + "boundElements": null, + "updated": 1709205170678, + "link": null, + "locked": false, + "text": "0001.json", + "fontSize": 16, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 14, + "containerId": null, + "originalText": "0001.json", + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 2005, + "versionNonce": 526776670, + "isDeleted": false, + "id": "lB-Gdq5GxDC5VH1c4nBNC", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4568.0345947947335, + "y": -6653.176246329492, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 155.75714111328205, + "height": 110, + "seed": 2056296862, + "groupIds": [ + "DfNpHw7mvwumYpxFTzcfp" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "smR7X02aUeC9hzegUQT88" + }, + { + "id": "P2L0-K8BUaSimEQic5kwJ", + "type": "arrow" + } + ], + "updated": 1709205155388, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1458, + "versionNonce": 1830245250, + "isDeleted": false, + "id": "smR7X02aUeC9hzegUQT88", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4563.0345947947335, + "y": -6648.176246329492, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 142.6879425048828, + "height": 100, + "seed": 650622430, + "groupIds": [ + "DfNpHw7mvwumYpxFTzcfp" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205155388, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "my-table/\n _delta_log/\n 0000.json\n \n ", + "textAlign": "left", + "verticalAlign": "top", + "containerId": "lB-Gdq5GxDC5VH1c4nBNC", + "originalText": "my-table/\n _delta_log/\n 0000.json\n \n ", + "lineHeight": 1.25, + "baseline": 94 + }, + { + "type": "text", + "version": 389, + "versionNonce": 2111907202, + "isDeleted": false, + "id": "EfkopdUAlSmTX0CpXq5Ri", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4499.228028283853, + "y": -6586.732764884177, + "strokeColor": "#f08c00", + "backgroundColor": "transparent", + "width": 72.01594543457031, + "height": 20, + "seed": 777079326, + "groupIds": [ + "DfNpHw7mvwumYpxFTzcfp" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205173242, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "0001.json", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "0001.json", + "lineHeight": 1.25, + "baseline": 14 + }, + { + "type": "text", + "version": 316, + "versionNonce": 463835970, + "isDeleted": false, + "id": "xe_XEuPqPeNXKNJL9Tb6p", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4606.3739186559915, + "y": -6681.847925145062, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 127.03993225097656, + "height": 20, + "seed": 521780162, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "g5hSV8QmbxT18ueyrdRKR", + "type": "arrow" + } + ], + "updated": 1709205155388, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "insert to table ", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "insert to table ", + "lineHeight": 1.25, + "baseline": 14 + }, + { + "id": "lIVdCf4mUsZuAfK280qjY", + "type": "arrow", + "x": -4445.222993601325, + "y": -6410.958974197634, + "width": 58.69398723782342, + "height": 109.95995253947967, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 1210218910, + "version": 254, + "versionNonce": 266937950, + "isDeleted": false, + "boundElements": null, + "updated": 1709205168693, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 58.69398723782342, + 109.95995253947967 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "cYBcW8tBG39tjX_xiVwap", + "focus": -0.9617735188030769, + "gap": 21.47213773938165 + }, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "type": "rectangle", + "version": 1955, + "versionNonce": 1512516290, + "isDeleted": false, + "id": "8ys_ZIn-JhNRsE00pwI-Z", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4434.404223700983, + "y": -6247.072599914871, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 155.75714111328205, + "height": 110, + "seed": 1767858754, + "groupIds": [ + "jV9T-u8DWG2DcSQAzysjP" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "0fiGcLhM8scDP1NqbOaWY" + }, + { + "id": "E1zwoGpModq1EKmZdw64p", + "type": "arrow" + } + ], + "updated": 1709205155388, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 1409, + "versionNonce": 524769886, + "isDeleted": false, + "id": "0fiGcLhM8scDP1NqbOaWY", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4429.404223700983, + "y": -6242.072599914871, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 142.6879425048828, + "height": 100, + "seed": 1501415938, + "groupIds": [ + "jV9T-u8DWG2DcSQAzysjP" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205155388, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "my-table/\n _delta_log/\n 0000.json\n \n ", + "textAlign": "left", + "verticalAlign": "top", + "containerId": "8ys_ZIn-JhNRsE00pwI-Z", + "originalText": "my-table/\n _delta_log/\n 0000.json\n \n ", + "lineHeight": 1.25, + "baseline": 94 + }, + { + "type": "text", + "version": 341, + "versionNonce": 998855810, + "isDeleted": false, + "id": "IR47HAyj6b4oE7R88Urdv", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4365.597657190102, + "y": -6180.629118469558, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "width": 72.01594543457031, + "height": 20, + "seed": 1358510530, + "groupIds": [ + "jV9T-u8DWG2DcSQAzysjP" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205181462, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "0001.json", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "0001.json", + "lineHeight": 1.25, + "baseline": 14 + }, + { + "id": "P2L0-K8BUaSimEQic5kwJ", + "type": "arrow", + "x": -4400.307428477639, + "y": -6667.746697748289, + "width": 25.39454745223884, + "height": 363.68677134764766, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 2142313346, + "version": 549, + "versionNonce": 812146334, + "isDeleted": false, + "boundElements": null, + "updated": 1709205155388, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 25.39454745223884, + 363.68677134764766 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "lB-Gdq5GxDC5VH1c4nBNC", + "focus": -1.1589277588857154, + "gap": 14.570451418797347 + }, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "g5hSV8QmbxT18ueyrdRKR", + "type": "arrow", + "x": -4682.27231477492, + "y": -6697.185912933561, + "width": 250.17607011271957, + "height": 0.1822173504415332, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 2021419614, + "version": 262, + "versionNonce": 801694274, + "isDeleted": false, + "boundElements": null, + "updated": 1709205155388, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 250.17607011271957, + 0.1822173504415332 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "frI8ILH80by_7U7jKorJe", + "focus": -0.13173142231615237, + "gap": 3.921448066547107 + }, + "endBinding": { + "elementId": "TE6v9B5AAJjR5aIgpNtWi", + "focus": 0.19555038025903468, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "0WDIjOlhzkviW-BNds7jh", + "type": "text", + "x": -4361.965106269344, + "y": -6498.627732099581, + "width": 239.95187377929688, + "height": 20, + "angle": 0, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 689578946, + "version": 135, + "versionNonce": 488956290, + "isDeleted": false, + "boundElements": null, + "updated": 1709205217523, + "link": null, + "locked": false, + "text": "Merge fails due to a conflict ", + "fontSize": 16, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 14, + "containerId": null, + "originalText": "Merge fails due to a conflict ", + "lineHeight": 1.25 + }, + { + "id": "-menBhvfH3-WXyHUd8UCx", + "type": "line", + "x": -4375.773525633182, + "y": -6485.371201337862, + "width": 13.118373325894026, + "height": 17.951572963169383, + "angle": 0, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "wn2Ivq1enxBAhYeZ8Q1f1" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 1643381122, + "version": 248, + "versionNonce": 1253822238, + "isDeleted": false, + "boundElements": null, + "updated": 1709205155388, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -13.118373325894026, + 17.951572963169383 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "type": "line", + "version": 458, + "versionNonce": 721598914, + "isDeleted": false, + "id": "LuJH7OPVOwzMNk9-G1ltP", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4389.484288747022, + "y": -6484.614626979603, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "width": 14.59167480468659, + "height": 15.397382463726899, + "seed": 756159554, + "groupIds": [ + "wn2Ivq1enxBAhYeZ8Q1f1" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1709205155388, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 14.59167480468659, + 15.397382463726899 + ] + ] + }, + { + "id": "17huQdfU8roWs28YiJOFQ", + "type": "arrow", + "x": -4811.59438537688, + "y": -6279.120094837566, + "width": 406.57657464437034, + "height": 1.9340786202155869, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 1238573762, + "version": 418, + "versionNonce": 915169410, + "isDeleted": false, + "boundElements": null, + "updated": 1709205155388, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 406.57657464437034, + 1.9340786202155869 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "I8RGguEZIqgQ2iYCMY84G", + "focus": 0.0761171461910146, + "gap": 1.8824790651980692 + }, + "endBinding": { + "elementId": "_pxFluJ_cp9w75XmiVlw-", + "focus": -0.06367547286089222, + "gap": 1.8162509856176428 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "type": "arrow", + "version": 1392, + "versionNonce": 256467102, + "isDeleted": false, + "id": "O9RyGZ8uliaqanJxFXT6M", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4364.8497363480365, + "y": -6302.3465232926, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 169.7135555023724, + "height": 360.97302809826124, + "seed": 1255772546, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1709205155388, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": { + "elementId": "C6VNWiQh3UeB3CE82gqOe", + "focus": 0.08140434080565791, + "gap": 3.4684718011418063 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 169.7135555023724, + -360.97302809826124 + ] + ] + }, + { + "type": "ellipse", + "version": 1278, + "versionNonce": 1827733570, + "isDeleted": false, + "id": "C6VNWiQh3UeB3CE82gqOe", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4207.18357413668, + "y": -6711.496794865507, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 51.445748465402175, + "height": 47.903921944754984, + "seed": 547549250, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "id": "O9RyGZ8uliaqanJxFXT6M", + "type": "arrow" + }, + { + "id": "JlePwwVpmoikeh89UpvPo", + "type": "arrow" + } + ], + "updated": 1709205155388, + "link": null, + "locked": false + }, + { + "id": "cgeJO65hweUreVPeaKagB", + "type": "rectangle", + "x": -5027.41525956551, + "y": -6764.610223357403, + "width": 1237.3977057488414, + "height": 225.9534647176562, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1737730526, + "version": 393, + "versionNonce": 46420254, + "isDeleted": false, + "boundElements": [ + { + "id": "-y7UzxgOlXVLOiBsmLUry", + "type": "arrow" + } + ], + "updated": 1709205155389, + "link": null, + "locked": false + }, + { + "id": "oTJTZ68UunsDfa6Bz65__", + "type": "rectangle", + "x": -5025.735397679348, + "y": -6531.796187417758, + "width": 625.2706473214296, + "height": 194.04575892857156, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 2098033822, + "version": 624, + "versionNonce": 926635970, + "isDeleted": false, + "boundElements": [ + { + "id": "xW0DXOgS5gQ44Umiwfsvn", + "type": "arrow" + }, + { + "id": "HVrlrSxgKJ_WzZvmX9Y5N", + "type": "arrow" + }, + { + "id": "-y7UzxgOlXVLOiBsmLUry", + "type": "arrow" + } + ], + "updated": 1709205155389, + "link": null, + "locked": false + }, + { + "type": "ellipse", + "version": 1651, + "versionNonce": 1855487326, + "isDeleted": false, + "id": "zEGtaUtEdZYSrf4dbL4tF", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -3911.67220050099, + "y": -6714.8132823367705, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 51.445748465402175, + "height": 49, + "seed": 1726980894, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "id": "JlePwwVpmoikeh89UpvPo", + "type": "arrow" + } + ], + "updated": 1709205155389, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 522, + "versionNonce": 1604133278, + "isDeleted": false, + "id": "FN4kZnnuFWH3WVLoVME3W", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4153.782156075877, + "y": -6675.249365694784, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 199.99989318847656, + "height": 20, + "seed": 361336670, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "JlePwwVpmoikeh89UpvPo", + "type": "arrow" + } + ], + "updated": 1709205155389, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "retry to insert to table ", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "retry to insert to table ", + "lineHeight": 1.25, + "baseline": 14 + }, + { + "id": "JlePwwVpmoikeh89UpvPo", + "type": "arrow", + "x": -4155.099731157279, + "y": -6692.036355564607, + "width": 241.66386188623483, + "height": 0.5398655690451051, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 2050260382, + "version": 654, + "versionNonce": 1224949214, + "isDeleted": false, + "boundElements": null, + "updated": 1709205155389, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 241.66386188623483, + 0.5398655690451051 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "C6VNWiQh3UeB3CE82gqOe", + "focus": -0.18998017452960755, + "gap": 1.0731331833146314 + }, + "endBinding": { + "elementId": "zEGtaUtEdZYSrf4dbL4tF", + "focus": 0.045787793630051817, + "gap": 1.7915412032686433 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "type": "rectangle", + "version": 2689, + "versionNonce": 1326964318, + "isDeleted": false, + "id": "kZ7xyav-wF0SzTg-W48oA", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4041.8004695398613, + "y": -6645.344150989828, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 155.75714111328205, + "height": 110, + "seed": 958905538, + "groupIds": [ + "PZA8FLKHsg03dyKPiMiXY", + "bDtIabYEhbJPretPnaQb7" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "ceiYP_Er-lS11gbNqCEq5" + }, + { + "id": "FfVjSXw-kI_ckJ0J0_3fj", + "type": "arrow" + } + ], + "updated": 1709205155389, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 2142, + "versionNonce": 899825282, + "isDeleted": false, + "id": "ceiYP_Er-lS11gbNqCEq5", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4036.8004695398613, + "y": -6640.344150989828, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 142.6879425048828, + "height": 100, + "seed": 1951847554, + "groupIds": [ + "PZA8FLKHsg03dyKPiMiXY", + "bDtIabYEhbJPretPnaQb7" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205155389, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "my-table/\n _delta_log/\n 0000.json\n \n ", + "textAlign": "left", + "verticalAlign": "top", + "containerId": "kZ7xyav-wF0SzTg-W48oA", + "originalText": "my-table/\n _delta_log/\n 0000.json\n \n ", + "lineHeight": 1.25, + "baseline": 94 + }, + { + "type": "text", + "version": 1061, + "versionNonce": 1554098782, + "isDeleted": false, + "id": "B1XAVEOiOsHSxYhKiQgY3", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -3973.4624993511748, + "y": -6581.080343965555, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "width": 72.01594543457031, + "height": 20, + "seed": 883118750, + "groupIds": [ + "SDTkfJK_c9rlszHZCIj2k", + "bDtIabYEhbJPretPnaQb7" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205195630, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "0001.json", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "0001.json", + "lineHeight": 1.25, + "baseline": 14 + }, + { + "type": "text", + "version": 1143, + "versionNonce": 668151042, + "isDeleted": false, + "id": "eNHxsBS_MtiO9Hv3irz1l", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -3974.434004652515, + "y": -6558.378230405287, + "strokeColor": "#f08c00", + "backgroundColor": "transparent", + "width": 79.07194519042969, + "height": 20, + "seed": 1012704350, + "groupIds": [ + "mCoQNulPCYMTRLSxBRgeh", + "bDtIabYEhbJPretPnaQb7" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205176595, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "0002.json", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "0002.json", + "lineHeight": 1.25, + "baseline": 14 + }, + { + "id": "FfVjSXw-kI_ckJ0J0_3fj", + "type": "arrow", + "x": -3867.157059887273, + "y": -6608.165817588203, + "width": 72.44893829240482, + "height": 307.13824837993525, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1220073950, + "version": 847, + "versionNonce": 1205755614, + "isDeleted": false, + "boundElements": null, + "updated": 1709205155389, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 72.44893829240482, + 307.13824837993525 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "kZ7xyav-wF0SzTg-W48oA", + "focus": -1.1112951929089885, + "gap": 18.886268539306002 + }, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "type": "ellipse", + "version": 1141, + "versionNonce": 1927415298, + "isDeleted": false, + "id": "sza_MQkoDVdKg6y1DOeBx", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -3816.5167483317946, + "y": -6299.659237606094, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 51.445748465402175, + "height": 47.903921944754984, + "seed": 743475266, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "id": "E1zwoGpModq1EKmZdw64p", + "type": "arrow" + }, + { + "id": "FfVjSXw-kI_ckJ0J0_3fj", + "type": "arrow" + } + ], + "updated": 1709205155389, + "link": null, + "locked": false + }, + { + "type": "arrow", + "version": 780, + "versionNonce": 322253698, + "isDeleted": false, + "id": "E1zwoGpModq1EKmZdw64p", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4349.5204543130585, + "y": -6275.421048283134, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 531.3035993004432, + "height": 1.377464118514581, + "seed": 978902978, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1709205160760, + "link": null, + "locked": false, + "startBinding": { + "elementId": "_pxFluJ_cp9w75XmiVlw-", + "focus": 0.12887160237939754, + "gap": 2.477823519563046 + }, + "endBinding": { + "elementId": "sza_MQkoDVdKg6y1DOeBx", + "focus": -0.07242759362461478, + "gap": 1.7576857359728635 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 531.3035993004432, + 1.377464118514581 + ] + ] + }, + { + "type": "rectangle", + "version": 2707, + "versionNonce": 1441096386, + "isDeleted": false, + "id": "KPYxoOFrlBo2Sb0dZg9gc", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -3828.179226003347, + "y": -6244.524053118949, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 155.75714111328205, + "height": 110, + "seed": 301284034, + "groupIds": [ + "vBqsrhAPC4z2QC277Au0l", + "GNeveevTDFVnckBqN-YoW" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "bXVBM1yeZdSlPFNIlLkyd" + } + ], + "updated": 1709205163717, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 2160, + "versionNonce": 913291906, + "isDeleted": false, + "id": "bXVBM1yeZdSlPFNIlLkyd", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -3823.179226003347, + "y": -6239.524053118949, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 142.6879425048828, + "height": 100, + "seed": 314872450, + "groupIds": [ + "vBqsrhAPC4z2QC277Au0l", + "GNeveevTDFVnckBqN-YoW" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205163717, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "my-table/\n _delta_log/\n 0000.json\n \n ", + "textAlign": "left", + "verticalAlign": "top", + "containerId": "KPYxoOFrlBo2Sb0dZg9gc", + "originalText": "my-table/\n _delta_log/\n 0000.json\n \n ", + "lineHeight": 1.25, + "baseline": 94 + }, + { + "type": "text", + "version": 1079, + "versionNonce": 361983390, + "isDeleted": false, + "id": "8Xl61AApZV1BJq0TXaS4E", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -3759.841255814661, + "y": -6180.260246094677, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "width": 72.01594543457031, + "height": 20, + "seed": 928182850, + "groupIds": [ + "j4jsjTrEjPq8dqu3lb09a", + "GNeveevTDFVnckBqN-YoW" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205188428, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "0001.json", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "0001.json", + "lineHeight": 1.25, + "baseline": 14 + }, + { + "type": "text", + "version": 1162, + "versionNonce": 1853594626, + "isDeleted": false, + "id": "YjDxh1oKbYOKmIFMj8yFT", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -3760.8127611160016, + "y": -6157.558132534407, + "strokeColor": "#f08c00", + "backgroundColor": "transparent", + "width": 79.07194519042969, + "height": 20, + "seed": 1115642370, + "groupIds": [ + "3R4ogctVE-taTP--Wuu9s", + "GNeveevTDFVnckBqN-YoW" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205184894, + "link": null, + "locked": false, + "fontSize": 16, + "fontFamily": 1, + "text": "0002.json", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "0002.json", + "lineHeight": 1.25, + "baseline": 14 + }, + { + "id": "Dk12h2yd6vKwNh6HJeHKp", + "type": "text", + "x": -3769.3598018666926, + "y": -6324.110945718538, + "width": 129.79193115234375, + "height": 20, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1764308574, + "version": 139, + "versionNonce": 1410598082, + "isDeleted": false, + "boundElements": null, + "updated": 1709205155389, + "link": null, + "locked": false, + "text": "Merge succeeds ", + "fontSize": 16, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 14, + "containerId": null, + "originalText": "Merge succeeds ", + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 792, + "versionNonce": 715989086, + "isDeleted": false, + "id": "HVrlrSxgKJ_WzZvmX9Y5N", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4824.464998791562, + "y": -6302.695820250774, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 84.15189668284711, + "height": 173.40085586770238, + "seed": 1437605470, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205155389, + "link": null, + "locked": false, + "startBinding": { + "elementId": "I8RGguEZIqgQ2iYCMY84G", + "focus": 0.14746664035579127, + "gap": 1.6478971627609553 + }, + "endBinding": { + "elementId": "EeXqsSo4ns-ZCoBVD0LCL", + "focus": -2.103379796210999, + "gap": 13.268274302467944 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 84.15189668284711, + -173.40085586770238 + ] + ] + }, + { + "id": "-y7UzxgOlXVLOiBsmLUry", + "type": "arrow", + "x": -4837.840230596915, + "y": -6305.734970536609, + "width": 108.28679638350604, + "height": 365.9516799068024, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 844996510, + "version": 2280, + "versionNonce": 2054823042, + "isDeleted": false, + "boundElements": null, + "updated": 1709205155389, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 108.28679638350604, + -365.9516799068024 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "I8RGguEZIqgQ2iYCMY84G", + "focus": -0.22550627866706457, + "gap": 1 + }, + "endBinding": { + "elementId": "NHmazCsKZ8W6WlErUNsKj", + "focus": -2.0766335163406278, + "gap": 15.659499250293266 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "Vp4_YREtsDSxxEhj5zmIt", + "type": "arrow", + "x": -4697.360512743435, + "y": -6503.40324807305, + "width": 177.86420549665127, + "height": 1.169651576450633, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1293681794, + "version": 72, + "versionNonce": 388326558, + "isDeleted": false, + "boundElements": null, + "updated": 1709205155389, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 177.86420549665127, + 1.169651576450633 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "Laf-YTcaNfUCqrV36HKSG", + "focus": -0.14874123401723216, + "gap": 1.1813995419279344 + }, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "type": "text", + "version": 840, + "versionNonce": 1674001474, + "isDeleted": false, + "id": "NHmazCsKZ8W6WlErUNsKj", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4769.612912101397, + "y": -6701.612827762002, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 24.399978637695312, + "height": 25, + "seed": 1929146818, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "-y7UzxgOlXVLOiBsmLUry", + "type": "arrow" + } + ], + "updated": 1709205155389, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "b2", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "b2", + "lineHeight": 1.25, + "baseline": 17 + }, + { + "type": "text", + "version": 846, + "versionNonce": 210444510, + "isDeleted": false, + "id": "muXYWomAHA9tM6b8PBL2N", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -4240.239686145225, + "y": -6700.096333849421, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 23.779983520507812, + "height": 25, + "seed": 512954050, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709205155389, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "b3", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "b3", + "lineHeight": 1.25, + "baseline": 17 + }, + { + "id": "PAyd1QjwPqTb57jaQ9LsN", + "type": "text", + "x": -5056.295138910642, + "y": -6860.213749767095, + "width": 338.995849609375, + "height": 35, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1829891934, + "version": 139, + "versionNonce": 1647610498, + "isDeleted": false, + "boundElements": null, + "updated": 1709205317845, + "link": null, + "locked": false, + "text": "Multi-writers Workaround", + "fontSize": 28, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 24, + "containerId": null, + "originalText": "Multi-writers Workaround", + "lineHeight": 1.25 + } + ], + "appState": { + "gridSize": null, + "viewBackgroundColor": "#ffffff" + }, + "files": {} +} \ No newline at end of file diff --git a/v1.46/assets/img/delta-record-addition.png b/v1.46/assets/img/delta-record-addition.png new file mode 100644 index 000000000..8ce14a97d Binary files /dev/null and b/v1.46/assets/img/delta-record-addition.png differ diff --git a/v1.46/assets/img/delta-schema-change.png b/v1.46/assets/img/delta-schema-change.png new file mode 100644 index 000000000..a56c19dde Binary files /dev/null and b/v1.46/assets/img/delta-schema-change.png differ diff --git a/v1.46/assets/img/deploy/deploy-lakefs.excalidraw.png b/v1.46/assets/img/deploy/deploy-lakefs.excalidraw.png new file mode 100644 index 000000000..8dff1ec99 Binary files /dev/null and b/v1.46/assets/img/deploy/deploy-lakefs.excalidraw.png differ diff --git a/v1.46/assets/img/deploy/deploy-on-aws.excalidraw.png b/v1.46/assets/img/deploy/deploy-on-aws.excalidraw.png new file mode 100644 index 000000000..48f80f96a Binary files /dev/null and b/v1.46/assets/img/deploy/deploy-on-aws.excalidraw.png differ diff --git a/v1.46/assets/img/deploy/deploy-on-azure.excalidraw.png b/v1.46/assets/img/deploy/deploy-on-azure.excalidraw.png new file mode 100644 index 000000000..dde393808 Binary files /dev/null and b/v1.46/assets/img/deploy/deploy-on-azure.excalidraw.png differ diff --git a/v1.46/assets/img/deploy/deploy-on-gcp.excalidraw.png b/v1.46/assets/img/deploy/deploy-on-gcp.excalidraw.png new file mode 100644 index 000000000..a0ccbfdc5 Binary files /dev/null and b/v1.46/assets/img/deploy/deploy-on-gcp.excalidraw.png differ diff --git a/v1.46/assets/img/docs_logo.jpg b/v1.46/assets/img/docs_logo.jpg new file mode 100644 index 000000000..45d7defcb Binary files /dev/null and b/v1.46/assets/img/docs_logo.jpg differ diff --git a/v1.46/assets/img/docs_logo.png b/v1.46/assets/img/docs_logo.png new file mode 100644 index 000000000..000395641 Binary files /dev/null and b/v1.46/assets/img/docs_logo.png differ diff --git a/v1.46/assets/img/duckdb.png b/v1.46/assets/img/duckdb.png new file mode 100644 index 000000000..ced7e6527 Binary files /dev/null and b/v1.46/assets/img/duckdb.png differ diff --git a/v1.46/assets/img/empty_repo_list.png b/v1.46/assets/img/empty_repo_list.png new file mode 100644 index 000000000..4d3ff21ce Binary files /dev/null and b/v1.46/assets/img/empty_repo_list.png differ diff --git a/v1.46/assets/img/enterprise/enterprise-arch.excalidraw b/v1.46/assets/img/enterprise/enterprise-arch.excalidraw new file mode 100644 index 000000000..374e680d8 --- /dev/null +++ b/v1.46/assets/img/enterprise/enterprise-arch.excalidraw @@ -0,0 +1,1450 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "type": "rectangle", + "version": 422, + "versionNonce": 1311699014, + "index": "a2", + "isDeleted": false, + "id": "7eEwcdvLsyiVJQ43QZnR5", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 20, + "angle": 0, + "x": 1750.81438463707, + "y": -926.8342062515839, + "strokeColor": "#0c8599", + "backgroundColor": "#eaddd7", + "width": 332.31903204258964, + "height": 193.2722988936914, + "seed": 1416552582, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "_6gNM-DRkJaMKQsQ2SyzQ", + "type": "arrow" + }, + { + "id": "YllS82nAwrqMo9ZSXpVb1", + "type": "arrow" + }, + { + "id": "rbM2veZIDmCophmBNfmqs", + "type": "arrow" + }, + { + "id": "Z3xFKVJN3UYuyp4DXgfvn", + "type": "arrow" + } + ], + "updated": 1714308036640, + "link": null, + "locked": false + }, + { + "id": "xnrJUlSpz2SdEBfnxJDd9", + "type": "text", + "x": 1869.9344887052414, + "y": -899.8937096483263, + "width": 79.68794250488281, + "height": 35, + "angle": 0, + "strokeColor": "#0c8599", + "backgroundColor": "#eaddd7", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 40, + "groupIds": [], + "frameId": null, + "index": "a4", + "roundness": null, + "seed": 1918401370, + "version": 131, + "versionNonce": 1366144518, + "isDeleted": false, + "boundElements": null, + "updated": 1714308045116, + "link": null, + "locked": false, + "text": "Fluffy", + "fontSize": 28, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Fluffy", + "lineHeight": 1.25 + }, + { + "id": "Gawq1ZdBkaz4K1CvR6dpE", + "type": "rectangle", + "x": 1751.8773808679393, + "y": -1222.8666077688783, + "width": 332.31903204258964, + "height": 193.2722988936914, + "angle": 0, + "strokeColor": "#0c8599", + "backgroundColor": "#eaddd7", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 20, + "groupIds": [ + "3asvjcnRT22kyHS7lR_RC" + ], + "frameId": null, + "index": "a5V", + "roundness": { + "type": 3 + }, + "seed": 768808966, + "version": 389, + "versionNonce": 910187974, + "isDeleted": false, + "boundElements": [ + { + "id": "_6gNM-DRkJaMKQsQ2SyzQ", + "type": "arrow" + }, + { + "id": "YjQgpSF3oQ4gnZyPRlRL1", + "type": "arrow" + }, + { + "id": "-iwNE2WrEhf-EWSRbcj0e", + "type": "arrow" + }, + { + "id": "UPmw7JR4shDYhAn-VLH32", + "type": "arrow" + } + ], + "updated": 1714308007790, + "link": null, + "locked": false + }, + { + "id": "0S4TIenuNuF6VNZaBg1-o", + "type": "image", + "x": 1867.9048427104228, + "y": -1146.3573032827424, + "width": 100.2641083576225, + "height": 100.2641083576225, + "angle": 0, + "strokeColor": "transparent", + "backgroundColor": "#eaddd7", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "groupIds": [ + "3asvjcnRT22kyHS7lR_RC" + ], + "frameId": null, + "index": "a6", + "roundness": null, + "seed": 201664006, + "version": 342, + "versionNonce": 1617396230, + "isDeleted": false, + "boundElements": null, + "updated": 1714307213408, + "link": null, + "locked": false, + "status": "saved", + "fileId": "42f43407d586d13ccf0d29be8715d3ed1c722167", + "scale": [ + 1, + 1 + ] + }, + { + "type": "text", + "version": 413, + "versionNonce": 1565395290, + "index": "a7", + "isDeleted": false, + "id": "0SvUAuAjTuKs2AXrLTM8v", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 40, + "angle": 0, + "x": 1873.992921059156, + "y": -1193.2973743219482, + "strokeColor": "#0c8599", + "backgroundColor": "#eaddd7", + "width": 88.08795166015625, + "height": 35, + "seed": 1432544582, + "groupIds": [ + "3asvjcnRT22kyHS7lR_RC" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1714307213408, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "lakeFS", + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "lakeFS", + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 604, + "versionNonce": 686301958, + "index": "a8", + "isDeleted": false, + "id": "VlJw3MaharsUWGsLHAxL8", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 20, + "angle": 0, + "x": 1332.7380388717243, + "y": -1067.2081658138754, + "strokeColor": "#0c8599", + "backgroundColor": "#eaddd7", + "width": 200.96411345337762, + "height": 147.57084418783415, + "seed": 1812680454, + "groupIds": [ + "Q80DkbObQsva0V-UQX9pr" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "YjQgpSF3oQ4gnZyPRlRL1", + "type": "arrow" + }, + { + "id": "YllS82nAwrqMo9ZSXpVb1", + "type": "arrow" + }, + { + "id": "UahJQLVQwuqbMTeM6d-qo", + "type": "arrow" + } + ], + "updated": 1714307461317, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 349, + "versionNonce": 176585498, + "index": "a9", + "isDeleted": false, + "id": "GeK2ok6yPGj7y77I1AXx1", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 40, + "angle": 0, + "x": 1363.3101606008545, + "y": -1018.4227437199584, + "strokeColor": "#0c8599", + "backgroundColor": "#eaddd7", + "width": 139.8198699951172, + "height": 50, + "seed": 5313606, + "groupIds": [ + "Q80DkbObQsva0V-UQX9pr" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1714307281900, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Reverse Proxy\n (Nginx)", + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "Reverse Proxy\n (Nginx)", + "lineHeight": 1.25 + }, + { + "id": "_6gNM-DRkJaMKQsQ2SyzQ", + "type": "arrow", + "x": 1913.5743935383239, + "y": -1018.2268453843149, + "width": 2.830819593245451, + "height": 93.82056632347599, + "angle": 0, + "strokeColor": "#0c8599", + "backgroundColor": "#eaddd7", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aA", + "roundness": { + "type": 2 + }, + "seed": 446823578, + "version": 102, + "versionNonce": 1619076186, + "isDeleted": false, + "boundElements": null, + "updated": 1714307404640, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -2.830819593245451, + 93.82056632347599 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "Gawq1ZdBkaz4K1CvR6dpE", + "focus": 0.007119567756919515, + "gap": 11.367463490871955 + }, + "endBinding": { + "elementId": "7eEwcdvLsyiVJQ43QZnR5", + "focus": -0.05366155495896556, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "YjQgpSF3oQ4gnZyPRlRL1", + "type": "arrow", + "x": 1541.7823144330268, + "y": -1021.0620537493118, + "width": 203.05221193095144, + "height": 112.83609439583154, + "angle": 0, + "strokeColor": "#0c8599", + "backgroundColor": "#eaddd7", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aC", + "roundness": { + "type": 2 + }, + "seed": 1991576282, + "version": 123, + "versionNonce": 1510353626, + "isDeleted": false, + "boundElements": null, + "updated": 1714307458120, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 203.05221193095144, + -112.83609439583154 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "VlJw3MaharsUWGsLHAxL8", + "focus": 0.25218233616941843, + "gap": 8.080162107924934 + }, + "endBinding": { + "elementId": "Gawq1ZdBkaz4K1CvR6dpE", + "focus": 0.5499057700881548, + "gap": 7.042854503961053 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "type": "arrow", + "version": 376, + "versionNonce": 1542847366, + "index": "aD", + "isDeleted": false, + "id": "YllS82nAwrqMo9ZSXpVb1", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 1543.05591652687, + "y": -973.304206322248, + "strokeColor": "#0c8599", + "backgroundColor": "#eaddd7", + "width": 190.63891100780506, + "height": 141.50883654523204, + "seed": 3654918, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1714307453297, + "link": null, + "locked": false, + "startBinding": { + "elementId": "VlJw3MaharsUWGsLHAxL8", + "focus": -0.41390023099597545, + "gap": 9.353764201768172 + }, + "endBinding": { + "elementId": "7eEwcdvLsyiVJQ43QZnR5", + "focus": -0.6112006930068046, + "gap": 17.119557102394765 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 190.63891100780506, + 141.50883654523204 + ] + ] + }, + { + "type": "arrow", + "version": 460, + "versionNonce": 1498259162, + "index": "aE", + "isDeleted": false, + "id": "UahJQLVQwuqbMTeM6d-qo", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 1173.214626408946, + "y": -996.584375123391, + "strokeColor": "#0c8599", + "backgroundColor": "#eaddd7", + "width": 147.33746540617403, + "height": 3.8066413573469617, + "seed": 1059135238, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1714307487588, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": { + "elementId": "VlJw3MaharsUWGsLHAxL8", + "focus": 0.12934005021811398, + "gap": 12.185947056604164 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 147.33746540617403, + -3.8066413573469617 + ] + ] + }, + { + "type": "text", + "version": 295, + "versionNonce": 683785434, + "index": "aF", + "isDeleted": false, + "id": "vGEU5fYL-QHgrV6Nnkd2A", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 1169.721772806785, + "y": -1043.1820831354905, + "strokeColor": "#0c8599", + "backgroundColor": "#eaddd7", + "width": 151.57986450195312, + "height": 25, + "seed": 2031666950, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1714307493692, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "lakefs.acme.com", + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "lakefs.acme.com", + "lineHeight": 1.25 + }, + { + "type": "text", + "version": 669, + "versionNonce": 2028106522, + "index": "aG", + "isDeleted": false, + "id": "JXoiTwHwA3Ec51XnaA8u5", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 1335.1256345812612, + "y": -1103.9476515209071, + "strokeColor": "#0c8599", + "backgroundColor": "#eaddd7", + "width": 200.85980224609375, + "height": 50, + "seed": 1422380634, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1714307580097, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Prefix based routing\n", + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "Prefix based routing\n", + "lineHeight": 1.25 + }, + { + "id": "YU-SehvNUMNwO46FA8giW", + "type": "text", + "x": 1549.232180578229, + "y": -891.6480359875749, + "width": 120.33992004394531, + "height": 100, + "angle": 0, + "strokeColor": "#0c8599", + "backgroundColor": "#eaddd7", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aI", + "roundness": null, + "seed": 222185050, + "version": 306, + "versionNonce": 875611078, + "isDeleted": false, + "boundElements": null, + "updated": 1714545708243, + "link": null, + "locked": false, + "text": "/saml/\n/sso/\n/api/v1/oidc/\n...", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "/saml/\n/sso/\n/api/v1/oidc/\n...", + "lineHeight": 1.25 + }, + { + "type": "text", + "version": 596, + "versionNonce": 170156442, + "index": "aK", + "isDeleted": false, + "id": "oeGyuD3hWXrd6Q79vLMiN", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 1543.7913471875506, + "y": -1165.1730371584104, + "strokeColor": "#0c8599", + "backgroundColor": "#eaddd7", + "width": 182.09983825683594, + "height": 50, + "seed": 1650594374, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1714308072523, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Everything except \nthe below routes", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Everything except \nthe below routes", + "lineHeight": 1.25 + }, + { + "id": "z3wb6uoVDyLZgo_dpKyBl", + "type": "rectangle", + "x": 2215.0054595130678, + "y": -1337.7986665183848, + "width": 434.5793931209073, + "height": 697.3331334702658, + "angle": 0, + "strokeColor": "#0c8599", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 20, + "groupIds": [], + "frameId": null, + "index": "aO", + "roundness": { + "type": 3 + }, + "seed": 191414106, + "version": 265, + "versionNonce": 1579222362, + "isDeleted": false, + "boundElements": null, + "updated": 1714307698531, + "link": null, + "locked": false + }, + { + "id": "K5NClpRGylEmxB_Wm-5aT", + "type": "text", + "x": 2289.414797449179, + "y": -1309.3478654727094, + "width": 301.95184326171875, + "height": 35, + "angle": 0, + "strokeColor": "#0c8599", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aP", + "roundness": null, + "seed": 1400470662, + "version": 117, + "versionNonce": 620498394, + "isDeleted": false, + "boundElements": null, + "updated": 1714307719330, + "link": null, + "locked": false, + "text": "Third Party Providers", + "fontSize": 28, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Third Party Providers", + "lineHeight": 1.25 + }, + { + "id": "xnAyKqeLkXYZK021tYs2A", + "type": "image", + "x": 2365.901165471365, + "y": -1238.7492776405395, + "width": 145.4325718820477, + "height": 151.3685952241721, + "angle": 0, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aR", + "roundness": null, + "seed": 856504070, + "version": 306, + "versionNonce": 355214406, + "isDeleted": false, + "boundElements": [ + { + "id": "-iwNE2WrEhf-EWSRbcj0e", + "type": "arrow" + }, + { + "id": "UPmw7JR4shDYhAn-VLH32", + "type": "arrow" + } + ], + "updated": 1714308007790, + "link": null, + "locked": false, + "status": "saved", + "fileId": "01f5bbd8e4ddca1dd3d02921396d9d769ba087b4", + "scale": [ + 1, + 1 + ] + }, + { + "id": "4epq6d18H1Pi9HUPCc6dY", + "type": "image", + "x": 2368.551779999215, + "y": -841.2435079642223, + "width": 140.13134282634692, + "height": 140.13134282634692, + "angle": 0, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aU", + "roundness": null, + "seed": 1103079194, + "version": 330, + "versionNonce": 1668814534, + "isDeleted": false, + "boundElements": [ + { + "id": "Z3xFKVJN3UYuyp4DXgfvn", + "type": "arrow" + } + ], + "updated": 1714308036640, + "link": null, + "locked": false, + "status": "saved", + "fileId": "28af0d2b6f1f4003921becff31d875783d4890bb", + "scale": [ + 1, + 1 + ] + }, + { + "id": "PnXkBbkQ8Ig9XtCkVaieD", + "type": "text", + "x": 2322.2106052178233, + "y": -699.0748199926416, + "width": 216.4197998046875, + "height": 25, + "angle": 0, + "strokeColor": "#0c8599", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aV", + "roundness": null, + "seed": 1266908954, + "version": 148, + "versionNonce": 327826758, + "isDeleted": false, + "boundElements": null, + "updated": 1714307994815, + "link": null, + "locked": false, + "text": "SSO Identity Provider", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "SSO Identity Provider", + "lineHeight": 1.25 + }, + { + "type": "text", + "version": 269, + "versionNonce": 878103622, + "index": "aW", + "isDeleted": false, + "id": "QTjdAhBE1pUDySrts74uo", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 2331.997540218541, + "y": -882.7712134051693, + "strokeColor": "#0c8599", + "backgroundColor": "transparent", + "width": 213.2398223876953, + "height": 25, + "seed": 862017754, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "rbM2veZIDmCophmBNfmqs", + "type": "arrow" + } + ], + "updated": 1714308030286, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "KV DB (e.g. postgres)", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "KV DB (e.g. postgres)", + "lineHeight": 1.25 + }, + { + "type": "text", + "version": 369, + "versionNonce": 1260573702, + "index": "aX", + "isDeleted": false, + "id": "BhCRzPQ5ZrOOJH4GLlQxZ", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 2340.5175368616074, + "y": -1079.1342910633073, + "strokeColor": "#0c8599", + "backgroundColor": "transparent", + "width": 196.1998291015625, + "height": 25, + "seed": 1439635206, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1714307989094, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Blockstore (e.g. S3)", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Blockstore (e.g. S3)", + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 374, + "versionNonce": 405390406, + "index": "aY", + "isDeleted": false, + "id": "-iwNE2WrEhf-EWSRbcj0e", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 30, + "angle": 0, + "x": 2088.299140850368, + "y": -1138.7026272061219, + "strokeColor": "#0c8599", + "backgroundColor": "#eaddd7", + "width": 268.6262723812356, + "height": 0.3648552853771889, + "seed": 611672986, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1714308023190, + "link": null, + "locked": false, + "startBinding": { + "elementId": "Gawq1ZdBkaz4K1CvR6dpE", + "focus": -0.131149941438345, + "gap": 4.102727939839042 + }, + "endBinding": { + "elementId": "xnAyKqeLkXYZK021tYs2A", + "focus": -0.3277535041961902, + "gap": 8.97575223976105 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 268.6262723812356, + 0.3648552853771889 + ] + ] + }, + { + "type": "arrow", + "version": 1039, + "versionNonce": 1937114374, + "index": "aZ", + "isDeleted": false, + "id": "UPmw7JR4shDYhAn-VLH32", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 30, + "angle": 0, + "x": 2087.172907681361, + "y": -1126.1826647261519, + "strokeColor": "#0c8599", + "backgroundColor": "#eaddd7", + "width": 271.31743208119497, + "height": 144.26068438890047, + "seed": 295832454, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1714545494086, + "link": null, + "locked": false, + "startBinding": { + "elementId": "Gawq1ZdBkaz4K1CvR6dpE", + "focus": -0.4852460198889117, + "gap": 2.9764947708317777 + }, + "endBinding": { + "elementId": "WHdKqWgNktR-2_FDZRCeI", + "focus": -0.23420082794532118, + "gap": 17.88202860013439 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 271.31743208119497, + 144.26068438890047 + ] + ] + }, + { + "type": "arrow", + "version": 1011, + "versionNonce": 1544616838, + "index": "aa", + "isDeleted": false, + "id": "rbM2veZIDmCophmBNfmqs", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 30, + "angle": 0, + "x": 2086.182076054847, + "y": -854.8814542820674, + "strokeColor": "#0c8599", + "backgroundColor": "#eaddd7", + "width": 272.84001846872115, + "height": 96.89347749161016, + "seed": 1905304070, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1714545494087, + "link": null, + "locked": false, + "startBinding": { + "elementId": "7eEwcdvLsyiVJQ43QZnR5", + "focus": 0.22863684675511883, + "gap": 3.048659375187526 + }, + "endBinding": { + "elementId": "WHdKqWgNktR-2_FDZRCeI", + "focus": 0.17760024048881923, + "gap": 17.350273839121883 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 272.84001846872115, + -96.89347749161016 + ] + ] + }, + { + "type": "arrow", + "version": 548, + "versionNonce": 2143601626, + "index": "ab", + "isDeleted": false, + "id": "Z3xFKVJN3UYuyp4DXgfvn", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 30, + "angle": 0, + "x": 2080.7789417058734, + "y": -834.105838706363, + "strokeColor": "#0c8599", + "backgroundColor": "#eaddd7", + "width": 269.68130838476236, + "height": 35.1211459394126, + "seed": 6537926, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1714308045104, + "link": null, + "locked": false, + "startBinding": { + "elementId": "7eEwcdvLsyiVJQ43QZnR5", + "focus": -0.2134039460510788, + "gap": 1 + }, + "endBinding": { + "elementId": "4epq6d18H1Pi9HUPCc6dY", + "focus": 0.20616072996064502, + "gap": 18.091529908579332 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 269.68130838476236, + 35.1211459394126 + ] + ] + }, + { + "id": "SdPJKHOVhZhqFnlMA5tJO", + "type": "text", + "x": 1228.4676373570853, + "y": -989.6839333135869, + "width": 25.239990234375, + "height": 25, + "angle": 0, + "strokeColor": "#0c8599", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 30, + "groupIds": [], + "frameId": null, + "index": "ac", + "roundness": null, + "seed": 924095366, + "version": 47, + "versionNonce": 873928218, + "isDeleted": false, + "boundElements": null, + "updated": 1714308235438, + "link": null, + "locked": false, + "text": "[1]", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "[1]", + "lineHeight": 1.25 + }, + { + "type": "text", + "version": 218, + "versionNonce": 244381446, + "index": "ad", + "isDeleted": false, + "id": "C2dCS0ZX7ODBYix-TVr1K", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 30, + "angle": 0, + "x": 1415.517464366353, + "y": -911.5266491522183, + "strokeColor": "#0c8599", + "backgroundColor": "transparent", + "width": 34.05998229980469, + "height": 25, + "seed": 1245057222, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1714308251260, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "[2]", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "[2]", + "lineHeight": 1.25 + }, + { + "type": "text", + "version": 325, + "versionNonce": 242231002, + "index": "ae", + "isDeleted": false, + "id": "JD-FjoYseTKpSeV_sISoB", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 30, + "angle": 0, + "x": 1896.1240231565876, + "y": -1256.7142549400035, + "strokeColor": "#0c8599", + "backgroundColor": "transparent", + "width": 33.43998718261719, + "height": 25, + "seed": 1167838406, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1714308283752, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "[3]", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "[3]", + "lineHeight": 1.25 + }, + { + "type": "text", + "version": 291, + "versionNonce": 1401298906, + "index": "af", + "isDeleted": false, + "id": "PY2IOIshxbmyJGWhH0R2I", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 30, + "angle": 0, + "x": 1894.804382824698, + "y": -718.6392961957064, + "strokeColor": "#0c8599", + "backgroundColor": "transparent", + "width": 32.61997985839844, + "height": 25, + "seed": 1175851590, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1714308290945, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "[4]", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "[4]", + "lineHeight": 1.25 + }, + { + "type": "text", + "version": 585, + "versionNonce": 1938804570, + "index": "ag", + "isDeleted": false, + "id": "FAnl_jQpTBU04XntUl5Tl", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 30, + "angle": 0, + "x": 2512.2204326385317, + "y": -965.2341822337299, + "strokeColor": "#0c8599", + "backgroundColor": "transparent", + "width": 32.17997741699219, + "height": 25, + "seed": 277624346, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1714308334206, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "[5]", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "[5]", + "lineHeight": 1.25 + }, + { + "type": "text", + "version": 296, + "versionNonce": 1877833882, + "index": "ah", + "isDeleted": false, + "id": "bangvYBm9G4mP9YJ9wG0J", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 30, + "angle": 0, + "x": 2517.166552796947, + "y": -788.0557322867609, + "strokeColor": "#0c8599", + "backgroundColor": "transparent", + "width": 32.61997985839844, + "height": 25, + "seed": 711020998, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1714308338074, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "[6]", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "[6]", + "lineHeight": 1.25 + }, + { + "id": "WHdKqWgNktR-2_FDZRCeI", + "type": "image", + "x": 2376.3723683626904, + "y": -1035.8263413657496, + "width": 126.50653833186759, + "height": 144.49464751192338, + "angle": 0, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "aj", + "roundness": null, + "seed": 2029135834, + "version": 168, + "versionNonce": 470249094, + "isDeleted": false, + "boundElements": [ + { + "id": "UPmw7JR4shDYhAn-VLH32", + "type": "arrow" + }, + { + "id": "rbM2veZIDmCophmBNfmqs", + "type": "arrow" + } + ], + "updated": 1714545494086, + "link": null, + "locked": false, + "status": "saved", + "fileId": "8a6fb526480e2312a4c8f4e4503f7c8edca88962", + "scale": [ + 1, + 1 + ] + }, + { + "id": "zEOgmohkYz4YoN-KD02kD", + "type": "text", + "x": 1927.847385099101, + "y": -1009.3837441073794, + "width": 54.0999755859375, + "height": 75, + "angle": 0, + "strokeColor": "#0c8599", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "ak", + "roundness": null, + "seed": 1417480838, + "version": 118, + "versionNonce": 512455686, + "isDeleted": false, + "boundElements": null, + "updated": 1714545701359, + "link": null, + "locked": false, + "text": "RBAC\nSTS\n...", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "RBAC\nSTS\n...", + "lineHeight": 1.25 + } + ], + "appState": { + "gridSize": null, + "viewBackgroundColor": "#ffffff" + }, + "files": { + "42f43407d586d13ccf0d29be8715d3ed1c722167": { + "mimeType": "image/svg+xml", + "id": "42f43407d586d13ccf0d29be8715d3ed1c722167", + "dataURL": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNDUuMTcgODEuNjgiIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiMyNThjODI7fS5jbHMtMntmaWxsOiMyY2U1YjU7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5sb2dvIDEwPC90aXRsZT48ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIj48ZyBpZD0iTGF5ZXJfMS0yIiBkYXRhLW5hbWU9IkxheWVyIDEiPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTE0My45Miw0MGEyNS43NCwyNS43NCwwLDAsMC01LTkuNTZjLTEuMTMtNS42Ni0zLjU0LTExLTcuNTItMTQuMzJhMjEsMjEsMCwwLDAtOC42NC00LjYzLDEsMSwwLDAsMC0xLjE1LDEuMzFjMSwyLjYxLDIuNjQsOCwxLjkxLDEyLjIxYTI0LjA4LDI0LjA4LDAsMCwwLTMuMjQtNS42Yy0xLjg3LTIuNDItMi45Mi0zLjc3LTIuMzUtNi42NS40OS0yLjUsMy44MS00LjU4LDcuODktNS4yOWExLDEsMCwwLDAsLjUtMS42NUMxMjQsMy43MywxMTkuMiwwLDExMy41NSwwYy03LjksMC0xMi4xNCw0LjA2LTEzLjM0LDEwLjg3LTEsNS43OS41NSw5LjkyLDEuNjksMTIuOTQuMTkuNDguMzUuOTIuNDksMS4zMS0uOTItLjYzLTItMS4yOS0zLjExLTEuOTVhNTMuNTYsNTMuNTYsMCwwLDAtMjYuNy02Ljg1LDUzLjU0LDUzLjU0LDAsMCwwLTI2LjY5LDYuODVjLTEuMTUuNjYtMi4xOSwxLjMyLTMuMTEsMS45NS4xNC0uMzkuMy0uODMuNDktMS4zMSwxLjE0LTMsMi43MS03LjE1LDEuNjktMTIuOTRDNDMuNzUsNC4wNiwzOS41MiwwLDMxLjYyLDAsMjYsMCwyMS4xNiwzLjczLDE4Ljg4LDUuODZhMSwxLDAsMCwwLC41LDEuNjVjNC4wOC43MSw3LjQsMi43OSw3Ljg5LDUuMjkuNTcsMi44OC0uNDgsNC4yMy0yLjM1LDYuNjVhMjMuNzMsMjMuNzMsMCwwLDAtMy4yNCw1LjZjLS43My00LjIzLjk0LTkuNiwxLjkxLTEyLjIxYTEsMSwwLDAsMC0xLjE2LTEuMzEsMjEuMDgsMjEuMDgsMCwwLDAtOC42Myw0LjYzYy00LDMuMzYtNi4zOSw4LjY2LTcuNTIsMTQuMzJhMjUuNzQsMjUuNzQsMCwwLDAtNSw5LjU2Yy0xLjksOC4wNy0yLjUsMTYuNzgsNC41OSwyNS4xMSw0LjU0LDUuMzQsMTEuODIsOC4xMSwyMC44Miw4LjExYTIzLjEyLDIzLjEyLDAsMCwxLDUuNDEsMS42MWM2LjkxLDIuNTUsMTguNDksNi44MSw0MC41MSw2LjgxczMzLjYxLTQuMjYsNDAuNTItNi44MWEyMy4xMiwyMy4xMiwwLDAsMSw1LjQxLTEuNjFjOSwwLDE2LjI3LTIuNzcsMjAuODItOC4xMUMxNDYuNDIsNTYuODIsMTQ1LjgyLDQ4LjExLDE0My45Miw0MFoiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0xMTguNTEsNjguMzZjLTYuMTMsMC0xNS4zMSw4LjQyLTQ1LjkzLDguNDJzLTM5LjgtOC40Mi00NS45Mi04LjQyQzIuMTcsNjguMzYsNC45Miw0NS4yNSw0LjkyLDQ1LjI1UzkuNDYsNTYuNzksMjEsNTYuNzlhMjAuMzMsMjAuMzMsMCwwLDAsNC4xNi0uNDQuNTYuNTYsMCwwLDAsMC0xLjA4Yy0xNy44NC01LjMzLTE4LTI2LjE3LTcuNC0zNi4yLTQuNDgsMTkuMDYsOC44OCwyNSwxNCwyNi42MWEuNTEuNTEsMCwwLDAsLjUxLS44NEMyOSw0MS40MywyMS40NiwzMiwyOC44LDIyLjQ0LDM4LDEwLjUsMjUuNzQsNS45MSwyNS43NCw1LjkxYTE5LjI0LDE5LjI0LDAsMCwxLDUuODgtMWMzLjU0LDAsNy41NCwxLjI5LDguNTEsNi44MiwxLjgxLDEwLjIzLTcsMTMuODEtLjY2LDIyLjA2YS40MS40MSwwLDAsMCwuNjYsMGgwczExLTEyLjU1LDMyLjQ1LTEyLjU1UzEwNSwzMy43NywxMDUsMzMuNzdoMGEuNDEuNDEsMCwwLDAsLjY2LDBjNi4zNy04LjI1LTIuNDctMTEuODMtLjY2LTIyLjA2LDEtNS41Myw1LTYuODIsOC41MS02LjgyYTE5LjI0LDE5LjI0LDAsMCwxLDUuODgsMXMtMTIuMjUsNC41OS0zLjA3LDE2LjUzYzcuMzQsOS41NC0uMTgsMTktMy40OSwyMi40YS41MS41MSwwLDAsMCwuNTEuODRjNS4xMy0xLjU2LDE4LjQ5LTcuNTUsMTQtMjYuNjEsMTAuNjIsMTAsMTAuNDMsMzAuODctNy40LDM2LjJhLjU2LjU2LDAsMCwwLDAsMS4wOCwyMC4zMywyMC4zMywwLDAsMCw0LjE2LjQ0YzExLjUyLDAsMTYuMDUtMTEuNTQsMTYuMDUtMTEuNTRTMTQzLDY4LjM2LDExOC41MSw2OC4zNloiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik01Mi4zOCw0OGE0LjI5LDQuMjksMCwxLDAtOC41NywwYzAsMi4zNiwxLjkyLDMuMDYsNC4yOCwzLjA2UzUyLjM4LDUwLjM5LDUyLjM4LDQ4WiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTEwMS4zNiw0OGE0LjI5LDQuMjksMCwxLDAtOC41NywwYzAsMi4zNiwxLjkyLDMuMDYsNC4yOSwzLjA2UzEwMS4zNiw1MC4zOSwxMDEuMzYsNDhaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNzIuNTgsNjQuODdBMzkuNTcsMzkuNTcsMCwwLDEsNTMuODEsNjBhMiwyLDAsMCwxLS4zLTMuMjJoMGEyLDIsMCwwLDEsMi4yMi0uMjRjMy44LDIuMTEsMTAuMDgsMy40LDE2Ljg1LDMuNHMxMy0xLjI5LDE2Ljg2LTMuNGEyLDIsMCwwLDEsMi4yMi4yNGgwYTIsMiwwLDAsMS0uMywzLjIyQTM5LjU4LDM5LjU4LDAsMCwxLDcyLjU4LDY0Ljg3WiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTM0LjMzLDcwLjUyYTExLjY3LDExLjY3LDAsMCwxLTUuOS01LjIyLjI0LjI0LDAsMCwwLS40NS4xMVY2NmEyLjgyLDIuODIsMCwwLDEtMS4xNSwyLjI3bC0uMTkuMTQsMS4zNC4xNFoiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xMTAuOCw3MC41MmExMS43LDExLjcsMCwwLDAsNS45MS01LjIyLjI0LjI0LDAsMCwxLC40NS4xMVY2NmEyLjgyLDIuODIsMCwwLDAsMS4xNSwyLjI3bC4xOS4xNC0xLjM0LjE0WiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTQxLjY1LDMyLjI4YTI4LjEzLDI4LjEzLDAsMCwwLTIuOTEsMy4xNy4yMy4yMywwLDAsMS0uNC0uMTljLjEzLS42NS4yNi0xLjI1LjM2LTEuNjhhMS43NiwxLjc2LDAsMCwwLS4yLTEuMjVsLS4zNS0uNTdaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTAzLjUzLDMyLjI4YTI4LjEzLDI4LjEzLDAsMCwxLDIuOTEsMy4xNy4yMy4yMywwLDAsMCwuNDEtLjE5Yy0uMTQtLjY1LS4yNy0xLjI1LS4zNy0xLjY4YTEuNzYsMS43NiwwLDAsMSwuMi0xLjI1bC4zNS0uNTdaIi8+PC9nPjwvZz48L3N2Zz4=", + "created": 1714307151956, + "lastRetrieved": 1715236891767 + }, + "01f5bbd8e4ddca1dd3d02921396d9d769ba087b4": { + "mimeType": "image/png", + "id": "01f5bbd8e4ddca1dd3d02921396d9d769ba087b4", + "dataURL": "data:image/png;base64,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", + "created": 1714307782740, + "lastRetrieved": 1715236891767 + }, + "28af0d2b6f1f4003921becff31d875783d4890bb": { + "mimeType": "image/png", + "id": "28af0d2b6f1f4003921becff31d875783d4890bb", + "dataURL": "data:image/png;base64,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", + "created": 1714307898564, + "lastRetrieved": 1715236891767 + }, + "8a6fb526480e2312a4c8f4e4503f7c8edca88962": { + "mimeType": "image/png", + "id": "8a6fb526480e2312a4c8f4e4503f7c8edca88962", + "dataURL": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA1oAAAPUCAYAAAC0GEg2AAAAAXNSR0IArs4c6QAAIABJREFUeF7s3QmcjlX7wPHLzGDGNhhjL7JEot5SCUn2UlISZam0UERUpPzT/iZaXoQoSZSkZKvsylpSqWzZ993YZjFmOf/Pdb89XsnyzMyz3Mvv+Xyez4xxP+ec63vO88x9zbnvc3IJDwQQQAABBETk6NGjJj09XY4cOSL69fjx43LixAlJSUmRpKQkOXnypB5j/Z9+TUtLk8TEROv/9Tj9Xn+mrzfGnDI989/6H77XnA6fmZlplXvmw1fu6T/PnTu3FChQ4B/HxsbGSkRExN9+Hh0dLTExMX/7Wa5cuaRw4cKnfub7t69c32u0Dv2ZHhsZGSlafp48eSR//vxWmXpcwYIFJSoqSooUKeI7JhcDCgEEEEAAAX4ZMAYQQAABhwukpaUZTVA0odHn4cOHT32v/z79/3zH+L5qApWcnCypqakOV7BX8/PmzSv58uWzkkFNzjRRO9vz9P/TRO30Y6Kiovgdba9upTUIIIBAlgT4EM8SFwcjgAACwRXQWaU9e/bIgQMHZP/+/eL7/uDBg+dMmHTGh4f7BHSm7FxJWlxcnMTHx0vp0qWtr/osVaqUHs/vdfcNBSJCAAGHCvCB7NCOo9kIIOAcgeTkZCt52r17tzXbdK7vd+7cKceOHXNOYLTUdgI6k1a0aFHrMkZNwjT5Otf3xYsX18siOQ+wXS/SIAQQcIsAH7Bu6UniQACBkAscPHjQaHK0fft22bFjh/XUf+/du1f27dtnzUrpMyMjI+Rto0IELiSg95z5ZsNKliwpJUqUkIsuukjKli0rF198sfW9PuPi4jhXuBAm/48AAgicRYAPT4YFAgggcBaBlJQUozNQ+tQZqM2bN1tP3783btx41oUbwETAbQI6S1amTBlrdkxnySpUqGA9ff+uVKmS3lvG+YTbOp54EEAgxwJ8MOaYkAIQQMCJAjt27DBbtmyRbdu2nZqJ0pkpfeqsVEJCghPDos0IhEVA7xk7cyZM/12uXDkrKStbtiznG2HpGSpFAIFwCvDBF0596kYAgaAKJCQkGJ2FWr16taxZs+bUrNSff/5pLUXOAwEEQiOgS+Jr4uWbDatWrZpcfvnl1r81GWOFxdD0A7UggEBoBUi0QutNbQggEGABTabOTKQ0uVq3bp219xMPBBCwt8CZSZgmX75EjCTM3n1H6xBA4PwCJFqMEAQQsL3Atm3bzNq1a0Xvi9qwYYP1VZ966Z9uossDAQTcKaBJ2CWXXCJ6H1jlypVPfb3ssst0wQ7OYdzZ7USFgGsE+JByTVcSCALOFzh9dso3S/Xbb79ZK/fxQAABBE4XKFSokJV8+Wa/fF81MYuIiOD8huGCAAJhF+CDKOxdQAMQ8J7A2RKqP/74w1oSnQcCCCCQEwHd5FlnwM5MwCpWrMg5T05geS0CCGRZgA+dLJPxAgQQ8Ffg9MUofv75Z2tBilWrVln7TPFAAAEEQimgGzf77v+qWbOmtRhH9erVdZl6zoVC2RHUhYCHBPhw8VBnEyoCwRTYuHGj+eWXX0QTKv2ql/zt378/mFVSNgIIIJBjAd2o+corr5Srr75aNAHTr8x+5ZiVAhBAQERItBgGCCCQZYFdu3YZTah8zx9//JH7qLKsyAsQQMCuAnr/V40aNazEy/fUBTgiIyM5b7Jrp9EuBGwowAeGDTuFJiFgJ4Ezk6ply5bJoUOH7NRE2oIAAggEXaBgwYJyxRVXkHwFXZoKEHCPAImWe/qSSBDIkUB6errRvaf0Pipd8U9nq5YuXSoJCQk5KpcXI4AAAm4VKFCggHXZoe+eL12A47rrrpO8efNyfuXWTicuBLIgwAdBFrA4FAE3Cezbt8/o7JQmU/rU+6qSk5PdFCKxIIAAAiEXyJ8/v1x11VVSp04dqVu3rtSuXVuKFy/O+VbIe4IKEQi/AG/88PcBLUAgJAKbNm0yixcvliVLloh+1Q2AjTEhqZtKEEAAAS8LlCpVSm644QYr8dKvmohxv5eXRwSxe0WARMsrPU2cnhJITEw0v/7666mkivuqPNX9BIsAAjYX8N3vdXryVbRoUc7JbN5vNA+BrArwps6qGMcjYEMBXbDCN1Ol91b99NNPcvLkSRu2lCYhgAACCJwpEBkZKVWqVLHu9fIlX3q/V0REBOdpDBcEHCzAG9jBnUfTvSmgi1bobNXChQutGSudrdqzZ483MYgaAQQQcKmAXm7ou8/rxhtv5HJDl/YzYblbgETL3f1LdC4R0Pur5s6dK/qcN28eKwG6pF8JAwEEEPBXQFc4vP7666Vx48bWUzdWZsbLXz2OQyA8AiRa4XGnVgTOK+C7FFATq2+//VZ27NiBGAIIIIAAAqcEihcvLvXr17eSLl1ko3r16pzTMT4QsJkAb0qbdQjN8abA3r17jV4KqInVnDlzZMuWLd6EIGoEEEAAgWwJ+FY21MTr5ptvlnLlynGOly1JXoRA4AR4EwbOkpIQ8FvgwIED1h5Weo+VJle6hxVLrfvNx4EIIIAAAhcQqFChwqnLDBs2bCjFihXjnI9Rg0CIBXjThRic6rwpkJycbL777jtrtmrBggXy+++/S2ZmpjcxiBoBBBBAIKQCERERcuWVV0qDBg2kSZMm1iWH+fLl4xwwpL1AZV4U4E3mxV4n5pAInL6Ahd5nlZiYGJJ6qQQBBBBAAIHzCcTExFj3dfkW1rjmmms4H2TIIBAEAd5YQUClSG8KJCUlmaVLl8r06dNl2rRpsnXrVm9CEDUCCCCAgKMELrnkEmumSxOvpk2bSuHChTk/dFQP0li7CvBGsmvP0C5HCKxfv95oYvX111/L4sWL2STYEb1GIxFAAAEEziWQN29ea9Pk2267TVq0aCGVKlXiXJHhgkA2BXjzZBOOl3lTQDcLXrlypTVrNWPGDPn555+9CUHUCCCAAAKeENBFNXxJl97blSdPHs4dPdHzBBkIAd4sgVCkDFcLJCYmmvnz51uJ1dSpU2Xfvn2ujpfgEEAAAQQQOJtA0aJFpVGjRlbidfvtt0uRIkU4j2SoIHAeAd4gDA8EziKwY8cOo0nVV199Jd9//72kp6fjhAACCCCAAAJ/CeTOnVtuuukmufPOO6Vly5ZSpkwZzikZHQicIcCbgiGBwF8CukqgXhI4adIk0UUt2NeKoYEAAggggIB/AtWqVZO7775b2rZtK9WqVeP80j82jnK5AG8El3cw4Z1fYNWqVUYTK+63YqQggAACCCAQGAHffV2aeOky8hEREZxvBoaWUhwmwMB3WIfR3JwL+JKrTz/9VDZs2JDzAikBAQQQQAABBM4qcPHFF8sdd9xhzXaRdDFIvCZAouW1HvdovCRXHu14wkYAAQQQsI0ASZdtuoKGhEiARCtE0FQTegFfcjVhwgRZv3596BtAjQgggAACCCBwVoFy5cpZi2gw08UAcbMAiZabe9eDsW3ZssVMnDhRxowZI3/++acHBQgZAQQQQAABZwlo0nXPPfdIp06dpGrVqpybOqv7aO15BBjMDA/HC+zatcta0ILVAh3flQSAAAIIIOBxAV298L777rOepUuX5jzV4+PB6eEzgJ3egx5t/5EjR6x9rjS5mjlzJvtceXQcEDYCCCCAgDsFIiIipHbt2talhe3bt5f4+HjOWd3Z1a6OikHr6u51V3BpaWnm22+/lbFjx1rLsaemprorQKJBAAEEEEAAgX8IREdHS4sWLeT++++XZs2aSe7cuTl/ZZw4QoCB6ohu8nYjdVGLcePGyUcffST79u3zNgbRI4AAAggg4GGBokWLSuvWraVLly5Ss2ZNzmM9PBacEDoD1Am95ME2JiQkWPddffzxx7JkyRIPChAyAggggAACCJxPwHc/ly6iUaJECc5pGS62E2BQ2q5LvNsgvTTw66+/lg8//FD0EsG0tDTvYhA5AggggAACCPglkDt3bmnevLk89NBD1teoqCjOb/2S46BgCzAQgy1M+RcU2L59u/n0009l+PDhsn379gsezwEIIIAAAggggMDZBEqVKmWtWPjII49IpUqVOM9lmIRVgAEYVn7vVn7ixAkzbdo0GTVqlMybN0+MMd7FIHIEEEAAAQQQCKiAb9VCTbo6duwo+fLl45w3oMIU5o8Ag84fJY4JmMAff/xh3n//fRk/frwkJCQErFwKQgABBBBAAAEEziZQrFgxK9l6+OGH5fLLL+fcl2ESMgEGW8iovVtRamqqtecVs1feHQNEjgACCCCAgB0EatasKZ07d7YuL4yJieE82A6d4uI2MMBc3LnhDm3Xrl3Wsuzvvvuu7Ny5M9zNoX4EEEAAAQQQQMASKFGihDzwwAPy6KOPyiWXXML5MOMiKAIMrKCwerfQjIwMM3/+fGv26quvvpL09HTvYhA5AggggAACCNhaQO/latiwoTXL1apVK1YstHVvOa9xJFrO6zNbtvjIkSNm9OjR1sqBmzZtsmUbaRQCCCCAAAIIIHAugUqVKkm3bt1E9+UqXLgw58gMlRwLMIhyTOjtAjZs2GA++OADGTlypBw5csTbGESPAAIIIIAAAo4XKFCggLRr106eeOIJFs9wfG+GNwASrfD6O7b2RYsWmSFDhsjkyZMlIyPDsXHQcAQQQAABBBBA4GwCvssKe/ToIbfddptERERw3sxQyZIAAyZLXN4+ODEx0VrcQhOstWvXehuD6BFAAAEEEEDAMwLVqlUTTbh0mfj8+fNz/uyZns9ZoAyUnPl54tX79u0zeu+Vrh546NAhT8RMkAgggAACCCCAwJkCsbGxcv/998szzzwjZcqU4TyaIXJeAQYIA+ScAhs3brQuD9QNhlNSUpBCAAEEEEAAAQQQEJG8efNKmzZt5Nlnn5Vq1apxPs2oOKsAA4OB8Q+BxYsXm0GDBsn06dMlMzMTIQQQQCAgAnpiki9fvrOWVahQIYmMjPzH/0VFRUnBggXP+prjx4+fdQsJ3VZC/+9sj6SkJDl58mRA4qEQBBBAQO/jatmypTz99NNSt25dzqsZEn8TYEAwICwB3f9q6tSpognWsmXLUEEAAZcL5MqVS5cvtpIYXWFLv+pTf6b/1oRI/60nEXqpjD6KFClifdV/68/1uNy5c1vHahIVHR0tMTExkidPHr2HQfejkUKFCtn698zRo0eNLujjS8B09v7EiROSmpoqycnJkpaWJomJidaiP8eOHbPiP3z4sPX16NGj1h+jNKnTY/U4XX1V/61P/bd+9R3v8iFFeAh4XqBOnTrSu3dvK/Fi4QzPDwcLwNa/AOmi4AukpaWZCRMmyIABA2TNmjXBr5AaEEAgIAI6AxQXFyfFihWTokWLWt/rU3/uS5h8SZQmRJoc6VO//yux4vM/ID3hXyHHjx83vsRLEzZN0nz/Pj1B0//Te2F9z4MHD1rfn2uGzr/aOQoBBEIpcPnll1uXFLZt21b/GMVnbSjxbVYXnW+zDglVc06cOGE++ugjGThwoGzevDlU1VIPAgicIaAzQ8WLFz+VKJ2eNGkSpcnT6T/zfZ8nTx4+vz00mk6ePGl8yVdCQoKVfPm++pKx03+m3+/fv5/Lvz00RgjVfgIVK1aUPn36WItnREdH85ltvy4Keovo9KAT26sCXaJdNxh+8803ZefOnfZqHK1BwEUCehmdXmpXunRpKVWq1KmvZ/7s4osv5i+eLup3u4WSkJBgdu/eLXv27BH9qpcx+r73fdWfs+G83XqO9rhJoESJEvLoo4/Kk08+qVcWcO7tps69QCx0tkc6W+9D0BUEBw8eLPrXTx4IIJA9Ab3/6KKLLrKemiRpIlWyZEnrqd/r7FSZMmX08j0+X7NHzKvCIHDs2DGza9cuaxZME699+/ZZCZk+t2/fbj31j3MsJBKGzqFK1wjoVQo9e/a09uOy+/2rrkEPcyCcCIS5A4Jdvd4XMGzYMOsSQb3MhAcCCJxfQGeiNGGqUKHCqadvRkp/Vq5cOV3kgc9OBpInBXSGTC83982S6fe+p/5s7969YozxpA1BI+CvgF4C3r17d+nVq5cuQMTvE3/hHHgcnevATvOnyZpg6QbDeokgmwz7I8YxXhHQmafKlStL+fLlrRkpferslCZQ+ixQoACfi14ZDMQZcAH93aOzX9u2bbNmwXbs2GF93bJli2zcuNFKxHgggMB/BXSGS5eF79atG1dBuHRQcELhso713YOlqwjyC81lnUs4fgvofVC+Galq1aqJrgCl/9YEi+vj/WbkQAQCLqALMekliqtXr7ZWuj19Rmzr1q0s3hFwcQp0goAmXJpscQ+XE3ora20k0cqal22P1l9ew4cPt5Zp12vseSDgZgFdqa9s2bJSqVKlsz7z5cvHZ5ubBwCxuVIgKSnJ6KyXPjdt2mR99T11ZoxLEl3Z7QR1moDe49u3b1/p2rUrqxS6ZGRwMuLwjtSNhsePHy/9+/e3LtXggYCbBHThiapVq8pll11mzUrpV31qgsVSuW7qaWJB4PwCKSkpRpOvtWvXWjNhOiOm3//5558s0MHgcZ2AXsb+yiuvSPv27SUyMpJzdQf3MJ3n4M6bM2eO0f0Zfv31VwdHQdMREF3e3Lqsz3eJn+9yv+rVq5NQMUAQQOCcAmlpadY9Yb5LEX1fNQlLTk5GDgFHC+jvwhdffFHatGnD+bpDe5KOc2DHLV++3DzzzDOyYMECB7aeJntZQGeodDZKEypfMqVfddaKlfy8PDKIHYHAC+zatcv4Zr98X1euXClJSUmBr4wSEQiiQJ06deSNN96QevXqcd4eROdgFE2HBUM1SGX++eef5v/+7//kiy++4Fr1IBlTbOAEChcubCVUNWvWPPUkoQqcLyUhgED2BDQB+/nnn8X3XLFiBYtHZY+SV4VYoHHjxvLOO+9IjRo1OH8PsX12q6OjsisXwtft37/fvPXWW9abi80iQwhPVX4L6D5TpydUmmBVrFiRzxe/BTkQAQTCKaD7g+llh6cnYOvWrWMVxHB2CnWfVSAqKkoefPBB65LC0qVL83vW5uOEDrJxB/k2G37ttdfk+PHjNm4pTfOKgH7AX3rppVZS5bv8r3bt2hIfH89niVcGAXEi4BGBY8eOmd9+++3U4hu+JOzEiRMeESBMOwvky5fP2vT42WefZdNjG3cUJ0c27JyTJ09aS7W/+uqrcvDgQRu2kCZ5QUCXUNdL/WrVqmU9r7vuOtHFKfLkycPnhhcGADEigMA/BFJTU82qVavkxx9/lOXLl1tfdeaLpecZLOESiI+PF72t5LHHHuP3c7g64Tz1csJks06ZP3++6dGjh+gHOQ8EQikQGxsr1157rdStW9easdKbb4sVK8ZnRCg7gboQQMBxAr6ZL53xWrJkiXz//ffsZ+m4XnR+g/Vqk8GDB8stt9zC720bdSedYZPO2LFjh3nuuedk3LhxNmkRzXCzgO8SwBtuuOFUYqWr/0VERPCZ4OaOJzYEEAiJgG/BDU28Fi9ebN37xSWHIaH3fCW33XabDB06VC655BJ+n9tgNNAJYe6E5ORkM3DgQGvZzpSUlDC3hurdKnDxxRfrsrDW5X96GeBVV10lefPm5f3v1g4nLgQQsJXAiRMnjO556bvkcNGiRbJjxw5btZHGuEdA79/SbYB0r9WYmBh+14exa8EPI/60adPME088IVu2bAljK6jajQIVKlSwZqp8M1bVq1fnve7GjiYmBBBwrIDOeumM19y5c61ZL91kmXu9HNudtmx42bJlRRdUu//++zkHCFMPAR8G+PXr15uePXvKN998E4baqdKNAppY6f4amlzddNNNUq5cOd7bbuxoYkIAAdcK7N271+gCG77kS2fAMjMzXRsvgYVOoGHDhjJkyBBd0Ipzg9CxWzUBHkLwxMREM2jQIBkwYICkpqaGsGaqcpNAZGSkVKlSxZqt0uSqQYMGLK/upg4mFgQQQEBEdJENvdTQN+P1008/sZcmIyPbArlz57ZWJnzllVckNjaW8/9sS2bthUBnzStbR2dmZprx48db18vu2bMnW2XwIu8KaGKlqwA2atRIbrzxRmvWqlChQrx3vTskiBwBBDwocPToUetSw4ULF8q8efOsBTaY8fLgQMhhyKVLl7bWBWjfvj0LYOXQ0p+Xc7Lmj1IOjlm3bp155JFHRG985YGAvwLlypWTpk2bSpMmTawEKy4ujveqv3gchwACCHhA4ODBg0YTrjlz5sjs2bNl+/btHoiaEAMlUL9+fRk1apReIcP5RaBQz1IOuEHCTUtLM8OGDRNdsj05OTlItVCsWwR0hSDdt0ovBdTnNddcw3vTLZ1LHAgggEAIBDZt2mT0MkN9auJ19OjRENRKFU4WiI6Otq620nNVViIOTk9yMhcE15UrV5qHH35YVqxYEYTSKdINAhEREdYS677ESpdej46O5v3ohs4lBgQQQCDMAunp6WblypVW0qVP3UQ5LS0tzK2iersKXHHFFTJ69Gi59tprOQ8JcCcBGkBQ3RPrxRdflLffflvS09MDWDJFuUFA97LSywH1yeWAbuhRYkAAAQScIXD6ZYazZs1iDy9ndFtIWxkVFSVPP/20vPDCC+y9FUB5Eq0AYS5atMi6F2vdunUBKpFi3CBQrVo1adGihehO7bqIRUREBO85N3QsMSCAAAIOFli1apWZMWOGTJ8+XZYuXcr+XQ7uy0A3vWLFita9W40aNeJ8JQC4IOYQUVcBev755+Xdd99l9Z8cWrrh5Xq9sy67ronVXXfdJRdddBHvMTd0LDEggAACLhXYv3+/+fbbb0UTL/2amJjo0kgJy1+BXLlyiU4e6JZELAXvr9rZj+MkMAd+X3/9tXn00UeZgs+BoRteWqxYMbnlllusmaubb76Zpdfd0KnEgAACCHhQQG+B0CXkdabriy++kN27d3tQgZB9AqVKlRJd2K1Vq1bkC9kcFsBlA07/+tOjRw/57LPPsvFqXuIGgRo1aliJ1e233643j0pkZCTvJTd0LDEggAACCFgCGRkZZvny5TJt2jQr8Vq1ahUyHhVo166dDB48WOLj4znXyeIYACyLYFOnTjWdO3eWffv2ZfGVHO5kAV0lsHbt2nL33XdLy5Yt5ZJLLuG94+QOpe0IIIAAAlkS2Lx5s5k6dapMmjRJli1bxn1dWdJz/sElS5aUDz74QG+N4PwnC90Jlp9YSUlJ5tlnn5WhQ4fy4eKnmRsO08UsNLm67777pGLFirxf3NCpxIAAAgggkCOBHTt2mC+//NJKulhMI0eUjntxx44dZfjw4VKwYEHOifzoPZD8QFq2bJnRE+0NGzb4cTSHOF3Al1zph0mlSpV4jzi9Q2k/AggggEDQBLZv324mT55M0hU0YfsVXL58eRk7dqzUr1+fc6QLdA9A5wE6efKk6d+/v7XqSkZGhv1GOi0KmIDeZ6UzV/rkssCAsVIQAggggICHBPTyQp3l+vzzz+Xnn3/2UOTeCzUyMlL69u1r7buVJ08e8olzDAFgzgGzdetWozf/6ZQ4D3cK+GautJ+rVKnCe8Gd3UxUCCCAAAJhENDzqClTpjDTFQb7UFapf6j+9NNPpXLlypxHnQUelLOgfPLJJ+axxx6TY8eOhXKsUlcIBHQjPr0MVJMrPhRCAE4VCCCAAAKeF1i/fr3Rk/GPP/5YNm/e7HkPtwHExsbKe++9J/feey95xRmdC8hpILp/hE6DDhkyxG3vAU/HU6hQIWulQE2wGjVqJBEREYx7T48IgkcAAQQQCJfAihUrjCZc48ePl4SEhHA1g3qDIMBCGf9E5YTzL5NffvnF3HPPPbJ+/fogDD2KDLWAXjvcuHFjK7m68847JV++fIz1UHcC9SGAAAIIIHAOAV3N+auvvrJmuebOnSuZmZlYuUCgSpUq1j6zV111FeddIgKCiK6cYl0qmJyc7IIh7u0QqlatKm3btpUHHniARS28PRSIHgEEEEDAIQK7du2yFtEYM2aM/Pbbbw5pNc08l0B0dLQMGDBAevbs6fk8w9MAeqlgjx49rA3YeDhXoHDhwtKmTRvRKeu6detyaaBzu5KWI4AAAgh4XGDVqlVm3Lhx8uGHH8qBAwc8ruHs8Dt06GDdu1WgQAHP5hueDXzt2rWmdevWsnr1amePYo+2PiIiQpo1ayYPPfSQ7lIu0dHRnh3LHh0ChI0AAggg4GKBEydOmOnTp8vo0aNl9uzZXFro0L6uUaOGtfJk1apVPXme5smgJ0yYYB555BFJTEx06LD1brPj4+OlU6dO0qVLF6lYsaInx693e5/IEUAAAQS8KLBx40YzcuRI69LCgwcPepHA0TEXLFjQSpjbtGnjufM2TwWcnp5u+vXrJ2+88YajB6wXG1+zZk3p3LmzdXkgC1t4cQQQMwIIIICA1wV0lmvatGkyatQoawENHs4S0PO4YcOGSe7cuT2Tf3gm0EOHDlmrCs6ZM8dZo9LDrdW/gNx7772iC5Wweo2HBwKhI4AAAgggcIaA3gLy0UcfWUnX4cOH8XGIgN72oXuqxcXFeSIH8USQv/32m9ElvtkkzxnvQl0aVC8P1L98FC1a1BNj1Bk9QysRQAABBBCwl8CxY8fMhAkTZPjw4axYaK+uOWdrKlasKLq0/xVXXOH6czzXBzhx4kTz4IMPSlJSkkOGnzebmTdvXmnVqpU1e3XjjTe6flx6s5eJGgEEEEAAgeAJLFy40IwYMUImT54sqampwauIknMsUKBAAdEZydatW7v6nM+1wWVmZppXXnlFXnzxRTHG5HhAUEBwBIoVKyZdu3a1niVLlnTteAyOHqUigAACCCCAwJkCe/fuNTrDpU8Wz7Dv+MiVK5foufpzzz3n2q15XHliqzdL6qqCug8DD3sK6LRx9+7dRfspf/78rhyH9pSnVQgggAACCHhDQM8HJ06caC2CtmbNGm8E7cAo27Zta60o6cbFzlx3gnvw4EGjl6AtXLjQgUPN/U3W1QN1k+j27dtLVFSU68af+3uQCBFAAAEEEHCWQEZGhpk/f74MHjxLcG3LAAAgAElEQVRYZsyY4azGe6S1tWvXlilTpkiJEiVcdW7oqmD++OMP06JFC9m6datHhqUzwoyMjLTuv3rqqafk+uuvd9WYc0YP0EoEEEAAAQQQUIGffvrJvPnmm/Lll19Keno6KDYSqFChgugm1ZdffrlrzhVdE8iCBQuslQWPHDlioyHj7abojY7t2rWTJ5980rM7gnt7BBA9AggggAAC9hTYvXu3tQmyznJx7mifPipSpIg1s1W/fn1X5CiuCEJXFrzvvvtYYcYm7xN9k/Ts2dO6B4vl2W3SKTQDAQQQQAABBP4hcOTIEfPuu+/KO++8I4cOHULIBgLR0dEyfvx4V6xI6PhEa/DgwaZXr16SmZlpg6Hh7SbExcXJ448/biVZRYoUcfzY8nZvEj0CCCCAAALeEUhMTDQffPCBtXDGnj17vBO4TSPVFQm1L/r06ePo80nHNl6Xb+/Tp4/odbY8wiugS7Tr5YGaZBUqVMixYyq8itSOAAIIIIAAAuEW0ITrvffek0GDBsm+ffvC3RzP16/n+gMGDHDs8u+OPClOT083nTt3lg8//NDzAzCcAJpgdevWTXRGsXDhwo4cS+H0o24EEEAAAQQQsKeALg0/duxYefnll2XXrl32bKRHWtWhQwdr+ffcuXM77lzTcQ1OTU01ujT4F1984ZHhZb8w4+PjrQ2GdRYrNjbWcWPIfqK0CAEEEEAAAQTsKKDnnR999JG1se7OnTvt2ERPtKlly5by2WefSUxMjKPOOx3VWJ3O1ZUF58yZ44lBZbcgNcHS3bu7dOniyk3l7OZNexBAAAEEEEDAHgI6wzV69Gh59dVXuYcrTF1y8803W8vy58+f3zH5i2MaevjwYXPbbbfJkiVLwtS93q02X7581gqCzz77LJcIencYEDkCCCCAAAKeF0hKSjJDhw6V119/XY4ePep5j1AD1KtXz9pryym3rDgi0Tp06JBp0qSJ/PLLL6HuT0/XFxUVJQ8//LD0799fSpcu7Yix4ukOI3gEEEAAAQQQCInA/v37zWuvvSYjRoyQkydPhqROKvmvwLXXXiuzZ892xArXtj951pksTbJWrFjB+AqhQOPGja09JWrUqGH7MRJCFqpCAAEEEEAAAQROCWzbts1KuPSywoyMDGRCJHDVVVdZtxIVK1bM1ueptm5cQkKCadq0KUlWiAatVlO7dm1r34Ibb7zR1mMjhCRUhQACCCCAAAIInFdg1apV5qWXXpJJkyYhFSIBJyRbtj2ZPnjwoNFZlZUrV4aou7xdTfXq1a3rjVu0aGHbMeHtHiJ6BBBAAAEEELC7wJw5c8wzzzzD7S4h6qirr77amtmKi4uz5fmrLRulM1kNGzYkyQrBIC1SpIi1ZOmjjz4qUVFRthwPIWCgCgQQQAABBBBAICACGRkZRvd90kXEDhw4EJAyKeTcAjVr1pR58+bZcoEM251Y62ouzZo1k8WLFzOmgiiQK1cu0Q3g3nzzTSlRooTtxkEQQ6doBBBAAAEEEEAg6AK6zsALL7wgw4cPl/T09KDX5+UKrr/+emtmq2DBgrY6p7VVY3RTuNtvv11mzZrl5bES9Nh1mvXdd9+VOnXq2Kr/gx44FSCAAAIIIIAAAiEWWLlypdFtchYtWhTimr1VXaNGjWTGjBm22tTYNifaJ0+eNK1atbKAeARHoGjRotZS7Y8//jiXCQaHmFIRQAABBBBAAIGzCkybNs1069ZNduzYgVCQBHTCRjc1zp07ty1yHFs0Qq9lbd++vXz22WdBYvd2sZGRkdKlSxfrXiy73izo7R4iegQQQAABBBDwgsDRo0fNyy+/LEOGDJG0tDQvhBzyGPXWmI8//lgiIiLCnueEvQGq36tXL6N7NvEIvECtWrWszfSuvvpqW/R14COkRAQQQAABBBBAwFkCq1evNl27dpXvv//eWQ13SGuffvppXYcg7Oe+YW/Am2++aRSDR2AFYmJiRG/AVFtWEwysLaUhgAACCCCAAAI5FcjMzDTvv/++da52/PjxnBbH688QePvtt+XJJ58Ma64T1so/++wz065dO8nMzGRwBFCgbt261g7lVatWDWv/BjAkikIAAQQQQAABBFwpsGvXLvPYY4/JtGnTXBlfuILSFbb1EsKOHTuG7Xw4bBUvWLDA3HzzzZKamhouf9fVW7BgQXnjjTesPbHscF2q64AJCAEEEEAAAQQQCJLAmDFjzJNPPimHDx8OUg3eKzZv3rzWauY33XRTWHKesFS6adMmo/cOHTx40Hs9HqSIde+xkSNHSvny5cPSp0EKi2IRQAABBBBAAAHPCOzdu9damVBXzuMRGAFddfuHH36QSy+9NOTnyCGvUFdbqVOnjqxevToweh4vpXDhwtYs1iOPPMIslsfHAuEjgAACCCCAgDsEPv/8cyvhOnDggDsCCnMUVapUsZKtIkWKhDT3CWllaWlp5pZbbpG5c+eGmdsd1ess1pgxY6R06dIh7Ud36BEFAggggAACCCBgX4EDBw6Yhx56iHu3AtRFet6s+/WGco+tkJ6gd+3a1QwfPjxAXN4tJioqSvr162dtPhwZGRnSPvSuOpEjgAACCCCAAAKhFxg7dqy1WEZycnLoK3dZjT169NA9zEJ27hyyikaNGmU6d+7ssu4KfTiVK1eWTz/9VK699tqQ9V3oo6RGBBBAAAEEEEAAAZ/A77//bu655x5Zs2YNKDkU+PDDD+XBBx8MyXl0SCr59ddfrfuyUlJSckjj7Zd37NhRdEawYMGCIek3b2sTPQIIIIAAAgggYB+BlJQU88wzz+iMjH0a5cCWREdHy+LFi+Waa64J+vl00Cs4dOiQueaaa2TLli0O7Ap7NFmXbdcEK5z7ANhDglYggAACCCCAAALeFvjqq6+se7cSEhK8DZGD6MuVKycrVqyQ+Pj4oOZCQS08IyPD3HrrrTJz5swcUHj7pZqkTpgwQSpXrhzUvvK2MtEjgAACCCCAAALOEdi+fbvp0KGDLFy40DmNtllLGzdubOUoUVFRQTvHDlrBatm/f3/z8ssv24zVOc3RZT3feecdyZMnT1D7yTkitBQBBBBAAAEEEEBABdLT061LCd966y1AsimgeUr//v2Ddp4dtIIXLlxoGjRoIBkZGdkM3bsv012s3333Xd0bK2j9411dIkcAAQQQQAABBNwjMGHCBOtSQlYlzHqfRkREyLx586RBgwZBOecOSqEJCQnmX//6l2zfvj3rEXv8FaVKlZLJkydL7dq1g9I3HuclfAQQQAABBBBAwHUCuvDcHXfcIdu2bXNdbMEO6KKLLpKVK1dKXFxcwM+9A16gYtxxxx1mypQpwXZxXflXX321fPXVV1KuXLmg9IvrwAgIAQQQQAABBBBAwBLQDY7btGkjCxYsQCSLAnfddZd8+eWXAT//DniBw4cPN127ds1ieBzeqVMnGTFihERHRwe8T9BFAAEEEEAAAQQQcL9Aamqq0U15R44c6f5gAxzhqFGjpHPnzgE9Dw9oYZs3bzZXXHGFJCYmBjh09xYXFRUlr776qvTt2zegfeFeMSJDAAEEEEAAAQQQOJ/AyJEjTffu3eXkyZNA+SmQP39++e2336RSpUoBOycPWEG6lPtNN90kixYt8jMcDtMO/eKLL+SWW24JWD+gigACCCCAAAIIIIDA3LlzzZ133inHjx8Hw08BXchPF8eIiIgIyLl5QArRtr/zzjumV69efobBYUWKFJEZM2ZI3bp1A9YHqCKAAAIIIIAAAggg4BNYsWKFad68uezfvx8UPwWGDh0q3bt3D8j5eUAK2bRpk7nyyiu5ZNDPDixdurS1QdoVV1wREH8/q+UwBBBAAAEEEEAAAY8J6Hl6s2bNZOPGjR6LPHvh5suXz1qF8NJLL83xeXqOC8jMzDS6s/L8+fOzF43HXnXZZZfJrFmz5OKLL86xvcfoCBcBBBBAAAEEEEAgGwJ79uwxt9xyi5VA8LiwQP369a3VG3N6CWGOT/Y/+ugj88ADD1y4xRwh1113nXz99dcSHx+fY3c4EUAAAQQQQAABBBDwV+D48ePWPVtz58719yWePm78+PHSoUOHHJ2z5+jFhw4dMjpDw3WfFx6HOuunGxEXKlQoR+YXrokjEEAAAQQQQAABBBD4p8CJEydMx44dZdKkSfBcQKBEiRKydu1aKVq0aLbP3bP9Qm3bQw89ZEaPHk1HXUCgZcuW1oDOkydPjryBRgABBBBAAAEEEEAgJwLp6enm3nvvJdnyA7FLly66J1m2z9+z/cKlS5eaunXrijHGj2Z69xC9Hvarr75iI2LvDgEiRwABBBBAAAEEbCVw8uRJ07p1a5k2bZqt2mW3xkRERMiyZcukVq1a2cqZsvUiXQCjXr16smTJErt52Ko9jRo1kunTp0u+fPmy5WyrYGgMAggggAACCCCAgGsEUlNTTatWraz1A3icW+D666+XpUuXZmthjGwlAOPHjzcdOnSgT84jUKdOHWt1wYIFC2bLGFwEEEAAAQQQQAABBIIpkJycbG699VZrhT0e5xaYOHGitG3bNsvn9Fl+QUpKiqlataps27aN/jiHQK1atWT27NkSGxubZV9QEUAAAQQQQAABBBAIlUBSUpK19PvChQtDVaXj6ilfvry1MEZMTEyWzu2zdLCqvPbaa6Zfv36OAwpVg6+++mqZN2+eFClSJMu2oWoj9SCAAAIIIIAAAggg4BM4cuSItS/uihUrQDmHwIABA6Rv375ZOr/P0sEJCQmmQoUKcuTIETrhLAKVK1e2ruFknyyGBwIIIIAAAggggICTBA4ePGj01pf169c7qdkha2uRIkVky5YtUrhwYb/zJ78P1Cj69etnXnvttZAF5KSK4uLirCSrSpUqWTJ1Uoy0FQEEEEAAAQQQQMC9Aps3bza6+AN75J69j1944QV56aWX/D7X9/tAzXIvueQSOX78uHtHVzYji46OtnbZvuGGG/z2zGZVvAwBBBBAAAEEEEAAgaAJLF++3Nx0002SnJwctDqcWnChQoWsWa24uDi/zvn9OkgxevfubQYNGuRUl6C1O1euXPLJJ59Iu3bt/LYMWmMoGAEEEEAAAQQQQACBHAp89tln1qbG7Jf7T8hnn31WXn/9db/O+/06SGezypUrJ0lJSTnsNve9vHfv3jJo0CC/HN0XPREhgAACCCCAAAIIuFGgT58+ZuDAgW4MLUcxFShQQLZv3y5Fixa94Pn/BQ/Qlrz00ktGr0nk8XcBXZ1l5syZEhUV5ZcjfggggAACCCCAAAIIOEEgIyPDtGjRQr755hsnNDekbdQ1K/r163fB8/8LHqAbmena8dwU9/f+0xm+X375xe9rNEPa+1SGAAIIIIAAAggggEAOBQ4dOmR06yL2z/07ZMmSJa17tS60r9YFE60RI0aYxx57LIfd5K6XR0VFyXfffcfiF+7qVqJBAAEEEEAAAQQQOEPgxx9/NDfccIOkpaVhc5rAyJEjpUuXLufNpc77n5mZmaZq1aqsp3/GsMrOhmWMTAQQQAABBBBAAAEEnCgwYMAA07dvXyc2PWhtrlKliqxdu1YiIiLOmU+dN9GaPXu2adq0adAa6MSCmzRpYt2XFRkZecHZQCfGR5sRQAABBBBAAAEEEDhdQO/XatasmbWdEY//CcyZM0eaNGmSvUSrVatWZvLkyXj+JRAbGyu///67lCtXjiSLUYEAAggggAACCCDgGYGdO3eaGjVqyOHDhz0T84UCvfvuu2XSpElZT7R2795tLenO9Zj/Ix4zZox06tSJJOtCo47/RwABBBBAAAEEEHCdwOjRo81DDz3kuriyG5Cu26ALhZQpU+as+cE5k4aXX37Z9O/fP7v1uu51zZs31+UtSbJc17MEhAACCCCAAAIIIOCvwM0332z0Nhoe/xU431Lv50wcKlWqZDZu3IihiC7dKKtWrZKKFSuSaDEiEEAAAQQQQAABBDwrsHXrVlOtWjVJTk72rMHpgVesWFE2bNhw1kUxzpo4LF261NSpUwe8vwT83ZQMMAQQQAABBBBAAAEE3C7AlW9/7+Hly5fLdddd94+86qyJVo8ePcyQIUPcPkb8ik+XbtQFMPLmzctsll9iHIQAAggggAACCCDgZoETJ05YC2PoTA4PkZ49e8p//vOfCyda6enppkyZMrJv3z7cRGTq1KnSsmVLkixGAwIIIIAAAggggAACfwlMnjzZtGrVCg8RKVmypOzcuVOioqL+ljP8I4GYM2eO0b2ieIjoLtiLFy8myWIwIIAAAggggAACCCBwhkDdunXNkiVLcBGRefPmSaNGjc6faHHZ4P/GytKlS6VOnTokWrx9EEAAAQQQQAABBBA4Q4B1Hf4HcrbLB/+RRFSsWNFs2rTJ8wPplltukW+//ZYky/MjAQAEEEAAAQQQQACBcwk0a9bMzJo1y/NAFSpUkM2bN597RuuPP/6wbmzjIbJo0SKpV68eiRaDAQEEEEAAAQQQQACBcwgwq/U/mDVr1ki1atVO5Q9/SyQGDBhg+vbt6/mB1LBhQ5k/fz5JludHAgAIIIAAAggggAACFxKoX7+++f777y90mOv/f+DAgdKnT5+zJ1qNGzc2c+fOdT3ChQL85ptvpHnz5iRaF4Li/xFAAAEEEEAAAQQ8LzB16lTTsmVLzzs0a9ZMZs2a9c9EKy0tzRQpUkQSExM9jaS7O69fv14iIyNJtDw9EggeAQQQQAABBBBAwB+BjIwMU6lSJdmyZYs/h7v2mAIFCkhCQoLkyZPHyiNOJRPLli0ztWvXdm3g/gb21ltvyVNPPUWS5S8YxyGAAAIIIIAAAgh4XuCNN94wzzzzjOcdfvzxR6lVq9bfEy1wRHLnzi27d++W+Ph4Ei3Pv00AQAABBBBAAAEEEPBXYP/+/aZ06dKSnp7u70tcedzp92mdSihuv/12M23aNFcG7G9QLVq0kOnTp5Nk+QvGcQgggAACCCCAAAII/CXQvHlzo2sdePmh96pNnTr17zNaZcqUMbt27fKyi0ycOFHatm1LouXpUUDwCCCAAAIIIIAAAtkRGD9+vOnQoUN2Xuqa11x00UWyY8eO/yVaOtVXvHhx1wSYnUBiYmLk4MGDkj9/fhKt7ADyGgQQQAABBBBAAAFPCxw/ftwUK1ZMUlNTPe2gOUWxYsVyWUnFzJkzzc033+xpkFtvvVW+/vprkixPjwKCRwABBBBAAAEEEMiJQLNmzcysWbNyUoTjX6vbZTVu3Pi/iRYLYYgMGzZMunXrRqLl+KFNAAgggAACCCCAAALhEhgyZIjp0aNHuKq3Rb2DBg2S3r17/zfRevDBB82HH35oi4aFqxEbN26USpUqkWiFqwOoFwEEEEAAAQQQQMDxAhs2bDCVK1d2fBw5CeCRRx6R999//7+JVv369c3333+fk/Ic/VpdinL37t0kWY7uRRqPAAIIIIAAAgggYAeBUqVKmT179tihKWFpQ8OGDWX+/Pn/TbTKli1rdu7cGZaG2KHSu+++WyZNmkSiZYfOoA0IIIAAAggggAACjhZo1aqVmTx5sqNjyEnjy5UrJ9u2bcuVKyUlxeTPn18yMzNzUp6jX/v222/Lk08+SaLl6F6k8QgggAACCCCAAAJ2EBg0aJDp3bu3HZoSljZERERIcnKy5OI6SpHZs2dL06ZNSbTCMhSpFAEEEEAAAQQQQMBNAt9++6255ZZb3BRSlmPR9R9yLVmyxNStWzfLL3bTC/SyybJly5JoualTiQUBBBBAAAEEEEAgLALbtm0zevmclx/Lli2TXFOmTDF33HGHZx0KFSokx44dI8ny7AggcAQQQAABBBBAAIFACmRmZprY2Fg5fvx4IIt1VFlTp06VXKNGjTKdO3d2VMMD2djq1avLqlWrSLQCiUpZCCCAAAIIIIAAAp4WuOyyy8zatWs9a/DBBx9Irtdff908++yznkVo3LixzJ07l0TLsyOAwBFAAAEEEEAAAQQCLdCwYUMzf/78QBfrmPIGDBggufr3729efvllxzQ60A3t2LGjjBs3jkQr0LCUhwACCCCAAAIIIOBZgQ4dOpjx48d7Nv4XXnhBcj3zzDPmjTfe8CxC9+7dZejQoSRanh0BBI4AAggggAACCCAQaIGuXbua4cOHB7pYx5TXt29fydWzZ0/zn//8xzGNDnRDdY3/QYMGkWgFGpbyEEAAAQQQQAABBDwr8OSTTxrdq9arj169ekmuxx57zIwYMcKrBvJ///d/8uqrr5JoeXYEEDgCCCCAAAIIIIBAoAX69etnXnvttUAX65jyunbtKrk6d+5sRo0a5ZhGB7qhJFqBFqU8BBBAAAEEEEAAAa8LeD3R0lXdPZ9ocemg1z8GiB8BBBBAAAEEEEAg0AJev3SQREtEWAwj0G8rykMAAQQQQAABBBDwuoDXF8Mg0RIRlnf3+scA8SOAAAIIIIAAAggEWqB9+/bmk08+CXSxjimPREtE2LDYMeOVhiKAAAIIIIAAAgg4RKBBgwZmwYIFDmlt4JtJoiUil19+uaxevZpVBwM/vigRAQQQQAABBBBAwKMCVatWNevWrfNo9CIkWiJSqFAhOXLkiERERJBsefatQOAIIIAAAggggAACgRLIzMw0eo6dmJgYqCIdVw6J1l9dtnPnTilbtiyJluOGMA1GAAEEEEAAAQQQsJvA1q1bTfny5e3WrJC2h0TrL+7Zs2dL06ZNSbRCOvyoDAEEEEAAAQQQQMCNAt98841p3ry5G0PzOyYSrb+o3nrrLXnqqadItPweOhyIAAIIIIAAAggggMDZBQYOHGj69OnjaR4Srb+6v3Xr1vLFF1+QaHn67UDwCCCAAAIIIIAAAoEQuOOOO8yUKVMCUZRjyyDR+qvrSpYsKXv37iXRcuxQpuEIIIAAAggggAACdhEoWbKk2bt3r12aE5Z2kGidxr5x40apVKkSyVZYhiKVIoAAAggggAACCLhBYP369ebSSy91Qyg5ioFE6zS+YcOGSbdu3Ui0cjSkeDECCCCAAAIIIICAlwX+85//mJ49e3qZwIqdROu0IXDrrbfK119/TaLl+bcFAAgggAACCCCAAALZFWjSpImZM2dOdl/umteRaJ3WlTExMXLw4EHJnz8/yZZrhjiBIIAAAggggAACCIRK4NixYyY+Pl5SU1NDVaVt6yHROqNrPvvsM7nnnntItGw7ZGkYAggggAACCCCAgF0FPv74Y3PffffZtXkhbReJ1hncLVq0kOnTp5NohXQYUhkCCCCAAAIIIICAGwSaNWtmZs2a5YZQchwDidYZhLlz55bdu3dLfHw8yVaOhxcFIIAAAggggAACCHhFYO/evaZs2bKSnp7ulZDPGyeJ1ll4Bg0aJL179ybR4i2CAAIIIIAAAggggICfAv/+97/Nc8895+fR7j+MROssfVyuXDnZtGmTREVFkWy5/z1AhAgggAACCCCAAAI5FEhPTzeVKlWSrVu35rAk97ycROscfTljxgy57bbbSLTcM9aJBAEEEEAAAQQQQCBIAl9++aW56667glS6M4sl0TpHvzVo0EAWLFhAouXMcU2rEUAAAQQQQAABBEIoULduXbNkyZIQ1mj/qki0ztNHixYtknr16pFs2X8c00IEEEAAAQQQQACBMAksWLDA6CQFj78LkGidZ0Q0b95cvvnmGxIt3jUIIIAAAggggAACCJxDoHHjxmbu3Ln4nCFAonWBIbFs2TKpXbs2yRZvHQQQQAABBBBAAAEEzhBYtGiRqVevHi5nESDRusCwuP7662Xp0qUSERFBssVbCAEEEEAAAQQQQACBvwQyMzPNDTfcYJ0r8/inAImWH6NiypQpcscdd5Bo+WHFIQgggAACCCCAAALeEJg4caJp27atN4LNRpQkWn6gValSRX7//XfJmzcvyZYfXhyCAAIIIIAAAggg4G6B5ORkU716ddm8ebO7A81BdCRafuK99tpr0q9fPxItP704DAEEEEAAAQQQQMC9As8//7x55ZVX3BtgACIj0fITMSYmRlavXi0VKlQg2fLTjMMQQAABBBBAAAEE3CewYcMGU6NGDTlx4oT7ggtgRCRaWcC89dZb5euvvybRyoIZhyKAAAIIIIAAAgi4R0AXwGjSpInMmzfPPUEFKRISrSzCjhkzRjp16kSylUU3DkcAAQQQQAABBBBwvsCwYcNMt27dnB9ICCIg0coicmxsrLUwRrly5Ui2smjH4QgggAACCCCAAALOFdi8ebO58sor5fjx484NIoQtJ9HKBnbTpk1l5syZ7K2VDTteggACCCCAAAIIIOA8gfT0dNOgQQNZtGiR8xofphaTaGUTfuDAgdKnTx9mtbLpx8sQQAABBBBAAAEEnCPwwgsvmJdeesk5DbZBS0m0stkJUVFR8v3330vdunVJtrJpyMsQQAABBBBAAAEE7C/w/fffm4YNG0pGRob9G2ujFpJo5aAzypcvL7/88osULVqUZCsHjrwUAQQQQAABBBBAwJ4C+/fvN1dddZXs2rXLng20catItHLYObq85bfffitRUVEkWzm05OUIIIAAAggggAAC9hFIS0szujbBggUL7NMoB7WERCsAndW3b18ZMGAAiVYALCkCAQQQQAABBBBAwB4C3bt3N0OHDrVHYxzYChKt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V5mgZXDxaDoCCCCAAAIIIOBFgR9++MG6/vrrXdv1SpUqyebNm10TsrRQpUqVshISElxbs3N1jKDlqXLTWQQQQAABBBBAwHyBQ4cOWfHx8ZKRkWF+Z87Rg27dusnEiRMJWoZXl6BleAFpPgIIIIAAAggg4EWBunXrWitXrnRl199//33p3bs3Qcvw6hK0DC8gzUcAAQQQQAABBLwoMGDAAGvEiBGu63quXLl02aBUrFiRoGV4dQlahheQ5iOAAAIIIIAAAl4U+O2336wrr7zSdV1v1KiRLF682FUhS4vENVquG6rn71CpUqUkISHBdYPYQyWkqwgggAACCCDgcYErrrjCWr16tasUdNv6Bx980HXvUQlarhqmF+4MQctDxaarCCCAAAIIIOBKgVGjRln9+vVzTd8KFCgg//zzjxQpUoSg5YKqsnTQBUWkCwgggAACCCCAgBcFUlJSLN0KfdeuXa7o/lNPPSWvvPKK60KWFocZLVcMUf86oVuC7t69W6Kiolw5mP1T4FkIIIAAAggggIDZAsOHD7cGDhxodidEJDY2VjZt2iQlSpRw3XvT9PR0q0SJErJ//37j65SVDnh2RkuRnn32WXnxxRddN5izMgB4LgIIIIAAAgggYLJAamqqVbt2bVm3bp3J3ZBhw4bJ008/7cr3pYMGDbJefvllo+uTncZ7Omjp9plffPGF3HLLLa4c1NkZELwGAQQQQAABBBAwTeCHH36wrr/+etOafbK9l112meimHvny5XPde9IZM2ZYHTt2lMzMTGPrk92GezpoKVrhwoVl+fLlUrlyZdcN7OwOCl6HAAIIIIAAAgiYJtCrVy/rgw8+MK3Zkjt3bpk/f740atTIde9Ft27dam/Bf+DAAePqEogGez5oKaJONy9evFhiYmJcN8ADMUg4BgIIIIAAAggg4HQB3RijYcOG8scffzi9qae17z//+Y888cQTrnsPqvVo0qSJrFixwqh6BLKxBK3/afbo0UM++eQT1w3yQA4WjoUAAggggAACCDhZYO3atfabe1NmUG677Tb57LPPJCIiwlXvQTMzM627775bJkyY4OThEvS2EbROIdaL9AYNGuSqgR70EcQJEEAAAQQQQAABBwn8+uuvVsuWLSUxMdFBrTq7KS1atJDvvvvOlddlDR061BoyZIij/UPROILWKcq6Ocann34qd9xxB2ErFKOPcyCAAAIIIIAAAkEQmDVrlnXLLbc4Nmxdc8018s0330hcXJzr3nNOnTrV6tq1qyc3vzhzKBO0zhCJjo6WefPmydVXX+26gR+En2McEgEEEEAAAQQQcKTAsmXLrHbt2sm+ffsc1b4OHTrIpEmTXLk3wPLly61rr71WkpOTHWUersYQtM4hX6pUKVmyZImUK1eOsBWukcl5EUAAAQQQQACBHAps2LDBnl1ZuXJlDo+U85dHRESI3lj5hRdekKioKNe9x9QdBnUzkt27d+ccyyVHIGidp5B6P4OFCxdK8eLFXfeN4JKxSzcQQAABBBBAAIGLCujud48//ri8++67YlnWRZ8fjCcUL15cN12TG264wZXvK/ft22fpcsi1a9cGg8/YYxK0LlC6Bg0ayJw5c6RAgQKu/KYwdtTScAQQQAABBBBAIIsC8+fPtx566CH7xsCh+tBZrG7dusnrr78uxYoVc+X7yaNHj9qbj+h9afk4XYCgdZERoQPn22+/deWOMHwzIIAAAggggAACXhJIS0uzb2o8fPhw2bJlS9C6rhusdezYUXTnvXr16rkyYCne8ePHLb3m7IcffgiapckHJmj5Ub2bb75Zpk6d6sr1tH50n6cggAACCCCAAAKuEtDApfevev/992XBggUBW1JYqFAh6dKlizzyyCNSq1Yt1wYsHQwZGRnW7bffLlOmTHHV2AhkZwhafmr27NnT/maMjIx09TeNnxw8DQEEEEAAAQQQcIXAli1bLA0LermIhq6kpKQs9atixYqiK6BuuOEGad++vURHR7v+vaLekPj++++XMWPGZMnKa08maGWh4vfee6+MHTuWsJUFM56KAAIIIIAAAgiYInDixAnrzz//lPXr19uPXbt22ffiSklJsbugM1b58+cXDVdVq1aVatWqeW6Xag1ZDz74oLz33numlDVs7SRoZZG+V69ednpnZiuLcDwdAQQQQAABBBBAwGgBDVm6oYju4MjHxQUIWhc3OusZvXv3tsNWRESE66eGs8HDSxBAAAEEEEAAAQRcJqAh6+GHH5Z33nnHZT0LXncIWtm0feCBB+Stt95iZiubfrwMAQQQQAABBBBAwAwB3fhClwuOHj3ajAY7pJUErRwU4s4775SPP/5Y8uTJw8xWDhx5KQIIIIAAAggggIAzBdLT0y1dzaXvefnImgBBK2teZz1bd5eZ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", + "created": 1714545483871, + "lastRetrieved": 1715236891767 + } + } +} \ No newline at end of file diff --git a/v1.46/assets/img/enterprise/enterprise-arch.png b/v1.46/assets/img/enterprise/enterprise-arch.png new file mode 100644 index 000000000..a7f37c7f2 Binary files /dev/null and b/v1.46/assets/img/enterprise/enterprise-arch.png differ diff --git a/v1.46/assets/img/experiment_branch_model.png b/v1.46/assets/img/experiment_branch_model.png new file mode 100644 index 000000000..727075730 Binary files /dev/null and b/v1.46/assets/img/experiment_branch_model.png differ diff --git a/v1.46/assets/img/flare_existing_ticket.png b/v1.46/assets/img/flare_existing_ticket.png new file mode 100644 index 000000000..cbead4ac7 Binary files /dev/null and b/v1.46/assets/img/flare_existing_ticket.png differ diff --git a/v1.46/assets/img/flare_new_ticket.png b/v1.46/assets/img/flare_new_ticket.png new file mode 100644 index 000000000..55a52b201 Binary files /dev/null and b/v1.46/assets/img/flare_new_ticket.png differ diff --git a/v1.46/assets/img/gc-sample-commits.png b/v1.46/assets/img/gc-sample-commits.png new file mode 100644 index 000000000..14a301950 Binary files /dev/null and b/v1.46/assets/img/gc-sample-commits.png differ diff --git a/v1.46/assets/img/gc_rules_from_ui.png b/v1.46/assets/img/gc_rules_from_ui.png new file mode 100644 index 000000000..8a60f1ab9 Binary files /dev/null and b/v1.46/assets/img/gc_rules_from_ui.png differ diff --git a/v1.46/assets/img/glue_export_hook_result_log.png b/v1.46/assets/img/glue_export_hook_result_log.png new file mode 100644 index 000000000..fa7e7d7e0 Binary files /dev/null and b/v1.46/assets/img/glue_export_hook_result_log.png differ diff --git a/v1.46/assets/img/grafana.png b/v1.46/assets/img/grafana.png new file mode 100644 index 000000000..7d8f4164a Binary files /dev/null and b/v1.46/assets/img/grafana.png differ diff --git a/v1.46/assets/img/graveler1.png b/v1.46/assets/img/graveler1.png new file mode 100644 index 000000000..96e913972 Binary files /dev/null and b/v1.46/assets/img/graveler1.png differ diff --git a/v1.46/assets/img/graveler2.png b/v1.46/assets/img/graveler2.png new file mode 100644 index 000000000..a7e7ed669 Binary files /dev/null and b/v1.46/assets/img/graveler2.png differ diff --git a/v1.46/assets/img/iso-env-commit.png b/v1.46/assets/img/iso-env-commit.png new file mode 100644 index 000000000..14c7f0d05 Binary files /dev/null and b/v1.46/assets/img/iso-env-commit.png differ diff --git a/v1.46/assets/img/iso-env-create-repo.png b/v1.46/assets/img/iso-env-create-repo.png new file mode 100644 index 000000000..332c338df Binary files /dev/null and b/v1.46/assets/img/iso-env-create-repo.png differ diff --git a/v1.46/assets/img/iso-env-df-counts.png b/v1.46/assets/img/iso-env-df-counts.png new file mode 100644 index 000000000..e0d528da2 Binary files /dev/null and b/v1.46/assets/img/iso-env-df-counts.png differ diff --git a/v1.46/assets/img/iso-env-ex-repo.png b/v1.46/assets/img/iso-env-ex-repo.png new file mode 100644 index 000000000..4bc700514 Binary files /dev/null and b/v1.46/assets/img/iso-env-ex-repo.png differ diff --git a/v1.46/assets/img/iso-env-example-repo.png b/v1.46/assets/img/iso-env-example-repo.png new file mode 100644 index 000000000..69d2bd460 Binary files /dev/null and b/v1.46/assets/img/iso-env-example-repo.png differ diff --git a/v1.46/assets/img/iso-env-objects.png b/v1.46/assets/img/iso-env-objects.png new file mode 100644 index 000000000..e6dac980c Binary files /dev/null and b/v1.46/assets/img/iso-env-objects.png differ diff --git a/v1.46/assets/img/iso-env-two-branches.png b/v1.46/assets/img/iso-env-two-branches.png new file mode 100644 index 000000000..ec35c467c Binary files /dev/null and b/v1.46/assets/img/iso-env-two-branches.png differ diff --git a/v1.46/assets/img/iso-env-upload-object.png b/v1.46/assets/img/iso-env-upload-object.png new file mode 100644 index 000000000..a52efed25 Binary files /dev/null and b/v1.46/assets/img/iso-env-upload-object.png differ diff --git a/v1.46/assets/img/iso_env_dev_test_branching.png b/v1.46/assets/img/iso_env_dev_test_branching.png new file mode 100644 index 000000000..4f3ece156 Binary files /dev/null and b/v1.46/assets/img/iso_env_dev_test_branching.png differ diff --git a/v1.46/assets/img/iso_env_myrepo.png b/v1.46/assets/img/iso_env_myrepo.png new file mode 100644 index 000000000..d15d79570 Binary files /dev/null and b/v1.46/assets/img/iso_env_myrepo.png differ diff --git a/v1.46/assets/img/iso_env_sampledata.png b/v1.46/assets/img/iso_env_sampledata.png new file mode 100644 index 000000000..4dac1d150 Binary files /dev/null and b/v1.46/assets/img/iso_env_sampledata.png differ diff --git a/v1.46/assets/img/iso_env_testenv_branch.png b/v1.46/assets/img/iso_env_testenv_branch.png new file mode 100644 index 000000000..47877e1ca Binary files /dev/null and b/v1.46/assets/img/iso_env_testenv_branch.png differ diff --git a/v1.46/assets/img/job_branching_model.png b/v1.46/assets/img/job_branching_model.png new file mode 100644 index 000000000..31ea3d45d Binary files /dev/null and b/v1.46/assets/img/job_branching_model.png differ diff --git a/v1.46/assets/img/lakeFSArchitecture.excalidraw b/v1.46/assets/img/lakeFSArchitecture.excalidraw new file mode 100644 index 000000000..36bc1a59c --- /dev/null +++ b/v1.46/assets/img/lakeFSArchitecture.excalidraw @@ -0,0 +1,2205 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "id": "fKdWdkNM9XYc-7n1H_JyG", + "type": "rectangle", + "x": 358.7510170252085, + "y": 3361.6559190850235, + "width": 389.40315290385337, + "height": 461.69072919178734, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aV", + "roundness": { + "type": 3 + }, + "seed": 1911862587, + "version": 901, + "versionNonce": 1470497424, + "isDeleted": false, + "boundElements": [ + { + "id": "94vLrbjNaZ-Is-8OTvFrb", + "type": "arrow" + }, + { + "id": "GyPIp862EuIWsednp_LJE", + "type": "arrow" + }, + { + "id": "FoG-M0XjPajxjfIcaEGnO", + "type": "arrow" + } + ], + "updated": 1731847128060, + "link": null, + "locked": false + }, + { + "id": "rc8yXewY6HEPU-FwSwn3-", + "type": "rectangle", + "x": 882.1160590331633, + "y": 3401.0912156421628, + "width": 181.98388158898558, + "height": 93.00907374489543, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aVG", + "roundness": { + "type": 3 + }, + "seed": 1701992539, + "version": 383, + "versionNonce": 1428039067, + "isDeleted": false, + "boundElements": [ + { + "id": "HCNSYE_W_xRA4UTqgTuuu", + "type": "arrow" + }, + { + "id": "GyPIp862EuIWsednp_LJE", + "type": "arrow" + } + ], + "updated": 1722538040803, + "link": null, + "locked": false + }, + { + "id": "iw67kxGsUMx8mEWqnsFSX", + "type": "text", + "x": 408.4219476901487, + "y": 3312.2646968477534, + "width": 290.91986206173897, + "height": 35, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aW", + "roundness": null, + "seed": 1345709877, + "version": 488, + "versionNonce": 1720203920, + "isDeleted": false, + "boundElements": [], + "updated": 1731847128061, + "link": null, + "locked": false, + "text": "Applications / Clients", + "fontSize": 28, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Applications / Clients", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "C1-kKCZJAGayLq8AFHcP_", + "type": "text", + "x": 1267.0388624342286, + "y": 3282.233183635602, + "width": 179.22793579101562, + "height": 35, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aWG", + "roundness": null, + "seed": 413344987, + "version": 188, + "versionNonce": 1377980475, + "isDeleted": false, + "boundElements": [], + "updated": 1722537743081, + "link": null, + "locked": false, + "text": "Object Store", + "fontSize": 28, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Object Store", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "9OomwBL5b71Vw2A8hnvQG", + "type": "text", + "x": 1224.8463054463277, + "y": 3587.374912933678, + "width": 165.03779590129852, + "height": 52.303226761469986, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aWV", + "roundness": null, + "seed": 386188827, + "version": 524, + "versionNonce": 1295073589, + "isDeleted": false, + "boundElements": [], + "updated": 1722540974228, + "link": null, + "locked": false, + "text": "lakeFS Managed\nBucket/s*", + "fontSize": 20.921290704587996, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "lakeFS Managed\nBucket/s*", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "9amrjmm6vzKNvV1txfde1", + "type": "text", + "x": 1236.8717429018543, + "y": 3529.01430153436, + "width": 61.157129574892735, + "height": 30.444620954311894, + "angle": 0, + "strokeColor": "#258c81", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aWd", + "roundness": null, + "seed": 235752443, + "version": 564, + "versionNonce": 615590805, + "isDeleted": false, + "boundElements": [ + { + "id": "FoG-M0XjPajxjfIcaEGnO", + "type": "arrow" + } + ], + "updated": 1722537938459, + "link": null, + "locked": false, + "text": "Metadata\nFiles", + "fontSize": 12.177848381724752, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "Metadata\nFiles", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "ToMIIJgI6tA6N828WY6rq", + "type": "text", + "x": 1318.8706249429092, + "y": 3530.2828956536414, + "width": 32.62775346636772, + "height": 30.44462095431188, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aWh", + "roundness": null, + "seed": 785567637, + "version": 675, + "versionNonce": 904819125, + "isDeleted": false, + "boundElements": [], + "updated": 1722538759880, + "link": null, + "locked": false, + "text": "Data\nFiles", + "fontSize": 12.177848381724752, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "Data\nFiles", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "SSwnkbraAHrWf4k26Yw0H", + "type": "text", + "x": 1250.5732655789477, + "y": 3827.328135003164, + "width": 105.2199496626854, + "height": 50, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aWl", + "roundness": null, + "seed": 1034420533, + "version": 503, + "versionNonce": 518870299, + "isDeleted": false, + "boundElements": [], + "updated": 1722538174899, + "link": null, + "locked": false, + "text": "Unmanaged\nBucket/s", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "Unmanaged\nBucket/s", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "xluZVa0RqMjTBXzbb4Q1-", + "type": "image", + "x": 419.965696581165, + "y": 3384.0780312077163, + "width": 81.20410969829025, + "height": 41.95545667744996, + "angle": 0, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aX", + "roundness": null, + "seed": 1509193627, + "version": 614, + "versionNonce": 1019373712, + "isDeleted": false, + "boundElements": [], + "updated": 1731847128061, + "link": null, + "locked": false, + "status": "saved", + "fileId": "0e322a8749f5fd6440745c039816dc9c40aad84a", + "scale": [ + 1, + 1 + ], + "crop": null + }, + { + "id": "HkpOPASwk5EvC4_E-VpJp", + "type": "image", + "x": 552.1739989997923, + "y": 3347.066295811333, + "width": 126.30894192327354, + "height": 126.30894192327354, + "angle": 0, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aY", + "roundness": null, + "seed": 198202651, + "version": 1290, + "versionNonce": 1736890000, + "isDeleted": false, + "boundElements": [ + { + "id": "GyPIp862EuIWsednp_LJE", + "type": "arrow" + }, + { + "id": "FoG-M0XjPajxjfIcaEGnO", + "type": "arrow" + } + ], + "updated": 1731847128061, + "link": null, + "locked": false, + "status": "saved", + "fileId": "97a54ef0c7419b7b3fb8526c7386b19214357d1d", + "scale": [ + 1, + 1 + ], + "crop": null + }, + { + "id": "4YsWiagkSZ8dcCTLG9cME", + "type": "image", + "x": 403.4820510628298, + "y": 3752.6177834090313, + "width": 115.98831381729387, + "height": 52.91966817914034, + "angle": 0, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aa", + "roundness": null, + "seed": 134767253, + "version": 762, + "versionNonce": 1536001168, + "isDeleted": false, + "boundElements": [], + "updated": 1731847128061, + "link": null, + "locked": false, + "status": "saved", + "fileId": "bc3358bef265f112f724f733549d4cd7de1dee8a", + "scale": [ + 1, + 1 + ], + "crop": null + }, + { + "id": "kcyl4yj8L_MmIInlnhzHu", + "type": "image", + "x": 548.9271827941639, + "y": 3738.8980800186364, + "width": 148.48822663420256, + "height": 66.81970198539115, + "angle": 0, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ab", + "roundness": null, + "seed": 218255285, + "version": 664, + "versionNonce": 915305104, + "isDeleted": false, + "boundElements": [], + "updated": 1731847128061, + "link": null, + "locked": false, + "status": "saved", + "fileId": "ec273749eb4f3f53fb9f9368bfa3b7c3af3d1c37", + "scale": [ + 1, + 1 + ], + "crop": null + }, + { + "id": "XC4ZfmwenvusZshR_P-vg", + "type": "image", + "x": 924.799911833121, + "y": 3408.648705162707, + "width": 97.38623046777609, + "height": 76.28588053309127, + "angle": 0, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ac", + "roundness": null, + "seed": 111869403, + "version": 393, + "versionNonce": 204275739, + "isDeleted": false, + "boundElements": [], + "updated": 1722538040803, + "link": null, + "locked": false, + "status": "saved", + "fileId": "57c766831721e9fb1cd3ac887423f3539a447a55", + "scale": [ + 1, + 1 + ], + "crop": null + }, + { + "id": "PLXjmnHvBPwOF5s_2M80N", + "type": "image", + "x": 1195.0597551231497, + "y": 3273.658229707978, + "width": 57.78143547920078, + "height": 57.78143547920078, + "angle": 0, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ad", + "roundness": null, + "seed": 1661221877, + "version": 242, + "versionNonce": 1515296795, + "isDeleted": false, + "boundElements": [], + "updated": 1722537740595, + "link": null, + "locked": false, + "status": "saved", + "fileId": "14425b5cfc24549457fe531a77b482c2336c0d1d", + "scale": [ + 1, + 1 + ], + "crop": null + }, + { + "type": "ellipse", + "version": 413, + "versionNonce": 973815451, + "index": "am", + "isDeleted": false, + "id": "UgXMbNZ2cISgBrh6ismcD", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1214.1092737197202, + "y": 3426.8532767163338, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 185.48977829962644, + "height": 39.201122455943676, + "seed": 1418848981, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1722536698420, + "link": null, + "locked": false + }, + { + "type": "ellipse", + "version": 530, + "versionNonce": 106559931, + "index": "amG", + "isDeleted": false, + "id": "_hfeDSwLW7xKar-modPKg", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1237.1477084934322, + "y": 3716.930821703292, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 127.96422399257345, + "height": 27.043760905302562, + "seed": 1436675061, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1722538174899, + "link": null, + "locked": false + }, + { + "type": "line", + "version": 469, + "versionNonce": 776064149, + "index": "an", + "isDeleted": false, + "id": "cwJIg6NqVo2NMUoXhDnjW", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1400.4484126719815, + "y": 3445.719602817568, + "strokeColor": "#1e1e1e", + "backgroundColor": "#12b886", + "width": 27.435039617214706, + "height": 131.1158512677214, + "seed": 219662389, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1722536698420, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -27.435039617214706, + 131.1158512677214 + ] + ] + }, + { + "type": "line", + "version": 586, + "versionNonce": 1846086235, + "index": "anG", + "isDeleted": false, + "id": "2z_yZfH_SMtR9BrRtmG8E", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1365.6978827081718, + "y": 3729.9461738227797, + "strokeColor": "#1e1e1e", + "backgroundColor": "#12b886", + "width": 18.926668558261248, + "height": 90.45316844089105, + "seed": 1052424667, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1722538174899, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -18.926668558261248, + 90.45316844089105 + ] + ] + }, + { + "type": "line", + "version": 673, + "versionNonce": 687780667, + "index": "ao", + "isDeleted": false, + "id": "H_XtdgYlVr7iUFJpqCbWp", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1212.980854385111, + "y": 3446.065940141501, + "strokeColor": "#1e1e1e", + "backgroundColor": "#12b886", + "width": 27.435039617214724, + "height": 131.11585126772144, + "seed": 1740306837, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1722536698420, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 27.435039617214724, + 131.11585126772144 + ] + ] + }, + { + "type": "line", + "version": 790, + "versionNonce": 2060257019, + "index": "aoG", + "isDeleted": false, + "id": "CFRTG3kjWCUrlOVzJ7Vpo", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1236.3692434706413, + "y": 3730.185102281819, + "strokeColor": "#1e1e1e", + "backgroundColor": "#12b886", + "width": 18.92666855826126, + "height": 90.45316844089108, + "seed": 717923669, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1722538174899, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 18.92666855826126, + 90.45316844089108 + ] + ] + }, + { + "type": "line", + "version": 648, + "versionNonce": 1910862325, + "index": "ap", + "isDeleted": false, + "id": "akl7vry0vw3MofnYpEndn", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1241.0102979672567, + "y": 3576.4837884948356, + "strokeColor": "#1e1e1e", + "backgroundColor": "#12b886", + "width": 132.9629216786985, + "height": 9.835979999683579, + "seed": 1571880693, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1722536698420, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 64.33734309428377, + 9.835979999683579 + ], + [ + 132.9629216786985, + 1.3938745221653432 + ] + ] + }, + { + "type": "line", + "version": 767, + "versionNonce": 321417115, + "index": "apG", + "isDeleted": false, + "id": "dZYE85DV9lUebPHuRCjgl", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1255.70597474399, + "y": 3820.156737982185, + "strokeColor": "#1e1e1e", + "backgroundColor": "#12b886", + "width": 91.72741079519767, + "height": 6.785568236718933, + "seed": 949798523, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1722538174899, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 44.384538373350125, + 6.785568236718933 + ], + [ + 91.72741079519767, + 0.961595152072412 + ] + ] + }, + { + "type": "line", + "version": 1251, + "versionNonce": 517641179, + "index": "aq", + "isDeleted": false, + "id": "Fr7P_CVOlfsTYH98ZGC7W", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1401.550970267136, + "y": 3447.863697266036, + "strokeColor": "#1e1e1e", + "backgroundColor": "#12b886", + "width": 204.20793772300001, + "height": 73.92223842015714, + "seed": 629102677, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1722536698420, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 8.41304386281733, + -6.992816983523688 + ], + [ + -8.914834167083862, + -46.345262208693256 + ], + [ + -56.84501538608395, + -71.12383284278236 + ], + [ + -123.82021026334682, + -73.92223842015714 + ], + [ + -171.6030768976081, + -53.21233210229683 + ], + [ + -195.7948938601827, + -6.2553848968735215 + ], + [ + -188.10231038835357, + -0.4688874539394121 + ] + ] + }, + { + "type": "line", + "version": 1368, + "versionNonce": 692962363, + "index": "aqV", + "isDeleted": false, + "id": "nya0fBWtyDxdIUTsvDnGM", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1366.458506438301, + "y": 3731.4253247753554, + "strokeColor": "#1e1e1e", + "backgroundColor": "#12b886", + "width": 140.87736005396957, + "height": 50.996890297369326, + "seed": 1096102581, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1722538174899, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 5.803924287309746, + -4.824149379127804 + ], + [ + -6.150095421272407, + -31.972303641918348 + ], + [ + -39.21579047863243, + -49.066348348330976 + ], + [ + -85.42010921675873, + -50.996890297369326 + ], + [ + -118.38417605130402, + -36.709703611302615 + ], + [ + -135.07343576665983, + -4.315415552496223 + ], + [ + -129.76653700655336, + -0.32347237531487866 + ] + ] + }, + { + "id": "rV6rckVoN-g4RRvph38Hu", + "type": "image", + "x": 451.890835890738, + "y": 3695.0442749081635, + "width": 167.7464959390759, + "height": 46.59624887196553, + "angle": 0, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "as", + "roundness": null, + "seed": 2014252859, + "version": 851, + "versionNonce": 524394640, + "isDeleted": false, + "boundElements": [], + "updated": 1731847128061, + "link": null, + "locked": false, + "status": "saved", + "fileId": "00b5aa438f1425e928c19864c99e6812ef49bd10", + "scale": [ + 1, + 1 + ], + "crop": null + }, + { + "type": "line", + "version": 688, + "versionNonce": 122856315, + "index": "au", + "isDeleted": false, + "id": "Vz387B1b2vmibhxvnqQSH", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1272.6330163883117, + "y": 3476.5593270274376, + "strokeColor": "#1e1e1e", + "backgroundColor": "#2ce5b4", + "width": 28.98577851804393, + "height": 42.9811349199005, + "seed": 1643133019, + "groupIds": [ + "KDDtU5RMPJKd3ckJPcy7u" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1722536755118, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 8.907146199098388, + 15.427629767282772 + ], + [ + 8.907146199098388, + 42.9811349199005 + ], + [ + -20.07863231894554, + 42.9811349199005 + ], + [ + -20.07863231894554, + 1.3633462798771523 + ], + [ + 0, + 0 + ] + ] + }, + { + "type": "line", + "version": 572, + "versionNonce": 633764891, + "index": "av", + "isDeleted": false, + "id": "LmVPBMi0EdUrxG5bIS9xR", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1281.2718300799863, + "y": 3490.260528414957, + "strokeColor": "#1e1e1e", + "backgroundColor": "#2ce5b4", + "width": 13.070403643350538, + "height": 13.168462466172253, + "seed": 94270715, + "groupIds": [ + "KDDtU5RMPJKd3ckJPcy7u" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1722536755118, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -13.070403643350538, + 0 + ], + [ + -9.54192475998025, + -13.168462466172253 + ] + ] + }, + { + "type": "line", + "version": 797, + "versionNonce": 882216149, + "index": "aw", + "isDeleted": false, + "id": "ev_I2v8T0dl-snNInpQe2", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1340.3672103751042, + "y": 3477.9419639990383, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 28.98577851804393, + "height": 42.9811349199005, + "seed": 2016632891, + "groupIds": [ + "dRFmKGMiTbRgGwfpJBDTA" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1722538773231, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 8.907146199098388, + 15.427629767282772 + ], + [ + 8.907146199098388, + 42.9811349199005 + ], + [ + -20.07863231894554, + 42.9811349199005 + ], + [ + -20.07863231894554, + 1.3633462798771523 + ], + [ + 0, + 0 + ] + ] + }, + { + "type": "line", + "version": 681, + "versionNonce": 854988539, + "index": "ax", + "isDeleted": false, + "id": "nURCUYMNMyP0_7-yyrBkJ", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1349.0060240667788, + "y": 3491.643165386558, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 13.070403643350538, + "height": 13.168462466172253, + "seed": 1600001269, + "groupIds": [ + "dRFmKGMiTbRgGwfpJBDTA" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1722538773231, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -13.070403643350538, + 0 + ], + [ + -9.54192475998025, + -13.168462466172253 + ] + ] + }, + { + "type": "line", + "version": 885, + "versionNonce": 376624187, + "index": "axG", + "isDeleted": false, + "id": "XYysRAd24zX_Q2p2eGnra", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1331.0303939180938, + "y": 3759.3131073009517, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 28.98577851804393, + "height": 42.9811349199005, + "seed": 998622907, + "groupIds": [ + "irGlI1gUH6Ec0F0oKCLIA" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1722538776295, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 8.907146199098388, + 15.427629767282772 + ], + [ + 8.907146199098388, + 42.9811349199005 + ], + [ + -20.07863231894554, + 42.9811349199005 + ], + [ + -20.07863231894554, + 1.3633462798771523 + ], + [ + 0, + 0 + ] + ] + }, + { + "type": "line", + "version": 769, + "versionNonce": 1577050357, + "index": "axV", + "isDeleted": false, + "id": "d48yd9wY4bhWwtyxNljv4", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1339.6692076097684, + "y": 3773.0143086884714, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 13.070403643350538, + "height": 13.168462466172253, + "seed": 2108380789, + "groupIds": [ + "irGlI1gUH6Ec0F0oKCLIA" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1722538776295, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -13.070403643350538, + 0 + ], + [ + -9.54192475998025, + -13.168462466172253 + ] + ] + }, + { + "type": "line", + "version": 914, + "versionNonce": 1797428443, + "index": "axd", + "isDeleted": false, + "id": "O0Ik_-buSPvejH_LvCcMc", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1287.1445715076575, + "y": 3759.4733474492523, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 28.98577851804393, + "height": 42.9811349199005, + "seed": 392454165, + "groupIds": [ + "hhRkWUwlJ4OviPrDNswcV" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1722538776295, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 8.907146199098388, + 15.427629767282772 + ], + [ + 8.907146199098388, + 42.9811349199005 + ], + [ + -20.07863231894554, + 42.9811349199005 + ], + [ + -20.07863231894554, + 1.3633462798771523 + ], + [ + 0, + 0 + ] + ] + }, + { + "type": "line", + "version": 798, + "versionNonce": 1034025557, + "index": "axl", + "isDeleted": false, + "id": "1ITqAjtgxj2u9TJWayiE8", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1295.783385199332, + "y": 3773.174548836772, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 13.070403643350538, + "height": 13.168462466172253, + "seed": 1201739707, + "groupIds": [ + "hhRkWUwlJ4OviPrDNswcV" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1722538776295, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -13.070403643350538, + 0 + ], + [ + -9.54192475998025, + -13.168462466172253 + ] + ] + }, + { + "id": "HCNSYE_W_xRA4UTqgTuuu", + "type": "arrow", + "x": 1063.9421887202243, + "y": 3447.669888493214, + "width": 185.72806155786225, + "height": 53.8549954573391, + "angle": 0, + "strokeColor": "#258c81", + "backgroundColor": "#ffffff", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b00", + "roundness": { + "type": 2 + }, + "seed": 1298328277, + "version": 228, + "versionNonce": 1686590101, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "9JxM9dyoRp9meqG8llmiS" + } + ], + "updated": 1722538052045, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 67.67232637227676, + 37.36154794061849 + ], + [ + 185.72806155786225, + 53.8549954573391 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "rc8yXewY6HEPU-FwSwn3-", + "focus": -0.5176202515159919, + "gap": 1 + }, + "endBinding": null, + "startArrowhead": "arrow", + "endArrowhead": "arrow" + }, + { + "id": "9JxM9dyoRp9meqG8llmiS", + "type": "text", + "x": 1091.4385315145344, + "y": 3475.0314364338324, + "width": 80.35196715593338, + "height": 20, + "angle": 0, + "strokeColor": "#258c81", + "backgroundColor": "#ffffff", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b00V", + "roundness": null, + "seed": 364298389, + "version": 13, + "versionNonce": 145362939, + "isDeleted": false, + "boundElements": [], + "updated": 1722538051132, + "link": null, + "locked": false, + "text": "Metadata", + "fontSize": 16, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "HCNSYE_W_xRA4UTqgTuuu", + "originalText": "Metadata", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "GyPIp862EuIWsednp_LJE", + "type": "arrow", + "x": 749.1541699290619, + "y": 3449.289653386231, + "width": 130.59118001605634, + "height": 0.2223057387436711, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffffff", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0G", + "roundness": { + "type": 2 + }, + "seed": 52134741, + "version": 1003, + "versionNonce": 846712464, + "isDeleted": false, + "boundElements": [], + "updated": 1731847150799, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 130.59118001605634, + 0.2223057387436711 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "fKdWdkNM9XYc-7n1H_JyG", + "focus": -0.6209306908899385, + "gap": 1, + "fixedPoint": null + }, + "endBinding": { + "elementId": "rc8yXewY6HEPU-FwSwn3-", + "focus": -0.04447413942394212, + "gap": 2.3707090880450323, + "fixedPoint": null + }, + "startArrowhead": "arrow", + "endArrowhead": "arrow" + }, + { + "id": "94vLrbjNaZ-Is-8OTvFrb", + "type": "arrow", + "x": 752.8003605164386, + "y": 3749.072631682589, + "width": 471.93596538921497, + "height": 2.3734459621564383, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#ffffff", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0H", + "roundness": { + "type": 2 + }, + "seed": 382577883, + "version": 1016, + "versionNonce": 1653985904, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "K2M3nmYuNkeXvtPaSRB-X" + } + ], + "updated": 1731847156943, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 471.93596538921497, + 2.3734459621564383 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "fKdWdkNM9XYc-7n1H_JyG", + "focus": 0.6710626336478095, + "gap": 4.646190587376623, + "fixedPoint": null + }, + "endBinding": null, + "startArrowhead": "arrow", + "endArrowhead": "arrow" + }, + { + "id": "K2M3nmYuNkeXvtPaSRB-X", + "type": "text", + "x": 940.0115674424673, + "y": 3697.1162259565835, + "width": 42.895988285541534, + "height": 20, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#ffffff", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0HG", + "roundness": null, + "seed": 1105348949, + "version": 7, + "versionNonce": 2025606677, + "isDeleted": false, + "boundElements": [], + "updated": 1722538767196, + "link": null, + "locked": false, + "text": "Data", + "fontSize": 16, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "94vLrbjNaZ-Is-8OTvFrb", + "originalText": "Data", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "FoG-M0XjPajxjfIcaEGnO", + "type": "arrow", + "x": 751.3083437605845, + "y": 3557.286409892364, + "width": 476.85489131014253, + "height": 1.0651492733136365, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#ffffff", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0HV", + "roundness": { + "type": 2 + }, + "seed": 915786645, + "version": 1343, + "versionNonce": 958418064, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "e1j3hXwZh4R5fHWNy3zFH" + } + ], + "updated": 1731847128060, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 476.85489131014253, + 1.0651492733136365 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "fKdWdkNM9XYc-7n1H_JyG", + "focus": -0.1541714895390519, + "gap": 3.1541738315226464 + }, + "endBinding": { + "elementId": "9amrjmm6vzKNvV1txfde1", + "focus": -0.9221739442877142, + "gap": 8.708507831127235 + }, + "startArrowhead": "arrow", + "endArrowhead": "arrow" + }, + { + "id": "e1j3hXwZh4R5fHWNy3zFH", + "type": "text", + "x": 944.103324640474, + "y": 3548.844679102245, + "width": 42.895988285541534, + "height": 20, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#ffffff", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0Hl", + "roundness": null, + "seed": 696045493, + "version": 47, + "versionNonce": 942598901, + "isDeleted": false, + "boundElements": [], + "updated": 1722538756147, + "link": null, + "locked": false, + "text": "Data", + "fontSize": 16, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "FoG-M0XjPajxjfIcaEGnO", + "originalText": "Data", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "WdkrYra56assCyd-YXdgZ", + "type": "image", + "x": 446.1287137782343, + "y": 3557.9775185064696, + "width": 217.4295667190742, + "height": 57.98121779175312, + "angle": 0, + "strokeColor": "transparent", + "backgroundColor": "#ffffff", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0O", + "roundness": null, + "seed": 66171035, + "version": 569, + "versionNonce": 626986640, + "isDeleted": false, + "boundElements": [], + "updated": 1731847128061, + "link": null, + "locked": false, + "status": "saved", + "fileId": "052b11aa8b22d6eabf95831f5c83abbbdebc45ef", + "scale": [ + 1, + 1 + ], + "crop": null + }, + { + "id": "sFbdpiCJ6bbj4yMSWgtQQ", + "type": "image", + "x": 403.06042421214914, + "y": 3630.0467361993547, + "width": 113.06387301869914, + "height": 43.812250794745914, + "angle": 0, + "strokeColor": "transparent", + "backgroundColor": "#ffffff", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0P", + "roundness": null, + "seed": 1476771035, + "version": 501, + "versionNonce": 564051088, + "isDeleted": false, + "boundElements": [], + "updated": 1731847128061, + "link": null, + "locked": false, + "status": "saved", + "fileId": "733eb5ed9a01ba64388cba865a5ff133b3a04561", + "scale": [ + 1, + 1 + ], + "crop": null + }, + { + "id": "z5AUyrD2Xi7HOoCOe7774", + "type": "image", + "x": 594.2253081303182, + "y": 3633.2216686746606, + "width": 94.972116571869, + "height": 34.955015127146225, + "angle": 0, + "strokeColor": "transparent", + "backgroundColor": "#ffffff", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0Q", + "roundness": null, + "seed": 849362939, + "version": 519, + "versionNonce": 364423824, + "isDeleted": false, + "boundElements": [], + "updated": 1731847128061, + "link": null, + "locked": false, + "status": "saved", + "fileId": "8a405086d877b8b98996d7386da4ece965e92454", + "scale": [ + 1, + 1 + ], + "crop": null + }, + { + "id": "9OvAOafyzEx2eTcf6a6sZ", + "type": "text", + "x": 1185.3806807731926, + "y": 3331.483415371421, + "width": 275.1998291015625, + "height": 20, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffffff", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0R", + "roundness": null, + "seed": 1762599413, + "version": 57, + "versionNonce": 1717000277, + "isDeleted": false, + "boundElements": [], + "updated": 1722538651923, + "link": null, + "locked": false, + "text": "S3 / Azure Blob / GCS / MinIO ...", + "fontSize": 16, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "S3 / Azure Blob / GCS / MinIO ...", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "Fhakw2nF56ggm_i2A1Hlz", + "type": "text", + "x": 367.03081660045905, + "y": 3856.102039602422, + "width": 595.9036865234375, + "height": 20, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0S", + "roundness": null, + "seed": 1798373467, + "version": 792, + "versionNonce": 622779504, + "isDeleted": false, + "boundElements": [], + "updated": 1731847183579, + "link": null, + "locked": false, + "text": "* All Data & Metadata is always stored within your Account and Network", + "fontSize": 16, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "* All Data & Metadata is always stored within your Account and Network", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "o8X_Fx326X8JiZIkuuFA9", + "type": "image", + "x": 484.73042132190164, + "y": 3441.4926633490163, + "width": 119.0231773445256, + "height": 47.53260544515676, + "angle": 0, + "strokeColor": "transparent", + "backgroundColor": "#1e6b61", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0U", + "roundness": null, + "seed": 865759344, + "version": 847, + "versionNonce": 207935632, + "isDeleted": false, + "boundElements": null, + "updated": 1731847128061, + "link": null, + "locked": false, + "status": "saved", + "fileId": "b001d66de9fa144d4d413562a3a62181d0d4450e", + "scale": [ + 1, + 1 + ], + "crop": null + }, + { + "id": "JaEdbiO1wbDmtQyyd6isX", + "type": "image", + "x": 369.14936862099376, + "y": 3505.4835047322053, + "width": 176.6006152010927, + "height": 44.388175607862905, + "angle": 0, + "strokeColor": "transparent", + "backgroundColor": "#1e6b61", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0W", + "roundness": null, + "seed": 585527920, + "version": 961, + "versionNonce": 2036024976, + "isDeleted": false, + "boundElements": null, + "updated": 1731847128061, + "link": null, + "locked": false, + "status": "saved", + "fileId": "f6104a267b941b1e71e4188461fabc63c1406c02", + "scale": [ + 1, + 1 + ], + "crop": { + "x": 14.061882697898454, + "y": 17.14293450507074, + "width": 1181.0609396595476, + "height": 296.85706549492926, + "naturalWidth": 1208, + "naturalHeight": 314 + } + }, + { + "id": "TXSTOQI5F5qlrOUNCuuHb", + "type": "image", + "x": 559.6305978501075, + "y": 3496.5944271721455, + "width": 170.64923206272238, + "height": 60.146860481123454, + "angle": 0, + "strokeColor": "transparent", + "backgroundColor": "#1e6b61", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0X", + "roundness": null, + "seed": 208157808, + "version": 490, + "versionNonce": 1143701616, + "isDeleted": false, + "boundElements": null, + "updated": 1731847139613, + "link": null, + "locked": false, + "status": "saved", + "fileId": "0909b69b3afd8b5bbaf69e31cbd2868cc931bde5", + "scale": [ + 1, + 1 + ], + "crop": null + } + ], + "appState": { + "gridSize": 20, + "gridStep": 5, + "gridModeEnabled": false, + "viewBackgroundColor": "#ffffff" + }, + "files": { + "0e322a8749f5fd6440745c039816dc9c40aad84a": { + "mimeType": "image/png", + "id": "0e322a8749f5fd6440745c039816dc9c40aad84a", + "dataURL": "data:image/png;base64,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", + "created": 1722534560073, + "lastRetrieved": 1722534560073 + }, + "97a54ef0c7419b7b3fb8526c7386b19214357d1d": { + "mimeType": "image/png", + "id": "97a54ef0c7419b7b3fb8526c7386b19214357d1d", + "dataURL": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAAAXNSR0IArs4c6QAAIABJREFUeF7t3QnYfd9c9/GvJEoKmTLGk1kkqWSMkJKhTJUHyZhHJZJShpShpB4pQoZ6QsiTIaVkaFAhKUNJhIpCZqGB9vtv35zf/bvv+3zXOvucvddZ73Vd/6vht4e1X2vf53zO3ms4U1gUUEABBRRQoDuBM3V3xV6wAgoooIACCoQBwJtAAQUUUECBDgUMAB02upesgAIKKKCAAcB7QAEFFFBAgQ4FDAAdNrqXrIACCiiggAHAe0ABBRRQQIEOBQwAHTa6l6yAAgoooIABwHtAAQUUUECBDgUMAB02upesgAIKKKCAAcB7QAEFFFBAgQ4FDAAdNrqXrIACCiiggAHAe0ABBRRQQIEOBQwAHTa6l6yAAgoooIABwHtAAQUUUECBDgUMAB02upesgAIKKKCAAcB7QAEFFFBAgQ4FDAAdNrqXrIACCiiggAHAe0ABBRRQQIEOBQwAHTa6l6yAAgoooIABwHtAAQUUUECBDgUMAB02upesgAIKKKCAAcB7QAEFFFBAgQ4FDAAdNrqXrIACCiiggAHAe0ABBRRQQIEOBQwAHTa6l6yAAgoooIABwHtAAQUUUECBDgUMAB02upesgAIKKKCAAcB7QAEFFFBAgQ4FDAAdNrqXrIACCiiggAHAe0ABBRRQQIEOBQwAHTa6l6yAAgoooIABwHtAAQUUUECBDgUMAB02upesgAIKKKCAAcB7QAEFFFBAgQ4FDAAdNrqXrIACCiiggAHAe0ABBRRQQIEOBQwAHTa6l6yAAgoooIABwHtAAQUUUECBDgUMAB02upesgAIKKKCAAcB7QAEFFFBAgQ4FDAAdNrqXrIACCiiggAHAe0ABBRRQQIEOBQwAHTa6l6yAAgoooIABwHtAAQUUUECBDgUMAB02upesgAIKKKCAAcB7QAEFFFBAgQ4FDAAdNrqXrIACCiiggAHAe0ABBRRQQIEOBQwAHTa6l6yAAgoooIABwHtAAQUUUECBDgUMAB02upesgAIKKKCAAcB7QAEFFFBAgQ4FDAAdNrqXrIACCiiggAHAe0ABBRRQQIEOBQwAHTa6l6yAAgoooIABwHtAAQUUUECBDgUMAB02upesgAIKKKCAAcB7QAEFFFBAgQ4FDAAdNrqXrIACCiiggAHAe0ABBRRQQIEOBQwAHTa6l6yAAgoooIABwHtAAQUUUECBDgUMAB02upesgAIKKKCAAcB7QAEFFFBAgQ4FDAAdNrqXrIACCiiggAHAe0ABBRRQQIEOBQwAHTa6l6yAAgoooIABwHtAAQUUUECBDgUMAB02upesgAIKKKCAAcB7QAEFFFBAgQ4FDAAdNrqXrIACCiiggAHAe0ABBRRQQIEOBQwAHTa6l6yAAgoooIABwHtAAQUUUECBDgUMAB02upesgAIKKKCAAcB7QAEFFFBAgQ4FDAAdNrqXrIACCiiggAHAe0ABBRRQQIEOBQwAHTa6l6yAAgoooIABwHtAAQUUUECBDgUMAB02upesgAIKKKCAAcB7QAEFFFBAgQ4FDAAdNrqXrIACCiiggAHAe0ABBRRQQIEOBQwAHTa6l6yAAgoooIABwHtAAQUUUECBDgUMAB02upesgAIKKKCAAcB7QAEFFFBAgQ4FDAAdNrqXrIACCiiggAHAe0ABBRRQQIEOBQwAHTa6l6yAAgoooIABwHtAAQUUUECBDgUMAB02upesgAIKKKCAAcB7QAEFFFBAgQ4FDAAdNrqXrIACCiiggAHAe0ABBRRQQIEOBQwAHTa6l6yAAgoooIABwHtAAQUUUECBDgUMAB02upesgAIKKKCAAcB7QAEFFFBAgQ4FDAAdNrqXrIACCiiggAHAe0ABBRRQQIEOBQwAHTa6l6yAAgoooIABwHtAAQUUUECBDgUMAB02upesgAIKKKCAAcB7QAEFFFBAgQ4FDAAdNrqXrIACCiiggAHAe0ABBRRQQIEOBQwAHTa6l6yAAgoooIABwHtAAQUUUECBDgUMAB02upesgAIKKKCAAcB7QAEFFFBAgQ4FDAAdNrqXrIACCiiggAHAe0ABBRRQQIEOBQwAHTa6l6yAAgoooIABwHtAAQUUUECBDgUMAB02upesgAIKKKCAAcB7QAEFFFBAgQ4FDAAdNrqXrIACCiiggAHAe0ABBRRQQIEOBQwAHTa6l6yAAgoooIABwHtAAQUUUECBDgUMAB02upesgAIKKKCAAcB7QAEFFFBAgQ4FDAAdNrqXrIACCiiggAHAe0ABBRRQQIEOBQwAHTa6l6yAAgoooIABwHtAAQUUUECBDgUMAB02upesgAIKKKCAAcB7QAEFFFBAgQ4FDAAdNrqXrIAC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", + "created": 1722534694523, + "lastRetrieved": 1722534694523 + }, + "bc3358bef265f112f724f733549d4cd7de1dee8a": { + "mimeType": "image/png", + "id": "bc3358bef265f112f724f733549d4cd7de1dee8a", + "dataURL": "data:image/png;base64,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", + "created": 1722534760628, + "lastRetrieved": 1722534760628 + }, + "ec273749eb4f3f53fb9f9368bfa3b7c3af3d1c37": { + "mimeType": "image/png", + "id": "ec273749eb4f3f53fb9f9368bfa3b7c3af3d1c37", + "dataURL": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABaAAAAKICAYAAACG+F0dAAAAAXNSR0IArs4c6QAAIABJREFUeF7s3Ql4VNX9//HvuXcyEyBsAkkAV9xQWhWhWq1WUFwAcQ9V6q5FEbVCabVSmxl/WrQ/qq1YFVqX1rXEurGIog1W/62t0LqBe1EEQhJAdjIzuff8Obdz+aVWhWTunUwm7/s8eVAy99xzXufe5OEzZ75HCQcCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAiEIqBDapEkEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBIQAmpsAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAIBQBAuhQWGkUAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAgACaewABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAgFAEC6FBYaRQBBBBAAAEEEEAAAQQQQAABBBBAAAEEEECAAJp7AAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCAUAQLoUFhpFAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQIAAmnsAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAIBQBAuhQWGkUAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAgACaewABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAgFAEC6FBYaRQBBBBAAAEEEEAAAQQQQAABBBBAAAEEEECAAJp7AAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCAUAQLoUFhpFAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQIAAmnsAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAIBQBAuhQWGkUAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAgACaewABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAgFAEC6FBYaRQBBBBAAAEEEEAAAQQQQAABBBBAAAEEEECAAJp7AAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCAUAQLoUFhpFAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQIAAmnsAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAIBQBAuhQWGkUAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAgACaewABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAgFAEC6FBYaRQBBBBAAAEEEEAAAQQQQAABBBBAAAEEEECAAJp7AAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCAUAQLoUFhpFAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQIAAmnsAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAIBQBAuhQWGkUAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAgACaewABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAgFAEC6FBYaRQBBBBAAAEEEEAAAQQQQAABBBBAAAEEEECAAJp7AAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCAUAQLoUFhpFAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQIAAmnsAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAIBQBAuhQWGkUAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAgACaewABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAgFAEC6FBYaRQBBBBAAAEEEEAAAQQQQAABBBBAAAEEEECAAJp7AAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCAUAQLoUFhpFAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQIAAmnsAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAIBQBAuhQWGkUAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAgACaewABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAgFAEC6FBYaRQBBBBAAAEEEEAAAQQQQAABBBBAAAEEEECAAJp7AAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCAUAQLoUFhpFAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQIAAmnsAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAIBQBAuhQWGkUAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAgACaewABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAgFAEC6FBYaRQBBBBAAAEEEEAAAQQQQAABBBBAAAEEEECAAJp7AAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCAUAQLoUFhpFAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQIAAmnsAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAIBQBAuhQWGkUAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAgACaewABBBBAAAEEEEAAAQQQQAAB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ToE7pB3DeC1xxJ+Oh9y4iyEGY8V7uJkhCjvFYojIEJDxagRkCMwQmk1YDYTTgAC91bIshNFItt3O39Zk9ymC4cMmkgAJkAAJkAAJkAAJkAAJkAAJkAAJFBsBCtDF1uNsLwnkgIBt28HKyspQ48aNg2VlZaHdu3eHQqFQEItlWYHq6mr1isXat+A1WFNTgz+ZUB0qdIX5PFEzbNuOYDXb2fuWSElJSdh8pv4QiYTLysoieFX/hMPhhg0b1tbU1NRWVVWFt2/fHu7WrVutZVn7y0p0bH5OAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiSwjwAFaI4EEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABTwhQgPYEKwslARIgARIgARIgARIgARIgARIgARIgARIgARIgARKgAM0xQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIk4AkBCtCeYGWhJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACFKA5BkiABEiABEiABEiABEiABEiABEiABEiABEiABEiABDwhQAHaE6wslARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgAI0xwAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkIAnBChAe4KVhZIACZAACZAACZAACZAACZAACZAACZAACZAACZAACVCA5hggARIgARIgARIgARIgARIgARIgARIgARIgARIgARLwhAAFaE+wslASIAESIAESIAESIAESIAESIAESIAESIAESIAESIAEK0BwDJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACnhCgAO0JVhZKAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAZpjgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIwBMCFKA9wcpCSYAESIAESIAESIAESIAESIAESIAESIAESIAESIAEKEBzDJAACZAACZAACZAACZAACZAACZAACZAACZAACZAACXhCgAK0J1hZKAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAVojgESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAFPCFCA9gQrCyUBEiABEiABEiABEiABEiABEiABEiABEiABEiABEqAAzTFAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiTgCQEK0J5gZaEkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIUoDkGSIAESIAESIAESIAESIAESIAESIAESIAESIAESIAEPCFAAdoTrCyUBEiABEiABEiABEiABEiABEiABEiABEiABEiABEiAAjTHAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQgCcEKEB7gpWFkgAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJUIDmGCABEiABEiABEiABEiABEiABEiABEiABEiABEiABEvCEAAVoT7CyUBIgARIgARIgARIgARIgARIgARIgARIgARIgARIgAQrQHAMkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAKeEKAA7QlWFkoCJEACJEACJEACJEACJEACJEACJEACJEACJEACJEABmmOABEiABEiABEiABEiABEiABEiABEiABEiABEiABEjAEwIUoD3BykJJgARIgARIgARIgARIgARIgARIgARIgARIgARIgAQoQHMMkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJeEKAArQnWFkoCZAACZAACZAACZAACZAACZAACZAACZAACZAACZAABWiOARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgAU8IUID2BCsLJQESIAESIAESIAESIAESIAESIAESIAESIAESIAESoADNMUACJEACJEACJEACJEACJEACJEACJEACJEACJEACJOAJAQrQnmBloSRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAhSgOQZIgARIgARIgARIgARIgARIgARIgARIgARIgARIgAQ8IUAB2hOsLJQESIAESIAESIAESIAEAmjAjAAAAjhJREFUSIAESIAESIAESIAESIAESIACNMcACZAACZAACZAACZAACZAACZAACZAACZAACZAACZCAJwQoQHuClYWSAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAlQgOYYIAESIAESIAESIAESIAESIAESIAESIAESIAESIAES8IQABWhPsLJQEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABCtAcAyRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAp4QoADtCVYWSgIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAGaY4AESIAESIAESIAESIAESIAESIAESIAESIAESIAESMATAhSgPcHKQkmABEiABEiABEiABEiABEiABEiABEiABEiABEiABChAcwyQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAl4QoACtCdYWSgJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAFaI4BEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABTwhQgPYEKwslARIgARIgARIgARIgARIgARIgARIgARIgARIgARKgAM0xQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIk4AkBCtCeYGWhJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACFKA5BkiABEiABEiABEiABEiABEiABEiABEiABEiABEiABDwh8P8B3H1ZQb8aMK8AAAAASUVORK5CYII=", + "created": 1722534903542, + "lastRetrieved": 1722534903542 + }, + "57c766831721e9fb1cd3ac887423f3539a447a55": { + "mimeType": "image/png", + "id": "57c766831721e9fb1cd3ac887423f3539a447a55", + "dataURL": "data:image/png;base64,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", + "created": 1722535141187, + "lastRetrieved": 1722535141187 + }, + "14425b5cfc24549457fe531a77b482c2336c0d1d": { + "mimeType": "image/png", + "id": "14425b5cfc24549457fe531a77b482c2336c0d1d", + "dataURL": "data:image/png;base64,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", + "created": 1722535283692, + "lastRetrieved": 1722535283692 + }, + "00b5aa438f1425e928c19864c99e6812ef49bd10": { + "mimeType": "image/png", + "id": "00b5aa438f1425e928c19864c99e6812ef49bd10", + "dataURL": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABMgAAAFUCAYAAADRUgCQAAAAAXNSR0IArs4c6QAAIABJREFUeF7svQd8nMWd/z+z++xqVa3iIlcZ27hibGxsig3GdDC9hg4JCRyp9w+Xu0vC/3J3ueRSLneXHCEBkhBKwDamGALEFGNww71hW0YuclGzZXWttjw7P38mHmejSNpdbdFK+uzr9bwkrZ5nnpn3zPPMzGe+3+9IwQ8JkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJ9GMCsh+XnUUnARIgARIgARIgARIgARIgARIgARIgARIgAUGBjI2ABEiABEiABEiABEiABEiABEiABEiABEigXxOgQNavq5+FJwESIAESIAESIAESIAESIAESIAESIAESoEDGNkACJEACJEACJEACJEACJEACJEACJEACJNCvCVAg69fVz8KTAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAlQIGMbIAESIAESIAESIAESIAESIAESIAESIAES6NcEKJD16+pn4UmABEiABEiABEiABEiABEiABEiABEiABCiQsQ2QAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAn0awIUyPp19bPwJEACJEACJEACJEACJEACJEACJEACJEACFMjYBkiABEiABEiABEiABEiABEiABEiABEiABPo1AQpk/br6WXgSIAESIAESIAESIAESIAESIAESIAESIAEKZGwDJEACJEACJEACJEACJEACJEACJEACJEAC/ZoABbJ+Xf0sPAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAUytgESIAESIAESIAESIAESIAESIAESIAESIIF+TYACWb+ufhaeBEiABEiABEiABEiABEiABEiABEiABEiAAhnbAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQQL8mQIGsX1c/C08CJEACJEACJEACJEACJEACJEACJEACJECBjG2ABEiABEiABEiABEiABEiABEiABEiABEigXxOgQNavq5+FJwESIAESIAESIAESIAESIAESIAESIAESoEDGNkACJEACJEACJEACJEACJEACJEACJEACJNCvCVAg69fVz8KTAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAlQIGMbIAESIAESIAESIAESIAESIAESIAESIAES6NcEKJD16+pn4UmABEiABEiABEiABEiABEiABEiABEiABCiQsQ2QAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAn0awIUyPp19bPwJEACJEACJEACJEACJEACJEACJEACJEACFMjYBkiABEiABEiABEiABEiABEiABEiABEiABPo1AQpk/br6WXgSIAESIAESIAESIAESIAESIAESIAESIAEKZGwDJEACJEACJEACJEACJEACJEACJEACJEAC/ZoABbJ+Xf0sPAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAUytgESIAESIAESIAESIAESIAESIAESIAESIIF+TYACWb+ufhaeBEiABEiABEiABEiABEiABEiABEiABEiAAhnbAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQQL8mQIGsX1c/C08CJEACJEACJEACJEACJEACJEACJEACJECBjG2ABEiABEiABEiABEiABEiABEiABEiABEigXxOgQNavq5+FJwESIAESIAESIAESIAESIAESIAESIAESoEDGNkACJEACJEACJEACJEACJEACJEACJEACJNCvCVAg69fVz8KTAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAlQIGMbIAESIAESIAESIAESIAESIAESIAESIAES6NcEKJD16+pPv8IrpQbatj0vGAwGbNvWGfT7/SIYDAr8bY72f+M8fBfNx7IsfZrT6Tx14Dv87Xa7hfnd/B/nZmRkOIUQm6WUB6K5B88hARIgARIgARIgARIgARIgARIgARLoPQQokPWeuurzOVVKQYT64MRxIQqrlBI+n0+0tbXpw+v16gO/t7a26p/4fyAQOCWghUIhgQPXmo+UUpjD4XBoAQyHy+XSgpjH4xGZmZn6yM7Ohhh26m/8P+zzRSnl032+IlhAEiABEiABEiABEiABEiABEiABEuhnBCiQ9bMK78niKqWklFIrV4FAYLNt2w0Qs2AVBkHLtu2sjIyMWbW1tVoAa25uFk1NTfpobGzUR319vWhoaNA/8X1LS8sp0cwIZeEiWbgwZizCIHpBBIMwBkEsLy9PHwUFBSI/P1//PmDAAH3gd5yTk5MDC7PPHA7HEcuyUA5tcQahDaKbw+HIdjgcs8LL2JOseW8SIAESIAESIAESIAESIAESIAESIIHoCVAgi54Vz0wAAdu29waDwcLm5uZ8iFxG6DJiWF1d3SkRDAKYsRgz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", + "created": 1722536352800, + "lastRetrieved": 1722536352800 + }, + "052b11aa8b22d6eabf95831f5c83abbbdebc45ef": { + "mimeType": "image/png", + "id": "052b11aa8b22d6eabf95831f5c83abbbdebc45ef", + "dataURL": "data:image/png;base64,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", + "created": 1722538330971, + "lastRetrieved": 1722538330971 + }, + "733eb5ed9a01ba64388cba865a5ff133b3a04561": { + "mimeType": "image/png", + "id": "733eb5ed9a01ba64388cba865a5ff133b3a04561", + "dataURL": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABaAAAAIuCAYAAABJva/uAAAAAXNSR0IArs4c6QAAIABJREFUeF7svQfYNEWZtn193yKKgAEVwyq65hzWsK6KmF11dU2YXcyIATGCrhkDJhYUEQkiijmCcdU1rAETKiYMgCiCuiqKioi63//3tdStxTAzXT3TPdPdc/ZxPMfzvs90V1edd3VP91V3XfV/xAYBCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQ6IDA/+mgTIqEAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCKhUgK7b7/+DJQQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAgJ1AnLPvz/yvpf2qwxX65EF1XdhRZJ17XfV5aDpGHAAQgAAEIQKA/BPLnhNLv+v7UnppAAAIQgAAEIAABCEAAAhCAQBGBeSKxhef/l0rZUtKFJJ2R/hbH+YXR+/2p6Gz92alOHG/6UsyLc39iS00gAAEIQKC/BPLnh8la+jO+T/sbO2oGAQhAAAIQgAAEIAABCEBgIQKzhNgQn68taWdJV5F0YUmnp2zoSQH695LOymoQL5H+u0Vs/98/f04idvzfn/02Cdj+m///O0l/zIRti95Rn/jMp/LfXZ4/+0M6zi+uddnaC4GqOSja491mvVxPvlTzkt1FJCgTAhCAAAT6SiAXmLeV5GeM80k6RdIPUqURofsaPeoFAQhAAAIQgAAEIAABCEBgQQLTBOh4+buppFdJutGCZZceZrE5RGOLshaTnVFtYdkC85np3/7MInfs67/7397PZfi4OD6E6N+kSvwqlen9/TeXb3Hcx/j/Liv+f3Ymins/i+I+Lv/tf+c/pW3N9wv2JdnWiNWLEOYYCEAAAhDoC4F4tthC0v0rwXkXSZdPlfN38Kcl7SPp1DSQy/deXyJHPSAAAQhAAAIQgAAEIAABCCxJYFKAjkzj61UvhodLusGE5caSp/vfw+vsL9o4x7wyLFZbPLa4bWHZ//e/4//+m4Vn/z8+828L1M66tkDt3/7x338t6Rfp7xaznaVtodyfuZwoI4R1l+sy/LvJtgg3XuCbEGZfCEAAAhDogoCfLfx9ZDuvPavvyadIcgb05PZlSfeW9ENE6C7CQJkQgAAEIAABCEAAAhCAAATWQ2CWAP1MSXsnodYvjqvcFhFN647JLTLaaovP6Z8QryPr2gJ2Lm5boHZ2l0Vq2434xxnZ/rE4/d/pc//b+1mcjt/eN+xNSn22Z2W1u93TONWxa4sX5UAAAhCAwOYRyG2pnlEJy8+T5CzosOcKIrGmxCGSdsvsvviO2rw+Q4shAAEIQAACEIAABCAAgZERyMXKmB67naTXSbpbausimbd9xTTrRbZUmM1tM9rm4jqEWO3fzqT+Zfqbheifp8zqyL52lrXFa+8XorYzsNvMrObFv689mXpBAAIQ6D+B/HvycZXf8wtT5rPF58nBbf/N3zn+Xrt9tf7Et7L1H/rfUmoIAQhAAAIQgAAEIAABCEAAAjMJ5C+HYb+xg6QjJO00QgG6ra5QJ8xOfj4pVi8rXoeNhwVqZ0iHCG1xOoRri9H+/4/TAk/e1yJ2eGe7jvHCP49LZI/nC0Pl7atj0RZzyoEABCAAgeEQyBcbfnxlv/EiSdvMmVnl7xIf4++oR0s6EhuO4QSbmkIAAhCAAAQgAAEIQAACEKgTF+PzPAP6UEn3SNlIy4qlRKCcwKSYO03odTya2KL4ZT4sPSxW2+rDQvRP08/J1XTnn6Ufi9XOrLbdhz2rw7d6Vgtcj79J/SQsSeJ3eavZEwIQgAAExkQgt92w+PyS6merGluvEKD9HWQB+g0I0GPqErQFAhCAAAQgAAEIQAACENhkApPissVEexg/ocpUenkSOpuInZvMcpVtD2F61u/IPGsSO2dDO/YWpz0F+pSUPf2j9G//Pew/bBHif1somLb5vLHoVF5HsqVX2Us4FwQgAIHVE8gzn/0ssU/1c4GCNSVyAfpRZECvPnCcEQIQgAAEIAABCEAAAhCAQFcEZmU3XyrZcNyh4KWxq7pR7vIEJgXqvMTcz7r0TM6ktjjtH2dQW5R2BvVP0o8zqCO7uq7MSWuPeXWtK4vPIQABCEBg/QQWFZ9d8xCgPfPGGdC2Asutn9bfOmoAAQhAAAIQgAAEIAABCEAAAgsRmCZAxwvfldIU2JslS4bzLXQGDhoagWlZ1SEMOEN+1mbv6Vg88fQkSJ8k6buSTkjZ1KdJOjsNaswqx+eI7OnwqCZzemi9iPpCAAKbSCCeH/aQ9NJq0UE/N8T3Rx2P2M+zax4s6X0I0HXI+BwCEIAABCAAAQhAAAIQgMAwCMzKgA4rjr9L02AtQk9btX4YraSWbRGY9HnOhelZfcm2Hs5o828vjGhB2rYeX0u/fyjpt5IsWvu3/acnNwvSIWzgMd1WNCkHAhCAQDsEYm0CPyeE+LxFA/HZtYjvk19V3xP3l/QfCNDtBIdSIAABCEAAAhCAAAQgAAEIrJvAvAUGLfr5ZXIHSa+RdOf0gug6szDhuiPXr/NPy5rOLTbqantqJkxboLbFh7OlT0yZ07O8pqMv5gtehZBRd04+hwAEIACB5QmE+OxBRns3v1LSlqnYJs8KuQD9AEkfRoBePjiUAAEIQAACEIAABCAAAQhAoA8E6l4OQ4TeOonQnhZrUTrExT60gToMh8AsK41p/dDZ0rbwsDhtQdpitDOnvyHp2ylTelZ5YRWSZ2wPhxI1hQAEIDAcAvGc4KzlQyT5eWGRGVMI0MOJOTWFAAQgAAEIQAACEIAABCDQiECdAO3Cwo7jwpIOqPx8H4QI3YgxO88mkAvIeRZ1ZNRNHmmLjp+lhQ5/mbKmvyLpO8lz2oskep9JYdoCiTcWOqQ3QgACEGiHQD7zxBnLr5Z0kQXF57g/u0xbcDxQ0ofIgG4nUJQCAQhAAAIQgAAEIAABCEBg3QRKBGjXMTKcLppEaL9shphXWsa628r5h0NgmjAdIvI0Ufr3kixIf0/SVyUdn6w7LFb/VJI/n9ym9VsWOxxOH6GmEIDA+gjELChnOjvz2YPT2y0hPucCtNcD8DMGHtDriy9nhgAEIAABCEAAAhCAAAQg0CqBJuJxiNB+yXyFpIcgQrcaCwqrJzApTE8TpS2I/FmSs6EtSNuy41vJyuPkZOthsXqaIJ1n9CFG18eDPSAAgc0kEM8Dd5N0eAvisymGbYcHDu8u6fPZ4PdmUqbVEIAABCAAAQhAAAIQgAAERkKgiQDtJsdL57aSXlLZIezWcJX7kWCjGT0iED7PrtI8b3KL0iekHwvT309e0haoz0jixzRR2n9DjO5RwKkKBCCwVgLxHLCjpIMlXV2SFyAM7/1FKxcC9E8k/bMk2yvFuRYtk+MgAAEIQAACEIAABCAAAQhAoAcEmgrQuQh9IUkvrbx3dyUTugeRpApBYJpYPK2fWzA5JS1s6Mzo4yR9MWVNO3vaP/mW+0gjSNPfIACBTSOQ227cXNKhSXxeZMHBaewQoDetR9FeCEAAAhCAAAQgAAEIQGBjCCwiQOci9DbJjuNRiNAb02eG3NA8W3rSvsMZ0l78yvYctuz4ZBKlLU7/XNIfsob7WF87UR6C9JB7BXWHAARKCMSCxBafD5N0tSU9nyfPiQBdEgX2gQAEIAABCEAAAhCAAAQgMEACiwrQuQh9YUkvqzx2H4kdxwB7wOZWeVI8njZ93KL0tyV9Li1uaAsP/98LG8YWWYEhQiNGb26fouUQGCuBsMK4iaQ3dCA+m1suQN9V0rFYcIy1O9EuCEAAAhCAAAQgAAEIQGDTCCwjQE+K0PaExo5j03rQeNpb4iV9lqQvpQxpC9GfTcL0JAXsOsbTL2gJBDadQGQ+X1PSuzsSn3MB+seS7iTpmwjQm971aD8EIAABCEAAAhCAAAQgMBYCywrQuQi9dfKEfgx2HGPpHrRjwmZjMkvai2X9QNJnJH04idG/mVjQcItE0Z7TZEfTpSAAgSER8P3LM0GuLekdLXs+T3KIDGjfU2+V/PlZhHBIvYW6QgACEIAABCAAAQhAAAIQmEGgDQE6F6HtCf2iykf38el8FtzaOgdBhMC6Cbg/WyTxj4WZvG/7bxakLUZ/UNKXk4Dyu6zSFrCjjHW3hfNDAAIQmEcgxN9rSHqXJP/2QNo0u6I2SOYC9E5pkVgE6DbIUgYEIAABCEAAAhCAAAQgAIE1E2hTHI4XRYvQz5W0R3pRjZfKNTeV00OgVQK5h3QsSpif4Ixk0fFFScdI+rQkW3jkG1YdrYaEwiAAgZYI5LYb75V0lY7FZ1cbAbql4FEMBCAAAQhAAAIQgAAEIACBvhFoU4B221yehbnzSdqremF9Vvo3mdB9izz16YJAWGxYSMmzBH+d/EztaXp0Nb38kxNitK8b7x/Z1V3UjTIhAAEIlBAI243rJNuNq2XicMnxi+6DAL0oOY6DAAQgAAEIQAACEIAABCDQcwJtC9BubmRC+yX2qdUfnA29ZRKmuzhfzxFTvQ0lEFYb/h0+0EZhMfoUSf8l6e2STpR0asYosqItxrBBAAIQWCWB+P72goO+P11rBZnP0b4QoL9TeerfVJJnkcSg9ioZcC4IQAACEIAABCAAAQhAAAIQaJlAV4JwvDRaeH5KEqGdFY0dR8sBpLhBEAi7Dlc2BGb/+0xJJ0k6SpKtOo6VdNpEi+IaZQHDQYSaSkJgsATCdsMLDr51xeKzocXzwbcl/UP17GD/fATowXYnKg4BCEAAAhCAAAQgAAEIQOCvBLoSoH2G3I7j0ZUVxwslbYsITffbcAIhJE9ee39MWdEWoj8n6ROSfp+x8v7+ITN6wzsQzYdABwTyBQctPl93hZnP0RwE6A4CS5EQgAAEIAABCEAAAhCAAAT6QKBLAToXof3vB0k6WNJW2HH0IfTUoQcEIjM6xOWo0s8kfTUtXPguST+a4hlNRnQPAkgVIDACAiE+X1HS6yXtuAbx2RgRoEfQmWgCBCAAAQhAAAIQgAAEIACBaQS6FqBDhPZvC2a7SHoVmdB0Rgici8CkmBzXpQWZ70k6vspIfHfKiv5pEodcgIWj3N4DrBCAAASaEMjF58Ml3XKNs5RCgPZirbbg8AwQLDiaRJN9IQABCEAAAhCAAAQgAAEI9JTAKgToaHr4Sz5c0islXXCNL7o9DQfVgsD/EghROfeLthjz/cqX9R2SPirJPqn2SM2F6DgWjBCAAATqCIT4fCVJh1UDXDutKfM56hkCtG2IbpVmfSBA10WRzyEAAQhAAAIQgAAEIAABCAyAwCoFaOMIEfohkv5d0kWw4xhAL6GK6yIQQrR/+9qJ7VeSjq6yBD8k6TOSTk0fsGDhuiLFeSEwLAIhPu8g6Ygk+P7PxH1m1S1CgF41cc4HAQhAAAIQgAAEIAABCEBgRQRWLUC7WfHie6/kCb0dmdArijanGTKBaVnR/psF6E9LemfyjY42Ys8x5GhTdwh0RyC+gz0AfKgkfxeH+NvdWetLjjp8KWVjn4UFRz009oAABCAAAQhAAAIQgAAEIDAEAusQoH1OZ3P+Ob34emFCROgh9Bbq2CcCFmvyxQtPk/QBSUdKOlbSmamyvtYsVHt/NghAYLMJhPi8jaTXpMWB1535HBEJAfqDku4h6Y8I0JvdWWk9BCAAAQhAAAIQgAAEIDAeAusQoINe2HH4RdP+kxfFjmM8HYuWrIRALiyHRYfFpGOSxc1/SjojE6It8EwueLiSinISCEBg7QTCT3lbSQdVC5w+YO01OncFQoA+qvK4vw8CdM+iQ3UgAAEIQAACEIAABCAAAQgsQWCdArSrHdlYd5X0OkkXX/MiSEug5FAIrJXAZEa0K/MpSe+X9N4q0/GErHZx3a21wpwcAhBYGYEY8L1QEp/v38MB3xCg7W+/MwL0yvoGJ4IABCAAAQhAAAIQgAAEINA5gXUL0G5gvBgjQncebk6wIQQm/aJ/lDyi95N0SmJgEdrXvzOm2SAAgfESiAGn81czjfaXtGtPPJ8niSNAj7cP0jIIQAACEIAABCAAAQhAYMMJ9EGAzkXoOycPW9tx9GFRpA3vHjR/4AQsLvsatwDl7WeSDk+zDb6f/uYBIKw5Bh5oqg+BGQTCdsPi876SHtPDzOeougfOXF9bcj06rRMR9SfAEIAABCAAAQhAAAIQgAAEIDBgAn0RoI0wsrTulESyS2LHMeCeRdX7RGDSnuMnSeR5Z7XY13GporGgYWRP96n+1AUCEGhOIL5Tt5L0MkmPzTzg+/TdPylAH5KEci9UjADdPO4cAQEIQAACEIAABCAAAQhAoHcE+vYSGi/Md0k+lZdFhO5dn6FCwyUQCxDGdX+ipHenAZ/jJ4Roi9ZsEIDAMAnEd+mWSXzefQCziiID+tWSnpC++xGgh9n/qDUEIAABCEAAAhCAAAQgAIFzEeibAO3KxYvzTsmOwyJ0vJgSPghAYHkCkx7RtuM4SpIzD7+Xivd1SDb08qwpAQKrJpDbbuwjaY+eZz4Hn/ief1Flv/HM7Hs/Bs5WzZHzQQACEIAABCAAAQhAAAIQgEBLBPooQOci9I6S3lTZBVxuANlbLYWEYiCwMgKTGdHfTSL02yT9ONUi7hGIQCsLCyeCwMIEYgB362qB372T+ByF9fX7frKxL6i+75+NAL1wH+BACEAAAhCAAAQgAAEIQAACvSPQ5xfSLdIiRLdNFgGI0L3rPlRoJARyIdoLF/5X8oj+SOUb+/PUxhC2RtJkmgGB0RGIzOcLVjOJni/pidm1O6TGPq/yfvZPZEQz+DWk6FFXCEAAAhCAAAQgAAEIQAACUwj0WYB2df8m+UBahPYiSjcgE5p+DIHOCNj32UKzN//7A5JeKOkL6W/4sXaGnoIhsBSBuDa94KAzny0+h41O37/nJxvuuu+3FA0OhgAEIAABCEAAAhCAAAQgAIFeERjCi2lkXl5P0qGSbpTEMdd9CPXvVcCpDARqCEzacvxQ0tslHSDpR+lYsqHpRhDoD4EQmj1g+4xkXxEDSUP8jnycJC9EyAYBCEAAAhCAAAQgAAEIQAACIyEwlJfTyIS+fvKotQhtqwD/nQ0CEOiGQJ4RbX/ol0t6o6Sz07Xnz5ke3w17SoVACYHIfPbvvarr8TmSzj/wmUK7STooDTBzfynpBewDAQhAAAIQgAAEIAABCECg5wSGIkAbY4jQtuF4bWUPcOOBv2T3vGtQPQj8LwGLzN6cUelBnyMlvSaz5SAbmo4CgfUS8DX49JT5vGXmnbzeWi12dgvOO0t6FwL0YgA5CgIQgAAEIAABCEAAAhCAQB8JDEmADhHMgtg1kiXAbbIMzKG1pY/9gTpBYBYBX3dhe+OFCZ2h+KIq6/IPmRUO2Yr0HwishkBci/5t241nVX7t5xu4+GxyCNCr6T+cBQIQgAAEIAABCEAAAhCAwEoJDFG0jYzLy6VM6DuRCb3SPsPJNptAbn3zyZR1+emEJGYpbDYhWg+B7glYbP6TpEdJOjBbPHSI3+k5LQvQ95b0bjKgu+9EnAECEIAABCAAAQhAAAIQgMCqCAz1ZTWErh3Sy/ddWJhwVV2G80Dgf205LBT5OrQf9Esl7SfpdLyh6R0Q6JzAFpL+LOmBaU2ErUY0COsBrltL8qBW+Ft3DpQTQAACEIAABCAAAQhAAAIQgEC3BIYqQJtKZEJfJtkB3BURutvOQukQmCCQZ0MfU12Tz5f04bQP3tB0Fwi0SyBsNzwA9IAkPl9wBLYbOSW37VYI0O12HEqDAAQgAAEIQAACEIAABCCwbgJDFqDnidAWv9ggAIHVELBo5Gvut1UG9N7Jn/0sSc7UtEiNN/Rq4sBZxk0gMp8tPh8m6QIjE58dPWd231DS18mAHndnpnUQgAAEIAABCEAAAhCAwGYRGLoAnYvQfyvpNZLIhN6sPkxr+0Egz4Z+RyUkPbPK0vweIlI/gkMtBk8gbKfuLOnNki6cBnf89zFt9rW+pqQTuHeMKay0BQIQgAAEIAABCEAAAhDYdAJjEKBzEdp2HAdLwhN603s27V8HgciE9rm/K+kJkj6SsjSx5FhHRDjn0AnEd7RnEXjB3cOrgdZLjsjzeTI+zoC2AP19BOihd13qDwEIQAACEIAABCAAAQhA4K8ExiJA5yK0M6EPSS/ruSBG3CEAgdUQiOvud5UNxwsk7SvJmY2RxbmaWnAWCAyfQAzcWHx+fbXo7vYjFp8dLd8zrifpJATo4XdeWgABCEAAAhCAAAQgAAEIQCAIjEmAzkXoy0t6iaT7pmnKfokfW1vpxRDoM4Gw5Dhb0tsk7SXpJ4hKfQ4ZdesZgVx89syey47UdsPYneHt7+hfSrqRpJO5V/SsN1IdCEAAAhCAAAQgAAEIQAACSxAYoygbL+0XT57Q904ZY27rGNu7RPg5FAKdEghRySexFceTJX0zLVjoz1icsFP8FD5QAvFd5ZkEznwO8XnMM3riXmHv51tJOhUBeqC9l2pDAAIQgAAEIAABCEAAAhCYQmCsgmyI0BeTdFAlelmEdkYmmdBcBhBYLQELSxbObL9xoqSnSXp3NhiECL3aeHC2/hMIqxqLz7aTsq3UmMVnRyQE6OMl3U7SaQjQ/e+o1BACEIAABCAAAQhAAAIQgEApgbEK0G5/iNCXqHwzD0widJ6RWcqI/SAAgeUJhCWHMxufLel1qUjfgxChl+dLCeMgkNtuePB0hxHbbuQRi+9mz5C4A3Y94+jMtAICEIAABCAAAQhAAAIQgEAQGLMAnYvQtuOw6PX4TOwae9vp5RDoG4HcF/qV1bX4HElnZYNFfasv9YHAKgmE+PxPld/zoRuS+Rx8I8P7M5LuIekXZECvsutxLghAAAIQgAAEIAABCEAAAt0S2AQRNl7q3dYXV4LXngkp2dDd9i1Kh8A0Avl15wzPJ1YLFP4BEZrOsuEEzifpT8n/2It2br8Btht5yEOA/niarfQrBOgNvyJoPgQgAAEIQAACEIAABCAwKgKbIEA7YLkI/QJJT888JzeFwag6Lo0ZNIFYgNDX5Zuq6fa7SjoTEXrQMaXyixMIz+ebSXqzpMtviO3GNAH6HZIeJul3i+PkSAhAAAIQgAAEIAABCEAAAhDoG4FNEl+jrf793OoF/1kpwywE6r7FhvpAYMwEwvfZ1+MHJO0h6QRE6DGHnLZNIRDi8z9KentlvXHZDct8DiSRAf1OSQ9FgOZagQAEIAABCEAAAhCAAAQgMC4CmyRAO3J5e58i6aUpnNhxjKtf05rhEAhf6C9LerCk70gKUW44raCmEGhOIGw3binpLZIus6His8mFAG3va6/VYFseNghAAAIQgAAEIAABCEAAAhAYCYFNE6BDhI7sy90lvTwJXmaxiTxG0pVpxoAJ/FnSFpK+JOmB1c/3yYQecDSpegmBsIW6vqSjJV1uA203ck4hQO9X2fE8VZLvCWwQgAAEIAABCEAAAhCAAAQgMBICmyq4RrstRD8hE6H9fwsDbBCAwGoJhABlEfqRko5DhF5tADjbygiE+HxlSUdK+ocNznwO6DET4tnVgPDeLEC4sr7IiSAAAQhAAAIQgAAEIAABCKyEwKYK0AHX7bfo/ERJr8heejedy0o6HyeBwASBEKG/nXxgv4gdB31kZASc6e/sXovPR0jywoPR70fW1EbNmRSgGx3MzhCAAAQgAAEIQAACEIAABCDQbwIIrefYbliEfrKkfZLg5ajBpt99l9qNk0AIUd+Q9DBJ9obGE3qcsd60VsV3zeUlvVHSjhtuu5HHP65722K9igzoTbs0aC8EIAABCEAAAhCAAAQgMHYCiKznCM3+cRba0yov2hckP1pE6LH3ftrXVwKREfr1lAn9Few4+hoq6lVIIGw3Li3p9ZLukL5zWHvgHIDhA/+Iyg/7MK73wl7FbhCAAAQgAAEIQAACEIAABAZCAAH6nECFCOBM6L2q/z9P0vlSZjSMBtKZqeaoCIQI/VVJj0qZ0CHijaqhNGb0BCKD/zIpu/ee2G6cJ+YhQN9P0tsQoEd/TdBACEAAAhCAAAQgAAEIQGDDCCCu/jXgMT3af3lGEqHt12lRGk4bdmHQ3F4QiGn5FqG9MOGx2HH0Ii5UopxAfK9cMonPOyM+T4UXAvTdJR2FAF3ewdgTAhCAAAQgAAEIQAACEIDAEAggrJ47Srkdhz2hnytpGwSDIXRl6jhSAnkmdIjQZEKPNNgja1b000tJOkDSvdKAppvJd+9fg+1BXl/nzhS/s6QPIUCP7EqgORCAAAQgAAEIQAACEIDAxhPgJfi8XSAXoR8v6cWStkaE3vhrBQDrIxAi9NdSJrQXJvTsBGdNskGgjwTCdsPi86slYbsxO0oWoGO7naSPI0D3sUtTJwhAAAIQgAAEIAABCEAAAosTQICezi64+MX4MZL2rYTo8yNCL97ROBICSxIIEfo4SbtK+gJ2HEsS5fCuCETm8/aSDpJ0D7475qIOm6vfSrpj9XMMAnRXXZNyIQABCEAAAhCAAAQgAAEIrIcAAvRs7nkmtBdB21/SBRAS1tNROSsEsmvvpLQw4X8iVNEvekYgxOdLJ/H5bthu1EYoBpd+LekOkr7EdV3LjB0gAAEIQAACEIAABCAAAQgMigAC9Pxw5SK0s9j2k7SDpFgcbVDBprIQGAGBEKtOTXYc9ovFjmMEgR1BE8J24zKSDq6E1LswYFkU1bimT0nMvoEAXcSNnSAAAQhAAAIQgAAEIAABCAyGAAJ0Wagiq+02kl4v6XIIC2Xg2AsCHRCIASCL0J6d8EFE6A4oU2QTAvEdcVFJR6bF9EJYbVLOJu4bnL4jyRnj30eA3sRuQJshAAEIQAACEIAABCAAgTETQIAui26eCX1rSUcgQpeBYy8IdEQgRKvTJD1N0psk+TrNFzTr6NQUC4FzEQjx+UKSDqwE1AemAcr43gDXfAIxoHRs8st2JjTXMr0GAhCAAAQgAAEIQAACEIDAiAggQDcLZggNOyV/z6tjx9EMIHtDoEUCsXjZHyU9TtLcHIWUAAAgAElEQVQhLEzYIl2KKiEQQum2SXx+ELNjSrCda58QoP9L0r0l/RwBujFDDoAABCAAAQhAAAIQgAAEINBrAgjQzcMTPp83kXSopOsgQjeHyBEQaIlAZEL/QdLj0zXpa9R/Jxu6JcgUM5VAiM/bSDpA0i5kPi/UU/6cLHRspXNfSb9DgF6IIwdBAAIQgAAEIAABCEAAAhDoLQEE6Oahye04bpw8oa9J1ltzkBwBgZYIhAht4coitH3a496GCN0SZIo5F4EQn70ApsXnXbMBD75Xm3WWEKDfI+l+kjyjAQuOZgzZGwIQgAAEIAABCEAAAhCAQK8J8KK8eHjCjuOmlR/0YZIQoRdnyZEQWJZA2HGcJemJkl6bCkTIWpYsx08SiD7l74A9q+zdF6Qd/H+25gRCgH6zJFuYxMbgUXOWHAEBCEAAAhCAAAQgAAEIQKCXBBCglwtL2HHcPE39xxN6OZ4cDYFlCEQmtDMovTDhKxGzlsHJsVMIhPjse/9TKs/xvSWdL2U/8326WJf5U2LoTHLPYIjv1cVK4ygIQAACEIAABCAAAQhAAAIQ6B0BXpiXC0lux3GLJEJfDTuO5aByNASWIBAi9JnVVP5nJHuEyKQko3IJsBz6F1sX227sIen5ks6fxGeynxfvIB4w2lLSy9LAkQV9i9JsEIAABCAAAQhAAAIQgAAEIDASAgjQ7QQy7Dhumab+kwndDldKgcAiBMKOwwsT7iVpfzyhF8HIMRmB3FP8yVXG7gsz8Znv0eW6SmRAP7e6Tp+XFiS0LQcbBCAAAQhAAAIQgAAEIAABCIyEAC/O7QUypg3vKOkQSc6E/p80nbi9s1ASBCBQQiAyoc9OIvR+VcZqDBSVHM8+EMgJRN/xYoP/LmkrZrq01kHie9LC/r4I0K1xpSAIQAACEIAABCAAAQhAAAK9IYAA3V4ocjsOe0J7YULsONrjS0kQaEogRGhnQj9dkkXoPJO1aXnsv5kEwvf50ZJeXllFbI343FpH8GwF/1jgt7h/MAJ0a2wpCAIQgAAEIAABCEAAAhCAQG8IIEC3H4rIlLuepNdI+kcyoduHTIkQKCQQdhye5m8R+hVJ7Arhq7AYdttQAnE/f2zqO+H5zHdnOx0irk8PFu0i6UgWIWwHLKVAAAIQgAAEIAABCEAAAhDoEwFeoruJRogW9oI+VJIzorHj6IY1pUKgjkBkQlvs2jMtdmbLHP+dhQnr6G3m5/5udB+xF/HjM2uI6EubSaX9VocA7UVD7yvpAwjQ7UOmRAhAAAIQgAAEIAABCEAAAusmgADdXQRChL5qsuO4RRK7YN4dc0qGwCwCeaalFzvbGzsOOsscAnH/3j0NWGyJ7UYn/SWuy9Ml3V3Sp/Fq74QzhUIAAhCAAAQgAAEIQAACEFgrAcTQbvHnIvRBkm5NJnS3wCkdAnMIRLaz73v7JEsOPKHpMpME4r79hGS74UzoEEqh1S6ByCj/qaQ7S/oqAnS7gCkNAhCAAAQgAAEIQAACEIBAHwggQHcfhRAzLpnEjAemad0WNeDfPX/OAIGcQL7o2Yura/GZ6UM8oeknue3GHinzeQsynzvtGCFAnyTpNpJ+iADdKW8KhwAEIAABCEAAAhCAAAQgsBYCCKCrwR4i9EUkvVbSfRA1VgOes0BgCoE8E/oF1ayEZ6V94joF2mYSiPg/Lg0W2naDzOdu+0II0N+RtKOkX6SBWbzZu+VO6RCAAAQgAAEIQAACEIAABFZKAAF6dbjN2i/VF0oLE+6MCL06+JwJAjOEaF+X+1Wi1/Mk/ZoF0Da2n3hGiheK9QyVwyWdD/F5JX0hBOjjJN1U0h8QoFfCnZNAAAIQgAAEIAABCEAAAhBYKQEE6JXiVmTYbSfpVZIegAi92gBwNghkBPJM6CMk2fP3DCwANq6PxH35/pLs1e9BwhBGNw7Gihts0d/i/+cl/SPX3orpczoIQAACEIAABCAAAQhAAAIrIoAAvSLQ2WlC7Lhwyrx8SMq08y7EY/Xx4IybTSAXoZ35+hRJpyOEbUyniPuxbZEsPl8U8XmlsQ8B+lOSbiXJntt/XmkNOBkEIAABCEAAAhCAAAQgAAEIdE4AwbNzxFNPEHYcF5R0oKRdEKHXEwjOCoFEIDJecxE6bBmANE4CIT7fU9LrK9/nbbHdWHmg47p7c7I/4ZpbeQg4IQQgAAEIQAACEIAABCAAge4JIEB3z3jWGUL8sOhhOw6L0Ez7Xl88OPNmE8gzod9YedHuJek0MqFH2ylC6Ly5pLdJ+tvkAe2/s62OQCzy6O/A3fFgXx14zgQBCEAAAhCAAAQgAAEIQGCVBBCgV0n7vOcKEcR2HK+U9K9k4K03IJx9ownkIvTRknZDhB5lf4jBPy9658znqzH4t7Y4hwD9gmoA4FkM+KwtDpwYAhCAAAQgAAEIQAACEIBApwQQoDvFW1R42HFsLenVmR0HsSnCx04QaJ1AzER4v6RHSzqVzMzWGa+rwDzz+XWSror4vK5QnOu8T0xrIsTgQC8qRSUgAAEIQAACEIAABCAAAQhAoB0CiJztcFy2lHjp3iqJ0A9N08H9d2K0LF2Oh0BzAiFCf1DSIyT9hOzM5hB7dkSIzzeTZK9vi8+xCF7PqrpR1XEMHibpDVxjGxV3GgsBCEAAAhCAAAQgAAEIbBABxM3+BDtEaGdC7y/p4WTm9Sc41GTjCOR2HP+RrkdnQpOhOcyuEHG7fhI6r8P9tTeBPFvSXSV9NA24xrXXmwpSEQhAAAJrIuD3tFnvar5Xcr9cU2A4LQQgAAEIQAACzQkgQDdn1uURYcdx/uQJ/agkksx7AO2yPpQNgU0nEJnQFsc8KHQKdhyD6xKR+fz3kg6TZBGaBV/7E8bfS7qNpC8gQPcnKFlN6p4/EMF6GTYqNXACcd35u2reFu8NA28u1YcABCAAAQhAYBMIIED3L8qRqeffL5S0F3Yc/QsSNdooAmHT8BFJD8GOY1CxD/H5Bsl243qIz72L328kOSP9RwjQvYqNnw/9HOL7X93m/bzViWV15fA5BCBwTsZzZDZftHoXON+MTOefJ1iI0PQaCEAAAhCAAAQGQQABup9hykXoF0nak0zofgaKWm0Egcjw83XpTGh7tGPH0f/Qx33U4vMRSeQk87k/cfN15WcQC9CXlfTb/lRt42uSC1rbStpG0p9nWAH8UdKvEcI2vs8AoB0C8b1l4dmLIN9O0gXSQFC8s8W98yvVjKy9Jf2Cwbt24FMKBCAAAQhAAALdEkCA7pbvMqVHbPw7RGiXFw+ey5TNsRCAQHMCIV5+QtJjJH1H0hZJmGleGkd0SSC33fCCg9cl87lL3AuVHd9lzny+iiQLmWzrJxDi87Ul7ZKuHduCzcpudtx+Jentkt6z/upTAwgMlkA891tw9nP/HgUt8TX3YEm2Mop3hILD2AUCEIAABCAAAQisngAC9OqZNzljnoX0kvQwuiUidBOE7AuBVgmEHcfnJT2oevE7kYUJW+XbRmEhPttuw+KzM6Ajbm2UTxntEAgB+rOSdiq0emjnzJQyi0A8c+SWNaW0Tpe0u6S3pGcUFkcrJcd+EDiHQGQ/X0mS74vbZxZ8sxj5mNtL+hhZ0HQjCEAAAhCAAAT6TgABuu8ROueB1C9y/v34NN3O02GZSt7/2FHDcRKIa+9zkv4VEbpXQY4XeGdvvl7SDbEv6lV88sqEAG1bmzvO8DjtbeVHWLG4dpzt/CZJ98qm/dc9K/qe6IEfD8jdVdLxLNY6wh5Ck7omENegPfE/Kck2HN7mXX++j+4m6bUI0F2Hh/IhAAEIQAACEFiWQN1LxbLlc3w7BHLfN2cYeWre1ojQ7cClFAgsQCBE6M9Ierik7yG4LECx3UPyl/dDJd2Ee2S7gFsuLQRoDxTYV51tvQTiOeMWkt6Rsi9DWK6rWWQ7uwz71h6cxDAWJawjx+cQ+CuB/DvMVl8XK5zx6GsOAZqeBAEIQAACEIBA7wkgQPc+RH+pYC5C2xfuhZIuiMAynABS09ERCBHadhxPqrI4j8GOY20xjhf3y0s6spqObBEN2421haPoxCFA7yPp6UVHsNMqCOybec82eUb0/dD7Wzhz9rQXJsxtxFZRd84BgSETQIAecvSoOwQgAAEIQAACtQSavFzUFsYOnRPI7Th2TSL0RRChO+fOCSAwi0CI0CelBbucER3XKR6oq+k38dK+Q5W1eaCku2C7sRrwS54lrh0PqO6PWLkkzXYOv0S16OC70wBOU5uv2N/Cs69BD8j5GZMs6HZiQynjJ4AAPf4Y00IIQAACEIDARhNAgB5e+PNMaPvPOlvJ0/TI9hteLKnxOAiE8HJy8oT+tKQtJP15HM3rdSvihf0Kkg5AfO51rCYrF9eNv8feyOyBtcYuriPbCb0yza5apEIedPPP6yQ9cpECOAYCG0wAAXqDg0/TIQABCEAAAptAAAF6mFHORegHp+wxL1bSNGNpmK2n1hDoH4EYAPpB8rP9FJ7QnQcppvdfNvlf3pl7YOfM2zxBfF85bh9CgG4TbeOyLHx5s3e6/bjDHqVpQXHc1yTdXtIvmhbA/hDYYAII0BscfJoOAQhAAAIQ2AQCCNDDjXIuQj8gidAXR4AZbkCp+eAJhKB2miRb5LwfUa2zmMaLuhdjtWh2P2w3OmPdRcGRKes4erHILzFg0wXmojL/Js2guqGkd0rybIJlBejfV+Lz4yQdTlyLYsBOEDABBGj6AQQgAAEIQAACoyaAAD388EYW4H0rK45XSbKHI3Ycw48rLRgmgdwH1dYC76u82s8n6U/DbE4vax0v6V6E1XYBtg3wPc9/5zutlyE7T6VC4DxT0k0lfZPBmrUFzgK071tPk+QFIcO7ftFrKWL7LkkeHI97H574awsxJx4IAQTogQSKakIAAhCAAAQgsBiBRV8wFjsbR3VFIB5ad5b0muQJjR1HV7QpFwLzCcS196u0MKFF6MgyhN1yBGLAbatku2ELokWzNZerCUcvQyBiZsua21bXiX/H99gy5XJsMwJxPW0n6WhJN0vXU1hyNCvtnL1DaP6JpHtJ+jz3v0UwcswGEkCA3sCg02QIQAACEIDAJhFAgB5HtHM7jntXWdCvlrQ9dhzjCC6tGCSBPBPaIil2HMuH0S/nFre2SQNtD8R2Y3moayohro9jJd21sqyxWIkAvfpgxDV1y0p8/oikLQsGdEoGfGIW1p7VgoYvRYBefWA54yAJIEAPMmxUGgIQgAAEIACBUgII0KWkhrFfPLzeMwk0FqGx4xhG7Kjl+AiEyPYbSbbjOErSFpL+PL6mdt6iyNT079dKeiTic+fMuzxBXBsWPW0f9etkn4JNQ5fUZ5d9UPKtLxGXS2ro+Ppadfbz3dJihAwwlJBjn00mgAC9ydGn7RCAAAQgAIENIIAAPb4gxwOsM6HtCX0pMqHHF2RaNBgCIbSdnuw4nAmNHUez8MX3lL2095X0WO5pzQD2cO+4Lo5MHt5/RIBeW5S8boQXgbx8TfZziNOnpucK38dmbbmP9M0lfY773triy4mHQwABejixoqYQgAAEIAABCCxAAAF6AWg9PyS347idpMMk7YBg0/OoUb0xEwix7ReSHiLpA9lieWR8zo98WARYfH6ZpN3JfB7FpRIzc14h6SlcD2uJaQyEPVXSi5NAPK8iIUDvUsXreZKuUCNYx33v9ZIeupYWclIIDIsAAvSw4kVtIQABCEAAAhBoSAABuiGwAe0eD7K5CO2p/7YAYIMABFZLIBehLcbgCV3PP2w3fM+y+LxHtsAZ3131/Pq8RwjQ/1b5Dr8Ia5qVhyquH//2vehONYPUcf/6pqTbSHphssGZZ9kRn3kx1mtI+tkIstxzbg5a3KNmBdAMhjLI6Lbk99VZbcv/Hm0bShsjZpO/J+ufJ3J431XFsWsBukn/HWJsm8R3sn1D6sMr/8LghBCAAAQgAIG2CPAS3xbJfpYTD7P/VGVBv67yTr00mdD9DBS12ggCIbr9NImpbysQMDYCzJRG5uLzSyQ9qWBxtE1lNbR2+0XfgqYzcHeVdHAlaDrD/U9Da8iA6xvZzzdOAnTdosVx73Lm83PTwpHvTfevuudIH+uZH7ZbWYf9UF39SoSnEGfdb5tu+flLztW0/GX2zwXJRdoW546ZKiHWLlOnLo5to53RB7oUo7sSoJfpvxHbvvXdyX6yTBtd1lDa2cX1QZkQgAAEIACBlRGoezBfWUU4UScE8gcyZzj9u6SrIeR0wppCIVBCIM+EfoKkN2M/cB5s8b20ZfVS+HxJT8N2o6RrDWafyIz1jJz7S3onGdArj10IwRaUn12zWHEsKHiGpHtI+qQkC9bOnLaAHfe0aY2Izz6YFiOMwYdVNLguOznqMC/Td1JQPX/lQ38hSResZmVsnX5fuLIw8d/dtt+lBTW9qKZ9zf3/M7PGTmbWroLDtHNMq8cFqmdEt8X3XbfPPxeR5L97fw8QeUFdt+es6r78e0lnp/bm4nVf2uh2T6uLY+XYbSVpm/TviKuvC9+XHD+30fHzb/+4/+dbF+1sU4Ce1fZtU9v927HdLsXcbXN83Xa3+7fpt2OcXyuT18S6+vCs+DqGcY1GfN1W/9v99A9ZfN1eX6eObT4A2kVs18mJc0MAAhCAAAR6QwABujeh6LQi8bJ5bUlvlHT9mhfOTitD4RDYcAIhyvwyeRpbhCb75pxOEWKQRRCLY3tmA2Z8X43jwsmtGe4r6aNryowdB83mrQiRy8KT/ej/IctIn1Za3K/+U9Kd074W6Wyf8oKawaGItUUtD4J/fsWxtrB4zSSmTmZwul2nSfrRlJkowcg8LNJdOQ3e30zS9ST9XRLxnLnv5yvv783Z3iE8/0TS99ICjN+qBlu+m4Qv77eu+/1klqj7wFVTe25SDSrcSNIlkyjrttn+KNpmfo67f9zGn1c2LF6Q8ouSviHppMrr+4dJuFxnG+N7xG0NYdzC+pXSQpu3kHTFFFO33+10Gx3H+P5xGx1LC8+2jjkxLdR5fPr3D9LnbbezLQE6YhaDR9dJbfaCoNdN/u0WZR3fPMZut4VYi7Tur+63x6b4uu3+PNq8TMZ887vWeY/IryHH0P34cmlQzP3Y1+jFUnwd21g01fWOPux1ORxft9H92G0+IROj13WdtsGHMiAAAQhAAAK9JMALfS/D0kmlQoT2w+cb0kvUvMylTipBoRCAwF+ECl+Tfom3t7FF6Hhx7vtU165CGC/fIT7vlU40z2e2q7pQbncEIp4Wde5TZcZ+ZcWiZHctG0bJcZ3dUdKHC2y5Qnj09bhvypa0AGkx1tnrtvaad41O2nfk4m6XxJzx+JxKMHywpIsmwTB/5nUbjkuzLD6WiY8hQjpD9i6SbivJrCxoLbo5w/JDabDl45UlyclrmPmSZ3p7Yeo7pEEBe3o703mZzfF3mz4t6VOSjpZkcW8d32l5/4p2uo3+sbi+zOZn5q9LcgyPkeR+48GVttrZhgCdC++3Tn3XM03MYtHNgrsHqxzb96XM93WJs3l2soVnt9EDY/7xQNEy77UeMPqIpM+m36e3GNtF2XMcBCAAAQhAYFQElvmiHhWIDWlMPNw6I+hNKRMaEXpDgk8ze0cgrj2/5DiT8JVZNuG6s4tWDSv/LjKLZ2C7seoQrOx80e+dcXZvSaekDMRN6/MrAz7lRB78em3F/uE1AnQIyz+W5AxZZ/VGFq0F2rdK+ueaMkKAtqjzL5I886NLEToG2z17Yp8CyBadvFiz2+jNbXa29mOSeGeRK98mPYAnn6NjADH+Pvm5+73ZH5GJ4l0OOubCs7NeHynpfilTdBJPadviuOgLk+V8IvUNP2fasqPLeOd1CY4XT+28e+q3de3053mcpi1KOBlH92vPCvDgsWcWxn1tGY/oZQRoe+lHvZ1oYosvt99Z3qX9N2/3tNg6M9p2Oi9PArzLXUVso/75uW5VZS/vlq5RZ7iXtjGu8Xl92FngHkxxbA/PnkUmjy24vbALBCAAAQhAAAI5AQTozesP8QB3dUmHVhk5npLn6WiehscGAQislkAIPH55teWEPY8np0mvtkarP1sukFh43jtVYZa4sfoacsY2CYRQ4+zbe6Zp7nkfaPNclHVuAsHZAp1tEy5VuCaEFzF+RCZwhcjrxUFflLKi5z1PWqxz3O+Wsq67FK2ibu5ft091jun300QqP/84S/rtKRP4mZU1x6MkWaz1FjYGyzwvhygZ9zQLXK6fBTTbWHTFIy/X4v+zqgzWG6Z2RZ3CrmHZayUXXiM79l3pfu6s4S4XoMzb6UxYf5fahsHbJPs22hmLqLos920vyOnvLWfUL/P9vagA7cGS1yS7CV+nT092FFE/l7ts/83b7JlbFqFfsaJBFLcj2Nhmw/34Xpm47hgs28a8r8Q14XvDfySevl+uK+t72T7L8RCAAAQgAIHeEFjmgaQ3jaAijQlYbPaDlafk2Y5jJzyhGzPkAAi0RSDPnHpuepENYbrLzLi26r9MOfl3kIUfC/DxIsj30zJk+3ts9HeLU86A5qV+dbEKAfqxkg6oOW3cg+yD64ECC6ZxfFybXozQ2a7XKLTheFXlEfzkiQW/2m59CFVeJNEWGrNmeeWZyhZnbalwWOUHe9dUIT8jhS9wm3WMjHCX+bmUqfrlKT7Uy54zYuXsUM8qeXRKNDAPt32aKL/sOeN4t9HndyzsqfuwlFHahdAeZbqdtlxx37aNU9ftNEO3M5I3fpoy7vdPEBZp66IC9EMk+X56YBpMcRW66L+TbX59dR5/b3sQpctBxBi8sN2GZzV4NkZXbYznj1xw94KMtkrzQFzc+8b+bNbWvYByIAABCEAAAuciwAv+5naIeND922THYREaO47N7Q+0fL0E8peZF1dVsRDtLLlFXmLX25Lys+eZd85osngQG99N5RyHtmd8z3gGju0AYkB0aO0YYn0jO9MetnXf+REnZ/45k9iLdU27Hx2UsqPjep537dov9+8l2VO2K8Eq6mjP2lg0cVqWbwjsZ6dMzh0rSwX/tJHxXNc3fO4QuLxwn61QbOfQFpMQ7Lwwm68zt8vbKtoWbc8zrN13Hpja2OZ3WpTlBQZtYeV4RzvbyuwuiaXbGufzIIZFWQvSTeO5iABtEdzfn15M1AMpbWe2T2t/2CW5vvbB3iUt6NlmbPNnAbfJGc/uy/YrbyvjuWlsX5YWX43FGBGh6wjyOQQgAAEIQGCCAC/5m90l4mHR03Dt1edFWix6TXoebjYlWg+B1RDIXxydKfjUbLGfMfrjxsv57mlxM4smDIKtpq+t8ywh/L0wCTVdTs1fZzv7du74vveies6WdMZoxGKyrnl2sG1xLLz42szvQ/H86AX63lZdwxcqtPNwhqozNb01FehKmJYK0FGWn3nc3siaXZVw6fNHNvT3K/uGe0j6VguDjrlVgbPWveZHU8EuvotmeSE3eXeIe7o9tj3j4Qst2XFEO519bz/tG69YYJ92zYQQbf9gzxrwQoxN+vgiArT5/krSxVbc/nwQxde/rT9+17C9dddz8PBitYeke0yTZ4S2+nHe1v3SLI64NhCh66LI5xCAAAQgAIGMQJOHSMCNk0A84F2mWkH6yLSidD5FdJytplUQ6CeBXPixSOPp6l74p8lLbD9b9tda5R6Zfmm1uBWLCPGd1PfotVM/Z526b7+6BcGtnRqNv5T4rrd3q9nP+54PYdpT6515OE00jPLsJ/3uLHt4loAb97aPJLHV1h5d3NeaCtAR+VJhK0StyR4T97WmPSnW4DCXByXR0mUsKmy5HudPC+NZ8G2yxkepbUVYbJS2OfrasWlhvLBsWHRgNb4n3Pdsi+CFMBd5bp0lUMbgSGn78pgH7/dJekBDUXYRAbpJ/53Xd6PNTftvXDcvTQOKMVC1aP+NepiFY+oFM+1v7cznJtdobqExq01NBmbyrO/H8d3VtJuwPwQgAAEIQOAcArzs0xNMIB56Ly3pLQVTc6EGAQh0RyAXoS3QORPaYk0X01u7a8X0knPx2dPOLYb5xXJWJuaq68f5uiUQcf5lsh04aiT9ultqy5ceQq9nOzn7+WaFAvRbU2bj71MVJkWlEJufkK5l/3/WtRzi0elJhHSWaBf3tEUE6Hn3n/x+XBKJnFHpM3YIv/Zqtv3SosJ8HPdvyfe5iWCX19WetxaJf5MGQC3UWdTeTpKfE2PA0DxK+OSze2yV4f6yaBvj3cVlWpi0t3UTa5Em+0a8S9qY7xvcn13NKPRMj2hrnSi7qAA9r/82bW+TtubxP1NSeFEve13H8TetLHuOrsTeSxQOMExycL89WZK/bzyQ78+3TtniTrpxn87jVne9Bhu31ZYyrtuybS25p7APBCAAAQhAYDQE6r5sR9NQGlJLIB6Q/XJhOw4v9tEkc6b2BOwAAQg0IhAvsX5hf9pI7DjiZe2hlYjx70nIKBVJGsFj514SCIHAvrfOzuxi8bVeNnzNlYrvdwtEBycLhDqriT9WAuSTajL9wj7lRpI8mGBRp04MM4qYxp6LiW0hWkSAnnXuyXuTLQa+I+knaVDQAu1WSdCyD/EVJizMSu9twczlWtjywo5NBdpo97UrP+APVZYFXt/D5dbFOY+Xfag/mBYO/JGkM1I7/Sx4gWrhSmccX1bS5aus9+smz+FLJnh1g4jxuW0pbldlwR+3QBt9qmins4u9CF6pZVwugrsci5NfqzL87XFuj2qLih7ovWAS2h1L25dcOUvWKY1n7Gch3/c5Z7eXxHNRAXpa/50mJJ9W1eebaWDBfdfbtpI8MGW/8Iil/95EiI72frWaLXEnSf+d2rtIhnu8l26TBsvsP1/Xt1zfqIN/ux5m7j52UppV4EE0l+P2WtD2IuzXk/RPyZc+L2PevSjO4/uAFzl1+YjQbd29KQcCEIAABEZPAAF69CFu1MB4mfTLxRvTlNpFpjU2Oik7QwACUwnkL4D7Vxk8ew3YjsPfNe58c94AACAASURBVDGldueUuRaelXUCCd1jPARCSPDLu4UKZ6eVCDPjIbC+llgotbe8Zx7ME9IiRrZLsHjmwYJckMpbEM+Qzip02Ra454lF8TzhgYcou+34tyVARzucOfnFSqB7s6Tj0+JyFmbtHW3B0gKoxTKLsxbyvJbG3SpfbHsTl4pawdcsnFVpjl6wcRb3yV6UP8vvWx27R8OM0W9XwqstFP4jta+kl1qQttjtunoxUXto1wmF8XksQNpUuMst4ywwXqvQliGvl7NhPQvAnL+XBhM8sJBvPo/jaUH2iskaxWKjr6G6NkY5cY2Z6b9mouy8LOi2BOi8jhadvSCnLUG8MKL/7z7tH2/OAnZGu9v7d8m72n3YIm3eL+f1ifxZ5flpQeFFr+tgEFn8JbxjH/uM75MGYCwMl2xus+9FzsqPQZu6d+O4jzkD38exKGEJafaBAAQgAAEIYMFBH5hCIB7+nB3g7BJnQjfJhAAqBCDQHoH8ZdUi9DNTplbTF/f2atS8pNx2w6LjYWkad2k2WfMzckRfCYRQYEHvlimrv691HUu94l7hbL+PZsLSrPZFjOxB7wUD67YYuLYQ6YXC/P95Ao6ve2dX2zrBi8ctKlTNqteyAnSeKfulSpg7IGVTWrwr2baoBvCdDe1ZHmZiEbNURHP5ZvPgSlx9R4PF+oKhz/tOSdcvsFjxuXyc1/7YO4mx8beSdsZ3kzOG7Yn7vMzSYFb8457vgScvXmkBuMl3WVi82KbE9hYl3yHB3gMGzvC2JYYHVzx4kG95nSdFYi+w6UGFPZPoXvpMHOd2Pyjp620I0MHEovobqkGRg1JG+2R7Z8XYYrSz2z1Q5SxzD7CUcnaZp6QFIZ0F3XSL9jvz3Fn8fg+pO3cwtk+9B14+n05aJyJH3SKW/5gWR/W1UxffuEc4q9qDC+/p4D7WlB37QwACEIAABAZBoPQLehCNoZKtEcizTDxd15kfdQ+BrZ2cgiAAgfMQiBceT133i7enCzd5cV8n0qinBQffT/xSWSLIrLPOnLsbAvE9YnHhzt2cglIzAvGM52vQdhrOcp23RXxsk+AF8Zxl6m1e1maIn76uLWbuWPO8ENmDr03Zg16Qss1tWQE6GFhU8mKNP0iVC/Ezr+vkfcwswnbAQrytJszcgl7JPS+/Pu6fLDBK7vOxjzM5vY6H/183s8T18WCg1xhwtnW0b16sJ+MU5/VvZ147G7TOczj4PKYaiHQfsGAfGaTz+kGcyzP07B9uKxDXdV47g7n72IuT7VNYT9S1N66dPKYWJ70ugz3US56J4/wfr7Ln75usIObFc1kBOs7nPusBAWftW3j3Ntl/p4mseVs9sLBbEuyd3e6t5J3RXGwZ9ooGAyh52a6XFyZ+SgHjiIH5WgiOxS3r7ll5P8sHyB1fD6LZUqguvvG5M8st1vue2eS8bd7zKAsCEIAABCAwGAIlDxODaQwVbZVAZDVdLmVQWCyoeyBrtQIUBgEI/IVAvFj6GrQI7empnkJbIk6sE2PU7w7pPuLprtxH1hmR9Z47+rGzAZ0VyNYtgRCHL5q8ff+hRrQLcfgzVZboXTNhstTL1dmlzyi0+LDf8b2qTNhjWs4eXEaAjv5pH2SLSs56DoGzlEEuaDm6N0lCoLOT6+59cX5nr3qGgL1sS+7xsY8zkW2FMs86LQYzvcCk9/9VQ6FwsseGsOlMb9tNWGyf185YW8Tnd6a361oi3EUbfYwze0uyVF2uy/fijraG8DF+tnX9mgjteUxtO2Lh3nGtG1SIz3Mv6K4E6DjXCZWtyK5V/7Eo661OaJ+M52T/dda3xfs6sd/lRNw/mQZf4popYR1c7L39XwUDDNFeZ9Hb1uvrDQYzprXZ53dfuXGa/eks7JL4WuD3+5Gz60uu1W7v+JQOAQhAAAIQ6DkBBOieB2jN1YuHKYvQ9jpzJnTdQ/+aq8zpITBaAnHt+SXJAp4zhCJzrVQcWRWc+G5xnb2IkDOf/WJZJ8Csqn6cZ/UE4mXe/deCxrNWX4WNO2N8h3uhrbdVWaq2Eqi7Bi0Q2m/ei4SGWFkHLoRuCzG27rJ/7LzzRF/wPazJeerqEYKbz23f2yYD5yHaeiq/hXFnUy4jKJlJiFpeWNCipe0MQuCb1pa4x/u3M213L2lwJuA7q9jHWRRzZvHkFm20P64HGOxpHckGhaeaupvb5XO+PGWNzxPuol/Yd9r90pYNpTYsPo8HB25bIIjGedwPnBluaxNvy3xXRn/YqVqg8O2VZcP2hf3c53RWrweOHYNZ7V0mA9rMnem9S6pbU+F5MrBxvPuR14RxBnedIBvMbb9hyxJfS6X9K5g8vloE0gsv190/XN+8vaXnmdfPg79nHzg7397u3urelZ3tbXu08NVe5lriWAhAAAIQgMCoCdR9qY668TSuiEA8kDm75SXp4RYRuggdO0GgdQL5teeXQmeweUrxMkJJ65XM6mPx2S9yZD53QXlYZYZ4YfsYC2XOYiwVnobV0n7UNthaQLL46Snq80Sd+MzT9+3V/t0G95U417bJu9h2O3VZuKbk7GeLg86GbusetkgGdAjt9nS1762n1bchaIXY7DpZmLcQXSfixeffSNmYJRYlwd/2J++tBLztarqgn+Wenu1TkqFaJ9y5DMfdmc32EZ7VzmDt/mErCy9IWcc62nd1SV/LvKZn1SnO7QUHPQhhz/k2+lduy2FvcFtU1FmOxHXwqSqj/V+SrUrbArTP4fZ5dpTtL1ynZYT24BrMzP1jaZG+ugGsaK+tXTwgEYMTJXdF23549oWtMOYJvxFfLyZ5v3SvWbYP5+ez5Yjj+4iapJtg8aPU9724bl1fLuHAPhCAAAQgAIHREkCAHm1oW21YPIQ6G+BFkpyhUPcS1WoFKAwCEPgLgVyEtueqF/Pqkyd03C8sRnjmBOIzndcE4jvj9CTEWGhoQxSC7nQCIXJdOYmS1yoUhX1P8eKDtg0oHSDIZzx4+r8zGC3izBMhfYytJpxtbK/ptvrCIgJ0CEnOEncGqbN5S7O/6/pfMPz7ZC2wdc0Bwcz2HxYsLZ7WxWGSv78TLAJPe8b/RLJJ+VmqR1vCncu5eDVTzgs3erbLvGfEsOHwQMeHC0S7aH9keNcxj3Nb9PdikHX86srLP4/MYC/qaS/7SxV6nn8rZXz/eE5fXyQDOgRfl++sY2e3t9XePIvfNibO4K4ToCO2HmB8WCaEz+tnUV97L3sRQYu4s7aIrQdmnEFvu4+27h0+Z5Rli5WjUnzr7mPOfPZ9z0kBbksb4n+TPsm+EIAABCAAgcEQQIAeTKjWXtF4KPPLk30evdgMmdBrDwsV2GAC8VIUXp7O9lpn9k1k+/nly8LCQYWr2G9wCDeq6SFcONv1NlXmmrPF2hQONgpmg8Z68UEPHFsQLnnm8/Rz31Oaxib2t+BtUXGe53EuRtmexzM5LFy1IZwtIkAb51nJd9kZuW3UYzJEzkR/ZxKV60Q8H2th0TY1tqtpel+31Urwj3qYi9vozPb47mhDfM7b6TbaWuMqNQJ0iKb2gbedVF1fi889QHCfwkx+Z7M7+9l+wm2Lgi7v/MlWw313ntgeGdL2KvZgi4XiNjOgo3xb2XjRzLb7bnhm2z/+6AJ7nejbxyabl5LZDRFfZ+X7XjVvi/JtxeLsZw+U1fWfBrfLv5TlhBsvSOhz1GXz+/zuxxahLYy3HYMm9WdfCEAAAhCAQK8JlLyM9LoBVG6lBOIhzw/efil6Yjp7ycvUSivKySCwIQTi2nM2qad3eypoU7GiLVRxXouLr5N0+YJsqbbOTTn9JxB91Ytk3aoFj93+t3h9NQwBxCKKs/LuXiDa+RjbBHiRN2dpNhVRYn8/HzgD+pGp+bOeM6M/WJi7RxIum55zGuGmAnTUw0KlBUvPJml7izo9KMVjnj2Jzx11ss+wvXeb3NNLxLg2OE8ycpke5PBicFctFKDtce1FE+fVJ+9Xtmy5QUFfNoPPJQHUMy7abm8wthe1rSkcz1mivj8zF3td23fbfNoSoKOfePD5npU39qc7Etsda1tpeKaC/a/r/JndvjOqhflsCWMrmbo+GZ+bpZnOuj5iVoL3dxKM7zNNro3S6zruWb723lJzUNTVMxU88O7+Vtfe0nqwHwQgAAEIQGB0BBCgRxfSzhsUD1bOdHl2WqzID6ZYcnSOnhNAYCqBeBn01GcLTaet4QUo7gv29Dw8CRAMTNFhcwLRHz6eshgtmrQtDEH8HAIhylhQtf+z13DwVicGP6/a6blLQAx7AotIH60pJ7JvvTjcM6oFEvdtqT80FaBDQLIYat/XtrNljSHqZBuU/0zxqMua9TG+VmwzYEuQJteK9/Xxk1sIeMtkPkcfihkvcQ5z9OaZDVcrFKD3kLR/oQB9xcSubjHbuM940b89O8r2Dga2OfF57BVctzmb1qJpLFQ3LQZNLTiird+shPBb1PhL19Vv3udxP/ECl7ZBqROgo287a9rPJfME2ejXtm/5bM2zQ5Tre8bOmVe7Z0+0uUWdrivp/dU91Auxz7peg8WJyc/eHuVNrtU2601ZEIAABCAAgd4TQIDufYh6WcF4uPJDpVexf37m9zjtpaeXjaBSEBgRgRBRPO3VL2ZeSMyDRG2/mE0iCxHCL2EWn+37OG/q/YiQ05QGBHK7JvcRL97lKfK8qDeA2GDX+B72YnP+ji4RO+057AX47BG8bFzsi2sbj7psyRBvvOhfZGk3aObUXZsK0K6DBa1bJrGsq4xKx8AWZs5q9sBAeOVOa0RwsV2GuaxqcbNJUbmJD7bbdtlkv1LnAR3fVyUCdMTTC9qa3UXmCKB5hqx9zA/sKEPWMYtr5NLJQsZiZf5OFQMZzgT+arKkcnb9vGtrUQHaIqn7ibkue+1O649RL8fLCwvO82j28dG37yLJVhnzrqko+6bJc3n7mvi6fZ41YWsMc+0i2zgY/m2azXWHOXWKa9WZzxbnbRPTRQyWvS9yPAQgAAEIQKAXBBCgexGGQVYi7zteddsLlFjwIutxkOGk0iMgENfeFyTZW3MVokW8WN48eSAiPo+gI3XQhHx6+nPS90WcZplszA6qOvgi45q0F7MFu+unFs163gux6N2VP7D9ny3GLiOgxLG26HJW8zy7iegXnrXhe5azppcVlJoI0HkGqUVh2yQse/5ZHSjiYtsAL+TsrGbPHpu2BRcvFHhvSbZY6koYd3sds7CRmHcBuA4WgG2xYXHOC8xabPbfLpEyu6+eEhLmldNEgI522xrGs2v8/7pF4ewLbK/okgUO27rgL5jVLQRq968mli5NBejg8IrqPE/tKNvbbYl62ULElj7O/J43qBXxLfGTj/jassfrRuQZ9pOxiXPaLsd2NjHbq+3vkBg82DZZxPhcJVnfTsbxLBI2CEAAAhCAAARmEECApmssQyBeNP17r/TghR3HMkQ5FgLLEYgXv+NSNqMXhOpKUMlflr24lkWJOm/T5VrH0UMlEMKB+8ejq0zJQzvsl0Nl1Fa9Q9Cxf+mRaWB4nmDn81qE9kDyfi3EJZ4LbAng+4LtP+aJVbmI5mztZe9XTQTouF+9J90vbY+wjPg+L4Z+NrLo3ESY96KBzvT04m9tzmhxG80pbDOi3ltVGa72DbeYavHNPv7XrIRBZ7R7YUGLzP7cAqR/e7HDumzYaUwWEaCdfeuF9vLZFLMESg8kuP/bM7oL4T4/bz4LaFpbg7UFzDqhtKkAHefzdWMRuqst6uVr+r2VKHuxQgE6stDnXVMRH9vweIHzOqHXZb0jDTB01d683H9LA6bznm2izrYo8aKUbBCAAAQgAAEIzCCAAE3XWJZA9CE/RNpvz9ltflHygzZ2HMvS5XgINCcQL0Ne/MdT6u0PuayoM1mLKG+HNOXU02eZ/dA8VptyRIiMZ6fFsuqmZW8Kl7bbGdel7RAsPoetxaS1Qpw3rtmTq+xjz2Jowz8+xCaLmbZbcQZvSRa0vWIttp605P2qiQAd2d8HS9p1yfPWxTIEaGdTHlGQ6RnPUA+tsoxfn7KlLWAvusWzWi6CWki2t/Jl0gCixWb/+P8WmL14nuPoZ7pZ7wvuQ7HN6meTdV5EgHZ26bNqrEviPuOF/tyXju84pnm75r1P1QnPUc6iArQtjSJ7uPRcTfpRXNPXTgsR2nakJAPagy0e1JonQMfAiq09nlw4M8De6LYXiv7WVZvdt51J//DChS+9YKGfudggAAEIQAACEJhBAAGartEGgXi4tAj9zPSS4H8jSLVBlzIg0JxAvOB/RZIFDL+QtyVC5+KzBaY6n9fmteeIsREIseLnku5WLaz2+RVkJo6NYUl7fG2a9fUkfShlrtZlFLpcZ6Q/Kp2gjQzgyGq0rYbFXYtM3qY9c+bZ8RZn7R29TNZqEwE6bDAsZnkWV5tZxpPxijZ5gcZ3NbAxiCzSELBL+kG+T/SJEOksKt84/Xjg0AvFWXB22+clDbgfTcZv0XeIRQTovdPzZclgxpeTncwJLX7vNeW+yP6LCtCeVfLaDrP3455gexUvoun+UiJA13l855n4rr/vQfOsaYJp+LbPq8Mi/CePcfm+XsKmZlaZcY89Kg2w5oMybdSDMiAAAQhAAAKjIbDow+NoANCQ1gjEA6pfkpyl8vSaqb+tnZiCIACBqQTiRf2Lkuyv2IYIHde5/T+dlXc7bDfofQUEQijwolH2BfXiam0NiBScfuN2eW4S6+b55eZQvMCbhSVvbWQTxrOl7Tfs12r7hnlCeHzme4ozkZfxoV5EgPYzi9exsNjkc3exhQBt0dc2BnXWJJGdbW9fZ4cuIkDngwm+Zzub04KzBWhnPk9ujn0e/4hj2+8KiwjQtph4UmGG7KdSJmobGf1d9IVZZfZdgL6GpI+1LEDHPcfe0h6Amrc45ypj0eRccf/6j3SN/abJwewLAQhAAAIQ2CQCbT9UbhI72npeAtGf/BJnPzeL0H5pIhOa3gKB9RCIa88ZYZ5GuowIHQKK/UAtFN2Ra3s9QR3gWUOAtvWG++FPO8zWGyCeVqtsy4RPSrpJTZZifm+4U7Uw3i9brcU52bI+h2dJeAG5EgHa/cKDWt9aYoBiEQHa1mG2eFiFAG0bg/cnf+V5TEKI83PUPg0F6HxwZ/tkR+GBH4vP+XP/5GDDqt4JFhGg95e0e6EAbSHwgalPt5HR3/KlMbO4TRWg3e43J/G2VIBuY6CsNK5110Vcx59I19p/8/1Wipb9IAABCEBg0wjUfaluGg/auzyBeNj3i5xfnOwL7RdiROjl2VICBBYhEC/7uQjddIp7vBh78SFPlb3XQDOVFuHHMcsTCAH6QElPSH1nSMLQ8gS6LyGuUQ8MvanBQmGOxyszwbeN58LwL/bvm1Wi8mcKmh99JLKRCw6ZussiAnScc5Es49J6Rr2uJOnDlUf3lWuei0KIc2a261d6z47zOI53qc7xbEk3yGakBec24uy2hxAYv0vW/uhagP5IEqB/MTAhcBMFaPcbe9bbeuefB/pcEe839qb2LAMP5vH9VnpnZD8IQAACENgoAm09gG4UNBpbSyDPvnHGykslnb8mG6u2UHaAAAQWJpCL0PZlbZJhGC9S21XTxl+TXrDm+XAuXEkOHC2BEL08M+bFS2S3jhZQCw2L710vcOeM43kLAUc8zpB0a0m2RulKMLG38DFV1u+Nap4BQsC0ZdAtkhC1CJYmAnSIvOFV20cB+oWZnYrvu/O2iOGFkvD8uPTs5WOWvWdPyzid18fm1RMBejqdTRWgveClBWgPmJRmQC9yb+jqmFyAvq+koQ18dMWFciEAAQhAAALnIYAATafoikD0Lb+g+CXIi/xcsIWXoK7qS7kQGDuBeEk6Lvljfrsgqy5eiC0+O/P53sxmGHs36ax9FhZsv2FLBvyf28UcPO3R6oWw6jyXQ4A+XdKnJf2uZgG6ZWt7XUnXKhCg/dzw25QJ6Xp5azrVfhEB+mlVFubLOrbgiHrZe9kZ0HUxCiGuVIDOM6ztGX33xC8WDyx53g8P6OgfJdnMLv8UST9Ov/9J0kVaWqTOTYjM7yYWHGRAL3vFnvv4GNjowgPafc0JKm+RdI+BCtAeUDEj+93vjADdbuejNAhAAAIQGBeBkgfScbWY1qySQC5C7ybJi8hgx7HKCHAuCJybQIjQJ6Qsyc+nqdkWOya3XHw+OLPdsCDAdwc9q5RAiFm/krSLpPchQJeiK97PWca+hh8t6dXpqBLxsPgEK9oxxFIPUnimRqntRF69JgL0n5K3shdtfF7HAnS0xXYYvga8KGBcG9PwhgC9VxrAn5edHffja0o6LHk9+/jSe7W5R1byZL9xOV6Y0ax+Len4agDze1V8Tpb0Q0knVYsDetE1Dxz8XtJXKj/fq65ZgMYDut0LtksB2jX1dXBksk0pyYD2/u6zfdjiGva15uekxy4xe6MP7aEOEIAABCAAgU4JICJ0ipfCJ6b1emqaX47tI4snNN0DAushEEKDxQP7FXrK+2RGarxwOpPt8JRNt+wU7vW0lrOum0C8oFu4sgD9pQ7tHtbd1nWcP65VzzByFuHdGsw0cmzqbB3aaJPvLyWCeDwXfFfS7VNGbdNs+UUE6PCAXsUihF4I8L2SvJhriQAd2dmzBOiIvxcbfKekHRtkkYaQZ/Estp+lbOYfpEVrLTBbbP5OEpktRM/KSvdAiO2duhCgnaH+lMJFCO3F60UIh7bY6SZacCwiQLdxT2q7jM+l2Z5d2hm1XWfKgwAEIAABCKycAAL0ypFv5AnzTGj7TTrT4TINXpI2EhqNhkCHBEJM9tRpLyhoUTAy9OL3JSS9Lk2HZ8Cow2CMvOgQ2T6RBGj3ua78hkeOcmrzQrSyzcVn04JeQ362i3vNo6os4UNShrJFz9JtEQH6+ZWo+pwFzlVaJ+8X99U7VHYk75Bkn+ZZAnQuDD9e0gEz6uY4+8fitNfa8JobJffqyfOelmxBLKJ9vbrne8HaOuuTOHd+LVuA/kZHAvTeyQt7XoZstMvfZ/evZvmcOLDZFpsmQPu6iDY7e/iRhQMMFnnfnPr+Ou917m/u87YyOlrST/hua3JLZF8IQAACENhEAuv84t5E3pve5ngBu016eLxkg0ytTWdH+yHQNoEQKk6tplH/qyRnjUWW3cVT5rNXpSfzuW3ym1Ve9LPXJw/ovkydHlsU7Pv75BEs9hv3Gy9KZhsO2z94qxNEI56LCND7JnaLWH6U9qOwSfGsE2equ57zBGiX62f0B1V+0W+aYZUU4q9F7fdIukCBKJcL1N9Ms9LsXes1AWJzuWYR12qwr4uBM8idAX3lDiw47IXtRUxLBGjX4X7VmgVuX5cxzWPveM4aWCu9522iAB3x+ffK4sWLgYYtzrTrKq6Xd6eB89Jrb1X7MbC6KtKcBwIQgAAEBksAAXqwoRtsxXMR+m1VZo+FrnnTUAfbUCoOgQEQCLHH/rz2LrQwcuEkeHhF+pJsugE0kyqukUD0Ma8B4Cn0bO0TsP2GFxe9Uip6yM92IXL+UpJnTFlEbGLD0USADjHTmdbOuA5RuE5oXSSCMbjn+6wzmn1dhGg5WV48E52dMnktLoeAnYvE3s/rarwxLeDm/+d2GrPKtV+zr8cDq/v+z9NOYZPie34sRljazhDePLPtmGrmzA4dCNAWJy1SzltUMbh5loUFaGd0dy1A5zP8ZvEq2cfHbrIAHRnu8wa8I76e6eGBGS982eTeUNqfF9nP9e7ivrFIXTgGAhCAAAQg0FsCQ35J6S1UKlZLIB4Y7VXorDivCk+WZS02doBAJwTi2jtD0hMl7ZSsEhCfO8G9kYU6i/VJKduSLLH2ukB8l95D0tuTSNle6esrKe49znh9ccNp7YsI0B+thO57p8X0uuqfISBb+PW1UJLpaT/mnSV9eoqQGvW8U3qOsgf0vHt2Ls46U942ICF6+ndT0TnvHVEXL7D4IUme3TYvsSC+cywq718T34jnA1I7LeTPyxx3Xc5K6xu8v2MBOhc/nfXtgaBJEdKDuxZKS7ZNFqAflhbx84BBXXztT+41ZXLrsBK+7AMBCEAAAhCAwJoJIECvOQAbfPrISrlp8oR25haZ0BvcIWj6WgnEtZe/PPP9sNaQjOLkIYj9d7LfsCDUlcA3CmANGpFnVXpKukXosQwaxX3IfsS3bCgMNxGg475nD2Rbg3nxwy4yKqPPn1+SrUXuXjPoHnF09rcXlbTgNqtetg/xwGGd+Oyu5evQGdjvajnbOzLHbZnihaadlT1vW0SAttBudnXe2T6vedtWypnhsxZvbHCpTd01YuoECvP3s+ykAO3+9etkb2Wh3V7B8+5/myhAR5tvmwZFLlogQLv/2OPbgyiTMwOWjSvHQwACEIAABCDQIQEEhg7hUnQtgRChb5FlQsfLQ+3B7AABCLRKgAGgVnFSWCaKHZ8yEi2oIUC30zVCuLlCypC9bKEAvUymazs1P0dMLdlcVwtTn0w7l0xxbyJAu9gQQ+2j7EzoLiwbok5XlfQxSZeriVWIyfblv/McH+yt03oaFqnnCdDx2Quq9j4rXYNuewnPkjgFs1dK8qKJdd8liwjQV5P0kWTvUdJWZ84/M2tjW23NeWyb7FQsdtdtZmMLIme+z7oHbqIAHSz+thoEshe5Bf1Z8Y17lzntmRbe7GLAqC6WfA4BCEAAAhCAwIIEEKAXBMdhrRGIFxdnOdnncLuCl5fWTk5BEIDAuQjESzrfDXSMNgiE0GRh4a4NM1nbOP+Yy4jvzqcmIWZsNlYhYh6RFiMsHbhoKkCH2PUGSQ9d0opiVn+LOnkBQq99UZepntdplzn2G9eUZD43mvPcFGU5E9e2BRbZ2xSf47vCmckfrETimxW0r4kAHeU70/WLkq5fmD1u2xLPCrCXeNsiZfTF20k6KmV8zxLdo60nVJ7UHuQ4eU59NlGAdl8Mnp+p+ufNC+NrqxdfT7/rIL5xHZd4d5fsM+bvIdoGSKqrWQAAIABJREFUAQhAAAIQaEQAkaERLnbugEA8cPsl6zU1D/IdnJ4iIQABCECgIwIhvrw3iV/2gi4VEjuq0iiKjWe3iyQ7BS/WFwvqzWugF7X7giR7C2/ZYgZsCVTX2XW0PcOtMruCWc+hIZyelERN20eUCKdNBeio+x8kXVfS9zvqox4wsMht6wCLlXVZ4M6U/TdJL5sisEUbPXDvdTT+rkCA9uyDB0qyrUmb12BYINhWxIvYXqAgiaCJAO34RHttuWCv7jq7EbfP8bx99eMF6/x/H9PGFv3V/di2Go+oaW/U1QK0BdOvkgF9njBEfL3IpH3B52XQ5wt0/nOaUdD2AIMrOHmNuF/nW/Qp31On7d9GX6MMCEAAAhCAwOgIIECPLqSDaZD7nh8aw8vtoBpvv8E0jIpCAAIQgMBfpvf7Xv9SSU9PIlCb4temYg7BxRmYRyfRL0SQaUxiZoMX7bqnpFNbFiFL4hBxt0+uB5ttW1AnJEa5ti6w13GJ0LSIAB2ilm0SnlB4npI258LUjSU5w9PC/7wt6vLzFCsfM9nuPP6HS7L9Sl0GroXP+0n6Xouxd0zjPcKZ2A8qXFC6qQAdfcex2a8AfLCwoOkFH9vcgv31Ujb5JQrtT74tyYKp/byx4Dh3RIKH7XacoV/3bhrxfWdapLPN+ObX7IXToME1JNluZXJzPb3A5Js6HLhqu22UBwEIQAACEFgrgbov+bVWjpOPlkC8tPjl09ksh0ryg16db+BogdAwCEAAAiMjEPdzT5F2lqCtB0oExJFh6KQ5/g515unzkrBfZ78RsXDGpjMM1xWHsA3x976zWessf5wF7EXkLLJbPHVWq7d5fr6LCNAhhLuv2k/5Ey0xyqfnvz2JZXXPOfG5Bwt2qrxuz5rSg/KF2yxA21N6VrnxdwufD0gZ8HUMSzttxNMLOHqWgz2pc1F6VjmLCtAWAr+RLEnm1THabHHQswOcfdxGn8/b5sUWH5UqMS+bPdpq/2oP/pyJAD0zdO4/x1a+5vZK9zbrHTXi+9u0oKe90tvybncsXb4XDH1FtXDnYwouBltMeXaB+1sb/azglOwCAQhAAAIQGCYBBOhhxm3otY4HxXul6aPbFHgGDr3N1B8CEIDAJhEIUc/WCXeqhL2v8HLeSvgjW9CLdll4sVhTMmXdcXCGqhfBa9OSoEmj/N3vfrFDyhq03+u8ukcfsrCzs6TPF2TvLiJAuw1xLi94aK9k81pW1MqfdY5MolaJsGYmL5f0tBlwow/Y+9kWHNcqEKAthNrj+o0FDEtiGpwvnmwu3A/rvK2j3KYCdBznwQgPDthneh7HPJ5vTbYnIRIvY8UR8bSo7XK3L8jij2vN8bSlim1oyIA+bw8LJi9J/b6uL8Xnvp95oU73qViksKT/TtsnHzDyIof7pDJd9rRBBtchBiU8yOrBIAToRelzHAQgAAEIbAQBBOiNCHOvGpm/kNkP0dNx6x40e9UAKgMBCEAAArUE4r5uT117/p7Gy3kts5IdQvCwSPrmggNC4LVY7UXQLKasc4tngGenDO66jOAQK59T2Ve8KBOaZrVhUQHa5cW5/GzySEn2LF9EUMotxv4+eSNfpcD7OVh4wUDbEYRf8KRomg9CWFC2IFoyCOFFAm19cvqSgxARQ9uJHFJgpzIZq0UE6IiDM+HtNV2S9R9e2+5re2ci4iIidJzfdic+fwyezMt+zjN1vQjrp2r6U5zjOklov1jhzMBHS3ptSwMLs4RZt8UZ6BZ8L1NTr2Xi60UmvYCks6G9zcuCjvha2Pe9wbNCQohueo/LZ2b62rf3uhfWjHNMKy+f5bN7EqCxmGpKnv0hAAEIQGCjCCBAb1S419rY/OHOmc+vSw93iM9rDQsnhwAEINAJgTyj1Pf8EL3m2Sd0UpERFRrihqeHv7/yFLYHdN13qHnHgnbOwlz3FiLbjmlRvivUVCja56n57kc/rBHalhGgXZUQlWwRYt/yEzMhLH9mzvvx5N/jM2fqHiDpBoVxCrHrPdV5H5zsGuYJ4P7MWZd1ftp5u2zb8tzUphBP6zJHc+uJEG/tfWyRzgtI55mgJf1rGYHS2fPHVILrpQsFfdfH/f9ZldWbPaH9b29522fVOc+INSPPOvCgjxd/rBs4yZm/L8XzDAToud3DMfHPqyRZVC8dZLBNzW4puz9iW9envd+0fv24yvbnhYVr0kS/d1zt7+0FLxcZsCq5ZtgHAhCAAAQgMAoCCNCjCOMgGhEPZZ5G6xcmZzeUPMAPonFUEgIQgAAEphLwwm62Eji7wwy9TUEf36MWND+QRLh5AnSehX7HtABaXwQS18O+yBaV60R0x9dilPc9qmMB2ueK+hxfCUrPl/SuTLgs6Wte0+KxaQE8Z7GWtC8EMwukzm53O+dZgMRgxK7Jq9azyUJUm1VH18NZ3RZRfU3+MtvR2aOx5c9mPo9tI3LB3X3J9gTOVo2/N3mfWESAdt3CwsUCurOa6wTKSQ4W9n3s16cACjFymnDp894l9QUvPlgST5/CZZmdBwhs2VGXHbvJGdDm5T5oXh64caxs75KLxNP6dfRVe2vbvsOLlfrf0V+mMY8y837tARX3adsUObO/5P0k+oEz233N/qwgxiX3D/aBAAQgAAEIjJZAkwfG0UKgYZ0SyDOfPXXy4LSadOkDfKeVo3AIQAACEOiUwMOYmtwa3xBTLKI5ozOe4eZNU/dnXuj38WkQIISx1iq1QEHRDi/i5qxUi6clFhJHpExHZzzOEvOWzYCO5oS46WcVW2G8O9kPWLT1YohesND72Jd4q/Rc4wzZf0k/l08FlYqk0X4Lb75mnFU5L1bRflt7uG7XbiCMutyTJHlwyLYcJxcI7BYDr5kWsbQYa5Fu0ee4ZQXov0szAGwJUSIU5vt44Tpnt/vH9kC/yGIZsfcMA9svbFcNPtgOwwvR/WMlUF6gQZujjY6N+7lngNRde5suQJtPMHDf9D2rpI/l8fVijxaij5sYYJl1m3JGvfvzEyprlatlMap7P45z/j55jHuh1LoBhgVulRwCAQhAAAIQGBeBui/YcbWW1qyaQC4+OzvAHnXODCp5oFx1XTkfBCAAAQi0S8D3+p0qq4jPMDV5abAhblxUksWOW6RswTxzNT9J7j9rUdSLty27qN7SjUgFRFtsv/HeKtuxLqs0nhl+KsnWHSfM6U9tCdCu6uSzipl6QUSLlj9J2cSezWWh0oKzRdppMajjFrFy++6TPHBLM9XN0rYaz8zE2HnP9pMZy/Zm/1Alon03ZXD+PMss9sCAM7gtzN2wEqtvksT2aWzq2ph/vqgA7TLy2XRegNHiv7e695lpmdqnpGxoM7DvtjNiXZ7jeLkkuDszNrbSZ9ewKXFG7P2T93OJOIkA/VcR1xYrti5xvyvhnsfX/cs+0hajbaHjPu1BK//dAydePNI/XjjTCxhePQW4STZ/2G84a9qzJDzDxxsWU03uBOwLAQhAAAIbR6DugW3jgNDgVgnEw7Rffp2B5Yf6kgfJVitBYRCAAAQgsFICIaj5xf82kr5JdtjS/EPA8mDuYQU2VhEDi4sP7dn08GiLnxGcrfjkrH9Mey6NtlggtNDqY0J0nBR8FhGg67JoS4WpvC6lz9e55YMz271YXolY6fZHWy1+287EAnHpM1acd3IRPWcI2wYkMrsnBzjqyq9j6XovI0DncfeMOi8YV5plHhdhaTxzQbFpPM3VsxRe0GDwDQH6nAgFB1u9OIO8yWLlk/3P/dWzFkKAdna730UsRC/SH3yMbWx8vGcPeGanr5nSa3bpLwIKgAAEIAABCAyZQOkD1ZDbSN1XTyDPfL5HWlDEU1PrXlxWX1POCAEIQAACbRMIEeDjafEtZxjygr48ZYse+6cFuuq+TyMGT5XkxQdLM2qXr2VZCVGfm6eMbmcRzxMvQ2R0ZuPdUsbqtD61iABdVuO/ZjdOy3Kss0OZdQ6L6hZ5vaikFx6ss96YLCcYeBG0txXYmUweH0K0f5vd5HtBZPP6uHi2K+U1a782BGiX7SxZrylyhyRCT6v/rDpEDOdlrDZtby7qO+niKZUP+G9SBUoyYxGgz4GVv0N4UUDfvywc193zItb5oM7kAEvsk/frWftM6ztRh69VA6v3ThnWfbu3Lnt9cjwEIAABCECgMwII0J2h3diC8wfHu0t6deX7fJkGD44bC46GQwACEBgJgRCY7ONpEcYZlWyLE8gXH3Sm65VSUXXPcJ5+/kBJX+ixAG1LEVsp3LWmTSH8OKv+4Wl6flsCtDMYbaWxqIi8aGSjTcdWPswPWXCmQF7n3dKChE3Eurzus0TSun6WDxzYH9vnn3fMsgK06xzXxJUlHSLpVuk5Mz5bNCaLHpeLo17k0YtQ2tajycAbAvRf6Uf/cd/yDAnbzPgaLRWho6S6AYbSeOfntaWUrzXP7EF8LiXIfhCAAAQgAIECzzQgQaApgVjF2tOu31C9GJD53JQg+0MAAhAYNoEQmHZPM2B4SV8unsHPwqszK+u2EEts1fHo5G1bd8w6Pg9xzjYKtlOo26JdXrjwSTN2bpIBHf3UnFy26+GtqchVV+/Jzy2K+Rz25P5yWqTOCx02ESsny/SxbrsXU3tRljHaNIu3aVuCodt0QLW437WS7c68ctoQoF1+8PKihB7schb4KuKXty3Peva/vdbJ05P43PS+hwB93l4T/dcLEtrOZJsFst2b9ul58X1dslaxB3zT+C5TD46FAAQgAAEIjIJAXVbDKBpJI1ZGIM/SsvjcdFX2lVWUE0EAAhCAQGcEYnqzpyi/hxf1pTiHyLZtEtmcKTvPqiI++1USVN+1pLC5VOVrDo62XT95vXpRQm+znk1DGPaCis7stgg0Kdo2EaDD63ivZG1yYLXA4YOS/3ETn+AmjPJyv1i1YVdJns7fppjlQQf7ZF8oVazEl7lJG7xvLryeWVl/vDT92BLDvrh1dipurwcR9luyfwY3JzvYc3kXSRfIFoPr6j1nsn94ccqXJX9281gknnHMddOioXW2NBGHx0g6aEmO8+If15gHF7ywn2c1riq+cW7//ldJvlZj0cBYCLCLGE96pHvhU1uBvKma1fO7BePb9BpjfwhAAAIQgMDoCHTxpT06SDSoiECeufHGglXtiwplJwhAAAIQGBSBEAlPknSvJK4tk9k5qMZ3UNlgd2FJFkjvXyP+2FPYC8h9XtJdJJ3eoTDVRnPdPs+c2icJkhaFJxe+i/OE6OdsYQvF32lJgPbif57i78XOXO6e1QyuK6aThsg1TxifxyH3Gg6vWS9iZpsGn/PkFsWs3LbAC7g9R9I/pPJdx2UFu2neuhbPvXCiB5r8ubPJH5adaxqb6KMW3535vohYm5cbx2+VxG9ngV8v22HZGOb9L+IZsbR9yyeT4P/ZtOOi97tox9UkuSwL0POy8cO32/dZL9a36HnrruMod4d0X7lk1s5VxDdvlwerni3J/dvXa96vF71GJ+ObzxqwJ7vZOsPefT3OUeLpXceVzyEAAQhAAAIbRwABeuNC3kmD46HZGc9Hpgf/pquSd1IxCoUABCAAgZUSiEXVPirpPgv4oK60sgM5WTyr7VFlte5bUGeLI/be9r5diVIF1SjaJep32yqz8a2VjcPFawR2F2rPaIuXFnInt0UyoC1oWUS1JYafXW5c9Vuzvl0l+m+fThC2GSFARUzy5+jJhe0iSzTEyrOrQYEvJZuGd1bZnPZLXlZ8nQY5mLruHrCwIHydLLPcbSxph/fJRWfzie2HyYfbWaH+d7TD5zsiDYLM6wDO0N+pGqT6RksM8n7uxQkfIekByS/dAzLRlllidF0czcHtj/0sPHtBTGcefyotNpgPABR1/omdog0XSZm2dy4o5AeSvJDntNkABYc32sXt/1jy26478JdpvzZ9kqOP2YbDC0/ah/mG1ewF+8jn8Z3s2/H/2CfqPnm95v37VEke6LKlitvc1bVax5HPIQABCEAAAqMigAA9qnCupTHxQOhFkd4h6QbpBS5/kFtLxTgpBCAAAQisnEDYGtir2J66/o7IRayVV2gEJwxh6mIpq/XBmcCXT1E3ey985uxaC6pnDUSADmHIoqGzVy9b+RhvmcUthCILuM42debw12e0bRkB2ovnmWFYyNwyWTrcVNI1p/SjEKXjWTqE5sldLdAelwTbt0iyRYO3LsTnOHeI6f6/BU3bctw+CdGXmNKWaLM/yjNA813dn+xZ7R+LzG6TN5/Lx5uHF4pzBrntEjyYkL9neB8PGnghSWdnv63l/hn1jrb4/K6H4+iM6LB4mWx+1D2upVnPrxbuLah+K2XFHpX5q7cVy6iDn6U9K8B9zzMCcssL/9vXwo8Sx6Nb5jjtlhn1ulHyYr5J8hmfrJf7yM+SHUoX9ks5Z8fJvt/3TfG1Nce0azDv23HdTWuj753u0x4k8nVqATruPfn1NIKvFJoAAQhAAAIQWA8BBOj1cB/LWeNB0C+LfpG42QoW7xkLO9oBAQhAYIwEQpB4avLM5MW9nSiHAGRh1uKPxWgLYvF3fx9b3LMXrUWyoW7OXvU0+9yGI7JPnTX7hSS+zcrsXkaANlsznCz7qpIsvNkD98pJ7LK46Rjkm4Wu36cYfD/Za3javsVyi7axLZspWxrbycEft8/Zsn+fBHVnRdtWwQK1xfd8s8+ts1idWWurE/cpt8kDAL+ZaEvuhxz/tuDrsvPNn1ng/14l7Dtzt6ttmhjsTFl7K3sgwYsWXiXFz2J8PtjhOkUcT0vt9wDCdyWdmPqfbVO6jGX0P2f2+lq3p3Vc6z6vOToj9/hqkM+Zuqvaol7uK+5H9qXP6+V6uF7f7rhe064f25a4Xzu2jvM15sTX17gz2P87ifiOrVm6Tzqr3ddwl/FdVbw4DwQgAAEIQKB3BBCgexeSwVQoRIXLpemwtyHzeTCxo6IQgAAEuiAQfqX2zbT9hhesaiszsIv6Dq3MUjuNoTIvrfc8Dm0I0NEvXJbPFZYV/rvFN3vg2m/YHrQWL0N0tbBlgdUCrcVyi7i5kOWyJrMxV9EHfV63JW+Hz3upJCK6LRY5Y3Mb3BZns7oNv5iod57xPK3+Jf20NNbL8plWV7fX4q7j5387pt4vBs+cXez2u+3OVndmbM4u9u0yliUMzWZVHPN+XOJ/vKp6TbtGfU16gCiPb2RGR/a44+vY+lr191W+1fXvZfskx0MAAhCAAAQ2lgAC9MaGfqmGx4OlxWeveG7vRjyfl0LKwRCAAAQGTyBfgHBHSc4gLBVSBt/4FTUgxMRZz2+OQZfCWNfN9PPFLCuLsLyYJ4C1KUBHW6NOPu+kiDuPh2PkTO6ISYlw1yXfvO/Yq73JZh/laH9JO3K/5MnzrLqP5u1e9NyRkb/o8U1Yx76u9yw7kLA1Wse1Pu8etK565feNpn07rtMm/XuReHIMBCAAAQhAYOMJIEBvfBdoDCAynz218g1pEZl5q3Q3PgEHQAACEIDAIAnEQORnJFmARnweZBgHXekuBOgciPt0PDtPe4aethBhH4Hm7XD9JtuSi8xj83Cva7t5DCWOfexb665TXXwn+3Ye73XXnfNDAAIQgAAERk0AAXrU4W29cfFid0VJh6UVrsl8bh0zBUIAAhAYJIGYwn5gtdDYYxGgBxnDoVe6awF66HyoPwQgAAEIQAACEIAABNZCAAF6LdgHedJ4qbuSpEMk3RrbjUHGkUpDAAIQ6JrALmmGDBnQXZOm/EkCCND0CQhAAAIQgAAEIAABCPSQAAJ0D4PSwyqF7YZXDT84ZT5ju9HDQFElCEAAAmsmYP/N60v6FhnQa47EZp4eAXoz406rIQABCEAAAhCAAAR6TgABuucB6kH14mXuapI8rfo2ZD73ICpUAQIQgEC/CIT9xg8lXUvSmf2qHrXZEAII0BsSaJoJAQhAAAIQgAAEIDAsAgjQw4rXqmsb06cvKelwSXdKq7nPWqF+1fXjfBCAAAQg0A8CMSvmSEkPSQOV/agZtdgkAgjQmxRt2goBCEAAAhCAAAQgMBgCCNCDCdXKKxovcdtLeq2kuyfxeXJ16ZVXjBNCAAIQgEDvCNh6Y4u0+KBny+D/3LsQbUSFEKA3Isw0EgIQgAAEIAABCEBgaAQQoIcWsdXUN4SDS0g6SNI9UzabX+zoM6uJAWeBAAQgMBQCtt/wj78jbibpGEmxdsBQ2kA9x0EAAXoccaQVEIAABCAAAQhAAAIjI4CYOLKAttCcEJ+3TbYb98LzuQWqFAEBCEBgvATCfuNESbeVZB/oEALH22pa1kcCCNB9jAp1ggAEIAABCEAAAhDYeAII0BvfBc4FIPqDfx8gaTc8n+kgEIAABCBQQ+B/UsbzUZLuJ+kPWHDQZ9ZEAAF6TeA57f/P3ntAW1NUW7hzvCtRRUAMYLqCWYyYFQRBQZQgQcWcswLmLCKoGDEgigoooiAgmDCLOeE1RwS9CgZUTKAI3vfGqyk1pTic85+9d6/qOHuMfxD+3dVVX1V3rZq1ai0TMAETMAETMAETMAETWBMBC9AeHyKgscBj1IcAeFbh+exx4nFiAiZgAiawEgHFfz4gCc8vzbGg+f98mUDbBCxAt03czzMBEzABEzABEzABEzCBGQhYWJwB0kR+orHwSgDPtufzRHrdzTQBEzCBZgS4acmLXtAPAnCCBehmQH13IwIWoBvh880mYAImYAImYAImYAImUIeABeg6XIdUqsYAF20Un59p8XlI3ee6moAJmECnBBT/+WcA7ptE6DOcgLDT/pj6wyVAfwTAfVaxZ/4FYK30mxenMfsyAGsDuHjqAN1+EzABEzABEzABEzABE6hBwAJ0DarDKVMJB1njF6WkUQdmLzYu4Dw2htOPrqkJmIAJdEVAAvSnANwbAD2i+f98mUAXBEoP6J1yBfj/lrsoQF8h/QVDx9D+sQDdRY/5mSZgAiZgAiZgAiZgApMgYJFxEt28bCPLhIPPS4uwg7JwwB97XEx3XLjlJmACJjAPAQrOnDMOBbC/vZ/nQeffViDwX3kjnQkxdwXAWOQrCdAMG0MP6KcAOCz/O0VpXyZgAiZgAiZgAiZgAiZgAsEELDQGAx1IcfIQ4kKN4jO9f7RA85gYSCe6miZgAibQMQGJz38D8HAAp2QxWnGhO66eHz9BArJvdgHwVgCbrcLgdAB7APh1/p3H7gQHjZtsAiZgAiZgAiZgAiZQn4DFxvqM+/aEUnx+fvJ6fonF5751ketjAiZgAoMgIAH6bAC3TZ6kfxxErV3JsRNQeLFtAewDYKMcFqa0efnv5yaB+ggA3/fGydiHhNtnAiZgAiZgAiZgAibQNQEL0F33QLvP16KMR07p+fzCfORUIkK7tfHTTMAETMAEhkxAc8cnATDerr1Hh9yb46q77J11AVxxhbF5QU46WObDGBcFt8YETMAETMAETMAETMAEekLAAnRPOqKFatDzmeIAE+5QfKb38zr5/3kctNABfoQJmIAJjIiAxGf+k0lsDx5R29yUcRCYRVie5TfjoOFWmIAJmIAJmIAJmIAJmECHBCw8dgi/xUeXCQdfkMUCekHb87nFTvCjTMAETGBEBDR/XAjgXgC+lMM5/X8jaqObMg4CK9m69tgfR/+6FSZgAiZgAiZgAiZgAgMgYAF6AJ0UUEUlGKTX84tz2A2KBCtlhg94pIswARMwARMYMQHNIT9N4vMOAM6xAD3i3nbTTMAETMAETMAETMAETMAETKABAQvQDeAN4Fb1L7189gXwKgBr2/N5AD3nKpqACZhAfwnIc5RzzOEA9k+hnS5yIrf+dphrZgImYAImYAImYAImYAImYAJdErAA3SX9us9m39LD+f8F8AQArwfAZDwOu1GXu0s3ARMwgbETKOeRhwN4N4D/yvPN2Nvu9pmACZiACZiACZiACZiACZiACcxJwAL0nMAG9HOJARSf35zFAYfdGFAHuqomYAIm0FMCEqD/BGAvAKdZgO5pT7laJmACJmACJmACJmACJmACJtADAhage9AJwVVgn/IPxebHZfH5Ctnz2TGfg2G7OBMwAROYIAEJ0B8FQA/o8xx+Y4KjwE02ARMwARMwARMwARMwARMwgRkJWICeEdSAfkax+f8A7ArgJAD8b3s+D6gDXVUTMAET6DkBCdCvAMDkttzc5DzjywRMwARMwARMwARMwARMwARMwAQuR8AC9LgGhcJu3AvAMQCubvF5XB3s1piACZhATwj8FcCTALyvOHXTk6q5GiZgAiZgAiZgAiZgAiZgAiZgAn0iYAG6T72xeF3Uj/RK2wnAUQCuafF5caC+0wRMwARMYFkCOlHzFQB7ADjXnEzABEzABEzABEzABEzABEzABExgTQQsQI9jfMjzeWcARwK4hsXncXSsW2ECJmACPSMgAZobnY/qWd1cHRMwARMwARMwARMwARMwARMwgR4SsADdw06Zs0oSn++RxefrAfh/AfD/+zIBEzABEzCBKAKK/XwhgGcBOMzJB6PQuhwTMAETMAETMAETMAETMAETGC8BC9DD7dsy7MbWAN6eYnHe2J7Pw+1Q19wETMAEek5Am5tnAtgFwE+cgLDnPebqmYAJmIAJmIAJmIAJmIAJmEAPCFiA7kEnLFgFeT5vk+I9vxXATS0+L0jSt5mACZiACcxCQOE3PpjE5wcC+Kc9oGfB5t+YgAmYgAmYgAmYgAmYgAmYwLQJWIAeZv9LfL4bgCOy+OywG8PsS9faBEzABIZAQOE3LgKwH4C3FZXm3/kyARMwARMwARMwARMwARMwARMwgWUJWIAe3sD4f7Kn810BvAPATez5PLxOdI1NwARMYGAE5P38OwDbA/hRzjXAzU9fJmACJmACJmACJmACJmACJmACJrAiAQvQwxoc8ny+M4CjHPN5WJ3n2pqACZjAgAnIy5nhNx4N4E8OvzHg3nTVTcAETMAETMAETMAETMAETKBFAhagW4Td8FHyfL4jgHeGZRyQAAAgAElEQVRl8dlhNxpC9e0mYAImYAJzEXh8Dv1E+8GhN+ZC5x+bgAmYgAmYgAmYgAmYgAmYwDQJWIAeRr9LfL49gGPTnxs67MYwOs61NAETMIEREWD4jV0BnA5A89KImuemmIAJmIAJmIAJmIAJmIAJmIAJ1CBgAboG1dgyFXZjSwAnAbgRAHs+xzJ2aSZgAiZgAisTUPzn9wJ4EoC/GpYJmIAJmIAJmIAJmIAJmIAJmIAJzErAAvSspLr5nTzMNgdwPIDbAfg/AFfopjp+qgmYgAmYwAQJUIDm9TQAhzn28wRHgJtsAiZgAiZgAiZgAiZgAiZgAg0IWIBuAK/yrYqvuQWAEwDcxp7PlYm7eBMwARMwgaUE5P38cwD7APiGBWgPEhMwARMwARMwARMwARMwARMwgXkIWICeh1Z7v1XYjRunZIPvs/jcHng/yQRMwARM4DIEdOrmRAAPyqdw+AMnIPRAMQETMAETMAETMAETMAETMAETmImABeiZMLX6I4XduFb2fL4zgH8BWKvVWvhhJmACJmACUycgkZl5B54J4A32fp76kHD7TcAETMAETMAETMAETMAETGB+Ahag52dW8w6Jz1cDcASA3R12oyZul20CJmACJrAGAgq/8UsA2wH4BQDNUwZnAiZgAiZgAiYQS6Bcmy9dp0eePFKox8gyRYJlq/xF6NSs2yL18T0mYAImYAJBBCxAB4EMKEZhN64B4C0A9gCgxX9A8S7CBEzABEzABOYiwDmIdsKH84YoF6pNFpVzPdw/NgETMAETMIERE5BQq/U459wagvCaEOrZUc+N3KS2vTHiwe+mmYAJTJOABeh+9Lsm66tn8XlPi8/96BjXwgRMwARM4N+xn4/LHKIWqcZqAiZgAiZgAlMjINGZ7abgvPS6Qg67uHbxT95zFQDrA6DD0kZ5M3hRdgyr9QcAPN30p1xIhNirMlhHnua9IYANVmjncnXn/f8A8HsAvwXw50Ub6PtMwARMwAT6ScACdPf9IvF5EwCHA9ir2P12/3TfP66BCZiACUyRgLydzwJwVwDn2vt5isPAbTYBEzABE2hIoFzPlZu46wC4KoCNs6i8BYCbpvUgT8NeN4vO6+XQV8wFRHGaZfG+JhfrcBGAs5NQfFh65vHF2nORTeZSvN48idtPBnCv3C7WeZ6LiY8vzuL4oQBOKcT2Reo2z7P9WxMwARMwgcoELHBWBrxK8RKfN0w7xK9Lk+0j7fncbYf46SZgAiZgAv8mQA8pejEdlBamL8mLUy/+PDhMwARMwARMYHUCK4nO10wnim4CgGLzzQDcJv83vZspLPNPm+vzC1JTDkhi9+vzGnQRT2jds1UWtO+4Op6ZfnEegP0Tq2MsQs/Eyz8yARMwgd4TaHOC6z2MliuoyfqKaYf4jQAeZc/nlnvAjzMBEzABE1iJAI8GU4TeFcDHnXzQA8UETMAETMAEZiKwVMS9MoAdkjfvrQHcNp8qYhiNlS5u9io8R821Op/DjeZ/pVNOTwRw1AKbzWorPblPBrB1th3YtiZ1Z/vpPU0Rmg5azEWxiDg+U4f5RyZgAiZgAu0QaDIxtFPDcT5Fns8Un9+UJ1Z5lrlPxtnnbpUJmIAJDIWAvJ9Py8kH/2YBeihd53qaQCcEyri2kRWgbeyTF5FEXVZNAmUCPr4T1wfwQAB3B3BnABSil14a4+X6r821oBLe/zptNt8JwDlzCr0ShZ+UHarIoKn4LEayRf4HwHYAzq/ZeS7bBEzABEygPoE2J7j6rRnGE2ScMLkEYz7T81mT/zBa4FqagAmYgAmMmYAWfc8G8OrshcS4jL5MwARMYCmBUnSrQYflW4iuQdZlRhHgeprjlHMnvXbp6UyP4nsA+O/iIfx7bdb0cQ3OPEQnzSlAq3kfArBLhTWtvMHvkE5kfWvBukX1s8sxARMwARNoSKCPk1/DJvX69lJ8fhuARxRxNntdcVfOBEzABExgEgSUfPAPAO6dF3xaWE8CgBtpAiYwMwF5P1J0uyWAa+fEaevOXMJlf8jyGA6Apy7+BOD7AP64YFm+zQTaIFBuwDCB4NMAPAwAYzrz4pyqTd0+r7tZz33zydx5uZEBT0xtk9sb3U7W7cEA3mcBet6u8e9NwARMoF8EoieIfrWuX7WRkU7PZ4nPDrvRrz5ybUzABExg6gR0IudEAHs79MbUh4PbbwIrEpBdyzADrwCwPYBNgnl9PselfZeTkAWTdXFNCciTmXPmBgCeAOBxObmghGdt6A5lvf2UnERwXja1BWjWhyeGGaPacaDn7R3/3gRMwAR6RGAoE2KPkC1UFe2Or5XFZyZT4HFmeoz4MgETMAETMIE+Ebg4exvpKK6SIfWpjq6LCZhAdwQkAl0PwEcAbJmrolA9TdcXSo4mj+hXJbv5hRahu+twP/kyBEoRlLGdX5m9f/kjeTsPEVmfBWiunY+2AD3EYeU6m4AJmMClBJoaiGa5OgGJzxSb6fnMHVyLz6tz8y9MwARMwATaJaBTOT/KMSwd97ld/mN92tKYp1FJ5UoblpskUeWOtR8i20XblnbtBwHsBICbVvxvJSCLeJZCF8hZYw8AJ/tURgRal9GAgL47/5WTyB8AYLMsPCsWdIPiO73VAnSn+P1wEzABExg/AQvQdftYO+T0fObu+NNzcoZa2cLrtsalm4AJmIAJjJmAwm+8NDWSi2ofdR1zb9dvWxfjp4tn1ifZryfIsYLCM09JrJfF/0jxuWyxvks/Tc+7RY4R3S8irs1UCCghJjdF6JXPeM96H2qN/zbZWoBuk7afZQImYAITJGABul6nryQ+j8FAqUfNJZuACZiACXRBQN6jvwewdQrB8TN7GnbRDaN5ZikE3xjAjgBuDuCKAOg52NRbWeUzWd2ZKWHm19MzvppPmFmErjuM2H8MM/DcHPtZAnHdp17iZX1HAN/x5lht1C5/GQL6rnAd94aUHJNi7dhy+ViA9tA3ARMwAROoSsACdB28MlLoFXJQ9nwem5FSh5xLNQETMAET6IKARKS3ZK8uxX1uKhR20RY/s1sCsoE2BfAcAPcFcO0kVq5TqVoUQ7lx8q20aXIggG/kzROOXY/feOgSoF8O4HktxrylAP2AFB7oFAvQ8Z3qEtdIoEwk/9qRis8EYAHaL4IJmIAJmEBVAhag4/GKKcNucCH07GIBZO/neN4u0QRMwARMoBkBiXR/zwLPqQA4h/2rWbG+e4IEJNTQ6/koAEzQpatWMsvStvp1FlEsUtYbfBKgGVqOGwxt5TXh92jvHHdaYQ/qtdIlm8AlBBQ2kXPiIQD2HXE4RQvQHvUmYAImYAJVCViAjsUrnlzM75/jPq+dBWizjmXt0kzABEzABGIIcM7iHHUigIcmr8aL7DkaA3ZipUh8vkZOurxbi0JNmbDuFwD47O87jEyVEdgHAdphVqp0rQtdhoDGO4XnQ1v8pnXRGRagu6DuZ5qACZjAhAhYFI3rbO2Q08PnyQB4NHEDi89xgF2SCZiACZhANQL0LuTG6WE5Ri/DGvgygXkJ0DOV4+g1Wahp++SXvHGPA/DodArtH/M2wL9flYAF6FUR+QcjIaCNjp0BHA1gk9yusa6fLUCPZOC6GSZgAibQVwJjnUDb5l2Kz0/Kns9X7mjx1Xbb/TwTMAETMIHhElDs5+8B2AnAb4fbFNe8QwIKibAZgI8CuFXegG9bgCYCeUMzYR3jQttbNnZgWICO5enS+klA3zSKzp9KscdvPfJ1Hb+bT82b0PP2CFmdBmCbio5Xj8ybAP6ez9s7/r0JmIAJ9IiABeiYzpAx/ricGXndihNwTI1digmYgAmYwNQJKPYzk3s9P53aeZ3FuqkPiYXbL1HgEQDemhMOKrTLwoUueKOe+8acBJre/BYtFoS5zG0WoONYuqR+EihDKvJUEJ2LeLqCY3+Ma2d9M3cB8JEFvpcWoPs5jl0rEzABE+gdgTFOom1DliF+fwCHA9h45DvkbfP180zABEzABOoQkPfzGQC2y97PtAtqJYur0wqX2jUBibtXAHA8gD0AUPSlfdTFpXHNWNB3zePaSeviesICdBxLl9RPAmXojfcWIRW7ONFRm5C+l98FsH3ygj7PAnRt5C7fBEzABKZLwAJ0s77XgmavnHDH4nMznr7bBEzABEygHQLyeOI/D07J2g7MHl7yim6nFn7KGAhIrOEmxnsAMAyHRI0u2/dPAE8D8HYnIwztBgvQoThdWE8JXBXAuwDcp+MNNeLhvFzOzZHzNN/nvwLYB8DHFhCfWT97QPd0ELtaJmACJtA3AhagF+8RGeAUn49KCXeu5LAbi8P0nSZgAiZgAq0S0AL2NwB47PbbTj7YKv8xPUwCNJMvP68n4rM8sE8G8AAATLLpMBwxo84CdAxHl9JPAhRTOT9yffe+jk9ycCOP362ap0n+AmC/LLbr3Z63ZyxAz0vMvzcBEzCBiRKwAL1Yx/OYKWOB0Th5Zz6a1Qdvn8Va47tMwARMwASmRkAe0G8C8OwkHF6UAUR6Vk2N6RTbK1H3ulnA2LYnArRssrOzZ9+XLUCHDU8L0GEoXVDPCOhkK0+0MpzQDh04F/HbxXm4FJ255vwzgL/nufrChtz43b4ghUti8mHGuP5hw++jBeiGHeLbTcAETGAqBCxAz9/TWmztCeAdADbswdGs+VvhO0zABEzABKZOgN7PD0xxH7/oEAVTHwoLt19i5ENz8sH1epSkS5ssByQx52WObb5wHy+90QJ0GEoX1DMC8n5mOAqebl27pQ01hdgoY0yfBeAraY7+CYCfA/hlSob4+5RY9W8ptNCfMrdF1/G8j6dCdDU9HWIBumcD2dUxARMwgb4SWHTi6mt7atdLO+NMOEjx+cod7IzXbqPLNwETMAETGDcBhSeg9/PT8yaqPZ/H3ec1Wicbci0Ar0/iyJN6ZhNJgKaI8xAATErYVGipwXFoZVqAHlqPub6zENC3YR0ATDzIZKptnG4tn8GTSKfmWPo/yuLzLHVf5Ddc0yrpcNP53wL0Ij3ge0zABExgggQsQM/e6RKfGUvwcAAbtWSYzF5D/9IETMAETMAE1kxA4vOvAHAz9esW5TxkFiQgIXIrAKekZH/XyuX0zbakwEMx6YP29F+wpy97mwXoEIwupGcEJEDfKQvQ129hnadNMn6jKDy/IudjUIgNxX8ukxA2FYuFPaoclmcBumeD2dUxARMwgb4S6Nsioc+cOFEz7MZbAWzSglHSVxaulwmYgAmYwHAJyNuKG6n0WLVH6HD7suua67j4/ikR82tyZSSodF23pc+nt/9zAUjYiRRf+tbW2vWxAF2bsMvvkgBD9rwgx2CuuU7WXPw7AK9Oa8s3A7g4N1zf1lJ47pLJas+2AL0aIf+9CZiACZjAvwnUnFjHgliezzvnsBub9uyI6Vg4ux0mYAImYAJ1CXDBy3n/DwDumRMQaY6r+2SXPjYCGjc8DfZhAHft6ca8RB7GO793HvMSUMfWJ221xwJ0W6T9nLYIaCP2Ktn7mWu+muE3VPY5AJ6aT5BoTT7EzTEL0G2NVD/HBEzABAZOwAL0mjtQRvaO2fP5v51wcOAj3tU3ARMwgekSkHeqYj//nz2gpzsYGrZcybruDuADPQ5LpjHPsc5454fldlMA8rUYAdnGhwB4NgCyvcJiRc11F5/DsEEnO5TKXNz849UJSIDePicfvE5FZyN9k7gpxlNICg00FG/n5WhagF59jPkXJmACJmAC9oBe4xiQMUIvsSMAWHz2K2MCJmACJjBUAlr0ngWA3l1nWHwealf2qt60jx6Ta9RXpwZ5G34WwO4AzreA2WgMyfv9WQBeVdlTlBWVRyjDE2wL4Gv+djXqP998eQLaVNkXwKEVxWeNZ36TXgjglflbNGTxmW2yAO23ygRMwARMYCYCfV0szFT5ij+SIbJDSqrz9iw+1zyKVbEpLtoETMAETMAE/nOc+GkA6AHt0BseFIsS0Ab9dQF8EsCNKws2i9ZT98l+Y+iZvQF8If/FEI+6N2URcb++HXfJ4VcYhoUsFbc24hllGeq/bwHYBsDfox/g8iZNQGvhtXMcZm6o1YplryTAHwWwD4ALRvItsgA96VfIjTcBEzCB2QlYgL48KxnWtwJwfF5YyWCYnax/aQImYAImYAL9IKAj8l/PHqDnjmTR2w+606tF6S1ID9i1en6irhSa3whgv+l1WWiLtQFBe5nhMHbN4elqCdB63sMBHGPv59C+dGGXbsZunscXN1ZqCNAq87wcSoYnMsaSBNgCtN8kEzABEzCBmQhYgL4sJonPNwBwXPLs2CofLSQns5ppSPlHJmACJmACPSPATVTOYfsDoABn7+eeddDAqsPxQxH62OxRPIQTYqrjDwDcD8CZIxJ/uhg+Es62BPDuFMf2NhUrcWEOi3AAgH9586wi6WkWzfjl3KTdOm+oXLWyAP0eAI8FcFH+Bo0hHr0F6Gm+O261CZiACcxNwKLqpci0IL9h9nymMT2ERdXcne4bTMAETMAEJkNA8xjDDuyS49+y8Q4/MJkhENpQeT/TS/CElCNjs0piTWili8IYR1jJCNWWWs8ae7kSoa8P4Kk5tvwmeYOLbBe9WC4FwX8C+EpOCvfx7GU9Fo/RRdn4vngCEqD3AHBisTFVY43Mefc+AD42so1gC9Dx49IlmoAJmMAoCdSYXIcISuIz4xnyOOFtW8zqPURerrMJmIAJmMAwCCi50b1zvF4LOMPot77WUvbSS9Mm/YuzKNhEbGyzndqMoef2I3Pdx+B92CbDpc8qT1Mwhu4WKcY8PUjXbVApfqOYKPIXABQuiMX529UAqm9dkYDWws8F8PL8q+gQHCrvqwD2BPDbkY1nC9B+wUzABEzABGYiYAH60qPIm2bx+Y4Wn2caO/6RCZiACZhAvwlIcGPCo/uObMHbb/LjrJ3ERgqMHwFwp4GdFJMI9PsiGaG9oJuP1drCMMedNtKa19YlmMClBDR2uWHyZgCPLk4HRa6RlUvoJSlm/sH5uzmmU0gWoP1WmYAJmIAJzEQgcnKd6YE9+5EWU9cE8P4c/8thN3rWSa6OCZiACZjA3AQ4l3GOPzuLz4x9y/+2x+fcKH1DJiAhcMd8hDzaS1CgJcxE26gSMdmO5wE4JB+DpzjkK4aA+qxp32kMjEmkiyHsUiIJlJtqDCm0XYVNNY1hhpXZHcCpIwu/wf6wAB05Kl2WCZiACYyYQFMDcchoZHQwXt1JALax5/OQu9N1NwETMAETKAjI4+rA5NFFryt7enp4RBF4L4B9Bhb7WW3Xxsz3U3zhe+UQD07KGTUyXI4JDItAGYLxtJRQc/MKArQcm34IgHGmzxjhaSQL0MMa966tCZiACXRGYKoCtLx4rgTgSAB75ViA/P9TZdLZIPSDTcAETMAEQglowfsdADsB+EMu3d7PoZgnWRiTDp5eOfngRdkh4IoVCMtr+185ad6nR+iNWAGbizSBURIoE9AzPjPDC0WfhOW3Zq180vahAPjfvMbk3W8BepSvhxtlAiZgAvEEpiq2qt0vS4bACyw+xw8sl2gCJmACJtAJAS1q/wmAi12e8LGHZyddMaqHyoP+WQBeVcn7WcLPKQB+BoDPkid/JEyJ0O8A8NjIgl2WCZjAoAhobtwKADejNqzwbZMA/SYATxvpaSQL0IMa9q6sCZiACXRHYGoCNNurhBPPSf/OLO7clZ4ah+5GnJ9sAiZgAiZQk4DEtXcDeLjF55qoJ1U2BQb++WzFfBmK0fwUAF8CQI9EekFHx5pWeYyPzvBr/zvCI/GTGpxurAksSEACNMPxcLOWJ2OjvzfaWHt2+p692gL0gj0FPBLA0f5WL8zPN5qACZhALwhMSXiV+ExD4AEA3pkXNtFHrXrRsa6ECZiACZjA5AhoPjszJztizEltuk4OhhscRkDezxRrP5pFmmjbSaIPw8XcIYvCXwZwlwpH4gWGbXhG8no8dKSiUNgAcEEmMFICmh/3TPGfuWm7frAAre8avzWPAXDUSL819oAe6QviZpmACZhANIEpCdDa5eZi5l0AblBxURPdTy7PBEzABEzABNZEQKE3GD+Xx3zfbu9nD5ggAhKgXwmAp8dqhsU4Lic4ZNX3BfC6PI6DmvKfYiSg06N7h6LwMcVljWbm8kxgbAQkQD8KwFsArFNJgP57Sj74IAAfGum8bAF6bG+G22MCJmAClQhMRYCWgcHsxu/L3jXR3juVusjFmoAJmIAJmMCqBMrQG09O8XO54OVlQW1VdP7BGgjIfmLywQ8nAeW2FQRojV3+c2cAn8jjlgnBfgzgasGiUPle/AnArgC+AuAKOfmhB4QJmMA0COj7tj+AQ3JYxsgQHOXJjvsB4KmOMeZksAA9jffFrTQBEzCBxgSmIECrjYzr9WYAD6uwkGncES7ABEzABEzABBYkoA3VM3KIqe+MdJG7IB7f1oCAxJJ9AByb7Sf+v8hL45chYxiL9TfF+KVHNMOmRYpCqruSgx2Yyn+JBejILnVZJjAoAozPfHD+BkR+a/RtY7z5HfOGmgXoxYaGY0Avxs13mYAJmECvCIxdgC7jPr8gLWi4yOAVvXjqVae6MiZgAiZgApMhoMRt/wCwX85v4LjPk+n+Vhq6LoDDU1zmR1TyfmYjOGZfnEUgNYriDb0GT8x2W6QwxGcwlAjtwe8BuDeA33rjppXx5IeYQN8I1Bagfw7gHgB+OdK8DPaA7tuIdn1MwARMoKcEpiBAc8GyG4AjAWzsuM89HYmulgmYgAmYwCIE5GHFxLpPAcAY0LwcemMRmr6nJKCNjC0AfDMl69uwgieyROW/JSF4DwCfyV6IHNf8c/UUNu3UFP5jq0r2m+JZU+g+xQK0XwATmCSBNgTo7QD8ygL0wuPLHtALo/ONJmACJtAfAmMWoLVwuj6Aj6XYzzeutHjpT2+6JiZgAiZgAlMiIPH5awD2BnCOBbQpdX/1tuoUGT3rX1vpaRKgP5jEGSYC+0sWufn/dVT9RfkEG8e76hRVHQnQTEDG5J38b18mYALTImABull/2wO6GT/fbQImYAKTITBWAVrtWivHLNyzUtzCyQwUN9QETMAETKCXBOjxvDuAj4/Us6qX0CdQKW3irwfgc5WTN/8TAJOAvRXAfxUisJICbpPDcGySudewXf8A4PYjPiI/gSHrJprAwgQsQC+M7t83WoBuxs93m4AJmMBkCNQw4ruGxzZxIqQXyzMBvDp7Pkd7zXTdTj/fBEzABExgmgQU95mtf26e58aY2GiavduPVkuA3hXAuwFcpWL4jR/k8Btn5qYrfIxs1HUAHA+AdZHXfw1KzwDwOm/k1EDrMk2g1wQsQDfrHgvQzfj5bhMwAROYDIExCtBahN8JAI90Xs3ez5MZz26oCZiACUyBgES4d+WwAecvEe6mwMBtrEegTGLJ2OIMjaGEfZF2o8JvUOBmgsPl4pbLI/pZOQwHxWhekfVQaI8vAtjRcdTrDSyXbAI9JWABulnHWIBuxs93m4AJmMBkCEQa8H2ApvbwyOiHAGxfwWOnD+10HUzABEzABKZJQOIzvUZ3AHCuPTanORAqtlq2FHNofADArbIATTE46tI4Pg/AgwF8YoVxLDH82vk3N6tg10kI/zMAJiP8Qq4L6+jLBExg/AQsQDfrYwvQzfj5bhMwAROYDIGxCdDylDkYwPMrH9WczCBxQ03ABEzABHpBQEIZ49XulYUyh97oRdeMqhISfZ8AgMn5NO4ibUYl//sqgPsAoPi72lg+CsDDM+nIurBIeXgfCuDpM9RlVB3uxpjAxAlYgG42ACxAN+Pnu03ABExgMgSiDfguwUl83hbAKSmO3wYOvdFld/jZJmACJmACgQQU95lCGcMVvNciWSBdF7WUAG2oIwA8oOJmPscynQVem5+xXAgO1oviBv9uNwDHALhShTpJEP8GACauPscnC/xSmMBkCFiAbtbVFqCb8fPdJmACJjAZAmMRoNWO9QGclGP4aTExmc50Q03ABEzABEZJQOIzF3mvSN6aL8qCXJmMcJQNd6NaJyAvZIZ3oT1FITr6UviN3wPYKQnL3wYgJ4LlniWP7I1TOJCTAWxTQYDmcxVy47EAjvQGT3S3uzwT6C0BC9DNusYCdDN+Xd69VAuaRxtaumm80iZyl+3zs03ABHpGYJ6PTM+qfpnqaHGyb8rU/vpKx0X73H7XzQRMwARMYLwEtKFK8W2fnCStTBQ33pa7ZW0T4LiimPCC5AH80koPV0iPYwE8GcBfV/E2lq3K+xge4zXF7yPtWAnjTIrIel1Qqf0u1gRMoF8ELEA36w8L0M34tXW35kv9MzrPActdaptalG6rd/0cExgIgUjDvasm60N3+5x48JoVEtR01TY/1wRMwARMYNoEJIp9B8DuAH5pz8xpD4iKrZf3MxP+cbNjq4qhzDiuuZny/hnHszyk75jq9WEAV6to6/0WwC7pz//MWLeKXeKiTcAEWiBgAboZZAvQzfhF313qO9JJVhKC1wbAP1co/qyVK7SSTvR/OW8CnSMuLv6sJGgvFaYtSkf3uMszgQERGLoArfpz4mM8zPtXOpY5oC51VU3ABEzABEZCQJ7PPwDwQAA/tCA2kp7tZzMUa5kxkBlred0KIq8WntxQ4Zg+Y8ZYy1pEMyTImwE8tELdyl6hIMXY1KqvF8yzj1mJDbPfcflfDjW80NDb3uQ4/mr9vWifRjBdrW7PSuLbQVmA0wmN1e6Z5e+1gfzzlDT4HgDOnvF7N0vZffoNNwg/ncMjRfIr2/hIAEePlF9EXy59T5aKwVdMc+cmOazW1QFslEJNXRcAHff0/6+c/35DABShlxOUaSf8LZ8QuhDAeQAYTovJsfnvvwbwx/wb/jf//GtJA1kGrynPr2KwaN8v+j1d9HlDuG/RucIsL9+7i7IsS1rxhMXQBWh56+wBgNnR+XHV8dEhvCiuowmYgAmYgAksR0AL1/mtS4IAACAASURBVN9lz+ev5wXBUkPe9EwggoAEXorO3NC/X6UNfY3rVwOgyDvPJZvvYdnma7qAW+7ZEk++DIC2JRfWeu48dZ3ib8tQKRHtHxr3yPZHlrVaXyy3Fqyx4bJImxa5Z7X2Lvf3+6U1JL9J9AKNFFD1vTsTwF2ySLdI/YZwz2eyyK42R9fZAvTyRFd6RygybwHghllovn7x7zzlxE2DWtffAfwGwM8AcPOFf3h6j//8UfaY1rPL70+N706tNi5abuQ3bWm4k0XrNPT7IphGlDF0juU7GfEurjg+hyxAq1H8iPI45q3zcZCaH9SxDCy3wwRMwARMoL8EtID7E4AnADjBIlh/O2skNZPYd/MczmzzCgJ0uanC8BufW9Cb7b8BME7z1hXryAU0PbQ/4ndvphFeLjSuB+DOKSfLVbJdPstag4sdjcH/TckpvzawGNxl+++Q1ySLLODOAfAtAOdm6tECQ+nVtKb4rzySf63sHble9opkf65TeC3OMjD4PHpA8sTDWXO2qWz7bdM8yG8TN8giLz7johxyhyGuuIasIUCTAXMUcUO5xsZZJJNFyvongBemzcsbLXLzjPdYgL4UlMZQ+Q7z/3Fu3C5vdnAOpwB9nRn4lt+qWb9b856WYF154unHWZj+CoAv5e9DWUWdxJq1HjM0rzc/Kb9pN8n9xE0vspllnuRvGP6E31Mmby7nzd40suWKlEw5Z1EP3DR/Z9c0hsSS32SyZOg1XtFzbss4Gj2ubDtPQ9wts9TG7CyFa05lCDue3l2W6SyDfZaHdfEb1p0fqRennbTn538f46TeBVs/0wRMwARMoBsCEukogD0nxbo9zAJYNx0x0afSpuKfGpv5XDjRkKWou9eCyTRlIL8KAI/NK0xNZHdpMcjj3o/LC74pL0pWYys29Lh7RdpY2DYLl4uIlVww8ng3QxUw2eR7BrAolHB+zzSmnwfgpvlI+2rclv492/6PLD7zFMIbAPwlaEHMOqqeEq3Ybzw5yuP2WwK4ZeJ9AwAURvj/rgRg/fzOsi8pSkugnbVtfAaP6fNI/oeSYPKS3KbVvNvLmO/8Ht0mhwzg9yP6kihfew1J7mM96q01eU1dwQL0Je8wGXPe48V3kgLzNknYfQCAGwOgY175nnDMaU5T/9TsJ72f5Vjnvy+1Kc7P4Tq+D+Ck1IbPLjkhwDawnWMRojVP8hv7XACcL2YRSsvvnfqeG1rfzd/TbwTNEdHf1TbK0zxC4fkZeSOR4WQ4d61ms/Hv+V5wrcXwMdwMORAAN8BXm5/aaFvbzxAvflNox+ydN6FpI2hTaJY6Sdgn0+PyeoI2wGX6o40P0CyVnfc3agS9DD6QAUXuWM9bH//eBEzABEzABJoSkPhMEYLiM2Pdap4eixHelJHvr0eAno4fzR5U0ceoy1iPXHzxuPsiY1v37JjjgV4j2GORdCVqfw/AfbMYOsUFySwjrRSfKZpuP8tNM/6GGxYvSl6vr5xhMTljkeE/U/t3y175jFEedZ2YT8BQbFhtMb3SMyUMSrDi7+gZeQsAd88eePQsVgjDqLqvVM4n0/v0aAD09F6pTfr/9Eh++4Jifu12uPz2CUxZgF76HnOzj6Iz8zXsnE8olD3Cb2dbGyuzjgQJ0hLDlwrS/CZwDuFGFU+BULTipc2oWZ/Tx9/pm8YwPNzYZliUiIteu/umDUTOFXrGVNYKai83TsmUm5RNr6+muekxOUzMonNu0zp0cb/sam40c859SGAleIKXjhzcTP+PHT1EAVp15kKJx5nYKIvPgSPFRZmACZiACbROQIIfvf8o0B2+oEDXesX9wMETkFFYU/DR+P4FAIrHjA25iIGvexgOgItVLr5reEHTrrw4exgdMvgertMA2eMUL4/MHjMSPpp6k3K8UHjg0X7G/O5jGCK9N0zixYUrj7+z/fJSXJS61jTky7FHr2GOxVmFBQlP5fF8etrtlI/U8og+48Eud0kkKtdVEWtF1Z1sjk0e0U8B8Ndl2qT3m6EcGFOY3px8v9WmRZmudl9EG1d7xqz9t1o5ff372gynKEAv3fikcMkEvLvkUAPlWChPNtTui4gxWHpIl/MF85zw3aeDIT0o6SnNa5EN64h6RpVBr9wP5jjpTb9pYicRn2OCp4WmslGudtLjnxsWnC+aMC150qOc3xrGKl/ERo0aL22Wo3YekO0NnZpoYseVdszT84kutunf36khfKCWdoAg8agJDV4K0UNtS5uDy88yARMwARPoJ4FSfGZitrdNyPDpZ49Mp1blou6IdCT2sZU29SW+HA+A8Z9lty0iysgOfFLy/HpdEZc20qbVO0mPcMaCvsDv5OVeCnmmMT4vk6RKeI3qBy1gGCtUCSFZ9ppiF7f55moR/MwcekRhLiLqoAUxY0HvmjzxvzmjJ+DS+KmMx/3kXAYX67rkEd1ULJ+3rew7xlx++AqbChpT9HpniJ3awvO89ffvuyMwJQF6qcczw2zQ05Uez9zo4qXvYBORqLvevPyTJXqVntGnp82yd+XTJRKih+YRrXniXilcyjvzqf0o3YrfcZbPkFUM6cEY22MXoWVfMDzUa1Ps5scHOiEoTBydGx4BgJshYxeh1T6GhmHcZsZ+jrLhdNqBMbbpLEJ75t/jM+oBbX3AVF96vpyc48xFHxNtqy1+jgmYgAmYgAlIZKFxTSGDIuDQPT3cq8MhoMUcj+TzGKeOhtayDxmi4bSMZxHxmbdKZKO49oUcAzPaFtR7yTh2XIicOoGF3byjVgtdeihTJIj2RNf4YJKg++cYjX0RH/R+kAE9z7hJocXrvByX+73GH5kyEe07Zhh/pfDA5GP75c2eqxbvmwSLrkQrteulqU70tloqlrB/+S6fkkXz6Pc6om9cRjcEpiJAl+8ETwBwA4nf2M0ydp2y6Oodrt37/EaU3yn+N+NEvyl/a3kqZkgiq+pKoZRx/RnmIPLSvKP3Y0hsFuEgwfROKdnxJ4p4zxE2qwRThoOho8SXJyRAMzQW7YzIS/M3w28wMfVPhixA80P0KABvzMkxonaRIoG7LBMwARMwARNYjYAW45yc6fnM2FsWn1ej5r+PJCBBj+HM6HnPKzqsWekFwfAbTEjWxKtE966b68zFeXSdSw70xnxhFsYWFc0j+6wvZakfnpoX1gqbEVU/9SmTBFHgZfJKJqbigrvrS23fOCUdpFf/DpUEaDJgws0XFEeMl47Bcs5gqA2+yzzJwMRMGsflcdgu2anuzG9Aj07Vq/wnQ7p8PIcLsQDdZW/169ljF6Dl7c8xz3ANDIlFp4RbLXmPxyo8Lx1tOgWi9vK7z2SF/HYwYRyvIYitsrG4kUgBmkneIu0VifWMCsDNCp4wGfOl+Y6xmumwE33pZAHn3D7nn4hqt2wZbfpybEZ9YzTOf5Nj1p81RAFagOjx8v7kjcIEhJEvcFRHuhwTMAETMAETWI2AFtY0HvfP3h1NRLnVnue/N4GlBDTeeOSORw6ZcK+G4CPP2Odng16iWJMeUd0p/DGxWYT3y3ILYJbL8AcUQP9jPDep+IjuLQVoOoXU8IDmMxj+hN5IfRSg6V1MAZqe/ZHtL9c3h+aktIwDvXSOKAWY++SNTCYn46WNnxrvxqLDWO3ieKGH9nICNL9HPHFwt0rfo0Xr7vu6JTBmAbp8j6lv0CGBYYfK971P73HbI0EbV2TAEzHcLH9FFlv77rShPmTS16Ny/P1I/UplMb/GXVNICiYmHOtaQu1iJASGM2FImkiWHNeaxzmvU+Qec/g1fXcY4oenCRneJ3INoLKYI4Mbar8fogCtI5dcqPOjs1alBUfbH1U/zwRMwARMYFoEZDDRo4MJpjin6bKH5bTGQpetlfG5VQpp9rnsdRVtzKu8PwOgQEZDNMJrSQsRenwyWdEdM8jIRXr5nvLk3TFBde+yzyOfbQEaaEOAZsL15ywTj1Lv0YbZU5IedqxPn2PDziJA0/vzYxagI1/VUZQ1VgFa31HqGjy9wIRdm2dhLdIbceiDYKlHNDepXpaSq36t5ycH1b/8Nn84hyKItrPUt4wz/akRC9Ca87bM7WQC4EjBlBzVNwzD8RAAnx85T7aXm10Mo8bTR5FjU2UxtAdPyjF8zr/fh0hDveaHTccXOOC40GCMwkhANevusk3ABEzABEygFJg599Kb7aB0HO/lhadaX5JrubemRYBHWnl0s/QyiiKg+IQnJA9iZmpnUpeoca4jy/QW4yZOjYWIBADankycRm+YCAE9im+X5ViA7k6A1hjkqdDXANgrD4Q+ej2XY9QCdJdv7LCfPUYBWu8x4zs/LyWTYxzW9Xp6eqEvo6f8xv0yzccHJs/No4v5P8q+qNFebmJT1Iy2VVRXblY+o7DlarShyzJlc9AzmXYr42nX1AO5qUtv+7HafGoXbQiOmxp5LNg/dODgO/qfHB5DEKDLmEj8yLyo4ovb5UvlZ5uACZiACYybgAQ+TvIUzDinyVi25/O4+75vrZMhv0H2ILppBUO+9FiiwP2W4Bi+Mp7vAuCD2fsz2mNMixseHeRzHIbj0pFsAbobAZrjnseEmWiQXks8dl1j86jGN8sCdA2q0yhzbAK05q+bA2CYHYaT4lVTUBvTSJGIS69KxslnWJ/zeioWaq58ULaDGEIisp/F4vTksbsdAOZNGFsYDrWHGzQMj7FLRT1Q8ynz8vBEwph5Xg0AHUQYIqaGAE3bmeE3ePrxPzk8hiBA6wNNQ4uZ05kRNnqBMaYPsttiAiZgAibQTwIyEmkoM5yUPDksPvezv8ZcK3oicPwxht67s9dVdHs13n+VF0WMUUi7M8pDSTbs+gDek43cSAO6FAMo+DEpzSEjXNgt2u8WoNsXoOVBdN085rfOi0b+/yGs6SxAL/q2+b4xCdDSNhg7nuLpbe31vNAAL+PuH5fFQsZA7pvHqurDGLufSDk3bhQsnsrW+gOAXbNTQd8YLNTBxU2yN7hhc3KOhlDLk1zzFG1W8vxBD8dUU54aHxSe6cARvSmidS3LZlLkyyQfH4KxogHHOD/MQh65Y9S083y/CZiACZiACcxCQHMXjWR6gzImbqQYN0sd/BsTEAEZn/R84PH9Goa8yqSX5iPK43eB3SBBjuW/NWeYj7Zt9e5+C8CdchiRwCYMtigL0O0K0Nxc4VhkwiDOI/TIr/He1hyQFqBr0h132WMQoMtT3Yy7yjACzGMwtPe4TyOtDMnBUFlPS4LXr3smGMreYnx72lw7VehznTg7IMfGHpsHtMbcEwG8tpLThJ6heYoh4x6W59uxCfpqD3nydGJkEuXSeYMh8l699H2MNtKjP0iq37UAfCMtLhhsnFff6x3NweWZgAmYgAkMl0ApPjPJzPn2ohxuZ46g5hJtmU/j0wDoTVlrc5+xzulB8snMLdrbX/Yg7cMv5eRNtRbzf82LkQ/1bHHb1ZC0AN2eAM34sBcB4HqI4vPdKiwY2xhHFqDboDzOZ4xBgNbcy1AMjC1LQbLWfDXOUbByq8SRp+XpcclwWf+JOdsDGLJVGFeYIVfWDra7dPrrJAAPyPPDGEXoYwHw/an93shWpQPFk1Ii4AtHtG7TuLhyFp+j45JrnudGEHOnfGYpu74LuVLneeSRCnqtBVIPvkuuggmYgAmYwAgJyEh6HwDuNFPE6pNRPELkbtIqBBSHjaLWwdmQ55iMvGSv/RDA7XL268jyy7La8OZWe44A8HgL0P/GbwG6HQH6DXkNxLmE2eS5oKNn1lq1XqiK5c4qQH88x7auLTJUbKqLDiYwdAFa89Q+adP3SADrtiCiBXdB74uTF+cX86mrn/dINJTdf2sAH8tOlZHfN7X9OwDuD+BnPWp704EjW+MmOfTUVi1oguqb/wXAUDkcS2Pxgi55fgEA40BHaqxix3mc37u/DEmA1ovKeDmfzx46kS9q05fB95uACZiACZjAmghozmK8MmY3Z9gNi88eM10SkAG9YYo7SU9expCNPnrH9mnsM3H0QZUXQjKmGZLgy5Xgqj0/SifydgbwyxEtRhZFZgG6rgAtkZ/ecs/MoZtemRLYrpPfp747ES03rmYRoNk+Lly3tUC36Ks5yvuGKkCXYTcY7uqodCT9ij3PZzXLSaU+fn8UhoJ2Dj2hH5w2jPsSE1q21yZ5A+K++S2N5Eg7hafOGOaPmxxj8YDWuombr4fn8BuRguma5iomIKTXOvOMjO26HwCGrYm+1De0XZjv6HJX5KCPrrwG2zPSEZXX2AiJxuvyTMAETMAEKhKQqMcEDFw4KebzLIZ9xWq56IkTkG11xxyygosi/om8NMb/kUMF0COnDc8RHmn9JoAtKyzsWCQXd3yveRyTnqj/yegdCW9AZVmAritAa43GUwr0mDslxYyleFF74V1zCK5JgOZz9Z2gAL2j1341u2JwZQ9VgNacu13e9O1b2A3OaxJu+U++g6udiOLveF8Zf5n39UVX0obxqTkcx29askFWe6nIiOyeCoAnW6IvtftNWfijvTL0S2OK/3x9jvHd1hyo57w3b2YMnSXrL7uNJzAY+5nf1UieGoPn5lMInMsvtxHSlw/F0g5VRemhw4/HnSt56IxhILkNJmACJmAC/SHAiZxGH8Upej4/JhlMf+qJ8dsfSq5JlwRoYzEpCDf4a3g/q8x35/HP2IS8am6+yJ7dNy9SapyYKxe1jLF4wYg8jBYZjxag6wvQDLXxflzyHCauilwoLtLnTe9ZTYDWps7bATwqPyx6g6xpG3x/NwSGKECXR90Zu/a2lebceXqkFJtZv+XeL/6G8zb/8Buki2F/uNG7kkDN36vMrjUm2SGMmf/QzL22HbJaP2iDjZtrXB+st9oNc/69vq9fzfkqzhyBjSJmDL/BubCWg8FyqMXzB8m5gR7rPPk2dK9y1f/q+ZTAzYI3evXenZ5PC/5xufVv1x+Hld4rDTYmrqH3WI2FxJzvtH9uAiZgAiZgAqsS0HzFY01MOHiexedVmfkH7RLYCMD3c0KzGk/WO8Bji0y01IansOzGW2ajmm3kFW3nckFC4ZlJ4L438XfbAnQ9AVrvJccbkx+tPwLxWeIPxw3D8jA8z9KTERpT98zrP3ppSQSIfpdrfPtcZj0CQxOgNbY3A8AcINt0qGeUoSmW9hBFNca5ZaiK3+fTeufkvA389jAEgd49hg6hBzeTlzFuLP8wMSrbeH0AGy8pXM9VGJJ6o+PyJZdtfkn61hzYg/la37fr5RAZ9wgeE/pWss/2TA6cn+hBm5v2uU4Q7JYF6OjkjbPUj7l7ePKNntBDD6Oo7xJDXDFhJd/ZKJ21fOcYaoj5UriBNRgPaA4GDrDPpszpjOmnIyGzDBL/xgRMwARMwAS6IKCd3xPzxEvP56HvlnfB0c+sQ0Bj8WFpscjM3jUuLYDOAMD4coyZ3Eb4DbWNYjcX+4y1WcO7W4Y6EzgyHu+ULwvQ9QXoUogeugCrxSlFLXo305ttpW8D32NuXskLmhwUKiD6ndMas7anNb9HQ/dgX4k920VhpuYYHZIALQ70GGbYAIpX7P+2w1QoVEbpscyEYF8BwORj9JCl+EzBmUfmF7m4OXbNFJbq2gC2yB6qDDfCZHvleKgxH89SX4UKYR/wZEXXAqKYMLQS7YhaXF6QbRSdPKt5Am2WfljkN2LFjUi+RxQ02/6G6nlvzqFTuh4/i3DUPeV69IC8CSzGEd9useIcTwcUnoJcdg0c8bAmIJa7V3Xi7jd3bnyZgAmYgAmYQJ8JlGE3TkiG/BPt+dzn7pps3WQIMrSZjvNHiy4yQBmD8GktL/bkac1ENe8sjhZH2rpaxHHhzqOgTPgz1csCdDsCdNsL7nI8R4kWEp+5eOcGEYWE81dYnGpc8RQDRZR9khi9aWVxc6rv8JDaPSQBWhsrDHN1SJE0NHIuWq3vSq9G5iDhnMWN56/nUAJ/WFIA6yZ7YLX3fqmwXBbFeZhi9A1y2ILdU+JFevzyUrldcGAcaIZR+HZLm+Ir9Y++b/RQPjp7lEd+48WYsXdpC7Gfh+oIo/eI3386pTIMR5S37mrvj/5effMNAHunTdFfdTx+Zq33Shor27NBzinBjaLIDRD1DTe1dkihb85aiVWbH4BZgekloQcZX862B9qs9fTvTMAETMAETIAENE8xpttjLT57UPSQgAz5mwL4TBZ0atlXPK5Iz0WGoWnD+1m49Swudrn4qrlYIbtdcp6SNtvYp6FlAbodAbpGn68kMNVeFzKZ4tMB/GRGUYTvFsPq8F2jqMUQAIybuppANisztpdxaxkH8+YVRW6K7Z/PYQ2UiGzWOvb9d2TIY9YMJ8CQDLWuoQjQmg/umjdbrtOy12YpZlJ4/hyAwwF8K9um6h/221JhcpH3aqkHJedGXdxw4nzMTSSGVb1D/ou2hWiJbNx8Z/4GJkjWplit8bpSuWLOGLzUurauJAJSeGasaQruQ/Xa1btEMZPrqy4SeOp94pihAM0x1EZYuRrjUmOPufXekzyUNw/WWfVe83QT18Kc95a1j2sbGvPCUyVvlb2frxEMZt76+PcmYAImYAImsCYCMmzLhIND9TZwT4+TgGw9GoeMg0ivQl7R3s8StL+cvR/+2QFO2ZH09GKokRoiu8rkaYf7tyyyd4B0xUdagB6eAC3RZZZ3n6IiY4k2uSTw/iLFTf80AB5j/vWM4vPS5yrEQ+T8yrI4h+8P4BUAGDIh0htR3wp6gjHmJuPssh2lSNeEb5/u/VRuY41vLts5BAFamwsMSXEMgO0rzUEr9bvY85+nZI9nnia/KN9Q6j6LiM2zjrfS5tA99GJlXhT2ozyia42V5eopW52Jit/Y4bxdfr/oAU0v5UgvVH2/eDprv7z5sFx/zNqXffjdETmhNevShXapcfrSVAGGrtB7XvMdqsG9tNleVzFsEt9xhflbllEXnbgSUO3EsZPfkI9uRr6QNTrSZZqACZiACUyXAD2nuBNOb8uH2PN5ugOh5y2X0clkI/S44bE7jd2oqmvRQ9HqhSlp2quiCp6zHC0MGMbteAAbBgtKrI4WIxTVyHIMmdHnxPzvn1uAHo4AvZzHId9V5in4aY4Dy6PFTJpLryUKVvxGyFNwkfGhMcJyKMDyOeW4maXMcm04y+8X/c2zUu6hl+f5vIYA/fOUHPXuOdbuonXs83387p6WE+1F8ivb3HcBuhT5Xpy+jxSrOFdoDNfsv/L95lhjvFwK4DyNxKsrwaz0slYd6X3JvqTw2mZCOY1LhuLYOeWo+O6CG2ER/ai5k3FyqXlFcyg3ycmZMXkjN+4iGMxaBtl8LSWlvU0FW27WOognw3DwNA6TdQ715BvXrBT0+Q7W2ADiqQva3/+zpjHXNwGaHwdmU+Wu3e2Cd4RmHWT+nQmYgAmYgAmsRkATN5O58Egfk7gM9Zjbam313w+bgAxlxj9kFm8eY49eFOt9YCIjen0x+SCf0ZWnH9vMd/OOlRYtSoj21OxhNMV33wJ0/wXopR7PTEDGjZNP5kU9xRi+sxSiKTzXvhYVQWqvV5+dxOeDKgvQDFFBkX9RBrX7pkn5/N4yRus2lb63rFvfBWjNs1slDeMjOTFfDYFnaT+Vz+CpHCbHZbgNXn3xfFU9ZBNQVGSYLnqTtnnaXSI0+4d2O4VZXm17smqsMDwLk0H+d7AYKAdOhjpivg9ukg9NMFV9uXFHx4lNKn5bZvn2cYxwM5UhUxhHfag8GWWCyQEZ2iry+6Sy2FfcWOFm9opX7Ql9lg7VbzQhPyYb8+zYWY6IzfMM/9YETMAETMAEmhKQccdQAw/M4vMYF5VNOfn+fhDg2FwneyVTMI0+XVZ6XzGuHI/Zdulxo3eRohKP1cv7K9LmLWNKMr6lxLu2F7JdjjAL0P0VoJcKz0wKxBAJJwH4DoA/5u9AOX7Yn7XiE3cVb3XW94PfioMrC9A8LTFmAdoe0Jc4IXwoCVT3bkksk6DKEwuHJSeIl6WwC9xk6srjeZb3rRTu6ClJb23GX48Uw1aqRzk/UwBnCIwuhETNnRwv3DS4X/B40bj4W0pC+GQAx3YktM8yHlb6jTb1GSqCoUTYpi51QTGlTfn8Jg3r6F6Nc9qrFKDpCR15ySZ+Xt4EW+OaONIYb9IIVZK7G4wZwqMRbXyImtTZ95qACZiACUyPQOn5/OB8dHmK3o/T6/lhtlj21Y2z1yM9bnhF2n/lIphxl5mApItFnXpIz75tThhDD6voY+FayHKxz8UjE4x12eYuRqcF6H4K0OVYPzsdXf4ggCNzMqpynHDe4iVxeEqbJ0vfFwvQzb4gUw/BoW8/HRLemRNlRs+zS3tItugFaQP0GflYPX8zhHmIcwe/P/QoZbJgxoZvK162hDKGCNij400hcnhi3jxo9gZe/m7NAwy38PjowiuXJ9uCMfkZ4pCnR7rWBcWTpwuYTJPjaEiXTj0yNBDD5EXaxCqLoUn4DeRm5KAEaO4O81jE+kPqUdfVBEzABExgEgRkAH0zZ0OmV5nF50l0/WAbKaOTcQApQtW4ZHz+OC/oeOyzy/dChu96AN4B4EGVYnFqIct4n4wfq7AcNRj3sUwL0P0ToDVHMXkghTB6vjFupS59D/rukdz2eLcA3Yz4lAVoeWVeNYcKYBiS2mKZymeMZ4qLzHegd7ursFeLjCCJ5UxQyO8VPcfbiJstm4UhQBh6p4u5W/PnlvkbTXsl8tIYYWicXQMSykbWbbWyZD/eLZ/auXqwYLra85f7+9KrnHolheihnHzVe8ZQLzyleNdgnsopw7G2dw7p1XsBWhVkTMK35Kzlkar8IoPM95iACZiACZhASUBi0xk54eDpA/E0cS9Ol4CMzo1SvLcPANi20sJYNhsXcgdmz5CuF8FawDDOI0U4/ne0banyfpDjLP56QAuSiLfCAnR/BGiORb5zHOfcANo/e46xn/n/uhBYIsZYW2VYgG5GeuoCNN8vxj1lGIwy3nEzqsvfrXmHYZ8YtlQnjoa6yQMEXwAAIABJREFUqSQ75Xq5LfQurS3g67QHnUh2Txvn3+tg7tb8eZUsstLLNzLMhMYJ89Mw3AhDMA3BO15zFtdc9NRlWJnosHFN30uFmejS0WKeNjDcBkXiHXKIIG52RNrD6p83JfH5abOMs8gjmPOAKH+rl2GLFNj7M8lD57rBL+Ci9fJ9JmACJmACJkACMoZ/mg05JjcbiuHhHpwuAdlXdwHwYQAbV1jYyYj9HYCHAvj0LMZnC11Seny8Lycj5GNr2b1M9MPEbrymEsrAAnQ/BOhyIcnjylwA/iy/h+yjoR0VbuHzcLlHWIBuRn2qArS+gdzkPTVt+typwhxb9ow2mvhO0/OZMYzHYItKIGMCRyYxo6dmpEC2ptHN2O8MS/CvZq/AQndr/DwdwGsrCK1iyMSUFE2HIECLyZWyZz/D8vZFgNZakHol45ezrl07W8wy8HQ6QvNcZF4UjTHmfeGGGBOdrzrOahnis8DQb0oD9jXpGCMzo7b10Zmnnv6tCZiACZjA9AjI4PgRgEcnT8ev9Siz+PR6wy2elYBsK/7z0JR07Cn5xugkLno/mNzskUUyvlnrWfN3MoJpWzJGZg3bUu2nhzmTu1zcgSdVTYZrKtsCdPcCtDY7OA4ZR/UlyfuZx/L7nISsq/G6pudagG7WK1MVoDXHUCRjCFFetbSV8pQD5zQKijrZMIZNTwnp9NLkqaXaYRcU6oNe0BQTz+pAzNf42TqfWFm3CKXS7I285G7ZPBybdBBgzoq+h43QOLglgK/meOq13ql5GcveYzJZjhmeiF1VbJ33IcG/V/02zCcMWO/IEwbaHOCm9x0B/HmWMdZ1h5bhN07JruF92eUI7n8XZwImYAImMDACmqRpZFB8/tIAjI2BIXZ1KxGQfcfYivR+ZkK+aPtKi16KrhRw3jiL4VmpvcsVW4oDjC/JZITRAoG+Eb/JNizDHwzFK6ZpV1iA7laALo/cMwY545nyHe/7grjpuKtxvwXoZlSnKkCTGgUzekTevdImp3pGYuJHATC0FOO8911MnHdU6du1HwB67dIpMXrOXsqTns8MWVSGT2lL0Ff/bZbDpFHAi7TTNGZ+kccMQwf23WNem6dKzhgpls47Hpf7PfuH/bZv3vRlosQuvOdnbYveKSYi5wnFawcL0OofxpbmJofWHmt8h/oiQDNgP122rxUMZdbO8e9MwARMwARMoCSgSfWXAB6b46f13XBzD5qACGhhw42T16XjnVeusJDTQomiK+MocqOGV1uLt1l7mwY4j/Xer4KNWYrwzwHwhhGKAitxtgDdrQCtOer1AJ6bve8tPs/6Vbjs7yxAL8ZNd01RgNb3j8Iz4+tSiKp1aZ5hnoEdAfBE3tjEZwnNHEsUnjmX0vaucXJJ/SQbhmH1dksnxf7YAVd9s2mnUQhXQreIsVSyewSAdw1AgFa7P5bHusZFBI+IMtQ/DO32sCLEVd/s3qVrAYrDhwNgzr0a7xRZUISeaQ3QtQAtOPSaeWqFhUHEQHMZJmACJmAC0yKghT2P5jHOHmO7zrSrOy1Mbm3PCayTj7LuWcm+0ntC7+LHFdnr+2iIM8YivUS5sI22fbWInTkDeM/HzazVswDdnQCtd+/zAHYF8LcOhJNZx8kQfmcBulkvTVGAlnB4FACKezVEHfWK3nd6XVIzGfNGk9p2s+wVTM/NWmzFlWGLKHaf0MF3VPGvH5RjevO/o0RX2WKcq9+WtTZ66/Z98+KayWP7xyl8HMNG1Or7Rb94GjPMe7JdTvo7hPeRYW04xsoxsSiDpfddkJw8tkxh+OiwNdPYijbC52mIns0PC6HcJvCFm6ce/q0JmIAJmIAJLDX0eWSNWc0pPg/BuHAPmoAIlHEF6fFy/QpGvIxwCl979TjDuljcKNmZHwRwk+AjrmSuBRJj3zHbPEPKzWSED3zIWoDuRoDWu/d9ANxcYuzFKYy3mq+LBehmdKcmQOt92yTHqb1BpU1e9oo2OL8I4D4AKPZo3mnWa/29W2EYaIMztj1519Ks9D2lrcQkavRwbfPSWGLMa4b5u2HwWFL7KOjeK7XxnB6vadTvPLn39uBOiBSyxfThAN7dY54aW4ww8Ym0wXLz4LWA4qjT5mUOlItm7bNaL/Msz9eigC7hHGT01PFlAiZgAiZgAl0RkFFxdvbo/HiPDYuuGPm5/Scg+4pJiuj1W+OS4fm9fEzy3J6+KzLAeTz6LTmWOxci0ckYJRLw2DC9rcv4vDX496FMC9DtC9DyXqIXG+PAcuEnD7o+jImh1sECdLOem5oArXBsFKCoYUR6rZY9Ub7v3OhlPocpvO9lbGQ6KW4bLJwtZcznUaCliPbdDjb0NJ4oZlIXi4x7LOGVcwYF6M/11FZjn8h2ZXiLBwZzaPaFu+zdsn95+u9JPY4BLZ4c1wy/cZXg90h2L08PvGOe96YrAVofFsYheVPOnB65MxE5yFyWCZiACZjA+AnI4GOMPU6mjD+m3fg+hhQYf4+4hYsQkMF5neTte1zy4L9LsMG5tE4UuV9dxMFbpM617ymTEb4/x8CLXOCx/iqPi1cec2SMzrGfnLAA3b4ArXF2fF6gOy9BzNfDAnQzjlMToPntoxBMr1mKOxT3asSA1vvOk3iMUcyEv1PY3ORo1PzCMHiMc79uHqI1tCsypZj2zBx7uu3vqtYa9MB+a/AGeRlygXGmn9HsVa92d+mty9BSWwQK0PTM5Tt6peDa/xbA7dOakevGPp5C0jhWfPFIu1fj6sK8QcQElzPbvDVe4ln6VkDukOP70DXcAvQs5PwbEzABEzCBaAKl+Mwjfx+x+ByN2OW1RED21X1zPEMu2qLtK5X3p2x4MhRAH41vIZdRzLiC9Bil7akFbnS3kA3DcBw9jzEeXYmWyrMA3a4ArQXf33PsyW9OYIy1NJRhAboZ6SkJ0JpPbprEp4/mEFeRwo56QvMs33d6xZ48sfddGtXGed6+W3CCvnLEizU9b5nPgsx5teV8ormUYWn/J2+SN3sjL3u32vedtL65XU8dBmS70n46ohDhm2iVei/PBPCZ5Bhw/7TBsFGwTcwwWB/ooQ0sbmwvHS+2D263vJ+/msbsLim++HnzMGjSqU1eDH28n5iPROol76o+Tdrie03ABEzABIZLoEwoQU+LD03MyB9uz7nmSwloEbN+9qLhojVafOYzaXjSjuNijccPmcCnzwK0bEvWmd4/h1QaOmJ9Ul7EUqDvM5emGCxAty9Ak/l7U9znB498bDUdm/PebwF6XmKX/f0UBWiKWTyJUEN8LnWRb6T4rXeekOdzObI0x9AzmLGgGa61hk2jMpn7Ze8sArftBc128z1iiIytg9up9lEkvAcAhk7rm22isGgMlca1GGNxK7TNol+nMn46T7bSE3jnoHdWmxMUy+m4xKtPTDV+754SBJ6Y3h/Gq498d9Q/r0yxn3kScq73pQvBV+LzBgDek1VzxVLpoj6LDmrfZwImYAImMGwCWjj8PgtGTFLmsBvD7tMp1172FZPYcBGzWZChvZSp3puHpWOSxwxkw0Zs7pQ8oE/NXjDRY0Vczs+LHCYUmssoj65Q5fIsQLcnQGux+4+UqGoHAF8byHtXeQiGFW8BuhnKKQnQJEVhjPkVnlUhqa16gu8855TnAHhts+4Z7N2yx6+Wkz1uXsmmKcNUMIQWN9fbjrWt+fTJWWyPFAs1ACjIvigJ+a/omW0i+4xhN3hKbcuA96r0Xqeo/ZT8zlIslTDd5MWQvUcxnzHKmYR65hAUTR48470av3L2jdRaxfafORfF3LHpuxB81Tm3BPDZFAP6qsGK/Iz94p+ZgAmYgAlMmICMh7/kpGFHZYOM/7+tY3cTxu+mVyCgBQyPMNLgruEtJMOdx0T3SOEmftUzr4/VsK6XYzzSGyZiEVI+r/xucIH3kuKo6xi/KRag2xOgNV8xSdWjs3dYn7ytVnvv+v73FqCb9dBUBGi9c5vmPCG3qqRh6H3n/MoNp5/1TNxqNlpmv1u8uZFLT0vGaK51SfA9FPh3SB56ePJqa+6WPsYQGV/MMa8jRWiNKYaLYNiIPomlqsv9cug49rs8ohftb7GjQwDjtDNcDttNj2WGpeDVRActy+dpQ56ebXO8rImL2rV2bi+dRSJPaqgs5jphaI/fzbsOaAJ+0QFRGqyvSbsRhBP5gi1aL99nAiZgAiYwDQKaPP+WxWdmMu6TMTaNXnAraxCgTfXp9IfxEmlbNTXil9ZRoi0FbnrqDOnEgN7xR2SjnIvaaD76ttBDlYupuQ3zGoOiUpkWoNsRoPke6w/jkx7ZgXdepSHUm2ItQDfriqkJ0LcBwKRbnENqXNJFGG6Hm6U8+TDVDSe1+9bZC1rJCKO5i/mX8+Y6T0a2yVz2CcVRegFvU0k0/AGAe/bQNmH7X5qE/xcGOQfIFmN7mRPll8kx4+o5XvNdg0N8cNNi/0LQbmvTYqV3QGPpBmkDiyfxrhGstYotQ3swZM3cJ/26EKAJixX9VE6iYfE5+hPq8kzABEzABFYioDmn9HwekojmnjWB5QhooURvBB4f5ZHV6KsMMUGj8xOLGJ7RlZqjPDG6UY6Jd4ughU5ZBTG6IHuqMvlLm4vYOXA0/qkF6PYEaLLmQnqv5M3104G9d40HWgsFWIBuBnkKAnT5Haco/LaGHpRrslH5d7RV6bl47MTfd3GnTcP5lOEOIr051Q8qkzktGHP7xx04pkjIY3iXqFARS+2TfwHgJvxxPdnILE8VKEl0pDZIcfj5KZTNhfl9ZSxx5i6JCElRxpimTXxuT+w9CdC75c2MMsRMsy/9pU7DF+XQlTyV1XsBWoOMRj9d4a8TrMg3her7TcAETMAExkugNDCfBoATp8Xn8fb3lFomA5CLYi6Oa3g/y2D/SnYgoPEtz8yhsJbHM2Nq7ldxIUt7lwmqePRzrJcF6HYEaM1bFAwekt85/j9fcQQsQDdjOSUBWsfaH15Jw5D4dlb2Lvz2IgJPs+7s3d2ca/iH8bApzkaHz5Lgz2cwri2F/xM6EBPXAkCBePecbFbe3lEOo0ocd3gWYfuw/pEdQY/v04JPpbG9uwD4ePEOMXTcuwBcKeD91bv6dwD8HjABdZ8cDtjPTOjIK2oMqc1/ALBVcrQ4e5E2R1Vm1i+VFkh0r2dsvKbZLWd9rn9nAiZgAiYwbQLaAebCnXMQ48n1yVCYdu+49U0IyNuBm/pMpMnjwTU8hGR4vjgZ8y/rwDuoCSPdK1bMBM/FwoYBi5Cl9RKnnwO4f1oAMV72GL81FqDbEaA1dzF51MEWoyI+A5crwwJ0M6xTEqCvmE//8Bh/zXn25JRjgfkceFpvjPPHPCNO8/Z9AJBLjfBZmrf5T4aI5Teh7au05dhOCnyR3sAS7hkijMLsHzseWxrXbDd1QdqWEZeYfSsnyTuzmDcZjuILSeDnSbiI91dMD0wVPyBXvusQHKwGc8Bw8+qmwWNIbBnJYqfMcO4+a1uA5gDjR4MvFT8iER0/d6N9gwmYgAmYwKQIlN5iFJ+ZIKwPO/+T6gQ3thoBZbt+YPbs4H9HxzZW5Znpm0mkz6nWmroFa8FDT6PPJ8+YO1XyFqeRzu8OF1T02Jr7iGJdDCGlW4CuL0Brscd4pI9JggSzzU9djAoZvEsKsQDdjOoUBGiJg5un+LyfBXC9SjqG3nnOGy8Y6dwx72gTe4qG1JBuVtkLmnk0dlxUXJu3cUt+r7a+I4fxitTKdGKNXt5bA6BA26VtorZunL2Ubx/0TkkU5lqPNhg9oUvb7+3ZYzlC3Ff/MHEkkxEy1nSXc7Sezc0L2rjcMItoJ4dpGcrjiQDeumhb2xSgNcDvkGPvOfxGwy+UbzcBEzABE1iVQDnxMg4YDRLNfX3YpV61Af6BCayBgMby+gCOzjFiIxcserTKZNgaxg8c8rsjA51heN5QaXTpu8Ojnw/KXmylAV/psa0WawG6PQGa8UgZz/Fniy74Wh0Zw3uYBehmfTYFAVrfu50BvCfNHUwWFyXsLKVPgfApKVSpE2RfQkbs6dXJHBdM8KtwEs1G7mXvVn/+MHsfM85t25ecY2hnvTEoVETZBomzTwXAeMhdJmDXs3ma4EOpvRSim75Tsk3ZdwxZVYbFKN/hjwSGpSBfhk7ZNQvpXTKV3vrc7Pyg9ydiHKtvmBSVffadRcdPFwL00wEw9l5E8O8ImC7DBEzABExgnATK+LQ8vkzxWdeQBbRx9pZbtQgBGbo3T5nNmb19g1xItH0nAZpiKheAXRrYi3Aq79Ei5PoAvp89RJqWufR+fV8uzkdAGRpFnurRz+qqPAvQ7QnQX0/xMe+eElN1IYh0Nb7afK4F6Ga0pyRA0/OPG5c8RdNULFtu3uB3lRtNFCCZb6FLb8pmoyL2bglrtOMprtWMA80TXvSA/lEH/NXfNwDwsbTZwX9GjjPpbxR8mdSWQn4XV+kIxNBSTLqoq4n9qnHB0GdMDPiLog9L248ey9cKZrsvgDflRnS1xtTpR57SoM0Q6ZCishjChWI740AvtBZo0sHzDNZy5+qYPCBqfDjmqZN/awImYAImMF4CEp85Ob4qx32WodWVYTBe2m5ZVwRkX+2fxOfXVdrcl9FJr6B7pczXv1nU6OwK0grPpYBwRF7oRxrpfFz5/WG/aME8puRxFqDrC9Aalwy9QQ9oz111PiIWoJtxHbsAXYpl/J5zvq3hSKf3ncnY9gTAkFcWoC8ZmxKgmSCQnuHc0I0UZjVvkzfjbjOpHEXahQS2Zq/Tf+6mly5D1ka3kw/g2GIok98F1XXeYjSueZKAG/QMCRLh1S59keEhuFm03PvD5I7cRHpc0EaG3luGbqGTxsLC7LwQl/y+dEj5ZLJvNwsUoEublqGBdJp4IZu2LQG6jN1DD51NKr1MDfvNt5uACZiACYyAQBmnSuIPj0fZkB9B57oJlyPA8Bv0lLpVJdtKBj0Td9JLpcuYgVHdL7v0vjmubg0xQYtGeuBsmxJK/arjxWwUO5VjAbq+AC3WPCrNI9O+6hCwAN2M6xQEaNmV7wWwT5BYtpS6hKwTcgLbZr0yrrs1Z2+T40AzXEP0xrGI8eQST+wf1tGcrbmVAumhANarZNsxb8j7c6Pb3tyUBrldzl1y7YD+lM11Qc6ZwLbxOaVIqnFE72++ZxFjSGWclz3n6X3dhZ2sU3bMF/G23K9sf4TeK7YMD0R2H21yqi+iQrN83tTZ3M07MWi3YZbn+jcmYAImYALTIlDu0r4+Z7IuE1BMi4ZbO2YCsuGYSI/HCWnwRl8yOs/PRie9KsYQSkJ2KRc9zOZ9kwq2qdjxn0xOc2xHi9noMWEB+tLNzKumLPPHp/dv+4rjh4tbbv7Q68hXHQIWoJtxnYoAzYReH8gngSK8NVcSoBn7l8f5fV1KQKLsNQF8Ic2nNwwSD5cy1rzd5Ya77BN6KNOrdtPgtqqNDKdGj90unHP0TCYJfGlQ+yQE/zx7VC93Wk9sbwyAHuYMcdJUhBZPblzwtBs3DXi1Leorfvhbkmf7E3Jcap70i7jUxm8C4MbFWU3s2bYEaDX8XQB4dKJpR0eAdBkmYAImYALjIlCKz4zD9cw8AS/dAR9Xq92aqRJYmi29xjFN2WufA8DkS4xBW8ZWHzJ78Xt1/lbUCA2nPuFRXiZOWui4Yk8h2wO6rge0xg7fuedUTJjZ0+HVarUsQDfDPRUB+jrZa/KOFTecJGLRgcLXZQVoiXoUwbaq0Acsv0y4zDAcXWy4yzZhxACGp7hLsHamNjK57R2S/UOP4S5E6Cvn5Nl7BLVPJ9m4ScT4zysJwOTL9jIE26OChFrZj59Jyfl2z0zbDN9SOlVQWOeJyEi9VfbIO3Lokkbr6jYFaB4R/UFys2fSlxqLJH+kTcAETMAEpk1AcwuPzfH4HMNuyGCdNhm3fmwE5OnABTG9n68bbGyWvGhYH5AWYgd1dKywVt9pYcnFHWPs1jzSy5iSPGr63RF9kyxAtyNAXwjgGQAO70gkqPX+9alcC9DNemMqAjRPyvDEwy0rzLeyXxmb98k52W8XomCzkVD3bols3NDdpUIflAI0RUye3O8ilIL0Obb3hdn+0lomQrvTWPtrDifDZIddiKWM+8yTYbRjI7VBhsg5bg3zpWw/is8UoZW4rwlbib1n59OCp7ds66n/aGfypKJORDZpk95m9c3fU3z0/QBQhG70XkRUarVPjT6eAsJO92UCJmACJmACkQQ0+VN8ZqzM8vh75HNclgn0gYCMPyZZ4ZjXFWnX6R3iMUZm0+aROy2C+sCgaR3EikcU6bVyt0oLWnnhUMQ/sCOPqqaslrvfAnR7AvSz8ntuQarGSAYsQDfjOhUBmpuV78nOdJHehaRfClgMi/AlbzhdblBKZGOIA4YoiRQt9TD1A0W8exdetG2HU5CNx/wR9ILeILi9aieTyT2/IwGaYSK4sRp50Zt7SwC/XMP7o3G0eXIM+HwSVKPiT7MddHyirackfW2NG9kGfC/4fkSe6NN79j0A9FbnWqCRLRK5UFlp8KiTX56T10QOMpdlAiZgAiYwbQKa3DmfUYhjdnLFfB7Tcfdp97JbXxKQ7cbENFwMM7QDjd6oWG96loxOeQKNsRe0yGN8XcYh1NHMyLZqIfD1LOSzr8YQxsQCtAXoyPeky7IsQDejPxUBmklrjwLA0Ai1BGjGr6XIw9MyjUSeZl3ay7ulKXG+5omsmgI0E8mxv3/Xsjgr8GVIBYawvUdwexXD/OTsBc1QT22MNz2DJ87eWoTKaKpJ6n1kXOtH5nBxaxrE4sv2M2RGxPusMpig7/4pB9E/WmKqdl4l59rbIag9SzdlePqD8Z8bX007e7UKaJBxUcQjojViJq1WB/+9CZiACZjAeAnIAGXMZx5TplHFq61d5/GSdcv6SkCG8+0BfCLFht0oeGGi90cx3mhwMoF0o5hvfYWZ63X1tGD4ES4RFKMXtfoWcYFHlvRm6iKuZHQXWIC2AB09proqzwJ0M/JTEaAfko/sc/M3ep6QePWT7Hn7vx0Jn81GQt27Zfs8OocBqPE09QM3AHZNMYJ/1WE/KNQaE/XRqzZyzKmd9GZlvORvtySWatP/1in+9KmBCRYlqDOsBjeJVgspIrb0wmbSvohL/fOznHiaTgdtivpMWsl+XDuiMcVamm34Z/aUD0mwWFuAVuffBsDHUwfTwI/YYQjk6qJMwARMwAQGSKBMOKikCA67McCOdJXnJkDbikY8k2zydFnkUTtVRslcmLtjRwC/ncGgn7shPbvhvYV3R7R9LA91evwoRBD7bciXBWgL0EMev2XdLUA368mpCNCPyV6bnH8jxUDS1zz+HQD3BPDHCcy58446zTn0ENem+LxlrPZ79Ss3AugZ+9MO+0E6GmMaHx0sLJZjjjHHKcK2IZYq3vLjU96NN+bN+Kbvku6nncp354cz9JnayvAb/D1DnERdFGsZCkPxpWufxpW9yo2Zt0c1Ipcj3ZYbMbuld4Lfp8bjJNrAXtpmeXgQyNsqHW0M5uziTMAETMAEek6gFJ+PzBM9kyPwsudzzzvP1WtEQIbfNXPsuhvmMS+jvlHhS94hPouxARnLbjVvkojndlWGPGF4xPXTxTck0kYujXjmROEx66EztQBtAbqrdzb6uRagmxGdigBN0YxCneaMyDlCAvQ3AeyUNirPG8Ec0WxUXf5uzTnbZ8fGGnnFJGYyhjCF7m81TbjWAILae+MUd5xhOBhJINKRU2OO4jY3xhk/ueYlm+fKOUngzkHtkffzCQAenE/CzroWJOOP5FMHbHvTd1rjh0yZo+Xi3MZaXDVGyPb9OXFm5BhRWUxUybAiHCONbdemkNcEk2ULCr3T6BKvAVKrE1yuCZiACZjA+Alogufu8tMBUHxuPCGOH5tbOAICsquYHIdGc6TwLDwy3P+cDU4m6GuU8brn3PXt2Cwvam8RtCha2mwZ8g8H8O4IL5KOuVqAtgDd8RAMe7wF6GYopyJA89TRqyvND2WuAM7vnH8bexo269be3S0et0uerl+u4BHMBmt9wdjPDE3BZJBd2z98v5is73HBY09tpQcwc4kwdETNMSdbawsAnwpK5sk20LZiHzEHEENEzBriTG3dD8Drg9iWHvQPSJsYTNxXc/yI6TVSnPAvALhRUDvKd4H6LZ1RXhuVv6S2AM1O2BTAKSnOyx0qHRPt3dfRFTIBEzABE6hCoDQ0KD4/KwnQf7P4XIW1C+0fARnLzKvBY3YUMpseXVyulSqT3iQ8cnx+/tGsHiX9I7fmGskWZvtelpwlXhhowJdPlgDNpDeMBU3PmCFfFqAtQA95/JZ1twDdrCenIkBznBxSaX6QAP25fNSdtm1NMbBZj3dzt3jw5Nf30+msdSpUQ/YPQ6DQ4/O0ygLiak1Qm+nIyVw361ew+9hmbnowp0jNMSdbi57Br0nvUkQsddlVZ+fwG/OETJF4y3jU3Gi4YgDbMhTkQwEcW3n8qA33SeIzw8gxlEjUukDl0OuZ5VPgDhHTawrQAsJjEh/OHwl5Ra/2svnvTcAETMAETKAkUIbd+ACAxwL4k8VnD5IJESi9R2gI0mM38qidUGqjh6cLGKMvxODseT+pjXcDcFLOWRJlxC9tOuMDbg2AR61rLvZqI7cAbQG69hhrq3wL0M1IT0WAptPDqyrNuxagZx+DmwBgiAyKsdGX5n3O04y9TCfKWT1qo+vC8jTPXg8AN6+ZV61G3o+D0rNeWiRyr9EWlUmhlGwj7FeVwY0Cao7kNWvMZdnUHEcMX0GRtSlbOWqwHgybQrH9whZsPXp+M+608rdEaLxi+5XcX2EJOSMqt9IA1QvDBQxdtpt2aM0XwWWbgAmYgAn0m4AmQu7QM2sxM4QPWbzpN23Xrm8ESi9d2lWvzIsiLVCi6qvFF5MP0kuXRzOn8J6pjesCeE+Oo1dDgFaZ9P6hmFH2a1QftlWOBWgL0G2NtdrPsQDdjPCPnarFAAAgAElEQVRUBGgeQz+4kqYhnYShCfbMJ4+mMPcuMvLoqXpu9lhd5P413aM5+qIsulH07YMAvTaA43NixEhNrRQZd60Ye1xj+TrZMfVWgZ66bMOL87s5r8OEfs+TbzwBF8FWTM8BsE06rfiLSs5SYsoNGTpO8Fk1wh0fkNnIEazxO1dTgGblrgTgnTmGDitdI1ZhYwguwARMwARMoNcENJl/Mu8mjyGBV6+Bu3K9IyBDc0MAPAHARHY1DE15TzB3B+MNTunSQuQ5acFJbyD+d7SdLL7MJM7FAo82DlVksABtAXos3wcL0M16cioCND1EKXRFiFRLicvOpZD0MAD/GPDc0Gw0rX439SXGaKYQHX311QOa8+0zclJoCuJRG+Qad38AwKSAPJlVI6eO7CuO7Tcn51QmIoxqw19S/o47pQ0Dht+Y157S5sIO2Qt6o4B6qV200RnGhZsYNZiqrfcCcEylk3tsA51R+F0Ka0O0Ya2PgIBcP7nDfzHFKrxW9NfB5ZmACZiACYyeQBl24/M55i2P3YVNgqMn6AaOhYDsqvvmBHYRRvJKC+Dz0vHWR2YvlXmN+SHzlk1M25Wh424WsBBZiTETpzKGd6hR3zJ8C9AWoFsectUeZwG6GdqpCNAHJvH5RZUFaHq5Mt6vBeiVxyRjB/8EwHUrzNESDynMPhjAcR17QJOC1jy0SZgU+ppB4StKwhQaX5IF7hr5PtSGtwUmU1RfMUQEw6ctUm/ZfdzM+GCKc3yPILaq2/sAPKjZ53XFu2WDMfni64LqrYdpY+J0AA9JbThjAXF/jRWvwURA7gmAHmu+TMAETMAETGBeAvIy+Z88gXMCtPg8L0X/fkwE6Jn7gmBDU3z0vtHgpCcMk/BMSYAux8nR2QuN/y/aWUOcGR/wEfmhQ+RsAdoC9Fi+rRagm/WkBehm/Hi3BB/GouUGsAXolZkyVBaTEN6gkgCtU/uPTiL3kSm0AxM//6t5Fy9cguZaeg2fCIAer1Hew6yUbJKPA7gfAMa/jrRJtG7jhgE33W8XVH8xoE388gZ1lnf2q9OptGcG141e2RTHo+1p9c9VAByW18iR0SY0Jpj4kgI3/zvsijaqy4qxbMZT4W6hLxMwARMwAROYh4CM8e9lY/xbE0mGNg8j/3YaBGRo0vuF3hS3KETLKALlkcHnFd4UkYuQqLrWLEd2MTPCM3s5Q55ELvTKxR4XJnvnhfQQOVuAtgBd811ss2wL0M1oT0WAbiMExwl5Y9IC9JoFaOap2KLC/FyevOyTAE0aFEqZA+SQZq/r5e6W2PjjHH+c/4y0SRTmgokHufFOQb+pXaX7uTHApM5fb+CgxO8Xy6NQzA0gephH1a/WaTf1zx2yqH/tgDqXA0PJyJ+UEp4fETwewr06WHEBYUZJurIzpkpElsvgd83FmYAJmIAJ9JSA5gwamDymTvHZns897SxXqzoBjX2+C0dV8MhlA/TOMa7iTskL5rsTfefEmkldPgTgzpVsWPF+SvZeiVzsVR+QxQYIFylPBfDGCsfStQBknGwuXD/Sg6PQYqv+umpODLV9xfZfmBNW0stpiOOkrfHY5DkWoJvQu8Q+Oy3HtW8q3KxUE3oF82RKl+8Ak8cyDm90DOhS9Hx7/qYyCV6XbW02IureTQ/oKQnQpCnb5K7pPfts8vhlUsLoi57PHN9vCR57HMf8w/eH3rQRuqDK+AaAXQD8PsBm5bhiuEeKuhF11Lfw8FQ/CrnzJkhcU/9qPDC8B50lIi9936olI6/hAS0g18uTEWPpRXRiJFiXZQImYAIm0E8Cpecz4+Ax/EbkpN3PVrtWJrA8gVIQ5cJ092AvBz1VhjKPdzL54J+DFyBD6V8t+Mmdxzrp8ab/F2kz08DnMxhrml5WjLvNa5EYhl2xtQe0PaC7GnvRz7UA3YzoVARoHkfnpmG0rqHvPr+pb0jhNzgeL57oHDzLSJyiAK35dtO86amYx3z3Ii6NaXq7Pj6iwFyGbNhrAPhYck69TcD7U27YMNqCwm+wDU0vRm54bt7sZllN7D4xpXc2wxKfH/ROayzwPTg4i/pN61pyU4JzeoM/IP9F6GZYE6grdbAquFtOlLNBpcVS0wHm+03ABEzABPpFQJM1vS8fk7MxW3zuVx+5Nu0S0PinRwaN940DjPeVWsD3j56mNDqnfOJAzBmn8JScSDvaq0/lUehnGA4mFgo18FsYphagLUC3MMxaeYQF6GaYpyJA86QHT3zUFKApcjMOrQXolcfkFAXoUmB8cfqPA1KoWwmFzd7eS+7WmP5Czn/BhO8RNolsSZ4S+nSxyd5Eg5T9RI/t++eNfIX5WJSF6slTb7S1GVu5qd2njaW/ZCH3U0GnuFTXzfPJsJsGfpNUZ44HhuNjXGz1VZiDRJPOX66Dywq+EsBzggbaooPJ95mACZiACfSfQLmb/Z0c85n/nLII1v9ecw3bIEC7iu8BBZKX5dMA0c/VwuObOZHJz4IWHtH1bKs8fXfWy6EluBnWdCGyprq/NokNz8+CQ1ttjHiOBWgL0BHjqA9lWIBu1gsWoJvxKz2gLUCvznKqArRsk/tmR4F1sq0WqedRLOWprA8Er8EYt5rf2QhbSmV8NQvQ5wTUVWyvnkJwnJpE7a2CRF1tEtBTmd7aEU5VqiuTUfLUIpNTRm2KqRyGNGEycp5CDl+LRw5Y7cxwUPCFoAfNrsG7M6t/kvwLEzABEzCBoRHQhMeJjoYPPaAjJumhcXB9TaAkIKOPCVHokXHrQCOzfI7ivdHTgQayjjGGeTsMrFsVr5BcHpsS0ry1Uv313aPgz7jbP69h6Feqe2nzOwY04BjQFQdaC0VbgG4G2QJ0M36lAE0v62fZA3qNQKcqQGvTl8kXKTzSJoyMRy5h91XZiTTK85XrudNz+I1IAZoxpfmuRAmksv0YguOgoPBr6p8v5ljVf23o4KExQI9vOqVw7lISxQhdV3Yp60sBmjk4IjzhL/NCR1S0LFAVvFGOTxP9YjT7vPtuEzABEzCBvhHQZEfjhLFn6fls8blvveT6dEFANtr9AByZjwRGeTmoPVoM/BbAHkkI/VoXDe3xMzcD8L5KybXEnknmHpYzmbPPI+IYtoHUHtD2gG5jnLXxDAvQzShPRYCmMEfBK1L0I/lSgGYCuKen4+9OQrjymJyyAC0b4Z0AmCcnMgyHxuEn80lU2oVNxF3ZCEyc+IkUzuGKAR7QZfgyxqqmEB9lNymMBx0CGH6NDrVNBfPyhC85fKXhGldMGeL4gwC2rfA94pvH8Bv0Wlf7Qx1SagnQe+ZM7ZEu4c2mRt9tAiZgAibQNwJlpl1m8v1+Q2Onb+1zfUwggsB7c2zmpobwcnXRO8jTBy/yovcyiGgjUxxm0inGxo4W//kwlcmFBJO9DEl0sABtATri+9aHMixAN+uFsQvQ+tYxKS3j70YL0OVcwBPkj0yejf+o4XnYrJt7c/dUBWh2gBx0KL6+Of93lJ4nG/N36SQqHR/okNDEIUj30puYSZ0jbFjZTF9OXtX3SQn46FEcdam+N8mOB3SkjaizvhecZxRTeVFBVxsCt8/i+3Ur2KasG2NhM3liuPczOytqwKrjVUkuYphFsoaxHjXIXI4JmIAJmEB3BDQ//DSH3aAx0cTQ6a4lfrIJxBPQkTrGoTs+JXVmspEIQ3ilmjKZC4/a+bqUAG1aLhyuBGD9SmD0HWTCHybT4UkQXosuTipVc9liLUBbgG5zvNV8lgXoZnSnIkBT26DGYQG62XhpejcFaDqs3KCCXVR6rDL/Az2N10oC6r+aVjrofs271wbAhIHXD9TbShvzCQDe1mBdJo2R6zp6VG8XVE/VkbHSnxbEtCyG3zLWneEt6AUcYXerjC+lPrtH0FjiKYlXAFg7qI6yO9n2HyRPbcaXpgf8IARoVp4vKQcsd+8sQFd4M1ykCZiACQycgCbjM/IRMorPTY55DRyHq28ClyOg94HJnGlkRjsMGHl/COh7yOOOjD04lMsCtAXooYzV1eppAXo1Qmv++6kI0BSlmCfBAnSz8dL0bm4In5n0pk0DxTfVSfMxQ1vwZOYJKR6wQjM0rXfE/WVc5pNy6LRIvU3tZ9nU8s5fUISUQxHDTnwYwEYBfaW6/Sn3DYVtCacRbFmGbG/2PTcfuNkRdV2ccuTdDMBZCzJVPcj2uCQU7xWsteq7xlBD/M5V23SJXNDIEKXb+rtSBsk7BEOJ6nyXYwImYAIm0B0BTXCcgBn3lPGwLD531x9+cv8IyJ66aj4GeM8Aw32WVg7B63aWdkT/JtJWXq5uWjyeBmBvAOdFN6BSeRagLUBXGlqtF2sBuhnyqQjQNUNwyDY+NYdjqpL8q1k39+Zunkqidyb/GeGhWjZM5fFUGENvMRZwnwRo1lVz774ADg3uFdkjvwKwdXIS4j8XWaOJGWOmU9Dk+JZ38aJVVt2YK2iHbCstUrc1PV9sb5g87N9TQc/cL4nxb1iQqdp687w2uEXw+Cdfjv/dAHx0wTrO1LeRRrWg7JgTqTDQuC8TMAETMAETEAEZ2H/OBvanemjYubdMoGsCMtx3yd43EYlQum6Tn786AX4XH5tt6OhF1epPn/8XFqAtQM8/avp5hwXoZv0yFQGa44QnVSI9Tpfax5/LAtDfGnpJNuvRft9NjencnNQuuqYSoJmPgQL0yT1cp2juZYxi5u/g+xd1qf2MQV4mR57HQUH6IvuJnrqM1dw0WWKZDI8CLk8H0qO4SoiIDJMJQZ8YdOJB3wx6g+9anGqch6vswkcDOCwnSYzqd63Pf5jr9/OabGsI0DSej4ii4XJMwARMwARGQUDGw98BPA4AE6sNQWQZBXw3YjAEaJfxD98Neo3sX2mxOxggE6movo9vz0kPefRxnoVJF5gsQFuA7mLc1XimBehmVC1AN+PHuyUAWYBemaXmnGvmMAY1cjMMQYAWITonMA40ow5EeoKrrKNzGI55R7fWdhTIP5u8tDfMBTTRHVUnJobeA8DHG8SnXq09GmcPyULvBgF8y3wfjAO9iMCr3DCvzWuDyD7XBsExAB5eiM9V7NAmA2G5zmMg7FdWgLLaQPHfm4AJmIAJ9JeAJkkeKWRii2MtPve3s1yzTgnIcL9OStry+eAEM502zA9fIwF9I3+RkivtmTzgvl1xcRXVFRagLUBHjaWuy7EA3awHLEA342cBejZ+mnNuBeAbOQHbbHfO/ivNxX/JIbE+3dO5WCzKEBeMDRxxiQFDXTCGM72h57lkxz4CwFHBHsRMkHe/HAO8VuJ6sd0MwIdSDGsmA4+I+06uFKIZOoUezPPUX0yvlx247hIgipd9ynqx3UxuyLAuVcPORAnQgsKMnFTOtw2GMs+g929NwARMwAT6Q6A8zvWUbIwwWS13W6vsrPan6a6JCcxNQIbvA/LRRb0jUfba3BXyDa0QKL+F/E7y6GffT4hYgLYA3crL0cJDLEA3gzwVAVpiX80QHF9N4urOACiA1gwv0KzHu7lbPO6cN+i5loi+tGb5XU7yxiTp8wiF0fVZqTzZB9Tc6GWsekfYiirr90nopRcwwyXOa4/QKfUdyVP9oUGn+FSnNwN4JgCGSKn1fqhctvmtOTRaxDsvL2PmyqM4L4/mWdbCEoT5bTgxhQJaL1BrVdt+A2B7AD9ZoL/nGvcRg5QP1KDkjtTHclbSiI6aqzH+sQmYgAmYQK8IyGDgcfInZWOk6q5qr1rvypjAYgS42KEt1VbywcVq6buiCeh7ycXe/QcgQFiAtgAd/Q50VZ4F6GbkpyJAMx4sPRd5RWkoIi8Py28C2KlSgrVmvdz93ZpzaBsxWSPXE9FXeRqJnrbf7bkAvWkOR3HLIKF3Kc+Dk8PQC+dgoD66bo5PvUmgUMq1JIXbNkI4qh27Z+faiISX0kYZfoNhRDi2ZhXRpbU+IyXffE3hwBXxHdK3h+Fc7j6nML7Q+xdRaT5YO0P3BXB8ilvImDyRcUkWapxvMgETMAET6IyAJloaDPQaWTTrb2cN8INNoGUC8oZgZuuv5AQ7tqVa7oQOH6dvJo+70quJQgTtdP7/Pl4WoC1A93FcLlInC9CLULv0nqkI0I/JHpHUPaLnZolA3wOwYwpXRw/ceb1Om/Vi/+/WnLN31puidKyy5erXM3Kohx/NIb62TZDjkPYB11dPDUj0V9Zf9ghDUHBDnAn/ZvHUVR8xiTbvjbhUl9NzYkR66M4q3C76fL17FPg/mbyOtwwS+NWWB88hpKsuG+WTkfcKqovYaMwzwepz2xjvES+uBgBfghekwfmSQjmPKH/RgeP7TMAETMAEuiGgCZYGNXdraRzRU4H/PYsB002t/VQT6JaANvNfnmLuURCh0Wk7qts+afvp/D7yD5N509uuz5cFaAvQfR6f89TNAvQ8tC7/26kI0A8EwESxEd6QSynKbv5x2oCmwHSOBejLDTQJcY/Nc2SzUbv83eoHxj/eFcDZPe4HhiChk8+DUr4QhnVQDOgIu1Gi5FnZW5cbI6uFIpFNwH8ygeHDgoRS9ck7ATw+ryVr9H1ZptpyxRwTmZtPEZtO2mhimDWGEmFSxdUujfubps0phui5SlBdyucypAm9n7/egrgfsrBRB/FjzMFPl3KH31htKPnvTcAETGCcBDRBczLj5Mp4XfbiGGdfu1VxBLRgoC3FeH63sy0VB3dAJen7eWYeA3/tcd0tQFuA7vHwnKtqFqDnwrWsMHhamru2qSCM6GGPzKJWbc/H5UjombsBOBLAxhXaKe2EiWj3SuLnt9oQgpp1e+t3ay1Bh8eDKj1d/fClHIv7/B73g3j8dw7bdpPAcanNcD6DIRQPByDBeyX0ek/oNfzFFLpiiwA7VjbRPwE8Ob9/bX0DxJcbER8oBP4mQ68U9hnPmZ72q7VHf8/wI4yrHXkCQ/X5IQCGUqZAXv2K2CFR51wjKeecfKjOR2SKrN54P8AETMAETCCUQHmEnGE3uMO72sQaWgEXZgIDJSDDfk8A7ytiG0bYaQNFMslql0lbHwfg2Bm8jroCZQHaAnRXYy/6uRagmxGdigf01jke7PUChLWlxGU/nwvgUTnGse3ny1KS5kQx9AkV+oBPUz9Q02Isboae6HM/yCv5FADcIIl0ApWed1T2PGYSPV4rnWRV//CkAL2VGZK3aX1Uh28DoH3MDZq2+kPPuSEA8r1ZoMBPjvfO8btnbc9xAJigPMITW2+W+ofOYgzj0soVsbARNHrrsHOuFTDYWmm8H2ICJmACJhBGQJMYjxMx7AYNRHs+h+F1QSMmIFuM/1TGbW/kj7jDV2maFhfvB7BPsdjrW/giC9AWoMfyllqAbtaTUxGgt8pxW29UQevQd5+nXigEHdOi0Nas99u7W2IrExBSvGsqbi5Xc5V5cj7Vv1rYif+/vfOAtqao0va7loqogKKIjqJgVhxzzokx54CCICAqBhQD/qgIIopiDqCOOWFAxBwxi3lkTGN2cMwKimkUFWetv1+orcXh3Hv6nO7q0+E5a911v+/c7uqqp0JXvbVr7+5KP/9J4Qf60ZKOlLRFixkKFv+V3ML8YpN1Xcxj3Y4tPnsTpY15bKRxTApA6P/XFWzbQmEDEQf+e1RLZYq+/gJJT6x+fGJ4ozLF9zb0tVX+5VsUoGNO6WfcJp2+7KS9tylA2yz8qEJ+kdpqQKQDAQhAAALtE4iXqcXnxyYRLZ+MtP9EUoTAeAjERo2tLD5WHbHbIU0w/T2f6RGI8fTnVSBCB/e25U8ni4IlUSNAI0Av2WR6ezkCdLOqmYoAbdcCx0u6UUtCVE49d193UIqd0rXQ1qwVlL3bLGJd4WB01y5QBy5BiK5vqKxt90qn0cLyt2wJV0s92oitcz8p6aKFBMqbSvrsJnORyIdPB3jz/Pot1E/0iT9Vvrj3zQJPdrkZH/Nz+7O2+x2Xs+ncPNqYgyneakHA0Xi+XRy7TdondVsW0Lk7EOejM3/nbQjQ0V0sPts3S3zaTHu1LsldEIAABCBQmkDsTttPmt1uvDybJHY5SShdTtKHQCkCMcHcI1k9tWE1UiqvpNsNgVigeEy15Q0CtPS+HokBsdi+SFoU23qo7X6bb+y6HbxkDZZf3bT29T8FAbpZHUxFgD5f8gVr1wwWJR1cu81P9PkXSzqgzYRHkFbMky6TNur9u4QFdKCyNbGtU/v47t2oOu132UJxWwKlnxOMn5OCY2/07Kif+yRf7Vum91UTPTCefbKkW0v60RpO1sa7/qqS3i7JfrabvuujXL9LLjVO2KRc0f78/rcv7jbrNsrhGH4O7OkxrZN1e5NGkTdAp+OJoZ1plxwMRjB+UgQIQAACoyGQB4ew5bPdbmCxMZrqpSAdEvCxSVtW3Qnr5w6p9/dRnkt7LP20pLtL8kKlby6NsIDGArq/PWi5nCFAL8dr9uqpCNAe846VZJGthAAdGspxknZtViWjuzvefxYiPVe6UMtiXA7sDEmPSZt+fXvvzqvYeBfbDcfz0lyhLaEy0jlJ0o2TT+zN8uDgkA4S2VSk9TNCDHUsjActcFVRqsGHVmoh2Plwv2yj78ccz+vm/bO2nAvA8WxvfFmkvkmLOmseZHI/Sa/ocoO/qQAdDd5HUt4t6XoFB4NSDYt0IQABCEBgeQLxkvQk48mSnoXl8/IQuWPyBGIe5eOkPlba9Gjf5IGOBEAsDtw+fNz7iz20xEKARoAeSXcTAnSzmpyKAG1KFvhscFHC4C7S9MbjvauT5adi1PGPhhmWoPtU8cZemd6HbYms8ZBIzxu+9mFsP9BDEKAjj47H5uCJWxXQ4+wGw+nbbcSsoVHufsO+y8MKu635rIMaeuNnXQZO0fbs6eFF2Ty9iY4aAr3ndnfZoK/Hcy08uy227V7F+XdQR7v3+GqXc8wm4NxZoyHcQpLNt+33pe3BoNkrkbshAAEIQKBtArFz6/H+0BT4wt/lO9ZtP5P0IDBGAjGPspsFB+9kDjXGWl6tTCFGeMFjy6a+fRCgEaD71iZXzQ8C9Krkzrpv7AJ0rnnYWtHBw+x+o+33daRnUcgCqH36rkt0a9Yi2r07/O5atIu5UhtWqLO5DP4/TUH3vj0Q/iFA2yD0Q5WbmKsX2CAxG7uFscvdWbck8Xy7onq/pPO2WP3ehLlZFZD5u2usiyjflSpx/aMpTkvTDai4/zfJuvtdc8rnMcbt3GOOubv9Oy9N9VtXTzzfHizuVVmt2+q/E/cbMZg2aSNRIfYb4gmyTcT5QAACEIDAeAnkx3YOqyYiT0svrc5eXONFS8kmRiAWlj5K+rnKwuMqBRYNE0M6yuLaGssBKn+9xgXYPLAI0AjQY+lwCNDNanIKAnRoHreV9BZJFy74vv5biqv1qoFY4DZrPYvvjnfN1om9XZWVFKC/VZ3sv9Ym7iYW57jbK0KQdBv1adQwZmhD68vFyg8kN3G5VXg822LpE6r2enhLRQ8LYVu7P6pK+y8tpbtqMlFOu8LYpaW+HyLw81Od5XmL59k932srAX63ltyaxDNis8XtxfXWqa/zpgp6ZPYZyVF72zuBqzYS7oMABCAAgTIE4oXpY4gH4najDGRSnQSBmMTfN0XXjk38pnOzScCbWCHvL+nNCNBnWh1aeFj3JwQRghCuuybaeT4CdDOOUxKgL5vcHFy6JRFqlvysMDQEFxDNWs/iu2O83Tm5fL18YfYfTyLjkAxr4t1odw72IW4r5LZ0uVj3/SC51/hVNheJ9nlxSbbivX6qzqbz2HjmnpKO6cFGTLTBh0h6+eImW+uKKKPdpjygsoS25X08J7heUZKDS27fYn1Gu7B1uYOfbxYEsVZBlr2oaeMIM/DXJHBNzdGXzT/XQwACEIBANwRiIub3hgMxPFSSfYL5M6RJWje0eAoEFhOIOZitnHzctoRFz+JccEWfCYS7Ix9r9cKyT8exsYDGArrPfWeZvCFAL0PrnNdOQYDOTyzZR/PVCougH5Zk8Q0/0P/0w3znJHKGS45mrfbsd+frmOdIOqjNxDtIKwTLy6U12g1aFixdBFvm7y3prcliNuYn/m2/z++pPCJs20K/CIHUQret3R0Acd0bMdH/d5Jk1yxbtlinv0w66keyckZ5by/pg4mp89BUu3W2Q6913Jmbr8O6vEkhAswl03EI+2dpa6elxTolKQhAAAIQaIFAvLAsPjtirsXnPokhLRSRJCDQGYHoOzdMEd0v0cKkfbPMMz/rrGpbfVDUm91veCHSh4VYFBABGgG61ca+xsQQoJvBn5IA7SPxNrzzqZQS79VI82cpEOEXuj4e36wpFLvbp+4dc8Y/JTbrg/tfk1Xo2we4xomgfy+U9MiW26d9BJ8nudx1TArXh9eF5ubvnynpMYlZE33RDSjq9/jUzyx8+9MHYyeX9R1JGHd+mgZajHZnNxh2hzHr3uTZmUuVps/KGfq5L051VqzTbpRwkwYS7je84/G2yhzdjs9LDMSdQ+GBEIAABCBwNgIhPvsYlKMA/6EHu9FUEQSGTCDmX14kOIZGqRNkMS87pTrC99Jk6eBJbB8m8kOuP+fddWg/hbZed3CaEnPg3Of+U6tn+sfPjaCv62SIAI0Avc721+azEaCb0ZySAO1xz/NgizdNdJSNiOenDR1jyyekOvXP2qwptH53vGe8SW8fxNco+K71s7zZexNJ3xvgOifaycPTvNJuOdr6hCjswJj3rgRuB88LsdS+uX1Ky8ao4bu5yXPDstrjsoNO9sX1VpR339Qv2yhrzBvNz+na6jvn+qXK4vzKLbb5eJ6NyOz+z8/t3JisycAZjcGRE+2M3zsCJSbfTRow90IAAhCAwOoE8omwj1zZ7cbvBzgpW50Ad0KgHAH7zHtD5muwDeuGPLd5/7WhgCebfNonYMsVC8OeB/vTZG49L3ex8PuspHtK8mZC5wuGORlDgEaAbr83rSdFBOhm3KcgQMfY7vfqdSR9uRmyTe+ODWm7NLAbjikbfcR7xrf5BB0AACAASURBVAaP9pXbpqiaV0Iw/7yku6f37LrdPizbxIKVRXqfVr1qi9pcbIb/OVn/2g1NCN63lPTGSpTdoQVjiqgHbwTcIfWzPsx3XBdR3qsnv8wW3pvO+fJTbnaz5hMPobFeO516W7YdbHZ97s/b9eaTFp238yaT5KiEAyTZ1D92K5qk2SZg0oIABCAAgWYE4kXlwBK2xPCEoPMXVbMicDcEekcg9+3mBWYIl21nNCa2Xrw60IgtHeLZzNWa045FkX0u2nefg1KVMMSIhZ+PBtvow/4A+zAOI0AjQDfvRf1IAQG6WT1MTYC2+1GP+VcpOOZ7fLWV6Y2q97eDv/Xl5EuzlrLc3fGO8RzJfpmtOZV6x4aQ+HxJHg9s3doX4XM5amcJpTYasqVym6frwuL3cZLMKfgcLungltxvRH5tab1Lqu8+nPjKN6AcMNzGt3drwR1MtGf/drt7XtbXn1SJ0U9vQeSO9pP3naMkHZj8enfezlddgOT3HZmAtdnAl+1oXA8BCEAAAu0SiBfVO9Nxw19M/Bhgu3RJbaoEYqJnC4cj0vypFIuYl30lWZLkR/tKPXOq6R4raddCi2MzjYWf/QE+OS161u1GBQEaAXos/R0BullNTk2AvkBywbFPEvgs+LX5ifm33+FPSSJU5yJRmwVaMa3YaHXgNwuSO7YsqObCXPx7r2TNO3S3JxaJn1H92Gd5W6J9GJvaN7PdRdi4wel7/mOr8Ta0wMirT5Ud1pPN9rz5hnWyT77Z73Wbbjg+njYNfpvKbWOD27bE1WUIts7zbpWF/HHrWtevKkDHgHChtAPgwChtNLoVxydugwAEIACBFgn4JeUx3eKzfdQ6Qm8fLO5aLCJJQWAtBKIfXUHSCZK8sCoxf8qtKryAjYnyukXLtUAv+NAQBe6TFq3nbXGxN5tt192pKdr893tgnYUAjQBdsGt1mjQCdDPcUxGgTSne4XZpZSvTEu/vXCz6VuX7+PrVZrVdH0zt/R2sH5JO229ZwMVVztp+n72R/LV1CXPNuuGZdwczu+HwGu4yLYmkeda8JrRl/v8kf9mvr+Y/PgnWVOjO/RPfQNI3ezDPma2S2Ji4eeJ74RbGgBhDbCRiTfWryde5BWjH2GtrjAm+rjefpvvPdbXzpgK0jxt+tPIz44VU00bXQp8jCQhAAAIQaEggdnNtNXnHJD4P3RKgIRJuh0ArBHILJgeJeUHL1il5JmNOZksK+5Wz/2D6cSvVeLZEok4vKul9SShoa7GwUW4jMFX7pVkuRQRoBOjlWkx/r0aAblY3UxSgLfA5KJ6D45Uc8y08PygZ/E3JECQ0qu0kvV2SBb82rE3ntfSYL71OksVux10IYbpZz+j+7ngv2z/xuyXdqhA3W9B6A8ZuHJ7VkvuN2GD5YhK2++J6I6/F4Gs3HDYisW/ypv0/2p/bnd2ZPG1OoNNVNdt56wLHhNlP0u/WJfCvWph8d8WLGh9FQYDufpAZ6xPzwEljLSPlgkBfCeQBEXzU2xG4YxIwNeuLvtYR+RomgZi4es7kBZUtHUovqHzE7mGSTpuoD8nSLSXm0R4b7a/PblVKzWEiXR/T9HHX/13X4iFBRYBGgC7dv7pKHwG6GekpCdAx7m2TBDgHSotAsc0onvPuELY+nPzN/m3AwuiybIKzBeGjs+CDq2pXmz0/4iyED94hb9bnbt4OSS673D/b0uliHmKx3oHpX51ijLSRfrT3gyTZ3Vhf3c5E+3hRNbd+VAsCtNtmlN2+5b02eEVyc9L22OJ6enRyIbS2dr5qJw4B2s63HZwqdolWTW/ZQYnrx0sgH8Ca7iiNlxIlg0BZAtEPLXBYVHlJJqogQpdlT+rjJRCTaVvyvFmSAxmVfM9Z3LaPSkcnn5LlVNctKCbx10tHMl2vbSzGZssRbcWbCXeW9Pk11ysCNAJ0132t1PMQoJuRnZIAbVIx5rvd2Pqz5HvcaZ+RrKCPmchJpni32P2A50q3LMg43tXflrR7cn8w9PlS5P+GyUp/2xb5RVv/QmVAYYH7lcmVXNM5T9xvi/+b9LweQtB3u7Sbkwu2MOeL8tvljkVts71Fi0Yqkf5PJNnP+SfWOX9cVTCOgcHRSF9Y0Nqj2euQu4dGIDrHf1T+Ku1H8eotdryhsSC/EFg3gdwXl4Mt2ALBn77uSK+bF8+HQF0CXrA+Ps2dPJFt+xN99yRJ96+CjXyXfts24rOllx/J/HdJD2hhMbJRhuM0iq2DnrjmMRkBGgG6aMfqMHEE6GawpyZAh8C3c3JF2qaf1o02Hr+eApKdMvLTTKFNWeQ/OAlx5r2qZrWoZYegaqF7j5H42Y72eXFJdrdwsxbnJDG//Kkk6zU+jdVG3USAw8+kNOPUXp+Nns5TBfi2u5BrtcjXbvOc5jUluf6aCvvR/qOdvzetC/64qGOU/HuTBuN739Ci2X3JcpJ2/wlEB7NDdL8AHGXU7csdsOTOcv/JkEMIrI9A9L0/pUjcz09Z6fOEYH20eDIENiYQYp0DtbxFkq1lS73bIl1HQPcCjk95ArHge2AVNObl2XHhtp8cLls8V3IQGQeTWdemIAI0AnTb7Xtd6SFANyM/NQHatMIK2oKOT6SUcqflZ0XabqfPWaflYrNmUuvu4OrAi7YutY/ttkS42Qzkpz33rwL2OZjeut6nteDUvCjKYGM++xR2u2mboeeZbpcWYdv4RBt3fh04eyhW6EdJcttpi6/TCTG+TQOVSNPrArvXXOunqQBt822bh7cFfa0wePjaCIR/m++kBZWPH/hj8dnWRI6EWsqn4toKzYMhMBACIWa5nx6WfJzmfk8HUgyyCYG1EohFlYMJvaygQBn99WdpM/eTI1lQrbXylnj4TmmDwUdfS20weD70V0mPTD7617VgRoBGgF6ia/T6UgToZtUzRQE6d0d6fBKkm1Hc/G6P+6dWrpdu13P3BE0YhGsDx8mw6zBb14Zw1kSz2ihPIXranZWfFdblYzCyiffzPZIVtA37+qrXRb5+L+m+kuzz3PmNYJBN2lSpe6P/O8ijgxH2mW/MRX+e3PI5v+uaN55ZH6t05siwne//V+V8/FI9btClGh3ptkcgBv9fpMWyg+t4oR47QD7WZGuiuxQM8tBeaUgJAuMkEJMxv8Tsl+qZWcTjPkYpHmctUKqhEoi5lqNm25WN/TKXWgjEhu4H0obuX9Y90RxqpTXIt+v4EQUF6FhMeIPeASbX9UGARoBeV9tr+7kI0M2ITlGADmJbJDdXO6YvVtFW6tDPfe/a4vo3A7ISrVM+XxMb9XZRZldl8SnBNDds85rGVqEhdo9JgL588qPtU3el5p1163ej66JtfzbpPXZDsVaBtEaBQoC+WBKgr1bQrV6N7Gx6SWht9tsdY8da+a7SoSPDtk61WGjH5n1t0E0rjPvLEoh28+vk+N+RP/OInPHv7SS9toMjTmVLS+oQGDaB3ArBE7Ujssn2GCZrw64dct9nAvEu82ke++O7dKF5U7xTbR37uBQ8lNMK3bWMYG1/iw4WZQONElbQUc92v2GXZV60rWMxgQCNAN1d7yr7JAToZnynKkDHGHiQpCMLjfd5zYSQ5MDgjsMVBiBjmIPHPGnXZHjmwG7+rKJV1WnNsaaxL+M7SPrmSAM82jLXblse3UH7rMN93jUxT3JAw4cMpB6iXXrss1uLEm5OVuU5e1+MDy9I8WfWvtGySqeOwfZOkt4qaatCC6m2oJNOPwnES/SXyRm6NzPmLaBih+nC6TjOHXs8gPaTNLmCQHsEcosB+73ypPv0EVphtEeMlCDwT192XgB4AuhPiY37mMQ7yrWjc59M3+y0+eV+F+270ovaUn5Bo/2ET1AE6E6r+h/z1YtIOlbSbQrUddSx37G2CLTotI567pbsep6GAN2M+1QF6FijXrIaA06sfAhfpvAa1WOCf3zSyX5yHYw25uVDFqHD3cJVJdmndmmO+RzsqUlAPGMkAQjznhzviz0rX9qvqMppa/02/Qo3GzXOPhe2+w3H0HjHgN5z0W6tiR5XbUJtWXjTZBXesS74Q9Lb3teHdcEqAnTsUD0hddhV0lgFIPeMh0AsyHzEwoPi+xfsdsUL3m5fXlXtUt6nwER/PHQpCQTKEgj3OH4XvKbymfbw5I90KAEjytIhdQicnUD0CwtVdosRxyBLLgKemzaH1m7lMMHGEPW6e1rw2e1Kic2GEBs+lRYV9u3X9RiMBTQW0GPp4gjQzWpyqgK0qXku7Hdt6CIlfRbnwunfqucemonQXY//zVrMP+/OxWefENu50Dszz2+8P71Jbx/J3xiQ6LkM93hH2z2EjUbNttSm+DL5mq0L5/Pb1RzZgSf/d9WE1nBf9DlvmLxZkmN/lJjvNSlaCNBu694o98m5tY8Vq4jHMVDYL6/N5EscL2wCmnv7TSA65p8k7ZssR3K3GxvlPjqLd5d8RMPHTvs2iPabPLmDQHsE3I/d//w+yEVorLPaY0xK4yAQQXV2kfTuyq9hKUEyaNkyykGKfKpo7ZPMcVThUqUI5pdLgXT8u8Q8OeZSf06+vj+0hvpGgEaAXqpz9PhiBOhmlYMALXmsf0+1rr1KByJUjP9+31uEtr/keM8MKS5LrP+vLOntlRWpLaBLvC9nW3c8w9bP/glhv1kv6N/d8Y4257ckA76IE9KX3IZV/+uTBXRf8lU3H9GGfRrBJ5X6JkBHfiyQW7e1/rb2tfqyArSv94877ifSEU9EwLpNlOtiwLflswPn+NjiMgvkuPb8ybLo/tlxmWXbMrUBAQg0JxAvNk8cHlP5pHPfXqZPN88BKUBgGARenYIPRm7bfmeF1dUnq4BIu1Xv2F8NA8vochkTe2+W2+/i/oVKmC9yXpr8O/oIcZcLCwRoBOhCzbvzZBGgmyGfsgBtcjHvPVzSwVmQ7mZUN7871tS2hLYPWv/4HRCb3n12yZHHprB1rvUAC/ddaErB7TuS7p18P3f53izZJualHWU7MAWQt2Da9vxz1TLFPMbBsn263SfiQ2dcNc2u74u+73m3A0P7tH7fRGgzsW91uwnpRVtftgFGpi0Afrry03Odjnaqum5MPK99Arn47Ojw3omrY/k8m5N8cYcldPv1RIoQWJZATBj9YnuUJPt1X6VvL/tcrodA3wnEHMtBB22haiufUhPT6Id+v75sgJP4vtflMvmLecrt04S/VKyUmFd9PwVp/l7HG4AI0AjQy/SLPl+LAN2sdqYuQMe73r6g/a63JW+pd31eU/EMv//flKyhf5T5+e2bNbQ5ua04v/5YtHumpB070pPC2tZ5cKDm5/dFkGvW/Ta9OwTSq0v6YGXAd4mOWNcpUj6H8SnBH3c8h6mTx0XXxDzIfd+xP8LN3rIa66LnrPL3GB9OqYJV/5ukr/elvS8LJxrxFVIjLnW0cBXI3NNfArn4/Mj0kmxiJRn3bi3Jlj92x9HFi76/hMkZBNZLIPq4g0dYALMI3aSPr7c0PB0C7RCIjRifDvAR2fO0k+w5Uon+d6okB0P5D/pfIdL1ko0FyfYpePJtCy34Yt7z1+Tz+0UdLy4QoBGg6/WI/l+FAN2sjqYuQJtejIf2//+65KIuvm9Gd/O78/XvZ6p5xhHJ/ZO/75M1dL4muFA6tWMR2Bu0XVg+m2LMlb6YXJU5MNvQLG6XbUvRLj3/dIBHu2jrws1JnXxG231hmsPYgt+fPlvvb1auo9IauIt+X4dvnIy0e5v90inlQVpAh/9nO7F2YTyAIPzVaQLTvSYGuV+nl413aNto/PEicxt0hw8Rui+dfro1TsmnSiD6uneALUL/AkvoqTYFyp0dwT1viupta9hSk/7w6WdXOA9Oi7m+WT5NtVE4SOvRaa5cIvBkzME/khaWXS7cEKARoMfSrxGgm9UkAvQ/xV6/8x1M7y7pnR/uS5sRXixCx/rX622/cyyC2xp6dl3c9Tsicu7nWke6haTHSrpDJv6WeDfOI+Y82Aeun22xvg09omS9tp32k9IGRdvprpJezF08V71fOi021NOz0Y7sGtaGkXbDUWq+vwzr2Ng5QNKL+2SYsqwFdAjQBvzGjMCy6SwDj2uHSyAavq2y/LI5puXGn4vQ7lh74hN6uI2FnI+CQG4J7dMOP0eEHkW9UojlCeQb9sdLumChDftYTNoP5N4p0vlQJ/HLU+7vHbEgsV9Lnwyx+5USVl6xiPtZWsR9tkOLLgRoBOj+9sDlcoYAvRyv2asRoM8iEuvSGyYR+lKF3vsb1Va8D/z7c5Ice+J9lVGI1+HxCbE33FE0q/lz3h2C+2z615f0gGQw5vmQP10aMcZGvWMzuL9PSXyOst5E0ok98QEdc9evpLmLXYkN9eRs5Puykj5QuZm9Ug8E6FiP2xjM/rVjbtjlBtSGY8uywrHN920e7yMTz5XUt0iabQ+ipLc6gXip/CYFJ/OGRYmjQLHQ3q5a4L8AdxyrVxh3QqAlAvHSs+hmEdovvylN9FrCSDIDJxDvpkOqd58DE5UQH40o+ttJ1cLCp9N8pDQWdgNHOOjsx5jn369JmwOl2kDMtzwH8mZ/V4s4BGgE6EF30izzCNDNahIB+uwCr9/L1kqOTEYYy+otTWojt7z0v+331ydkHODth5n/ZT9jNl/LilP5/fNcWdga/OaS7irpjpIs0MW8pQvL8OAY717HL7tXtTaxNjGleVK8qy9c1cfHK1/F1+hY/J/XnmPeYgPCR2cXLNsGm/SVtu4Nvm7vtoDep+Cpt7p5Do3W/f6+yfK/N2vxZQZEXxuO418iyccKLUaX8mlYFzDX9Y9AvPx+lyLA2+1GCfE5Sh6LLYvQ3hjZC0vo/jUKcjQZAnmQD7vjeFj186sORZHJgKagvSUQ76SLpsVfyYDNMYm3j+kn0M961SaiHdxbkt2jOIB3iWOZkaZ9f9+jcsNia+guRGgEaAToXnW4BplBgG4AL403n0hiYymrVos6divRGxFlA2ShrfgYvv3ye01aYtzfrMZCxMt1nq9J+kLyA/zVJML+ZZMybKYRbWY97fhMF6kssB37wDEpbPl88RnBdxn9qVnLPIu9P7+XdLdkARwn1JqmPbT7bRjx5CrThxU0iliGyZ+rmEEPTV4Vhn5yL+Zcdify2mrzacs1ivzun273Zvrs5F+7pA63TJ2fee0yA0AM+C7MmyXtigX00ryncEO8ZE9PR1zsh6qLRh8d/wIp2JN90M57AU+hDigjBNZNYFaE9gTDUXiHPsFYN1eePwwC8T66e3K/EMGASuXeQei8yOtNhOtSBR1YujFv9rzkS9WR7J0LLfpiruP5l8UOb/rHicWSyBCgEaBLtq8u00aAbkYbC+iz84uxcSdJ70oWp6VOwCyquQhEFpqPjcN8MvHz6Vj+dypjMfuN9ump30ryfKLOx/N5BxC04Gyx3UF3r51OYl1V0sWSCOe0XHa3kWV0pzp5qHNN6BIWXh2gsYvN2Tr56vqaKLd9k7+nQ//k88oZc5YvS3LQzh8MYGNpUX0FX8/zPlS5v7H7na43niKPsQlof+d2m/zuvrX7ZQaCGExt0eOC3KjQRHpRBfP3/hKIBm9flAem4IBdiM9BJDq/d51sCW0Rel2dv7+1RM4g0B2BPDDhvn2KwNsdAp40YQJ2vWCrrVLvoZjE2+ecFxVDPLo49uYRc+enVacGD06FXWbuXZdPtLFXplMnXvCXthREgEaArts++34dAnSzGkKAPie/WJPaEtiW2/+yRovIEIHjNHueW78rfpJEwO8ly2gL0n9MhoZhJb1FMiLxGtuCswXmS1bWnjtWFqyXk2R9aDaYYLyHugoyOFsL+XvRmoDdEkx1nhTt8TLpZN46/RSHXmRL4Qc2G3p6c3ducPDCqk95zetPifneokJHu/9mCvp5WrqhN21/GSjRcB1I5aNp0Cl1zGYRWP7ePwKxw2rx2X6v7KYl2leXDT4XoR1oYH8sofvXWMjRpAjEe+IESQ9KE10soSfVBCZXWL/7vDD7rxR8sBSAmGQ6sE/EWYjjpqWeSbrLEYh5kBd9tjQr5bYu2oIDv96ysnrpIqAPAjQC9HK9ob9XI0A3qxsE6HPyy9fA3oh+uSS7fliXKBU5jBOKzt8yOlDdFlI6/Tr5yE9hWrOyD2qfzJ6q9XMwCyt0b1S7Ta7DlW6sCb3B4ThBdk9WerO8Tptp45poX56Tu1zr+sR80EYwFsJ71+6XGXgi89eV9BlJdrSNAL2uptWv5+YD/aOS5bMFJneALsXnoBIDmRd6z0yCuP9WygqtX7VBbiDQPwJx9NBReO0f66dpIm5rBD4QGBOBmCsdlAIQlZonxaavjy7eLgUX6t0kc0wV27Asth57a/LRXGouEm3t8ekUWMMsL7wdARoBemEjGcgFCNDNKgoBemN+Ifr5BMxTe7oWzX06z67bcyF9dj6Ti9jLaErNWtviu2PNYQvQ3arAg9/oowi3uBitXxG+rx+cNkRy3aT1h22QYNSNDTTsk/vkEQnQMSe6eprvXWXNWqndJR/XR77LDBZhseaFjn2bRHTFrhosz+kvgRhMfOTgMWuyfJ6lk++mHZAWYx54S4kB/a0dcgaBfhCId8aJKYbAL5kQ9qNiyEWrBLzY9LvG86RbFVxsxnvXQY4cQbxLd1etAptAYrExcE9Jxxd0XxfCwRfTsUufSCv5QYBGgC7ZvrpMGwG6GW0E6I355etRn8y1i0pbnnqesIwO06yGpnN3bPBadLb1p4Pzsjl/Vv0HhytK+oikSxeco27U4qJ+7M73vsnn+FgsoKPMdlNjTWy/gvO9RT3aAR7tZsUGX73ju8zAF43WuyavQIBeVO+T+Hse5M+L4BCfN4uO2yWYfNc2RGhvpJQOCNVlGXkWBIZEICYen0vHv+xvjonhkGqQvG5GIDbqb5+ExvMXmtzHu9dR3X2i4MOcKOh1w4wxzos9L/q8+CthBR0b7A4itUsKMGUwpU6iIUAjQPe64y2ROQToJWDNuRQBenN+sR71HOH5yfVAiXdAs1oc/t3B9GtpjfEV1hjnqNSYj3wiuevqsh3GHMV+xe2T2z6gS85R1tGiY17kzY+jJfn0W5c+0ON0pIOfWuD3ZlfvPssI0JH5wys1/5A1Kvq9gzjRDOVuN16cxOcYREotdlZB7TbuF76tL20l5uCE4R6kywFhlbxzDwTGSCAmO9+VtLekL6Q+aYtOPhAYKoE4iur27Q1Zu6MqdVIs+tCnJDnAUUww+/TuHWo9lsp3WKhbfPBcpGTbcFt8laSHFB5bEaARoEv1l67TRYBuRhwBuj4/s3pBmiN43hsuOuqnwJXzCMSpsJMk2VjS4jPxZs5JKjSQJ1SGC09fgzjq9m6r3Ft3FKui694S8yIbGrxN0jU61kyjH7gPeB7YSyOvZQVoq/guzJ6FrDe6biQ8b3UCsQD27o4X2mFV3NcASNEBH5pE6AvgjmP1yudOCDQkEC/I/07vk8/39SXZsJzcPh0CMencSdL7Kr9rVy046Qyh2TEO7FeSRVb/21nUkRddPnq6VaE5SMzNHPDwppWl3W8KHr9EgEaA7n/Pq5dDBOh6nDa6CgG6Hr9cDLI/6EPTbV1aodbL6bCuCn52t2G3B4jPG9dfvLevVRkw+DSq3UV09QkL6PdUcUv2qjbjf1dwftJVmWafE3w95zu28j9+r4JrgdlnB98/JTds3owZhQC9taQPVkcIb4IAva52vfbn5m43HOFz/8qf1f8OZACJQcHRSe2bZ1va8drbExmYLoFchPZExAEKc7c50yVDyYdIICZ5donxloLvlphg/jgFH/RJAn+wfu53q4mx7XyS3l/46GsEgH54cpkXgYfaJoQAjQDddptaV3oI0M3II0DX5xfjpn8/WZKDxlpfQYSuzzCuDHcDZnlCOo39rb6KbssXr+gdnhd8OVnodh0fax9JrxuIdrRKJUQf9yk0n4i0yN8F41hXW6u9tyT7gR60AB0gLdg5uMkVOgK5SqVzTzkCufjsgeORAxKfg0p0RB/9f56kC3e4M1WuZkgZAsMkEBNu+4L26QT7JOvly3KYeMl1RwRijuSTNS+TtEdaTNoCou1PTGIdzM4TTD7DIRBjm11weP5Ryg1YuPfwRog39/x/f9repECARoAeTu/bPKcI0M1qEgF6OX65sYU3rZ8h6TJp3hDuvJZLcXpX54L9yysx0xblv2ANUashxLv7SZKO6EjTi7mrA9DfQdJXRyxAx1zPJyI/Wfm63rGjDaYQoA9L/aG3pyPruuCIhnpxSSdLsgUHn+kRiMHDls8OOPjbAQ70+UvfIrT9MWIJPb22TIn7QyAmkX632J2PrQPDX2rbgkl/Sk1OxkQg5kg3qNwefLSge4V4B/8tBRexK4cSwuKY6qZPZYn5h4MR+ujrJQot/GJM9WL83yR9s9BcDQEaAbpP/atJXhCgm9A7a85mA4KbFxrTnLuxWU3m69EbV660npb84rqsWENv3B7zGFS/lvTsFOzt9ELvuWY9o593h0B6sySQRlusqwuuUqrwd/7mdHp+jO43gkvMjWz5/M4q1pEDk5fu03kQ6l0l2c1JqdNvq9T/2e6p29DyxZWPSZew6mlcGBIoRmDW7cZjK6HotAEP9LG77MEgt4QuPTgUqyAShsDACUTf+0myhP4AIvTAa3Sa2bcVvy2gS32in/jYpCe09u/LiYFStMum60XYbgXFmmgrnuPYaKBEO0GARoAu20u6Sx0BuhlrBOjV+OUitDckbdy1bzKMcopdHNtfLefd35VrEX66/dsenoQ2/7/EO677UnbzxGBly9yPS7psBwJpzEl6HRyvZfzu34+QdFTL6c5LLvj+p6RdkpFozNE6ePxyj1hWgL67pHdkfjqXexpXD5HArPg8VMvnWfaI0ENsjeR5zATi5enoyPabZR9WvT0+NOaKoGxLEYgJntuqgwLan2OJRWOepo9NPivlsq+Bf5eCOKGL43SHNxC80VZKZAhr01O7YwAAIABJREFUI1uHub2UaCcI0AjQY+m6XQjQDkD6o5EeO0eAbtYTQhC0xaK1Fp8GtHWqP7mf42ZPGe7dOQPHnfKmqt2W/JzYMStVauh/nrcenQI3ljTCi7Q9/jkonzcPeiuOrkT0nDdF+XauDEa+kPy8l1gbxJMj7ddKemDf18/LCtBW8d1Q+UyHQAwaHuzD8nksotCsOw47it+mkHgwnRZDSSGwOoFchPYu+YewalgdJnd2QiAmmV44WoA+sNA7JCaXPnLqCfyn+z7B7IT+8B4SQoNd2tldixcnrtu2/UHHWGqjEQdedlT0tj/R9i2WeP4U/gfbek60eQfSsZ/U9/boSGmU/YIp0v3tCpff82/7OR37or2ttrNsOk9ILhA8jrcpEkQ//H4KPBqC2djci3n8sq9Ti6Zt8svFlT2rGFRvGnEfyF3PXTKdBnxYZT15kQRh1gJ42TY+xOtny/wRSa+W9PY03mL1vHqthnsG+2N+myTHMPGnrja4zJMjLsWxKUaK5wr+jG0czJnEu/pCyXj3loXmevkzPc+7S+ZWpYThwTL1vuG1dRtZQHxOWly18nAS6TWB3MeSxWcHzbG/nrEN9rkI7UXaiyV5QdH2QqrXlU3mINAjArFg80LNffJjuOPoUe2QlVkCuQW0A38cXGgSH4t6L7xs3WAroLFP4Mfa2mIeZatLW7KXsHCLNL1gv09lQPCHAsJNtH0LQ28oMG+KxamDFrkM4QIwFq/rbB95v39rCggai+y28hXvQru8213ShwvUYVt5HWo6UY/7pfn/Fi0LqHES4RuSrpv6SG9FgQaVaI7vk3THgkf5b5PcBYx5EyY/nevqsE/t+6f+v1X2zi+xadmg+lu9NdcfImFv4Dhwr+c/dj3mz9j0iFYh1kgs2tr5JdklmIXLElbQMd79NYnP3hSfSt3FWBUGvKW0pai3d0m6R426X/sldQToXKALn3UlGujaYZCBsxGIifQb0y6sLVDGPGBE2Sx42ZLHO1a0czoFBNZDIPqerT1t+WYReiwnL9ZDlKeWJBCTzD0k+Z1ZygLMk1f7mbYF0JjfxyXrqg9p2/LIdXmjZBmzfcpUnTl53fzHQucFyS1MCdE22uB1kjjscvm7tsoR7wFbVlrYcpCpPolPUf5DUsT56Pdtlt/1/XVJtlKzEE+/r9sD6l0XPK8u6VPpFGSIW/VS2Pyq6IevSMfcxziPiT5pK3L75PU44E8b/SA2oX5WnYDwOHNKz8aANtrIvDRyIdpt5hrJP/Sd0/rU97htmY//3gbrUmWpm67He5fpPOkGl+2HkuxSwPMqu2+IvjnGTZy6nNq8LsY/uwQ7ptqEu3CLfTfyeUaqUweYt3uZKVg/R9ljbNwhuZX818pIJXi0VY8xT7LAf6vk7sPP7XUfqTNg5QK0jwt6BxJhrq1m0890YsLknRQHyfnLBCa9+cveE30f89qWtt7PBkquJkEg3jOnJhHagTLGuHibRGWOvJAxyfSxWbfTK0pqyxrS/cA/XtQ7wOH+adE55qOLI28uZxbPY5nr9YnV4uyItChzO2rDFUdYXXpB4jn75wrN4WJ9YAsqWwFbHPlbWmzWWV9sVs/54unhyf1E38TXyM9V0iap3aqYfQhwTdpxbhVvYc8nUKPP0/ebkD37vdFObV3qjT1b2nvsbkPUizmMRdMbJjGtTxsobVGMfmBx5d0poFmMQU3Ggfzdd0CyUB8jv83qYXbOez1Jdk/n4/xXyG4077beH221izrpeCyLsd5l9cf9z5uO70kWz79I38c7k/GvDtn610Sf8mksn8pqqy3l/dc+kD22OsbPVPuw50fvzNyItfWOiTHWPtGfkvWnXveTOi+GaCieUDmy4tUKHLOr3024sjSBmDD5KJWPVY7R7cZmDKO93zbtuNoyqdSRidJ1SfoQGDqB6HtewO2aLJQQoYdeq+PMf7w7/i1tYF605WK+JbnCmooFWMv4epuc/Xu+MB1NbTuT9hvsE11xpLnt9ENI9zhtC1IbLVym5YfYuvjphQT0NrIa/f6RSSBrI808DZ88tY9tu+HovVVT24XvKL0QUL1xaB+l12zxuX9MaykLs2MWXqJsdhXzksxKtw2U7gMWXW0MVXIsayOvJdLIDaQi/Z2SywQHtvQm49YzD845hdZTR/MpkX+nObt5Nm+j1Sc9PpM28yzU5f6fGftK1cxZ41JsXhwp6XEtP+qEdPrjf0Y+BtbB5hO9FvovXefimte4nzj+jOdJHiPz/lYzie4vqzMYxUvFg52PQV8Wq9DuK6qjJ8axAO862ueUfUyOecK0EdYQuBxUxkdStmvRmq2jquQxEBgNgdgU82bYPknk6Jsl3GhgU5BGBOJ96aPCB6XjhmHVs0rCFva+kxb0PpUTfp9XSYt7+kvA4sE9k3W7hVy3mQhItUyuw5rsu5K8kIyAXaUXJNHud0wLzb0qa/2LrXgs3GVwu7cYYatfB0fqu+VbvI88Z/QJhV0k2Zfwqh9bAH4lWX174ykWlaumx331CXgD5fHJj6bn/queSHAd2me3xQb7Ls8DzNXPzXCuDD3B/debsI9J/ou3XGEcyMex10h65YTXo7MtIITCcGNg40C757Bl9F0l3aJqc+ebwzzGVacXgmP8bruVhfidi+DzrD09t3esF2/6WHg+SdJPUmYib1PccGi7Puqklxub2k3G3lWQ5JumwITLjoGuV2+85VbsU9WTcvbB2O8Ya2y2CPcpBs8V6uix0XfDstyucSMop3+H5XqvLZ8DSJ0Cx8Tq+ulojY+Y4YKjTnce1jVhaeidKlsa/r7HFiddkA0R2i9zH8u7HO2+C+w8AwJzCcQ7x5MYT4yOn8CCjqYwTAIxyfSk0pNLWzos64strH1+nBZoDiAXk89BTC6HWXVryXW+yW8h2sKthVy3n2XajdOx6GU/wT7m6g27Lj/5pqCFOxur+PcyvqejDBYhLEx4ETu0jwU3r5Mun47aLtNfXX67TbG/Wx87j/JP0RBkHfUenD3/tws+16PH72XbsH2Vuw/6x/U5xQ1zi6COpeO1k8e1umOZ68DGUB7H3A9iHKMPnL1HuE25nZpVfMzc7w9b8Nun77Ul+RSvT2PZTdK8j+slH6Pq6EKz6czev5Fg+VtJdqnn8d3+1u0ayhttPt0RnxCqw7/1OsaBqT4z72N+j20jyb6L3abq9F/f73pzHbv/uu/G5ukUx8B57Sg/wXvB5HPbrvvsAqrOXMEczTT4OiCn3Z4Nbn1QZ6DJHZR7J94vlBIBdqba4ftQ7hB3vpostuzon8Hinwzs38+Rd3fGHUcfmit5mCiB2CTz5tiDUp/MrW4mioVi95BA2+9P2nkPK7nFLJWo3xJpLirylNt9WOzVWagv4hh/X0cd1s3bWK9rW+hsu08MgXubDOkDm9f4ZpbCto726XWfyPKGoH8sKHpzxRsrDjh33gINyoYi3kCz4Owggg4m/oPKuO1byZWr/z/7CdG6zfGzQNFGn2Tb77Gxn/xYpUG0zaTt9FYp09L3LCNAPzAdB/OAhgC9NOre3hCizpclPUDStyfqdmOjCordKgfX8HFWH4/lBEBvmzMZGzmB6Hue2Nq/6etSedtc8IwcIcXrkECdOVad7NSxjKiTDtf0n8AY2kwbZRhym596+fvfyxbnkDpczGjRFTBcRKj9v+fM542htmq1AO1TNv7tH1tfWoz2j63Vbf3q7y6Q1ruz9WjdwKeybH1ta39bMFtU9omNP0myVaZPsHieboO22XzMpjfksb79GuxPik37L/W6eV025evUB8u4TuFj9/ZJKVJ37hS+P92EnKxCIMRnH4Gxz75vpCM9yxw3W+W5Q7snROhrJcELEXpoNUh+x0QgRGhPfA+rJszPG0rU3zFVAmWBAAQgAAEIQAACEOglgdB4civyzQSr8yTXTzY0tAso/8wTjz0Ht2sZawUhQm+Wbu6SYzYYYS/BkSkIQKAsgWUEaEfpPoBgbGUrpMPUc7cbtny2+DzFo2J1kQcbi88vk3TjbGe4Tj+q+xyugwAEFhOI8cu+sEKEjo2zwe4ILy42V0AAAhCAAAQgAAEIQGApAvPWqvnpwSZz53Dd4AzNptMk3aUKyMUQgMAwCCwSznJfMK9NwZ+82+VdMj7DJRCWz3a3sY+kLyI+16rMsIS2T+iXS7oZPqFrceMiCJQgECK0AzAcWh0XfE62KcSEtwRx0oQABCAAAQhAAAIQGCuBRdpQXm7m2mNtBZQLAgUJLBpkYmfMwtuxlZXsvbCALlgb3SQdos33qiiaD5X0CdxuLAU+RGgHJLQIfVN8Qi/Fj4sh0CaB3BL6iMp33ZHpHYVP6DYpkxYEIAABCEAAAhCAAAQgAAEIQKABgboCtB3TW4DeBQG6Ae3135qLzw+R9KkUcNA5Yxezfv2EO44rSXq1pJvgjqM+PK6EQMsEPK75XeaTHfYH/ZTknw4RumXQJAcBCEAAAhCAAAQgAAEIQAACEFiFQF0B+vKS3irpOrgcWAVzL+4Jtxu2fH6wpE9j+dyoXkKEvoKk10u6EX2jEU9uhkATAt5AC8H5uZIcNPfv2XdN0uZeCEAAAhCAAAQgAAEIQAACEIAABBoQqCtAXy8J0JfF3UAD2uu7NSyfT05+vE9EfG6lMsIdhzdo3ijphvSPVriSCARWIRAitO+1P+gnpk0hLKFXock9EIAABCAAAQhAAAIQgAAEIACBlgjUFaBvnVxwbIfA1hL57pLJxec9JH0eq8BW4Ycl9E6S3ibJmzVhbd7qg0gMAhBYSMAitH/cL0OE9hjoD26GFuLjAghAAAIQgAAEIAABCEAAAhCAQPsE6grQ95T0FklbpEX8ovvazykprkLAR9DPLekHkvaU9IUkzIQgs0qa3HNOAiFC7yDp7ZJugK90mgkE1kYgF6GflSyhcxcda8sYD4YABCAAAQhAAAIQgAAEIAABCEyRwCIhOYS1fSW9CuvnQTWREFx+KGn3JD6Hy4hBFWQgmQ22FqFfJ+k29JeB1BzZHCOBsHb2O+7Zkg7GJ/QYq5kyQQACEIAABCAAAQhAAAIQgMAQCNQVoB8l6UW4FhhClZ6Zx3C7cYqku2H53Fm9hQhtVzXHVoEe7brGdeF+tqivdZZJHgSBiRDILaEtQj+5EqLP4BTIRGqfYkIAAhCAAAQgAAEIQAACEIBAbwjUFcUOr8TnQxCge1Nvm2Uk/A9bfN67cgfxQQIOdlpvcWpg2xS487ZYQnfKn4dBICeQW0K/MFlC/xkRmkYCAQhAAAIQgAAEIAABCEAAAhDojkAdAdo+hJ8nyVbQBFfrrm5WeVK43ThV0j5VQLz3Jx/Q9gXNpzsCIUJfTNJrJd0hC4BWp891l1OeBIFpEIix8dWSHlv9/AERehoVTykhAAEIQAACEIAABCAAAQhAYP0E6ohhW0s6WtIDsORcf4VtkoPc7caDJL03CSxxDL3XmR9h5kKE3j75oN0LdxwjrGWKNBQCuTuO10g6UNJvEaGHUn3kEwIQgAAEIAABCEAAAhCAAASGTGAzAdp/86L94pJsNXZHBOjeVnWIz3+S9AhJr0dY6UVdhQh9AUnPlfRQLKF7US9kYpoEcnccfqf9v+pkz2mMldNsDJQaAhCAAAQgAAEIQAACEIAABLojUEeAvpykN0u6fhLP6lhNd1cCnhRHy09P/k1fgOVzrxpFiNDbSHoWInSv6obMTJNAjJnHSDpI0s8RoafZECg1BCAAAQhAAAIQgAAEIAABCHRDoI4AfXVJ75a0EwJ0N5WyxFNCSPnfyjr9UEkvTlbqTiKs/ZZIjksLEQgR+oKSnplE6HgUGzqFoJMsBDYgkFtCn5D64w8RoWkvEIAABCAAAQhAAAIQgAAEIACBMgTqCNDXlfQ+SQ6oFoJnmdyQ6jIEoi7sduMQSS9K9YPwvAzF7q4NEfr8kp5W+Z89oPp9LvpUdxXAkyAwQyBcF31M0r5V4NYfpT7pYLt8IAABCEAAAhCAAAQgAAEIQAACEGiJQB0B+paSPpoW5i09lmQaEgiR2b+fmILcOcnw290weW4vRCBE6PMki/UnpTqLuiv0WJKFAAQ2IGCx2RtBH5e0J+44aCcQgAAEIAABCEAAAhCAAAQgAIH2CWwmQIdYdqdkAd3+00lxFQK5+Hy4pGdI+nsSMm3Rx6ffBNyvXIfnrn4/Jfntdr25L+KOo991R+7GR8B90T/ul5+StFeyhI733/hKTIkgAAEIQAACEIAABCAAAQhAAAIdE6gjQO+WghB2nDUeN4dA7rvUPp+PSD6fsXweVnOJ+rLl5VOTCJ3X7bBKQ24hMHwC4Y7jK5LuLelk3HEMv1IpAQQgAAEIQAACEIAABCAAAQj0g0AdFxz7SzqqH9mddC4sUFoksWhpn89PTzQQn4fZLPJ6s0/oJ2ebCVhCD7NOyfWwCfgkiU8mnCTpXlhCD7syyT0EIAABCEAAAhCAAAQgAAEI9IfAIqHLx5APlPSs/mR5kjnJrWMtVNryOeqOoIPDbRLhdsN1aBH6YETo4VYmOR8FgRChvybpnskSGncco6haCgEBCEAAAhCAAAQgAAEIQAAC6yKwkQAd1pnnTwHuHpH8ZC4SrNdVjjE/d574jCAynhqPPuXfFqEdmNAf1zv9bTz1TEmGQyDccfynpPtJ+j7uOIZTeeQUAhCAAAQgAAEIQAACEIAABPpHYJEAvZWkF0h6EILYWiovAmS5nmz57ICDEcQOy+e1VEmRh86643hiErwQoYvgJlEILCSQu+PYXdL30thLoNeF6LgAAhCAAAQgAAEIQAACEIAABCBwdgKLBOiLSHqjpDsgQHfedEJ89u/D0w9uNzqvhs4emPfF/1c99TBJWyaXHN504AMBCHRL4P/SRpB9Qu9RWUN/BxG62wrgaRCAAAQgAAEIQAACEIAABCAwDgIbCdDh4uFikt4h6cYIYZ1WeO52w/63n5DcMWD13Gk1dP6wfIPhscnXNyJ059XAAyHwDwLhjuOLkh5S+YX+OiI0rQMCEIAABCAAAQhAAAIQgAAEILAcgUUC9A6SPiTpqgjQy4FtcHUuMr9I0kFVcLozUnoI0A3ADuRWROiBVBTZnAyBsIT+kiTHQ/gyPqEnU/cUFAIQgAAEIAABCEAAAhCAAARaILBIgL6spE9KuhQCdAu0FyeRC8xHJfH5r8n6Gd+ji/mN5Yo8MOEBVaHsjmMb+uBYqpdyDJBAWEJ/U9IDJVmMJhjsACuSLEMAAhCAAAQgAAEIQAACEIBA9wQWCdBXlvRRSZdE/CpeOeHz2Q86WpL9AIf4jOVzcfy9e0DeN/dK7jguQT/sXT2RoekQyEVoB+b9ApbQ06l8SgoBCEAAAhCAAAQgAAEIQAACqxPYSIA+lyQfO75G5f/5BEnbI3ytDrnmnXHM+/WSHlZZP5+OhV1NcuO9LHfHcQ9JL5d0UfrieCuckvWeQIjQ35L0AEkOUBjvy95nngxCAAIQgAAEIAABCEAAAhCAAATWQWCRBfRtKv/Px0naFtGraPWEqPGeFOjqV4jPRXkPKXH3Uf+4jdxN0qsqC/nt6I9DqkLyOjICMV5/V9LDJX2c8XpkNUxxIAABCEAAAhCAAAQgAAEIQKBVAosE6LtKemPyP2s3EBtd32qmJpZYWD6/W9J+lfWzxWc+EMgJ5CK0++RrJF0EEZpGAoG1EYj34W8l7SPJ4zc+oddWHTwYAhCAAAQgAAEIQAACEIAABPpMYCNB2d97gb1vJXQ5GN750v8RoNurTfO1+HxuSbZ8tvj8S0SM9gCPMKUQuG4n6XWSLo4IPcJapkhDIfD3NH6fJmlvSe/FHcdQqo58QgACEIAABCAAAQhAAAIQgECXBOYJyiE+Ox+PkXSkpC0QoFuvljjG/UFJDjJ3KuJz64zHmGD4m71Jco/zL2kjw9/zgQAEuiUQJ1g8fluE/kA6KUTg2G7rgadBAAIQgAAEIAABCEAAAhCAQI8JbCZA+2+HVMLzU5IwiguO9ioyRItPStpT0k8RLdqDO4GUwhLaIvTbsYSeQI1TxD4TiM3E36eTLMdm70yE6D7XHHmDAAQgAAEIQAACEIAABCAAgU4IbCZA2zXEcyQ9OuUEAbqdKsnFZ1vM/QjL53bATiwV90+7ALhZEqG3xx3HxFoAxe0TgRChT5e0f/LTjk/oPtUQeYEABCAAAQhAAAIQgAAEIACBtRHYTIC2241XJPcQsbheW0ZH8uDg+GlJe1Q+tn+C+DySml1PMcIdx00lvUXSDojQ66kIngqBzBXO/0o6IInQ8Y7FEpomAgEIQAACEIAABCAAAQhAAAKTJbCZAH1eSa+VtBuiVivtI7d8ts/nHyM+t8J16omEleUtJL2hEr0ujU/oqTcJyr9GAnFS6M8phoI3cRGh11ghPBoCEIAABCAAAQhAAAIQgAAE1k9gMwH6/Olo/x0QtBpXVIjPJ6ZAVSdLCuvVxomTwOQJRFu6Vdo02pFNo8m3CQCsj0CcdPmjpAMlvTLz8Y8l9PrqhSdDAAIQgAAEIAABCEAAAhCAwJoIbCZAbyPpvZJujgDdqHZCjPhMEp//G8vnRjy5+ZwE3I/947Z2G0kvl3Q5RGiaCgTWRiAPTHhQcmcVmUGEXlu18GAIQAACEIAABCAAAQhAAAIQWAeBzQTobSV9sPq5AQL0ylWT+3x+sKTvIT6vzJIbFxMIdxz2Cf1SSVej7y6GxhUQKERgVoT2xhDuOArBJlkIQAACEIAABCAAAQhAAAIQ6C+BeQJ0iFgXk/QhSddExFqpAsPtxhcl7SPp24jPK3HkpuUIRP+9YRWU8FWSrkr/XQ4gV0OgRQLxHvidpLCE9nsXK+gWIZMUBCAAAQhAAAIQgAAEIAABCPSbwGYW0FeoxOd3SdoZAWvpSgzLt69XwQYfKOkkxOelGXLDagRydxw+veBAolfBHcdqMLkLAi0QyC2hD5V0dCZAI0S3AJgkIAABCEAAAhCAAAQgAAEIQKDfBDYToK9eWU8eJ+mKiFdLVWKIDV+TtJ8kW0CHVepSCXExBBoQiDZ3/RQEzf05rDEbJMutEIDACgQsNPt9+9fq3sMkHYk7jhUocgsEIAABCEAAAhCAAAQgAAEIDJLAZgK0j/C/RdJOCNC16za3fLbP5y9JOlcS/monwoUQaIlAiNC2gLZP6FsiQrdElmQgsDyBeD94I+hJkp6d3g/+Hkvo5XlyBwQgAAEIQAACEIAABCAAAQgMhMBmAvRt0/H9SyBA16rNEBccaHD35HYD8bkWOi4qSCBE6B0kHSPpFvTngrRJGgKbE/B7wu9di9BPlPRcLKFpMhCAAAQgAAEIQAACEIAABCAwdgKbCdD3kvTvlb/K7ZJ11rxrx86nbvlCfP61pN0kfRS3G3XRcV0HBEKE3l7SWyXdChG6A+o8AgLzCYQ7DovQR1TvisOTII2rJloMBCAAAQhAAAIQgAAEIAABCIySwGYC9F6SXixpGwToTes+xOffJcvnD+J2Y5R9ZeiFCmv8i0t6vSSfcMAn9NBrlfwPlUC43PA7+BWS9pd0RrKGxh3HUGuVfEMAAhCAAAQgAAEIQAACEIDAXAKbCdCPkPQ8SedFgN6w9Wxk+WwBARGBTtc3AiFCX1DSayTdk77dtyoiPxMiMCtCHyDpL5yemVALoKgQgAAEIAABCEAAAhCAAAQmQmAzAdr+KX082NfEkeGJYKlVzBCff5Msn09AOKjFjYvWSyD689ZJhL437jjWWyE8ffIE4l1iS+hHSzqdd8nk2wQAIAABCEAAAhCAAAQgAAEIjIrAZgL0Ick3pQuMAH32ag8ef5JkVyXH43ZjVP1i7IUJX7PbJj/vuyJCj73KKV/PCYQIbR/tD5f0W0TontcY2YMABCAAAQhAAAIQgAAEIACB2gQ2Cyx4ZGWJdRDC1DlYhlDwB0n7paBuFvRwu1G72XFhDwiECH0RSS+VZBE6dwnQgyySBQhMhkDe945LPqFPQYSeTP1TUAhAAAIQgAAEIAABCEAAAqMmsJkAfbQk+4EOwXXUIGoWLlj8MVmpHZMsn/09Pp9rQuSy3hAIdxzbSTpK0v1Sf/f3m40NvSkAGYHAyAjEO+Ztkh4l6VecrhlZDVMcCEAAAhCAAAQgAAEIQAACEySwmcj0Kkn7IkD/o1Xkls/7S3oj1mkT7DHjK3JYQm8v6UWI0OOrYEo0KAK5JbRFaL9rTuVdM6g6JLMQgAAEIAABCEAAAhCAAAQgMENgMwH69ZIegAB9JrEQn+2X87GSXpcEAdxu0KXGQOBckv6vcsVhEfrFku6LJfQYqpUyDJRALkIfK+mRiNADrUmyDQEIQAACEIAABCAAAQhAAAJnEthIgPb3XvjeBwH6H+LzaZIeL+k1iM/0nhESyC2hnydpD3xCj7CWKdKQCESwW1tC2x3Wr3HHMaTqI68QgAAEIAABCEAAAhCAAAQgEAQ2EqC3SAL03ScuQIcA8HtJj5H02iTa4++ZPjRGAmEJva2kZ0l68MT7/xjrmDINi0DuE9r90cFvY7NoWCUhtxCAAAQgAAEIQAACEIAABCAwWQIbCdAWoN4i6XYTFqBy8fnRuN2YbB+ZWsFD3LqApOdKeiiW0FNrApS3RwRydxzHpU0hb4giQveoksgKBCAAAQhAAAIQgAAEIAABCGxOYFaA9v+94N0uCdC7TFSADvH5jGT5/BLcbtCVJkQgxoEtkwjt4//+RL+YEAqKCoFeELCPdp9QeGfaFDoFEboX9UImIAABCEAAAhCAAAQgAAEIQKAGgY0E6B0lHSPpphMUncLi7O+Z+ByCXA2kXAKBURDILSwPlPTMJIC5cJsFLx1F4SkEBHpIwBui55H0IUm7S3JQXCyhe1hRZAkCEIAABCAAAQhAAAIQgAAEzk5gIwH6cpLeJOkGExOg7W/TH1ubHSDpZVg+02UmTCDGB2/K2P/s0ZLsHz780k4YDUWHwFoIhCX0R5II7cCg8dZHAAAZBklEQVSEiNBrqQoeCgEIQAACEIAABCAAAQhAAAJ1CWwkQF9L0hsk/euEBOjc1+bDJP074nPdZsR1IybgMcICl4WvB6ZNGYvQIYSNuOgUDQK9JBB97wRJe0qyO44IINrLDJMpCEAAAhCAAAQgAAEIQAACEJg2gY0E6OsmAfoqExGgLT6Hf9vDKsHt8ORmIETpabcSSg8B6dyS7JbmrpLsE30HRGiaBQTWRsB90X3yxOQT+ltYQq+tLngwBCAAAQhAAAIQgAAEIAABCCwgsJEAfRNJr5dkVxxjDzwW4rOtPJ9duRc4VNLfEjcEaLoQBP5JII76X03S6yRdO40PvgK/0LQUCHRLIFzhfFPSA6rNof9EhO62AngaBCAAAQhAAAIQgAAEIAABCNQjMCsahcB0W0mvlXSJiQjQ5vDcSnh+kiQHeiLoYL32w1XTIxBH/a9YWWA+XdJ9EgL8Qk+vLVDi9RPIRei9JX0ZdxzrrxRyAAEIQAACEIAABCAAAQhAAAJnJ7CRAH1nSa+pjtpfdMQCdG75/CJJT6h+/oL4TBeBwEICIUJvVW3YHCzp0ZK2JDjhQm5cAIESBMIdxzdSsNAvIkKXwEyaEIAABCAAAQhAAAIQgAAEILAqgY0E6F0rH6+vkrT1qgn3/L5cfH6TJAcd/CPic89rjez1iUCclnBAwt0rwetpyS90HsyzT/klLxAYM4GwhP6BpP0lfThzi4MrqTHXPGWDAAQgAAEIQAACEIAABCAwAAKbCdCvlLTNSC2gw6/1myU9UtJpiM8DaK1ksW8Eclc1t6mCFD5Z0i1TJnHJ0bfaIj9jJ/B/yfL5hykw4Qn4hB57lVM+CEAAAhCAAAQgAAEIQAACwyCwkQBtX5Ivl2TrxjF9cutMi892HXAqi/QxVTFl6ZiAxxBbQ1v8ulQSofeUdL6Rbl51jJfHQWApAiFCnyxpP0kf5f22FD8uhgAEIAABCEAAAhCAAAQgAIECBDYSoO2S4qUFnrfOJGfdblh8/jWL83VWCc8eEYFwyXFeSQ+o+tXhki6eRGgXc3asGVHRKQoEekUgTh/8j6R9JX08vefiHdirzJIZCEAAAhCAAAQgAAEIQAACEBg/gY0E6EdIOnpkxQ+3G/b5jPg8ssqlOL0gkLvkuKYkB/e8ecpZWGb2IqNkAgIjJxAi9I8l7VW5xvmkpHNXJxQcsJAPBCAAAQhAAAIQgAAEIAABCECgUwKzAvS50lH6J0h65kiO0Ft49mLcZbP4/BjcbnTaxnjYtAh4TPGP+9wFquCej5N0YApoil/oabUFSrteArHpY0ton0o4kRM/660Qng4BCEAAAhCAAAQgAAEIQGCqBMYuQOduN45Jls+/YRE+1eZOuTskEC45/MhbVxtAT5N04/R8hOgOK4JHTZpA7o7Dvtk/w/tv0u2BwkMAAhCAAAQgAAEIQAACEFgLgY0E6EOSD9dwW7GWzLXw0LAAe6OkR1UC9O9YfLdAlSQgUJ9AnKq4sKSHSzpI0lbJQtqpWKjmAwEIlCOQu+OwCP3pdCLI70c+EIAABCAAAQhAAAIQgAAEIACB4gQ28gH9dEkHD9wFR4jPx0lyUEUsn4s3Jx4AgbkEct+z169cdDxV0u3TlfiGptFAoDyB6Gc/k/RgSR9kM7Y8dJ4AAQhAAAIQgAAEIAABCEAAAmcR2EiAtv9n+4EeogV07nbjfZL2rSwvT2GxTZOHwFoJxFjj/mmrZwcCdd/cOeXKVprhP3qtGeXhEBgpgbCE9mbsgyS9K/XFeGeOtNgUCwIQgAAEIAABCEAAAhCAAATWTSAXoP3vEJyPqgL1PWKgAnQsst8rae/K9cZpiM/rbmY8HwL/IJD7hr5CCgrqAGkOWOgPFtE0FgiUIxDvR78XHyLpeETocrBJGQIQgAAEIAABCEAAAhCAAATOIjBPgLZA9FJJ+w1QgI7F9fsl7VOJ6KciPtPUIdA7Ah53PM5YbLZ7DrvlOFLSjdL/sYbuXZWRoRERiE0enww6QNJbU9liE3pERaUoEIAABCAAAQhAAAIQgAAEINAHAhtZQB+dAoYNyQVHLKq/JOnulYD+C8TnPjQx8gCBDQnkgtcFJd03bRzdMN3h8Wd2owycEIBAcwKxWfv75JPdp578DnWf9N/4QAACEIAABCAAAQhAAAIQgAAEWiMwT4DeUtLLkvuKoQjQsZj+hqT7S/Lv/Kh/a8BICAIQaJ1ALkRfOvmn3UPSZTIhOnxHt/5wEoTARAnEe/Nv1Wmnp0h6dhKfsYSeaIOg2BCAAAQgAAEIQAACEIAABEoRmCdAX0jSKyTdZyAuOHLx2W43TpJ0rmTNVYob6UIAAu0SiACEYX15A0n3kGT/0P+SHoVrjnaZkxoE4v15erKEfk5675tMnECAEgQgAAEIQAACEIAABCAAAQhAoBGBeQK0j8JbgN51AAJ0LJ6/mSy2v4zlc6P2wM0QWDeBGJPi9MW1Je0v6c6StkuZwzXHumuJ54+JQPQ1i9CHJ0vo+A53HGOqacoCAQhAAAIQgAAEIAABCEBgTQRyATpcVlxM0qsl3annAnSIz/+d/MaeiOXzmloRj4VA+wRyNwB2C3QTSQ+WdJtMiMYiun3upDhNAiE4nyHpWdUJokOyIMVYQk+zTVBqCEAAAhCAAAQgAAEIQAACrRGYJ0DvIOl1Sejpqw/oEJ9PlvQQSR9DfG6tTZAQBPpCwOOTN8YcHM0f//v2yc/7XSRtnb7v6zjVF47kAwJ1CMR71dc+vfIHfWjWv+rczzUQgAAEIAABCEAAAhCAAAQgAIG5BOYJ0JdMAvQuPbWAthhlH8//kyyfP5kstbDSopFDYJwE8nEqghHetgo2ei9Jd59xzRFidH7POKlQKgi0T8D9J/qY3XE4OGHuFqf9J5IiBCAAAQhAAAIQgAAEIAABCIyewEYW0K+XdOseCtAhPv8w+Xz+NJbPo2+jFBACOYFwFeTvvBF1FUkPlbS7pG3ThbbktIjmv/OBAASWI+C+4z7k/nNYCk6ICL0cQ66GAAQgAAEIQAACEIAABCAAgYzAPAH6ypLeLOlaPROgw7Lxx+kI/mcQn2nLEJgkAY9bFsf+npX+SpIOkHRTSVdL3+fWnJMERaEhsCKBPNAnIvSKELkNAhCAAAQgAAEIQAACEIAABM4iMBQBOne7sVvlB/YLyR+srbT4QAAC0yTg8SuCFYZgtn1yzXH/FLgwJ0PQwmm2E0q9GgHccazGjbsgAAEIQAACEIAABCAAAQhAYIbAEAToXHy+n6QvIj7TjiEAgTljWR6w0O44biBpD0n3kHT+7HpbTvta//CBAAQ2JpC743haFpgwd4UDPwhAAAIQgAAEIAABCEAAAhCAwKYE5gnQV6/8qh4rya44wu3FujDmbjd2TeKzj95blOYDAQhAYJZACMvhnmOLNJbdNfmJ3knS+dJNHkd8PQELaUcQ2FyE9l/dT45IPqHPIPgvTQYCEIAABCAAAQhAAAIQgAAE6hLIhZcQdq8n6ThJO65ZgLaAdG5JP5d0Tyyf61Yp10EAAkkc8/iWu+m5kKQ7SrIYfcM0xgWscDcQbj2ACAEI/JNAuLjxN0dJeqKkP3MaiSYCAQhAAAIQgAAEIAABCEAAAnUI9FWADrcbp0jaU9IJLHTrVCfXQAACcwjEOBcimje2HGT19unnxjP3ePzxPbjooDlB4OwE4lTSSyUdKOl03s00EQhAAAIQgAAEIAABCEAAAhBYRGCeAH1dSW9fowV0LHBPk+RAYh9igbuoGvk7BCBQg0BYN+dW0XbJce0kRN9OkoMYbpnSwiq6BlQumRSB2MRxX8pF6AgGOikYFBYCEIAABCAAAQhAAAIQgAAE6hGYJ0DfVNI7JF10DS44LAzZ6vCXkvaV9AHE53oVyVUQgEBtAvm4F4KagxReSpLHv/tUm3D/KumSWYq5CwJ/jd/o2ri5cGQEZkXoQyX9hnf1yGqZ4kAAAhCAAAQgAAEIQAACEGiRwDwB+laVReB7JG3VsQAd4vMfJD1Q0vHJB3QEE2ux2CQFAQhA4EwC86yiPfbZF/5tknW0T4V4Qy4+uWU0YjQNaaoEQoh+p6RHSfoZIvRUmwLlhgAEIAABCEAAAhCAAAQgsDmBjQTod0vaukMBOtxu/FXS41OQowiKSB1CAAIQKE0ghOgQl+N520i6maRrSvLmnIVpf5d/covQ0vkkfQj0hUDe7t8v6UHp9BLuOPpSQ+QDAhCAAAQgAAEIQAACEIBATwj0QYAOy2cHMzpY0ouS8G1Es8fee4KNbEAAAiMmMBu0MIpqlxxXknQjSXdO/77QjDuO8C8dgvaIMVE0CJz5jvaPXWdZhPbpJQcP9v9zX+ugggAEIAABCEAAAhCAAAQgAIEJE5gnQO8iyRbQ9okalsmlEEX6f5H0JEkvTA9CeC5FnHQhAIFlCORCci6oOVjhZVPwwn+TdOkUwHCLbAz7vyTEIUYvQ5xrh0jArrLOndx3PTy54+AU0xBrkjxDAAIQgAAEIAABCEAAAhAoQCAXoL149CLy7lUArrdL8uKxpAAdaVuksfj87FQ+ju8WqGiShAAEGhOwVafHJwvR+SaZx05bRttn9C0l7SzpCkl8joeGGO3/E8CwcVWQQA8JuI173vBJSXtL+hGW0D2sJbIEAQhAAAIQgAAEIAABCEBgDQTmCdB3SwK0RZVSArQFHD/bC9ZnSHqmJPt/9gfr5zU0BB4JAQjUJrCRVXQkcEVJ15F0DUm3SIEMwzI6rvE4F+MgFtK10XNhzwmES60TJe2ZRGgsoXteaWQPAhCAAAQgAAEIQAACEIBAaQLrEKBjgerfh0s6IlleY/lcurZJHwIQKEVgI1H6opJ2SMELb5eEaf/folz+8ekTf8LKGivpUjVFuqUJhCX0pysBeh9JJ6f27u/5QAACEIAABCAAAQhAAAIQgMAECcwToO8q6fjkz7FtC+hIz2KLxWdbP8fRdAIWTbABUmQIjJCARWT/eLzLRTd/d4FkGX3bZB19qSRQnyfjgHX0CBvFxIo0T4QmMOHEGgHFhQAEIAABCEAAAhCAAAQgEATmCdD3knRsAR/Qcdzc4vNTJT0Ly2caIgQgMHICFt38sag8z73QZSTdqNr0u1ryI223HQ5uOO+Tp4HbjpE3nBEUL047fS75hP4+PqFHUKsUAQIQgAAEIAABCEAAAhCAwAoE5gnQu0s6JvlobssCOg84+BRJRybLQNxurFBp3AIBCAyawEbuOs6bRGiL0ldJ7jpuIOmSMwENo/AW+ELkQ5AedJMYbebDEvqzkh4k6Tu44xhtXVMwCEAAAhCAAAQgAAEIQAACGxLoQoCedbthn89hDU3AQRonBCAwZQIeg8NKetZH7raSLizp0pKum/xIX1XSRSRtU50iOd8MOCykp9yS+lv2EKEdmHA/Sd/GErq/lUXOIAABCEAAAhCAAAQgAAEIlCBQWoDO3W5YeCbgYIlaJE0IQGAMBGI8jpMh+Qadv7PgvFUSpK8pyT9XTBbStpK+4AYQ5m30EeRwDC1mOGUIS31bQj9U0n8hQg+n8sgpBCAAAQhAAAIQgAAEIACBpgTmCdC7SXpTCy44QvTwM55ZWT0fis/nptXF/RCAwIQI5OPzRqdFLEpfXtLOkuy6Y8dq/L5C+m6H5O5gHrJZa2lfgyg9oca1hqKGCP0fkvaX9CVE6DXUAo+EAAQgAAEIQAACEIAABCCwBgK54HCu5Jd5H0mvbkmAdvovkfR4Sadnaa6hqDwSAhCAwGAJ5NbRLsRGQQ39t0tJ2ilZRl9Ckt122Ke0XXnYfcd5FgjTOSRE6cE2mV5mPETor0t6MCJ0L+uITEEAAhCAAAQgAAEIQAACEGidQC4u2A+pF4cHSHphetIqQQhzS71XVMLzQZJ+j/jcet2RIAQgMG0C88TheZbSF5C0vST7lP4XSVdOgvTlJF1W0vmTew9fN+8TYvfs8xCnp93+Vi19iNB2w7G3pJOwhF4VJfdBAAIQgAAEIAABCEAAAhAYBoF5AvSjK1+iL1hRgJ4Vn/+fpD8gPg+jMZBLCEBgFARmraUt+M1+7LrDPxal7arDbjuulFx32FLaf7tYtRl5oSxIYp7GbJr5uwRhehTNqGghIjChReiHSfpMssqfDcRZNBMkDgEIQAACEIAABCAAAQhAAALdEGjbAjosm96QLKl/x6Kym4rkKRCAAAQ2IOBxPn58icfpjXxK++9202GL6X9NbjssUNulh4Mc+t8Xl7T1Bs/aLF2EaZpoTiBE6FOTJfQHsISmgUAAAhCAAAQgAAEIQAACEBgngbYE6DiibTceH5S0r6RfsJgcZ6OhVBCAwKAJzForh2i8SDzeLvmVthuPS0qyf2lbSTv4oQMh2p2HYwks+sT7YtbF06zl9qJ0+PvwCcSmtUXoPSSdwLxh+JVKCSAAAQhAAAIQgAAEIAABCMwSaEuA/rukc0v6sKQHSvo5bjdobBCAAAQGSSAXguPfG7lG8N+3Sa467K7jwpkgbZH6iikoov1LO/jhljVEar9PcnE6t+DGinqQTWrTTIcI7VgR95T0cUTo8VUyJYIABCAAAQhAAAIQgAAEpk1gngD9yEpEeHHCUicIYSweP5TEZ1s+2woOX47TbluUHgIQGA+BeFf4lEsIwh77F43zfhf4x647wte0f9vPtH/bB7XdeYSIbd/Tm4nMfqZ/Zq2lsZ4edlvLAxPeqZpL/JhN7GFXKLmHAAQgAAEIQAACEIAABCCQE5hdtFtwfqKkZ2Q+QjcTA8KHo4/N7inpFCyXaGAQgAAEJkNg1lo6d69RB4IFbfuUtlsP/7YFtX/bB7W/s0Dtf/u3v7cl9SqfyNe8e2ffcVhZr0K4+T0hQj9uJhBy85RJAQIQgAAEIAABCEAAAhCAAATWSiAXD8La2eLzQVmuNlqMn5GOVH9a0v3w+bzWeuThEIAABPpMYJ5bD3/nTczNfE9bcHbww60ya2m78bB7D/uftji9YxYYMURqp13HH/UssxCqLYbGZ9Zntr+f912f+Q8hb9EO3pROU3mOYc6btY8hlIs8QgACEIAABCAAAQhAAAIQmDyBfBEdbjMeWi3sX5bIbOSCIyyfPyPp/um4rC3Z8kX75OECAAIQgAAENiUQ7jxC1I3/+92zSJz2PY49YLcd502Cs3/bpYcDJoYltf9tkTq+t5X1Fskfte+3oH3+lJb/v+xn1g1JHYtqrKzPSTlcq7xH0q6S/oYAvWxT5HoIQAACEIAABCAAAQhAAAL9JDBPgL6ppHcna7MQoHMrJH9nsfmzyfL5p7jd6GflkisIQAACAyawyMp4mQ3P8F3t3w6GaNH6Ismlx0WTWG0ra//bf/Nvi9T2Te3vQ6S2iG2R29+FaO002/4ssvqd9/dVRe1V7ytRZufl6ZXV81OS5fMiDm3ngfQgAAEIQAACEIAABCAAAQhAoACB2YVnLM6PkGQ/jPEJy6S4/sRk+fwTxOcCtUKSEIAABCBQl8AiAbWJiGmxOsRm/7Y7EIvRF8oEaPuntijt7y1Y+/9xn+/xj12JRDpxnd+3JcTrutxyLrOMFjFbxHyzPMy711bktj4/TdIukr6C9XPdauQ6CEAAAhCAAAQgAAEIQAAC/Scw76iwF572rfl4SXsnK7EoyZ8kfVzSY6qgg/+djjzPHj/uf6nJIQQgAAEITIXAPMEz/24zsXWREDuPoQXmcO3hf1ucDoHaVtXh/sPf+TqL0/5ti2wL0rastpBtkTtcjNjy2mn5t9+5Frn9fwvdIWL73y6X/2+XWnFaKXxhz37fREQu0XbscuPJFY/nlEicNCEAAQhAAAIQgAAEIAABCEBgfQQ2Wph74epF8vUk3VXSTinI4OckfUzSb7B8Xl+l8WQIQAACEChCoKkou4pgPVuQOInkd3BYSVtctpDs3/F+tjgd3zsNC9nOvy2tLVT/PYnZFrItWoc1tk80WeT29U7LVt3+t7/P/+/7QwAPLv67he88wGPkKy+Hr4+8zTLx/S5XuPg6Pc0vXiXJPw4+6E8bLIs0EhKFAAQgAAEIQAACEIAABCAAgeUIbLTYzn0+e3FpSy0vCmNhSGT65ThzNQQgAAEITIvAZmL2vL+F4FpSeA1r6dz9x6wrkPz/zqdF6FyAtrAcQrhr1PMDW2zPCtD+zn+bLY+DQPp+C95+1qmSTkq/nQbzi2n1E0oLAQhAAAIQgAAEIAABCEyAwKIFsv+eB3oKq6WSC+QJYKeIEIAABCAAgbkEFrkMmb1p9vqNfDv3/b2di9w0DQhAAAIQgAAEIAABCEAAAhAYEYE6x43r+socERaKAgEIQAACEBgVgTrv+3kFrnNfU3F7drN7VOApDAQgAAEIQAACEIAABCAAgakTqLOwnDojyg8BCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIrEECAXgEat0AAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgMBiAgjQixlxBQQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCKxAAAF6BWjcAgEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAosJ/H+lkAwbFzRbBAAAAABJRU5ErkJggg==", + "created": 1722538387275, + "lastRetrieved": 1722538387275 + }, + "8a405086d877b8b98996d7386da4ece965e92454": { + "mimeType": "image/png", + "id": "8a405086d877b8b98996d7386da4ece965e92454", + "dataURL": "data:image/png;base64,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", + "created": 1722538515722, + "lastRetrieved": 1722538515722 + }, + "b001d66de9fa144d4d413562a3a62181d0d4450e": { + "mimeType": "image/png", + "id": "b001d66de9fa144d4d413562a3a62181d0d4450e", + "dataURL": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABNoAAAHwCAYAAABwhAK9AAAAAXNSR0IArs4c6QAAIABJREFUeF7snQm4jtX6/9dpEoWMlQybSH6oiJSKXCSFilRHw0lJVJo1J42nTpNGpVJySMoxnAaOyCE/kgyVkkhHSqNMSYN//a/PfX7L2Tli7/2+63mf93m+67reaxv2fobPWvt51vqu733ff/j1119/dWoiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIZEfiDhLaM+OmHRUAEREAEREAEREAEREAEREAEREAEREAERMAISGjTQBABERABERABERABERABERABERABERABERCBLBCQ0JYFiDqECIiACIiACIiACIiACIiACIiACIiACIiACEho0xgQAREQAREQAREQAREQAREQAREQAREQAREQgSwQkNCWBYg6hAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAhIaNMYEAEREAEREAEREAEREAEREAEREAEREAEREIEsEJDQlgWIOoQIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAISGjTGBABERABERABERABERABERABERABERABERCBLBCQ0JYFiDqECIiACIiACIiACIiACIiACIiACIiACIiACEho0xgQAREQAREQAREQAREQAREQAREQAREQAREQgSwQkNCWBYg6hAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAhIaNMYEAEREAEREAEREAEREAEREAEREAEREAEREIEsEJDQlgWIOoQIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAISGjTGBABERABERABERABERABERABERABERABERCBLBCQ0JYFiDqECIiACIiACIiACIiACIiACIiACIiACIiACEho0xgQAREQAREQAREQAREQAREQAREQAREQAREQgSwQkNCWBYg6hAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAhIaNMYEAEREAEREAEREAEREAEREAEREAEREAEREIEsEJDQlgWIOoQIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAISGjTGBABERABERABERABERABERABERABERABERCBLBCQ0JYFiDqECIiACIiACIiACIiACIiACIiACIiACIiACEho0xgQAREQAREQAREQAREQAREQAREQAREQAREQgSwQkNCWBYg6hAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAhIaNMYEIEEEPj555+d//z444+Ozw8//OA2btxof+b/vv/+e/fdd9+53Xff3ZUvX97tsMMObuedd3alSpXa/ClTpoz9/4477pgAKroFERABERABERABERABERABERABEYiWgIS2aHnrbCIQhAAi2tq1a92aNWvc6tWr3apVq9xXX31lH/7Mv61cudL99NNPbtddd3UNGjQwcQ1hrUKFCq5SpUquatWqrnr16q5GjRr2PWoiIAIiIAIiIAIiIAIiIAIiIAIiIALFIyChrXi89N0ikDMC33zzzWYBzYtn69atM4ENpxp/9q61DRs2uF9++eU3n//3//6f44NbDScb7Q9/+IM52/ggriG48UF8K1eunDnfcLjx4e985f8Q5fwxcgZEJxYBERABERABERABERABERABERCBmBGQ0BazDtHliMDvEVi4cKFbsGCBfd577z0LCcWhRlgoAtqvv/76mx/d8u/bI4vo5ttOO+3kdtllFxPT+FSrVs2cbrVq1TI3XOPGjV3ZsmW3d0j9vwiIgAiIgAiIgAiIgAiIgAiIgAikioCEtlR1t242HwisX7/effrpp27FihW/+fBvmzZtso93p/EV5xqiWnGFtW2xwOGG88273fyf+coHVxvCG5+6deu6OnXquL322sv+XU0EREAEREAEREAEREAEREAEREAE0kpAQltae173HQsCCGU0X8AAd9oXX3zh5s6d6+bNm+c++OADK2rAxwtqub5wnG98cLyVLl3aFRQUuJYtW7qGDRua4EbuN19kQUUVct1bOr8IiIAIiIAIiIAIiIAIiIAIiECUBCS0RUlb5xKBLQjgXiO3GqLa/PnzTVj7+uuv/8u5houNlk3XWiad4XO7EWKKmMZXxLW9997bHXTQQa5Jkyb2VQ63TCjrZ0VABERABERABERABERABERABPKNgIS2fOsxXW9eE/ChnhQw8JVAly9f7qZOner4unHjRsu7FhdBrTiwfZEFKpkisrVp08YcbnvssYcVUVBOt+LQ1PeKgAiIgAiIgAiIgAiIgAiIgAjkIwEJbfnYa7rmvCVACCgVQnGwTZo0yb3zzjsmrm2Zcy0fb9C73LzDjdBSiie0bdvWhLdGjRrl423pmkVABERABERABERABERABERABESgyAQktBUZlb5RBEpGABHt+++/t9xrFDRYsmSJmz17tlu2bJnlXiM/W9IaohuC26677mqOthYtWrjmzZtb8QQqmOJ6I9RUTQREQAREQAREQAREQAREQAREQASSREBCW5J6U/cSSwKIaStXrjQHG59Vq1ZZeCh51+JS4CAEOO9wo3Ip7jZEt2OOOca1b9/eBDflbwtBXccUAREQAREQAREQAREQAREQARHIJQEJbbmkr3MnmgB52BDVFixY4ObMmWOVRAkTjVMF0ag6oHD+trp167oDDjjAqpQ2aNDABDe526LqCZ1HBERABERABERABERABERABEQgJAEJbSHp6tipJkCI6LvvvusGDx5slUWT7mDbXmfjcKMhuu22224msp199tkmuJUqVcr+XU0EREAEREAEREAEREAEREAEREAE8pmAhLZ87j1deywJILDhYps1a5YJbbjYyMOW5DDR4nQEghsONkJJydd21FFHudatW7u99trLlS9fvjiH0veKgAiIgAiIgAiIgAiIgAiIgAiIQKwISGiLVXfoYvKZwM8//+z4kIdt2LBh7uuvv3YbNmzI51sKeu1ecCtbtqw799xzXdOmTS13GyKc3G1B0evgIiACIiACIiACIiACIiACIiACgQhIaAsEVodNDwGqiiKwLVq0yL366qtuypQpJrB54S09JIp3pwhtfCiUULp0aXfggQe6E044wdWpU8cENzUREAEREAEREAEREAEREAEREAERyDcCEtryrcd0vbEigMj23XffuRUrVpjA9ve//919//33VlX0119/jdW1xvliENxwth1yyCHuyCOPdM2aNbMw0jJlysT5snVtIiACIiACIiACIiACIiACIiACIvAbAhLaNCBEoIQEvMiGk41QUb5SURQnG/nY1IpHgJBRPghuRx99tGvXrp1VJ1UTAREQAREQAREQAREQAREQAREQgXwhIKEtX3pK1xkrAohpONcoejB16lT3z3/+0/6O+CYnW2ZdRRgpTrZjjjnGtW3b1kJJVSQhM6b6aREQAREQAREQAREQAREQAREQgWgISGiLhrPOkjAC69evdytXrnQDBw5077//vlUV3bRpk0S2LPTzDjvs4HbaaSfL21a/fn3Xu3dv16RJkywcWYcQAREQAREQAREQAREQAREQAREQgbAEJLSF5aujJ4yAL3Awe/ZsN23aNPtQ+EBOtux2NDnbvNh21FFHuQ4dOriGDRtaWKmaCIiACIiACIiACIiACIiACIiACMSVgIS2uPaMriuWBAgPpfjBnXfe6ebMmWNFDxDf1LJPALFtxx13tDDSpk2buosvvtgVFBRk/0Q6ogiIgAiIgAiIgAiIgAiIgAiIgAhkiYCEtiyB1GHSQQBxjZxs//jHPxzho3Kyhe13xDYKJOy2226Ws61Vq1bu4IMPtn9TEwEREAEREAEREAEREAEREAEREIG4EZDQFrce0fXElgCi2pAhQ9yzzz5r1UVxs6lFQ8CLbVQj7du3r0JIo8Gus4iACIiACIiACIiACIiACIiACBSTgIS2YgLTt6eTwL/+9S8LFR05cqQVQUB046MWDQEKJCC2lStXzp177rnugAMOsEIJaiIgAiIgAiIgAiIgAiIgAiIgAiIQJwIS2uLUG7qW2BFATKOi6MyZM93QoUPdJ598Yjna1HJDgBDSWrVqua5du7rjjjvOxDfyuKmJgAiIgAiIgAiIgAiIgAiIgAiIQBwISGiLQy/oGmJLYO3atW7ZsmVu7Nix7p///KeJbip+kLvuohIp4hrFEQghrVq1qqtQoULuLkhnFgEREAEREAEREAEREAEREAEREIFCBCS0aTiIwO8QQFBDZJs4caJ76aWX3Jo1axQuGpPRgrh22mmnuZYtW7oGDRrE5Kp0GSIgAiIgAiIgAiIgAiIgAiIgAmknIKEt7SNA979VAohsuNlmzJjhHnnkEQsXpfjBr7/+KmIxILDrrrtaJdLzzjvPnXzyyTG4Il2CCIiACIiACIiACIiACIiACIiACDgnoU2jQAS2QgCRjbxs48ePd++++65VGZXIFp+hQl42Qkhbt27tevXq5apUqaJKpPHpHl2JCIiACIiACIiACIiACIiACKSWgIS21Ha9bnxbBD777DN36623uvfee89ENlUYjd94QWyrWLGiO/PMM90RRxzhCgoK4neRuiIREAEREAEREAEREAEREAEREIFUEZDQlqru1s0WhcCKFSvcggUL3AMPPODWrVtnIls+utn+8Ic/uB122ME+hRv3wueXX37Jy/vy98L9ET5avXp117t3b9eiRQtVIS3KANf3iIAIiIAIiIAIiIAIiIAIiIAIBCMgoS0YWh04Hwkgqk2fPt1NmDDBzZo1y23YsCEfb8OuGSFql112cVTq5M++IbBt2rTJBMR8d+rhaiNfW48ePVy3bt1cmTJlTGxTEwEREAEREAEREAEREAEREAEREIFcEJDQlgvqOmdsCSA8DRw40L3yyivu+++/twII+dAQnBDUEJn4ID7VqFHDVa1a1ZUrV+434tOPP/5o94Zbj1x0q1evNkHRC2+IcHz8vcfZzefFxHr16llRhMMOO8xVrlw5H7pM1ygCIiACIiACIiACIiACIiACIpBAAhLaEtipuqWSEaDSKNVF+/Tp4z7++ONYh4wiMBX+eHGtZs2armnTpu7ggw92++23n9t9991NdNtaI/fcxo0bHfnoCJflw30vXrzYrVmzxv4P95v/cIw4im6IjNwn90xhhLp16zr+TU0EREAEREAEREAEREAEREAEREAEoiYgoS1q4jpfbAksWrTIzZ071z399NMmNMVZWPLCGgITghrutWrVqpmDrVKlSvapUKHCNnOW4WBDXERQQ2D0H1xuq1atcl999ZWDydKlS+17cMLFMV8dgiM8YHHJJZdYrjbuX2JbbH/VdGEiIAIiIAIiIAIiIAIiIAIikFgCEtoS27W6seISePHFF93IkSPN2RXH3Gw+PJS8a7jUmjVr5po3b+4OOuggE9jIT5btNn/+fDdv3jw3adIkE94IJ0Wci6Pgxv23b9/edezY0TVs2PB3nXzZZqTjiYAIiIAIiIAIiIAIiIAIiIAIiIAnIKFNY0EE/o/Afffd58aNG2fOLcSkuDQfIkqFTQS1Vq1ambiGY81/SpUqFcTB5XO4ff31127ZsmVu5syZbuHCheZ+I49bnEJJESDJR9e1a1fXvXt3V758+bh0oa5DBERABERABERABERABERABEQgJQQktKWko3Wbv09g/fr1Fip55513mnurcE6yXHJDYNthhx2sciif+vXruzZt2piLrU6dOpFfGkUT3nnnHTdt2jT3+uuvbw4nhVccBDdfgbRx48auf//+JkoqfDTyYaITioAIiIAIiIAIiIAIiIAIiECqCUhoS3X36+YhgFNrzpw5bsiQISa4xUE04roQicg9RhVNkvzXqlXL8rBtq8BByB7F5Ue1UkJIly9f7kaPHm3uNsJJcbflunlhsmLFiu7+++83XiHCaXN9nzq/CIiACIiACIiACIiACIiACIhAfAlIaItv3+jKIiKAO2vEiBGW+B93W64bgtFOO+3kSpcubcJahw4d7IPAFgfhiGqlhI7OmjXLkdduyZIlltMuDk5A2BEyev7551sV0lw4/3I9fnR+ERABERABERABERABERABERCB3BGQ0JY79jpzTAiMGjXKDR48eHMoZK4vC5ENQY0QyN69e292ZsUpDJJiCLjb1q1b5wYOHOjeeOON2DjbyGVH5VHEyXbt2uW6O3V+ERABERABERABERABERABERCBFBGQ0Jaiztat/pYAoZA4swgZHTt2rAlFCEi5arixyMWGkw2hiHxsfMXJFieRzfOBFQynT5/uJk+ebOG38Mx1zjYKQyC2devWzfXp0ydX3anzioAIiIAIiIAIiIAIiIAIiIAIpJCAhLYUdrpu+d8ECBNduXKlGzRokIVB5jLPmM8vVrZsWdesWTPXs2dPK36QD41QUnLb3XDDDe7DDz/MuWDpc9u1bNnS/eUvfzGEcRQq86FvdY0iIAIiIAIiIAIiIAIiIAIiIALFIyChrXi89N0JIrBixQqroPnXv/7Vffvttzl1s+HCwsnWqlUr1759e9egQQNXoUKFvKDtw0gnTpxoOdsoLrFx48acFZXwomVBQYEJbZUqVbK8bWoiIAIiIAIiIAIiIAIiIAIiIAIiEJqAhLbQhHX82BJ455133NChQ938+fPN3UbIYy4awlC5cuUsef+pp57qmjdvnovLyOiciG1UI33rrbfcAw88YDxxCOaygisC29VXX23OwBo1amR0f/phERABERABERABERABERABERABESgKAQltRaGk70kkAaqN3nbbbZZXjPDHXIhCO+ywg4U1NmrUyPKJ1a5d21WuXDkveVMcYfny5W748OFWHMGLbbm6GVxsHTt2tFx3iJhqIiACIiACIiACIiACIiACIiACIhCagIS20IR1/NgRwH2Fe41Qx/vuu89t2LAhZ/nZCBnddddd3RlnnOH+9Kc/OS+8xQ5aES9o7dq1VhRhzJgx7u2333Y//vhjzpyCFJHYd999Xffu3S0cV00EREAEREAEREAEREAEREAEREAEQhOQ0BaasI4fOwK+2ui4cePcU0895XBi5cLNBhhcV8cee6y5rpo2bZr3Sfs920mTJrnBgwdvFjFzwRcBk+qj55xzjoltaiIgAiIgAiIgAiIgAiIgAiIgAiIQmoCEttCEdfzYEUBYI2H/6NGjHYIQYaNRN/KyETK61157uQEDBlgOsapVq0Z9GcHOR967Rx991C1evNhCc3MhtO28884Ox+Af//hHd8EFFwS7Vx1YBERABERABERABERABERABERABDwBCW0aC6kjsHr1ajdjxgw3atQot3TpUvfTTz9FzmCnnXYyEYgqo/3793eIQghvSWmfffaZmzlzphWboEgC4bpRNx+GS562G2+8MerT63wiIAIiIAIiIAIiIAIiIAIiIAIpJCChLYWdnvZb/vzzz9348ePd2LFj3Zo1axzhjlG30qVLW6XR008/3fKzJa1RCGHlypVuyJAhjqITMI66qiuuQT6HHHKIu/76612FChVcmTJlkoZa9yMCIiACIiACIiACIiACIiACIhAjAhLaYtQZupRoCKxYsWKzAJSryphly5Z1Xbt2dUcccUSiK2I+/fTTjg9FEXIhaCK01apVy/Xr18/VrVs3UeG50fy26CwiIAIiIAIiIAIiIAIiIAIiIALFISChrTi09L2JIEB+tnvuuce99957VgghyrBG77LaY489LGS0QYMGiRZ/JkyY4B5++GFHNVJY56JVrlzZ9ezZ07Vo0cIVFBTk4hJ0ThEQAREQAREQAREQAREQAREQgZQQkNCWko7Wbf6HAAn6b7jhBgttxGkVZUgjQhv52fbcc0+ryrn33nsnumsoivDKK6+4KVOmWJhuLlrFihVd586dXfv27U3YVBMBERABERABERABERABERABERCBUAQktIUiq+PGlsDChQvd5Zdfbi6rTZs2RVoRk4IHu+yyi9t///3dHXfckWg3GwOAMN1Fixa5e++913399dc5GRO4BwnR7dKli2vSpElOrkEnFQEREAEREAEREAEREAEREAERSAcBCW3p6GfdZSECuKzI2YXQ9uuvv0YqtOFmIyH/YYcd5q644gpHWGOSGznwVq1aZVU/CdWFd9SNohONGze2whOHHnpo1KfX+URABERABERABERABERABERABFJEQEJbijpbt+osH9u8efPcVVdd5datWxe58IObjUIInTp1cj169HDly5dPdLfAm/BcQnWpPkqYbtRi2+677+6qV6/uevfu7Vq3bp1o3ro5ERABERABERABERABERABERCB3BKQ0JZb/jp7xARIyD9nzhw3YMAAE9qibqVKlXJVqlRx3bp1s1BGRLc0tFtuucVNnDjRKo9GWXwCtjgI4YyDsF27dmnArXsUAREQAREQAREQAREQAREQARHIEQEJbTkCr9NGTwCBZ/Xq1W727Nnu7rvvzonQtuuuu1pC/q5du7o2bdqYCJSGNmjQIPfCCy+4jRs3up9++inSW4b5brvt5i699FLXsWPHSM+tk4mACIiACIiACIiACIiACIiACKSLgIS2dPV3qu8Woe2LL75wM2bMcAg/5A+LupUuXdrys1EFs3nz5qkR2oYNG+b44Cj84YcfIsWOixBB86KLLnInnnhipOfWyURABERABERABERABERABERABNJFQEJbuvo71XeL0LZs2TI3ffp098wzz7jvvvsuch4IPu3btzdnVcOGDR1uqzQ03GxPPvmkMcfVFmXbeeedHQLn+eef70499dQoT61ziYAIiIAIiIAIiIAIiIAIiIAIpIyAhLaUdXiabxehbenSpW7atGlu+PDhORPacFV16NDB1a9f3yECpaG9+OKL5mj7/PPPzdUWZZPQFiVtnUsEREAEREAEREAEREAEREAE0k1AQlu6+z9Vd++FtqlTp7pnn302J0IbucJOOeUUE9oKCgpSI7RNmDDBjR492n344Yduw4YNkY47L7RdeOGF7uSTT4703DqZCIiACIiACIiACIiACIiACIhAughIaEtXf6f6bhHaEHoQ2p577rmcCm2Ej9apUydVQtvzzz9vjsJcCG2E7F5wwQUS2lL9BNDNi4AIiIAIiIAIiIAIiIAIiEB4AhLawjPWGWJCIC5CW7du3czRliah7eWXX3ajRo1yH3/8ceRC2y677GI52iS0xeQXUZchAiIgAiIgAiIgAiIgAiIgAgkmIKEtwZ2rW/stgbiEjp5wwgmpy9GG0DZy5Ei3fPnynAhtONr69u3runbtql8LERABERABERABERABERABERABEQhGQEJbMLQ6cNwIILQh9FAMYejQoW79+vWRX2Jaq46OGTPGmH/77beRF0MoVaqUg/tFF13kKEShJgIiIAIiIAIiIAIiIAIiIAIiIAKhCEhoC0VWx40dAYS2L774ws2YMcMNGjQoJ0IbIYwtWrRwnTt3tq8IQGloVHl95plnzM32ww8/RHrLEtoixa2TiYAIiIAIiIAIiIAIiIAIiECqCUhoS3X3p+vmEdpWr17tZs2a5e699163bt26yAHsuuuulpuNPG1t27Z1ZcuWjfwacnHCxx57zHK0IbL9+OOPkV4CzBE0L7nkEhM41URABERABERABERABERABERABEQgFAEJbaHI6rixJEC46FtvveVuvvnmnAhtuKv22GMPd8opp5jYlhah7b777nNjx451P/30k/v5558jHRu4CHfffXd3xRVXOKq9qomACIiACIiACIiACIiACIiACIhAKAIS2kKR1XFjSQCRZ+7cue7aa681oe3XX3+N9Dp33nlnE33atWvn+vTp4ypUqBDp+aM+GS5CmCNsvvbaa46///LLL5FeBryrV6/uevfu7Vq3bh3puXUyERABERABERABERABERABERCBdBGQ0Jau/tbdOufmz5/v+vXr59auXRu56LPjjjs6QhmbNm3q+vfv7ypXrpzoPiFUdOPGjcYb7rlo5cqVcwceeKA744wzXPPmzXNxCTqnCIiACIiACIiACIiACIiACIhASghIaEtJR+s2/0Ng4cKF7vLLLzehbdOmTZG62nbYYQe30047uWrVqrkHHnjAviK+JbV9/vnnbunSpe7OO+90/DkXDdcgDsKOHTu6Aw44IBeXoHOKgAiIgAiIgAiIgAiIgAiIgAikhICEtpR0tG7zPwQWL17sbrjhBrdy5UpLzB9lKOMf/vAHxwfx56677rLCCOXLl09s9yBqTp061Y0bN84KUeSiVapUyZ122mnuiCOOcPXq1cvFJeicIiACIiACIiACIiACIiACIiACKSEgoS0lHa3b/A+BZcuWmci1aNEi9/3331vesCgbQhvhjIQytmjRwjVq1CjK00d6rsmTJ7snnnjCRM0NGzZEem5OBmvCcy+++GJzs9WoUSPya9AJRUAEREAEREAEREAEREAEREAE0kNAQlt6+lp3+n8EVqxY4YYMGeKmT5/uvvvuOwsfjbqVKVPG1a9f35144omuc+fOUZ8++PkQL3ELjho1yg0bNszytFFxNOqG0Fa3bl3LEVe7du3E58SLmq/OJwIiIAIiIAIiIAIiIAIiIAIi8FsCEto0IlJHgFxhY8eOtXBG8rRRFTPqtssuu7jSpUubyEa+uKQ1nIKrVq0yN9urr75qIlvUFV5hitB28MEHuwEDBli4LgKnmgiIgAiIgAiIgAiIgAiIgAiIgAiEIiChLRRZHTe2BMgVNmPGDPfCCy+4Dz/8MCdOKwogUBShcePGJgIRSlq2bNnYMivuheEanDlzphs6dKj75ptvIg/P9SIbnNu2beuuu+46q/a68847F/dW9P0iIAIiIAIiIAIiIAIiIAIiIAIiUGQCEtqKjErfmBQCuK0oiICrjRxiP/zwQ05uDbcVifqvvfZaC29MUv6wOXPmuIEDBzoEN3jnws2GkImwdtJJJ7lLLrkk0dVdczKAdVIREAEREAEREAEREAEREAEREIH/IiChTYMidQQIFcXVNmbMGDf+GXMsAAAgAElEQVR8+HDLH5YLIQjwu+++u9t3331d9+7dXfv27fO+LxAtEdcmTpxofBHZyIGXC7442AjPPfvss63whJoIiIAIiIAIiIAIiIAIiIAIiIAIhCYgoS00YR0/tgRefvllqz6ai8qjHop3XXXp0sVddtllee+6IkyUIhMUQVi+fHlOwnI926SJmLH9RdKFiYAIiIAIiIAIiIAIiIAIiIAIbCYgoU2DIbUEpk2b5m677TarPJrLZP3kEatSpYrr0aOHa968uSsoKMjLPvEhuQ8++KD76KOPzClI9dFctT322MMhYB5xxBGuSZMmuboMnVcEREAEREAEREAEREAEREAERCBFBCS0paizdau/JTB37lw3aNAgt3TpUhPbchHe6K8I91XNmjVNbGvZsqUrVapUXrnbENRwsFFk4umnn3br1693v/zyS06HXOXKlV3//v1dnTp13D777JPTa9HJRUAEREAEREAEREAEREAEREAE0kFAQls6+ll3uRUCy5Yts2IIo0ePtpxtuXRfkbQfce2oo44yFxbiUPny5fOm38jNNnLkSPf888+7tWvXuh9//DFnwiVFJvjUrl3bPfLII5YHr0yZMnnDUhcqAiIgAiIgAiIgAiIgAiIgAiKQvwQktOVv3+nKMySAuEb10aeeesq9/fbbOUva72+DEFLCHY899ljXrl07E4oQiPj3ODYvTH7xxRcO0fLRRx91n3zyiYlsuRQt4UXuu0MOOcQ98MADcUSnaxIBERABERABERABERABERABEUgoAQltCe1Y3db2CVB9lJDRIUOGWIVM8rTlMtwRFxbONsQ1XG1t2rRxdevWdVTPjGODHx8cgbjZYImzDYa5DMPdZZddjGGnTp3c5ZdfHkd0uiYREAEREAEREAEREAEREAEREIGEEpDQltCO1W0VnQAVMgcPHmzJ+3Fj5bJ5sa1cuXKudevWlsifMNIaNWrk8rJ+c27canAit90777xjQtvXX39totumTZtyfp2IbPXr13ddu3Z1HTt2zPn16AJEQAREQAREQAREQAREQAREQATSQ0BCW3r6Wnf6OwSoPjpixAgLIyWJf64bYtsOO+xgrqyGDRuaWNShQ4fYhJBSXZSwWwS28ePHm4vNC5S5dLL5fiO3XZ8+fayCKyKlmgiIgAiIgAiIgAiIgAiIgAiIgAhERUBCW1SkdZ7YEliyZImbPXu2e+aZZ9yqVatic52EkZYuXdpVqVLFwkgPOuggE94ompCLcFIENiqLLlq0yFGx9c033zRhEodbLnOy+Q5DoCQ3G3nu7rzzzrwrKBGbgacLEQEREAEREAEREAEREAEREAERKDEBCW0lRqcfTAoBxKI1a9a4a6+91r3//vuxuy1yjiGuEUrao0cPV6lSpZxUJP3888/dlClTzMW2cuVKy2kXB4HNdxgiGwJks2bN3HXXXecqV64cu77UBYmACIiACIiACIiACIiACIiACCSbgIS2ZPev7q4IBMgtRvjjwIED3aRJk0xAikOuMX/phJFSSRN3W8WKFd2hhx5qYZG426pWrVqEOyz5t3z22WfmYsPBNm/ePLdixQoLE/WVReMQKurvDjES91+3bt2smETZsmVLfuP6SREQAREQAREQAREQAREQAREQAREoAQEJbSWAph9JJgGKIjz11FNWPZPCCHFrPncbAhKurc6dO1vSf4Q4wkz9xwtzxb1+3GlUDEV0RGhEgFywYIGbOXOme/31192GDRvs33NZmXVb97Tbbru54447zvLZNWjQICfhtcVlru8XAREQAREQAREQAREQAREQARFIFgEJbcnqT91NBgSooImo9Pzzz7u1a9e6OLm1/G35qqSEk/IhjJSE/7Vr13YFBQWuVq1aVqHUi25FxeFdfZ9++qnlYPOfL7/80txr/D8fmMSNC0xw/CFAXnrppe6www5zFSpUiE3xiKL2gb5PBERABERABERABERABERABEQg/wlIaMv/PtQdZIkAlTS/+uord8MNN1iIZJzdW4hLXnQjZJLPfvvtZ5+6deu63Xff3aqWFtXdhpj2zTffuA8//NDNmTPHcrDh6oNBnPKwba2ruUfuf88993Q33XSTO+CAA7I0InQYERABERABERABERABERABERABESgeAQltxeOl704wARxbVNYcOnSoe+mllyyEFAEqrs2LbV5M46v/4PDi40Wobd0DQhr37osb+CqifI2jg23Le6EIQrly5Vz79u3dKaecYs4+NREQAREQAREQAREQAREQAREQARHIBQEJbbmgrnPGlgDi0uzZs93kyZOtwiZ5yeKak2xbELcU37YHnPuOs4NvW9ePoIjQdvjhh7vu3btbGC3VR9VEQAREQAREQAREQAREQAREQAREIGoCEtqiJq7zxZ7A+vXr3QcffOCuv/56y9WGABW3vGRFgYjjjea/butn8sG59nvXz/2Rr45wWXK0UZGV3HUIcGoiIAIiIAIiIAIiIAIiIAIiIAIiECUBCW1R0ta58obA559/7gYPHuymT59uIaSIbWrxJYCDDxdbzZo1rfJomzZtTGyTsy2+faYrEwEREAEREAEREAEREAEREIEkEpDQlsRe1T1lTIBcbQsWLHAvvviimzZtmvvhhx8yPqYOEJYAYhv52sqXL+8GDBhghSEqV64c9qQ6ugiIgAiIgAiIgAiIgAiIgAiIgAgUIiChTcNBBLZCgOIAVOGcMWOGe/zxxy1XG4UR8jGENC0d7ItDlC5d2u21116uc+fO5m4jpFTOtrSMAt2nCIiACIiACIiACIiACIiACOSWgIS23PLX2WNOYMmSJW7EiBHu9ddfd+vWrXMUDVCLNwFfCGLvvfd2/fv3d9WqVXNVq1ZVzrZ4d5uuTgREQAREQAREQAREQAREQAQSQUBCWyK6UTcRisDq1avd4sWL3ejRo90bb7xhrjaJbaFoZ+e4hZ1tuNmoRNqhQwerTCpnW3YY6ygiIAIiIAIiIAIiIAIiIAIiIAJbJyChTSNDBLZBAFHtl19+cRMnTnQPPfSQhZCSr00hpPEfNt7ZVlBQ4Hr27Gk52/bZZx/n/z3+d6ArFAEREAEREAEREAEREAEREAERyDcCEtryrcd0vZETQGxbvny5mzNnjhs6dKjlbkN8k9gWeVcU64Te2YaLrUyZMu6MM85wRx99tKtQoYKcbcUiqW8WAREQAREQAREQAREQAREQAREoKgEJbUUlpe9LNQFcbORoGz58uFUi5e+EkarFnwAOtp133tnVrFnTde3a1bVo0cKKJfBvO+64Y/xvQFcoAiIgAiIgAiIgAiIgAiIgAiKQNwQktOVNV+lCc0nAh5AuWrTInG3PPvusW7NmjV2SnG257JminRuxrVSpUm633XZzF1xwgWvZsqU52xDb1ERABERABERABERABERABERABEQgWwQktGWLpI6TCgJr1651q1atckOGDHEzZ840Z9tPP/0ksS0Pet+LbdWrV3cdO3Z0rVq1smqkhJWqiYAIiIAIiIAIiIAIiIAIiIAIiEA2CEhoywZFHSM1BLyzbeHChW7WrFnuhRdecOvXrzehTc62+A8DxLaddtrJKpD269fPNW7c2O29997xv3BdoQiIgAiIgAiIgAiIgAiIgAiIQF4QkNCWF92ki4wbAQoirFixwo0dO9acbVQjlbMtbr209etBbKNAQsWKFV2nTp3M3YbwVrZs2fy4AV2lCIiACIiACIiACIiACIiACIhAbAlIaItt1+jC4k7g559/NrFt6tSpbtiwYSa2UY1ULf4EqEiK4IbYNmDAAFerVi23zz77xP/CdYUiIAIiIAIiIAIiIAIiIAIiIAKxJiChLdbdo4uLMwHCSL/77ju3dOlSN3r0aPfmm29aZVL+XS3eBBDaaKVLl7YCCSeddJI52yiQoJxt8e47XZ0IiIAIiIAIiIAIiIAIiIAIxJmAhLY4946uLS8IkKPtww8/dGPGjHHTp0+3Agk425SzLf7d551t5Gk7//zzXf369V2NGjXM7bbjjjvG/wZ0hSIgAiIgAiIgAiIgAiIgAiIgArEiIKEtVt2hi8lHAoSQUo100aJFbsqUKW7GjBmbnW0S2+Ldo4WdbTjZTj31VNehQwc52+Ldbbo6ERABERABERABERABERABEYgtAQltse0aXVi+EUBsI2fb+PHj3eTJkx0CHB/cbT53m4S3ePaqr0ZarVo1E9uaNm1qOdtKlSolZ1s8u0xXJQIiIAIiIAIiIAIiIAIiIAKxJCChLZbdoovKRwKIaoSNLl++3Nxts2bNcu+++6778ccfrSLppk2bVCwhxh2L2LbLLrtYzrYzzzzTtWrVyu21115WoVRNBERABERABERABERABERABERABIpCQEJbUSjpe0SgGAS+//57xweR7Z133rFiCeRwQ4RDdEOQk7OtGEAj/FZCSXGxVa1a1R133HGuTZs2JraVLVs2wqvQqURABERABERABERABERABERABPKVgIS2fO05XXdsCVB1lFBRL6whrhFSSrGEt956yyqV4m5TiycBH0a6++67u969e7vmzZtbgQQVR4hnf+mqREAEREAEREAEREAEREAERCBOBCS0xak3dC2J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PTTWRB8XUqFnahXQ5kDF4nj88ccTs+3jjz9OAWdJx6uQXTt5WQeMAJFGwb777psOGJmdPjGGJjoxWZz+5ptvrq688sq0LjmBMeqxAPD361//evW9730vgb/WZZ+CI1qAF198cfXb3/42sXmj8UY962qynyI5QS9whx12SPul7rdG7JmTtWz5368baMOM0ME7RpWAtaw56bukqvPUuVo6gZW7C+oat9dee6XzJEpI27EqVbU4A88666wEtIWETDvmZdTuwrlOj2uJJZZIYLwkWoz2WqAOoI3sAEYb2RpNWgJ8be96aNudtQpoy8Z57733ErPtzjvvTIctZkdktcounVxWweGU6cVmi43kL22utM/avOmmm1IJaZT2lV2XAAvgLwaCMmZghrK8vgAZAFzBxcMPP5yYvEC2YLKVXVPDujqgN7N/sSwxYwJIGZZ1y1+nTqBN4EY8WTY8RpUANeCaIblqzwO02f/+9V//NX2VTLA6UwTS3tljjz22+upXvxrM/RYszKuuuqqaOnVq0mb74x//2II7ilsYVQtk5qvycsBvjPZaoC6gTUxsPSCiRHzc3vXQtjtrJdAmowlY03HviiuuSGAbByxGOQsIGpWI7rTTTok11DfG0LAsZ136ItZ77733RmnDsAw7i+sot5JV1Pl2hRVW6F27dULPF154YepqG0y2wotpyJeX4dRh1JcsZ9ZqG/LHxOUKWaBuoO0b3/hGanAS498ZbYPD319//fXqwQcfrLDGMXxLMttyYhHYtvvuu1cbbrhhAt36ksDp6hqbMmVK9cgjjyRtNmBrjLBAUxbIjbc0grMvxWivBeoC2pQTr7rqqqkRG03eGGGBsViglUBbvnHOFgaRjo90sWQ9Q7NtLNM69p8Z7DBKXJ7DScw7gsbZ21B5s8P3gQceSNl54NuMwcPYZyF+ctACWSsQ8Eu4GsimAYI/90n7SokMdmQG2exvsYba/y4IxjHZMJSUlSgXjexm++dtxjusG2hbcskl03kRY+YWkHTg89FFUtVAr6tU46F8xmCgKgdab731KiBP6NE2szrN82effZZY69YApndmPDZzR/Gpo24BMZAv5zxgZZlllkmdimO0zwJ1AG3IJ/y81VdfPUkOBNDWvnXQ1jtqNdCWjYZO/utf/zo5XcoLSpYUtHWiSt1Xztro4khnSIleOJtjs7bAALNNBhbY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TXfK2gqyecbcYW3ppZeuDjrooJTBx6yIERYIC8zZAgG0zdlGXfwJzBUlo0cccURKmAB5gG0lB1ab5AagZ6+99qrWXXfdaoEFFij5ka2/Nvsr32P/0tpsSkSxCAGdp59+etInjREWwKbUIAXQBvAt3cxK8lMpufWHzamUNHyy8uuwLqDNfH7/+99PpcGh0VZ+XvvyCQG09WUm4znCAmGBCVlAYPbkk08mJtv9998/vVy0pLbPhG70//+lXCajyxWQjRZNMNkmY9H43VG0QABt/Z51jWwkTpSQ+rKfl0ycANvmnnvu1PEZu1jX51FkFktYPffcc4nZR5vtf//v/120bNQqxmajzaasi1B5lO72+90e69MpHb/qqqsSu7WOBinuC7tVGTnwh5TH4osvPtbbjZ+boAUCaJug4eLXarFAAG21mDk+JCwQFmijBWQ4sR/OOOOM6oEHHkid0Upr+kzWDphsnDnlSZhsWBQh+jxZq8bvj5oFAmjr94wrGwX4nHTSSdXbb7+d9vWSOmGsic2CWQxsE9xLhoxa6dibb75ZnX/++albtzmog0WUy/V0fNQFNs7Dfr/bY3067zx9QHvAPffcUwGBS4Lt7ot/Zg1iVx522GHVWmutNdbbjZ+boAXqANqA+TTa6D+GDucEJ2pEfy2AthGd+HjssMCoWyAz2ZQXPf744ynzTsOj7Uw2wdzyyy9fffe7362++c1vpmz+KDInRn39xvNPzgIBtE3Ofm3/bd2jdRs85phjqmeffTYF2X/+85+L3nYu55f8oOODaWyPHqUBYAMweL90fi2ZuMIiBGYCNrbddttq5513Tn+P83CUVtysn5WPx6/DatONGMONVltJHy93IlZaaD1al7Emy67HANrK2jeuPjkLBNA2OfvFb4cFwgIdtIAgjGbHNddckzKdmGyldWQmY6bc+ADItsgii6SyJDogkbmfjFXjd0fZAgG0jcbs33bbbdXFF1+cWG3/9E//lBgtpVktgB/dnzfccMPqxz/+cWK19Z3ZBtSghYfJd+aZZ07XxCoJagDUdHlUKnrggQdW66233mgs6njKcVmALMjPfvazBP7y+0o3Rchl5N/+9rer/fbbL5U1h682rikb1w8H0DYuc8UP12yBANpqNnh8XFggLNCsBQQEulHdeOON1e9+97vpGjIlA4LJPrEgjaO28sorV+uvv34C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iABBW4IMNJf5X4E1a9bYPffcY7t373bTRo8fPx4Yz+mnn+6CtZo1a9qgQYOsYsWKgR07jANt2rTJli1b5ioItTZeGJs6utavX9+thxeP03TDMOWYCCCAAAIIIIAAAggggAACvyxA0MYrI+EEVq5caVocXxVWqmb76aefAjNQyFayZElr2bKl9evXz8qVKxfYscM4kNZpU9fRBx54wOQexla6dGmrWrWq3Xrrrc6dDQEEEEAAAQQQQAABBBBAAAG/BAja/JJlv5EV+Oqrr2zgwIEuaAuymk0gSUlJrtvoFVdc4bqNpqamRtapKE5MFYOanvvwww/bggULnHeQwaauoVSpUpaWluaCTTWfYEMAAQQQQAABBBBAAAEEEEDALwGCNr9k2W8kBVTBtnTpUrv33ntDWTPszDPPtLPPPtu6d+/uFuhX6JYI26OPPmrTp093FYRBroknW1UQKmy7++67rX379onAzTUigAACCCCAAAIIIIAAAgiEJEDQFhI8hw1H4ODBg7Z48WJ74oknLCcnJ/CTSE5Otjp16li3bt2sTZs2LgRKhO2ll16yiRMn2rFjx9y6eEFuJUqUcEGbpgt36tQpyENzLAQQQAABBBBAAAEEEEAAgQQTIGhLsAFP5MtVJdXevXvdFMbBgwebQregN4U+F154oV111VXWrFmzhAna3nzzTXv//fftyJEjdvTo0UDZFW4qaLvrrrusc+fOgR6bgyGAAAIIIIAAAggggAACCCSWAEFbYo13Ql+tgrbs7GybN2+e64IZVtDWokUL69KlizVu3NgUAiXCNmrUKHv33Xft8OHDbs22IDdN11XloII2ubMhgAACCCCAAAIIIIAAAggg4JcAQZtfsuw3cgIK2rZu3eqCtmHDhoUStCnwadu2rausql+/fsIEbWPGjLERI0a4oE1VbUFuakAh99tvv91N2WVDAAEEEEAAAQQQQAABBBBAwC8Bgja/ZNlv5AS8oG3OnDk2fPjw0II2LcivoC09PT1hgraxY8fa22+/bYcOHQolaNOU3TvuuIOgLXI/lZwQAggggAACCCCAAAIIIBBfAgRt8TWeXM1vCCho27x5s82ePdtGjhxJ0Bbgq2XcuHH21ltvhRq09e3b166++uoAr5pDIYAAAggggAACCCCAAAIIJJoAQVuijXgCX68XtM2aNcveeecdF/oEvSXq1FEF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", + "created": 1731846113674, + "lastRetrieved": 1731846113674 + }, + "f6104a267b941b1e71e4188461fabc63c1406c02": { + "mimeType": "image/png", + "id": "f6104a267b941b1e71e4188461fabc63c1406c02", + "dataURL": "data:image/png;base64,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j7HBmPATY4TLAMgvfrcBKJoMRNGPNKLJBcl14oknqpVXXrmfLOSdMUbgzjvvVEcffbS65ZZbxriV1ZrG+GZfAOn35JNPVnupw1PPfOYztcsBfvh9khN7nu9+97tCbk2yEEjbBQFBYKIQEIJrorq7NY2dWnvmJtr60FwsGo2FMNGVEVzjpMH1t7/9TRNbOJVv+pCKZgVmiR/+8IcbFwiIvPPPP19ddNFFioiRbOQ5tLMBh9TaZJNN1Pbbb69e85rXNF43KXB0EKiD4Np8883V5Zdf3koQjjjiCHX33Xeru+66S2t9Qo6T+L3p+aNXgCC51ltvPfXzn/98bC4oesVAnhcEuiHwxz/+UX3mM59RF1xwQZD87va+/z0XRmuttZY6/fTT1dprr93r6/K8ICAICAKCgCAwsggIwTWyXTfSFU+dzBcJLt/zlm3nlFpw97yxOCCxkT311FPVj370I31j22RaeumltUN51PU5eDaVOIh/7WtfU/gZs1pb3FjbH0wo+OGmFTMxNMwwnaSekgQBH4FJI7ggtCCH0fp66KGHFJpeEMP8ftppp2mi+O9//7smje3nbZEaxvQLX/hCtfrqq6t58+a1pVpSD0GgVQgIwdWq7pDKCAKCgCAgCIwwAkJwjXDnjXDVp9ZZaeNppWboJmR+uMrILZ6aUr9eOH+Em2yqjkP5448/Xl111VVRbml7AcSSWzvssINabrnlenm172c5lF9//fXq8MMPVw8//LAmt7r5GILoQqNriSWWUJtuuqk64IADtD8fSYKARWDSCK5OPf/73/9em/yi4XXddddp316YfkF4/fnPf9ZaXk2aQIfqimn5CiusoDU0zz33XBFkQUAQ8BAQgktEQhAQBAQBQUAQiIOAEFxxcJRcekOghOAymUxNodlTdIo66iaKNlriNddc06hDeetz693vfrfadttttU+OptKll16qvvrVr2qTql79ilBvHH9vueWWWptrxRVXbKraUk7LERCCq3sHQXYRxfCee+7R8w3Oq//yl79oMiwU3KN7joM9gQkycw+bjqOOOkpI68HglLfHDAEhuMasQ6U5goAgIAgIAkNDQAiuoUE/0QU7TubBIXM0byMr5kkuo9k1ygQXm9djjz1WXX311fqA2VSy0RLxufWOd7yjUbPEm266SR188MHqvvvu69sUE3l47nOfq3bddVdd/6Y0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D+IXX3yx91GsV6+e8eE477zzFMXlnW7uOvz111/twAMPNP7vY9W36pVQMYwKn1FHWeSOYH4cWQJXfoyDzqJ2Agjpp556qitqEfaljTSKzTff3BBCoipegRiF/9b7778fOvV/t912cx5JVLtSq5uABK66GVXdgu8BBBGissM2VfsMSzDc/twre/XqZZ988knoe6UErnBjUQh7E+DA5//bb7+1VatWhT5lvl8PP/xw++9//6t3vtA086MDCVzxjoMErgwELjYN/G0J5KoawcXveRDnIRqxy7dgge8JaYqsaKsVPoHvvvvOHn74YXvqqae8fCFWJYLvA75tN998c+HDyvMrkMCV5wOk03MEfvzxR3vooYecp9WSJUtCU6FCK1EreI9EkT5PejUpX1QzC9OIgN57770l9mcAUQJXBrDKNz3ooIOcwDV//vzMd66yB897pDy99dZboftSB5kToIIdHlxffvllaHEdsZJnhBdeeCHzEwmxh1IUQ8DLcFfulzxvf/31114qKSJwderUyajOuuuuu2Z4Nto8HwlI4Ip3VCRw1SJwJcWsZFpi1QqK/KY6gYubHCvEc+fODf2lWHUqsEq+5557uso6isiJ94MSxdFY8WGFkDkTRWECVg1PPPFEo3qaWrQEJHBFy1e9+yNA5BYPzPPmzQudFk2FX7xlqPLLy7jvhsHuBx98EPo8MZdncUjRW+mPkASu9FkFW+J1yYJVWL84+ltvvfWMB3QiidTiJ6KkgykAACAASURBVEDladK5WQgIu1i97bbb2iOPPGIHHHBArBcigSs+3L4FLrJ2+G7lfU8+fPGNY5RHksAVJd21+5bAVYvAlSgzK1tjuVWJHoLXlDlrG0aSaoaJ7QUXXOBFxa86ZL/73e+c8aWiuOL9oPg+GtFbb775pt133322aNEiW716te9DGKuGl1xyiUwqvZNdu0MJXDFA1iG8EEDg4kGL1JuwXkEY4fLyRlSY75c3RIJjjz3WS+UxjHrxx9xxxx29MCyFTiRwZT7KFHK49tprvcxZjo5oTNRPFNGRmV9dae1BcQv8UX00KiiSFh53k8AVH3GijPmeYeGaDB4fDd/Is846y6677jof3amPHBOQwBXvAEjgqkXgSh2K5ApOwlI85q1qFcVge25uTOQo0hQbNmzoyg2T2kbahVphEnjjjTdcRbMffvghkgsgvJnK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IgIiIAIiUBgErrzySnv88cdt1qxZoU94++23tyOPPNLuuOOO0H2pAxEQAREQAREQAREQAREQgSSBRPuWfyjDc4uKToEXVwCHf7OysqQnV0pTFUVNHxEQAREQgVIi0LlzZ/v000/tm2++CX3ZHTt2dOJWu3btQvelDkRABERABERABERABERABFIErqTUVVngcuIWhvNO/qrcRn3ypjVo0ECVnzSLREAEREAEip7Ar7/+agcccIBNmzbNfv7551DXy3friSeeaI8++miofrSzCIiACIiACIiACIiACIhAZQIugqs6KNX+Y3naolIUNY1EQAREQARKhcCAAQPslltusblz51a76JMJh80339zOOussI+VRTQREQAREQAREQAREQAREwB+BGgUuDrGWyFUucClF0d8AqCcREAEREIH8JkDFw88++8wWL14c6kSJ3sJc/uabb7b9998/VF/aWQREQAREQAREQAREQAREoDKBWgWuakUuM1MEl6aRCIiACIhAqRBo2bKlffnll/bbb79lfcn16tWzTTfd1Pr27Ws9e/a0TTbZJOu+tKMIiIAIiIAIiIAIiIAIiMDaBCpM5vkVrlupUVvVGc+znSK4NJVEQAREQASKncDKlSvtnXfesb/+9a+2YMGCUJe7/vrr26677mpPPPGE7bzzzqH60s4iIAIiIAIiIAIiIAIiIAK1CFxJS/k1AlcgdlUVvSRwaRqJgAiIgAiUAgEM5Y888kh7//337aeffgp1yY0aNXLm8ldffbXhw6UmAiIgAiIgAiIgAiIgAiLgl0BFBFcgcAXdE8nlKimWlVVEdQVil1IU/Q6CehMBERABEcgvAkRvffTRR3b00Ufbt99+a/w928Z36WabbWbnn3++nX322UpPzBak9hMBERABERABERABERCBWggkPbjKhayq2wUiV1lZZbt5CVyaUyIgAiIgAsVM4IsvvrBevXrZG2+8YcuXLw91qeutt55tv/32Nm3atFD9aGcREAEREAEREAEREAEREIGaCZSbzJfHZiF0kaZYVub8uFJbqsQlDy5NKREQAREQgWIm4FPgatq0qR166KE2cODAYkamaxMBERABERABERABERCBnBJItG+5f1ll5y0nca0lbqV6cSmCK6djpoOLgAiIgAhETGDIkCF23nnn2Zw5c0JVT+Q0t9tuO3vzzTdtxx13jPis1b0IiIAIiIAIiIAIiIAIlC6B8giu2gFUlrtURbF0p4uuXAREQASKn0AQvfXWW2/Z0qVLXVRztm3ddde1HXbYwT7++ONsu9B+IiACIiACIiACIiACIiACaRCoW+BKJCoe7oO0xbEzRto666yTRvfaRAREQAREQAQKi8BDDz1k//3vf72IUk2aNLHddtvNRowYUVgQdLYiIAIiIAIiIAIiIAIiUGAE6ha41kpYVARXgY2xTlcEREAERCBNAgsWLLATTjjBJk2aZD/99FOae1W/Wf369W3nnXe2m266ybp27RqqL+0sAiIgAiIgAiIgAiIgAiJQO4E6BS5XSTGlD/7+zvS3rUGDBmIrAiIgAiIgAkVFACP422+/3aZOnRr6uho3bmx77LGHvf3226H7UgciIAIiIAIiIAIiIAIiIAIhBa6quyNwyWRe00oEREAERKAYCRxwwAH24Ycf2o8//hj68hC3/vOf/1j37t1D96UOREAEREAEREAEREAEREAEIhC4xsmDS/NKBERABESgCAnsvffe9v7774eunAiaPffc06644go7+uiji5CULkkEREAEREAEREAEREAE8otAnSmKVU9XEVz5NYA6GxEQAREQAT8Ehg8fbueee659+umnoTts1KiRtWvXzgYNGmRbb7116P7UgQiIgAiIgAiIgAiIgAiIQO0EEu1b7l9mFjht1V4KPdhqwuwx4ioCIiACIiACRUXgoIMOsk8++cS++eab0Ne1yy672Omnn+4EMzUREAEREAEREAEREAEREIHoCWQkcHE6iuCKflB0BBEQAREQgXgJfPTRR3b88cfb7Nmzbfny5aEOvt5669kf/vAHGzBggO24446h+tLOIiACIiACIiACIiACIiAC6RHIKkVRHlzpwdVWIiACIiAChUEAn6zx48fbggULQp3wOuusY82bN7ebbrrJunXrFqov7SwCIiACIiACIiACIiACIpA+gYwFLroeK5P59AlrSxEQAREQgbwm8Ouvv9pee+1lX375pS1btizUuTZs2NC6du1qt912m22//fah+tLOIiACIiACIiACIiACIiAC6RPISuCSB1f6gLWlCIiACIhA/hL46aef7MYbb7T77rvPfvzxx9AnSnri6NGjrW3btkY0l5oIiIAIiIAIiIAIiIAIiEA8BGoVuAJTebNEufsWJ5WwsTNG6ME9nvHRUURABERABCIkMG3aNDv22GPt888/D+29Vb9+fWvSpImNHTtW0VsRjpm6FgEREAEREAEREAEREIHqCCiCS/NCBERABESgJAlQLfGWW26xBx980H755RcrK6u9knBdkBo1amRt2rSxl19+2TbbbLO6NtfvRUAEREAEREAEREAEREAEPBKQwOURproSAREQAREoHAJDhgyxvn372tSpU2316tWhTpzorS233NL69+9vXbp0sQYNGoTqTzuLgAiIgAiIgAiIgAiIgAhkRiArgUsm85lB1tYiIAIiIAL5ReC7776zXr162dChQw0frrBtk002sV122cUmTJgQtivtLwIiIAIiIAIiIAIiIAIikAWBRPuW+7ucjISttjLntVVdS/XgMhsz/W2tTmcBW7uIgAiIgAjkB4EXXnjBrrvuOpsyZYqXE9puu+3ssssus549e3rpT52IgAiIgAiIgAiIgAiIgAhkRsAJXGvkq+r8RwLRa83vVEUxM8jaWgREQAREIL8IHHLIITZ58mT7/vvvvZzYzjvvbNOnT/fSlzoRAREQAREQAREQAREQARHInECiQ3kEV1K+qkngqvzvErgyB609REAEREAE8oPAOeecY8OGDXOVE8N6b3FFTZs2td12283efvvt/LhAnYUIiIAIiIAIiIAIiIAIlCCBCoHLak1RrExGAlcJzhRdsgiIgAgUAYFXXnnFGcvPmjXLli5d6uWK9thjD7vvvvusQ4cOXvpTJyIgAiIgAiIgAiIgAiIgApkTcAJXmYvcquyzVVtXMpnPHLT2EAEREAERyD2BTp062aeffmoLFy70cjKNGze2Pffc04YPH+6lP3UiAiIgAiIgAiIgAiIgAiKQHYFEh1b7l5WVBSmIa/ttVdetBK7sYGsvERABERCB3BD47bffXJTVrbfeavPmzbMVK1aEPpH11lvPfv/739uFF15o3bt3D92fOhABERABERABERABERABEcieQKJ9yz+UJSxha6K46KzMEgn+jT+m+m8lXKDXhFmjsz8uETAbAAANzUlEQVSi9hQBERABERCBGAksW7bM+W0hQs2ZM8eWLFni5ehUTjzzzDPtoosu8tKfOhEBERABERABERABERABEcieQIrJfJkhdCXlrerM5tccRB5c2QPXniIgAiIgAvERWLlypX322Wd23nnn2dixY735btWrV89Id7zjjjts9913j++CdCQREAEREAEREAEREAEREIFqCVSqohgkKKJzJQO3qkRvlf9dApdmkwiIgAiIQCEQ+Oijj6x37942ZswYW7VqlZdTXmeddWzzzTe3AQMG2FFHHWX8XU0EREAEREAEREAEREAERCC3BMpTFInZIn4rmYJYKSuxmmguCVy5HTQdXQREQAREID0CV199tT300EP25ZdfprdDGlutv/761r59e9dvy5Yt09hDm4iACIiACIiACIiACIiACERNoCKCKzhQ9emJ5RUWE0n1SwJX1MOi/kVABESgMAkccMABtmDBAsOAnT/369cvZxeCN9ZLL71kc+fOteXLl3s5j/r161vTpk3tySeftHbt2tkGG2zgpV91IgIiIAIiIAIiIAIiIAIiEI6Aq6LouijPRlyTlJhaWbHMrFzcIsRrzPS3rEGDBuGOrL1FQAREQASKjsAOO+zgoqUaNmxoW265pWHEfu655zq/qkaNGsVyvePGjbNLL73UvvjiC/vmm28Mk3lfbZNNNrHddtvNpTwqNdEXVfUjAiIgAiIgAiIgAiIgAuEJJCO4XIDWajOrl6J1VRG4Ko4lgSs8dvUgAiIgAsVF4LfffjP8rg499FD79ttv3cWxELLpppvaNttsYwhDm222mXXp0sUOPvhg23777b0DQMgisurBBx90xvLff/+912Osu+661rx5c7vmmmtcRUY1ERABERABERABERABERCB/CHgBK7KaYmB1XxNlRQTNmH26Py5Ap2JCIiACIhAzgn8+uuvdswxx9i7775rixYtqvZ8Nt54Yyd2IW6deuqp1qxZs4ofUhqzbaREfvDBBzZq1Ch7+eWXbfbs2d6qJQbnRNXErbfe2tq2bWuDBw/O9lS1nwiIgAiIgAiIgAiIgAiIQEQEEv+vyb5lq1b/ZsvKVtoKW2mrjSpTKysOV8/q2Yb1NrENGgUvHwkbO2OEUjMiGhB1KwIiIAKFSIBUwP3228+++uorW7lyzXdIddeCSfsWW2zhKhEicl122WVGaiMRX/wgJgWNvwepgESJBX0H/8db69Zbb7Xnn3/eZs6cGRk6ItF23313l5qoJgIiIAIiIAIiIAIiIAIikH8EEl1+f0TZNs23sRXrldkvZctttS01s2VWtrrMeJkoW2VWtrC+ff3V19Zwg4bOiksm8/k3kDojERABEcglAfyuWrdubb/88kudp5FIJJyIxQ/iFf8nhbFx48buZ5999qnog0ivHXfc0f2dtEMqF9LGjx9vq1atcumQ8+fPd8IXf4+q4bt11lln2ZlnnhnVIdSvCIiACIiACIiACIiACIhACAKJ/15/Z9nRfz3Sfrf575yoRSNlEXFrxbIVtuzXpTblvQ/tqjOut3U3bmD16tezsTNGKoIrBHTtKgIiIALFRIDoLaKo+vfvn7WhO9UJidbCnD61iElqRNfq1asrIrhWrFhhZWVlrjoif46ykZrYpk0bGzhwoDVp0iTKQ6lvERABERABERABERABERCBLAkkPpo8tWzXPXYxXi6qa7xALPrxJzvv1H/blHEf2XrrNrB3vxib5eG0mwiIgAiIQLERGD58uJ133nk2ffr0SKOocsGNyo/4biHgtWvXLhenoGOKgAiIgAiIgAiIgAiIgAikQSCx+KfFZY02rr10O6kfY0eOsxN6nGVb1N/QPvi/iWl0rU1EQAREQARKgcCAAQOsT58+Lj2RRZFiaaRO7rLLLnbllVdat27diuWydB0iIAIiIAIiIAIiIAIiUJQEEmVpvo3gbXLZBVfYiOdG24SvZLJblLNBFyUCIiACGRL46aefrHfv3va///0vwz3ze3OimjHBpzLkJZdcYttuu21+n7DOTgREQAREQAREQAREQARKnEDaAhecPpryof25299t+oz35cFV4hNHly8CIiACECA98dJLL7WJE4snspfILczuMZQn9RIDfDUREAEREAEREAEREAEREIH8JpCRwLX012V24zU321U3XJ7fV6WzEwEREAERiIXAySefbEOGDLGFCxfGcrw4DrLZZpsZVRNHjRqlxZw4gOsYIiACIiACIiACIiACIuCBQEYCF9mMk8ZNsnYd2umh3wN8dSECIiAChU6gR48eNmzYMPvuu+8K/VLc+W+xxRa200472b333mu77757UVyTLkIEREAEREAEREAEREAESoFARgIXQGZMn2mtdmwpgasUZoeuUQREQARqITBp0iQ799xzbfLkybZixYqCZ9WkSRMnbl199dV2wAEHFPz16AJEQAREQAREQAREQAREoJQIZCRwLVu6zAbccK+dc9lZ1qBBg1LipGsVAREQARGoQoD0xBEjRtjcuXMLnk0QudW3b1879NBDC/56dAEiIAIiIAIiIAIiIAIiUGoEMhK4Jo6daH3PuMZef/8lRXCV2kzR9YqACIhAFQKdOnWyDz/80BYtWlSwbNZZZx1r1qyZtWzZ0i6//HLr3LlzwV6LTlwEREAEREAEREAEREAESplA4rfffiujYlRtDe+tRT8usuvPv9neemOkTfl6fCkz07WLgAiIQMkT+Oabb+y4446zjz/+uCAFrvr169sGG2zgKiSecMIJ1qtXL9tyyy1LflwFQAREQAREQAREQAREQAQKlUBiyS9LyjbYcINaz3/58uU2dPBrdtMZ/Wz1Br/Z+LljFMFVqCOu8xYBERABDwQeffRR69+/v33xxRf2ww8/2G+//WYshhRCSyQS1rRpU1cp8a233iqEU9Y5ioAIiIAIiIAIiIAIiIAI1EEgMWvmnLIWLbezmqK4Vq1aZZ/P/sIuPLWPffnJPKvfqL69+8U7AisCIiACIlDCBJYtW2Y//vijjRw50gYMGGAzZsxwlRRXr16d91S22mor23XXXe3ZZ5+1zTbbLO/PVycoAiIgAiIgAiIgAiIgAiJQN4HEPXc9VLbPXm1tvYbr2joN1rF6DRMuOmud+us40WvJkl9t8NMv2z23PGxNt2xs9eolbMLsMXX3rC1EQAREQASKnsDPP/9ss2bNsvHjx9v//d//uf/PmzfPSGH89ddf8+r6W7Ro4by2SK3cf//9ncilJgIiIAIiIAIiIAIiIAIiUBwEEk3X37Fs05Ub2Ya2nm3cbCPbqOmGtv7GG1ijTTeydddt6FJOXhs8wppsuZkl8OpKmI39bIRSFItj/HUVIiACIuCVAJ5czz33nL399tu2ePFiW7lypX311VeGEJaL6K7111/ftt56a/fTsWNH69mzpxO51ERABERABERABERABERABIqLQKJ9yz+Ula0uc0KW+//qMvtt1Worcz9m9luZrd9kfbNEwhLYqyTM3pHAVVyzQFcjAiIgAp4JzJw506ZOnWoLFiywJ554wv2flPdffvnF/SB2LV261PNRzTbccENnHk8E8kYbbWRbbLGFUe3xhhtu8H4sdSgCIiACIiACIiACIiACIpA/BBIdWu6fdAVOrDmpwCbYCVrB78rMkn8ts7EzRiqCK3/GUGciAiIgAnlP4Mknn3SeXUR3LVq0yIldRHhRxIRGpBd/5t9T24oVKyoivxCtGjZsWPHrBg0aVHwXkVq/8cYbu6qI/J8qiV27drXzzz8/79noBEVABERABERABERABERABMITSHRoVS5w1dRXedSWq46VSDiVa8Ls0eGPrB5EQAREQARKmgBpi3fffbcTtsaMGeOqMVb17UIMQ/yiIW4hYAUNISsQvIjaevPNN0uapy5eBERABERABERABERABEqZQDKCKyV6qyqMoOo72lbQlKJYylNG1y4CIiACIiACIiACIiACIiACIiACIiAC+UWg1gguorYSgbLlUhTRwhI2XhFc+TWKOhsREAEREAEREAEREAEREAEREAEREAERKGECdacoAiclTRHBa/wspSiW8JzRpYuACIiACIiACIiACIiACIiACIiACIhAXhFIT+CqcspKUcyrMdTJiIAIiIAIiIAIiIAIiIAIiIAIiIAIiEBJE5DAVdLDr4sXAREQAREQAREQAREQAREQAREQAREQgcInkCJw4SJPLmI1LUhRNHN+9EpRLPyB1xWIgAiIgAiIgAiIgAiIgAiIgAiIgAiIQLEQqLOKYuqFYjpviYRNkAdXsYy/rkMEREAEREAEREAEREAEREAEREAEREAECp5ARimK5YFciuAq+GHXBYiACIiACIiACIiACIiACIiACIiACIhA8RBIK0UxELaCy5bJfPFMAF2JCIiACIiACIiACIiACIiACIiACIiACBQ6gYwiuNzFlpmNnz260K9b5y8CIiACIiACIiACIiACIiACIiACIiACIlAkBBIdWv2xrEZz+SoXKQ+uIhl1XYYIiIAIiIAIiIAIiIAIiIAIiIAIiIAIFBGBtCO4KtIUFcFVRMOvSxEBERABERABERABERABERABERABERCBwifgBK5EMvOw1rZG4Fpt42e/U/hXrisQAREQAREQAREQAREQAREQAREQAREQAREoCgJpR3ClXu34WfLgKorR10WIgAiIgAiIgAiIgAiIgAiIgAiIgAiIQBEQ+P8AygSmdvCSETsAAAAASUVORK5CYII=", + "created": 1731846238642, + "lastRetrieved": 1731846238642 + }, + "0909b69b3afd8b5bbaf69e31cbd2868cc931bde5": { + "mimeType": "image/png", + "id": "0909b69b3afd8b5bbaf69e31cbd2868cc931bde5", + "dataURL": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAtwAAAECCAYAAADNdQCrAAAAAXNSR0IArs4c6QAAIABJREFUeF7tnYe3LVWV9YucBREQA6hkDAQF0ZagREFpBUHFALYJtU3do3sMfP0faPMpCjZm27YVeCC0ioAo8SmKIooCKogJQQEREFFBeN/4bZzX9coTau+qE+reWWOcce9795xTu+Zee+25wl5rtZUrV66sfBkBI2AEjIARMAJGwAgYASMwEQRWM+GeCK7+UiNgBIyAETACRsAIGAEjkBAw4bYgGAEjYASMgBEwAkbACBiBCSJgwj1BcP3VRsAIGAEjYASMgBEwAkbAhNsyYASMgBEwAkbACBgBI2AEJoiACfcEwfVXGwEjYASMgBEwAkbACBgBE27LgBEwAkbACBgBI2AEjIARmCACJtwTBNdfbQSMgBEwAkbACBgBI2AETLgtA0bACBgBI2AEjIARMAJGYIIImHBPEFx/tREwAkbACBgBI2AEjIARMOG2DBgBI2AEjIARMAJGwAgYgQkiYMI9QXD91UbACBgBI2AEjIARMAJGwITbMmAEjIARMAJGwAgYASNgBCaIgAn3BMH1VxsBI2AEjIARMAJGwAgYARNuy4ARMAJGwAgYASNgBIyAEZggAibcEwTXX20EjIARMAJGwAgYASNgBEy4LQNGwAgYASNgBIyAETACRmCCCJhwTxBcf7URMAJGwAgYASNgBIyAETDhtgwYASNgBIyAETACRsAIGIEJImDCPUFw/dVGwAgYASNgBIyAETACRsCE2zJgBIyAETACRsAIGAEjYAQmiIAJ9wTB9VcbASNgBIyAETACRsAIGAETbsuAETACRsAIGAEjYASMgBGYIAIm3BMEd9Jf/cADD1T33ntvdf3111enn356ddVVV6V/8/8PPfRQq9uvscYa1brrrlttuOGG1b777lu99KUvrXbcccdq9dVXr/ibLyNgBIyAETACRsAIGIFmCJhwN8NpLt/1pz/9qfrd735XXXHFFdUHP/jB6pZbbqnuuuuu6s9//nP14IMPFo955cqV1VprrVVtsMEG1SMf+cjqMY95THXCCSdUe+21V/p/E+5iaP1BI2AEjIARMAJGYAkiYMLd40mvE+5f/epXnRBuIIFYr7/++olwb7nlltWyZctMuHssKx66ETACRsAIGAEjMDsETLhnh33rO0fCfcopp1RdE255uE24W0+Vv8AIGAEjYASMgBFYwgiYcPd48kW4V6xYUZ166qmJcJNicv/996eUElJDSq7VVlttlZQSE+4SFP0ZI2AEjIARMAJGwAg8jIAJd48lwYS7x5PnoRsBI2AEjIARMAJLBgET7h5PtQl3jyfPQzcCRsAIGAEjYASWDAIm3D2eahPuHk+eh24EjIARMAJGwAgsGQR6T7jblL+Ls9zHUncm3EtmnfpBjYARMAJGwAgYgR4j0GvCDdlu2+CFuaOZC1ffSLcJd49XnoduBIyAETACRsAILBkEekW46aAIyfzjH/+YOiqqq2Lb2YJw01Vxk002SbWn11lnnV40eDHhbjvz/rwRMAJGwAgYASNgBCaPQK8I99133526Kf7sZz+rfvzjH1c33XRTKoPX9qLJy+Me97hqt912q570pCel32n4wv/P82XCPc+z47EZASNgBIyAETACRuBhBHpFuKkz/d3vfre69NJLq6uuuqq67777KrzebS/qTuPh3m677aqDDz44Ee8nPOEJyds9z5cJ9zzPjsdmBIyAETACRsAIGIEeEu4bbrihuvjii6uzzjortTDH402Tl7YXKSWQ680226w64IAD0mvnnXeuNt5447ZfPdHPm3BPFF5/uREwAkbACBgBI2AEOkGgVx7u66+/vjrnnHOqL3/5y9Udd9yR0kkgnW0uvNsQ7o022qiio+IznvGM6vDDD08/SSuZ58uEe55nx2MzAkbACBgBI2AEjEAPPdzXXHNNdfrpp1eXX355dfvtt1e//e1vWxNuYKA6ySMe8YjqMY95TPWUpzyletnLXlY9/elPTx7veb5MuOd5djw2I2AEjIARMAJGwAj0nHDfdttt1Z133pkqlrS55OGGcD/2sY9NqSTHHHOMCfdaa1UbbLBB8vLj+V+2bFm111579aJ6Sxt58GeNgBEwAkbACBgBI9A1Ar1KKYkebhPuKnn3SatZsWJFdeqpp1YcKuXf5LVTo3zlypVF8oIRQoUWE+4i+PwhI2AEjIARMAJGwAisgoAJ919zuO3h/ptcmHBbSxgBI2AEjIARMAJGoDsETLhNuP9Omky4u1tg/iYjYASMgBEwAkbACJhwm3CbcFsPGAEjYASMgBEwAkZgggiYcJtwm3BPcIH5q42AETACRsAIGAEjYMJtwm3CbT1gBIyAETACRsAIGIEJImDCbcJtwj3BBeavNgJGwAgYASNgBIyACbcJtwm39YARMAJGwAgYASNgBCaIgAm3CbcJ9wQXmL/aCBgBI2AEjIARMAIm3CbcJtzWA0bACBgBI2AEjIARmCACJtwm3CbcE1xg/mojYASMgBEwAkbACJhwm3CbcFsPGAEjYASMgBEwAkZgggiYcJtwm3BPcIH5q42AETACRsAIGAEjYMJtwm3CbT1gBIyAEViiCDz44IPVQw89VOknMPB77rXGGmtUq6++eqWffJ7ffRkBI/AwAibcJtwm3NYGRsAIGIElhoAI9n333Vfddttt1a9//evqrrvuqh544IEiwr3WWmtVG2+8cbX55ptXj3rUo9Lv66yzjkn3EpMrP+5wBEy4TbhNuK0hjIARMAJLDAGI9Z/+9Kfq5ptvri699NLq4osvru64445EtleuXJmNBt7sDTfcsNp7772rpz/96dXOO+9cbbHFFhVE3JcRMAL2cFermXCbcFsTGAEjYASWGAIQ7nvvvbe65pprqk996lPVD3/4wwpv91/+8pcFDzf7Y9NrzTXXrNZff/1q0003rV70ohdV++23X7XNNtuYcDcF0O9b9AjYw23CbcK96Je5H9AIGAEjsCoCeLch3CtWrKhOOeWU6vbbb0//vv/++4tTSjbaaKNqs802q/bZZ5/qiCOOSF7udddd19AbASPgHO7KHu4BywCvBmHADTbYoHrkIx9ZbbnlltWyZcuqvfbaK/2/D8JYdxgBI2AE+o0AhPuee+6pvvrVr1Yf/vCHUw43//7zn/9cTLg32WSTlMNNSskrX/nKarfddjPh7reYePQdImAPtz3c9nB3uKD8VUbACBiBPiAA4f7d735XXXjhhdXHPvax6tZbb63uvvvuYsK99tprVxBu8rZ33XXX6thjj03E2x7uPkiDxzgNBEy4TbhNuKex0nwPI2AEjMAcITAJwk1EFMK9yy67mHDP0Vx7KPOBgAm3CbcJ93ysRY/CCBgBIzA1BEy4pwa1b2QEEgIm3CbcJtxWBkbACBiBJYaACfcSm3A/7swRMOE24Tbhnvky9ACMgBEwAtNFwIR7unj7bkbAhNuE24TbesAIGAEjsMQQMOFeYhPux505AibcJtwm3DNfhh6AETACRmC6CJhwTxdv380ImHCbcJtwWw8YASNgBJYYAibcS2zC/bgzR8CE24TbhHvmy9ADMAJGwAhMFwET7uni7bsZARNuE24TbusBI2AEjMASQ8CEe4lNuB935gg0JtwPPPDARAa7+uqrN24Vfs0111Snn356dfnll1e33XZbdeedd1Z//OMfW42LNuaM4RGPeET12Mc+ttp5552rY445JnXI2myzzUZ+94MPPpj+/tBDD7UaQ/3DjIdrXAt1KcwVK1ZUp556avWrX/0qdQ67//77U2velStXFo3Lrd2LYPOHjIARMAK9QcCEuzdT5YEuEgQaE27avv75z3/u7LHXWmutRHRp+7rhhhtW/HvcNS+EGzILycYI4QUu/OyCeIPJOuusk15gwmsY8TbhHicx/rsRMAJGwAgMQsCE23JhBKaLQGPC/Y1vfKP67W9/25pUQlYhkBBKiPajHvWoasstt6zWX3/9saR7ngg3JPu+++5LHmVwuffee1fBRl7qptMJWeczEGza4+Jx33jjjUcaIybcTdH1+4yAETACRiAiYMJteTAC00WgMeF+17veVX33u99tTbh5PIglRHurrbaqnvKUp1R77rln9YQnPCF5u0dd80K4pahuueWW6tprr024kM4BaVaaSe40inCTxrLddttVO+ywQ0pvIc1lo402Gvh1Jty5KPv9RsAIGAEjAAIm3JYDIzBdBBoT7r333ru6++670+hKc4P1WQj32muvXa233nopT/qtb31rtddeeyUv96i85Xkh3ODwy1/+svrWt75VnXbaaQkXcsnb4kLuNLjg+YdwH3744QmXLbbYwoR7uuvCdzMCRsAILGoETLgX9fT64eYQgcaE+2lPe1pKnYBUtiGW8nDjzd5ggw2qTTfdtHrDG95QveAFL0hpFH0g3HfccUf14x//uDr33HOrSy+9tLr99turP/zhD8Xef+EJ4QaXTTbZJKWVvOQlL6kOO+yw6olPfKIJ9xwuHg/JCBgBI9BXBEy4+zpzHndfEWhMuHfcccdELLsk3KRK4OE+7rjjqiOPPDLlLI86PDkvHm4qpJBKsnz58uqqq66qfvOb31S///3vi7GJhBuvP0YIKTcYIUcddVS1zTbbmHD3dYV53EbACBiBOUTAhHsOJ8VDWtQINCbcpDhANLsi3BBLEe5jjz02Ecu+EG4qtkC4zzjjjJS//etf/zoRbvKw23j/8XCDC2Sb16GHHlq97GUvM+Fe1EvQD2cEjIARmD4CJtzTx9x3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egkk3JcRMAJGwAgYASOwdBAw4S6YaxPuAtB69BHSSu65557UyVSNhCDiXE07beItV0rJxhtvnJoHkc89qoNpjyDyUI2AETACRsAIGIEMBEy4M8DSW024C0Dr0UeUWkLuthoKlQ4f0q3GQXi8efkyAkbACBgBI2AElhYCJtwF823CXQCaP2IEjIARMAJGwAgYgSWKgAl3wcSbcBeA5o8YASNgBIyAETACRmCJImDCXTDxJtwFoPkjRsAIGAEjYASMgBFYogiYcBdMvAl3AWj+iBEwAkbACBgBI2AEligCJtwFE2/CXQCaP2IEjIARMAJGwAgYgSWKgAl3wcSbcBeA5o8YASNgBIyAETACRmCJImDCXTDxJtwFoPkjRsAIGAEjYASMgBFYogiYcBdMvAl3AWj+iBEwAkbACBgBI2AEligCJtwFE2/CXQCaP2IEjIARMAJGwAgYgSWKgAl3wcSbcBeA5o8YASNgBIyAETACRmCJImDCXTDxJtwFoPkjRsAIGAEjYASMgBFYogiYcBdMvAl3AWj+iBEwAkbACBgBI2AEligCJtwFE2/CXQCaP2IEjIARMAJGwAgYgSWKgAl3wcSbcBeA5o8YASNgBIyAETACRmCJImDCXTDxJtwFoPkjRsAIGAEjYASMgBFYogiYcBdMvAl3AWj+iBEwAkbACBgBI2AEligCJtwFE2/CXQCaP2IEjIARMAJGwAgYgSWKgAl3wcSbcBeA5o8YASNgBIyAETACRmCJImDCXTDxJtwFoPkjRsAIGAEjYASMgBFYogiYcBdMvAl3AWj+iBEwAkbACBgBI2AEligCJtwFE2/CXQCaP2IEjIARMAJGwAgYgSWKgAl3wcSbcBeA5o8YASNgBIyAETACRmCJImDCXTDxt912W3XttddWy5cvr6666qrqN7/5TfX73/++WrlyZXqVXquttlq13nrrVZtuuml6HX744dWRRx5ZbbPNNqVf6c8ZASNgBIyAETACRsAIzBgBE+6CCbjjjjuqG2+8sTr//POriy66qLr99tur++67r3rooYdaE+5111232mSTTdLr6KOPrg499NBqq622KhilP2IEjIARMAJGwAgYASMwDwiYcBfMwt13313dcsst1be+9a3q9NNPr+68887qT3/6UyLcba+111672nDDDasdd9wxebj33HPPaosttmj7tf68ETACRsAIGAEjYASMwIwQMOEuAB5v9u9+97vqpptuqq644opqxYoV1R/+8IeCb/r7j6yxxhrVzjvvXO22227VLrvsUm233XbVxhtv3Ml3+0uMgBEwAkbACBgBI2AEpo+ACXcB5g888EDyaN9zzz0V+dx4u5VS0sbLvfrqq1frrLNO9ahHParabLPN0s9HPOIRFWkmvoyAETACRsAIGAEjYAT6iYAJd+G8PfjggymFBPLNqw3Rrg9hzTXXrNZaa60KbzcknJ++jIARMAJGwAgYASNgBPqJgAl3P+fNozYCRsAIGAEjYASMgBHoCQIm3D2ZKA/TCBgBI2AEjIARMAJGoJ8ImHD3c948aiNgBIyAETACRsAIGIGeIGDC3ZOJ8jCNgBEwAkbACBgBI2AE+omACXc/582jNgJGwAgYASNgBIyAEegJAibcPZkoD9MIGAEjYASMgBEwAkagnwhkEW5qTq9cubJV+3JgotQdtaWpMU296WOPPbY66qijUoMXyuH5MgJGwAgYASNgBIyAETACiwWBxoSbVuMi3Dw8xLv0qhPu4447rjryyCNNuEsB9eeMgBEwAkbACBgBI2AE5haBxoR7p512WiDcbch29HBvtNFGycNtwj238uGBGQEjYASMgBEwAkbACLREoDHhfsUrXlHdeuutrW4nor7aaqtVdFPcfPPNqz322KM68MADq+222y61NXdXxVYQ+8NGwAgYASNgBIyAETACc4ZAY8I9Z+P2cIyAETACRsAIGAEjYASMQC8QMOHuxTR5kEbACBgBI2AEjIARMAJ9RcCEu68z53EbASNgBIyAETACRsAI9AIBE+5eTJMHaQSMgBEwAkbACBgBI9BXBEy4+zpzHrcRMAJGwAgYASNgBIxALxAw4e7FNHmQRsAIGAEjYASMgBEwAn1FwIS7rzPncRsBI2AEjIARMAJGwAj0AgET7l5MkwdpBIyAETACRsAIGAEj0FcETLj7OnMetxEwAkbACBgBI2AEjEAvEDDh7sU0eZBGwAgYASNgBIyAETACfUXAhLuvM+dxGwEjYASMgBEwAkbACPQCARPuXkyTB2kEjIARMAJGwAgYASPQVwRMuPs6cx63ETACRsAIGAEjYASMQC8QMOHuxTR5kEbACBgBI2AEjIARMAJ9RcCEu68z53EbASNgBIyAETACRsAI9AIBE+5eTJMHaQSMgBEwAkbACBgBI9BXBEy4+zpzHrcRMAJGwAgYASNgBIxALxAw4e7FNHmQRsAIGAEjYASMgBEwAn1FwIS7rzPncRsBI2AEjIARMAJGwAj0AgET7l5MkwdpBIyAETACRsAIGAEj0FcETLj7OnMetxEwAkbACBgBI2AEjEAvEDDh7sU0eZBGwAgYASNgBIyAETACfUXAhLuvM+dxGwEjYASMgBEwAkbACPQCARPuXkyTB2kEjIARMAJGwAgYASPQVwRMuPs6cx63ETACRsAIGAEjYASMQC8QMOHuxTR5kEbACBgBI2AEjIARMAJ9RcCEu68z53EbASNgBIyAETACRsAI9AIBE+5eTJMHaQSMgBEwAkbACBgBI9BXBEy4+zpzHrcRMAJGwAgYASNgBIxALxAw4e7FNHmQRsAIGAEjYASMgBEwAn1FwIS7rzPncRsBI2AEjIARMAJGwAj0AgET7l5MkwdpBIyAETACRsAIGAEj0FcE/j+54NsfJr5DmQAAAABJRU5ErkJggg==", + "created": 1731846356834, + "lastRetrieved": 1731846356834 + } + } +} \ No newline at end of file diff --git a/v1.46/assets/img/lakeFSArchitecture.png b/v1.46/assets/img/lakeFSArchitecture.png new file mode 100644 index 000000000..8e86ecd18 Binary files /dev/null and b/v1.46/assets/img/lakeFSArchitecture.png differ diff --git a/v1.46/assets/img/lakeFS_integration.png b/v1.46/assets/img/lakeFS_integration.png new file mode 100644 index 000000000..55b6f7dfe Binary files /dev/null and b/v1.46/assets/img/lakeFS_integration.png differ diff --git a/v1.46/assets/img/lakectl-local/axolotl.png b/v1.46/assets/img/lakectl-local/axolotl.png new file mode 100644 index 000000000..573ce5851 Binary files /dev/null and b/v1.46/assets/img/lakectl-local/axolotl.png differ diff --git a/v1.46/assets/img/lakectl-local/code_repo.png b/v1.46/assets/img/lakectl-local/code_repo.png new file mode 100644 index 000000000..f40a392a4 Binary files /dev/null and b/v1.46/assets/img/lakectl-local/code_repo.png differ diff --git a/v1.46/assets/img/lakectl-local/experiment-branch.png b/v1.46/assets/img/lakectl-local/experiment-branch.png new file mode 100644 index 000000000..1454bc3ea Binary files /dev/null and b/v1.46/assets/img/lakectl-local/experiment-branch.png differ diff --git a/v1.46/assets/img/lakectl-local/lakefs-commit-git-commit-id.png b/v1.46/assets/img/lakectl-local/lakefs-commit-git-commit-id.png new file mode 100644 index 000000000..bb26e668f Binary files /dev/null and b/v1.46/assets/img/lakectl-local/lakefs-commit-git-commit-id.png differ diff --git a/v1.46/assets/img/lakectl-local/lakefs-repo-with-train-dataset.png b/v1.46/assets/img/lakectl-local/lakefs-repo-with-train-dataset.png new file mode 100644 index 000000000..44e7a7ce1 Binary files /dev/null and b/v1.46/assets/img/lakectl-local/lakefs-repo-with-train-dataset.png differ diff --git a/v1.46/assets/img/lakectl-local/tes-and-train-dataset.png b/v1.46/assets/img/lakectl-local/tes-and-train-dataset.png new file mode 100644 index 000000000..0e39a30fe Binary files /dev/null and b/v1.46/assets/img/lakectl-local/tes-and-train-dataset.png differ diff --git a/v1.46/assets/img/lakefs-logo-with-text.png b/v1.46/assets/img/lakefs-logo-with-text.png new file mode 100644 index 000000000..b6a2d0ea2 Binary files /dev/null and b/v1.46/assets/img/lakefs-logo-with-text.png differ diff --git a/v1.46/assets/img/lakefs-release-asset.png b/v1.46/assets/img/lakefs-release-asset.png new file mode 100644 index 000000000..4ebf17c5b Binary files /dev/null and b/v1.46/assets/img/lakefs-release-asset.png differ diff --git a/v1.46/assets/img/lakefs_table.png b/v1.46/assets/img/lakefs_table.png new file mode 100644 index 000000000..9d43a7ee0 Binary files /dev/null and b/v1.46/assets/img/lakefs_table.png differ diff --git a/v1.46/assets/img/login.png b/v1.46/assets/img/login.png new file mode 100644 index 000000000..f552ccde3 Binary files /dev/null and b/v1.46/assets/img/login.png differ diff --git a/v1.46/assets/img/logo_large.png b/v1.46/assets/img/logo_large.png new file mode 100644 index 000000000..45d7c34e7 Binary files /dev/null and b/v1.46/assets/img/logo_large.png differ diff --git a/v1.46/assets/img/logos/airbyte.png b/v1.46/assets/img/logos/airbyte.png new file mode 100644 index 000000000..e51abf099 Binary files /dev/null and b/v1.46/assets/img/logos/airbyte.png differ diff --git a/v1.46/assets/img/logos/airflow.png b/v1.46/assets/img/logos/airflow.png new file mode 100644 index 000000000..8a20330a4 Binary files /dev/null and b/v1.46/assets/img/logos/airflow.png differ diff --git a/v1.46/assets/img/logos/apache_hive.png b/v1.46/assets/img/logos/apache_hive.png new file mode 100644 index 000000000..f34db575d Binary files /dev/null and b/v1.46/assets/img/logos/apache_hive.png differ diff --git a/v1.46/assets/img/logos/apache_iceberg.png b/v1.46/assets/img/logos/apache_iceberg.png new file mode 100644 index 000000000..6a51b96bb Binary files /dev/null and b/v1.46/assets/img/logos/apache_iceberg.png differ diff --git a/v1.46/assets/img/logos/apache_kafka.png b/v1.46/assets/img/logos/apache_kafka.png new file mode 100644 index 000000000..ad54e4d03 Binary files /dev/null and b/v1.46/assets/img/logos/apache_kafka.png differ diff --git a/v1.46/assets/img/logos/apache_spark.png b/v1.46/assets/img/logos/apache_spark.png new file mode 100644 index 000000000..71436b467 Binary files /dev/null and b/v1.46/assets/img/logos/apache_spark.png differ diff --git a/v1.46/assets/img/logos/athena.png b/v1.46/assets/img/logos/athena.png new file mode 100644 index 000000000..5525cda55 Binary files /dev/null and b/v1.46/assets/img/logos/athena.png differ diff --git a/v1.46/assets/img/logos/cli.png b/v1.46/assets/img/logos/cli.png new file mode 100644 index 000000000..bb01402b4 Binary files /dev/null and b/v1.46/assets/img/logos/cli.png differ diff --git a/v1.46/assets/img/logos/cloudera.png b/v1.46/assets/img/logos/cloudera.png new file mode 100644 index 000000000..43d5a43dc Binary files /dev/null and b/v1.46/assets/img/logos/cloudera.png differ diff --git a/v1.46/assets/img/logos/databricks.png b/v1.46/assets/img/logos/databricks.png new file mode 100644 index 000000000..a2d91399e Binary files /dev/null and b/v1.46/assets/img/logos/databricks.png differ diff --git a/v1.46/assets/img/logos/dbt.png b/v1.46/assets/img/logos/dbt.png new file mode 100644 index 000000000..b57bf3734 Binary files /dev/null and b/v1.46/assets/img/logos/dbt.png differ diff --git a/v1.46/assets/img/logos/delta-lake.png b/v1.46/assets/img/logos/delta-lake.png new file mode 100644 index 000000000..fd88bd136 Binary files /dev/null and b/v1.46/assets/img/logos/delta-lake.png differ diff --git a/v1.46/assets/img/logos/dremio.png b/v1.46/assets/img/logos/dremio.png new file mode 100644 index 000000000..4dca2f4b7 Binary files /dev/null and b/v1.46/assets/img/logos/dremio.png differ diff --git a/v1.46/assets/img/logos/duckdb.png b/v1.46/assets/img/logos/duckdb.png new file mode 100644 index 000000000..6521b586d Binary files /dev/null and b/v1.46/assets/img/logos/duckdb.png differ diff --git a/v1.46/assets/img/logos/git.png b/v1.46/assets/img/logos/git.png new file mode 100644 index 000000000..51f4ae540 Binary files /dev/null and b/v1.46/assets/img/logos/git.png differ diff --git a/v1.46/assets/img/logos/glue.png b/v1.46/assets/img/logos/glue.png new file mode 100644 index 000000000..a74437323 Binary files /dev/null and b/v1.46/assets/img/logos/glue.png differ diff --git a/v1.46/assets/img/logos/huggingface.png b/v1.46/assets/img/logos/huggingface.png new file mode 100644 index 000000000..49e2841dd Binary files /dev/null and b/v1.46/assets/img/logos/huggingface.png differ diff --git a/v1.46/assets/img/logos/kubeflow.png b/v1.46/assets/img/logos/kubeflow.png new file mode 100644 index 000000000..b0d8f97df Binary files /dev/null and b/v1.46/assets/img/logos/kubeflow.png differ diff --git a/v1.46/assets/img/logos/python.png b/v1.46/assets/img/logos/python.png new file mode 100644 index 000000000..14997956a Binary files /dev/null and b/v1.46/assets/img/logos/python.png differ diff --git a/v1.46/assets/img/logos/r.png b/v1.46/assets/img/logos/r.png new file mode 100644 index 000000000..339de0674 Binary files /dev/null and b/v1.46/assets/img/logos/r.png differ diff --git a/v1.46/assets/img/logos/red_hat_openshift_ai.png b/v1.46/assets/img/logos/red_hat_openshift_ai.png new file mode 100644 index 000000000..c3df4c435 Binary files /dev/null and b/v1.46/assets/img/logos/red_hat_openshift_ai.png differ diff --git a/v1.46/assets/img/logos/sagemaker.png b/v1.46/assets/img/logos/sagemaker.png new file mode 100644 index 000000000..06998e349 Binary files /dev/null and b/v1.46/assets/img/logos/sagemaker.png differ diff --git a/v1.46/assets/img/logos/trino_presto.png b/v1.46/assets/img/logos/trino_presto.png new file mode 100644 index 000000000..b00bbeeef Binary files /dev/null and b/v1.46/assets/img/logos/trino_presto.png differ diff --git a/v1.46/assets/img/logos/vertex_ai.png b/v1.46/assets/img/logos/vertex_ai.png new file mode 100644 index 000000000..edd60e5fc Binary files /dev/null and b/v1.46/assets/img/logos/vertex_ai.png differ diff --git a/v1.46/assets/img/metastore-S3.svg b/v1.46/assets/img/metastore-S3.svg new file mode 100644 index 000000000..e84d6a29c --- /dev/null +++ b/v1.46/assets/img/metastore-S3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/v1.46/assets/img/metastore-lakefs-dev.svg b/v1.46/assets/img/metastore-lakefs-dev.svg new file mode 100644 index 000000000..fc24a78d6 --- /dev/null +++ b/v1.46/assets/img/metastore-lakefs-dev.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/v1.46/assets/img/metastore-lakefs.svg b/v1.46/assets/img/metastore-lakefs.svg new file mode 100644 index 000000000..82b2e0e4a --- /dev/null +++ b/v1.46/assets/img/metastore-lakefs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/v1.46/assets/img/mirroring/arch.png b/v1.46/assets/img/mirroring/arch.png new file mode 100644 index 000000000..dc6af51ef Binary files /dev/null and b/v1.46/assets/img/mirroring/arch.png differ diff --git a/v1.46/assets/img/object_added.png b/v1.46/assets/img/object_added.png new file mode 100644 index 000000000..6db24985e Binary files /dev/null and b/v1.46/assets/img/object_added.png differ diff --git a/v1.46/assets/img/open_core.png b/v1.46/assets/img/open_core.png new file mode 100644 index 000000000..a9097a6d9 Binary files /dev/null and b/v1.46/assets/img/open_core.png differ diff --git a/v1.46/assets/img/pipeline_branching_model.png b/v1.46/assets/img/pipeline_branching_model.png new file mode 100644 index 000000000..3e94918cb Binary files /dev/null and b/v1.46/assets/img/pipeline_branching_model.png differ diff --git a/v1.46/assets/img/promotion_workflow.png b/v1.46/assets/img/promotion_workflow.png new file mode 100644 index 000000000..46ae5a4a4 Binary files /dev/null and b/v1.46/assets/img/promotion_workflow.png differ diff --git a/v1.46/assets/img/pull-request-merged.png b/v1.46/assets/img/pull-request-merged.png new file mode 100644 index 000000000..7308e479f Binary files /dev/null and b/v1.46/assets/img/pull-request-merged.png differ diff --git a/v1.46/assets/img/pull-request-open.png b/v1.46/assets/img/pull-request-open.png new file mode 100644 index 000000000..4a098d476 Binary files /dev/null and b/v1.46/assets/img/pull-request-open.png differ diff --git a/v1.46/assets/img/pull-request-review.png b/v1.46/assets/img/pull-request-review.png new file mode 100644 index 000000000..847fd9c70 Binary files /dev/null and b/v1.46/assets/img/pull-request-review.png differ diff --git a/v1.46/assets/img/quickstart/axolotl.png b/v1.46/assets/img/quickstart/axolotl.png new file mode 100644 index 000000000..d8265aca4 Binary files /dev/null and b/v1.46/assets/img/quickstart/axolotl.png differ diff --git a/v1.46/assets/img/quickstart/create-quickstart-repo.png b/v1.46/assets/img/quickstart/create-quickstart-repo.png new file mode 100644 index 000000000..c9a40dea1 Binary files /dev/null and b/v1.46/assets/img/quickstart/create-quickstart-repo.png differ diff --git a/v1.46/assets/img/quickstart/duckdb-editor-02.png b/v1.46/assets/img/quickstart/duckdb-editor-02.png new file mode 100644 index 000000000..a726c8f58 Binary files /dev/null and b/v1.46/assets/img/quickstart/duckdb-editor-02.png differ diff --git a/v1.46/assets/img/quickstart/duckdb-editor-03.png b/v1.46/assets/img/quickstart/duckdb-editor-03.png new file mode 100644 index 000000000..101a01557 Binary files /dev/null and b/v1.46/assets/img/quickstart/duckdb-editor-03.png differ diff --git a/v1.46/assets/img/quickstart/duckdb-editor-04.png b/v1.46/assets/img/quickstart/duckdb-editor-04.png new file mode 100644 index 000000000..c3a2949d6 Binary files /dev/null and b/v1.46/assets/img/quickstart/duckdb-editor-04.png differ diff --git a/v1.46/assets/img/quickstart/duckdb-editor-05.png b/v1.46/assets/img/quickstart/duckdb-editor-05.png new file mode 100644 index 000000000..a323ec70c Binary files /dev/null and b/v1.46/assets/img/quickstart/duckdb-editor-05.png differ diff --git a/v1.46/assets/img/quickstart/duckdb-editor-06.png b/v1.46/assets/img/quickstart/duckdb-editor-06.png new file mode 100644 index 000000000..7911ca146 Binary files /dev/null and b/v1.46/assets/img/quickstart/duckdb-editor-06.png differ diff --git a/v1.46/assets/img/quickstart/duckdb-main-01.png b/v1.46/assets/img/quickstart/duckdb-main-01.png new file mode 100644 index 000000000..78b269785 Binary files /dev/null and b/v1.46/assets/img/quickstart/duckdb-main-01.png differ diff --git a/v1.46/assets/img/quickstart/duckdb-main-02.png b/v1.46/assets/img/quickstart/duckdb-main-02.png new file mode 100644 index 000000000..2f853d8c1 Binary files /dev/null and b/v1.46/assets/img/quickstart/duckdb-main-02.png differ diff --git a/v1.46/assets/img/quickstart/duckdb-main-03.png b/v1.46/assets/img/quickstart/duckdb-main-03.png new file mode 100644 index 000000000..ef220f55a Binary files /dev/null and b/v1.46/assets/img/quickstart/duckdb-main-03.png differ diff --git a/v1.46/assets/img/quickstart/empty-repo-list.png b/v1.46/assets/img/quickstart/empty-repo-list.png new file mode 100644 index 000000000..762bd6b2d Binary files /dev/null and b/v1.46/assets/img/quickstart/empty-repo-list.png differ diff --git a/v1.46/assets/img/quickstart/hooks-00.png b/v1.46/assets/img/quickstart/hooks-00.png new file mode 100644 index 000000000..a7ceefaf8 Binary files /dev/null and b/v1.46/assets/img/quickstart/hooks-00.png differ diff --git a/v1.46/assets/img/quickstart/hooks-01.png b/v1.46/assets/img/quickstart/hooks-01.png new file mode 100644 index 000000000..831e2b4f9 Binary files /dev/null and b/v1.46/assets/img/quickstart/hooks-01.png differ diff --git a/v1.46/assets/img/quickstart/hooks-02.png b/v1.46/assets/img/quickstart/hooks-02.png new file mode 100644 index 000000000..dbe505036 Binary files /dev/null and b/v1.46/assets/img/quickstart/hooks-02.png differ diff --git a/v1.46/assets/img/quickstart/hooks-03.png b/v1.46/assets/img/quickstart/hooks-03.png new file mode 100644 index 000000000..1d42e5bea Binary files /dev/null and b/v1.46/assets/img/quickstart/hooks-03.png differ diff --git a/v1.46/assets/img/quickstart/hooks-04.png b/v1.46/assets/img/quickstart/hooks-04.png new file mode 100644 index 000000000..7e43657b2 Binary files /dev/null and b/v1.46/assets/img/quickstart/hooks-04.png differ diff --git a/v1.46/assets/img/quickstart/hooks-05.png b/v1.46/assets/img/quickstart/hooks-05.png new file mode 100644 index 000000000..a7db42737 Binary files /dev/null and b/v1.46/assets/img/quickstart/hooks-05.png differ diff --git a/v1.46/assets/img/quickstart/hooks-06.png b/v1.46/assets/img/quickstart/hooks-06.png new file mode 100644 index 000000000..e9ddfacbc Binary files /dev/null and b/v1.46/assets/img/quickstart/hooks-06.png differ diff --git a/v1.46/assets/img/quickstart/hooks-07.png b/v1.46/assets/img/quickstart/hooks-07.png new file mode 100644 index 000000000..ed64375a5 Binary files /dev/null and b/v1.46/assets/img/quickstart/hooks-07.png differ diff --git a/v1.46/assets/img/quickstart/hooks-08.png b/v1.46/assets/img/quickstart/hooks-08.png new file mode 100644 index 000000000..ae3fb52f0 Binary files /dev/null and b/v1.46/assets/img/quickstart/hooks-08.png differ diff --git a/v1.46/assets/img/quickstart/lakectl-local-01.png b/v1.46/assets/img/quickstart/lakectl-local-01.png new file mode 100644 index 000000000..26606f25d Binary files /dev/null and b/v1.46/assets/img/quickstart/lakectl-local-01.png differ diff --git a/v1.46/assets/img/quickstart/lakectl-local-02.png b/v1.46/assets/img/quickstart/lakectl-local-02.png new file mode 100644 index 000000000..c562be450 Binary files /dev/null and b/v1.46/assets/img/quickstart/lakectl-local-02.png differ diff --git a/v1.46/assets/img/quickstart/lakefs-login-screen.png b/v1.46/assets/img/quickstart/lakefs-login-screen.png new file mode 100644 index 000000000..06262989c Binary files /dev/null and b/v1.46/assets/img/quickstart/lakefs-login-screen.png differ diff --git a/v1.46/assets/img/quickstart/quickstart-repo.png b/v1.46/assets/img/quickstart/quickstart-repo.png new file mode 100644 index 000000000..e25c5e180 Binary files /dev/null and b/v1.46/assets/img/quickstart/quickstart-repo.png differ diff --git a/v1.46/assets/img/quickstart/quickstart-step-01.png b/v1.46/assets/img/quickstart/quickstart-step-01.png new file mode 100644 index 000000000..1e8cfb944 Binary files /dev/null and b/v1.46/assets/img/quickstart/quickstart-step-01.png differ diff --git a/v1.46/assets/img/quickstart/quickstart-step-02.png b/v1.46/assets/img/quickstart/quickstart-step-02.png new file mode 100644 index 000000000..31c44b173 Binary files /dev/null and b/v1.46/assets/img/quickstart/quickstart-step-02.png differ diff --git a/v1.46/assets/img/quickstart/quickstart-step-03.png b/v1.46/assets/img/quickstart/quickstart-step-03.png new file mode 100644 index 000000000..d48e82b52 Binary files /dev/null and b/v1.46/assets/img/quickstart/quickstart-step-03.png differ diff --git a/v1.46/assets/img/quickstart/quickstart-step-04.png b/v1.46/assets/img/quickstart/quickstart-step-04.png new file mode 100644 index 000000000..aeb51993e Binary files /dev/null and b/v1.46/assets/img/quickstart/quickstart-step-04.png differ diff --git a/v1.46/assets/img/quickstart/quickstart-step-05.png b/v1.46/assets/img/quickstart/quickstart-step-05.png new file mode 100644 index 000000000..6953cb96e Binary files /dev/null and b/v1.46/assets/img/quickstart/quickstart-step-05.png differ diff --git a/v1.46/assets/img/quickstart/quickstart-step-06.png b/v1.46/assets/img/quickstart/quickstart-step-06.png new file mode 100644 index 000000000..769f598e7 Binary files /dev/null and b/v1.46/assets/img/quickstart/quickstart-step-06.png differ diff --git a/v1.46/assets/img/quickstart/quickstart-step-07.png b/v1.46/assets/img/quickstart/quickstart-step-07.png new file mode 100644 index 000000000..4411ac026 Binary files /dev/null and b/v1.46/assets/img/quickstart/quickstart-step-07.png differ diff --git a/v1.46/assets/img/quickstart/repo-contents.png b/v1.46/assets/img/quickstart/repo-contents.png new file mode 100644 index 000000000..c40006d3d Binary files /dev/null and b/v1.46/assets/img/quickstart/repo-contents.png differ diff --git a/v1.46/assets/img/quickstart/repo-list.png b/v1.46/assets/img/quickstart/repo-list.png new file mode 100644 index 000000000..43ef606b3 Binary files /dev/null and b/v1.46/assets/img/quickstart/repo-list.png differ diff --git a/v1.46/assets/img/quickstart/user_config.png b/v1.46/assets/img/quickstart/user_config.png new file mode 100644 index 000000000..0645eb07d Binary files /dev/null and b/v1.46/assets/img/quickstart/user_config.png differ diff --git a/v1.46/assets/img/rds_conn.png b/v1.46/assets/img/rds_conn.png new file mode 100644 index 000000000..cb96a3ebc Binary files /dev/null and b/v1.46/assets/img/rds_conn.png differ diff --git a/v1.46/assets/img/red-hat/OpenShiftAIDemoArchitecture.png b/v1.46/assets/img/red-hat/OpenShiftAIDemoArchitecture.png new file mode 100644 index 000000000..946c5aaba Binary files /dev/null and b/v1.46/assets/img/red-hat/OpenShiftAIDemoArchitecture.png differ diff --git a/v1.46/assets/img/red-hat/OpenShiftDeploymentArchitecture.png b/v1.46/assets/img/red-hat/OpenShiftDeploymentArchitecture.png new file mode 100644 index 000000000..c1ae3a5ba Binary files /dev/null and b/v1.46/assets/img/red-hat/OpenShiftDeploymentArchitecture.png differ diff --git a/v1.46/assets/img/reference_arch1.png b/v1.46/assets/img/reference_arch1.png new file mode 100644 index 000000000..224450ca6 Binary files /dev/null and b/v1.46/assets/img/reference_arch1.png differ diff --git a/v1.46/assets/img/reference_arch2.png b/v1.46/assets/img/reference_arch2.png new file mode 100644 index 000000000..00a910b2d Binary files /dev/null and b/v1.46/assets/img/reference_arch2.png differ diff --git a/v1.46/assets/img/repo-created.png b/v1.46/assets/img/repo-created.png new file mode 100644 index 000000000..bfe6de10a Binary files /dev/null and b/v1.46/assets/img/repo-created.png differ diff --git a/v1.46/assets/img/repo_create.png b/v1.46/assets/img/repo_create.png new file mode 100644 index 000000000..55d315e4a Binary files /dev/null and b/v1.46/assets/img/repo_create.png differ diff --git a/v1.46/assets/img/reproduce-commit-history.png b/v1.46/assets/img/reproduce-commit-history.png new file mode 100644 index 000000000..61dddf0f7 Binary files /dev/null and b/v1.46/assets/img/reproduce-commit-history.png differ diff --git a/v1.46/assets/img/rollback-commit-history.png b/v1.46/assets/img/rollback-commit-history.png new file mode 100644 index 000000000..e27c7c682 Binary files /dev/null and b/v1.46/assets/img/rollback-commit-history.png differ diff --git a/v1.46/assets/img/rollback-copy-id.png b/v1.46/assets/img/rollback-copy-id.png new file mode 100644 index 000000000..bc416ec17 Binary files /dev/null and b/v1.46/assets/img/rollback-copy-id.png differ diff --git a/v1.46/assets/img/rollback-revert-commit.png b/v1.46/assets/img/rollback-revert-commit.png new file mode 100644 index 000000000..153d3ccb5 Binary files /dev/null and b/v1.46/assets/img/rollback-revert-commit.png differ diff --git a/v1.46/assets/img/route53.png b/v1.46/assets/img/route53.png new file mode 100644 index 000000000..702c3fdc8 Binary files /dev/null and b/v1.46/assets/img/route53.png differ diff --git a/v1.46/assets/img/s3_branch.png b/v1.46/assets/img/s3_branch.png new file mode 100644 index 000000000..1a85a7f36 Binary files /dev/null and b/v1.46/assets/img/s3_branch.png differ diff --git a/v1.46/assets/img/s3gatewayvsclientdataflow.png b/v1.46/assets/img/s3gatewayvsclientdataflow.png new file mode 100644 index 000000000..9431c18cc Binary files /dev/null and b/v1.46/assets/img/s3gatewayvsclientdataflow.png differ diff --git a/v1.46/assets/img/scim/entra-id-provisioning-setup.png b/v1.46/assets/img/scim/entra-id-provisioning-setup.png new file mode 100644 index 000000000..06268da31 Binary files /dev/null and b/v1.46/assets/img/scim/entra-id-provisioning-setup.png differ diff --git a/v1.46/assets/img/scim/lakefs_cloud_scim_configuration.png b/v1.46/assets/img/scim/lakefs_cloud_scim_configuration.png new file mode 100644 index 000000000..39f97b863 Binary files /dev/null and b/v1.46/assets/img/scim/lakefs_cloud_scim_configuration.png differ diff --git a/v1.46/assets/img/scim/lakefs_cloud_scim_settings.png b/v1.46/assets/img/scim/lakefs_cloud_scim_settings.png new file mode 100644 index 000000000..abd6a3167 Binary files /dev/null and b/v1.46/assets/img/scim/lakefs_cloud_scim_settings.png differ diff --git a/v1.46/assets/img/setup.png b/v1.46/assets/img/setup.png new file mode 100644 index 000000000..725a2c992 Binary files /dev/null and b/v1.46/assets/img/setup.png differ diff --git a/v1.46/assets/img/setup_done.png b/v1.46/assets/img/setup_done.png new file mode 100644 index 000000000..db7b8c661 Binary files /dev/null and b/v1.46/assets/img/setup_done.png differ diff --git a/v1.46/assets/img/stream_branching_model.png b/v1.46/assets/img/stream_branching_model.png new file mode 100644 index 000000000..efe5200cd Binary files /dev/null and b/v1.46/assets/img/stream_branching_model.png differ diff --git a/v1.46/assets/img/svix_play.png b/v1.46/assets/img/svix_play.png new file mode 100644 index 000000000..d60fecb7f Binary files /dev/null and b/v1.46/assets/img/svix_play.png differ diff --git a/v1.46/assets/img/unity-delta-sharing-create-catalog.png b/v1.46/assets/img/unity-delta-sharing-create-catalog.png new file mode 100644 index 000000000..b3af5a2ac Binary files /dev/null and b/v1.46/assets/img/unity-delta-sharing-create-catalog.png differ diff --git a/v1.46/assets/img/unity-delta-sharing-provider.png b/v1.46/assets/img/unity-delta-sharing-provider.png new file mode 100644 index 000000000..a9f4d9383 Binary files /dev/null and b/v1.46/assets/img/unity-delta-sharing-provider.png differ diff --git a/v1.46/assets/img/unity-delta-sharing-schema-per-branch.png b/v1.46/assets/img/unity-delta-sharing-schema-per-branch.png new file mode 100644 index 000000000..66d2533e2 Binary files /dev/null and b/v1.46/assets/img/unity-delta-sharing-schema-per-branch.png differ diff --git a/v1.46/assets/img/unity-delta-sharing-shares.png b/v1.46/assets/img/unity-delta-sharing-shares.png new file mode 100644 index 000000000..76afd5c1d Binary files /dev/null and b/v1.46/assets/img/unity-delta-sharing-shares.png differ diff --git a/v1.46/assets/img/unity_export_hook_result_log.png b/v1.46/assets/img/unity_export_hook_result_log.png new file mode 100644 index 000000000..c954195ff Binary files /dev/null and b/v1.46/assets/img/unity_export_hook_result_log.png differ diff --git a/v1.46/assets/img/unity_exported_table_columns.png b/v1.46/assets/img/unity_exported_table_columns.png new file mode 100644 index 000000000..c31356695 Binary files /dev/null and b/v1.46/assets/img/unity_exported_table_columns.png differ diff --git a/v1.46/assets/img/user_branching_model.png b/v1.46/assets/img/user_branching_model.png new file mode 100644 index 000000000..01cf4ff9e Binary files /dev/null and b/v1.46/assets/img/user_branching_model.png differ diff --git a/v1.46/assets/img/waving-axolotl-transparent.gif b/v1.46/assets/img/waving-axolotl-transparent.gif new file mode 100644 index 000000000..2e225ad2d Binary files /dev/null and b/v1.46/assets/img/waving-axolotl-transparent.gif differ diff --git a/v1.46/assets/img/wrapper.png b/v1.46/assets/img/wrapper.png new file mode 100644 index 000000000..2ff764da0 Binary files /dev/null and b/v1.46/assets/img/wrapper.png differ diff --git a/v1.46/assets/js/cookieconsent-init.js b/v1.46/assets/js/cookieconsent-init.js new file mode 100644 index 000000000..abfe64944 --- /dev/null +++ b/v1.46/assets/js/cookieconsent-init.js @@ -0,0 +1,80 @@ +import "https://cdn.jsdelivr.net/gh/orestbida/cookieconsent@v3.0.0/dist/cookieconsent.umd.js"; + +CookieConsent.run({ + guiOptions: { + consentModal: { + layout: "box inline", + position: "middle center", + equalWeightButtons: false, + }, + preferencesModal: { + layout: "box", + position: "middle center", + equalWeightButtons: false, + flipButtons: false, + }, + }, + autoShow: true, + manageScriptTags: true, + revision: 1, + autoClearCookies: true, + disablePageInteraction: true, + categories: { + necessary: { + enabled: true, + readOnly: true, + }, + analytics: { + enabled: true, + readOnly: false, + }, + }, + language: { + default: "en", + translations: { + en: { + consentModal: { + title: + '
Hello fellow axolotl, it\'s cookie time!
', + description: + 'Our website uses essential cookies to ensure its proper operation and tracking cookies to understand how you interact with it. The latter will be set only after consent. Please see our privacy policy.', + acceptAllBtn: "Accept all", + showPreferencesBtn: "Settings", + revisionMessage: + "

Dear user, terms and conditions have changed since the last time you visited!", + }, + preferencesModal: { + title: "Cookie settings", + acceptAllBtn: "Accept all", + acceptNecessaryBtn: "Reject all", + savePreferencesBtn: "Save current selection", + closeIconLabel: "Close", + sections: [ + { + title: "Cookie usage", + description: + 'Our website uses essential cookies to ensure its proper operation and tracking cookies to understand how you interact with it. The latter will be set only after consent. Please see our privacy policy.', + }, + { + title: "Strictly necessary cookies", + description: + "These cookies are strictly necessary for the website to function. They are usually set to handle only your actions in response to a service request, such as setting your privacy preferences, navigating between pages, and setting your preferred version. You can set your browser to block these cookies or to alert you to their presence, but some parts of the website will not function without them. These cookies do not store any personally identifiable information.", + linkedCategory: "necessary", + }, + { + title: "Analytics & Performance cookies", + description: + "These cookies are used for analytics and performance metering purposes. They are used to collect information about how visitors use our website, which helps us improve it over time. They do not collect any information that identifies a visitor. The information collected is aggregated and anonymous.", + linkedCategory: "analytics", + }, + { + title: "More information", + description: + 'For more information about cookie usage, privacy, and how we use the data we collect, please refer to our privacy policy and terms of use.', + }, + ], + }, + }, + }, + }, +}); diff --git a/v1.46/assets/js/copy-code.js b/v1.46/assets/js/copy-code.js new file mode 100644 index 000000000..d64200213 --- /dev/null +++ b/v1.46/assets/js/copy-code.js @@ -0,0 +1,22 @@ +$(() => { + let copyCodeContainer = $("
" + + "
"); + $("div.highlighter-rouge").prepend(copyCodeContainer); + $("div.highlighter-rouge .copy-code-button").click(function() { + const tempTextArea = document.createElement('textarea'); + tempTextArea.textContent = $(this).parent().parent().find("code").text() + document.body.appendChild(tempTextArea); + const selection = document.getSelection(); + selection.removeAllRanges(); + tempTextArea.select(); + document.execCommand('copy'); + selection.removeAllRanges(); + document.body.removeChild(tempTextArea); + $(this).removeClass("fa-copy").removeClass("far").addClass("fa").addClass("fa-check"); + const that = this; + setTimeout(function() { + $(that).addClass("fa-copy").addClass("far").removeClass("fa").removeClass("fa-check"); + }, 300); + }); +}); diff --git a/v1.46/assets/js/feedback.js b/v1.46/assets/js/feedback.js new file mode 100644 index 000000000..b9b1f6e26 --- /dev/null +++ b/v1.46/assets/js/feedback.js @@ -0,0 +1,36 @@ +$(() => { + const close = () => { + $('#is-helpful-ty').dialog('close'); + $(document).off("click", close); + $(window).off("scroll", close); + } + const showThankYou = (elm) => { + $('#is-helpful-ty').dialog({ + width: 200, + position: {of: elm, my: 'top right', at: 'left-50 bottom+50', collision: "fit"}, + open: () => setTimeout(() => { + $(document).on("click", close); + $(window).on("scroll", close); + }, 1), + show: {effect: "drop"}, + hide: {effect: "drop"} + }) + setTimeout(close, 10000); + } + + const sendFeedbackEvent = (elm) => { + if (window.dataLayer === undefined) return; // GA4 is not loaded on this page + const isHelpful = elm.id.substr("page-helpful-".length) === "yes"; + window.dataLayer.push("event", "click_docs_feedback", { + "page_title": window.document.title, + "reaction": isHelpful ? "thumbs_up" : "thumbs_down", + }); + } + + $(".page-helpful-btn").on("click", (e) => { + const elm = e.target; + sendFeedbackEvent(elm); + showThankYou(elm); + }); + $('#is-helpful-ty').on("click", (e) => $(e.target).prop("tagName") === 'A') +}) diff --git a/v1.46/assets/js/just-the-docs.js b/v1.46/assets/js/just-the-docs.js new file mode 100644 index 000000000..5b08d714e --- /dev/null +++ b/v1.46/assets/js/just-the-docs.js @@ -0,0 +1,518 @@ +(function (jtd, undefined) { + +// Event handling + +jtd.addEvent = function(el, type, handler) { + if (el.attachEvent) el.attachEvent('on'+type, handler); else el.addEventListener(type, handler); +} +jtd.removeEvent = function(el, type, handler) { + if (el.detachEvent) el.detachEvent('on'+type, handler); else el.removeEventListener(type, handler); +} +jtd.onReady = function(ready) { + // in case the document is already rendered + if (document.readyState!='loading') ready(); + // modern browsers + else if (document.addEventListener) document.addEventListener('DOMContentLoaded', ready); + // IE <= 8 + else document.attachEvent('onreadystatechange', function(){ + if (document.readyState=='complete') ready(); + }); +} + +// Show/hide mobile menu + +function initNav() { + jtd.addEvent(document, 'click', function(e){ + var target = e.target; + while (target && !(target.classList && target.classList.contains('nav-list-expander'))) { + target = target.parentNode; + } + if (target) { + e.preventDefault(); + const active = target.parentNode.classList.toggle('active'); + const passive = target.parentNode.classList.toggle('passive'); + if (active && passive) target.parentNode.classList.toggle('passive'); + target.ariaPressed = active; + } + }); + + const siteNav = document.getElementById('site-nav'); + const mainHeader = document.getElementById('main-header'); + const menuButton = document.getElementById('menu-button'); + + disableHeadStyleSheet(); + + jtd.addEvent(menuButton, 'click', function(e){ + e.preventDefault(); + + if (menuButton.classList.toggle('nav-open')) { + siteNav.classList.add('nav-open'); + mainHeader.classList.add('nav-open'); + menuButton.ariaPressed = true; + } else { + siteNav.classList.remove('nav-open'); + mainHeader.classList.remove('nav-open'); + menuButton.ariaPressed = false; + } + }); +} + +// The page-specific + + + + + + + + + + + + + + + + + + + +lakeFS Cloud | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + +
+ +

+ + + lakeFS Cloud + + +

+ +

+ + + What is lakeFS cloud? + + +

+ + +

lakeFS Cloud is a single tenant, fully-managed lakeFS solution, providing high availability, auto-scaling, support and production-grade features.

+

+ + + Why did we build lakeFS cloud? + + +

+ + +

We built lakeFS cloud for three main reasons:

+
    +
  1. We wanted to provide organizations with the benefits of lakeFS without the need to manage it, saving them the investment in infrastructure and work related to installation, upgrades, uptime and scale .
  2. +
  3. We wanted to provide lakeFS cloud users with security that meets their needs, with SSO, SCIM, and RBAC.
  4. +
  5. We wanted to provide additional functionality that reduces friction and allows fast implementation of version controlled data/ML/AI pipelines throughout their data lifecycle.
  6. +
+

+ + + What is the value of using lakeFS Cloud as a managed service? + + +

+ + +

The main advantages of using lakeFS Cloud, the lakeFS managed service are:

+
    +
  1. No installation required, no cloud costs and devops efforts on installing and maintaining a lakeFS installation.
  2. +
  3. All lakeFS services are managed and run by us, including Managed Garbage Collection.
  4. +
  5. lakeFS cloud is highly available and includes a commitment to an uptime SLA.
  6. +
  7. lakeFS cloud auto scales according to your needs. See lakeFS cloud scalability model for more details.
  8. +
  9. Upgrades are done transparently on your lakeFS cloud environment
  10. +
  11. The lakeFS team is committed to supporting you with an SLA for both issues and product enhancements.
  12. +
+

+ + + Which security features does lakeFS Cloud provide? + + +

+ + +
    +
  1. lakeFS Cloud is SOC2 Type II compliant. Contact us to get the certification.
  2. +
  3. lakeFS Cloud version controls your data, without accessing it, using pre-signed URLs! Read more here.
  4. +
  5. When using lakeFS Cloud, you are provided with a rich Role-Based Access Control functionality that allows for fine-grained control by associating permissions with users and groups, granting them specific actions on specific resources. This ensures data security and compliance within an organization.
  6. +
  7. To easily manage users and groups, lakeFS Cloud provides SSO integration (including support for SAML, OIDC, AD FS, Okta, and Azure AD), supporting existing credentials from a trusted provider, eliminating separate logins.
  8. +
  9. lakeFS Cloud supports SCIM for automatically provisioning and deprovisioning users and group memberships to allow organizations to maintain a single source of truth for their user database.
  10. +
  11. STS Auth offers temporary, secure logins using an Identity Provider, simplifying user access and enhancing security.
  12. +
  13. Authentication with AWS IAM Roles allows authentication using AWS IAM roles instead of lakeFS credentials, removing the need to maintain static credentials for lakeFS Enterprise users running on AWS.
  14. +
  15. Auditing provides a detailed action log of events happening within lakeFS, including who performed which action, on which resource - and when.
  16. +
  17. Private-Link support to ensure network security by only allowing access to your lakeFS Cloud installation from your cloud accounts
  18. +
+

+ + + What additional functionality does lakeFS Cloud provide? + + +

+ + +

Using lakeFS cloud is not just a secure and managed way of using lakeFS OSS; it is much more than that. With lakeFS Cloud you enjoy:

+
    +
  1. lakeFS Mount allows users to virtually mount a remote lakeFS repository onto a local directory. Once mounted, users can access the data as if it resides on their local filesystem, using any tool, library, or framework that reads from a local filesystem.
  2. +
  3. lakeFS Metadata Search - Allows a granular search API to filter and query versioned objects based on attached metadata. This is especially useful for machine learning environments to filter by labels and file attributes
  4. +
  5. lakeFS for Databricks - Provides a turnkey solution for Databricks customers for analytics, machine learning and business intelligence use cases including full support for Delta Lake tables, Unity Catalog, MLFlow and the rest of the Databricks product suite.
  6. +
  7. lakeFS for Snowflake - Provides full integration into the Snowflake ecosystem, including full support for Iceberg managed tables.
  8. +
  9. lakeFS Cross Cloud - Allows central management of repositories that span across multiple cloud providers including Azure, AWS, GCP and on-prem environments.
  10. +
  11. Transactional Mirroring - allows replicating lakeFS repositories into consistent read-only copies in remote locations.
  12. +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureOSSCloud
Format-agnostic data version control
Cloud-agnostic
Zero Clone copy for isolated environment
Atomic Data Promotion (via merges)
Data stays in one place
Configurable Garbage Collection
Data CI/CD using lakeFS hooks
Integrates with your data stack
Role Based Access Control (RBAC) 
Single Sign On (SSO) 
SCIM Support 
IAM Roles 
Mount Capability 
Audit Logs 
Transactional Mirroring (cross-region) 
Managed Service (auto updates, scaling) 
Managed Garbage Collection 
SOC2 Compliant 
Support SLA 
+

+ + + How lakeFS Cloud interacts with your infrastructure + + +

+ + +

Treeverse hosts and manages a dedicated lakeFS instance that interfaces with data held in your object store, such as S3.

+ +
flowchart TD
+    U[Users] --> LFC
+
+    subgraph Your Infrastructure
+    IAMM[lakeFS Managed GC IAM Role] --> ObjectStore[Client's Object Store]
+    IAMA[lakeFS Application IAM Role] --> ObjectStore
+    end
+
+    subgraph Treeverse's Infrastructure
+    MGC[Managed Garbage Collection] --> EMR[Elastic Map Reduce]
+    EMR --> IAMM
+    MGC --> CP
+    CP[Control Plane]
+    LFC --> CP
+
+        subgraph Client's Tenant
+        LFC[lakeFS Cloud] --> DB[Refstore Database]
+        end
+
+    LFC --> IAMC[lakeFS Connector IAM Role]
+    IAMC -->|ExternalID| IAMA
+    end
+
+

+ + + Setting up lakeFS Cloud + + +

+ +

+ + + AWS / Azure + + +

+ + +

Please follow the self-service setup wizard on lakeFS Cloud.

+

+ + + GCP + + +

+ + +

Please contact us for onboarding instructions.

+

+ + + lakeFS Cloud Scalability Model + + +

+ + +

By default, a lakeFS Cloud installation supports:

+
    +
  • 1,500 read operations/second across all branches on all repositories within a region
  • +
  • 1,500 write operations per second across all branches on all repositories within a region
  • +
+ +

This limit can be increased by contacting support.

+ +

Each lakeFS branch can sustain up to a maximum of 1,000 write operations/second and 3,000 read operations per second. +This scales horizontally, so for example, with 10 concurrent branches, a repository could sustain 10k writes/second and 30k reads/second, assuming load is distributed evenly between them.

+ +

Reading committed data (e.g. from a commit ID or tag) could be scaled up horizontally to any desired capacity, and defaults to ~5,000 reads/second.

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/cloud/managed-gc.html b/v1.46/cloud/managed-gc.html new file mode 100644 index 000000000..ad6fbb0a9 --- /dev/null +++ b/v1.46/cloud/managed-gc.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/cloud/private-link.html b/v1.46/cloud/private-link.html new file mode 100644 index 000000000..bc047fd43 --- /dev/null +++ b/v1.46/cloud/private-link.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/cloud/scim.html b/v1.46/cloud/scim.html new file mode 100644 index 000000000..1d45bb316 --- /dev/null +++ b/v1.46/cloud/scim.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/cloud/sso.html b/v1.46/cloud/sso.html new file mode 100644 index 000000000..52716caca --- /dev/null +++ b/v1.46/cloud/sso.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/cloud/standalone-gc.html b/v1.46/cloud/standalone-gc.html new file mode 100644 index 000000000..60636debe --- /dev/null +++ b/v1.46/cloud/standalone-gc.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/cloud/unity-delta-sharing-m0-users.html b/v1.46/cloud/unity-delta-sharing-m0-users.html new file mode 100644 index 000000000..e8e7839a6 --- /dev/null +++ b/v1.46/cloud/unity-delta-sharing-m0-users.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/cloud/unity-delta-sharing.html b/v1.46/cloud/unity-delta-sharing.html new file mode 100644 index 000000000..e8e7839a6 --- /dev/null +++ b/v1.46/cloud/unity-delta-sharing.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/commitment.html b/v1.46/commitment.html new file mode 100644 index 000000000..41dce22e2 --- /dev/null +++ b/v1.46/commitment.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/contributing.html b/v1.46/contributing.html new file mode 100644 index 000000000..f88e239f5 --- /dev/null +++ b/v1.46/contributing.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/data_lifecycle_management/ci.html b/v1.46/data_lifecycle_management/ci.html new file mode 100644 index 000000000..2971ba3d0 --- /dev/null +++ b/v1.46/data_lifecycle_management/ci.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/data_lifecycle_management/data-devenv.html b/v1.46/data_lifecycle_management/data-devenv.html new file mode 100644 index 000000000..66f7a21a2 --- /dev/null +++ b/v1.46/data_lifecycle_management/data-devenv.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/data_lifecycle_management/production.html b/v1.46/data_lifecycle_management/production.html new file mode 100644 index 000000000..8896605e8 --- /dev/null +++ b/v1.46/data_lifecycle_management/production.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/deploy/aws.html b/v1.46/deploy/aws.html new file mode 100644 index 000000000..fcfed0b37 --- /dev/null +++ b/v1.46/deploy/aws.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/deploy/azure.html b/v1.46/deploy/azure.html new file mode 100644 index 000000000..3ab302607 --- /dev/null +++ b/v1.46/deploy/azure.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/deploy/docker.html b/v1.46/deploy/docker.html new file mode 100644 index 000000000..4af5b9be6 --- /dev/null +++ b/v1.46/deploy/docker.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/deploy/gcp.html b/v1.46/deploy/gcp.html new file mode 100644 index 000000000..e0a39904c --- /dev/null +++ b/v1.46/deploy/gcp.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/deploy/index.html b/v1.46/deploy/index.html new file mode 100644 index 000000000..da83e1cb5 --- /dev/null +++ b/v1.46/deploy/index.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/deploy/k8s.html b/v1.46/deploy/k8s.html new file mode 100644 index 000000000..4af5b9be6 --- /dev/null +++ b/v1.46/deploy/k8s.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/deploy/onprem.html b/v1.46/deploy/onprem.html new file mode 100644 index 000000000..4af5b9be6 --- /dev/null +++ b/v1.46/deploy/onprem.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/deploying-aws/db.html b/v1.46/deploying-aws/db.html new file mode 100644 index 000000000..fcfed0b37 --- /dev/null +++ b/v1.46/deploying-aws/db.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/deploying-aws/index.html b/v1.46/deploying-aws/index.html new file mode 100644 index 000000000..fcfed0b37 --- /dev/null +++ b/v1.46/deploying-aws/index.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/deploying-aws/install.html b/v1.46/deploying-aws/install.html new file mode 100644 index 000000000..fcfed0b37 --- /dev/null +++ b/v1.46/deploying-aws/install.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/deploying-aws/lb_dns.html b/v1.46/deploying-aws/lb_dns.html new file mode 100644 index 000000000..fcfed0b37 --- /dev/null +++ b/v1.46/deploying-aws/lb_dns.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/deploying-aws/monitor.md b/v1.46/deploying-aws/monitor.md new file mode 100644 index 000000000..2abb5887c --- /dev/null +++ b/v1.46/deploying-aws/monitor.md @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/deploying-aws/offboarding.html b/v1.46/deploying-aws/offboarding.html new file mode 100644 index 000000000..ad6a95fec --- /dev/null +++ b/v1.46/deploying-aws/offboarding.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/deploying-aws/upgrade.html b/v1.46/deploying-aws/upgrade.html new file mode 100644 index 000000000..63831114b --- /dev/null +++ b/v1.46/deploying-aws/upgrade.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/deploying/install.html b/v1.46/deploying/install.html new file mode 100644 index 000000000..4af5b9be6 --- /dev/null +++ b/v1.46/deploying/install.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/downloads.html b/v1.46/downloads.html new file mode 100644 index 000000000..b03e665ad --- /dev/null +++ b/v1.46/downloads.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/enterprise/architecture.html b/v1.46/enterprise/architecture.html new file mode 100644 index 000000000..903e66759 --- /dev/null +++ b/v1.46/enterprise/architecture.html @@ -0,0 +1,748 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Architecture | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Architecture + + +

+ + +

The lakeFS Enterprise software consists of two components:

+
    +
  1. lakeFS Open Source: treeverse/lakeFS. See Github releases for release info.
  2. +
  3. A proprietary component called Fluffy which includes lakeFS’ Enterprise features.
  4. +
+ +

img.png

+ +

[1] Any user request to lakeFS via Browser or Programmatic access (SDK, HTTP +API, lakectl).

+ +

[2] Reverse Proxy (e.g. NGINX, Traefik, K8S Ingress): will handle user requests +and proxy between lakeFS server and fluffy server based on the path prefix +while maintaining the same host.

+ +

[3] lakeFS server - the main lakeFS service.

+ +

[4] fluffy server - service that is responsible for the Enterprise features., +it is separated by ports for security reasons.

+ +
    +
  1. SSO auth (i.e Browser login via Azure AD, Okta, Auth0), default port 8000.
  2. +
  3. RBAC authorization, default port 9000.
  4. +
+ +

[5] The KV Store - Where metadata is stored used both by lakeFS and fluffy.

+ +

[6] SSO IdP - Identity provider (e.g. Azure AD, Okta, JumpCloud). fluffy +implements SAML and Oauth2 protocols.

+ +

For more details and pricing, please contact sales.

+ +

Note: Setting up lakeFS enterprise with an SSO IdP (OIDC, SAML or LDAP) requires +configuring access from the IdP too.

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/enterprise/configuration.html b/v1.46/enterprise/configuration.html new file mode 100644 index 000000000..2ebfbab64 --- /dev/null +++ b/v1.46/enterprise/configuration.html @@ -0,0 +1,933 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Configuration Reference | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + lakeFS Enterprise Configuration Reference + + +

+ + +

Working with lakeFS Enterprise involve configuring both lakeFS and Fluffy. You can find the extended configuration references for both components below.

+ +
+

+ + + Table of contents + + +

+ + +
    +
  1. lakeFS Configuration
  2. +
  3. Fluffy Server Configuration
  4. +
+ +
+

+ + + lakeFS Configuration + + +

+ + +

See the full lakeFS Server Configuration

+

+ + + Fluffy Server Configuration + + +

+ + +

Configuring Fluffy using a YAML configuration file and/or environment variables. +The configuration file’s location can be set with the ‘–config’ flag. If not specified, the first file found in the following order will be used:

+
    +
  1. ./config.yaml
  2. +
  3. $HOME/fluffy/config.yaml
  4. +
  5. /etc/fluffy/config.yaml
  6. +
  7. $HOME/.fluffy.yaml
  8. +
+ +

Configuration items can be controlled by environment variables, see below.

+

+ + + Reference + + +

+ + +

This reference uses . to denote the nesting of values.

+ +
    +
  • logging.format (one of ["json", "text"] : "text") - Format to output log message in
  • +
  • logging.level (one of ["TRACE", "DEBUG", "INFO", "WARN", "ERROR", "NONE"] : "INFO") - Logging level to output
  • +
  • +

    logging.audit_log_level (one of ["TRACE", "DEBUG", "INFO", "WARN", "ERROR", "NONE"] : "DEBUG") - Audit logs level to output.

    + +

    Note: In case you configure this field to be lower than the main logger level, you won’t be able to get the audit logs

    +
  • +
  • logging.output (string : "-") - A path or paths to write logs to. A - means the standard output, = means the standard error.
  • +
  • logging.file_max_size_mb (int : 100) - Output file maximum size in megabytes.
  • +
  • logging.files_keep (int : 0) - Number of log files to keep, default is all.
  • +
  • logging.trace_request_headers (bool : false) - If set to true and logging level is set to TRACE, logs request headers.
  • +
  • listen_address (string : "0.0.0.0:8000") - A <host>:<port> structured string representing the address to listen on
  • +
  • database - Configuration section for the Fluffy key-value store database. The database must be shared between lakeFS & Fluffy +
      +
    • database.type (string ["postgres"|"dynamodb"|"cosmosdb"|"local"] : ) - Fluffy database type
    • +
    • database.postgres - Configuration section when using database.type="postgres" +
        +
      • database.postgres.connection_string (string : "postgres://localhost:5432/postgres?sslmode=disable") - PostgreSQL connection string to use
      • +
      • database.postgres.max_open_connections (int : 25) - Maximum number of open connections to the database
      • +
      • database.postgres.max_idle_connections (int : 25) - Maximum number of connections in the idle connection pool
      • +
      • database.postgres.connection_max_lifetime (duration : 5m) - Sets the maximum amount of time a connection may be reused (valid units: ns|us|ms|s|m|h)
      • +
      +
    • +
    • database.dynamodb - Configuration section when using database.type="dynamodb" +
        +
      • database.dynamodb.table_name (string : "kvstore") - Table used to store the data
      • +
      • +

        database.dynamodb.scan_limit (int : 1025) - Maximal number of items per page during scan operation

        + +

        Note: Refer to the following AWS documentation for further information

        +
      • +
      • database.dynamodb.endpoint (string : ) - Endpoint URL for database instance
      • +
      • database.dynamodb.aws_region (string : ) - AWS Region of database instance
      • +
      • database.dynamodb.aws_profile (string : ) - AWS named profile to use
      • +
      • database.dynamodb.aws_access_key_id (string : ) - AWS access key ID
      • +
      • database.dynamodb.aws_secret_access_key (string : ) - AWS secret access key
      • +
      • Note: endpoint aws_region aws_access_key_id aws_secret_access_key are not required and used mainly for experimental purposes when working with DynamoDB with different AWS credentials.
      • +
      • database.dynamodb.health_check_interval (duration : 0s) - Interval to run health check for the DynamoDB instance (won’t run if equal to 0).
      • +
      +
    • +
    • database.cosmosdb - Configuration section when using database.type="cosmosdb" +
        +
      • database.cosmosdb.key (string : "") - If specified, will + be used to authenticate to the CosmosDB account. Otherwise, Azure SDK + default authentication (with env vars) will be used.
      • +
      • database.cosmosdb.endpoint (string : "") - CosmosDB account endpoint, e.g. https://<account>.documents.azure.com/.
      • +
      • database.cosmosdb.database (string : "") - CosmosDB database name.
      • +
      • database.cosmosdb.container (string : "") - CosmosDB container name.
      • +
      • database.cosmosdb.throughput (int32 : ) - CosmosDB container’s RU/s. If not set - the default CosmosDB container throughput is used.
      • +
      • +

        database.cosmosdb.autoscale (bool : false) - If set, CosmosDB container throughput is autoscaled (See CosmosDB docs for minimum throughput requirement). Otherwise, uses “Manual” mode (Docs).

        + +
          +
        • database.local - Configuration section when using database.type="local" +
            +
          • database.local.path (string : "~/fluffy/metadata") - Local path on the filesystem to store embedded KV metadata
          • +
          • database.local.sync_writes (bool: true) - Ensure each write is written to the disk. Disable to increase performance
          • +
          • database.local.prefetch_size (int: 256) - How many items to prefetch when iterating over embedded KV records
          • +
          • database.local.enable_logging (bool: false) - Enable trace logging for local driver
          • +
          +
        • +
        +
      • +
      +
    • +
    +
  • +
  • auth - Configuration section for the Fluffy authentication services, like SAML or OIDC. +
      +
    • auth.encrypt.secret_key (string : required) - Same value given to lakeFS. A random (cryptographically safe) generated string that is used for encryption and HMAC signing
    • +
    • auth.logout_redirect_url (string : "/auth/login") - The address to redirect to after a successful logout, e.g. login.
    • +
    • auth.post_login_redirect_url (string : '') - Required when SAML is enabled. The address to redirect after a successful login. For most common configurations, setting to / will redirect to lakeFS homepage.
    • +
    • auth.serve_listen_address (string : '') - If set, an endpoint serving RBAC requests binds to this address.
    • +
    • auth.serve_disable_authentication (bool : false) - Unsafe. Disables authentication to the RBAC server.
    • +
    • auth.ldap +
        +
      • auth.ldap.server_endpoint (string : required) - The LDAP server address, e.g. ‘ldaps://ldap.company.com:636’
      • +
      • auth.ldap.bind_dn (string : required) - The bind string, e.g. ‘uid=,ou=Users,o=,dc=,dc=com'
      • +
      • auth.ldap.bind_password (string : required) - The password for the user to bind.
      • +
      • auth.ldap.username_attribute (string : required) - The user name attribute, e.g. ‘uid’
      • +
      • auth.ldap.user_base_dn (string : required) - The search request base dn, e.g. ‘ou=Users,o=,dc=,dc=com'
      • +
      • auth.ldap.user_filter (string : required) - The search request user filter, e.g. ‘(objectClass=inetOrgPerson)’
      • +
      • auth.ldap.connection_timeout_seconds (int : required) - The timeout for a single connection
      • +
      • auth.ldap.request_timeout_seconds (int : required) - The timeout for a single request
      • +
      +
    • +
    • auth.saml Configuration section for SAML +
        +
      • auth.saml.enabled (bool : false) - Enables SAML Authentication.
      • +
      • auth.saml.sp_root_url (string : '') - The base lakeFS-URL, e.g. ‘https://'
      • +
      • auth.saml.sp_x509_key_path (string : '') - The path to the private key, e.g ‘/etc/saml_certs/rsa_saml_private.cert’
      • +
      • auth.saml.sp_x509_cert_path (string : '') - The path to the public key, ‘/etc/saml_certs/rsa_saml_public.pem’
      • +
      • auth.saml.sp_sign_request (bool : 'false') SPSignRequest some IdP require the SLO request to be signed
      • +
      • auth.saml.sp_signature_method (string : '') SPSignatureMethod optional valid signature values depending on the IdP configuration, e.g. ‘http://www.w3.org/2001/04/xmldsig-more#rsa-sha256’
      • +
      • auth.saml.idp_metadata_url (string : '') - The URL for the metadata server, e.g. ‘https:///federationmetadata/2007-06/federationmetadata.xml'
      • +
      • auth.saml.idp_skip_verify_tls_cert (bool : false) - Insecure skip verification of the IdP TLS certificate, like when signed by a private CA
      • +
      • auth.saml.idp_authn_name_id_format (string : 'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified') - The format used in the NameIDPolicy for authentication requests
      • +
      • auth.saml.idp_request_timeout (duration : '10s') The timeout for remote authentication requests.
      • +
      • auth.saml.external_user_id_claim_name (string : '') - The claim name to use as the user identifier with an IdP mostly for logout
      • +
      +
    • +
    • auth.oidc Configuration section for OIDC +
        +
      • auth.oidc.enabled (bool : false) - Enables OIDC Authentication.
      • +
      • auth.oidc.url (string : '') - The OIDC provider url, e.g. ‘https://oidc-provider-url.com/’
      • +
      • auth.oidc.client_id (string : '') - The application’s ID.
      • +
      • auth.oidc.client_secret (string : '') - The application’s secret.
      • +
      • auth.oidc.callback_base_url (string : '') - A default callback address of the Fluffy server.
      • +
      • auth.oidc.callback_base_urls (string[] : '[]')
      • +
      +
    • +
    • Note: You may configure a list of URLs that the OIDC provider may redirect to. This allows lakeFS to be accessed from multiple hostnames while retaining federated auth capabilities. +If the provider redirects to a URL not in this list, the login will fail. This property and callback_base_url are mutually exclusive. +
        +
      • auth.oidc.authorize_endpoint_query_parameters (bool : map[string]string) - key/value parameters that are passed to a provider’s authorization endpoint.
      • +
      • auth.oidc.logout_endpoint_query_parameters (string[] : '[]') - The query parameters that will be used to redirect the user to the OIDC provider after logout, e.g. ‘[returnTo, https:///oidc/login]'
      • +
      • auth.oidc.logout_client_id_query_parameter (string : '') - The claim name that represents the client identifier in the OIDC provider
      • +
      • auth.oidc.additional_scope_claims (string[] : '[]') - Specifies optional requested permissions, other than openid and profile that are being used.
      • +
      +
    • +
    • auth.cache Configuration section for RBAC service cache +
        +
      • auth.cache.enabled (bool : true) - Enables RBAC service cache
      • +
      • auth.cache.size (int : 1024) - Number of users, policies and credentials to cache.
      • +
      • auth.cache.ttl (duration : 20s) - Cache items time to live expiry.
      • +
      • auth.cache.jitter (duration : 3s) - Cache items time to live jitter.
      • +
      +
    • +
    • auth.external - Configuration section for the external authentication methods +
        +
      • auth.external.aws_auth - Configuration section for authenticating to lakeFS using AWS presign get-caller-identity request: External Principals AWS Auth +
          +
        • auth.external.aws_auth.enabled (bool : false) - If true, external principals API will be enabled, e.g auth service and login api’s.
        • +
        • auth.external.aws_auth.get_caller_identity_max_age (duration : 15m) - The maximum age in seconds for the GetCallerIdentity request to be valid, the max is 15 minutes enforced by AWS, smaller TTL can be set.
        • +
        • auth.authentication_api.external_principals_enabled (bool : false) - If true, external principals API will be enabled, e.g auth service and login api’s.
        • +
        • auth.external.aws_auth.valid_sts_hosts ([]string) - The default are all the valid AWS STS hosts (sts.amazonaws.com, sts.us-east-2.amazonaws.com etc).
        • +
        • auth.external.aws_auth.required_headers (map[string]string : ) - Headers that must be present by the client when doing login request (e.g X-LakeFS-Server-ID: <lakefs.ingress.domain>).
        • +
        • auth.external.aws_auth.optional_headers (map[string]string : ) - Optional headers that can be present by the client when doing login request.
        • +
        • auth.external.aws_auth.http_client.timeout (duration : 10s) - The timeout for the HTTP client used to communicate with AWS STS.
        • +
        • auth.external.aws_auth.http_client.skip_verify (bool : false) - Skip SSL verification with AWS STS.
        • +
        +
      • +
      +
    • +
    +
  • +
+

+ + + Using Environment Variables + + +

+ + +

All the configuration variables can be set or overridden using environment variables. +To set an environment variable, prepend FLUFFY_ to its name, convert it to upper case, and replace . with _:

+ +

For example, logging.format becomes FLUFFY_LOGGING_FORMAT, auth.saml.enabled becomes FLUFFY_AUTH_SAML_ENABLED, etc.

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/enterprise/getstarted/index.html b/v1.46/enterprise/getstarted/index.html new file mode 100644 index 000000000..c7799a875 --- /dev/null +++ b/v1.46/enterprise/getstarted/index.html @@ -0,0 +1,738 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Get Started | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Get Started with lakeFS Enterprise + + +

+ +

+ + + Request a Trial License + + +

+ + +

To start a 30-day free trial, please contact us. You will be granted with a token that +allows downloading a Docker image that includes lakeFS Enterprise features.

+

+ + + Install lakeFS Enterprise + + +

+ + +

lakeFS Enterprise offers two installation methods:

+
    +
  • Quickstart: The fastest way to get started with lakeFS Enterprise. Intended for testing and evaluation.
  • +
  • Production deployment: Run lakeFS Enterprise on a Kubernetes cluster on AWS, Azure, GCP, or on-prem.
  • +
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/enterprise/getstarted/install.html b/v1.46/enterprise/getstarted/install.html new file mode 100644 index 000000000..3fdcd71f0 --- /dev/null +++ b/v1.46/enterprise/getstarted/install.html @@ -0,0 +1,1277 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Install | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Install + + +

+ + +

For production deployments of lakeFS Enterprise, follow this guide.

+ + +

+ + + lakeFS Enterprise Architecture + + +

+ + +

We recommend to review the lakeFS Enterprise architecture to understand the components you will be deploying.

+

+ + + Deploy lakeFS Enterprise on Kubernetes + + +

+ + +

The guide is using the lakeFS Helm Chart to deploy a fully functional lakeFS Enterprise.

+ +

The guide includes example configurations, follow the steps below and adjust the example configurations according to:

+
    +
  • The platform you run on: among the platform supported by lakeFS
  • +
  • Type of KV store you use
  • +
  • Your SSO IdP and protocol
  • +
+

+ + + Prerequisites + + +

+ + +
    +
  1. You have a Kubernetes cluster running in one of the platforms supported by lakeFS.
  2. +
  3. Helm is installed
  4. +
  5. Access to download dockerhub/fluffy from Docker Hub. Contact us to gain access to lakeFS Enterprise features.
  6. +
  7. A KV Database that will be shared by lakeFS and Fluffy. The available options are dependent in your deployment platform.
  8. +
  9. A proxy server configured to route traffic between the lakeFS and Fluffy servers, see Reverse Proxy in lakeFS Enterprise architecture.
  10. +
+

+ + + Optional + + +

+ +
    +
  1. Access to configure your SSO IdP supported by lakeFS Enterprise.
  2. +
+ +
+

You can install lakeFS Enterprise without configuring SSO and still benefit from all other lakeFS Enterprise features.

+
+

+ + + Add the lakeFS Helm Chart + + +

+ + +
    +
  • Add the lakeFS Helm repository with helm repo add lakefs https://charts.lakefs.io
  • +
  • The chart contains a values.yaml file you can customize to suit your needs as you follow this guide. Use helm show values lakefs/lakefs to see the default values.
  • +
  • While customizing your values.yaml file, note to configure fluffy.image.privateRegistry.secretToken with the token Docker Hub token you received.
  • +
+

+ + + Authentication Configuration + + +

+ + +

Authentication in lakeFS Enterprise is handled by the Fluffy SSO service which runs side-by-side to lakeFS. This section explains +what Fluffy configurations are required for configuring the SSO service. See this configuration reference for additional Fluffy configurations.

+ +

See SSO for lakeFS Enterprise for the supported identity providers and protocols.

+ +

The examples below include example configuration for each of the supported SSO protocols. Note the IdP-specific details you’ll need to +replace with your IdP details.

+ +
+ +
+ +

The following values file will run lakeFS Enterprise with OIDC integration.

+ +
+

The full OIDC configurations explained here.

+
+ +
lakefsConfig: |
+  logging:
+      level: "INFO"
+  blockstore:
+    type: s3
+  auth:
+    oidc:
+      # the claim that's provided by the OIDC provider (e.g Okta) that will be used as the username according to OIDC provider claims provided after successful authentication
+      friendly_name_claim_name: "<some-oidc-provider-claim-name>"
+      default_initial_groups: ["Developers", "Admins"]
+      # if true then the value of friendly_name_claim_name will be refreshed during each login to maintain the latest value
+      # and the the claim value (i.e user name) will be stored in the lakeFS database
+      persist_friendly_name: true
+    ui_config:
+      login_cookie_names:
+        - internal_auth_session
+        - oidc_auth_session
+ingress:
+  enabled: true
+  ingressClassName: <class-name>
+  hosts:
+    # the ingress that will be created for lakeFS
+    - host: <lakefs.acme.com>
+      paths:
+       - /
+
+##################################################
+########### lakeFS enterprise - FLUFFY ###########
+##################################################
+
+fluffy:
+  enabled: true
+  image:
+    repository: treeverse/fluffy
+    pullPolicy: IfNotPresent
+    privateRegistry:
+      enabled: true
+      secretToken: <dockerhub-token-fluffy-image>
+  fluffyConfig: |
+    logging:
+      format: "json"
+      level: "INFO"
+    auth:
+      logout_redirect_url: https://oidc-provider-url.com/logout/example
+      oidc:
+        enabled: true
+        url: https://oidc-provider-url.com/
+        client_id: <oidc-client-id>
+        callback_base_url: https://<lakefs.acme.com>
+        # the claim name that represents the client identifier in the OIDC provider (e.g Okta)
+        logout_client_id_query_parameter: client_id
+        # the query parameters that will be used to redirect the user to the OIDC provider (e.g Okta) after logout
+        logout_endpoint_query_parameters:
+          - returnTo
+          - https://<lakefs.acme.com>/oidc/login
+  secrets:
+    create: true
+  sso:
+    enabled: true
+    oidc:
+      enabled: true
+      # secret given by the OIDC provider (e.g auth0, Okta, etc) store in kind: Secret
+      client_secret: <oidc-client-secret>
+  rbac:
+    enabled: true
+
+useDevPostgres: true
+
+ +
+
+ +

The following values file will run lakeFS Enterprise with SAML using Azure AD as the IdP. +
+You can use this example configuration to configure Active Directory Federation Services (AD FS) with SAML.

+ +
+

The full SAML configurations explained here.

+
+

+ + + Azure App Configuration + + +

+ + +
    +
  1. Create an Enterprise Application with SAML toolkit - see Azure quickstart
  2. +
  3. Add users: App > Users and groups: Attach users and roles from their existing AD users +list - only attached users will be able to login to lakeFS.
  4. +
  5. Configure SAML: App > Single sign-on > SAML: +
      +
    1. Entity ID: Add 2 ID’s, lakefs-url + lakefs-url/saml/metadata (e.g. https://lakefs.acme.com and https://lakefs.acme.com/saml/metadata)
    2. +
    3. Reply URL: lakefs-url/saml (e.g. https://lakefs.acme.com/saml)
    4. +
    5. Sign on URL: lakefs-url/sso/login-saml (e.g. https://lakefs.acme.com/sso/login-saml)
    6. +
    7. Relay State (Optional, controls where to redirect after login): /
    8. +
    +
  6. +
+

+ + + SAML Configuration + + +

+ + +
    +
  1. Configure SAML application in your IdP (i.e Azure AD) and replace the required parameters into the values.yaml below.
  2. +
  3. To generate certificates keypair use: `openssl req -x509 -newkey rsa:2048 -keyout myservice.key -out myservice.cert -days 365 -nodes -subj “/CN=lakefs.acme.com” -
  4. +
+ +
secrets:
+  authEncryptSecretKey: "some random secret string"
+
+lakefsConfig: |
+  logging:
+      level: "DEBUG"
+  blockstore:
+    type: local
+  auth:
+    cookie_auth_verification:
+      # claim name to use for friendly name in lakeFS UI
+      friendly_name_claim_name: displayName
+      external_user_id_claim_name: http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
+      default_initial_groups:
+        - "Developers"
+    encrypt:
+      secret_key: shared-secrey-key
+    ui_config:
+      login_cookie_names:
+        - internal_auth_session
+        - saml_auth_session
+ingress:
+  enabled: true
+  ingressClassName: <class-name>
+  annotations: {}
+  hosts:
+    - host: <lakefs.acme.com>
+      paths:
+       - /
+
+fluffy:
+  enabled: true
+  image:
+    repository: treeverse/fluffy
+    pullPolicy: IfNotPresent
+    privateRegistry:
+      enabled: true
+      secretToken: <dockerhub-token-fluffy-image>
+  fluffyConfig: |
+    logging:
+      format: "json"
+      level: "DEBUG"
+    auth:
+      # redirect after logout
+      logout_redirect_url: https://<lakefs.acme.com>
+      saml:
+        sp_sign_request: false
+        sp_signature_method: "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"
+        idp_metadata_url: https://login.microsoftonline.com/<...>/federationmetadata/2007-06/federationmetadata.xml?appid=<app-id>
+        # the default id format urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
+        # idp_authn_name_id_format: "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"
+        external_user_id_claim_name: http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
+        idp_skip_verify_tls_cert: true
+  secrets:
+    create: true
+  sso:
+    enabled: true
+    saml:
+      enabled: true
+      createSecret: true
+      lakeFSServiceProviderIngress: https://<lakefs.acme.com>
+      certificate:
+        # certificate and private key for the SAML service provider to sign outgoing SAML requests
+        saml_rsa_public_cert: |
+          -----BEGIN CERTIFICATE-----
+          ...
+          -----END CERTIFICATE-----
+        saml_rsa_private_key: |
+          -----BEGIN PRIVATE KEY-----
+          ...
+          -----END PRIVATE KEY-----
+  rbac:
+    enabled: true
+
+ +
+
+ +

The following values file will run lakeFS Enterprise with LDAP.

+ +
+

The full LDAP configurations explained here.

+
+ +
lakefsConfig: |
+  logging:
+      level: "INFO"
+  blockstore:
+    type: local
+  auth:
+    remote_authenticator:
+      enabled: true
+      # RBAC group for first time users
+      default_user_group: "Developers"
+    ui_config:
+      login_cookie_names:
+        - internal_auth_session
+
+ingress:
+  enabled: true
+  ingressClassName: <class-name>
+  hosts:
+    - host: <lakefs.acme.com>
+      paths:
+       - /
+
+fluffy:
+  enabled: true
+  image:
+    privateRegistry:
+      enabled: true
+      secretToken: <dockerhub-token-fluffy-image>
+  fluffyConfig: |
+    logging:
+      level: "INFO"
+    auth:
+      post_login_redirect_url: /
+      ldap:
+        server_endpoint: 'ldaps://ldap.company.com:636'
+        bind_dn: uid=<bind-user-name>,ou=Users,o=<org-id>,dc=<company>,dc=com
+        username_attribute: uid
+        user_base_dn: ou=Users,o=<org-id>,dc=<company>,dc=com
+        user_filter: (objectClass=inetOrgPerson)
+        connection_timeout_seconds: 15
+        request_timeout_seconds: 17
+  secrets:
+    create: true
+  sso:
+    enabled: true
+    ldap:
+      enabled: true
+      bind_password: <ldap bind password>
+  rbac:
+    enabled: true
+
+useDevPostgres: true
+
+ +
+
+ +

See additional examples on GitHub we provide for each authentication method (oidc, adfs, ldap, rbac, IAM etc).

+

+ + + Database Configuration + + +

+ + +

In this section, you will learn how to configure lakeFS Enterprise to work with the KV Database you created (see prerequisites.

+ +

Notes:

+
    +
  • By default, the lakeFS Helm chart comes with useDevPostgres: true, you should change it to useDevPostgres: false for Fluffy to work with your KV Database and be suitable for production needs.
  • +
  • The KV database is shared between lakeFS and Fluffy, and therefore both services must use the same configuration.
  • +
  • See fluffy and lakeFS database configuration.
  • +
+ +

The database configuration structure between lakeFS and fluffy can be set directly via fluffyConfig, via K8S Secret Kind, and lakefsConfig or via environment variables.

+ +
+ +
+ +

This example uses Postgres as KV Database. lakeFS is configured via lakefsConfig and Fluffy via environment with the same database configuration.

+ +
useDevPostgres: false
+lakefsConfig: |
+  database:
+    type: postgres
+    postgres:
+      connection_string: <postgres connection string>
+
+fluffy:
+  extraEnvVars:
+    - name: FLUFFY_DATABASE_TYPE
+      value: postgres
+    - name: FLUFFY_DATABASE_POSTGRES_CONNECTION_STRING
+      value: '<postgres connection string>'
+
+
+
+ +
+ +

This example uses DynamoDB as KV Database.

+ +

+# disable dev postgres
+useDevPostgres: false
+
+lakefsConfig: |
+  database:
+    type: dynamodb
+    dynamodb:
+      table_name: <table>
+      aws_profile: <profile>
+fluffyConfig: |
+    database:
+      type: dynamodb
+      dynamodb:
+        table_name: <table>
+        aws_profile: <profile>
+        aws_region: <region>
+
+
+
+ +

This example uses Postgres as KV Database. The chart will create a kind: Secret holding the database connection string, and the lakeFS and Fluffy will use it.

+ +
useDevPostgres: false
+secrets:
+  authEncryptSecretKey: shared-key-hello
+  databaseConnectionString: <postgres connection string>
+
+lakefsConfig: |
+  database:
+    type: postgres
+fluffyConfig: |
+  database:
+    type: postgres
+
+
+

+ + + Install the lakeFS Helm Chart + + +

+ + +

After populating your values.yaml file with the relevant configuration, in the desired K8S namespace run helm install lakefs lakefs/lakefs -f values.yaml

+

+ + + Access the lakeFS UI + + +

+ + +

In your browser go to the to the Ingress host to access lakeFS UI.

+

+ + + Log Collection + + +

+ + +

The recommended practice for collecting logs would be sending them to the container std (default configuration) +and letting an external service to collect them to a sink. An example for logs collector would be fluentbit +that can collect container logs, format them and ship them to a target like S3.

+ +

There are 2 kinds of logs, regular logs like an API error or some event description used for debugging +and audit_logs that are describing a user action (i.e create branch). +The distinction between regular logs and audit_logs is in the boolean field log_audit. +lakeFS and fluffy share the same configuration structure under logging.* section in the config.

+

+ + + Advanced Deployment Configurations + + +

+ + +

The following example demonstrates a scenario where you need to configure an HTTP proxy for lakeFS and Fluffy, TLS certificates for the Ingress and extending the K8S manifests without forking the Helm chart.

+ +
ingress:
+  enabled: true
+  ingressClassName: <class-name>
+  # configure TLS certificate for the Ingress
+  tls:
+    - hosts:
+      - lakefs.acme.com
+      secretName: somesecret
+  hosts:
+    - host: lakefs.acme.com
+      paths:
+       - /
+
+# configure proxy for lakeFS
+extraEnvVars:
+  - name: HTTP_PROXY
+    value: 'http://my.company.proxy:8081'
+  - name: HTTPS_PROXY
+    value: 'http://my.company.proxy:8081'
+
+fluffy:
+  # configure proxy for fluffy
+  extraEnvVars:
+    - name: HTTP_PROXY
+      value: 'http://my.company.proxy:8081'
+    - name: HTTPS_PROXY
+      value: 'http://my.company.proxy:8081'
+
+# advanced: extra manifests to extend the K8S resources
+extraManifests:
+  - apiVersion: v1
+    kind: ConfigMap
+    metadata:
+      name: '-extra-config'
+    data:
+      config.yaml: my-data
+
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/enterprise/getstarted/migrate-from-oss.html b/v1.46/enterprise/getstarted/migrate-from-oss.html new file mode 100644 index 000000000..049a3a9a3 --- /dev/null +++ b/v1.46/enterprise/getstarted/migrate-from-oss.html @@ -0,0 +1,739 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Migrate from lakeFS OSS | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Migrate From lakeFS Open-Source to lakeFS Enterprise + + +

+ + +

To migrate from lakeFS Open Source to lakeFS Enterprise, follow the steps below:

+ +
    +
  1. Make sure you have the Fluffy Docker token, if not contact us to gain access to Fluffy. You will be granted with a token that enables downloading dockerhub/fluffy from Docker Hub.
  2. +
  3. Sanity Test (Optional): Install a new test lakeFS Enterprise before moving your current production setup. Test the setup > login > Create repository etc. Once everything seems to work, delete and cleanup the test setup and we will move to the migration process.
  4. +
  5. Follow lakeFS Enterprise installation guide +
      +
    1. Make sure that you meet the prerequisites
    2. +
    3. Update your existing values.yaml file for your deployment
    4. +
    +
  6. +
  7. DB Migration: we are going to use the same DB for both lakeFS and Fluffy, so we need to migrate the DB schema.
  8. +
  9. Make sure to SSH / exec into the lakeFS server (old pre-upgrade version), the point is to use the same lakefs configuration file when running a migration. +
      +
    1. If upgrading lakefs version do this or skip to the next step: Install the new lakeFS binary, if not use the existing one (the one you are running).
    2. +
    3. Run the command: LAKEFS_AUTH_UI_CONFIG_RBAC=internal lakefs migrate up (use the new binary if upgrading lakeFS version).
    4. +
    5. You should expect to see a log message saying Migration completed successfully.
    6. +
    7. During this short db migration process please make sure not to make any policy / RBAC related changes.
    8. +
    +
  10. +
  11. Once the migration completed - Upgrade your helm release with the modified values.yaml and the new version and run helm ugprade.
  12. +
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/enterprise/getstarted/quickstart.html b/v1.46/enterprise/getstarted/quickstart.html new file mode 100644 index 000000000..a21aa7687 --- /dev/null +++ b/v1.46/enterprise/getstarted/quickstart.html @@ -0,0 +1,1090 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Quickstart | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Quickstart + + +

+ + +

Follow these quickstarts to try out lakeFS Enterprise.

+ +
+

⚠️ lakeFS Enterprise Quickstarts are not suitable for production use-cases.

+
+
+

+ + + Table of contents + + +

+ + +
    +
  1. lakeFS Enterprise Sample
  2. +
  3. Docker Quickstart
  4. +
  5. Kubernetes Helm Chart Quickstart
  6. +
+ +
+

+ + + lakeFS Enterprise Sample + + +

+ + +

The lakeFS Enterprise Sample is the quickest way to experience the value of lakeFS Enterprise features in a containerized environment. This Docker-based setup is ideal if you want +to easily interact with lakeFS without the hassle of integration and experiment with lakeFS without writing code.

+ +

By running the lakeFS Enterprise Sample, you will be getting a ready-to-use environment including +the following containers:

+
    +
  • lakeFS
  • +
  • Fluffy (includes lakeFS Enterprise features)
  • +
  • Postgres: used by lakeFS and Fluffy as a shared KV store
  • +
  • MinIO container: used as the storage connected to lakeFS
  • +
  • Jupyter notebooks setup: Pre-populated with notebooks that demonstrate lakeFS Enterprise’ capabilities
  • +
  • Apache Spark: this is useful for interacting with data you’ll manage with lakeFS
  • +
+ +

Checkout the RBAC demo notebook to see lakeFS Enterprise Role-Based Access Control capabilities in action.

+

+ + + Docker Quickstart + + +

+ +

+ + + Prerequisites + + +

+ + +
    +
  1. You have installed Docker Compose version 2.23.1 or higher on your machine.
  2. +
  3. Access to download dockerhub/fluffy from Docker Hub. Contact us to gain access to Fluffy.
  4. +
  5. With the token you’ve been granted, login locally to Docker Hub with docker login -u externallakefs -p <TOKEN>.
  6. +
+ +


+The quickstart docker-compose files below create a lakeFS server that’s connected to a local blockstore and spin up the following containers:

+
    +
  • lakeFS
  • +
  • Fluffy (includes lakeFS Enterprise features)
  • +
  • Postgres: used by lakeFS and Fluffy as a shared KV store
  • +
+ +

You can choose from the the following options:

+
    +
  1. Recommended: A fully functional lakeFS Enterprise setup without SSO support
  2. +
  3. Advanced: A fully functional lakeFS Enterprise setup including SSO support with OIDC integration configured
  4. +
+ +
+

If you can postpone the evaluation of the SSO integration, we suggest starting without it to speed up overall testing. The SSO integration requires additional configurations and is best addressed later.

+
+ +


+
+ +
+ +
    +
  1. Create a docker-compose.yaml file with the following content
  2. +
  3. Run docker compose up in the same directory as the docker-compose.yaml file.
  4. +
  5. In your browser, go to http://localhost:8080 to access lakeFS UI.
  6. +
+ +
version: "3"
+services:
+  lakefs:
+    image: "treeverse/lakefs:1.25.0"
+    command: "RUN"
+    ports:
+      - "8080:8080"
+    depends_on:
+      - "postgres"
+    environment:
+      - LAKEFS_LISTEN_ADDRESS=0.0.0.0:8080
+      - LAKEFS_LOGGING_LEVEL=DEBUG
+      - LAKEFS_AUTH_ENCRYPT_SECRET_KEY="random_secret"
+      - LAKEFS_AUTH_API_ENDPOINT=http://fluffy:9000/api/v1
+      - LAKEFS_AUTH_API_SUPPORTS_INVITES=true
+      - LAKEFS_AUTH_UI_CONFIG_RBAC=internal
+      - LAKEFS_AUTH_AUTHENTICATION_API_ENDPOINT=http://localhost:8000/api/v1
+      - LAKEFS_AUTH_AUTHENTICATION_API_EXTERNAL_PRINCIPALS_ENABLED=true
+      - LAKEFS_DATABASE_TYPE=postgres
+      - LAKEFS_DATABASE_POSTGRES_CONNECTION_STRING=postgres://lakefs:lakefs@postgres/postgres?sslmode=disable
+      - LAKEFS_BLOCKSTORE_TYPE=local
+      - LAKEFS_BLOCKSTORE_LOCAL_PATH=/home/lakefs
+      - LAKEFS_BLOCKSTORE_LOCAL_IMPORT_ENABLED=true
+    entrypoint: ["/app/wait-for", "postgres:5432", "--", "/app/lakefs", "run"]
+    configs:
+      - source: lakefs.yaml
+        target: /etc/lakefs/config.yaml
+  postgres:
+    image: "postgres:11"
+    ports:
+      - "5433:5432"
+    environment:
+      POSTGRES_USER: lakefs
+      POSTGRES_PASSWORD: lakefs
+
+  fluffy:
+    image: "${FLUFFY_REPO:-treeverse}/fluffy:${TAG:-0.4.4}"
+    command: "${COMMAND:-run}"
+    ports:
+      - "8000:8000"
+      - "9000:9000"
+    depends_on:
+      - "postgres"
+    environment:
+      - FLUFFY_LOGGING_LEVEL=DEBUG
+      - FLUFFY_DATABASE_TYPE=postgres
+      - FLUFFY_DATABASE_POSTGRES_CONNECTION_STRING=postgres://lakefs:lakefs@postgres/postgres?sslmode=disable
+      - FLUFFY_AUTH_ENCRYPT_SECRET_KEY="random_secret"
+      - FLUFFY_AUTH_SERVE_LISTEN_ADDRESS=0.0.0.0:9000
+      - FLUFFY_LISTEN_ADDRESS=0.0.0.0:8000
+      - FLUFFY_AUTH_SERVE_DISABLE_AUTHENTICATION=true
+      - FLUFFY_AUTH_POST_LOGIN_REDIRECT_URL=http://localhost:8080/
+    entrypoint: [ "/app/wait-for", "postgres:5432", "--", "/app/fluffy" ]
+
+configs:
+  lakefs.yaml:
+    content: |
+      auth:
+        ui_config:
+          login_cookie_names:
+            - internal_auth_session
+
+ +
+
+ +

This setup uses OIDC as the SSO authentication method thus requiring a valid OIDC configuration.

+
    +
  1. Create a docker-compose.yaml with the content below.
  2. +
  3. Create a .env file with the configurations below in the same directory as the docker-compose.yaml, docker compose will automatically use that.
  4. +
  5. Run docker compose up in the same directory as the docker-compose.yaml file.
  6. +
  7. Validate the OIDC configuration: +
      +
    • In your browser, go to http://localhost:8080 to access lakeFS UI
    • +
    • Complete the Setup process, and login with your Admin credentials
    • +
    • Logout and try to login again, you will be redirected to the OIDC login page.
    • +
    +
  8. +
+ +

.env

+ +
FLUFFY_AUTH_OIDC_CLIENT_ID=
+FLUFFY_AUTH_OIDC_CLIENT_SECRET=
+# The name of the query parameter that is used to pass the client ID to the logout endpoint of the SSO provider, i.e client_id
+FLUFFY_AUTH_OIDC_LOGOUT_CLIENT_ID_QUERY_PARAMETER=
+FLUFFY_AUTH_OIDC_URL=https://my-sso.com/
+FLUFFY_AUTH_LOGOUT_REDIRECT_URL=https://my-sso.com/logout
+# Optional: display a friendly name in the lakeFS UI by specifying which claim from the provider to show (i.e name, nickname, email etc)
+LAKEFS_AUTH_OIDC_FRIENDLY_NAME_CLAIM_NAME=
+
+ +

docker-compose.yaml

+ +
version: "3"
+services:
+  lakefs:
+    image: "treeverse/lakefs:1.25.0"
+    command: "RUN"
+    ports:
+      - "8080:8080"
+    depends_on:
+      - "postgres"
+    environment:
+      - LAKEFS_LISTEN_ADDRESS=0.0.0.0:8080
+      - LAKEFS_LOGGING_LEVEL=DEBUG
+      - LAKEFS_AUTH_ENCRYPT_SECRET_KEY="random_secret"
+      - LAKEFS_AUTH_API_ENDPOINT=http://fluffy:9000/api/v1
+      - LAKEFS_AUTH_API_SUPPORTS_INVITES=true
+      - LAKEFS_AUTH_UI_CONFIG_LOGIN_URL=http://localhost:8000/oidc/login
+      - LAKEFS_AUTH_UI_CONFIG_LOGOUT_URL=http://localhost:8000/oidc/logout
+      - LAKEFS_AUTH_UI_CONFIG_RBAC=internal
+      - LAKEFS_AUTH_AUTHENTICATION_API_ENDPOINT=http://localhost:8000/api/v1
+      - LAKEFS_AUTH_AUTHENTICATION_API_EXTERNAL_PRINCIPALS_ENABLED=true
+      - LAKEFS_DATABASE_TYPE=postgres
+      - LAKEFS_DATABASE_POSTGRES_CONNECTION_STRING=postgres://lakefs:lakefs@postgres/postgres?sslmode=disable
+      - LAKEFS_BLOCKSTORE_TYPE=local
+      - LAKEFS_BLOCKSTORE_LOCAL_PATH=/home/lakefs
+      - LAKEFS_BLOCKSTORE_LOCAL_IMPORT_ENABLED=true
+      - LAKEFS_AUTH_OIDC_FRIENDLY_NAME_CLAIM_NAME=${LAKEFS_AUTH_OIDC_FRIENDLY_NAME_CLAIM_NAME}
+    entrypoint: ["/app/wait-for", "postgres:5432", "--", "/app/lakefs", "run"]
+    configs:
+      - source: lakefs.yaml
+        target: /etc/lakefs/config.yaml
+  postgres:
+    image: "postgres:11"
+    ports:
+      - "5433:5432"
+    environment:
+      POSTGRES_USER: lakefs
+      POSTGRES_PASSWORD: lakefs
+
+  fluffy:
+    image: "${FLUFFY_REPO:-treeverse}/fluffy:${TAG:-0.4.4}"
+    command: "${COMMAND:-run}"
+    ports:
+      - "8000:8000"
+      - "9000:9000"
+    depends_on:
+      - "postgres"
+    environment:
+      - FLUFFY_LOGGING_LEVEL=DEBUG
+      - FLUFFY_DATABASE_TYPE=postgres
+      - FLUFFY_DATABASE_POSTGRES_CONNECTION_STRING=postgres://lakefs:lakefs@postgres/postgres?sslmode=disable
+      - FLUFFY_AUTH_ENCRYPT_SECRET_KEY="random_secret"
+      - FLUFFY_AUTH_SERVE_LISTEN_ADDRESS=0.0.0.0:9000
+      - FLUFFY_LISTEN_ADDRESS=0.0.0.0:8000
+      - FLUFFY_AUTH_SERVE_DISABLE_AUTHENTICATION=true
+      - FLUFFY_AUTH_LOGOUT_REDIRECT_URL=${FLUFFY_AUTH_LOGOUT_REDIRECT_URL}
+      - FLUFFY_AUTH_POST_LOGIN_REDIRECT_URL=http://localhost:8080/
+      - FLUFFY_AUTH_OIDC_ENABLED=true
+      - FLUFFY_AUTH_OIDC_URL=${FLUFFY_AUTH_OIDC_URL}
+      - FLUFFY_AUTH_OIDC_CLIENT_ID=${FLUFFY_AUTH_OIDC_CLIENT_ID}
+      - FLUFFY_AUTH_OIDC_CLIENT_SECRET=${FLUFFY_AUTH_OIDC_CLIENT_SECRET}
+      - FLUFFY_AUTH_OIDC_CALLBACK_BASE_URL=http://localhost:8000
+      - FLUFFY_AUTH_OIDC_LOGOUT_CLIENT_ID_QUERY_PARAMETER=${FLUFFY_AUTH_OIDC_LOGOUT_CLIENT_ID_QUERY_PARAMETER}
+    entrypoint: [ "/app/wait-for", "postgres:5432", "--", "/app/fluffy" ]
+    configs:
+      - source: fluffy.yaml
+        target: /etc/fluffy/config.yaml
+
+ #This tweak is unfortunate but also necessary. logout_endpoint_query_parameters is a list
+ #of strings which isn't parsed nicely as env vars.
+configs:
+  lakefs.yaml:
+    content: |
+      auth:
+        ui_config:
+          login_cookie_names:
+            - internal_auth_session
+            - oidc_auth_session
+        oidc:
+          # friendly_name_claim_name: "name"
+          default_initial_groups:
+            - Admins
+
+  fluffy.yaml:
+    content: |
+      auth:
+        oidc:
+          logout_endpoint_query_parameters:
+            - returnTo
+            - http://localhost:8080/oidc/login
+
+ +
+
+

+ + + Kubernetes Helm Chart Quickstart + + +

+ + +

In order to use lakeFS Enterprise and Fluffy, we provided out of the box setup, see lakeFS Helm chart configuration.

+ +

The values below create a fully functional lakeFS Enterprise setup without SSO support. The created setup is connected to a local blockstore, and spins up the following pods:

+
    +
  • lakeFS
  • +
  • Fluffy (includes lakeFS Enterprise features)
  • +
  • Postgres: used by lakeFS and Fluffy as a shared KV store
  • +
+ +
+

If you can postpone the evaluation of the SSO integration, we suggest starting without it to speed up overall testing. The SSO integration requires additional configurations and is best addressed later. To +try lakeFS Enterprise SSO capability on a Kubernetes cluster, check out the production deployment guide.

+
+

+ + + Prerequisites + + +

+ + +
    +
  1. You have a Kubernetes cluster running in one of the platforms supported by lakeFS.
  2. +
  3. Helm is installed
  4. +
  5. Access to download dockerhub/fluffy from Docker Hub. Contact us to gain access to Fluffy.
  6. +
+

+ + + Instructions + + +

+ + +
    +
  1. Add the lakeFS Helm repository with helm repo add lakefs https://charts.lakefs.io
  2. +
  3. Create a values.yaml file with the following content and make sure to replace <fluffy-docker-registry-token> with the token Docker Hub token you recieved, <lakefs.acme.com> and <ingress-class-name>.
  4. +
  5. In the desired K8S namespace run helm install lakefs lakefs/lakefs -f values.yaml
  6. +
  7. In your browser go to the Ingress host to access lakeFS UI.
  8. +
+ +
lakefsConfig: |
+  logging:
+      level: "DEBUG"
+  blockstore:
+    type: local
+ingress:
+  enabled: true
+  ingressClassName: <ingress-class-name>
+  annotations: {}
+  hosts:
+    - host: <lakefs.acme.com>
+      paths:
+       - /
+fluffy:
+  enabled: true
+  image:
+    privateRegistry:
+      enabled: true
+      secretToken: <fluffy-docker-registry-token>
+  fluffyConfig: |
+    logging:
+      level: "DEBUG"
+  secrets:
+    create: true
+  sso:
+    enabled: false
+  rbac:
+    enabled: true
+
+# useDevPostgres is true by default and will override any other db configuration, set false for configuring your own db
+useDevPostgres: true
+
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/enterprise/index.html b/v1.46/enterprise/index.html new file mode 100644 index 000000000..1260b6354 --- /dev/null +++ b/v1.46/enterprise/index.html @@ -0,0 +1,863 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +lakeFS Enterprise | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + +
+ +

+ + + lakeFS Enterprise + + +

+ +

+ + + What is lakeFS Enterprise? + + +

+ + +

lakeFS Enterprise is a commercially-supported version of lakeFS, offering additional features and functionalities that meet the needs of organizations from a production-grade system.

+

+ + + Why did we build lakeFS Enterprise? + + +

+ + +

lakeFS Enterprise was built for organizations that require the support, security standards and features required of a production-grade system and +are not using public clouds, hence they cannot use lakeFS Cloud.

+

+ + + What is the value of using lakeFS Enterprise? + + +

+ + +
    +
  1. Support: the lakeFS team is committed to supporting you under an SLA for both issues and product enhancements.
  2. +
  3. Security: Full support for a suite of security features and additional lakeFS functionality.
  4. +
+

+ + + What security features does lakeFS Enterprise provide? + + +

+ + +

With lakeFS Enterprise you’ll receive access to the security package containing the following features:

+
    +
  1. A rich Role-Based Access Control permission system that allows for fine-grained control by associating permissions with users and groups, granting them specific actions on specific resources. This ensures data security and compliance within an organization.
  2. +
  3. To easily manage users and groups, lakeFS Enterprise provides SSO integration (including support for SAML, OIDC, ADFS, Okta, and Azure AD), supporting existing credentials from a trusted provider, eliminating separate logins.
  4. +
  5. lakeFS Enterprise supports SCIM for automatically provisioning and deprovisioning users and group memberships to allow organizations to maintain a single source of truth for their user database.
  6. +
  7. STS Auth offers temporary, secure logins using an Identity Provider, simplifying user access and enhancing security.
  8. +
  9. Authentication with AWS IAM Roles allows authentication using AWS IAM roles instead of lakeFS credentials, removing the need to maintain static credentials for lakeFS Enterprise users running on AWS.
  10. +
  11. Auditing provides a detailed action log of events happening within lakeFS, including who performed which action, on which resource - and when.
  12. +
+

+ + + What additional functionality does lakeFS Enterprise provide? + + +

+ + +
    +
  1. lakeFS Mount allows users to virtually mount a remote lakeFS repository onto a local directory. Once mounted, users can access the data as if it resides on their local filesystem, using any tool, library, or framework that reads from a local filesystem.
  2. +
  3. Transactional Mirroring - allows replicating lakeFS repositories into consistent read-only copies in remote locations.
  4. +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureOSSEnterprise
Format-agnostic data version control
Cloud-agnostic
Zero Clone copy for isolated environment
Atomic Data Promotion (via merges)
Data stays in one place
Configurable Garbage Collection
Data CI/CD using lakeFS hooks
Integrates with your data stack
Role Based Access Control (RBAC) 
Single Sign On (SSO) 
SCIM Support 
IAM Roles 
Mount Capability 
Audit Logs 
Transactional Mirroring (cross-region) 
Support SLA 
+ +


+You can learn more about the lakeFS Enterprise architecture, or follow the examples in the Quickstart guide.

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/enterprise/sso.html b/v1.46/enterprise/sso.html new file mode 100644 index 000000000..52716caca --- /dev/null +++ b/v1.46/enterprise/sso.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/enterprise/troubleshooting.html b/v1.46/enterprise/troubleshooting.html new file mode 100644 index 000000000..a1f4024d5 --- /dev/null +++ b/v1.46/enterprise/troubleshooting.html @@ -0,0 +1,954 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Troubleshooting lakeFS Enterprise | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Troubleshooting lakeFS Enterprise + + +

+ + + + +

A lakeFS Enterprise deployment has multiple moving parts that must all be deployed and configured correctly. This is especially true during initial setup. To help troubleshoot issues, both lakeFS and fluffy include the flare command.

+

+ + + The flare command + + +

+ +

+ + + Synopsis + + +

+ + +

Both lakefs and fluffy include the flare command

+ +
lakefs flare [flags]
+fluffy flare [flags]
+
+

+ + + Flags + + +

+ + +
        --env-var-filename      the name of the file environment variables will be written to (default: lakefs-env.txt)
+        --include-env-vars      should environment variables be collected by flare (default: true)
+    -o, --output                Output path relative to the current path
+    -p, --package               Package generated artifacts into a .zip file (default: false)
+        --stdout                Output to stdout instead of files (default: false)
+        --zip-filename          The name of the zip file created when the -p option is used (default: lakefs-flare.zip)
+
+

+ + + Example Usage + + +

+ + +
# This will run flare with output set to stdout, which is redirected into a file
+$ ./lakefs flare --stdout > lakefs.flare
+# The same works for fluffy
+$ ./fluffy flare --stdout > fluffy.flare
+
+

+ + + What Information Does the flare Command Collect? + + +

+ +

+ + + Configuration + + +

+ + +

Both lakeFS and fluffy allow configuration to be supplied in multiple ways: configuration file, environment variables, .env files, and command flags. The flare command collects the fully resolved final configuration used by the lakeFS/fluffy process.

+

+ + + Environment Variables + + +

+ + +

When troubleshooting, it’s important to get a view of the environment in which lakeFS/fluffy are running. This is especially true for container-based deployment environments, like Kubernetes, where env vars are used extensively. The flare command collects environment variables with the following prefixes:

+ +
    +
  • LAKEFS_
  • +
  • FLUFFY_
  • +
  • HTTP_
  • +
  • HOSTNAME
  • +
+

+ + + Sanitization and Secret Redaction + + +

+ + +

Both configuration and env var include sensitive secrets. The flare command has a multi-step process for redacting secrets from what it collects. The flare command is able to detect the following types of secrets:

+ +
    +
  • AWS static credentials
  • +
  • Azure storage keys
  • +
  • Basic HTTP auth username/password
  • +
  • JWTs
  • +
  • Bearer auth headers
  • +
  • GitHub tokens
  • +
  • Certificate private keys
  • +
+ +

Aside from the specific secret type listed above, flare also has the ability to detect and redact generic high-entropy strings, which are likely to be secrets.

+ +

Redacted secrets are replaced by a SHA512 hash of the value. This allows comparing them (e.g., between lakeFS and fluffy) without exposing the actual values.

+

+ + + Usage - Collect and Send Flare + + +

+ + +

The following script is intended to be run locally and assumes that lakeFS and fluffy are deployed to a Kubernetes cluster, since this is the recommended setup.
+Running this script requires that kubectl be installed on the machine it is being run from and that kubectl is configured with the correct context and credentials to access the cluster. Aside from running the flare command on both lakeFS and fluffy, this script also fetches the logs from all running pods of lakeFS and fluffy.

+

+ + + Step 1 - Set Script Variables + + +

+ + +

At the top of the script you’ll find the Variables block. It is important to change these values according to how lakeFS is deployed in your cluster.

+ +

NAMESPACE - The K8s namespace where lakeFS and fluffy are deployed
+LAKEFS_DEPLOYMENT - The name of the lakeFS K8s deployment
+FLUFFY_DEPLOYMENT - The name of the fluffy K8s deployment
+LAKEFS_LOGS_OUTPUT_FILE - The name of the local file where lakeFS logs will be saved
+FLUFFY_LOGS_OUTPUT_FILE - The name of the local file where fluffy logs will be saved
+LAKEFS_FLARE_FILE - The name of the local file where the lakeFS flare result will be saved
+FLUFFY_FLARE_FILE - The name of the local file where the fluffy flare result will be saved

+

+ + + Step 2 - Execute the Script + + +

+ + +
#!/bin/bash
+
+RED='\033[0;31m'
+NC='\033[0m'
+
+# Variables
+NAMESPACE=lakefs-prod
+LAKEFS_DEPLOYMENT=lakefs-server
+FLUFFY_DEPLOYMENT=lakefs-fluffy
+LAKEFS_LOGS_OUTPUT_FILE=lakefs.log
+FLUFFY_LOGS_OUTPUT_FILE=fluffy.log
+LAKEFS_FLARE_FILE=lakefs.flare
+FLUFFY_FLARE_FILE=fluffy.flare
+
+# Find kubectl
+KUBECTLCMD=$(which kubectl)
+if [ -z "$KUBECTLCMD" ]
+then
+    echo -e "${RED}Couldn't find kubectl in path${NC}"
+    exit 1
+fi
+
+$KUBECTLCMD get pods -o name -n $NAMESPACE | grep pod/$LAKEFS_DEPLOYMENT | xargs -I {} $KUBECTLCMD logs -n $NAMESPACE --all-containers=true --prefix --ignore-errors --timestamps {} > $LAKEFS_LOGS_OUTPUT_FILE
+$KUBECTLCMD get pods -o name -n $NAMESPACE | grep pod/$FLUFFY_DEPLOYMENT | xargs -I {} $KUBECTLCMD logs -n $NAMESPACE --all-containers=true --prefix --ignore-errors --timestamps {} > $FLUFFY_LOGS_OUTPUT_FILE
+
+$KUBECTLCMD exec deployment/$LAKEFS_DEPLOYMENT -- ./lakefs flare --stdout > $LAKEFS_FLARE_FILE
+$KUBECTLCMD exec deployment/$FLUFFY_DEPLOYMENT -- ./lakefs flare --stdout > $FLUFFY_FLARE_FILE
+
+

+ + + Step 3 - Inspect the Output Files + + +

+ + +

After executing the script you should have four files: lakeFS/fluffy logs and lakeFS/fluffy flare output. Before sharing these files, please review them to make sure all secrets were correctly redacted and that all the collected information is shareable.

+

+ + + Step 4 - Zip Output Files and Attach to Support Ticket + + +

+ + +

Once you’re done inspecting the files, you can zip them into a single file and attach it to a Support Ticket in the support portal.

+

+ + + New Ticket + + +

+ + +

When filing a new ticket, you can attach the zip file using the file upload input at the bottom of the new ticket form.

+ +

new ticket

+

+ + + Existing Ticket + + +

+ + +

To add a file to an existing ticket, click the ticket subject in the support portal. On the ticket details attach a file as a new response. You can also add text to the response, if you’d like to add further details.

+ +

existing ticket

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/enterprise/upgrade.html b/v1.46/enterprise/upgrade.html new file mode 100644 index 000000000..bf21a1f59 --- /dev/null +++ b/v1.46/enterprise/upgrade.html @@ -0,0 +1,715 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Upgrade | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Upgrade + + +

+ + +

For upgrading from lakeFS enterprise to a newer version see lakefs migration.

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/experimental/dir_marker.png b/v1.46/experimental/dir_marker.png new file mode 100644 index 000000000..51429cb7c Binary files /dev/null and b/v1.46/experimental/dir_marker.png differ diff --git a/v1.46/experimental/lakectl_local_posix.html b/v1.46/experimental/lakectl_local_posix.html new file mode 100644 index 000000000..c4aacdcea --- /dev/null +++ b/v1.46/experimental/lakectl_local_posix.html @@ -0,0 +1,1046 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +lakectl local file permissions tracking | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + lakectl local file permission tracking + + +

+ +

Experimental

+ +

This experimental feature is used to:

+
    +
  • Support mode preservation for files and folders managed via lakectl local for POSIX compliant filesystems only
  • +
  • Support user and group preservation for files and folders managed via lakectl local for POSIX compliant filesystems only
  • +
+ +
+

Note: This feature is currently supported for Unix based Operating Systems only

+
+ +
+

Please make sure to contact the lakeFS team before enabling any experimental features!

+
+

+ + + Configuration + + +

+ + +

By default, this feature is disabled. Enabling file permission tracking is done via the configuration variable +experimental.local.posix_permissions.enabled which can be added to the lakectl.yaml file:

+ +
   credentials:
+     access_key_id: AKIAIOSFDNN7EXAMPLEQ
+     secret_access_key: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
+   metastore:
+     glue:
+       catalog_id: ""
+     hive:
+       db_location_uri: file:/user/hive/warehouse/
+       uri: ""
+   server:
+     endpoint_url: http://localhost:8000/api/v1
+   experimental:
+     local:
+       posix_permissions:
+         enabled: true
+
+ +

It is also possible to enable this feature via the corresponding environment variable:
+LAKECTL_EXPERIMENTAL_LOCAL_POSIX_PERMISSIONS_ENABLED

+

+ + + Usage + + +

+ + +

lakectl local will automatically track changes in file permissions and ownership as part of the sync with the remote server. +During the first sync with a remote path, lakectl local will need to update all the objects under this path in order to sync +the permissions with lakeFS. +When first creating the file and directory structure from an existing remote path the default permissions are set:

+
    +
  • 0o0666 & ~umask mode for files
  • +
  • 0o0777 & ~umask mode for directories
  • +
  • Numerical GID and UID of the current user
  • +
+ +
+

Note: Users with stricter umasks will change permissions on push

+
+ +
+

Please note that once a local path is synchronized with a remote path with permissions tracking enabled, you must continue to work with this remote path +with the feature enabled.

+
+

+ + + Changes from default behavior + + +

+ + +

In order to support this feature, some changes needed to be made in lakectl local, and as such the behavior when the feature is enabled is a bit different from the default behavior of lakectl local. +The main differences are:

+
    +
  1. To support tracking of directory permissions and ownership, lakectl local will now write directory markers to the remote server, which will hold this information on the remote object. +These markers are zero sized objects with paths ending in / designed to indicate a directory in S3 and used to save the directory information.
  2. +
  3. Syncing between local and remote paths will take into account changes in file ownership and permissions. In case of change in one of these, the file will show as modified
  4. +
+

+ + + Limitations / Warnings + + +

+ + +
    +
  • All machines on which lakectl local is used with POSIX permissions must share UIDs and GIDs.
  • +
  • Tracked modes will only be accessible via lakectl local and not through the UI, or any lakeFS API calls (e.g., statObject) or S3 gateway operations (e.g., getObject).
  • +
  • Tracked modes are not expected to persist through an upload followed by an overwrite by a client other than lakectl local. After an overwrite, files and directories are expected to have their respective default mode
  • +
  • The POSIX permissions feature and functionality is applicable only to the scope of lakectl local. Using other methods to read/write/diff on paths that were cloned with the feature enabled + will not guarantee consistent behavior compared to using the lakectl local commands. For example: performing lakectl diff might result in a different output than performing lakectl local status
  • +
  • Diff (lakectl local status) takes into account the following attributes: +
      +
    1. Client Mtime
    2. +
    3. File/Dir UID
    4. +
    5. File/Dir GID
    6. +
    7. File/Dir mode
    8. +
    +
  • +
+ +
+

Note: The changes to these attributes are not visualized or reported explicitly; the file will be reported as changed.

+
+ +
    +
  • Merge will fail on a conflict stemming from a change to permissions or ownership. There is no explicit reporting the root cause of the failure (the file will be reported as changed) +In case of failure to read/set/update permissions (due to user insufficient privileges, for example), lakectl local will fail with an informative message. However, there’s no guarantee for atomicity of operations. +In this case, the local directory/remote path might be in an inconsistent state, and it will be up to the user to fix it.
  • +
  • Unprivileged users can use non-lakectl-local commands in conjunction with lakectl local to change owners of files on remote machines in unpredictable ways, +including in some cases to set ownership to users for which they themselves cannot chown files.
  • +
+

+ + + Example + + +

+ + +
    +
  1. Clone remote repository to local path: +
     user@host /tmp/test-perm
    +   % LAKECTL_EXPERIMENTAL_LOCAL_POSIX_PERMISSIONS_ENABLED=true lakectl local clone lakefs://quickstart/dev/     
    + download data/lakes.source.md            ... done! [531B in 0s]
    + download images/quickstart-step-02-bran~ ... done! [3.09KB in 0s]
    + download images/quickstart-step-04-roll~ ... done! [3.22KB in 0s]
    + download images/quickstart-step-03-merg~ ... done! [3.43KB in 0s]
    + download images/quickstart-step-01-quer~ ... done! [3.69KB in 0s]
    + download images/axolotl.png              ... done! [3.82KB in 0s]
    + download images/quickstart-step-00-laun~ ... done! [4.10KB in 0s]
    + download images/quickstart-step-05-acti~ ... done! [4.84KB in 0s]
    + download images/waving-axolotl-transpar~ ... done! [22.92KB in 0s]
    + download README.md                       ... done! [28.99KB in 0s]
    + download images/create-lakefs-branch.png ... done! [56.24KB in 0s]
    + download images/commit-change-02.png     ... done! [64.40KB in 0s]
    + download images/duckdb-editor-05.png     ... done! [65.49KB in 0s]
    + download images/merge02.png              ... done! [70.17KB in 0s]
    + download images/duckdb-editor-03.png     ... done! [75.86KB in 0s]
    + download images/duckdb-editor-06.png     ... done! [87.92KB in 0s]
    + download images/duckdb-editor-04.png     ... done! [90.42KB in 0s]
    + download images/merge01.png              ... done! [92.30KB in 0s]
    + download images/commit-change.png        ... done! [98.80KB in 0s]
    + download images/duckdb-editor-02.png     ... done! [103.16KB in 0s]
    + download images/create-quickstart-repo.~ ... done! [121.72KB in 0s]
    + download images/hooks-05.png             ... done! [139.44KB in 0s]
    + download images/hooks-07.png             ... done! [142.94KB in 0s]
    + download images/hooks-06.png             ... done! [146.62KB in 0s]
    + download images/lakefs-login-screen.png  ... done! [148.67KB in 0s]
    + download images/hooks-02.png             ... done! [151.00KB in 0s]
    + download images/user_config.png          ... done! [166.49KB in 0s]
    + download images/hooks-04.png             ... done! [170.31KB in 0s]
    + download images/hooks-01.png             ... done! [172.13KB in 0s]
    + download images/repo-list.png            ... done! [178.64KB in 0s]
    + download images/hooks-00.png             ... done! [182.45KB in 0s]
    + download images/hooks-03.png             ... done! [182.78KB in 0s]
    + download images/duckdb-main-01.png       ... done! [206.85KB in 0s]
    + download images/duckdb-main-03.png       ... done! [207.50KB in 0s]
    + download images/quickstart-repo.gif      ... done! [213.80KB in 0s]
    + download images/hooks-08.png             ... done! [218.91KB in 0s]
    + download images/repo-contents.png        ... done! [232.40KB in 0s]
    + download images/duckdb-main-02.png       ... done! [239.56KB in 0s]
    + download images/empty-repo-list.png      ... done! [254.93KB in 0s]
    + download lakes.parquet                   ... done! [916.39KB in 1ms]
    +    
    + Successfully cloned lakefs://quickstart/dev/ to /tmp/test-perm.
    +    
    + Clone Summary:
    +    
    + Downloaded: 40
    + Uploaded: 0
    + Removed: 0
    +    
    +
    +
  2. +
  3. The first time we clone objects without permissions, all the files will appear as modified (note the added directory markers): +
     user@host /tmp/test-perm
    +   % LAKECTL_EXPERIMENTAL_LOCAL_POSIX_PERMISSIONS_ENABLED=true lakectl local status                                                                                                                   !10245
    +    
    + diff 'local:///tmp/test-perm' <--> 'lakefs://quickstart/8fa0d994afedbc00e0a44725e8a8d64695e638d4ba683756f5d2411eb7aa8fdf/'...
    + diff 'lakefs://quickstart/8fa0d994afedbc00e0a44725e8a8d64695e638d4ba683756f5d2411eb7aa8fdf/' <--> 'lakefs://quickstart/dev/'...
    +    
    + ╔════════╦══════════╦═══════════════════════════════════════════╗
    + ║ SOURCE ║ CHANGE   ║ PATH                                      ║
    + ╠════════╬══════════╬═══════════════════════════════════════════╣
    + ║ local  ║ modified ║ README.md                                 ║
    + ║ local  ║ added    ║ data/                                     ║
    + ║ local  ║ modified ║ data/lakes.source.md                      ║
    + ║ local  ║ added    ║ images/                                   ║
    + ║ local  ║ modified ║ images/axolotl.png                        ║
    + ║ local  ║ modified ║ images/commit-change-02.png               ║
    + ║ local  ║ modified ║ images/commit-change.png                  ║
    + ║ local  ║ modified ║ images/create-lakefs-branch.png           ║
    + ║ local  ║ modified ║ images/create-quickstart-repo.png         ║
    + ║ local  ║ modified ║ images/duckdb-editor-02.png               ║
    + ║ local  ║ modified ║ images/duckdb-editor-03.png               ║
    + ║ local  ║ modified ║ images/duckdb-editor-04.png               ║
    + ║ local  ║ modified ║ images/duckdb-editor-05.png               ║
    + ║ local  ║ modified ║ images/duckdb-editor-06.png               ║
    + ║ local  ║ modified ║ images/duckdb-main-01.png                 ║
    + ║ local  ║ modified ║ images/duckdb-main-02.png                 ║
    + ║ local  ║ modified ║ images/duckdb-main-03.png                 ║
    + ║ local  ║ modified ║ images/empty-repo-list.png                ║
    + ║ local  ║ modified ║ images/hooks-00.png                       ║
    + ║ local  ║ modified ║ images/hooks-01.png                       ║
    + ║ local  ║ modified ║ images/hooks-02.png                       ║
    + ║ local  ║ modified ║ images/hooks-03.png                       ║
    + ║ local  ║ modified ║ images/hooks-04.png                       ║
    + ║ local  ║ modified ║ images/hooks-05.png                       ║
    + ║ local  ║ modified ║ images/hooks-06.png                       ║
    + ║ local  ║ modified ║ images/hooks-07.png                       ║
    + ║ local  ║ modified ║ images/hooks-08.png                       ║
    + ║ local  ║ modified ║ images/lakefs-login-screen.png            ║
    + ║ local  ║ modified ║ images/merge01.png                        ║
    + ║ local  ║ modified ║ images/merge02.png                        ║
    + ║ local  ║ modified ║ images/quickstart-repo.gif                ║
    + ║ local  ║ modified ║ images/quickstart-step-00-launch.png      ║
    + ║ local  ║ modified ║ images/quickstart-step-01-query.png       ║
    + ║ local  ║ modified ║ images/quickstart-step-02-branch.png      ║
    + ║ local  ║ modified ║ images/quickstart-step-03-merge.png       ║
    + ║ local  ║ modified ║ images/quickstart-step-04-rollback.png    ║
    + ║ local  ║ modified ║ images/quickstart-step-05-actions.png     ║
    + ║ local  ║ modified ║ images/repo-contents.png                  ║
    + ║ local  ║ modified ║ images/repo-list.png                      ║
    + ║ local  ║ modified ║ images/user_config.png                    ║
    + ║ local  ║ modified ║ images/waving-axolotl-transparent-w90.gif ║
    + ║ local  ║ modified ║ lakes.parquet                             ║
    + ╚════════╩══════════╩═══════════════════════════════════════════╝
    +    
    +
    +
  4. +
  5. +

    Let’s commit the changes so that the remote path will be updated with the file permissions:

    + +
     user@host /tmp/test-perm
    +   % LAKECTL_EXPERIMENTAL_LOCAL_POSIX_PERMISSIONS_ENABLED=true lakectl local commit -m "Add file permissions"                                                                                         !10246
    +    
    + Getting branch: dev
    +    
    + diff 'local:///tmp/test-perm' <--> 'lakefs://quickstart/8fa0d994afedbc00e0a44725e8a8d64695e638d4ba683756f5d2411eb7aa8fdf/'...
    + upload data/                             ... done! [0B in 15ms]
    + upload images/                           ... done! [0B in 15ms]
    + upload data/lakes.source.md              ... done! [531B in 11ms]
    + upload images/quickstart-step-02-branch~ ... done! [3.09KB in 11ms]
    + upload images/quickstart-step-04-rollba~ ... done! [3.22KB in 11ms]
    + upload images/quickstart-step-03-merge.~ ... done! [3.43KB in 12ms]
    + upload images/quickstart-step-01-query.~ ... done! [3.69KB in 11ms]
    + upload images/axolotl.png                ... done! [3.82KB in 15ms]
    + upload images/quickstart-step-00-launch~ ... done! [4.10KB in 12ms]
    + upload images/quickstart-step-05-action~ ... done! [4.84KB in 11ms]
    + upload images/waving-axolotl-transparen~ ... done! [22.92KB in 11ms]
    + upload README.md                         ... done! [28.99KB in 15ms]
    + upload images/create-lakefs-branch.png   ... done! [56.24KB in 15ms]
    + upload images/commit-change-02.png       ... done! [64.40KB in 14ms]
    + upload images/duckdb-editor-05.png       ... done! [65.49KB in 14ms]
    + upload images/merge02.png                ... done! [70.17KB in 12ms]
    + upload images/duckdb-editor-03.png       ... done! [75.86KB in 16ms]
    + upload images/duckdb-editor-06.png       ... done! [87.92KB in 13ms]
    + upload images/duckdb-editor-04.png       ... done! [90.42KB in 15ms]
    + upload images/merge01.png                ... done! [92.30KB in 12ms]
    + upload images/commit-change.png          ... done! [98.80KB in 15ms]
    + upload images/duckdb-editor-02.png       ... done! [103.16KB in 12ms]
    + upload images/create-quickstart-repo.png ... done! [121.72KB in 15ms]
    + upload images/hooks-05.png               ... done! [139.44KB in 15ms]
    + upload images/hooks-07.png               ... done! [142.94KB in 11ms]
    + upload images/hooks-06.png               ... done! [146.62KB in 13ms]
    + upload images/lakefs-login-screen.png    ... done! [148.67KB in 12ms]
    + upload images/hooks-02.png               ... done! [151.00KB in 13ms]
    + upload images/user_config.png            ... done! [166.49KB in 11ms]
    + upload images/hooks-04.png               ... done! [170.31KB in 14ms]
    + upload images/hooks-01.png               ... done! [172.13KB in 13ms]
    + upload images/repo-list.png              ... done! [178.64KB in 11ms]
    + upload images/hooks-00.png               ... done! [182.45KB in 13ms]
    + upload images/hooks-03.png               ... done! [182.78KB in 13ms]
    + upload images/duckdb-main-01.png         ... done! [206.85KB in 13ms]
    + upload images/duckdb-main-03.png         ... done! [207.50KB in 15ms]
    + upload images/quickstart-repo.gif        ... done! [213.80KB in 12ms]
    + upload images/hooks-08.png               ... done! [218.91KB in 12ms]
    + upload images/repo-contents.png          ... done! [232.40KB in 11ms]
    + upload images/duckdb-main-02.png         ... done! [239.56KB in 14ms]
    + upload images/empty-repo-list.png        ... done! [254.93KB in 13ms]
    + upload lakes.parquet                     ... done! [916.39KB in 14ms]
    +    
    + Sync Summary:
    +    
    + Downloaded: 0
    + Uploaded: 42
    + Removed: 0
    +    
    + Finished syncing changes. Perform commit on branch...
    + Commit for branch "dev" completed.
    +    
    + ID: 7f1f0984030c43ab388a649fe97c3c1564421118099ccc8c47f74645776e73f2
    + Message: Add file permissions
    + Timestamp: 2024-07-03 16:04:07 +0300 IDT
    + Parents: 8fa0d994afedbc00e0a44725e8a8d64695e638d4ba683756f5d2411eb7aa8fdf
    +    
    +
    +
  6. +
  7. +

    Looking at the remote repository we will notice the directory markers: +dir_marker.png

    +
  8. +
  9. +

    The object metadata will contain the file/dir permissions: +object_stats.png

    +
  10. +
  11. +

    Updating a file’s mode will result in a diff:

    + +
     user@host /tmp/test-perm
    +   % chmod 770 lakes.parquet                                                                                                                                                                          !10247
    +    
    + user@host /tmp/test-perm
    +   % LAKECTL_EXPERIMENTAL_LOCAL_POSIX_PERMISSIONS_ENABLED=true lakectl local status                                                                                                                   !10248
    +    
    + diff 'local:///tmp/test-perm' <--> 'lakefs://quickstart/7f1f0984030c43ab388a649fe97c3c1564421118099ccc8c47f74645776e73f2/'...
    + diff 'lakefs://quickstart/7f1f0984030c43ab388a649fe97c3c1564421118099ccc8c47f74645776e73f2/' <--> 'lakefs://quickstart/dev/'...
    +    
    + ╔════════╦══════════╦═══════════════╗
    + ║ SOURCE ║ CHANGE   ║ PATH          ║
    + ╠════════╬══════════╬═══════════════╣
    + ║ local  ║ modified ║ lakes.parquet ║
    + ╚════════╩══════════╩═══════════════╝
    +    
    +
    +
  12. +
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/experimental/object_stats.png b/v1.46/experimental/object_stats.png new file mode 100644 index 000000000..b19616414 Binary files /dev/null and b/v1.46/experimental/object_stats.png differ diff --git a/v1.46/faq.html b/v1.46/faq.html new file mode 100644 index 000000000..e59180191 --- /dev/null +++ b/v1.46/faq.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/favicon.ico b/v1.46/favicon.ico new file mode 100644 index 000000000..9dd66cf1b Binary files /dev/null and b/v1.46/favicon.ico differ diff --git a/v1.46/glossary.html b/v1.46/glossary.html new file mode 100644 index 000000000..79940fc4e --- /dev/null +++ b/v1.46/glossary.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/hooks.html b/v1.46/hooks.html new file mode 100644 index 000000000..2ee933063 --- /dev/null +++ b/v1.46/hooks.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/hooks/airflow.html b/v1.46/hooks/airflow.html new file mode 100644 index 000000000..456a28ade --- /dev/null +++ b/v1.46/hooks/airflow.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/hooks/index.html b/v1.46/hooks/index.html new file mode 100644 index 000000000..2ee933063 --- /dev/null +++ b/v1.46/hooks/index.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/hooks/lua.html b/v1.46/hooks/lua.html new file mode 100644 index 000000000..cbe159558 --- /dev/null +++ b/v1.46/hooks/lua.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/hooks/overview.html b/v1.46/hooks/overview.html new file mode 100644 index 000000000..2ee933063 --- /dev/null +++ b/v1.46/hooks/overview.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/hooks/webhooks.html b/v1.46/hooks/webhooks.html new file mode 100644 index 000000000..3f9cf4e41 --- /dev/null +++ b/v1.46/hooks/webhooks.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/howto/backup-and-restore.html b/v1.46/howto/backup-and-restore.html new file mode 100644 index 000000000..9c8c99444 --- /dev/null +++ b/v1.46/howto/backup-and-restore.html @@ -0,0 +1,917 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Backup and Restore Repository | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Backup and Restore Repository + + +

+ +

This section explains how to backup and restore lakeFS repository for different use-cases:

+
    +
  1. Disaster Recovery: you want to backup the repository regularly so you can restore it in case of any disaster. You’d also need to make sure to backup the repository’s storage namespace to another, preferably geographically separate location.
  2. +
  3. Migrate Repository: you want to migrate a repository from one environment to another lakeFS environment.
  4. +
  5. Clone Repository: you want to clone a repository.
  6. +
+ +
+

+ + + Table of contents + + +

+ + +
    +
  1. Commit Changes
  2. +
  3. Backup Repository
  4. +
  5. Restore Repository
  6. +
+ +
+ +

Refer to Python Sample Notebooks to backup, migrate or clone a lakeFS repository

+

+ + + Commit Changes + + +

+ +

Backup process doesn’t backup uncommitted data, so make sure to commit any staged writes before running the backup. But this is an optional process.

+ +

You can manually commit the changes by using lakeFS UI or you can programatically commit any uncommitted changes. This Python example shows how to programatically loop through all branches in lakeFS and commit any uncommitted data but this might take a lot of time if you have many branches in the repo:

+ +
import lakefs
+
+repo = lakefs.Repository("example-repo")
+
+for branch in repo.branches():
+    for diff in repo.branch(branch.id).uncommitted():
+        repo.branch(branch.id).commit(message='Committed changes to backup the repository')
+        break
+
+

+ + + Backup Repository + + +

+ +

+ + + Dump Metadata + + +

+ +

Dump metadata/refs of the repository by using lakeFS API or CLI.

+ +
    +
  • Example code to dump metadata by using lakeFS Python SDK (this process will create _lakefs/refs_manifest.json file in your storage namespace for the repository):
  • +
+ +
lakefs_sdk_client.internal_api.dump_refs("example-repo")
+
+ +
    +
  • Example commands to dump metadata by using lakeFS CLI and upload to S3 storage for the repository:
  • +
+ +
lakectl refs-dump lakefs://example-repo > refs_manifest.json
+
+aws s3 cp refs_manifest.json s3://source-bucket-name/example-repo/_lakefs/refs_manifest.json
+
+ +
    +
  • Example commands to dump metadata by using lakeFS CLI and upload to Azure Blob storage for the repository:
  • +
+ +
lakectl refs-dump lakefs://example-repo > refs_manifest.json
+
+az storage blob upload --file refs_manifest.json --container-name sourceContainer --name example-repo/_lakefs/refs_manifest.json --account-name source-storage-account-name --account-key <source-storage-account-key>
+
+ +

Shutdown lakeFS services immediately after dumping the metadata so nobody can make any changes in the source repository.

+

+ + + Copy Data to Backup Storage Location + + +

+ +

Copy the repository’s storage namespace to another, preferably geographically separate location. Copy command depends on the type of object storage and the tool that you use.

+ +
    +
  • Example S3 command:
  • +
+ +
aws s3 sync s3://source-bucket-name/example-repo s3://target-bucket-name/example-repo
+
+ +
    +
  • Example Azure azcopy command:
  • +
+ +
azcopy copy 'https://source-storage-account-name.blob.core.windows.net/sourceContainer/example-repo/*?source_container_SAS_token' 'https://target-storage-account-name.blob.core.windows.net/targetContainer/example-repo?target_container_SAS_token' --recursive
+
+ +

You can restart lakeFS services after copying the data to backup storage location.

+

+ + + Restore Repository + + +

+ +

+ + + Create a new Bare Repository + + +

+ +

Create a bare lakeFS repository with a new name if you want to clone the repository or use the same repository name if you want to migrate or restore the repository.

+ +
    +
  • Python example to create a bare lakeFS repository using S3 storage:
  • +
+ +
lakefs.Repository("target-example-repo").create(bare=True, storage_namespace="s3://target-bucket-name/example-repo", default_branch="same-default-branch-as-in-source-repo")
+
+ +
    +
  • Python example to create a bare lakeFS repository using Azure storage:
  • +
+ +
lakefs.Repository("target-example-repo").create(bare=True, storage_namespace="https://target-storage-account-name.blob.core.windows.net/targetContainer/example-repo", default_branch="same-default-branch-as-in-source-repo")
+
+ +
    +
  • lakeFS CLI command to create a bare lakeFS repository using S3 storage:
  • +
+ +
lakectl repo create-bare lakefs://target-example-repo s3://target-bucket-name/example-repo --default-branch "same-default-branch-as-in-source-repo"
+
+ +
    +
  • lakeFS CLI command to create a bare lakeFS repository using Azure storage:
  • +
+ +
lakectl repo create-bare lakefs://target-example-repo https://target-storage-account-name.blob.core.windows.net/targetContainer/example-repo --default-branch "same-default-branch-as-in-source-repo"
+
+

+ + + Restore Metadata to new Repository + + +

+ +

Run restore_refs to load back all commits, tags and branches.

+ +
    +
  • Python example to restore metadata to new repository. First download metadata(refs_manifest.json) file created by metadata dump process:
  • +
+ +
aws s3 cp s3://target-bucket-name/example-repo/_lakefs/refs_manifest.json .
+
+ +
azcopy copy 'https://target-storage-account-name.blob.core.windows.net/targetContainer/example-repo/_lakefs/refs_manifest.json?<target_container_SAS_token>' .
+
+ +

Then read refs_manifest.json file and restore metadata to new repository:

+
with open('./refs_manifest.json') as file:
+    refs_manifest_json = json.load(file)
+    print(refs_manifest_json)
+    
+target_lakefs_sdk_client.internal_api.restore_refs(target_repo_name, refs_manifest_json)
+
+ +
    +
  • lakeFS CLI command to restore metadata to new repository using S3 storage:
  • +
+ +
aws s3 cp s3://target-bucket-name/example-repo/_lakefs/refs_manifest.json - | lakectl refs-restore lakefs://target-example-repo --manifest -
+
+ +
    +
  • lakeFS CLI command to restore metadata to new repository using Azure storage:
  • +
+ +
az storage blob download --container-name targetContainer --name example-repo/_lakefs/refs_manifest.json --account-name target-storage-account-name --account-key <target-storage-account-key> | lakectl refs-restore lakefs://target-example-repo --manifest -
+
+ +

Note: If you are running backups regularly, it is highly advised to test the restore process periodically to make sure that you are able to restore the repository in case of disaster.

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/howto/catalog_exports.html b/v1.46/howto/catalog_exports.html new file mode 100644 index 000000000..e49cdeef1 --- /dev/null +++ b/v1.46/howto/catalog_exports.html @@ -0,0 +1,938 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Data Catalogs Export | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Data Catalogs Export + + +

+ + +
+

+ + + Table of contents + + +

+ + +
    +
  1. About Data Catalogs Export
  2. +
  3. How it works
      +
    1. Table Decleration
    2. +
    3. Catalog Exporters
    4. +
    5. Flow
    6. +
    +
  4. +
+ +
+

+ + + About Data Catalogs Export + + +

+ + +

Data Catalog Export is all about integrating query engines (like Spark, AWS Athena, Presto, etc.) with lakeFS.

+ +

Data Catalogs (such as Hive Metastore or AWS Glue) store metadata for services (such as Spark, Trino and Athena). They contain metadata such as the location of the table, information about columns, partitions and much more.

+ +

With Data Catalog Exports, one can leverage the versioning capabilities of lakeFS in external data warehouses and query engines to access tables with branches and commits.

+ +

At the end of this guide, you will be able to query lakeFS data from Athena, Trino and other catalog-dependent tools:

+ +
USE main;
+USE my_branch; -- any branch
+USE v101; -- or tag
+
+SELECT * FROM users 
+INNER JOIN events 
+ON users.id = events.user_id; -- SQL stays the same, branch or tag exist as schema
+
+

+ + + How it works + + +

+ + +

Several well known formats exist today let you export existing tables in lakeFS into a “native” object store representation +which does not require copying the data outside of lakeFS.

+ +

These are metadata representations and can be applied automatically through hooks.

+

+ + + Table Decleration + + +

+ + +

After creating a lakeFS repository, configure tables as table descriptor objects on the repository on the path _lakefs_tables/TABLE.yaml. +Note: the Glue exporter can currently only export tables of type: hive. We expect to add more.

+

+ + + Hive tables + + +

+ + +

Hive metadata server tables are essentially just a set of objects that share a prefix, with no table metadata stored on the object store. You need to configure prefix, partitions, and schema.

+ +
name: animals
+type: hive
+path: path/to/animals/
+partition_columns: ['year']
+schema:
+  type: struct
+  fields:
+    - name: year
+      type: integer
+      nullable: false
+      metadata: {}
+    - name: page
+      type: string
+      nullable: false
+      metadata: {}
+    - name: site
+      type: string
+      nullable: true
+      metadata:
+        comment: a comment about this column
+
+ +

Useful types recognized by Hive include integer, long, short, string, double, float, date, and timestamp.

+

+ + + Catalog Exporters + + +

+ + +

Exporters are code packages accessible through Lua integration. Each exporter is exposed as a Lua function under the package namespace lakefs/catalogexport. Call them from hooks to connect lakeFS tables to various catalogs.

+

+ + + Currently supported exporters + + +

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ExporterDescriptionNotes
Symlink exporterWrites metadata for the table using Hive’s SymlinkTextInputFormat 
AWS Glue Catalog (+ Athena) exporterCreates a table in Glue using Hive’s format and updates the location to symlink files (reuses Symlink Exporter).See a step-by-step guide on how to integrate with Glue Exporter
Delta Lake table exporterExport Delta Lake tables from lakeFS to an external storage 
Unity Catalog exporterThe Unity Catalog exporter serves the purpose of registering a Delta Lake table in Unity Catalog. It operates in conjunction with the Delta Lake exporter. In this workflow, the Delta Lake exporter is utilized to export a Delta Lake table from lakeFS. Subsequently, the obtained result is passed to the Unity Catalog exporter to facilitate its registration within Unity Catalog.See a step-by-step guide on how to integrate with Unity Catalog Exporter</br>Currently, only AWS S3 storage is supported
+

+ + + Running an Exporter + + +

+ + +

Exporters are meant to run as Lua hooks.

+ +

Configure the actions trigger by using events and branches. Of course, you can add additional custom filtering logic to the Lua script if needed. +The default table name when exported is ${repository_id}_${_lakefs_tables/TABLE.md(name field)}_${ref_name}_${short_commit}.

+ +

Example of an action that will be triggered when a post-commit event happens in the export_table branch.

+ +
name: Glue Table Exporter
+description: export my table to glue  
+on:
+  post-commit:
+    branches: ["export_table"]
+hooks:
+  - id: my_exporter
+    type: lua
+    properties:
+      # exporter script location
+      script_path: "scripts/my_export_script.lua"
+      args:
+        # table descriptor
+        table_source: '_lakefs_tables/my_table.yaml'
+
+ +

Tip: Actions can be extended to customize any desired behavior, for example validating branch names since they are part of the table name:

+ +
# _lakefs_actions/validate_branch_name.yaml
+name: validate-lower-case-branches 
+on:
+  pre-create-branch:
+hooks:
+  - id: check_branch_id
+    type: lua
+    properties:
+      script: |
+        regexp = require("regexp")
+        if not regexp.match("^[a-z0-9\\_\\-]+$", action.branch_id) then
+          error("branches must be lower case, invalid branch ID: " .. action.branch_id)
+        end
+
+

+ + + Flow + + +

+ + +

The following diagram demonstrates what happens when a lakeFS Action triggers runs a lua hook that calls an exporter.

+ +
sequenceDiagram
+    note over Lua Hook: lakeFS Action trigger. <br> Pass Context for the export.
+    Lua Hook->>Exporter: export request
+    note over Table Registry: _lakefs_tables/TABLE.yaml
+    Exporter->>Table Registry: Get table descriptor
+    Table Registry->>Exporter: Parse table structure
+    Exporter->>Object Store: materialize an exported table
+    Exporter->>Catalog: register object store location
+    Query Engine-->Catalog: Query
+    Query Engine-->Object Store: Query
+
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/howto/copying.html b/v1.46/howto/copying.html new file mode 100644 index 000000000..6d15771d3 --- /dev/null +++ b/v1.46/howto/copying.html @@ -0,0 +1,929 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Copying data to/from lakeFS | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Copying data to/from lakeFS + + +

+ + +
+

+ + + Table of contents + + +

+ + +
    +
  1. Using DistCp
  2. +
  3. Using Rclone
  4. +
+ +
+

+ + + Using DistCp + + +

+ + +

Apache Hadoop DistCp (distributed copy) is a tool used for large inter/intra-cluster copying. You can easily use it with your lakeFS repositories.

+ +

Note

+ +

In the following examples, we set AWS credentials on the command line for clarity. In production, you should set these properties using one of Hadoop’s standard ways of Authenticating with S3.

+

+ + + Between lakeFS repositories + + +

+ + +

You can use DistCP to copy between two different lakeFS repositories. Replace the access key pair with your lakeFS access key pair:

+ +
hadoop distcp \
+  -Dfs.s3a.path.style.access=true \
+  -Dfs.s3a.access.key="AKIAIOSFODNN7EXAMPLE" \
+  -Dfs.s3a.secret.key="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \
+  -Dfs.s3a.endpoint="https://lakefs.example.com" \
+  "s3a://example-repo-1/main/example-file.parquet" \
+  "s3a://example-repo-2/main/example-file.parquet"
+
+

+ + + Between S3 buckets and lakeFS + + +

+ + +

To copy data from an S3 bucket to a lakeFS repository, use Hadoop’s per-bucket configuration. +In the following examples, replace the first access key pair with your lakeFS key pair, and the second one with your AWS IAM key pair:

+

+ + + From S3 to lakeFs + + +

+ + +
hadoop distcp \
+  -Dfs.s3a.path.style.access=true \
+  -Dfs.s3a.bucket.example-repo.access.key="AKIAIOSFODNN7EXAMPLE" \
+  -Dfs.s3a.bucket.example-repo.secret.key="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \
+  -Dfs.s3a.bucket.example-repo.endpoint="https://lakefs.example.com" \
+  -Dfs.s3a.bucket.example-bucket.access.key="AKIAIOSFODNN3EXAMPLE" \
+  -Dfs.s3a.bucket.example-bucket.secret.key="wJalrXUtnFEMI/K3MDENG/bPxRfiCYEXAMPLEKEY" \
+  "s3a://example-bucket/example-file.parquet" \
+  "s3a://example-repo/main/example-file.parquet"
+
+

+ + + From lakeFS to S3 + + +

+ + +
hadoop distcp \
+  -Dfs.s3a.path.style.access=true \
+  -Dfs.s3a.bucket.example-repo.access.key="AKIAIOSFODNN7EXAMPLE" \
+  -Dfs.s3a.bucket.example-repo.secret.key="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \
+  -Dfs.s3a.bucket.example-repo.endpoint="https://lakefs.example.com" \
+  -Dfs.s3a.bucket.example-bucket.access.key="AKIAIOSFODNN3EXAMPLE" \
+  -Dfs.s3a.bucket.example-bucket.secret.key="wJalrXUtnFEMI/K3MDENG/bPxRfiCYEXAMPLEKEY" \
+  "s3a://example-repo/main/myfile" \
+  "s3a://example-bucket/myfile"
+
+

+ + + Using Rclone + + +

+ + +

Rclone is a command line program to sync files and directories between cloud providers. +To use it with lakeFS, create an Rclone remote as describe below and then use it as you would any other Rclone remote.

+

+ + + Creating a remote for lakeFS in Rclone + + +

+ + +

To add the remote to Rclone, choose one of the following options:

+

+ + + Option 1: Add an entry in your Rclone configuration file + + +

+ +
    +
  • +

    Find the path to your Rclone configuration file and copy it for the next step.

    + +
    rclone config file
    +# output:
    +# Configuration file is stored at:
    +# /home/myuser/.config/rclone/rclone.conf
    +
    +
  • +
  • +

    If your lakeFS access key is already set in an AWS profile or environment variables, run the following command, replacing the endpoint property with your lakeFS endpoint:

    + +
    cat <<EOT >> /home/myuser/.config/rclone/rclone.conf
    +[lakefs]
    +type = s3
    +provider = Other
    +endpoint = https://lakefs.example.com
    +no_check_bucket = true
    +EOT
    +
    +
  • +
  • +

    Otherwise, also include your lakeFS access key pair in the Rclone configuration file:

    + +
    cat <<EOT >> /home/myuser/.config/rclone/rclone.conf
    +[lakefs]
    +type = s3
    +provider = Other
    +env_auth = false
    +access_key_id = AKIAIOSFODNN7EXAMPLE
    +secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
    +endpoint = https://lakefs.example.com
    +no_check_bucket = true
    +EOT
    +
    +
  • +
+

+ + + Option 2: Use the Rclone interactive config command + + +

+ + +

Run this command and follow the instructions:

+
rclone config
+
+

Choose AWS S3 as your type of storage, and enter your lakeFS endpoint as your S3 endpoint. +You will have to choose whether you use your environment for authentication (recommended), +or enter the lakeFS access key pair into the Rclone configuration. Select “Edit advanced +config” and accept defaults for all values except no_check_bucket:

+
If set, don't attempt to check the bucket exists or create it.
+
+This can be useful when trying to minimize the number of transactions
+Rclone carries out, if you know the bucket exists already.
+
+This might also be needed if the user you're using doesn't have bucket
+creation permissions. Before v1.52.0, this would have passed silently
+due to a bug.
+
+Enter a boolean value (true or false). Press Enter for the default ("false").
+no_check_bucket> yes
+
+

+ + + Syncing S3 and lakeFS + + +

+ + +
rclone sync mys3remote://mybucket/path/ lakefs:example-repo/main/path
+
+

+ + + Syncing a local directory and lakeFS + + +

+ + +
rclone sync /home/myuser/path/ lakefs:example-repo/main/path
+
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/howto/deploy/aws.html b/v1.46/howto/deploy/aws.html new file mode 100644 index 000000000..37f9cb28f --- /dev/null +++ b/v1.46/howto/deploy/aws.html @@ -0,0 +1,1214 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +AWS | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Deploy lakeFS on AWS + + +

+ + +
+

The instructions given here are for a self-managed deployment of lakeFS on AWS.

+ +

For a hosted lakeFS service with guaranteed SLAs, try lakeFS Cloud

+
+ +

When you deploy lakeFS on AWS these are the options available to use:

+ +

+ +

This guide walks you through the options available and how to configure them, finishing with configuring and running lakeFS itself and creating your first repository.

+ + + +

⏰ Expected deployment time: 25 min

+

+ + + Grant lakeFS permissions to DynamoDB + + +

+ + +

By default, lakeFS will create the required DynamoDB table if it does not already exist. You’ll have to give the IAM role used by lakeFS the following permissions:

+ +
{
+    "Version": "2012-10-17",
+    "Statement": [
+        {
+            "Sid": "ListAndDescribe",
+            "Effect": "Allow",
+            "Action": [
+                "dynamodb:List*",
+                "dynamodb:DescribeReservedCapacity*",
+                "dynamodb:DescribeLimits",
+                "dynamodb:DescribeTimeToLive"
+            ],
+            "Resource": "*"
+        },
+        {
+            "Sid": "kvstore",
+            "Effect": "Allow",
+            "Action": [
+                "dynamodb:BatchGet*",
+                "dynamodb:DescribeTable",
+                "dynamodb:Get*",
+                "dynamodb:Query",
+                "dynamodb:Scan",
+                "dynamodb:BatchWrite*",
+                "dynamodb:CreateTable",
+                "dynamodb:Delete*",
+                "dynamodb:Update*",
+                "dynamodb:PutItem"
+            ],
+            "Resource": "arn:aws:dynamodb:*:*:table/kvstore"
+        }
+    ]
+}
+
+ +

💡 You can also use lakeFS with PostgreSQL instead of DynamoDB! See the configuration reference for more information.

+

+ + + Run the lakeFS server + + +

+ + +
+ +
+ +

Connect to your EC2 instance using SSH:

+ +
    +
  1. +

    Create a config.yaml on your EC2 instance, with the following parameters:

    + +
    ---
    +database:
    +  type: "dynamodb"
    +  
    +auth:
    +  encrypt:
    +    # replace this with a randomly-generated string. Make sure to keep it safe!
    +    secret_key: "[ENCRYPTION_SECRET_KEY]"
    +   
    +blockstore:
    +  type: s3
    +
    +
  2. +
  3. Download the binary to run on the EC2 instance.
  4. +
  5. +

    Run the lakefs binary on the EC2 instance:

    + +
    lakefs --config config.yaml run
    +
    +
  6. +
+ +

Note: It’s preferable to run the binary as a service using systemd or your operating system’s facilities.

+

+ + + Advanced: Deploying lakeFS behind an AWS Application Load Balancer + + +

+ + +
    +
  1. Your security groups should allow the load balancer to access the lakeFS server.
  2. +
  3. Create a target group with a listener for port 8000.
  4. +
  5. Setup TLS termination using the domain names you wish to use (e.g., lakefs.example.com and potentially s3.lakefs.example.com, *.s3.lakefs.example.com if using virtual-host addressing).
  6. +
  7. Configure the health-check to use the exposed /_health URL
  8. +
+ +
+
+ +

You can install lakeFS on Kubernetes using a Helm chart.

+ +

To install lakeFS with Helm:

+ +
    +
  1. +

    Copy the Helm values file relevant for S3:

    + +
    secrets:
    +   # replace this with a randomly-generated string
    +   authEncryptSecretKey: [ENCRYPTION_SECRET_KEY]
    +lakefsConfig: |
    +    database:
    +      type: dynamodb
    +    blockstore:
    +      type: s3
    +
    +
  2. +
  3. +

    Fill in the missing values and save the file as conf-values.yaml. For more configuration options, see our Helm chart README.

    + +

    The lakefsConfig parameter is the lakeFS configuration documented here but without sensitive information. +Sensitive information like databaseConnectionString is given through separate parameters, and the chart will inject it into Kubernetes secrets.

    +
  4. +
  5. +

    In the directory where you created conf-values.yaml, run the following commands:

    + +
    # Add the lakeFS repository
    +helm repo add lakefs https://charts.lakefs.io
    +# Deploy lakeFS
    +helm install my-lakefs lakefs/lakefs -f conf-values.yaml
    +
    + +

    my-lakefs is the Helm Release name.

    +
  6. +
+ +

⚠️ Make sure the Kubernetes nodes have access to all buckets/containers with which you intend to use with lakeFS. +If you can’t provide such access, configure lakeFS with an AWS key-pair.

+

+ + + Load balancing + + +

+ + +

To configure a load balancer to direct requests to the lakeFS servers you can use the LoadBalancer Service type or a Kubernetes Ingress. +By default, lakeFS operates on port 8000 and exposes a /_health endpoint that you can use for health checks.

+ +

💡 The NGINX Ingress Controller by default limits the client body size to 1 MiB. +Some clients use bigger chunks to upload objects - for example, multipart upload to lakeFS using the S3 Gateway or +a simple PUT request using the OpenAPI Server. +Checkout Nginx documentation for increasing the limit, or an example of Nginx configuration with MinIO.

+ +
+
+

+ + + Prepare your S3 bucket + + +

+ + +
    +
  1. Take note of the bucket name you want to use with lakeFS
  2. +
  3. +

    Use the following as your bucket policy, filling in the placeholders:

    + +
    + +
    + +
    {
    +   "Id": "lakeFSPolicy",
    +   "Version": "2012-10-17",
    +   "Statement": [
    +      {
    +         "Sid": "lakeFSObjects",
    +         "Action": [
    +            "s3:GetObject",
    +            "s3:PutObject",
    +            "s3:AbortMultipartUpload",
    +            "s3:ListMultipartUploadParts"
    +         ],
    +         "Effect": "Allow",
    +         "Resource": ["arn:aws:s3:::[BUCKET_NAME_AND_PREFIX]/*"],
    +         "Principal": {
    +            "AWS": ["arn:aws:iam::[ACCOUNT_ID]:role/[IAM_ROLE]"]
    +         }
    +      },
    +      {
    +         "Sid": "lakeFSBucket",
    +         "Action": [
    +            "s3:ListBucket",
    +            "s3:GetBucketLocation",
    +            "s3:ListBucketMultipartUploads"
    +         ],
    +         "Effect": "Allow",
    +         "Resource": ["arn:aws:s3:::[BUCKET]"],
    +         "Principal": {
    +            "AWS": ["arn:aws:iam::[ACCOUNT_ID]:role/[IAM_ROLE]"]
    +         }
    +      }
    +   ]
    +}
    +
    + +
      +
    • Replace [BUCKET_NAME], [ACCOUNT_ID] and [IAM_ROLE] with values relevant to your environment.
    • +
    • [BUCKET_NAME_AND_PREFIX] can be the bucket name. If you want to minimize the bucket policy permissions, use the bucket name together with a prefix (e.g. example-bucket/a/b/c). +This way, lakeFS will be able to create repositories only under this specific path (see: Storage Namespace).
    • +
    • lakeFS will try to assume the role [IAM_ROLE].
    • +
    +
    +
    + +

    To use an S3 Express One Zone directory bucket, use the following policy. Note the lakeFSDirectoryBucket statement which is specifically required for using a directory bucket.

    + +
    {
    +   "Id": "lakeFSPolicy",
    +   "Version": "2012-10-17",
    +   "Statement": [
    +      {
    +         "Sid": "lakeFSObjects",
    +         "Action": [
    +            "s3:GetObject",
    +            "s3:PutObject",
    +            "s3:AbortMultipartUpload",
    +            "s3:ListMultipartUploadParts"
    +         ],
    +         "Effect": "Allow",
    +         "Resource": ["arn:aws:s3:::[BUCKET_NAME_AND_PREFIX]/*"],
    +         "Principal": {
    +            "AWS": ["arn:aws:iam::[ACCOUNT_ID]:role/[IAM_ROLE]"]
    +         }
    +      },
    +      {
    +         "Sid": "lakeFSBucket",
    +         "Action": [
    +            "s3:ListBucket",
    +            "s3:GetBucketLocation",
    +            "s3:ListBucketMultipartUploads"
    +         ],
    +         "Effect": "Allow",
    +         "Resource": ["arn:aws:s3:::[BUCKET]"],
    +         "Principal": {
    +            "AWS": ["arn:aws:iam::[ACCOUNT_ID]:role/[IAM_ROLE]"]
    +         }
    +      },
    +      {
    +         "Sid": "lakeFSDirectoryBucket",
    +         "Action": [
    +            "s3express:CreateSession"
    +         ],
    +         "Effect": "Allow",
    +         "Resource": "arn:aws:s3express:[REGION]:[ACCOUNT_ID]:bucket/[BUCKET_NAME]"
    +      }
    +   ]
    +}
    +
    + +
      +
    • Replace [BUCKET_NAME], [ACCOUNT_ID] and [IAM_ROLE] with values relevant to your environment.
    • +
    • [BUCKET_NAME_AND_PREFIX] can be the bucket name. If you want to minimize the bucket policy permissions, use the bucket name together with a prefix (e.g. example-bucket/a/b/c). +This way, lakeFS will be able to create repositories only under this specific path (see: Storage Namespace).
    • +
    • lakeFS will try to assume the role [IAM_ROLE].
    • +
    +
    +
    +

    If required lakeFS can operate without accessing the data itself, this permission section is useful if you are using presigned URLs mode or the lakeFS Hadoop FileSystem Spark integration. +Since this FileSystem performs many operations directly on the storage, lakeFS requires less permissive permissions, resulting in increased security.

    + +

    lakeFS always requires permissions to access the _lakefs prefix under your storage namespace, in which metadata +is stored (learn more).

    + +

    By setting this policy without presign mode you’ll be able to perform only metadata operations through lakeFS, meaning that you’ll not be able +to use lakeFS to upload or download objects. Specifically you won’t be able to:

    +
      +
    • Upload objects using the lakeFS GUI (Works with presign mode)
    • +
    • Upload objects through Spark using the S3 gateway
    • +
    • Run lakectl fs commands (unless using presign mode with --pre-sign flag)
    • +
    • Use Actions and Hooks
    • +
    + +
    {
    +  "Id": "[POLICY_ID]",
    +  "Version": "2012-10-17",
    +  "Statement": [
    +{
    +  "Sid": "lakeFSObjects",
    +  "Action": [
    +     "s3:GetObject",
    +     "s3:PutObject"
    +  ],
    +  "Effect": "Allow",
    +  "Resource": [
    +     "arn:aws:s3:::[STORAGE_NAMESPACE]/_lakefs/*"
    +  ],
    +  "Principal": {
    +    "AWS": ["arn:aws:iam::[ACCOUNT_ID]:role/[IAM_ROLE]"]
    +  }
    +},
    + {
    +    "Sid": "lakeFSBucket",
    +    "Action": [
    +       "s3:ListBucket",
    +       "s3:GetBucketLocation"
    +    ],
    +    "Effect": "Allow",
    +    "Resource": ["arn:aws:s3:::[BUCKET]"],
    +    "Principal": {
    +       "AWS": ["arn:aws:iam::[ACCOUNT_ID]:role/[IAM_ROLE]"]
    +    }
    + }
    +  ]
    +}
    +
    + +

    We can use presigned URLs mode without allowing access to the data from the lakeFS server directly. +We can achieve this by using condition keys such as aws:referer, aws:SourceVpc and aws:SourceIp.

    + +

    For example, assume the following scenario:

    +
      +
    • lakeFS is deployed outside the company (i.e lakeFS cloud or other VPC not vpc-123)
    • +
    • We don’t want lakeFS to be able to access the data, so we use presign URL, we still need lakeFS role to be able to sign the URL.
    • +
    • We want to allow access from the internal company VPC: vpc-123.
    • +
    + +
          {
    +         "Sid": "allowLakeFSRoleFromCompanyOnly",
    +         "Effect": "Allow",
    +         "Principal": {
    +             "AWS": "arn:aws:iam::[ACCOUNT_ID]:role/[IAM_ROLE]"
    +         },
    +         "Action": [
    +             "s3:GetObject",
    +             "s3:PutObject",
    +         ],
    +         "Resource": [
    +            "arn:aws:s3:::[BUCKET]/*",
    +         ],
    +         "Condition": {
    +             "StringEquals": {
    +                 "aws:SourceVpc": "vpc-123"
    +             }
    +         }
    +     }
    +
    + +
    +
    +
  4. +
+

+ + + S3 Storage Tier Classes + + +

+ + +

lakeFS currently supports the following S3 Storage Classes:

+ +
    +
  1. S3 Standard - The default AWS S3 storage tier. Fully supported.
  2. +
  3. S3 Express One-Zone - Fully supported.
  4. +
  5. S3 Glacier Instant Retrival - Supported with limitations: currently, pre-signed URLs are not supported when using Instant Retrival. The outstanding feature request could be tracked here.
  6. +
+ +

Other storage classes are currently unsupported - either because they have not been tested with lakeFS or because they cannot be supported.

+ +

If you need lakeFS to support a storage tier that isn’t currently on the supported list, please open an issue on GitHub.

+

+ + + Alternative: use an AWS user + + +

+ + +

lakeFS can authenticate with your AWS account using an AWS user, using an access key and secret. To allow this, change the policy’s Principal accordingly:

+
 "Principal": {
+   "AWS": ["arn:aws:iam::<ACCOUNT_ID>:user/<IAM_USER>"]
+ }
+
+

+ + + Create the admin user + + +

+ + +

When you first open the lakeFS UI, you will be asked to create an initial admin user.

+ +
    +
  1. Open http://<lakefs-host>/ in your browser. If you haven’t set up a load balancer, this will likely be http://<instance ip address>:8000/
  2. +
  3. +

    On first use, you’ll be redirected to the setup page:

    + +

    Create user

    +
  4. +
  5. +

    Follow the steps to create an initial administrator user. Save the credentials you’ve received somewhere safe, you won’t be able to see them again!

    + +

    Setup Done

    +
  6. +
  7. Follow the link and go to the login screen. Use the credentials from the previous step to log in.
  8. +
+

+ + + Create your first repository + + +

+ + +
    +
  1. Use the credentials from the previous step to log in
  2. +
  3. +

    Click Create Repository and choose Blank Repository.

    + +

    Create Repo

    +
  4. +
  5. Under Storage Namespace, enter a path to your desired location on the object store. This is where data written to this repository will be stored.
  6. +
  7. Click Create Repository
  8. +
  9. +

    You should now have a configured repository, ready to use!

    + +

    Repo Created

    +
  10. +
+ +

Congratulations! Your environment is now ready 🤩

+ + + + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/howto/deploy/azure.html b/v1.46/howto/deploy/azure.html new file mode 100644 index 000000000..4dc1745d3 --- /dev/null +++ b/v1.46/howto/deploy/azure.html @@ -0,0 +1,1123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Azure | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Deploy lakeFS on Azure + + +

+ + +
+

The instructions given here are for a self-managed deployment of lakeFS on Azure.

+ +

For a hosted lakeFS service with guaranteed SLAs, try lakeFS Cloud

+
+ +

When you deploy lakeFS on Azure these are the options available to use:

+ +

+ +

This guide walks you through the options available and how to configure them, finishing with configuring and running lakeFS itself and creating your first repository.

+ + + +

⏰ Expected deployment time: 25 min

+

+ + + 1. Object Storage + + +

+ + +

lakeFS supports the following Azure Storage types:

+ +
    +
  1. Azure Blob Storage
  2. +
  3. Azure Data Lake Storage Gen2 (HNS)
  4. +
+ +

Data Lake Storage Gen1 is not supported.

+

+ + + 2. Authentication Method + + +

+ + +

lakeFS supports two ways to authenticate with Azure.

+ +
+ + +
+ +

lakeFS uses environment variables to determine credentials to use for authentication. The following authentication methods are supported:

+ +
    +
  1. Managed Service Identity (MSI)
  2. +
  3. Service Principal RBAC
  4. +
  5. Azure CLI
  6. +
+ +

For deployments inside the Azure ecosystem it is recommended to use a managed identity.

+ +

More information on authentication methods and environment variables can be found here

+

+ + + How to Create Service Principal for Resource Group + + +

+ + +

It is recommended to create a resource group that consists of all the resources lakeFS should have access to.

+ +

Using a resource group will allow dynamic removal/addition of services from the group, effectively providing/preventing access for lakeFS to these resources without requiring any changes in configuration in lakeFS or providing lakeFS with any additional credentials.

+ +

The minimal role required for the service principal is “Storage Blob Data Contributor”

+ +

The following Azure CLI command creates a service principal for a resource group called “lakeFS” with permission to access (read/write/delete) +Blob Storage resources in the resource group and with an expiry of 5 years

+ +
az ad sp create-for-rbac \
+  --role "Storage Blob Data Contributor" \
+  --scopes /subscriptions/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/resourceGroups/lakeFS --years 5
+    
+Creating 'Storage Blob Data Contributor' role assignment under scope '/subscriptions/947382ea-681a-4541-99ab-b718960c6289/resourceGroups/lakeFS'
+The output includes credentials that you must protect. Be sure that you do not include these credentials in your code or check the credentials into your source control. For more information, see https://aka.ms/azadsp-cli
+{
+  "appId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
+  "displayName": "azure-cli-2023-01-30-06-18-30",
+  "password": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
+  "tenant": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
+}
+
+ +

The command output should be used to populate the following environment variables:

+ +
AZURE_CLIENT_ID      =  $appId
+AZURE_TENANT_ID      =  $tenant
+AZURE_CLIENT_SECRET  =  $password
+
+ +

Note: Service Principal credentials have an expiry date and lakeFS will lose access to resources unless credentials are renewed on time.

+ +

Note: It is possible to provide both account based credentials and environment variables to lakeFS. In that case - lakeFS will use +the account credentials for any access to data located in the given account, and will try to use the identity credentials for any data located outside the given account.

+ +
+ +
+ +

Storage account credentials can be set directly in the lakeFS configuration using the following parameters:

+ +
    +
  • blockstore.azure.storage_account
  • +
  • blockstore.azure.storage_access_key
  • +
+

+ + + Limitations + + +

+ + +

Please note that using this authentication method limits lakeFS to the scope of the given storage account.

+ +

Specifically, the following operations will not work:

+ +
    +
  1. Import of data from different storage accounts
  2. +
  3. Copy/Read/Write of data that was imported from a different storage account
  4. +
  5. Create pre-signed URL for data that was imported from a different storage account
  6. +
+ +
+
+

+ + + 3. K/V Store + + +

+ + +

lakeFS stores metadata in a database for its versioning engine. This is done via a Key-Value interface that can be implemented on any DB engine and lakeFS comes with several built-in driver implementations (You can read more about it here). The database used doesn’t have to be a dedicated K/V database.

+ +
+ +
+ +

CosmosDB is a managed database service provided by Azure. lakeFS supports CosmosDB For NoSQL as a database backend.

+ +
    +
  1. Follow the official Azure documentation +on how to create a CosmosDB account for NoSQL and connect to it.
  2. +
  3. Once your CosmosDB account is set up, you can create a Database for +lakeFS. For lakeFS ACID guarantees, make sure to select the Bounded +staleness consistency, +for single region deployments.
  4. +
  5. Create a new container in the database and select type +partitionKey as the Partition key (case sensitive).
  6. +
  7. Pass the endpoint, database name and container name to lakeFS as +described in the configuration guide. +You can either pass the CosmosDB’s account read-write key to lakeFS, or +use a managed identity to authenticate to CosmosDB, as described +earlier.
  8. +
+ +

A note on CosmosDB capacity modes: lakeFS usage of CosmosDB is still in its +early days and has not been battle tested. Both capacity modes, Provisioned +and Serverless, has been tested for some workloads and passed with flying +colors. The Provisioned mode was configured with 400-4000 RU/s.

+ +
+
+ +

Below we show you how to create a database on Azure Database, but you can use any PostgreSQL database as long as it’s accessible by your lakeFS installation.

+ +

If you already have a database, take note of the connection string and skip to the next step

+ +
    +
  1. Follow the official Azure documentation on how to create a PostgreSQL instance and connect to it. +Make sure that you’re using PostgreSQL version >= 11.
  2. +
  3. Once your Azure Database for PostgreSQL server is set up and the server is in the Available state, take note of the endpoint and username. +Azure postgres Connection String
  4. +
  5. Make sure your Access control roles allow you to connect to the database instance.
  6. +
+ +
+
+

+ + + 4. Run the lakeFS server + + +

+ + +

Now that you’ve chosen and configured object storage, a K/V store, and authentication—you’re ready to configure and run lakeFS. There are three different ways you can run lakeFS:

+ +
+ +
+ +

Connect to your VM instance using SSH:

+ +
    +
  1. +

    Create a config.yaml on your VM, with the following parameters:

    + +
    ---
    +database:
    +  type: "postgres"
    +  postgres:
    +    connection_string: "[DATABASE_CONNECTION_STRING]"
    +  
    +auth:
    +  encrypt:
    +    # replace this with a randomly-generated string. Make sure to keep it safe!
    +    secret_key: "[ENCRYPTION_SECRET_KEY]"
    +   
    +blockstore:
    +  type: azure
    +  azure:
    +
    +
  2. +
  3. Download the binary to run on the VM.
  4. +
  5. +

    Run the lakefs binary:

    + +
    lakefs --config config.yaml run
    +
    +
  6. +
+ +

Note: It’s preferable to run the binary as a service using systemd or your operating system’s facilities.

+ +
+
+ +

To support container-based environments, you can configure lakeFS using environment variables. Here is a docker run +command to demonstrate starting lakeFS using Docker:

+ +
docker run \
+  --name lakefs \
+  -p 8000:8000 \
+  -e LAKEFS_DATABASE_TYPE="postgres" \
+  -e LAKEFS_DATABASE_POSTGRES_CONNECTION_STRING="[DATABASE_CONNECTION_STRING]" \
+  -e LAKEFS_AUTH_ENCRYPT_SECRET_KEY="[ENCRYPTION_SECRET_KEY]" \
+  -e LAKEFS_BLOCKSTORE_TYPE="azure" \
+  -e LAKEFS_BLOCKSTORE_AZURE_STORAGE_ACCOUNT="[YOUR_STORAGE_ACCOUNT]" \
+  -e LAKEFS_BLOCKSTORE_AZURE_STORAGE_ACCESS_KEY="[YOUR_ACCESS_KEY]" \
+  treeverse/lakefs:latest run
+
+ +

See the reference for a complete list of environment variables.

+ +
+
+ +

You can install lakeFS on Kubernetes using a Helm chart.

+ +

To install lakeFS with Helm:

+ +
    +
  1. +

    Copy the Helm values file relevant for Azure Blob:

    + +
    secrets:
    +    # replace this with the connection string of the database you created in a previous step:
    +    databaseConnectionString: [DATABASE_CONNECTION_STRING]
    +    # replace this with a randomly-generated string
    +    authEncryptSecretKey: [ENCRYPTION_SECRET_KEY]
    +lakefsConfig: |
    +    blockstore:
    +      type: azure
    +      azure:
    +    #  If you chose to authenticate via access key, unmark the following rows and insert the values from the previous step 
    +    #  storage_account: [your storage account]
    +    #  storage_access_key: [your access key]
    +
    +
  2. +
  3. +

    Fill in the missing values and save the file as conf-values.yaml. For more configuration options, see our Helm chart README.

    + +

    The lakefsConfig parameter is the lakeFS configuration documented here but without sensitive information. +Sensitive information like databaseConnectionString is given through separate parameters, and the chart will inject it into Kubernetes secrets.

    +
  4. +
  5. +

    In the directory where you created conf-values.yaml, run the following commands:

    + +
    # Add the lakeFS repository
    +helm repo add lakefs https://charts.lakefs.io
    +# Deploy lakeFS
    +helm install my-lakefs lakefs/lakefs -f conf-values.yaml
    +
    + +

    my-lakefs is the Helm Release name.

    +
  6. +
+

+ + + Load balancing + + +

+ + +

To configure a load balancer to direct requests to the lakeFS servers you can use the LoadBalancer Service type or a Kubernetes Ingress. +By default, lakeFS operates on port 8000 and exposes a /_health endpoint that you can use for health checks.

+ +

💡 The NGINX Ingress Controller by default limits the client body size to 1 MiB. +Some clients use bigger chunks to upload objects - for example, multipart upload to lakeFS using the S3-compatible Gateway or +a simple PUT request using the OpenAPI Server. +Check out Nginx documentation for increasing the limit, or an example of Nginx configuration with MinIO.

+ +
+
+

+ + + Create the admin user + + +

+ + +

When you first open the lakeFS UI, you will be asked to create an initial admin user.

+ +
    +
  1. Open http://<lakefs-host>/ in your browser. If you haven’t set up a load balancer, this will likely be http://<instance ip address>:8000/
  2. +
  3. +

    On first use, you’ll be redirected to the setup page:

    + +

    Create user

    +
  4. +
  5. +

    Follow the steps to create an initial administrator user. Save the credentials you’ve received somewhere safe, you won’t be able to see them again!

    + +

    Setup Done

    +
  6. +
  7. Follow the link and go to the login screen. Use the credentials from the previous step to log in.
  8. +
+

+ + + Create your first repository + + +

+ + +
    +
  1. Use the credentials from the previous step to log in
  2. +
  3. +

    Click Create Repository and choose Blank Repository.

    + +

    Create Repo

    +
  4. +
  5. Under Storage Namespace, enter a path to your desired location on the object store. This is where data written to this repository will be stored.
  6. +
  7. Click Create Repository
  8. +
  9. +

    You should now have a configured repository, ready to use!

    + +

    Repo Created

    +
  10. +
+ +

Congratulations! Your environment is now ready 🤩

+ + + + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/howto/deploy/gcp.html b/v1.46/howto/deploy/gcp.html new file mode 100644 index 000000000..0901a4836 --- /dev/null +++ b/v1.46/howto/deploy/gcp.html @@ -0,0 +1,952 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GCP | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Deploy lakeFS on GCP + + +

+ + +
+

The instructions given here are for a self-managed deployment of lakeFS on GCP.

+ +

For a hosted lakeFS service with guaranteed SLAs, please contact us for details of lakeFS Cloud on GCP.

+
+ +

When you deploy lakeFS on GCP these are the options available to use:

+ +

+ + + +

⏰ Expected deployment time: 25 min

+

+ + + Create a Database + + +

+ + +

lakeFS requires a PostgreSQL database to synchronize actions on your repositories. +We will show you how to create a database on Google Cloud SQL, but you can use any PostgreSQL database as long as it’s accessible by your lakeFS installation.

+ +

If you already have a database, take note of the connection string and skip to the next step

+ +
    +
  1. Follow the official Google documentation on how to create a PostgreSQL instance. +Make sure you’re using PostgreSQL version >= 11.
  2. +
  3. On the Users tab in the console, create a user. The lakeFS installation will use it to connect to your database.
  4. +
  5. Choose the method by which lakeFS will connect to your database. Google recommends using +the SQL Auth Proxy.
  6. +
+

+ + + Run the lakeFS Server + + +

+ + +
+ +
+ +
    +
  1. +

    Save the following configuration file as config.yaml:

    + +
    ---
    +database:
    +  type: "postgres"
    +  postgres:
    +    connection_string: "[DATABASE_CONNECTION_STRING]"
    +auth:
    +  encrypt:
    +    # replace this with a randomly-generated string:
    +    secret_key: "[ENCRYPTION_SECRET_KEY]"
    +blockstore:
    +  type: gs
    +   # Uncomment the following lines to give lakeFS access to your buckets using a service account:
    +   # gs:
    +   #   credentials_json: [YOUR SERVICE ACCOUNT JSON STRING]
    +
    +
  2. +
  3. Download the binary to run on the GCE instance.
  4. +
  5. Run the lakefs binary on the GCE machine: +
    lakefs --config config.yaml run
    +
    +

    Note: it is preferable to run the binary as a service using systemd or your operating system’s facilities.

    +
  6. +
+ +
+
+ +

To support container-based environments like Google Cloud Run, lakeFS can be configured using environment variables. Here is a docker run +command to demonstrate starting lakeFS using Docker:

+ +
docker run \
+  --name lakefs \
+  -p 8000:8000 \
+  -e LAKEFS_DATABASE_TYPE="postgres" \
+  -e LAKEFS_DATABASE_POSTGRES_CONNECTION_STRING="[DATABASE_CONNECTION_STRING]" \
+  -e LAKEFS_AUTH_ENCRYPT_SECRET_KEY="[ENCRYPTION_SECRET_KEY]" \
+  -e LAKEFS_BLOCKSTORE_TYPE="gs" \
+  treeverse/lakefs:latest run
+
+ +

See the reference for a complete list of environment variables.

+ +
+
+ +

You can install lakeFS on Kubernetes using a Helm chart.

+ +

To install lakeFS with Helm:

+ +
    +
  1. +

    Copy the Helm values file relevant for Google Storage:

    + +
    secrets:
    +    # replace DATABASE_CONNECTION_STRING with the connection string of the database you created in a previous step.
    +    # e.g.: postgres://postgres:myPassword@localhost/postgres:5432
    +    databaseConnectionString: [DATABASE_CONNECTION_STRING]
    +    # replace this with a randomly-generated string
    +    authEncryptSecretKey: [ENCRYPTION_SECRET_KEY]
    +lakefsConfig: |
    +    blockstore:
    +      type: gs
    +      # Uncomment the following lines to give lakeFS access to your buckets using a service account:
    +      # gs:
    +      #   credentials_json: [YOUR SERVICE ACCOUNT JSON STRING]
    +
    +
  2. +
  3. +

    Fill in the missing values and save the file as conf-values.yaml. For more configuration options, see our Helm chart README.

    + +

    The lakefsConfig parameter is the lakeFS configuration documented here but without sensitive information. +Sensitive information like databaseConnectionString is given through separate parameters, and the chart will inject it into Kubernetes secrets.

    +
  4. +
  5. +

    In the directory where you created conf-values.yaml, run the following commands:

    + +
    # Add the lakeFS repository
    +helm repo add lakefs https://charts.lakefs.io
    +# Deploy lakeFS
    +helm install my-lakefs lakefs/lakefs -f conf-values.yaml
    +
    + +

    my-lakefs is the Helm Release name.

    +
  6. +
+

+ + + Load balancing + + +

+ + +

To configure a load balancer to direct requests to the lakeFS servers you can use the LoadBalancer Service type or a Kubernetes Ingress. +By default, lakeFS operates on port 8000 and exposes a /_health endpoint that you can use for health checks.

+ +

💡 The NGINX Ingress Controller by default limits the client body size to 1 MiB. +Some clients use bigger chunks to upload objects - for example, multipart upload to lakeFS using the S3-compatible Gateway or +a simple PUT request using the OpenAPI Server. +Checkout Nginx documentation for increasing the limit, or an example of Nginx configuration with MinIO.

+ +
+
+

+ + + Create the admin user + + +

+ + +

When you first open the lakeFS UI, you will be asked to create an initial admin user.

+ +
    +
  1. Open http://<lakefs-host>/ in your browser. If you haven’t set up a load balancer, this will likely be http://<instance ip address>:8000/
  2. +
  3. +

    On first use, you’ll be redirected to the setup page:

    + +

    Create user

    +
  4. +
  5. +

    Follow the steps to create an initial administrator user. Save the credentials you’ve received somewhere safe, you won’t be able to see them again!

    + +

    Setup Done

    +
  6. +
  7. Follow the link and go to the login screen. Use the credentials from the previous step to log in.
  8. +
+

+ + + Create your first repository + + +

+ + +
    +
  1. Use the credentials from the previous step to log in
  2. +
  3. +

    Click Create Repository and choose Blank Repository.

    + +

    Create Repo

    +
  4. +
  5. Under Storage Namespace, enter a path to your desired location on the object store. This is where data written to this repository will be stored.
  6. +
  7. Click Create Repository
  8. +
  9. +

    You should now have a configured repository, ready to use!

    + +

    Repo Created

    +
  10. +
+ +

Congratulations! Your environment is now ready 🤩

+ + + + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/howto/deploy/index.html b/v1.46/howto/deploy/index.html new file mode 100644 index 000000000..8e52afcff --- /dev/null +++ b/v1.46/howto/deploy/index.html @@ -0,0 +1,744 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Install lakeFS | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Deploy and Setup lakeFS + + +

+ + +
+

The instructions given here are for a self-managed deployment of lakeFS.

+ +

For a hosted lakeFS service with guaranteed SLAs, try lakeFS Cloud

+
+ +

This section will guide you through deploying lakeFS on top of an object store. You will require a database, and can optionally configure authentication using providers specific to your deployment platform.

+ +

Which options are available depends on your deployment platform. For example, the object store available on Azure differs from that on AWS.

+ +

+

+ + + Deployment and Setup Details + + +

+ + +

lakeFS releases include binaries for common operating systems, a containerized option or a Helm chart.

+ +

Check out our guides below for full deployment details:

+ + + + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/howto/deploy/onprem.html b/v1.46/howto/deploy/onprem.html new file mode 100644 index 000000000..380966eaa --- /dev/null +++ b/v1.46/howto/deploy/onprem.html @@ -0,0 +1,1056 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +On-Premises | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + On-Premises Deployment + + +

+ + +
+

The instructions given here are for a self-managed deployment of lakeFS.

+ +

For a hosted lakeFS service with guaranteed SLAs, try lakeFS Cloud

+
+ + + +

⏰ Expected deployment time: 25 min

+

+ + + Prerequisites + + +

+ + +

To use lakeFS on-premises, you can either use the local blockstore adapter or have access to an S3-compatible object store such as MinIO.

+ +

For more information on how to set up MinIO, see the official deployment guide

+

+ + + Setting up a database + + +

+ + +

lakeFS requires a PostgreSQL database to synchronize actions on your repositories. +This section assumes that you already have a PostgreSQL >= 11.0 database accessible.

+

+ + + Setting up a lakeFS Server + + +

+ + +
+ +
+ +

Connect to your host using SSH:

+ +
    +
  1. +

    Create a config.yaml on your VM, with the following parameters:

    + +
    ---
    +database:
    +  type: "postgres"
    +  postgres:
    +    connection_string: "[DATABASE_CONNECTION_STRING]"
    +  
    +auth:
    +  encrypt:
    +    # replace this with a randomly-generated string. Make sure to keep it safe!
    +    secret_key: "[ENCRYPTION_SECRET_KEY]"
    +   
    +blockstore:
    +  type: s3
    +  s3:
    +     force_path_style: true
    +     endpoint: http://<minio_endpoint>
    +     discover_bucket_region: false
    +     credentials:
    +        access_key_id: <minio_access_key>
    +        secret_access_key: <minio_secret_key>
    +
    + +

    ⚠️ Notice that the lakeFS Blockstore type is set to s3 - This configuration works with S3-compatible storage engines such as MinIO.

    +
  2. +
  3. +

    Download the binary to the server.

    +
  4. +
  5. +

    Run the lakefs binary:

    + +
    lakefs --config config.yaml run
    +
    +
  6. +
+ +

Note: It’s preferable to run the binary as a service using systemd or your operating system’s facilities.

+ +
+
+ +

To support container-based environments, you can configure lakeFS using environment variables. Here is a docker run +command to demonstrate starting lakeFS using Docker:

+ +
docker run \
+  --name lakefs \
+  -p 8000:8000 \
+  -e LAKEFS_DATABASE_TYPE="postgres" \
+  -e LAKEFS_DATABASE_POSTGRES_CONNECTION_STRING="[DATABASE_CONNECTION_STRING]" \
+  -e LAKEFS_AUTH_ENCRYPT_SECRET_KEY="[ENCRYPTION_SECRET_KEY]" \
+  -e LAKEFS_BLOCKSTORE_TYPE="s3" \
+  -e LAKEFS_BLOCKSTORE_S3_FORCE_PATH_STYLE="true" \
+  -e LAKEFS_BLOCKSTORE_S3_ENDPOINT="http://<minio_endpoint>" \
+  -e LAKEFS_BLOCKSTORE_S3_DISCOVER_BUCKET_REGION="false" \
+  -e LAKEFS_BLOCKSTORE_S3_CREDENTIALS_ACCESS_KEY_ID="<minio_access_key>" \
+  -e LAKEFS_BLOCKSTORE_S3_CREDENTIALS_SECRET_ACCESS_KEY="<minio_secret_key>" \
+  treeverse/lakefs:latest run
+
+ +

⚠️ Notice that the lakeFS Blockstore type is set to s3 - This configuration works with S3-compatible storage engines such as MinIO.

+ +

See the reference for a complete list of environment variables.

+ +
+
+ +

You can install lakeFS on Kubernetes using a Helm chart.

+ +

To install lakeFS with Helm:

+ +
    +
  1. +

    Copy the Helm values file relevant for S3-Compatible storage (MinIO in this example):

    + +
    secrets:
    +    # replace this with the connection string of the database you created in a previous step:
    +    databaseConnectionString: [DATABASE_CONNECTION_STRING]
    +    # replace this with a randomly-generated string
    +    authEncryptSecretKey: [ENCRYPTION_SECRET_KEY]
    +lakefsConfig: |
    +    blockstore:
    +      type: s3
    +      s3:
    +        force_path_style: true
    +        endpoint: http://<minio_endpoint>
    +        discover_bucket_region: false
    +        credentials:
    +          access_key_id: <minio_access_key>
    +          secret_access_key: <minio_secret_key>
    +
    + +

    ⚠️ Notice that the lakeFS Blockstore type is set to s3 - This configuration works with S3-compatible storage engines such as MinIO.

    +
  2. +
  3. +

    Fill in the missing values and save the file as conf-values.yaml. For more configuration options, see our Helm chart README.

    + +

    The lakefsConfig parameter is the lakeFS configuration documented here but without sensitive information. +Sensitive information like databaseConnectionString is given through separate parameters, and the chart will inject it into Kubernetes secrets.

    +
  4. +
  5. +

    In the directory where you created conf-values.yaml, run the following commands:

    + +
    # Add the lakeFS repository
    +helm repo add lakefs https://charts.lakefs.io
    +# Deploy lakeFS
    +helm install my-lakefs lakefs/lakefs -f conf-values.yaml
    +
    + +

    my-lakefs is the Helm Release name.

    +

    + + + Load balancing + + +

    + + +

    To configure a load balancer to direct requests to the lakeFS servers you can use the LoadBalancer Service type or a Kubernetes Ingress. +By default, lakeFS operates on port 8000 and exposes a /_health endpoint that you can use for health checks.

    + +

    💡 The NGINX Ingress Controller by default limits the client body size to 1 MiB. +Some clients use bigger chunks to upload objects - for example, multipart upload to lakeFS using the S3-compatible Gateway or +a simple PUT request using the OpenAPI Server. +Checkout Nginx documentation for increasing the limit, or an example of Nginx configuration with MinIO.

    +
  6. +
+ +
+
+

+ + + Secure connection + + +

+ + +

Using a load balancer or cluster manager for TLS/SSL termination is recommended. It helps speed the decryption process and reduces the processing burden from lakeFS.

+ +

In case lakeFS needs to listen and serve with HTTPS, for example for development purposes, update its config yaml with the following section:

+ +
tls:
+  enabled: true
+  cert_file: server.crt   # provide path to your certificate file
+  key_file: server.key    # provide path to your server private key
+
+

+ + + Local Blockstore + + +

+ + +

You can configure a block adapter to a POSIX compatible storage location shared by all lakeFS instances. +Using the shared storage location, both data and metadata will be stored there.

+ +

Using the local blockstore import and allowing lakeFS access to a specific prefix, it is possible to import files from a shared location. +Import is not enabled by default, as it doesn’t assume the local path is shared and there is a security concern about accessing a path outside the specified in the blockstore configuration. +Enabling is done by blockstore.local.import_enabled and blockstore.local.allowed_external_prefixes as described in the configuration reference.

+

+ + + Sample configuration using local blockstore + + +

+ + +
database:
+  type: "postgres"
+  postgres:
+    connection_string: "[DATABASE_CONNECTION_STRING]"
+  
+auth:
+  encrypt:
+    # replace this with a randomly-generated string. Make sure to keep it safe!
+    secret_key: "[ENCRYPTION_SECRET_KEY]"
+
+blockstore:
+  type: local
+  local:
+    path: /shared/location/lakefs_data    # location where data and metadata kept by lakeFS
+    import_enabled: true                  # required to be true to enable import files
+                                          # from `allowed_external_prefixes` locations
+    allowed_external_prefixes:
+      - /shared/location/files_to_import  # location with files we can import into lakeFS, require access from lakeFS
+
+

+ + + Limitations + + +

+ + +
    +
  • Using a local adapter on a shared location is relativly new and not battle-tested yet
  • +
  • lakeFS doesn’t control the way a shared location is managed across machines
  • +
  • When using lakectl or the lakeFS UI, you can currently import only directories. If you need to import a single file, use the HTTP API or API Clients with type=object in the request body and destination=<full-path-to-file>.
  • +
  • Garbage collector (for committed and uncommitted) and lakeFS Hadoop FileSystem currently unsupported
  • +
+

+ + + Create the admin user + + +

+ + +

When you first open the lakeFS UI, you will be asked to create an initial admin user.

+ +
    +
  1. Open http://<lakefs-host>/ in your browser. If you haven’t set up a load balancer, this will likely be http://<instance ip address>:8000/
  2. +
  3. +

    On first use, you’ll be redirected to the setup page:

    + +

    Create user

    +
  4. +
  5. +

    Follow the steps to create an initial administrator user. Save the credentials you’ve received somewhere safe, you won’t be able to see them again!

    + +

    Setup Done

    +
  6. +
  7. Follow the link and go to the login screen. Use the credentials from the previous step to log in.
  8. +
+

+ + + Create your first repository + + +

+ + +
    +
  1. Use the credentials from the previous step to log in
  2. +
  3. +

    Click Create Repository and choose Blank Repository.

    + +

    Create Repo

    +
  4. +
  5. Under Storage Namespace, enter a path to your desired location on the object store. This is where data written to this repository will be stored.
  6. +
  7. Click Create Repository
  8. +
  9. +

    You should now have a configured repository, ready to use!

    + +

    Repo Created

    +
  10. +
+ +

Congratulations! Your environment is now ready 🤩

+ + + + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/howto/deploy/upgrade.html b/v1.46/howto/deploy/upgrade.html new file mode 100644 index 000000000..81cf66ac5 --- /dev/null +++ b/v1.46/howto/deploy/upgrade.html @@ -0,0 +1,888 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Upgrade lakeFS | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Upgrading lakeFS + + +

+ + +

Note: For a fully managed lakeFS service with guaranteed SLAs, try lakeFS Cloud

+ +

Upgrading lakeFS from a previous version usually just requires re-deploying with the latest image (or downloading the latest version if you’re using the binary). +If you’re upgrading, check whether the release requires a migration.

+

+ + + When DB migrations are required + + +

+ +

+ + + lakeFS 0.103.0 or greater + + +

+ + +

Version 0.103.0 added support for rolling KV upgrade. This means that users who already migrated to the KV ref-store (versions 0.80.0 and above) no longer have to pass through specific versions for migration. +This includes ACL migration which was introduced in lakeFS version 0.98.0. +Running lakefs migrate up on the latest lakeFS version will perform all the necessary migrations up to that point.

+

+ + + lakeFS 0.80.0 or greater (KV Migration) + + +

+ + +

Starting with version 0.80.2, lakeFS has transitioned from using a PostgreSQL based database implementation to a Key-Value datastore interface supporting +multiple database implementations. More information can be found here.
+Users upgrading from a previous version of lakeFS must pass through the KV migration version (0.80.2) before upgrading to newer versions of lakeFS.

+ +
+

IMPORTANT: Pre Migrate Requirements

+
    +
  • Users using OS environment variables for database configuration must define the connection_string explicitly or as environment variable before proceeding with the migration.
  • +
  • Database storage free capacity of at least twice the amount of the currently used capacity
  • +
  • It is strongly recommended to perform these additional steps: +
      +
    • Commit all uncommitted data on branches
    • +
    • Create a snapshot of your database
    • +
    +
  • +
  • By default, old database tables are not being deleted by the migration process, and should be removed manually after a successful migration. +To enable table drop as part of the migration, set the database.drop_tables configuration param to true
  • +
+
+

+ + + Migration Steps + + +

+ +

For each lakeFS instance currently running with the database

+
    +
  1. Modify the database section under lakeFS configuration yaml: +
      +
    1. Add type field with "postgres" as value
    2. +
    3. Copy the current configuration parameters to a new section called postgres
    4. +
    + +
    ---
    +database:
    + type: "postgres"
    + connection_string: "postgres://localhost:5432/postgres?sslmode=disable"
    + max_open_connections: 20
    +   
    + postgres:
    +   connection_string: "postgres://localhost:5432/postgres?sslmode=disable"
    +   max_open_connections: 20
    +
    +
  2. +
  3. Stop all lakeFS instances
  4. +
  5. +

    Using the lakefs binary for the new version (0.80.2), run the following:

    + +
    lakefs migrate up
    +
    +
  6. +
  7. +

    lakeFS will run the migration process, which in the end should display the following message with no errors:

    + +
    time="2022-08-10T14:46:25Z" level=info msg="KV Migration took 717.629563ms" func="pkg/logging.(*logrusEntryWrapper).Infof" file="build/pkg/logging/logger.go:246" TempDir=/tmp/kv_migrate_2913402680
    +
    +
  8. +
  9. +

    It is now possible to remove the old database configuration. The updated configuration should look as such:

    + +
    ---
    +database:
    + type: "postgres"
    +   
    + postgres:
    +   connection_string: "postgres://localhost:5432/postgres?sslmode=disable"
    +   max_open_connections: 20
    +
    +
  10. +
  11. Deploy (or run) the new version of lakeFS.
  12. +
+

+ + + lakeFS 0.30.0 or greater + + +

+ + +

In case migration is required, you first need to stop the running lakeFS service. +Using the lakefs binary for the new version, run the following:

+ +
lakefs migrate up
+
+ +

Deploy (or run) the new version of lakeFS.

+ +

Note that an older version of lakeFS cannot run on a migrated database.

+

+ + + Prior to lakeFS 0.30.0 + + +

+ + +

Note: with lakeFS < 0.30.0, you should first upgrade to 0.30.0 following this guide. Then, proceed to upgrade to the newest version.

+ +

Starting version 0.30.0, lakeFS handles your committed metadata in a new way, which is more robust and has better performance. +To move your existing data, you will need to run the following upgrade commands.

+ +

Verify lakeFS version == 0.30.0 (can skip if using Docker)

+ +
lakefs --version
+
+ +

Migrate data from the previous format:

+ +
lakefs migrate db
+
+ +

Or migrate using Docker image:

+ +
docker run --rm -it -e LAKEFS_DATABASE_CONNECTION_STRING=<database connection string> treeverse/lakefs:rocks-migrate migrate db
+
+ +

Once migrated, it is possible to now use more recent lakeFS versions. Please refer to their release notes for more information on ugrading and usage).

+ +

If you want to start over, discarding your existing data, you need to explicitly state this in your lakeFS configuration file. +To do so, add the following to your configuration (relevant only for 0.30.0):

+ +
cataloger:
+  type: rocks
+
+

+ + + Data Migration for Version v0.50.0 + + +

+ + +

If you are using a version before 0.50.0, you must first perform the previous upgrade to that version. {: note: .note-warning }

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/howto/export.html b/v1.46/howto/export.html new file mode 100644 index 000000000..a0c1308ca --- /dev/null +++ b/v1.46/howto/export.html @@ -0,0 +1,1022 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Export Data | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Exporting Data + + +

+ +

The export operation copies all data from a given lakeFS commit to +a designated object store location.

+ +

For instance, the contents lakefs://example/main might be exported on +s3://company-bucket/example/latest. Clients entirely unaware of lakeFS could use that +base URL to access latest files on main. Clients aware of lakeFS can continue to use +the lakeFS S3 endpoint to access repository files on s3://example/main, as well as +other versions and uncommitted versions.

+ +

Possible use-cases:

+
    +
  1. External consumers of data don’t have access to your lakeFS installation.
  2. +
  3. Some data pipelines in the organization are not fully migrated to lakeFS.
  4. +
  5. You want to experiment with lakeFS as a side-by-side installation first.
  6. +
  7. Create copies of your data lake in other regions (taking into account read pricing).
  8. +
+ + +

+ + + Exporting Data With Spark + + +

+ +

+ + + Using spark-submit + + +

+ +

You can use the export main in three different modes:

+ +
    +
  1. +

    Export all the objects from branch example-branch on example-repo repository to S3 location s3://example-bucket/prefix/:

    + +
    .... example-repo s3://example-bucket/prefix/ --branch=example-branch
    +
    +
  2. +
  3. +

    Export all the objects from a commit c805e49bafb841a0875f49cd555b397340bbd9b8 on example-repo repository to S3 location s3://example-bucket/prefix/:

    + +
    .... example-repo s3://example-bucket/prefix/ --commit_id=c805e49bafb841a0875f49cd555b397340bbd9b8
    +
    +
  4. +
  5. +

    Export only the diff between branch example-branch and commit c805e49bafb841a0875f49cd555b397340bbd9b8 +on example-repo repository to S3 location s3://example-bucket/prefix/:

    + +
    .... example-repo s3://example-bucket/prefix/ --branch=example-branch --prev_commit_id=c805e49bafb841a0875f49cd555b397340bbd9b8
    +
    +
  6. +
+ +

The complete spark-submit command would look as follows:

+ +
spark-submit --conf spark.hadoop.lakefs.api.url=https://<LAKEFS_ENDPOINT>/api/v1 \
+  --conf spark.hadoop.lakefs.api.access_key=<LAKEFS_ACCESS_KEY_ID> \
+  --conf spark.hadoop.lakefs.api.secret_key=<LAKEFS_SECRET_ACCESS_KEY> \
+  --packages io.lakefs:lakefs-spark-client_2.12:0.14.1 \
+  --class io.treeverse.clients.Main export-app example-repo s3://example-bucket/prefix \
+  --branch=example-branch
+
+ +

The command assumes that the Spark cluster has permissions to write to s3://example-bucket/prefix. +Otherwise, add spark.hadoop.fs.s3a.access.key and spark.hadoop.fs.s3a.secret.key with the proper credentials.

+

+ + + Networking + + +

+ + +

Spark export communicates with the lakeFS server. Very large repositories +may require increasing a read timeout. If you run into timeout errors +during communication from the Spark job to lakeFS consider increasing these +timeouts:

+ +
    +
  • Add -c spark.hadoop.lakefs.api.read.timeout_seconds=TIMEOUT_IN_SECONDS +(default 10) to allow lakeFS more time to respond to requests.
  • +
  • Add -c +spark.hadoop.lakefs.api.connection.timeout_seconds=TIMEOUT_IN_SECONDS +(default 10) to wait longer for lakeFS to accept connections.
  • +
+

+ + + Using custom code (Notebook/Spark) + + +

+ + +

Set up lakeFS Spark metadata client with the endpoint and credentials as instructed in the previous page.

+ +

The client exposes the Exporter object with three export options:

+ +
  1. +Export *all* the objects at the HEAD of a given branch. Does not include +files that were added to that branch but were not committed. + +
    + +
    +
    exportAllFromBranch(branch: String)
    +
    +
    +
    +
  2. +
  3. Export ALL objects from a commit: + +
    + +
    +
    exportAllFromCommit(commitID: String)
    +
    +
    +
    +
  4. +
  5. Export just the diff between a commit and the HEAD of a branch. + + This is an ideal option for continuous exports of a branch since it will change only the files + that have been changed since the previous commit. + +
    + +
    +
    exportFrom(branch: String, prevCommitID: String)
    +
    +
    +
    +
  6. +
+

+ + + Success/Failure Indications + + +

+ + +

When the Spark export operation ends, an additional status file will be added to the root +object storage destination. +If all files were exported successfully, the file path will be of the form: EXPORT_<commitID>_<ISO-8601-time-UTC>_SUCCESS. +For failures: the form will beEXPORT_<commitID>_<ISO-8601-time-UTC>_FAILURE, and the file will include a log of the failed files operations.

+

+ + + Export Rounds (Spark success files) + + +

+ +

Some files should be exported before others, e.g., a Spark _SUCCESS file exported before other files under +the same prefix might send the wrong indication.

+ +

The export operation may contain several rounds within the same export. +A failing round will stop the export of all the files of the next rounds.

+ +

By default, lakeFS will use the SparkFilter and have 2 rounds for each export. +The first round will export any non-Spark _SUCCESS files. Second round will export all Spark’s _SUCCESS files. +You may override the default behavior by passing a custom filter to the Exporter.

+

+ + + Example + + +

+ + +
  1. First configure the `Exporter` instance: + +
    + +
    +
    import io.treeverse.clients.{ApiClient, Exporter}
    +import org.apache.spark.sql.SparkSession
    +
    +val endpoint = "http://<LAKEFS_ENDPOINT>/api/v1"
    +val accessKey = "<LAKEFS_ACCESS_KEY_ID>"
    +val secretKey = "<LAKEFS_SECRET_ACCESS_KEY>"
    +
    +val repo = "example-repo"
    +
    +val spark = SparkSession.builder().appName("I can export").master("local").getOrCreate()
    +val sc = spark.sparkContext
    +sc.hadoopConfiguration.set("lakefs.api.url", endpoint)
    +sc.hadoopConfiguration.set("lakefs.api.access_key", accessKey)
    +sc.hadoopConfiguration.set("lakefs.api.secret_key", secretKey)
    +
    +// Add any required spark context configuration for s3
    +val rootLocation = "s3://company-bucket/example/latest"
    +
    +val apiClient = new ApiClient(endpoint, accessKey, secretKey)
    +val exporter = new Exporter(spark, apiClient, repo, rootLocation)
    +
    +
    +
  2. +
  3. Now you can export all objects from `main` branch to `s3://company-bucket/example/latest`: + +
    + +
    +
    val branch = "main"
    +exporter.exportAllFromBranch(branch)
    +
    +
    +
  4. +
  5. Assuming a previous successful export on commit `f3c450d8cd0e84ac67e7bc1c5dcde9bef82d8ba7`, +you can alternatively export just the difference between `main` branch and the commit: + +
    + +
    +
    val branch = "main"
    +val commit = "f3c450d8cd0e84ac67e7bc1c5dcde9bef82d8ba7"
    +exporter.exportFrom(branch, commit)
    +
    +
    +
+

+ + + Exporting Data with Docker + + +

+ + +

This option is recommended if you don’t have Spark at your tool-set. +It doesn’t support distribution across machines, therefore may have a lower performance. +Using this method, you can export data from lakeFS to S3 using the export options (in a similar way to the Spark export):

+ +
    +
  1. +

    Export all objects from a branch example-branch on example-repo repository to S3 location s3://destination-bucket/prefix/:

    + +
    .... example-repo s3://destination-bucket/prefix/ --branch="example-branch"
    +
    +
  2. +
  3. +

    Export all objects from a commit c805e49bafb841a0875f49cd555b397340bbd9b8 on example-repo repository to S3 location s3://destination-bucket/prefix/:

    + +
    .... example-repo s3://destination-bucket/prefix/ --commit_id=c805e49bafb841a0875f49cd555b397340bbd9b8
    +
    +
  4. +
  5. +

    Export only the diff between branch example-branch and commit c805e49bafb841a0875f49cd555b397340bbd9b8 +on example-repo repository to S3 location s3://destination-bucket/prefix/:

    + +
    .... example-repo s3://destination-bucket/prefix/ --branch="example-branch" --prev_commit_id=c805e49bafb841a0875f49cd555b397340bbd9b8
    +
    +
  6. +
+ +

You will need to add the relevant environment variables. +The complete docker run command would look like:

+ +
docker run \
+    -e LAKEFS_ACCESS_KEY_ID=XXX -e LAKEFS_SECRET_ACCESS_KEY=YYY \
+   -e LAKEFS_ENDPOINT=https://<LAKEFS_ENDPOINT>/ \
+   -e AWS_ACCESS_KEY_ID=XXX -e AWS_SECRET_ACCESS_KEY=YYY \
+   treeverse/lakefs-rclone-export:latest \
+      example-repo \
+      s3://destination-bucket/prefix/ \
+      --branch="example-branch"
+
+ +

Note: This feature uses rclone, +and specifically rclone sync. This can change the destination path, therefore the s3 destination location must be designated to lakeFS export.

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/howto/garbage-collection-index.html b/v1.46/howto/garbage-collection-index.html new file mode 100644 index 000000000..45b0557bc --- /dev/null +++ b/v1.46/howto/garbage-collection-index.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/howto/garbage-collection.html b/v1.46/howto/garbage-collection.html new file mode 100644 index 000000000..45b0557bc --- /dev/null +++ b/v1.46/howto/garbage-collection.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/howto/garbage-collection/committed.html b/v1.46/howto/garbage-collection/committed.html new file mode 100644 index 000000000..45b0557bc --- /dev/null +++ b/v1.46/howto/garbage-collection/committed.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/howto/garbage-collection/gc.html b/v1.46/howto/garbage-collection/gc.html new file mode 100644 index 000000000..0277223b2 --- /dev/null +++ b/v1.46/howto/garbage-collection/gc.html @@ -0,0 +1,1005 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Garbage Collection | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Garbage Collection + + +

+ + +

lakeFS Cloud users enjoy a managed garbage collection service, and do not need to run this Spark program.

+ +

By default, lakeFS keeps all your objects forever. This allows you to travel back in time to previous versions of your data. +However, sometimes you may want to remove the objects from the underlying storage completely. +Reasons for this include cost-reduction and privacy policies.

+ +

The garbage collection (GC) job is a Spark program that removes the following from the underlying storage:

+
    +
  1. Committed objects that have been deleted (or replaced) in lakeFS, and are considered expired according to rules you define.
  2. +
  3. Uncommitted objects that are no longer accessible +
      +
    • For example, objects deleted before ever being committed.
    • +
    +
  4. +
+ + +

+ + + Garbage collection rules + + +

+ + +

These rules only apply to objects that have been committed at some point. +Without retention rules, only inaccessible uncommitted objects will be removed by the job.

+ +

Garbage collection rules determine for how long an object is kept in the storage after it is deleted (or replaced) in lakeFS. +For every branch, the GC job retains deleted objects for the number of days defined for the branch. +In the absence of a branch-specific rule, the default rule for the repository is used. +If an object is present in more than one branch ancestry, it is removed only after the retention period has ended for +all relevant branches.

+ +

Example GC rules for a repository:

+
{
+  "default_retention_days": 14,
+  "branches": [
+    {"branch_id": "main", "retention_days": 21},
+    {"branch_id": "dev", "retention_days": 7}
+  ]
+}
+
+ +

In the above example, objects will be retained for 14 days after deletion by default. +However, if present in the branch main, objects will be retained for 21 days. +Objects present only in the dev branch will be retained for 7 days after they are deleted.

+

+ + + How to configure garbage collection rules + + +

+ + +

To define retention rules, either use the lakectl command, the lakeFS web UI, or API:

+ +
+ +
+ +

Create a JSON file with your GC rules:

+ +
cat <<EOT >> example_repo_gc_rules.json
+{
+  "default_retention_days": 14,
+  "branches": [
+    {"branch_id": "main", "retention_days": 21},
+    {"branch_id": "dev", "retention_days": 7}
+  ]
+}
+EOT
+
+ +

Set the GC rules using lakectl:

+
lakectl gc set-config lakefs://example-repo -f example_repo_gc_rules.json 
+
+ +
+
+

From the lakeFS web UI:

+ +
    +
  1. Navigate to the main page of your repository.
  2. +
  3. Go to Settings -> Garbage Collection.
  4. +
  5. Click Edit policy and paste your GC rule into the text box as a JSON.
  6. +
  7. Save your changes.
  8. +
+ +

GC Rules From UI

+
+
+

+ + + How to run the garbage collection job + + +

+ + +

To run the job, use the following spark-submit command (or using your preferred method of running Spark programs).

+ +
+ +
+
spark-submit --class io.treeverse.gc.GarbageCollection \
+  --packages org.apache.hadoop:hadoop-aws:2.7.7 \
+  -c spark.hadoop.lakefs.api.url=https://lakefs.example.com:8000/api/v1  \
+  -c spark.hadoop.lakefs.api.access_key=<LAKEFS_ACCESS_KEY> \
+  -c spark.hadoop.lakefs.api.secret_key=<LAKEFS_SECRET_KEY> \
+  -c spark.hadoop.fs.s3a.access.key=<S3_ACCESS_KEY> \
+  -c spark.hadoop.fs.s3a.secret.key=<S3_SECRET_KEY> \
+  http://treeverse-clients-us-east.s3-website-us-east-1.amazonaws.com/lakefs-spark-client/0.14.1/lakefs-spark-client-assembly-0.14.1.jar \
+  example-repo us-east-1
+
+
+
+ +

If you want to access your storage using the account key:

+ +
spark-submit --class io.treeverse.gc.GarbageCollection \
+  --packages org.apache.hadoop:hadoop-aws:3.2.1 \
+  -c spark.hadoop.lakefs.api.url=https://lakefs.example.com:8000/api/v1  \
+  -c spark.hadoop.lakefs.api.access_key=<LAKEFS_ACCESS_KEY> \
+  -c spark.hadoop.lakefs.api.secret_key=<LAKEFS_SECRET_KEY> \
+  -c spark.hadoop.fs.azure.account.key.<AZURE_STORAGE_ACCOUNT>.dfs.core.windows.net=<AZURE_STORAGE_ACCESS_KEY> \
+  http://treeverse-clients-us-east.s3-website-us-east-1.amazonaws.com/lakefs-spark-client/0.14.1/lakefs-spark-client-assembly-0.14.1.jar \
+  example-repo
+
+ +

Or, if you want to access your storage using an Azure service principal:

+ +
spark-submit --class io.treeverse.gc.GarbageCollection \
+  --packages org.apache.hadoop:hadoop-aws:3.2.1 \
+  -c spark.hadoop.lakefs.api.url=https://lakefs.example.com:8000/api/v1  \
+  -c spark.hadoop.lakefs.api.access_key=<LAKEFS_ACCESS_KEY> \
+  -c spark.hadoop.lakefs.api.secret_key=<LAKEFS_SECRET_KEY> \
+  -c spark.hadoop.fs.azure.account.auth.type.<AZURE_STORAGE_ACCOUNT>.dfs.core.windows.net=OAuth \
+  -c spark.hadoop.fs.azure.account.oauth.provider.type.<AZURE_STORAGE_ACCOUNT>.dfs.core.windows.net=org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider \
+  -c spark.hadoop.fs.azure.account.oauth2.client.id.<AZURE_STORAGE_ACCOUNT>.dfs.core.windows.net=<application-id> \
+  -c spark.hadoop.fs.azure.account.oauth2.client.secret.<AZURE_STORAGE_ACCOUNT>.dfs.core.windows.net=<service-credential-key> \
+  -c spark.hadoop.fs.azure.account.oauth2.client.endpoint.<AZURE_STORAGE_ACCOUNT>.dfs.core.windows.net=https://login.microsoftonline.com/<directory-id>/oauth2/token \
+  http://treeverse-clients-us-east.s3-website-us-east-1.amazonaws.com/lakefs-spark-client/0.14.1/lakefs-spark-client-assembly-0.14.1.jar \
+  example-repo
+
+ +

Notes:

+
    +
  • On Azure, GC was tested only on Spark 3.3.0, but may work with other Spark and Hadoop versions.
  • +
  • In case you don’t have hadoop-azure package as part of your environment, you should add the package to your spark-submit with --packages org.apache.hadoop:hadoop-azure:3.2.1
  • +
  • For GC to work on Azure blob, soft delete should be disabled.
  • +
+
+ +
+

⚠️ At the moment, only the “mark” phase of the Garbage Collection is supported for GCP. +That is, this program will output a list of expired objects, and you will have to delete them manually. +We have concrete plans to extend this support to actually delete the objects.

+ +
spark-submit --class  io.treeverse.gc.GarbageCollection \
+  --jars https://storage.googleapis.com/hadoop-lib/gcs/gcs-connector-hadoop3-latest.jar \
+  -c spark.hadoop.lakefs.api.url=https://lakefs.example.com:8000/api/v1  \
+  -c spark.hadoop.lakefs.api.access_key=<LAKEFS_ACCESS_KEY> \
+  -c spark.hadoop.lakefs.api.secret_key=<LAKEFS_SECRET_KEY> \
+  -c spark.hadoop.google.cloud.auth.service.account.enable=true \
+  -c spark.hadoop.google.cloud.auth.service.account.json.keyfile=<PATH_TO_JSON_KEYFILE> \
+  -c spark.hadoop.fs.gs.project.id=<GCP_PROJECT_ID> \
+  -c spark.hadoop.fs.gs.impl=com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem \
+  -c spark.hadoop.fs.AbstractFileSystem.gs.impl=com.google.cloud.hadoop.fs.gcs.GoogleHadoopFS \
+  -c spark.hadoop.lakefs.gc.do_sweep=false  \
+  http://treeverse-clients-us-east.s3-website-us-east-1.amazonaws.com/lakefs-spark-client/0.14.1/lakefs-spark-client-assembly-0.14.1.jar \
+  example-repo
+
+ +

This program will not delete anything. +Instead, it will find all the objects that are safe to delete and save a list containing all their keys, in Parquet format. +The list will then be found under the path:

+
gs://<STORAGE_NAMESPACE>/_lakefs/retention/gc/unified/<RUN_ID>/deleted/
+
+ +

Note that this is a path in your Google Storage bucket, and not in your lakeFS repository. +It is now safe to remove the objects that appear in this list directly from the storage.

+ +
+
+ +

You will find the list of objects removed by the job in the storage +namespace of the repository. It is saved in Parquet format under _lakefs/retention/gc/unified/<RUN_ID>/deleted/.

+

+ + + Mark and Sweep stages + + +

+ + +

You can break the job into two stages:

+
    +
  • Mark: find objects to remove, without actually removing them.
  • +
  • Sweep: remove the objects.
  • +
+

+ + + Mark-only mode + + +

+ + +

To make GC run the mark stage only, add the following to your spark-submit command:

+
spark.hadoop.lakefs.gc.do_sweep=false
+
+ +

In mark-only mode, GC will write the keys of the expired objects under: <REPOSITORY_STORAGE_NAMESPACE>/_lakefs/retention/gc/unified/<MARK_ID>/. +MARK_ID is generated by the job. You can find it in the driver’s output:

+ +
Report for mark_id=gmc6523jatlleurvdm30 path=s3a://example-bucket/_lakefs/retention/gc/unified/gmc6523jatlleurvdm30
+
+

+ + + Sweep-only mode + + +

+ + +

To make GC run the sweep stage only, add the following properties to your spark-submit command:

+
spark.hadoop.lakefs.gc.do_mark=false
+spark.hadoop.lakefs.gc.mark_id=<MARK_ID> # Replace <MARK_ID> with the identifier you obtained from a previous mark-only run
+
+

+ + + Garbage collection notes + + +

+ + +
    +
  1. +

    In order for an object to be removed, it must not exist on the HEAD of any branch. +You should remove stale branches to prevent them from retaining old objects. +For example, consider a branch that has been merged to main and has become stale. +An object which is later deleted from main will always be present in the stale branch, preventing it from being removed.

    +
  2. +
  3. +

    lakeFS will never delete objects outside your repository’s storage namespace. +In particular, objects that were imported using lakectl import or the UI import wizard will not be affected by GC jobs.

    +
  4. +
  5. +

    In cases where deleted objects are brought back to life while a GC job is running (for example, by reverting a commit), +the objects may or may not be deleted.

    +
  6. +
  7. +

    Garbage collection does not remove any commits: you will still be able to use commits containing removed objects, +but trying to read these objects from lakeFS will result in a 410 Gone HTTP status.

    +
  8. +
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/howto/garbage-collection/index.html b/v1.46/howto/garbage-collection/index.html new file mode 100644 index 000000000..45b0557bc --- /dev/null +++ b/v1.46/howto/garbage-collection/index.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/howto/garbage-collection/internals.html b/v1.46/howto/garbage-collection/internals.html new file mode 100644 index 000000000..45b0557bc --- /dev/null +++ b/v1.46/howto/garbage-collection/internals.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/howto/garbage-collection/managed-gc.html b/v1.46/howto/garbage-collection/managed-gc.html new file mode 100644 index 000000000..7c5eb9c04 --- /dev/null +++ b/v1.46/howto/garbage-collection/managed-gc.html @@ -0,0 +1,755 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Managed Garbage Collection | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Managed Garbage Collection + + +

+ +

lakeFS Cloud

+ +
+

Managed GC is only available for lakeFS Cloud. If you are using the self-managed lakeFS, garbage collection is available to run manually.

+
+

+ + + Benefits of using managed GC + + +

+ +
    +
  • The quick and safe way to delete your unnecessary objects
  • +
  • No operational overhead
  • +
  • SLA for when your objects are deleted
  • +
  • Support from the Treeverse team
  • +
+

+ + + How it works + + +

+ +

Similarly to the self-managed lakeFS, managed GC uses garbage collection rules to determine which objects to delete. +However, it uses our super-fast and efficient engine to detect stale objects and branches (depends on your configuration) and prioritize them for deletion.

+

+ + + Setting up + + +

+ +

Enable managed GC through the lakeFS Cloud onboarding setup wizard. +This will create additional cloud resources for us to use and have access to delete those objects.

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/howto/garbage-collection/standalone-gc.html b/v1.46/howto/garbage-collection/standalone-gc.html new file mode 100644 index 000000000..ee4c03283 --- /dev/null +++ b/v1.46/howto/garbage-collection/standalone-gc.html @@ -0,0 +1,1299 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Standalone Garbage Collection | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Standalone Garbage Collection + + +

+ +

lakeFS Enterprise

+ +

experimental

+ +
+

Standalone GC is only available for lakeFS Enterprise.

+
+ +
+

Standalone GC is experimental and offers limited capabilities compared to the Spark-backed GC. For large scale environments, we recommend using the Spark-backed solution.

+
+ + +

+ + + What is Standalone GC? + + +

+ + +

Standalone GC is a simplified version of the Spark-backed GC that runs without any external dependencies, delivered as a standalone +docker image. It supports S3 and self-managed S3 compatible storages such as MinIO.

+

+ + + Limitations + + +

+ + +
    +
  1. No horizontal scalability: Only a single instance of lakefs-sgc can operate on a given repository at a time.
  2. +
  3. Mark phase only: Standalone GC supports only the mark phase, identifying objects for deletion but not executing +the sweep stage to delete them. It functions similarly to the GC’s mark-only mode.
  4. +
  5. Only supports AWS S3 and S3-compatible object storages. However, supporting Azure blob and GCS are in our roadmap.
  6. +
+

+ + + Installation + + +

+ +

+ + + Step 1: Obtain Dockerhub token + + +

+ +

+ + + lakeFS Enterprise customers + + +

+ + +

Contact your account manager to verify that Standalone GC is included in your license. Then use your dockerhub token for +the externallakefs user.

+

+ + + New to lakeFS Enterprise + + +

+ + +

Please contact us to get trial access to Standalone GC.

+

+ + + Step 2: Login to Dockerhub with this token + + +

+ + +
docker login -u <token>
+
+

+ + + Step 3: Download the docker image + + +

+ + +

Download the image from the lakefs-sgc repository:

+
docker pull treeverse/lakefs-sgc:<tag>
+
+

+ + + Setup + + +

+ +

+ + + Permissions + + +

+ + +

To run lakefs-sgc, you need both AWS (or S3-compatible) storage and lakeFS user permissions as outlined below:

+

+ + + Storage permissions + + +

+ + +

The minimum required permissions for AWS or S3-compatible storage are:

+
{
+  "Version": "2012-10-17",
+  "Statement": [
+    {
+      "Effect": "Allow",
+      "Action": [
+        "s3:PutObject",
+        "s3:GetObject"
+      ],
+      "Resource": [
+        "arn:aws:s3:::some-bucket/some/prefix/*"
+      ]
+    },
+    {
+      "Effect": "Allow",
+      "Action": [
+        "s3:ListBucket"
+      ],
+      "Resource": [
+        "arn:aws:s3:::some-bucket"
+      ]
+    },
+    {
+      "Effect": "Allow",
+      "Action": [
+        "s3:ListAllMyBuckets"
+      ],
+      "Resource": [
+        "arn:aws:s3:::*"
+      ]
+    }
+  ]
+}
+
+

In this example, the repository storage namespace is s3://some-bucket/some/prefix.

+

+ + + lakeFS permissions + + +

+ + +

The minimum required permissions for lakeFS are:

+
{
+  "statement": [
+    {
+      "action": [
+        "retention:PrepareGarbageCollectionCommits",
+        "retention:PrepareGarbageCollectionUncommitted",
+        "fs:ReadConfig",
+        "fs:ReadRepository",
+        "fs:ListObjects",
+        "fs:ReadConfig"
+      ],
+      "effect": "allow",
+      "resource": "arn:lakefs:fs:::repository/<repository>"
+    }
+  ]
+}
+
+

+ + + Credentials + + +

+ + +

Standalone GC supports S3 and S3-compatible storage backends and relies on AWS credentials for authentication. To set up +credentials on the lakefs-sgc docker container, follow AWS guidelines, such as those outlined in this guide. +For details on how to pass credentials to lakefs-sgc, refer to the instructions in How to Run Standalone GC.

+

+ + + Using S3-compatible clients + + +

+ + +

lakefs-sgc leverages AWS credentials to work seamlessly with S3-compatible storage solutions, such as MinIO. +Follow the steps below to set up and use lakefs-sgc with an S3-compatible client:

+ +
    +
  1. Add a profile to your ~/.aws/config file: +
    [profile minio]
    +region = us-east-1
    +endpoint_url = <MinIO URL>
    +s3 =
    +    signature_version = s3v4
    +
    +
  2. +
  3. Add an access and secret keys to your ~/.aws/credentials file: +
    [minio]
    +aws_access_key_id     = <MinIO access key>
    +aws_secret_access_key = <MinIO secret key>
    +
    +
  4. +
  5. Run the lakefs-sgc docker image and pass it the minio profile - see example below.
  6. +
+

+ + + Configuration + + +

+ + +

The following configuration keys are available:

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
KeyDescriptionDefault valuePossible values
logging.formatLogs output format“text”“text”,”json”
logging.levelLogs level“info”“error”,”warn”,info”,”debug”,”trace”
logging.outputWhere to output the logs to”-“”-“ (stdout), “=” (stderr), or any string for file path
cache_dirDirectory to use for caching data during run~/.lakefs-sgc/datastring
aws.max_page_sizeMax number of items per page when listing objects in AWS1000number
aws.s3.addressing_path_styleWhether or not to use path-style when reading objects from AWStrueboolean
lakefs.endpoint_urlThe URL to the lakeFS installation - should end with /api/v1NOT SETURL
lakefs.access_key_idAccess key to the lakeFS installationNOT SETstring
lakefs.secret_access_keySecret access key to the lakeFS installationNOT SETstring
+ +

These keys can be provided in the following ways:

+
    +
  1. Config file: Create a YAML file with the keys, each . is a new nesting level.
    +For example, logging.level will be: +
    logging:
    +  level: <value> # info,debug...
    +
    +

    Then, pass it to the program using the --config path/to/config.yaml argument.

    +
  2. +
  3. Environment variables: by setting LAKEFS_SGC_<KEY>, with uppercase letters and .s converted to _s.
    +For example logging.level will be: +
    export LAKEFS_SGC_LOGGING_LEVEL=info
    +
    +
  4. +
+ +

Example (minimalistic) config file:

+
logging:
+  level: debug
+lakefs:
+  endpoint_url: https://your.url/api/v1
+  access_key_id: <lakeFS access key>
+  secret_access_key: <lakeFS secret key>
+
+

+ + + How to Run Standalone GC? + + +

+ +

+ + + Command line reference + + +

+ +

+ + + Flags + + +

+ +
    +
  • -c, --config: config file to use (default is $HOME/.lakefs-sgc.yaml)
  • +
+

+ + + Commands + + +

+ +

run

+ +

Usage:
+lakefs-sgc run <repository>

+ +

Flags:

+
    +
  • --cache-dir: directory to cache read files (default is $HOME/.lakefs-sgc/data/)
  • +
  • --parallelism: number of parallel downloads for metadata files (default 10)
  • +
  • --presign: use pre-signed URLs when downloading/uploading data (recommended) (default true)
  • +
+ +

To run standalone GC, choose the method you prefer to pass AWS credentials and invoke the commands below.

+

+ + + Directly passing in credentials parsed from ~/.aws/credentials + + +

+ + +
docker run \
+-e AWS_REGION=<region> \
+-e AWS_SESSION_TOKEN="$(grep 'aws_session_token' ~/.aws/credentials | awk -F' = ' '{print $2}')" \
+-e AWS_ACCESS_KEY_ID="$(grep 'aws_access_key_id' ~/.aws/credentials | awk -F' = ' '{print $2}')" \
+-e AWS_SECRET_ACCESS_KEY="$(grep 'aws_secret_access_key' ~/.aws/credentials | awk -F' = ' '{print $2}')" \
+-e LAKEFS_SGC_LAKEFS_ENDPOINT_URL=<lakefs endpoint URL> \
+-e LAKEFS_SGC_LAKEFS_ACCESS_KEY_ID=<lakefs accesss key> \
+-e LAKEFS_SGC_LAKEFS_SECRET_ACCESS_KEY=<lakefs secret key> \
+-e LAKEFS_SGC_LOGGING_LEVEL=debug \
+treeverse/lakefs-sgc:<tag> run <repository>
+
+

+ + + Mounting the ~/.aws directory + + +

+ + +

When working with S3-compatible clients, it’s often more convenient to mount the ~/.aws directory and pass in the desired profile.

+ +

First, change the permissions for ~/.aws/* to allow the docker container to read this directory:

+
chmod 644 ~/.aws/*
+
+ +

Then, run the docker image and mount ~/.aws to the lakefs-sgc home directory on the docker container:

+
docker run \
+--network=host \
+-v ~/.aws:/home/lakefs-sgc/.aws \
+-e AWS_REGION=us-east-1 \
+-e AWS_PROFILE=<profile> \
+-e LAKEFS_SGC_LAKEFS_ENDPOINT_URL=<lakefs endpoint URL> \
+-e LAKEFS_SGC_LAKEFS_ACCESS_KEY_ID=<lakefs accesss key> \
+-e LAKEFS_SGC_LAKEFS_SECRET_ACCESS_KEY=<lakefs secret key> \
+-e LAKEFS_SGC_LOGGING_LEVEL=debug \
+treeverse/lakefs-sgc:<tag> run <repository>
+
+

+ + + Get the List of Objects Marked for Deletion + + +

+ + +

lakefs-sgc will write its reports to <REPOSITORY_STORAGE_NAMESPACE>/_lakefs/retention/gc/reports/<RUN_ID>/.
+RUN_ID is generated during runtime by the Standalone GC. You can find it in the logs:

+
"Marking objects for deletion" ... run_id=gcoca17haabs73f2gtq0
+
+ +

In this prefix, you’ll find 2 objects:

+
    +
  • deleted.csv - Containing all marked objects in a CSV containing one address column. Example: +
     address
    + "data/gcnobu7n2efc74lfa5ug/csfnri7n2efc74lfa69g,_e7P9j-1ahTXtofw7tWwJUIhTfL0rEs_dvBrClzc_QE"
    + "data/gcnobu7n2efc74lfa5ug/csfnri7n2efc74lfa78g,mKZnS-5YbLzmK0pKsGGimdxxBlt8QZzCyw1QeQrFvFE"
    + ...
    +
    +
  • +
  • summary.json - A small json summarizing the GC run. Example: +
     {
    +     "run_id": "gcoca17haabs73f2gtq0",
    +     "success": true,
    +     "first_slice": "gcss5tpsrurs73cqi6e0",
    +     "start_time": "2024-10-27T13:19:26.890099059Z",
    +     "cutoff_time": "2024-10-27T07:19:26.890099059Z",
    +     "num_deleted_objects": 33000
    + }
    +
    +
  • +
+

+ + + Delete marked objects + + +

+ + +

We recommend starting by backing up the marked objects to a different bucket before deleting them. After ensuring the +backup is complete, you can proceed to delete the objects directly from the backup location.

+ +

Use the following script to backup marked objects to another bucket:

+
# Update these variables with your actual values
+storage_ns=<storage namespace (s3://...)>
+output_bucket=<output bucket (s3://...)>
+run_id=<GC run id>
+
+# Download the CSV file
+aws s3 cp "$storage_ns/_lakefs/retention/gc/reports/$run_id/deleted.csv" "./run_id-$run_id.csv"
+
+# Move all addresses to the output bucket under the "run_id=$run_id" prefix
+cat run_id-$run_id.csv | tail -n +2 | xargs -I {} aws s3 mv "$storage_ns/{}" "$output_bucket/run_id=$run_id/"
+
+ +

To delete the marked objects, use the following script:

+
# Update these variables with your actual values
+output_bucket=<output bucket (s3://...)>
+run_id=<GC run id>
+
+aws s3 rm $output_bucket/run_id=$run_id --recursive
+
+ +
+

Tip: Remember to periodically delete the backups to actually reduce storage costs.

+
+

+ + + Lab tests + + +

+ + +

Standalone GC was tested on the lakeFS setup below.

+

+ + + Repository spec + + +

+ + +
    +
  • 100k objects
  • +
  • 250 commits
  • +
  • 100 branches
  • +
+

+ + + Machine spec + + +

+ + +
    +
  • 4GiB RAM
  • +
  • 8 CPUs
  • +
+

+ + + Testing results + + +

+ + +
    +
  • Time: < 5m
  • +
  • Disk space: 123MB
  • +
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/howto/garbage-collection/uncommitted.html b/v1.46/howto/garbage-collection/uncommitted.html new file mode 100644 index 000000000..45b0557bc --- /dev/null +++ b/v1.46/howto/garbage-collection/uncommitted.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/howto/hooks/airflow.html b/v1.46/howto/hooks/airflow.html new file mode 100644 index 000000000..bfa2e3479 --- /dev/null +++ b/v1.46/howto/hooks/airflow.html @@ -0,0 +1,845 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Airflow Hooks | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Airflow Hooks + + +

+ + +
+

+ + + Table of contents + + +

+ + +
    +
  1. Action file Airflow hook properties
  2. +
  3. Hook Record in configuration field
  4. +
+ +
+ +

Airflow Hook triggers a DAG run in an Airflow installation using Airflow’s REST API. +The hook run succeeds if the DAG was triggered, and fails otherwise.

+

+ + + Action file Airflow hook properties + + +

+ + +

See the Action configuration for overall configuration schema and details.

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyDescriptionData TypeExampleRequiredEnvironment Variables Supported
urlThe URL of the Airflow instanceStringhttp://localhost:8080yesno
dag_idThe DAG to triggerStringexample_dagyesno
usernameThe name of the Airflow user performing the requestStringadminyesno
passwordThe password of the Airflow user performing the requestStringadminyesyes
dag_confDAG run configuration that will be passed as isJSON nono
wait_for_dagWait for DAG run to complete and reflect state (default: false)Boolean nono
timeoutTime to wait for the DAG run to complete (default: 1m)String (golang’s Duration representation) nono
+ +

Example:

+
...
+hooks:
+  - id: trigger_my_dag
+    type: airflow
+    description: Trigger an example_dag
+    properties:
+       url: "http://localhost:8000"
+       dag_id: "example_dag"
+       username: "admin"
+       password: "{{ ENV.AIRFLOW_SECRET }}"
+       dag_conf:
+          some: "additional_conf"
+...
+
+

+ + + Hook Record in configuration field + + +

+ + +

lakeFS will add an entry to the Airflow request configuration property (conf) with the event that triggered the action.

+ +

The key of the record will be lakeFS_event and the value will match the one described here

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/howto/hooks/index.html b/v1.46/howto/hooks/index.html new file mode 100644 index 000000000..5e60b4ae5 --- /dev/null +++ b/v1.46/howto/hooks/index.html @@ -0,0 +1,1059 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Actions and Hooks | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Actions and Hooks in lakeFS + + +

+ + +
+

+ + + Table of contents + + +

+ + +
    +
  1. Overview
  2. +
  3. Configuration
  4. +
  5. Supported Events
  6. +
  7. Runs API & CLI
  8. +
  9. Result Files
  10. +
+ +
+ +

Like other version control systems, lakeFS allows you to configure Actions to trigger when predefined events occur. There are numerous uses for Actions, including:

+ +
    +
  1. Format Validator: +A webhook that checks new files to ensure they are of a set of allowed data formats.
  2. +
  3. Schema Validator: +A webhook that reads new Parquet and ORC files to ensure they don’t contain a block list of column names (or name prefixes). +This is useful for avoiding accidental PII exposure.
  4. +
  5. Integration with external systems: +Post-merge and post-commit hooks could be used to export metadata about the change to another system. A common example is exporting symlink.txt files that allow e.g. AWS Athena to read data from lakeFS.
  6. +
  7. Notifying downstream consumers: +Running a post-merge hook to trigger an Airflow DAG or to send a Webhook to an API, notifying it of the change that happened
  8. +
+ +

For step-by-step examples of hooks in action check out the lakeFS Quickstart and the lakeFS samples repository.

+ + +

+ + + Overview + + +

+ + +

An action defines one or more hooks to execute. lakeFS supports three types of hook:

+ +
    +
  1. Lua - uses an embedded Lua VM
  2. +
  3. Webhook - makes a REST call to an external URL
  4. +
  5. Airflow - triggers a DAG in Airflow
  6. +
+ +

“Before” hooks must run successfully before their action. If the hook fails, it aborts the action. Lua hooks and Webhooks are synchronous, and lakeFS waits for them to run to completion. Airflow hooks are asynchronous: lakeFS stops waiting as soon as Airflow accepts triggering the DAG.

+

+ + + Configuration + + +

+ + +

There are two parts to configuration an Action:

+ +
    +
  1. Create an Action file and upload it to the lakeFS repository
  2. +
  3. Configure the hook(s) that you specified in the Action file. How these are configured will depend on the type of hook.
  4. +
+

+ + + Action files + + +

+ + +

An Action is a list of Hooks with the same trigger configuration, i.e. an event will trigger all Hooks under an Action or none at all.

+ +

The Hooks under an Action are ordered and so is their execution.

+ +

Before each hook execution the if boolean expression is evaluated. The expression can use the functions success() and failure(), which return true if the hook’s actions succeeded or failed, respectively.

+ +

By default, when if is empty or omitted, the step will run only if no error occurred (the same as success()).

+

+ + + Action File schema + + +

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyDescriptionData TypeRequiredDefault Value
name Identifes the Action fileStringnoAction filename
on List of events that will trigger the hooksListyes 
on<event>.branches Glob pattern list of branches that triggers the hooksListnoNot applicable to Tag events. If empty, Action runs on all branches
hooks List of hooks to be executedListyes 
hook.id ID of the hook, must be unique within the action.Stringyes 
hook.type Type of the hook (types)Stringyes 
hook.description Description for the hookStringno 
hook.if Expression that will be evaluated before execute the hookStringnoNo value is the same as evaluate success()
hook.properties Hook’s specific configuration, see Lua, WebHook, and Airflow for detailsDictionarytrue 
+

+ + + Example Action File + + +

+ + +
name: Good files check
+description: set of checks to verify that branch is good
+on:
+  pre-commit:
+  pre-merge:
+    branches:
+      - main
+hooks:
+  - id: no_temp
+    type: webhook
+    description: checking no temporary files found
+    properties:
+      url: "https://example.com/webhook?notmp=true?t=1za2PbkZK1bd4prMuTDr6BeEQwWYcX2R"
+  - id: no_freeze
+    type: webhook
+    description: check production is not in dev freeze
+    properties:
+      url: "https://example.com/webhook?nofreeze=true?t=1za2PbkZK1bd4prMuTDr6BeEQwWYcX2R"
+  - id: alert
+    type: webhook
+    if: failure()
+    description: notify alert system when check failed
+    properties:
+       url: "https://example.com/alert"
+       query_params:
+          title: good files webhook failed
+  - id: notification
+    type: webhook
+    if: true
+    description: notify that will always run - no matter if one of the previous steps failed
+    properties:
+       url: "https://example.com/notification"
+       query_params:
+          title: good files completed
+
+ +

Note: lakeFS will validate action files only when an Event has occurred.
+Use lakectl actions validate <path> to validate your action files locally.

+

+ + + Uploading Action files + + +

+ + +

Action files should be uploaded with the prefix _lakefs_actions/ to the lakeFS repository. +When an actionable event (see Supported Events above) takes place, lakeFS will read all files with prefix _lakefs_actions/ +in the repository branch where the action occurred. +A failure to parse an Action file will result with a failing Run.

+ +

For example, lakeFS will search and execute all the matching Action files with the prefix lakefs://example-repo/feature-1/_lakefs_actions/ on:

+
    +
  1. Commit to feature-1 branch on example-repo repository.
  2. +
  3. Merge to main branch from feature-1 branch on repo1 repository.
  4. +
+

+ + + Supported Events + + +

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
EventDescription
pre-commitRuns when the commit occurs, before the commit is finalized
post-commitRuns after the commit is finalized
pre-mergeRuns on the source branch when the merge occurs, before the merge is finalized
post-mergeRuns on the merge result, after the merge is finalized
pre-create-branchRuns on the source branch prior to creating a new branch
post-create-branchRuns on the new branch after the branch was created
pre-delete-branchRuns prior to deleting a branch
post-delete-branchRuns after the branch was deleted
pre-create-tagRuns prior to creating a new tag
post-create-tagRuns after the tag was created
pre-delete-tagRuns prior to deleting a tag
post-delete-tagRuns after the tag was deleted
+ +

lakeFS Actions are handled per repository and cannot be shared between repositories. +A failure of any Hook under any Action of a pre-* event will result in aborting the lakeFS operation that is taking place. +Hook failures under any Action of a post-* event will not revert the operation.

+ +

Hooks are managed by Action files that are written to a prefix in the lakeFS repository. +This allows configuration-as-code inside lakeFS, where Action files are declarative and written in YAML.

+

+ + + Runs API & CLI + + +

+ + +

A Run is an instantiation of the repository’s Action files when the triggering event occurs. +For example, if your repository contains a pre-commit hook, every commit would generate a Run for that specific commit.

+ +

lakeFS will fetch, parse and filter the repository Action files and start to execute the Hooks under each Action. +All executed Hooks (each with hook_run_id) exist in the context of that Run (run_id).

+ +

The lakeFS API and lakectl expose the results of executions per repository, branch, commit, and specific Action. +The endpoint also allows to download the execution log of any executed Hook under each Run for observability.

+

+ + + Result Files + + +

+ + +

The metadata section of lakeFS repository with each Run contains two types of files:

+
    +
  1. _lakefs/actions/log/<runID>/<hookRunID>.log - Execution log of the specific Hook run.
  2. +
  3. _lakefs/actions/log/<runID>/run.manifest - Manifest with all Hooks execution for the run with their results and additional metadata.
  4. +
+ +

Note: Metadata section of a lakeFS repository is where lakeFS keeps its metadata, like commits and metaranges. +Metadata files stored in the metadata section aren’t accessible like user stored files.

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/howto/hooks/lua.html b/v1.46/howto/hooks/lua.html new file mode 100644 index 000000000..e5cf89422 --- /dev/null +++ b/v1.46/howto/hooks/lua.html @@ -0,0 +1,2458 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Lua Hooks | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Lua Hooks + + +

+ + +

lakeFS supports running hooks without relying on external components using an embedded Lua VM

+ +

Using Lua hooks, it is possible to pass a Lua script to be executed directly by the lakeFS server when an action occurs.

+ +

The Lua runtime embedded in lakeFS is limited for security reasons. It provides a narrow set of APIs and functions that by default do not allow:

+ +
    +
  1. Accessing any of the running lakeFS server’s environment
  2. +
  3. Accessing the local filesystem available the lakeFS process
  4. +
+ +
+

+ + + Table of contents + + +

+ + +
    +
  1. Action File Lua Hook Properties
  2. +
  3. Example Lua Hooks
  4. +
  5. Lua Library reference
  6. +
+ +
+

+ + + Action File Lua Hook Properties + + +

+ + +

See the Action configuration for overall configuration schema and details.

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyDescriptionData TypeRequiredDefault Value
argsOne or more arguments to pass to the hookDictionaryfalse 
scriptAn inline Lua scriptStringeither this or script_path must be specified 
script_pathThe path in lakeFS to a Lua scriptStringeither this or script must be specified 
+

+ + + Example Lua Hooks + + +

+ + +

For more examples and configuration samples, check out the examples/hooks/ directory in the lakeFS repository. You’ll also find step-by-step examples of hooks in action in the lakeFS samples repository.

+

+ + + Display information about an event + + +

+ + +

This example will print out a JSON representation of the event that occurred:

+ +
name: dump_all
+on:
+  post-commit:
+  post-merge:
+  post-create-tag:
+  post-create-branch:
+hooks:
+  - id: dump_event
+    type: lua
+    properties:
+      script: |
+        json = require("encoding/json")
+        print(json.marshal(action))
+
+

+ + + Ensure that a commit includes a mandatory metadata field + + +

+ + +

A more useful example: ensure every commit contains a required metadata field:

+ +
name: pre commit metadata field check
+on:
+pre-commit:
+    branches:
+    - main
+    - dev
+hooks:
+  - id: ensure_commit_metadata
+    type: lua
+    properties:
+      args:
+        notebook_url: {"pattern": "my-jupyter.example.com/.*"}
+        spark_version:  {}
+      script_path: lua_hooks/ensure_metadata_field.lua
+
+ +

Lua code at lakefs://repo/main/lua_hooks/ensure_metadata_field.lua:

+ +
regexp = require("regexp")
+for k, props in pairs(args) do
+  current_value = action.commit.metadata[k]
+  if current_value == nil then
+    error("missing mandatory metadata field: " .. k)
+  end
+  if props.pattern and not regexp.match(props.pattern, current_value) then
+    error("current value for commit metadata field " .. k .. " does not match pattern: " .. props.pattern .. " - got: " .. current_value)
+  end
+end
+
+ +

For more examples and configuration samples, check out the examples/hooks/ directory in the lakeFS repository.

+

+ + + Lua Library reference + + +

+ + +

The Lua runtime embedded in lakeFS is limited for security reasons. The provided APIs are shown below.

+

+ + + array(table) + + +

+ + +

Helper function to mark a table object as an array for the runtime by setting _is_array: true metatable field.

+

+ + + aws + + +

+ +

+ + + aws/s3_client + + +

+ +

S3 client library.

+ +
local aws = require("aws")
+-- pass valid AWS credentials
+local client = aws.s3_client("ACCESS_KEY_ID", "SECRET_ACCESS_KEY", "REGION")
+
+

+ + + aws/s3_client.get_object(bucket, key) + + +

+ + +

Returns the body (as a Lua string) of the requested object and a boolean value that is true if the requested object exists

+

+ + + aws/s3_client.put_object(bucket, key, value) + + +

+ + +

Sets the object at the given bucket and key to the value of the supplied value string

+

+ + + aws/s3_client.delete_object(bucket [, key]) + + +

+ + +

Deletes the object at the given key

+

+ + + aws/s3_client.list_objects(bucket [, prefix, continuation_token, delimiter]) + + +

+ + +

Returns a table of results containing the following structure:

+ +
    +
  • is_truncated: (boolean) whether there are more results to paginate through using the continuation token
  • +
  • next_continuation_token: (string) to pass in the next request to get the next page of results
  • +
  • results (table of tables) information about the objects (and prefixes if a delimiter is used)
  • +
+ +

a result could in one of the following structures

+ +
{
+   ["key"] = "a/common/prefix/",
+   ["type"] = "prefix"
+}
+
+ +

or:

+ +
{
+   ["key"] = "path/to/object",
+   ["type"] = "object",
+   ["etag"] = "etagString",
+   ["size"] = 1024,
+   ["last_modified"] = "2023-12-31T23:10:00Z"
+}
+
+

+ + + aws/s3_client.delete_recursive(bucket, prefix) + + +

+ + +

Deletes all objects under the given prefix

+

+ + + aws/glue + + +

+ + +

Glue client library.

+ +
local aws = require("aws")
+-- pass valid AWS credentials
+local glue = aws.glue_client("ACCESS_KEY_ID", "SECRET_ACCESS_KEY", "REGION")
+
+

+ + + aws/glue.create_database(database, options) + + +

+ + +

Create a new Database in Glue Catalog.

+ +

Parameters:

+ +
    +
  • database(string): Glue Database name.
  • +
  • options(table) (optional): +
      +
    • error_on_already_exists(boolean): Whether the call fail with an error if a DB with this name already exists
    • +
    • create_db_input(Table): a Table that is passed “as is” to AWS and is parallel to the AWS SDK CreateDatabaseInput
    • +
    +
  • +
+ +

Example:

+ +
local opts = {
+    error_on_already_exists = false,
+    create_db_input = {DatabaseInput = {Description = "Created via LakeFS Action"}, Tags = {Owner = "Joe"}}
+}
+glue.create_database(db, opts)
+
+

+ + + aws/glue.delete_database(database, catalog_id) + + +

+ + +

Delete an existing Database in Glue Catalog.

+ +

Parameters:

+ +
    +
  • database(string): Glue Database name.
  • +
  • catalog_id(string) (optional): Glue Catalog ID
  • +
+ +

Example:

+ +
glue.delete_database(db, "461129977393")
+
+

+ + + aws/glue.get_table(database, table [, catalog_id) + + +

+ + +

Describe a table from the Glue Catalog.

+ +

Example:

+ +
local table, exists = glue.get_table(db, table_name)
+if exists then
+  print(json.marshal(table))
+
+

+ + + aws/glue.create_table(database, table_input, [, catalog_id]) + + +

+ + +

Create a new table in Glue Catalog. +The table_input argument is a JSON that is passed “as is” to AWS and is parallel to the AWS SDK TableInput

+ +

Example:

+ +
local json = require("encoding/json")
+local input = {
+    Name = "my-table",
+    PartitionKeys = array(partitions),
+    -- etc...
+}
+local json_input = json.marshal(input)
+glue.create_table("my-db", table_input)
+
+

+ + + aws/glue.update_table(database, table_input, [, catalog_id, version_id, skip_archive]) + + +

+ + +

Update an existing Table in Glue Catalog. +The table_input is the same as the argument in glue.create_table function.

+

+ + + aws/glue.delete_table(database, table_input, [, catalog_id]) + + +

+ + +

Delete an existing Table in Glue Catalog.

+

+ + + azure + + +

+ +

+ + + azure/blob_client + + +

+ +

Azure blob client library.

+ +
local azure = require("azure")
+-- pass valid Azure credentials
+local client = azure.blob_client("AZURE_STORAGE_ACCOUNT", "AZURE_ACCESS_KEY")
+
+

+ + + azure/blob_client.get_object(path_uri) + + +

+ + +

Returns the body (as a Lua string) of the requested object and a boolean value that is true if the requested object exists
+path_uri - A valid Azure blob storage uri in the form of https://myaccount.blob.core.windows.net/mycontainer/myblob

+

+ + + azure/blob_client.put_object(path_uri, value) + + +

+ + +

Sets the object at the given bucket and key to the value of the supplied value string
+path_uri - A valid Azure blob storage uri in the form of https://myaccount.blob.core.windows.net/mycontainer/myblob

+

+ + + azure/blob_client.delete_object(path_uri) + + +

+ + +

Deletes the object at the given key
+path_uri - A valid Azure blob storage uri in the form of https://myaccount.blob.core.windows.net/mycontainer/myblob

+

+ + + azure/abfss_transform_path(path) + + +

+ + +

Transform an HTTPS Azure URL to a ABFSS scheme. Used by the delta_exporter function to support Azure Unity catalog use cases
+path - A valid Azure blob storage URL in the form of https://myaccount.blob.core.windows.net/mycontainer/myblob

+

+ + + crypto + + +

+ +

+ + + crypto/aes/encryptCBC(key, plaintext) + + +

+ + +

Returns a ciphertext for the aes encrypted text

+

+ + + crypto/aes/decryptCBC(key, ciphertext) + + +

+ + +

Returns the decrypted (plaintext) string for the encrypted ciphertext

+

+ + + crypto/hmac/sign_sha256(message, key) + + +

+ + +

Returns a SHA256 hmac signature for the given message with the supplied key (using the SHA256 hashing algorithm)

+

+ + + crypto/hmac/sign_sha1(message, key) + + +

+ + +

Returns a SHA1 hmac signature for the given message with the supplied key (using the SHA1 hashing algorithm)

+

+ + + crypto/md5/digest(data) + + +

+ + +

Returns the MD5 digest (string) of the given data

+

+ + + crypto/sha256/digest(data) + + +

+ + +

Returns the SHA256 digest (string) of the given data

+

+ + + databricks/client(databricks_host, databricks_service_principal_token) + + +

+ + +

Returns a table representing a Databricks client with the register_external_table and create_or_get_schema methods.

+

+ + + databricks/client.create_schema(schema_name, catalog_name, get_if_exists) + + +

+ + +

Creates a schema, or retrieves it if exists, in the configured Databricks host’s Unity catalog. +If a schema doesn’t exist, a new schema with the given schema_name will be created under the given catalog_name. +Returns the created/fetched schema name.

+ +

Parameters:

+ +
    +
  • schema_name(string): The required schema name
  • +
  • catalog_name(string): The catalog name under which the schema will be created (or from which it will be fetched)
  • +
  • get_if_exists(boolean): In case of failure due to an existing schema with the given schema_name in the given +catalog_name, return the schema.
  • +
+ +

Example:

+ +
local databricks = require("databricks")
+local client = databricks.client("https://my-host.cloud.databricks.com", "my-service-principal-token")
+local schema_name = client.create_schema("main", "mycatalog", true)
+
+

+ + + databricks/client.register_external_table(table_name, physical_path, warehouse_id, catalog_name, schema_name, metadata) + + +

+ + +

Registers an external table under the provided warehouse ID, catalog name, and schema name. +In order for this method call to succeed, an external location should be configured in the catalog, with the +physical_path’s root storage URI (for example: s3://mybucket). +Returns the table’s creation status.

+ +

Parameters:

+ +
    +
  • table_name(string): Table name.
  • +
  • physical_path(string): A location to which the external table will refer, e.g. s3://mybucket/the/path/to/mytable.
  • +
  • warehouse_id(string): The SQL warehouse ID used in Databricks to run the CREATE TABLE query (fetched from the SQL warehouse +Connection Details, or by running databricks warehouses get, choosing your SQL warehouse and fetching its ID).
  • +
  • catalog_name(string): The name of the catalog under which a schema will be created (or fetched from).
  • +
  • schema_name(string): The name of the schema under which the table will be created.
  • +
  • metadata(table): A table of metadata to be added to the table’s registration. The metadata table should be of the form: +{key1 = "value1", key2 = "value2", ...}.
  • +
+ +

Example:

+ +
local databricks = require("databricks")
+local client = databricks.client("https://my-host.cloud.databricks.com", "my-service-principal-token")
+local status = client.register_external_table("mytable", "s3://mybucket/the/path/to/mytable", "examwarehouseple", "my-catalog-name", "myschema")
+
+ + +

+ + + encoding/base64/encode(data) + + +

+ + +

Encodes the given data to a base64 string

+

+ + + encoding/base64/decode(data) + + +

+ + +

Decodes the given base64 encoded data and return it as a string

+

+ + + encoding/base64/url_encode(data) + + +

+ + +

Encodes the given data to an unpadded alternate base64 encoding defined in RFC 4648.

+

+ + + encoding/base64/url_decode(data) + + +

+ + +

Decodes the given unpadded alternate base64 encoding defined in RFC 4648 and return it as a string

+

+ + + encoding/hex/encode(value) + + +

+ + +

Encode the given value string to hexadecimal values (string)

+

+ + + encoding/hex/decode(value) + + +

+ + +

Decode the given hexadecimal string back to the string it represents (UTF-8)

+

+ + + encoding/json/marshal(table) + + +

+ + +

Encodes the given table into a JSON string

+

+ + + encoding/json/unmarshal(string) + + +

+ + +

Decodes the given string into the equivalent Lua structure

+

+ + + encoding/yaml/marshal(table) + + +

+ + +

Encodes the given table into a YAML string

+

+ + + encoding/yaml/unmarshal(string) + + +

+ + +

Decodes the given YAML encoded string into the equivalent Lua structure

+

+ + + encoding/parquet/get_schema(payload) + + +

+ + +

Read the payload (string) as the contents of a Parquet file and return its schema in the following table structure:

+ +
{
+  { ["name"] = "column_a", ["type"] = "INT32" },
+  { ["name"] = "column_b", ["type"] = "BYTE_ARRAY" }
+}
+
+

+ + + formats + + +

+ +

+ + + formats/delta_client(key, secret, region) + + +

+ + +

Creates a new Delta Lake client used to interact with the lakeFS server.

+
    +
  • key: lakeFS access key id
  • +
  • secret: lakeFS secret access key
  • +
  • region: The region in which your lakeFS server is configured at.
  • +
+

+ + + formats/delta_client.get_table(repository_id, reference_id, prefix) + + +

+ + +

Returns a representation of a Delta Lake table under the given repository, reference, and prefix. +The format of the response is two tables:

+
    +
  1. the first is a table of the format {number, {string}} where number is a version in the Delta Log, and the mapped {string} +array contains JSON strings of the different Delta Lake log operations listed in the mapped version entry. e.g.: +
    {
    +  0 = {
    + "{\"commitInfo\":...}",
    + "{\"add\": ...}",
    + "{\"remove\": ...}"
    +  },
    +  1 = {
    + "{\"commitInfo\":...}",
    + "{\"add\": ...}",
    + "{\"remove\": ...}"
    +  }
    +}
    +
    +
  2. +
  3. the second is a table of the metadata of the current table snapshot. The metadata table can be used to initialize the Delta Lake table in an external Catalog.
    +It consists of the following fields: +
      +
    • id: The table’s ID
    • +
    • name: The table’s name
    • +
    • description: The table’s description
    • +
    • schema_string: The table’s schema string
    • +
    • partition_columns: The table’s partition columns
    • +
    • configuration: The table’s configuration
    • +
    • created_time: The table’s creation time
    • +
    +
  4. +
+

+ + + gcloud + + +

+ +

+ + + gcloud/gs_client(gcs_credentials_json_string) + + +

+ + +

Create a new Google Cloud Storage client using a string that contains a valid credentials.json file content.

+

+ + + gcloud/gs.write_fuse_symlink(source, destination, mount_info) + + +

+ + +

Will create a gcsfuse symlink +from the source (typically a lakeFS physical address for an object) to a given destination.

+ +

mount_info is a Lua table with "from" and "to" keys - since symlinks don’t work for gs://... URIs, they need to point +to the mounted location instead. from will be removed from the beginning of source, and destination will be added instead.

+ +

Example:

+ +
source = "gs://bucket/lakefs/data/abc/def"
+destination = "gs://bucket/exported/path/to/object"
+mount_info = {
+    ["from"] = "gs://bucket",
+    ["to"] = "/home/user/gcs-mount"
+}
+gs.write_fuse_symlink(source, destination, mount_info)
+-- Symlink: "/home/user/gcs-mount/exported/path/to/object" -> "/home/user/gcs-mount/lakefs/data/abc/def"
+
+

+ + + hook + + +

+ + +

A set of utilities to aide in writing user friendly hooks.

+

+ + + hook/fail(message) + + +

+ + +

Will abort the current hook’s execution with the given message. This is similar to using error(), but is typically used to separate +generic runtime errors (an API call that returned an unexpected response) and explict failure of the calling hook.

+ +

When called, errors will appear without a stacktrace, and the error message will be directly the one given as message.

+ +
> hook = require("hook")
+> hook.fail("this hook shall not pass because of: " .. reason)
+
+

+ + + lakefs + + +

+ + +

The Lua Hook library allows calling back to the lakeFS API using the identity of the user that triggered the action. +For example, if user A tries to commit and triggers a pre-commit hook - any call made inside that hook to the lakeFS +API, will automatically use user A’s identity for authorization and auditing purposes.

+

+ + + lakefs/create_tag(repository_id, reference_id, tag_id) + + +

+ + +

Create a new tag for the given reference

+

+ + + lakefs/diff_refs(repository_id, lef_reference_id, right_reference_id [, after, prefix, delimiter, amount]) + + +

+ + +

Returns an object-wise diff between left_reference_id and right_reference_id.

+

+ + + lakefs/list_objects(repository_id, reference_id [, after, prefix, delimiter, amount]) + + +

+ + +

List objects in the specified repository and reference (branch, tag, commit ID, etc.). +If delimiter is empty, will default to a recursive listing. Otherwise, common prefixes up to delimiter will be shown as a single entry.

+

+ + + lakefs/get_object(repository_id, reference_id, path) + + +

+ + +

Returns 2 values:

+ +
    +
  1. The HTTP status code returned by the lakeFS API
  2. +
  3. The content of the specified object as a lua string
  4. +
+

+ + + lakefs/diff_branch(repository_id, branch_id [, after, amount, prefix, delimiter]) + + +

+ + +

Returns an object-wise diff of uncommitted changes on branch_id.

+

+ + + lakefs/stat_object(repository_id, ref_id, path) + + +

+ + +

Returns a stat object for the given path under the given reference and repository.

+

+ + + lakefs/catalogexport/glue_exporter.get_full_table_name(descriptor, action_info) + + +

+ + +

Generate glue table name.

+ +

Parameters:

+ +
    +
  • descriptor(Table): Object from (e.g. _lakefs_tables/my_table.yaml).
  • +
  • action_info(Table): The global action object.
  • +
+

+ + + lakefs/catalogexport/delta_exporter + + +

+ + +

A package used to export Delta Lake tables from lakeFS to an external cloud storage.

+

+ + + lakefs/catalogexport/delta_exporter.export_delta_log(action, table_def_names, write_object, delta_client, table_descriptors_path, path_transformer) + + +

+ + +

The function used to export Delta Lake tables. +The return value is a table with mapping of table names to external table location (from which it is possible to query the data) and latest Delta table version’s metadata.
+The response is of the form: +{<table_name> = {path = "s3://mybucket/mypath/mytable", metadata = {id = "table_id", name = "table_name", ...}}}.

+ +

Parameters:

+ +
    +
  • action: The global action object
  • +
  • table_def_names: Delta tables name list (e.g. {"table1", "table2"})
  • +
  • write_object: A writer function with function(bucket, key, data) signature, used to write the exported Delta Log (e.g. aws/s3_client.put_object or azure/blob_client.put_object)
  • +
  • delta_client: A Delta Lake client that implements get_table: function(repo, ref, prefix)
  • +
  • table_descriptors_path: The path under which the table descriptors of the provided table_def_names reside
  • +
  • path_transformer: (Optional) A function(path) used for transforming the path of the saved delta logs path fields as well as the saved table physical path (used to support Azure Unity catalog use cases)
  • +
+ +

Delta export example for AWS S3:

+ +
---
+name: delta_exporter
+on:
+  post-commit: null
+hooks:
+  - id: delta_export
+    type: lua
+    properties:
+      script: |
+        local aws = require("aws")
+        local formats = require("formats")
+        local delta_exporter = require("lakefs/catalogexport/delta_exporter")
+        local json = require("encoding/json")
+
+        local table_descriptors_path = "_lakefs_tables"
+        local sc = aws.s3_client(args.aws.access_key_id, args.aws.secret_access_key, args.aws.region)
+        local delta_client = formats.delta_client(args.lakefs.access_key_id, args.lakefs.secret_access_key, args.aws.region)
+        local delta_table_details = delta_export.export_delta_log(action, args.table_defs, sc.put_object, delta_client, table_descriptors_path)
+        
+        for t, details in pairs(delta_table_details) do
+          print("Delta Lake exported table \"" .. t .. "\"'s location: " .. details["path"] .. "\n")
+          print("Delta Lake exported table \"" .. t .. "\"'s metadata:\n")
+          for k, v in pairs(details["metadata"]) do
+            if type(v) == "table" then
+              print("\t" .. k .. " = " .. json.marshal(v) .. "\n")
+            else
+              print("\t" .. k .. " = " .. v .. "\n")
+            end
+          end
+        end
+      args:
+        aws:
+          access_key_id: <AWS_ACCESS_KEY_ID>
+          secret_access_key: <AWS_SECRET_ACCESS_KEY>
+          region: us-east-1
+        lakefs:
+          access_key_id: <LAKEFS_ACCESS_KEY_ID> 
+          secret_access_key: <LAKEFS_SECRET_ACCESS_KEY>
+        table_defs:
+          - mytable
+
+ +

For the table descriptor under the _lakefs_tables/mytable.yaml:

+
---
+name: myTableActualName
+type: delta
+path: a/path/to/my/delta/table
+
+ +

Delta export example for Azure Blob Storage:

+ +
name: Delta Exporter
+on:
+  post-commit:
+    branches: ["*"]
+hooks:
+  - id: delta_exporter
+    type: lua
+    properties:
+      script: |
+        local azure = require("azure")
+        local formats = require("formats")
+        local delta_exporter = require("lakefs/catalogexport/delta_exporter")
+
+        local table_descriptors_path = "_lakefs_tables"
+        local sc = azure.blob_client(args.azure.storage_account, args.azure.access_key)
+        local function write_object(_, key, buf)
+          return sc.put_object(key,buf)
+        end
+        local delta_client = formats.delta_client(args.lakefs.access_key_id, args.lakefs.secret_access_key)
+        local delta_table_details = delta_export.export_delta_log(action, args.table_defs, sc.put_object, delta_client, table_descriptors_path)
+        
+        for t, details in pairs(delta_table_details) do
+          print("Delta Lake exported table \"" .. t .. "\"'s location: " .. details["path"] .. "\n")
+          print("Delta Lake exported table \"" .. t .. "\"'s metadata:\n")
+          for k, v in pairs(details["metadata"]) do
+            if type(v) == "table" then
+              print("\t" .. k .. " = " .. json.marshal(v) .. "\n")
+            else
+              print("\t" .. k .. " = " .. v .. "\n")
+            end
+          end
+        end
+      args:
+        azure:
+          storage_account: ""
+          access_key: ""
+        lakefs: # provide credentials of a user that has access to the script and Delta Table
+          access_key_id: ""
+          secret_access_key: ""
+        table_defs:
+          - mytable
+
+
+

+ + + lakefs/catalogexport/table_extractor + + +

+ + +

Utility package to parse _lakefs_tables/ descriptors.

+

+ + + lakefs/catalogexport/table_extractor.list_table_descriptor_entries(client, repo_id, commit_id) + + +

+ + +

List all YAML files under _lakefs_tables/* and return a list of type [{physical_address, path}], ignores hidden files. +The client is lakefs client.

+

+ + + lakefs/catalogexport/table_extractor.get_table_descriptor(client, repo_id, commit_id, logical_path) + + +

+ + +

Read a table descriptor and parse YAML object. Will set partition_columns to {} if no partitions are defined. +The client is lakefs client.

+

+ + + lakefs/catalogexport/hive.extract_partition_pager(client, repo_id, commit_id, base_path, partition_cols, page_size) + + +

+ + +

Hive format partition iterator each result set is a collection of files under the same partition in lakeFS.

+ +

Example:

+ +
local lakefs = require("lakefs")
+local pager = hive.extract_partition_pager(lakefs, repo_id, commit_id, prefix, partitions, 10)
+for part_key, entries in pager do
+    print("partition: " .. part_key)
+    for _, entry in ipairs(entries) do
+        print("path: " .. entry.path .. " physical: " .. entry.physical_address)
+    end
+end
+
+ + + +

Writes metadata for a table using Hive’s SymlinkTextInputFormat. +Currently only S3 is supported.

+ +

The default export paths per commit:

+ +
${storageNamespace}
+_lakefs/
+    exported/
+        ${ref}/
+            ${commitId}/
+                ${tableName}/
+                    p1=v1/symlink.txt
+                    p1=v2/symlink.txt
+                    p1=v3/symlink.txt
+                    ...
+
+ + + +

Export Symlink files that represent a table to S3 location.

+ +

Parameters:

+ +
    +
  • s3_client: Configured client.
  • +
  • table_src_path(string): Path to the table spec YAML file in _lakefs_tables (e.g. _lakefs_tables/my_table.yaml).
  • +
  • action_info(table): The global action object.
  • +
  • options(table): +
      +
    • debug(boolean): Print extra info.
    • +
    • export_base_uri(string): Override the prefix in S3 e.g. s3://other-bucket/path/.
    • +
    • writer(function(bucket, key, data)): If passed then will not use s3 client, helpful for debug.
    • +
    +
  • +
+ +

Example:

+ +
local exporter = require("lakefs/catalogexport/symlink_exporter")
+local aws = require("aws")
+-- args are user inputs from a lakeFS action.
+local s3 = aws.s3_client(args.aws.aws_access_key_id, args.aws.aws_secret_access_key, args.aws.aws_region)
+exporter.export_s3(s3, args.table_descriptor_path, action, {debug=true})
+
+

+ + + lakefs/catalogexport/glue_exporter + + +

+ + +

A Package for automating the export process from lakeFS stored tables into Glue catalog.

+

+ + + lakefs/catalogexport/glue_exporter.export_glue(glue, db, table_src_path, create_table_input, action_info, options) + + +

+ + +

Represent lakeFS table in Glue Catalog. +This function will create a table in Glue based on configuration. +It assumes that there is a symlink location that is already created and only configures it by default for the same commit.

+ +

Parameters:

+ +
    +
  • glue: AWS glue client
  • +
  • db(string): glue database name
  • +
  • table_src_path(string): path to table spec (e.g. _lakefs_tables/my_table.yaml)
  • +
  • create_table_input(table): Input equal mapping to table_input in AWS, the same as we use for glue.create_table. +should contain inputs describing the data format (e.g. InputFormat, OutputFormat, SerdeInfo) since the exporter is agnostic to this. +by default this function will configure table location and schema.
  • +
  • action_info(table): the global action object.
  • +
  • options(table): +
      +
    • table_name(string): Override default glue table name
    • +
    • debug(boolean
    • +
    • export_base_uri(string): Override the default prefix in S3 for symlink location e.g. s3://other-bucket/path/
    • +
    • create_db_input(table): if this is specified, then it indicates we want to create a new database for the table export. The parameter expects a table that is converted to JSON and passed “as is” to AWS and is parallel to the AWS SDK CreateDatabaseInput
    • +
    +
  • +
+ +

When creating a glue table, the final table input will consist of the create_table_input input parameter and lakeFS computed defaults that will override it:

+ +
    +
  • Name Gable table name get_full_table_name(descriptor, action_info).
  • +
  • PartitionKeys Partition columns usually deduced from _lakefs_tables/${table_src_path}.
  • +
  • TableType = “EXTERNAL_TABLE”
  • +
  • StorageDescriptor: Columns usually deduced from _lakefs_tables/${table_src_path}.
  • +
  • StorageDescriptor.Location = symlink_location
  • +
+ +

Example:

+ +
local aws = require("aws")
+local exporter = require("lakefs/catalogexport/glue_exporter")
+local glue = aws.glue_client(args.aws_access_key_id, args.aws_secret_access_key, args.aws_region)
+-- table_input can be passed as a simple Key-Value object in YAML as an argument from an action, this is inline example:
+local table_input = {
+  StorageDescriptor: 
+    InputFormat: "org.apache.hadoop.hive.ql.io.SymlinkTextInputFormat"
+    OutputFormat: "org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat"
+    SerdeInfo:
+      SerializationLibrary: "org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe"
+  Parameters: 
+    classification: "parquet"
+    EXTERNAL: "TRUE"
+    "parquet.compression": "SNAPPY"
+}
+exporter.export_glue(glue, "my-db", "_lakefs_tables/animals.yaml", table_input, action, {debug=true, create_db_input = {DatabaseInput = {Description="DB exported from LakeFS"}, Tags = {Owner = "Joe"}}})
+
+

+ + + lakefs/catalogexport/glue_exporter.get_full_table_name(descriptor, action_info) + + +

+ + +

Generate glue table name.

+ +

Parameters:

+ +
    +
  • descriptor(Table): Object from (e.g. _lakefs_tables/my_table.yaml).
  • +
  • action_info(Table): The global action object.
  • +
+

+ + + lakefs/catalogexport/unity_exporter + + +

+ + +

A package used to register exported Delta Lake tables to Databricks’ Unity catalog.

+

+ + + lakefs/catalogexport/unity_exporter.register_tables(action, table_descriptors_path, delta_table_details, databricks_client, warehouse_id) + + +

+ + +

The function used to register exported Delta Lake tables in Databricks’ Unity Catalog. +The registration will use the following paths to register the table: +<catalog>.<branch name>.<table_name> where the branch name will be used as the schema name. +The return value is a table with mapping of table names to registration request status.

+ +

Note: (Azure users) Databricks catalog external locations is supported only for ADLS Gen2 storage accounts.
+When exporting Delta tables using the lakefs/catalogexport/delta_exporter.export_delta_log function, the path_transformer must be
+used to convert the paths scheme to abfss. The built-in azure lua library provides this functionality with transformPathToAbfss.

+ +

Parameters:

+ +
    +
  • action(table): The global action table
  • +
  • table_descriptors_path(string): The path under which the table descriptors of the provided table_paths reside.
  • +
  • delta_table_details(table): Table names to physical paths mapping and table metadata (e.g. {table1 = {path = "s3://mybucket/mytable1", metadata = {id = "table_1_id", name = "table1", ...}}, table2 = {path = "s3://mybucket/mytable2", metadata = {id = "table_2_id", name = "table2", ...}}}.)
  • +
  • databricks_client(table): A Databricks client that implements create_or_get_schema: function(id, catalog_name) and register_external_table: function(table_name, physical_path, warehouse_id, catalog_name, schema_name)
  • +
  • warehouse_id(string): Databricks warehouse ID.
  • +
+ +

Example: +The following registers an exported Delta Lake table to Unity Catalog.

+ +
local databricks = require("databricks")
+local unity_export = require("lakefs/catalogexport/unity_exporter")
+
+local delta_table_locations = {
+  ["table1"] = "s3://mybucket/mytable1",
+}
+-- Register the exported table in Unity Catalog:
+local action_details = {
+  repository_id = "my-repo",
+  commit_id = "commit_id",
+  branch_id = "main",
+}
+local databricks_client = databricks.client("<DATABRICKS_HOST>", "<DATABRICKS_TOKEN>")
+local registration_statuses = unity_export.register_tables(action_details, "_lakefs_tables", delta_table_locations, databricks_client, "<WAREHOUSE_ID>")
+
+for t, status in pairs(registration_statuses) do
+  print("Unity catalog registration for table \"" .. t .. "\" completed with status: " .. status .. "\n")
+end
+
+ +

For the table descriptor under the _lakefs_tables/delta-table-descriptor.yaml:

+
---
+name: my_table_name
+type: delta
+path: path/to/delta/table/data
+catalog: my-catalog
+
+ +

For detailed step-by-step guide on how to use unity_exporter.register_tables as a part of a lakeFS action refer to +the Unity Catalog docs.

+

+ + + path/parse(path_string) + + +

+ + +

Returns a table for the given path string with the following structure:

+ +
> require("path")
+> path.parse("a/b/c.csv")
+{
+    ["parent"] = "a/b/"
+    ["base_name"] = "c.csv"
+} 
+
+

+ + + path/join(*path_parts) + + +

+ + +

Receives a variable number of strings and returns a joined string that represents a path:

+ +
> path = require("path")
+> path.join("/", "path/", "to", "a", "file.data")
+path/o/a/file.data
+
+

+ + + path/is_hidden(path_string [, seperator, prefix]) + + +

+ + +

returns a boolean - true if the given path string is hidden (meaning it starts with prefix) - or if any of its parents start with prefix.

+ +
> require("path")
+> path.is_hidden("a/b/c") -- false
+> path.is_hidden("a/b/_c") -- true
+> path.is_hidden("a/_b/c") -- true
+> path.is_hidden("a/b/_c/") -- true
+
+

+ + + path/default_separator() + + +

+ + +

Returns a constant string (/)

+

+ + + regexp/match(pattern, s) + + +

+ + +

Returns true if the string s matches pattern. +This is a thin wrapper over Go’s regexp.MatchString.

+

+ + + regexp/quote_meta(s) + + +

+ + +

Escapes any meta-characters in string s and returns a new string

+

+ + + regexp/compile(pattern) + + +

+ + +

Returns a regexp match object for the given pattern

+

+ + + regexp/compiled_pattern.find_all(s, n) + + +

+ + +

Returns a table list of all matches for the pattern, (up to n matches, unless n == -1 in which case all possible matches will be returned)

+

+ + + regexp/compiled_pattern.find_all_submatch(s, n) + + +

+ + +

Returns a table list of all sub-matches for the pattern, (up to n matches, unless n == -1 in which case all possible matches will be returned). +Submatches are matches of parenthesized subexpressions (also known as capturing groups) within the regular expression, +numbered from left to right in order of opening parenthesis. +Submatch 0 is the match of the entire expression, submatch 1 is the match of the first parenthesized subexpression, and so on

+

+ + + regexp/compiled_pattern.find(s) + + +

+ + +

Returns a string representing the left-most match for the given pattern in string s

+

+ + + regexp/compiled_pattern.find_submatch(s) + + +

+ + +

find_submatch returns a table of strings holding the text of the leftmost match of the regular expression in s and the matches, if any, of its submatches

+

+ + + strings/split(s, sep) + + +

+ + +

returns a table of strings, the result of splitting s with sep.

+

+ + + strings/trim(s) + + +

+ + +

Returns a string with all leading and trailing white space removed, as defined by Unicode

+

+ + + strings/replace(s, old, new, n) + + +

+ + +

Returns a copy of the string s with the first n non-overlapping instances of old replaced by new. +If old is empty, it matches at the beginning of the string and after each UTF-8 sequence, yielding up to k+1 replacements for a k-rune string.

+ +

If n < 0, there is no limit on the number of replacements

+

+ + + strings/has_prefix(s, prefix) + + +

+ + +

Returns true if s begins with prefix

+

+ + + strings/has_suffix(s, suffix) + + +

+ + +

Returns true if s ends with suffix

+

+ + + strings/contains(s, substr) + + +

+ + +

Returns true if substr is contained anywhere in s

+

+ + + time/now() + + +

+ + +

Returns a float64 representing the amount of nanoseconds since the unix epoch (01/01/1970 00:00:00).

+

+ + + time/format(epoch_nano, layout, zone) + + +

+ + +

Returns a string representation of the given epoch_nano timestamp for the given Timezone (e.g. "UTC", "America/Los_Angeles", …) +The layout parameter should follow Go’s time layout format.

+

+ + + time/format_iso(epoch_nano, zone) + + +

+ + +

Returns a string representation of the given epoch_nano timestamp for the given Timezone (e.g. "UTC", "America/Los_Angeles", …) +The returned string will be in ISO8601 format.

+

+ + + time/sleep(duration_ns) + + +

+ + +

Sleep for duration_ns nanoseconds

+

+ + + time/since(epoch_nano) + + +

+ + +

Returns the amount of nanoseconds elapsed since epoch_nano

+

+ + + time/add(epoch_time, duration_table) + + +

+ + +

Returns a new timestamp (in nanoseconds passed since 01/01/1970 00:00:00) for the given duration. +The duration should be a table with the following structure:

+ +
> require("time")
+> time.add(time.now(), {
+    ["hour"] = 1,
+    ["minute"] = 20,
+    ["second"] = 50
+})
+
+

You may omit any of the fields from the table, resulting in a default value of 0 for omitted fields

+

+ + + time/parse(layout, value) + + +

+ + +

Returns a float64 representing the amount of nanoseconds since the unix epoch (01/01/1970 00:00:00). +This timestamp will represent date value parsed using the layout format.

+ +

The layout parameter should follow Go’s time layout format

+

+ + + time/parse_iso(value) + + +

+ + +

Returns a float64 representing the amount of nanoseconds since the unix epoch (01/01/1970 00:00:00 for value. +The value string should be in ISO8601 format

+

+ + + uuid/new() + + +

+ + +

Returns a new 128-bit RFC 4122 UUID in string representation.

+

+ + + net/url + + +

+ + +

Provides a parse function parse a URL string into parts, returns a table with the URL’s host, path, scheme, query and fragment.

+ +
> local url = require("net/url")
+> url.parse("https://example.com/path?p1=a#section")
+{
+    ["host"] = "example.com"
+    ["path"] = "/path"
+    ["scheme"] = "https"
+    ["query"] = "p1=a"
+    ["fragment"] = "section"
+}
+
+

+ + + net/http (optional) + + +

+ + +

Provides a request function that performs an HTTP request. +For security reasons, this package is not available by default as it enables http requests to be sent out from the lakeFS instance network. The feature should be enabled under actions.lua.net_http_enabled configuration. +Request will time out after 30 seconds.

+ +
http.request(url [, body])
+http.request{
+  url = string,
+  [method = string,]
+  [headers = header-table,]
+  [body = string,]
+}
+
+ +

Returns a code (number), body (string), headers (table) and status (string).

+ +
    +
  • code - status code number
  • +
  • body - string with the response body
  • +
  • headers - table with the response request headers (key/value or table of values)
  • +
  • status - status code text
  • +
+ +

The first form of the call will perform GET requests or POST requests if the body parameter is passed.

+ +

The second form accepts a table and allows you to customize the request method and headers.

+ +

Example of a GET request

+ +
local http = require("net/http")
+local code, body = http.request("https://example.com")
+if code == 200 then
+    print(body)
+else
+    print("Failed to get example.com - status code: " .. code)
+end
+
+
+ +

Example of a POST request

+ +
local http = require("net/http")
+local code, body = http.request{
+    url="https://httpbin.org/post",
+    method="POST",
+    body="custname=tester",
+    headers={["Content-Type"]="application/x-www-form-urlencoded"},
+}
+if code == 200 then
+    print(body)
+else
+    print("Failed to post data - status code: " .. code)
+end
+
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/howto/hooks/webhooks.html b/v1.46/howto/hooks/webhooks.html new file mode 100644 index 000000000..cbc88a231 --- /dev/null +++ b/v1.46/howto/hooks/webhooks.html @@ -0,0 +1,935 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Webhooks | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Webhooks + + +

+ + +
+

+ + + Table of contents + + +

+ + +
    +
  1. Action File Webhook properties
  2. +
  3. Request body schema
  4. +
+ +
+ +

A Webhook is a Hook type that sends an HTTP POST request to the configured URL. +Any non 2XX response by the responding endpoint will fail the Hook, cancel the execution of the following Hooks +under the same Action. For pre-* hooks, the triggering operation will also be aborted.

+ +

Warning: You should not use pre-* webhooks for long-running tasks, since they block the performed operation. +Moreover, the branch is locked during the execution of pre-* hooks, so the webhook server cannot perform any write operations on the branch (like uploading or commits).

+

+ + + Action File Webhook properties + + +

+ + +

See the Action configuration for overall configuration schema and details.

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyDescriptionData TypeRequiredDefault ValueEnv Vars Support
urlThe URL address of the requestStringtrue no
timeoutTime to wait for response before failing the hookString (golang’s Duration representation)false1 minuteno
query_paramsList of query params that will be added to the requestDictionary(String:String or String:List(String)false yes
headersHeaders to add to the requestDictionary(String:String)false yes
+ +

Secrets & Environment Variables
+lakeFS Actions supports secrets by using environment variables. +The format {{ ENV.SOME_ENV_VAR }} will be replaced with the value of $SOME_ENV_VAR +during the execution of the action. If that environment variable doesn’t exist in the lakeFS server environment, the action run will fail.

+ +

All environment variables need to begin with “LAKEFSACTIONS_”. Otherwise, they will be blocked. +Additionally, the actions.env.enabled configuration parameter can be set to false to block access to all environment variables.

+ +

Example:

+ +
...
+hooks:
+  - id: prevent_user_columns
+    type: webhook
+    description: Ensure no user_* columns under public/
+    properties:
+      url: "http://<host:port>/webhooks/schema"
+      timeout: 1m30s
+      query_params:
+        disallow: ["user_", "private_"]
+        prefix: public/
+      headers:
+        secret_header: "{{ ENV.MY_SECRET }}"
+...
+
+

+ + + Request body schema + + +

+ +

Upon execution, a webhook will send a request containing a JSON object with the following fields:

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescriptionType
event_typeType of the event that triggered the Actionstring
event_timeTime of the event that triggered the Action (RFC3339 formatted)string
action_nameContaining Hook Action’s Namestring
hook_idID of the Hookstring
repository_idID of the Repositorystring
branch_id1ID of the Branchstring
source_refReference to the source on which the event was triggeredstring
commit_message2The message for the commit (or merge) that is taking placestring
committer2Name of the committerstring
commit_metadata2The metadata for the commit that is taking placestring
commit_id[^2,^4]The ID of the commit that is being createdstring
tag_id3The ID of the created/deleted tagstring
+ +

Example:

+
{
+  "event_type": "pre-merge",
+  "event_time": "2021-02-28T14:03:31Z",
+  "action_name": "test action",
+  "hook_id": "prevent_user_columns",
+  "repository_id": "repo1",
+  "branch_id": "feature-1",
+  "source_ref": "feature-1",
+  "commit_message": "merge commit message",
+  "commit_id": "5891b5b522d5df086d0ff0b110fbd9d21bb4fc7163af34d08286a2e846f6be03",
+  "committer": "committer",
+  "commit_metadata": {
+    "key": "value"
+  }
+}
+
+
+
    +
  1. +

    N\A for Tag events 

    +
  2. +
  3. +

    N\A for Tag and Create/Delete Branch events  2 3

    +
  4. +
  5. +

    Applicable only for Tag events 

    +
  6. +
+
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/howto/import.html b/v1.46/howto/import.html new file mode 100644 index 000000000..0390186fc --- /dev/null +++ b/v1.46/howto/import.html @@ -0,0 +1,923 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Import Data | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

This section describes how to import existing data into a lakeFS repository, without copying it. +If you are interested in copying data into lakeFS, see Copying data to/from lakeFS.

+

+ + + Importing data into lakeFS + + +

+ + +
+

+ + + Table of contents + + +

+ + +
    +
  1. Prerequisites
  2. +
  3. Using the lakeFS UI
  4. +
  5. Using the CLI: lakectl import
  6. +
  7. Examples
  8. +
+ +
+ + +

+ + + Prerequisites + + +

+ + +
    +
  • Importing is permitted for users in the Supers (open-source) group or the SuperUsers (Cloud/Enterprise) group. + To learn how lakeFS Cloud and lakeFS Enterprise users can fine-tune import permissions, see Fine-grained permissions below.
  • +
  • The lakeFS server must have permissions to list the objects in the source bucket.
  • +
  • The source bucket must be on the same cloud provider and in the same region as your repository.
  • +
+

+ + + Using the lakeFS UI + + +

+ + +
    +
  1. In your repository’s main page, click the Import button to open the import dialog.
  2. +
  3. Under Import from, fill in the location on your object store you would like to import from.
  4. +
  5. Fill in the import destination in lakeFS. This should be a path under the current branch.
  6. +
  7. Add a commit message, and optionally commit metadata.
  8. +
  9. Press Import.
  10. +
+ +

Once the import is complete, a new commit containing the imported objects will be created in the destination branch.

+ +

lakeFS UI import dialog

+

+ + + Using the CLI: lakectl import + + +

+ +

The lakectl import command acts the same as the UI import wizard. It commits the changes to the selected branch.

+ +
+ +
+
lakectl import \
+  --from s3://bucket/optional/prefix/ \
+  --to lakefs://my-repo/my-branch/optional/path/
+
+
+
+
lakectl import \
+   --from https://storageAccountName.blob.core.windows.net/container/optional/prefix/ \
+   --to lakefs://my-repo/my-branch/optional/path/
+
+
+
+
lakectl import \
+   --from gs://bucket/optional/prefix/ \
+   --to lakefs://my-repo/my-branch/optional/path/
+
+
+
+

+ + + Notes + + +

+ + +
    +
  1. Any previously existing objects under the destination prefix will be deleted.
  2. +
  3. The import duration depends on the amount of imported objects, but will roughly be a few thousand objects per second.
  4. +
  5. For security reasons, if you are using lakeFS on top of your local disk (blockstore.type=local), you need to enable the import feature explicitly. +To do so, set the blockstore.local.import_enabled to true and specify the allowed import paths in blockstore.local.allowed_external_prefixes (see configuration reference). +When using lakectl or the lakeFS UI, you can currently import only directories locally. If you need to import a single file, use the HTTP API or API Clients with type=object in the request body and destination=<full-path-to-file>.
  6. +
  7. Making changes to data in the original bucket will not be reflected in lakeFS, and may cause inconsistencies.
  8. +
+

+ + + Examples + + +

+ +

To explore practical examples and real-world use cases of importing data into lakeFS, +we recommend checking out our comprehensive blog post on the subject.

+

+ + + Fine-grained permissions + + +

+ +

lakeFS Cloud

+

lakeFS Enterprise

+ +

With RBAC support, The lakeFS user running the import command should have the following permissions in lakeFS: +fs:WriteObject, fs:CreateMetaRange, fs:CreateCommit, fs:ImportFromStorage and fs:ImportCancel.

+ +

As mentioned above, all of these permissions are available by default to the Supers (open-source) group or the SuperUsers (Cloud/Enterprise).

+

+ + + Provider-specific permissions + + +

+ + +

In addition, the following for provider-specific permissions may be required:

+ +
+ +
+

+ + + AWS S3: Importing from public buckets + + +

+ + +

lakeFS needs access to the imported location to first list the files to import and later read the files upon users request.

+ +

There are some use cases where the user would like to import from a destination which isn’t owned by the account running lakeFS. +For example, importing public datasets to experiment with lakeFS and Spark.

+ +

lakeFS will require additional permissions to read from public buckets. For example, for S3 public buckets, +the following policy needs to be attached to the lakeFS S3 service-account to allow access to public buckets, while blocking access to other owned buckets:

+ +
   {
+     "Version": "2012-10-17",
+     "Statement": [
+       {
+         "Sid": "PubliclyAccessibleBuckets",
+         "Effect": "Allow",
+         "Action": [
+            "s3:GetBucketVersioning",
+            "s3:ListBucket",
+            "s3:GetBucketLocation",
+            "s3:ListBucketMultipartUploads",
+            "s3:ListBucketVersions",
+            "s3:GetObject",
+            "s3:GetObjectVersion",
+            "s3:AbortMultipartUpload",
+            "s3:ListMultipartUploadParts"
+         ],
+         "Resource": ["*"],
+         "Condition": {
+           "StringNotEquals": {
+             "s3:ResourceAccount": "<YourAccountID>"
+           }
+         }
+       }
+     ]
+   }
+
+ +
+
+ +

Note: The use of the adls hint for ADLS Gen2 storage accounts is deprecated, please use the original source url for import.

+ +

See Azure deployment on limitations when using account credentials.

+ +
+
+

No specific prerequisites

+
+
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/howto/index.html b/v1.46/howto/index.html new file mode 100644 index 000000000..01bac5778 --- /dev/null +++ b/v1.46/howto/index.html @@ -0,0 +1,833 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +How-To | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + +
+ +

+ + + lakeFS - How To + + +

+ + +

lakeFS Docs

+

+ + + Installation and upgrades + + +

+ + + +

+ + + Getting data in and out of lakeFS + + +

+ + + +

+ + + Actions and Hooks in lakeFS + + +

+ + +
    +
  • Use Actions and Hooks as part of your workflow to validate data, enforce constraints, and do more when events occur.
  • +
+

+ + + Branch Protection + + +

+ + +
    +
  • Branch Protection prevents commits directly to a branch. This is a good way to enforce good practice and make sure that changes to important branches are only done by a merge.
  • +
+

+ + + Pull Requests + + +

+ + + +

+ + + lakeFS Sizing Guide + + +

+ + + +

+ + + Garbage Collection + + +

+ + +
    +
  • lakeFS will keep all of your objects forever, unless you tell it otherwise. Use Garbage Collection (GC) to remove objects from the underlying storage. + If you want GC to happen automagically then you can use Managed Garbage Collection which is available as part of lakeFS Cloud.
  • +
+ + + +
    +
  • Private Link enables lakeFS Cloud to interact with your infrastructure using private networking.
  • +
+

+ + + Unity Delta Sharing + + +

+ + +
    +
  • lakeFS Unity Delta Sharing provides a read-only experience from Unity Catalog for lakeFS customers.
  • +
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/howto/local-checkouts.html b/v1.46/howto/local-checkouts.html new file mode 100644 index 000000000..d2eae02ad --- /dev/null +++ b/v1.46/howto/local-checkouts.html @@ -0,0 +1,1276 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Work with lakeFS data locally | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Working with lakeFS Data Locally + + +

+ + +

lakeFS is a scalable data version control system designed to scale to billions of objects. The larger the data, the less +feasible it becomes to consume it from a single machine. lakeFS addresses this challenge by enabling efficient management +of large-scale data stored remotely.

+ +

In addition to its capability to manage large datasets, lakeFS offers the flexibility +to work with versioned data by exposing it as a local filesystem directory.

+ +

This page explains lakeFS Mount and lakectl local: two common ways of exposing lakeFS data locally, with different performance characteristics.

+ + +

+ + + Use cases + + +

+ +

+ + + Local development of ML models + + +

+ + +

The development of machine learning models is a dynamic and iterative process, including experimentation with various data versions, +transformations, algorithms, and hyperparameters. To optimize this iterative workflow, experiments must be conducted with speed, +ease of tracking, and reproducibility in mind. Localizing the model data during development enhances the development process. +It accelerates the development process by enabling interactive and offline development and reducing data access latency.

+ +

The local availability of data is required to seamlessly integrate data version control systems and source control systems +like Git. This integration is vital for achieving model reproducibility, allowing for a more efficient and collaborative +model development environment.

+

+ + + Data Locality for Optimized GPU Utilization + + +

+ + +

Training Deep Learning models requires expensive GPUs. In the context of running such programs, the goal is to optimize +GPU usage and prevent them from sitting idle. Many deep learning tasks involve accessing images, and in some cases, the +same images are accessed multiple times. Localizing the data can eliminate redundant round trip times to access remote +storage, resulting in cost savings.

+ + +

+ + + lakeFS Mount: Efficiently expose lakeFS Data as a local directory + + +

+ + +

⚠️ lakeFS Mount is currently in preview. There is no installation required, please contact us to get access.

+

+ + + Prerequisites: + + +

+ + +
    +
  • A working lakeFS Server running either lakeFS Enterprise or lakeFS Cloud
  • +
  • You’ve installed the lakectl command line utility: this is the official lakeFS command line interface, on top of which lakeFS Mount is built.
  • +
  • lakectl is configured properly to access your lakeFS server as detailed in the configuration instructions
  • +
+

+ + + Mounting a lakeFS reference as a local directory + + +

+ + +

lakeFS Mount works by exposing a virtual mountpoint on the host computer.

+ +

This “acts” as a local directory, allowing applications to read write and interact with data as it is all local to the machine, while lakeFS Mount optimizes this behind the scenes by lazily fetching data as requested, caching accessed objects and efficiently managing metadata to ensure best in class performance. Read more about how lakeFS Mount optimizes performance

+ +

Mounting a reference is a single command:

+ +
everest mount lakefs://example-repo/example-branch/path/to/data/ ./my_local_dir
+
+ +

Once executed, the my_local_dir directory should appear to have the contents of the remote path we provided. We can verify this:

+ +
ls -l ./my_local_dir/
+
+ +

Which should return the listing of the mounted path.

+ +

lakeFS Mount allows quite a bit of tuning to ensure optimal performance. Read more about how lakeFS Mount works and how to configure it.

+

+ + + Reading from a mount + + +

+ + +

Reading from a lakeFS Mount requires no special tools, integrations or SDKs! Simply point your code to the directory and read from it as if it was in fact local:

+ +
#!/usr/bin/env python
+import glob
+
+for image_path in glob.glob('./my_local_dir/*.png'):
+    with open(image_path, 'rb') as f:
+        process(f)
+
+
+

+ + + Unmounting + + +

+ + +

When done, simply run:

+ +
everest umount ./my_local_dir
+
+ +

This will unmount the lakeFS Mount, cleaning up background tasks

+

+ + + lakectl local: Sync lakeFS data with a local directory + + +

+ + +

The local command of lakeFS’ CLI lakectl enables working with lakeFS data locally by copying the data onto the host machine. +It allows syncing local directories with remote lakeFS locations, +and to seamlessly integrate lakeFS with Git.

+ +

Here are the available lakectl local commands:

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CommandWhat it doesNotes 
initConnects between a local directory and a lakeFS remote URI to enable data syncTo undo a directory init, delete the .lakefs_ref.yaml file created in the initialized directory 
cloneClones lakeFS data from a path into an empty local directory and initializes the directoryA directory can only track a single lakeFS remote location. i.e., you cannot clone data into an already initialized directory 
listLists directories that are synced with lakeFSIt is recommended to follow any init or clone command with a list command to verify its success 
statusShows remote and local changes to the directory and the remote location it tracks  
commitCommits changes from local directory to the lakeFS branch it tracksUncommitted changes to directories connected to lakeFS remote locations will not reflect in lakeFS until after doing lakectl local commit. 
pullFetches latest changes from a lakeFS remote location into a connected local directory  
checkoutSyncs a local directory with the state of a lakeFS ref  
+ +

Note: The data size you work with locally should be reasonable for smooth operation on a local machine which is typically no larger than 15 GB.

+

+ + + Example: Using lakectl local in tandem with Git + + +

+ + +

We are going to develop an ML model that predicts whether an image is an Alpaca or not. Our goal is to improve the input +for the model. The code for the model is versioned by Git while the model dataset is versioned by lakeFS. We will +be using lakectl local to tie code versions to data versions to achieve model reproducibility.

+

+ + + Setup + + +

+ + +

To get start with, we have initialized a Git repo called is_alpaca that includes the model code: +Git repo

+ +

We also created a lakeFS repository and uploaded the is_alpaca train dataset +by Kaggel into it: +lakeFS repo

+

+ + + Create an Isolated Environment for Experiments + + +

+ + +

Our goal is to improve the model predictions. To meet our goal, we will experiment with editing the training dataset. +We will run our experiments in isolation to not change anything until after we are certain the data is improved and ready.

+ +

Let’s create a new lakeFS branch called experiment-1. Our is_alpaca dataset is accessible on that branch, +and we will interact with the data from that branch only. +experiment-1-branch

+ +

On the code side, we will create a Git branch also called experiment-1 to not pollute our main branch with a dataset +which is under tuning.

+

+ + + Clone lakeFS Data into a Local Git Repository + + +

+ + +

Inspecting the train.py script, we can see that it expects an input on the input directory.

+
#!/usr/bin/env python
+import tensorflow as tf
+
+input_location = './input'
+model_location = './models/is_alpaca.h5'
+
+def get_ds(subset):
+    return tf.keras.utils.image_dataset_from_directory(
+        input_location, validation_split=0.2, subset=subset,
+        seed=123, image_size=(244, 244), batch_size=32)
+
+train_ds = get_ds("training")
+val_ds = get_ds("validation")
+
+model = tf.keras.Sequential([
+    tf.keras.layers.Rescaling(1./255),
+    tf.keras.layers.Conv2D(32, 3, activation='relu'),
+    tf.keras.layers.MaxPooling2D(),
+    tf.keras.layers.Conv2D(32, 3, activation='relu'),
+    tf.keras.layers.MaxPooling2D(),
+    tf.keras.layers.Conv2D(32, 3, activation='relu'),
+    tf.keras.layers.MaxPooling2D(),
+    tf.keras.layers.Flatten(),
+    tf.keras.layers.Dense(128, activation='relu'),
+    tf.keras.layers.Dense(2)])
+
+# Fit and save
+loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)
+model.compile(optimizer='adam', loss=loss_fn, metrics=['accuracy'])
+model.fit(train_ds, validation_data=val_ds, epochs=3)
+model.save(model_location)
+
+ +

This means that to be able to locally develop our model and experiment with it we need to have the is_alpaca dataset managed +by lakeFS available locally on that path. To do that, we will use the lakectl local clone +command from our local Git repository root:

+
lakectl local clone lakefs://is-alpaca/experiment-1/dataset/train/ input
+
+

This command will do a diff between out local input directory (that did not exist until now) and the provided lakeFS path +and identify that there are files to be downloaded from lakeFS.

+
Successfully cloned lakefs://is-alpaca/experiment-1/dataset/train/ to ~/ml_models/is_alpaca/input
+
+Clone Summary:
+
+Downloaded: 250
+Uploaded: 0
+Removed: 0
+
+ +

Running lakectl local list from our Git repository root will show that the +input directory is now in sync with a lakeFS prefix (Remote URI), and what lakeFS version of the data (Synced Commit) +the is it tracking:

+
 is_alpaca % lakectl local list                 
++-----------+------------------------------------------------+------------------------------------------------------------------+
+| DIRECTORY | REMOTE URI                                     | SYNCED COMMIT                                                    |
++-----------+------------------------------------------------+------------------------------------------------------------------+
+| input     | lakefs://is-alpaca/experiment-1/dataset/train/ | 589f87704418c6bac80c5a6fc1b52c245af347b9ad1ea8d06597e4437fae4ca3 |
++-----------+------------------------------------------------+------------------------------------------------------------------+
+
+

+ + + Tie Code Version and Data Version + + +

+ + +

Now let’s tell Git to stage the dataset we’ve added and inspect our Git branch status:

+
is_alpaca % git add input/
+is_alpaca % git status 
+On branch experiment-1
+Changes to be committed:
+  (use "git restore --staged <file>..." to unstage)
+	new file:   input/.lakefs_ref.yaml
+
+Changes not staged for commit:
+  (use "git add <file>..." to update what will be committed)
+  (use "git restore <file>..." to discard changes in working directory)
+	modified:   .gitignore
+
+ +

We can see that the .gitignore file changed, and that the files we cloned from lakeFS into the input directory are not +tracked by git. This is intentional - remember that lakeFS is the one managing the data. But wait, what is this special +input/.lakefs_ref.yaml file that Git does track?

+
is_alpaca % cat input/.lakefs_ref.yaml
+
+src: lakefs://is-alpaca/experiment-1/dataset/train/s
+at_head: 589f87704418c6bac80c5a6fc1b52c245af347b9ad1ea8d06597e4437fae4ca3
+
+

This file includes the lakeFS version of the data that the Git repository is currently pointing to.

+ +

Let’s commit the changes to Git with:

+
git commit -m "added is_alpaca dataset" 
+
+

By committing to Git, we tie the current code version of the model to the dataset version in lakeFS as it appears in +input/.lakefs_ref.yaml.

+

+ + + Experiment and Version Results + + +

+ + +

We ran the train script on the cloned input, and it generated a model. Now, let’s use the model to predict whether an axolotl is an alpaca.

+ +

A reminder - this is how an axolotl looks like - not like an alpaca!

+ +

axolotl

+ +

Here are the (surprising) results:

+
is_alpaca % ./predict.py ~/axolotl1.jpeg
+{'alpaca': 0.32112, 'not alpaca': 0.07260383}
+
+

We expected the model to provide a more concise prediction, so let’s try to improve it. To do that, we will add additional +images of axolotls to the model input directory:

+
is_alpaca % cp ~/axolotls_images/* input/not_alpaca
+
+ +

To inspect what changes we made to out dataset we will use lakectl local status.

+
is_alpaca % lakectl local status input 
+diff 'local:///ml_models/is_alpaca/input' <--> 'lakefs://is-alpaca/589f87704418c6bac80c5a6fc1b52c245af347b9ad1ea8d06597e4437fae4ca3/dataset/train/'...
+diff 'lakefs://is-alpaca/589f87704418c6bac80c5a6fc1b52c245af347b9ad1ea8d06597e4437fae4ca3/dataset/train/' <--> 'lakefs://is-alpaca/experiment-1/dataset/train/'...
+
+╔════════╦════════╦════════════════════════════╗
+║ SOURCE ║ CHANGE ║ PATH                       ║
+╠════════╬════════╬════════════════════════════╣
+║ local  ║ added  ║ not_alpaca/axolotl2.jpeg ║
+║ local  ║ added  ║ not_alpaca/axolotl3.png  ║
+║ local  ║ added  ║ not_alpaca/axolotl4.jpeg ║
+╚════════╩════════╩════════════════════════════╝
+
+ +

At this point, the dataset changes are not yet tracked by lakeFS. We will validate that by looking at the uncommitted changes +area of our experiment branch and verifying it is empty.

+ +

To commit these changes to lakeFS we will use lakectl local commit:

+
is_alpaca % lakectl local commit input -m "add images of axolotls to the training dataset"
+
+Getting branch: experiment-1
+
+diff 'local:///ml_models/is_alpaca/input' <--> 'lakefs://is-alpaca/589f87704418c6bac80c5a6fc1b52c245af347b9ad1ea8d06597e4437fae4ca3/dataset/train/'...
+upload not_alpaca/axolotl3.png              ... done! [5.04KB in 679ms]
+upload not_alpaca/axolotl2.jpeg             ... done! [38.31KB in 685ms]
+upload not_alpaca/axolotl4.jpeg             ... done! [7.70KB in 718ms]
+
+Sync Summary:
+
+Downloaded: 0
+Uploaded: 3
+Removed: 0
+
+Finished syncing changes. Perform commit on branch...
+Commit for branch "experiment-1" completed.
+
+ID: 0b376f01b925a075851bbaffacf104a80de04a43ed7e56054bf54c42d2c8cce6
+Message: add images of axolotls to the training dataset
+Timestamp: 2024-02-08 17:41:20 +0200 IST
+Parents: 589f87704418c6bac80c5a6fc1b52c245af347b9ad1ea8d06597e4437fae4ca3
+
+ +

Looking at the lakeFS UI we can see that the lakeFS commit includes metadata that tells us what was the code version of +the linked Git repository at the time of the commit. +git metadata in lakeFS

+ +

Inspecting the Git repository, we can see that the input/.lakefs_ref.yaml is pointing to the latest lakeFS commit 0b376f01b925a075851bbaffacf104a80de04a43ed7e56054bf54c42d2c8cce6.

+ +

We will now re-train our model with the modified dataset and give a try to predict whether an axolotl is an alpaca:

+
is_alpaca % ./predict.py ~/axolotl1.jpeg
+{'alpaca': 0.12443, 'not alpaca': 0.47260383}
+
+

Results are indeed more accurate.

+

+ + + Sync a Local Directory with lakeFS + + +

+ + +

Now that we think that the latest version of our model generates reliable predictions, let’s validate it against a test dataset +rather than against a single picture. We will use the test dataset provided by Kaggel. +Let’s create a local testDataset directory in our git repository and populate it with the test dataset.

+ +

Now, we will use lakectl local init to sync the testDataset directory with our lakeFS repository:

+
is_alpaca % lakectl local init lakefs://is-alpaca/main/dataset/test/ testDataset 
+Location added to /is_alpaca/.gitignore
+Successfully linked local directory '/is_alpaca/testDataset' with remote 'lakefs://is-alpaca/main/dataset/test/'
+
+ +

And validate that the directory was linked successfully:

+
is_alpaca % lakectl local list                                                           
++-------------+-------------------------------------------------+------------------------------------------------------------------+
+| DIRECTORY   | REMOTE URI                                      | SYNCED COMMIT                                                    |
++-------------+-------------------------------------------------+------------------------------------------------------------------+
+| input       | lakefs://is-alpaca/main/dataset/train/          | 0b376f01b925a075851bbaffacf104a80de04a43ed7e56054bf54c42d2c8cce6 |
+| testDataset | lakefs://is-alpaca/main/dataset/test/           | 0b376f01b925a075851bbaffacf104a80de04a43ed7e56054bf54c42d2c8cce6 |
++-------------+-------------------------------------------------+------------------------------------------------------------------+
+
+ +

Now we will tell Git to track the testDataset directory with git add testDataset, and as we saw earlier Git will only track the testDataset/.lakefs_ref.yaml +for that directory rather than its content.

+ +

To see the difference between our local testDataset directory and its lakeFS location lakefs://is-alpaca/main/dataset/test/ +we will use lakectl local status:

+
is_alpaca % lakectl local status testDataset 
+
+diff 'local:///ml_models/is_alpaca/testDataset' <--> 'lakefs://is-alpaca/0b376f01b925a075851bbaffacf104a80de04a43ed7e56054bf54c42d2c8cce6/dataset/test/'...
+diff 'lakefs://is-alpaca/0b376f01b925a075851bbaffacf104a80de04a43ed7e56054bf54c42d2c8cce6/dataset/test/' <--> 'lakefs://is-alpaca/main/dataset/test/'...
+
+╔════════╦════════╦════════════════════════════════╗
+║ SOURCE ║ CHANGE ║ PATH                           ║
+╠════════╬════════╬════════════════════════════════╣
+║ local  ║ added  ║ alpaca/alpaca (1).jpg          ║
+║ local  ║ added  ║ alpaca/alpaca (10).jpg         ║
+    .        .                  .
+    .        .                  .
+    .        .                  .
+║ local  ║ added  ║ not_alpaca/not_alpaca (9).jpg  ║
+╚════════╩════════╩════════════════════════════════╝
+
+ +

We can see that multiple files were locally added to the synced directory.

+ +

To apply these changes to lakeFS we will commit them:

+
is_alpaca % lakectl local commit testDataset -m "add is_alpaca test dataset to lakeFS" 
+
+Getting branch: experiment-1
+
+diff 'local:///ml_models/is_alpaca/testDataset' <--> 'lakefs://is-alpaca/0b376f01b925a075851bbaffacf104a80de04a43ed7e56054bf54c42d2c8cce6/dataset/test/'...
+upload alpaca/alpaca (23).jpg            ... done! [113.81KB in 1.241s]
+upload alpaca/alpaca (26).jpg            ... done! [102.74KB in 1.4s]
+          .                                             .
+          .                                             .
+upload not_alpaca/not_alpaca (42).jpg    ... done! [886.93KB in 14.336s]
+
+Sync Summary:
+
+Downloaded: 0
+Uploaded: 77
+Removed: 0
+
+Finished syncing changes. Perform commit on branch...
+Commit for branch "experiment-1" completed.
+
+ID: c8be7f4f5c13dd2e489ae85e6f747230bfde8e50f9cd9b6af20b2baebfb576cf
+Message: add is_alpaca test dataset to lakeFS
+Timestamp: 2024-02-10 12:31:53 +0200 IST
+Parents: 0b376f01b925a075851bbaffacf104a80de04a43ed7e56054bf54c42d2c8cce6
+
+ +

Looking at the lakFS UI we see that our test data is now available at lakeFS: +test_dataset

+ +

Finally, we will Git commit the local changes to link between the Git and lakeFS repositories state.

+ +

Note: While syncing a local directory with a lakeF prefix, it is recommended to first commit the data to lakeFS and then +do a Git commit that will include the changes done to the .lakefs_ref.yaml for the synced directory. Reasoning is that +only after committing the data to lakeFS, the .lakefs_ref.yaml file points to a lakeFS commit that includes the added +content from the directory.

+

+ + + Reproduce Model Results + + +

+ + +

What if we wanted to re-run the model that predicted that an axolotl is more likely to be an alpaca? +This question translates into the question: “How do I roll back my code and data to the time before we optimized the train dataset?” +Which translates to: “What was the Git commit ID at this point?”

+ +

Searching our Git log we find this commit:

+
commit 5403ec29903942b692aabef404598b8dd3577f8a
+
+    added is_alpaca dataset
+
+ +

So, all we have to do now is git checkout 5403ec29903942b692aabef404598b8dd3577f8a and we are good to reproduce the model results!

+ +

Checkout our article about ML Data Version Control and Reproducibility at Scale to get another example for how lakeFS and Git work seamlessly together.

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/howto/migrate-away.html b/v1.46/howto/migrate-away.html new file mode 100644 index 000000000..27f6776bd --- /dev/null +++ b/v1.46/howto/migrate-away.html @@ -0,0 +1,727 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Migrating away from lakeFS | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Migrating away from lakeFS + + +

+ +

+ + + Copying data from a lakeFS repository to an S3 bucket + + +

+ + +

The simplest way to migrate away from lakeFS is by copying data from a lakeFS repository to an S3 bucket +(or any other object store).

+ +

For smaller repositories, you can do this by using the AWS CLI or Rclone. +For larger repositories, running distcp with lakeFS as the source is also an option.

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/howto/mirroring.html b/v1.46/howto/mirroring.html new file mode 100644 index 000000000..5555c4b66 --- /dev/null +++ b/v1.46/howto/mirroring.html @@ -0,0 +1,1136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Mirroring | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Mirroring + + +

+ +

lakeFS Cloud

+ +

lakeFS Enterprise

+ +
+

Mirroring is only available for lakeFS Cloud.

+
+ + +

+ + + What is lakeFS mirroring? + + +

+ + +

Mirroring in lakeFS allows replicating a lakeFS repository (“source”) into read-only copies (“mirror”) in different locations.

+ +

Unlike conventional mirroring, data isn’t simply copied between regions - lakeFS Cloud tracks the state of each commit, advancing the commit log on the mirror only once a commit has been fully replicated and all data is available.

+ +

mirroring architecture

+ + +

+ + + Uses cases + + +

+ +

+ + + Disaster recovery + + +

+ + +

Typically, object stores provide a replication/batch copy API to allow for disaster recovery: as new objects are written, they are asynchronously copied to other geo locations.

+ +

In the case of regional failure, users can rely on the other geolocations which should contain relatively-up-to-date state.

+ +

The problem is reasoning about what managed to arrive by the time of disaster and what hasn’t:

+
    +
  • have all the necessary files for a given dataset arrived?
  • +
  • in cases there are dependencies between datasets, are all dependencies also up to date?
  • +
  • what is currently in-flight or haven’t even started replicating yet?
  • +
+ +

Reasoning about these is non-trivial, especially in the face of a regional disaster, however ensuring business continuity might require that we have these answers.

+ +

Using lakeFS mirroring makes it much easier to answer: we are guaranteed that the latest commit that exists in the replica is in a consistent state and is fully usable, even if it isn’t the absolute latest commit - it still reflects a known, consistent, point in time.

+

+ + + Data Locality + + +

+ + +

For certain workloads, it might be cheaper to have data available in multiple regions: Expensive hardware such as GPUs might fluctuate in price, so we’d want to pick the region that currently offers the best pricing. The difference could easily offset to cost of the replicated data.

+ +

The challenge is reproducibility - Say we have an ML training job that reads image files from a path in the object store. Which files existed at the time of training?

+ +

If data is constantly flowing between regions, this might be harder to answer than we think. And even if we know - how can we recreate that exact state if we want to run the process again (for example, to rebuild that model for troubleshooting).

+ +

Using consistent commits solves this problem - with lakeFS mirroring, it is guaranteed that a commit ID, regardless of location, will always contain the exact same data.

+ +

We can train our model in region A, and a month later feed the same commit ID into another region - and get back the same results.

+

+ + + Setting up mirroring + + +

+ +

+ + + Configuring bucket replication on S3 + + +

+ + +

The objects within the repository are copied using your cloud provider’s object store replication mechanism. +For AWS S3, please refer to the AWS S3 replication documentation to make sure your lakeFS repository’s storage namespace (source) is replicated to the region you’d like your mirror to be located on (target).

+ +

After setting the replication rule, new objects will be replicated to the destination bucket.

+ +

In order to replicate the existing objects, we’d need to manually copy them - however, we can use S3 batch jobs to do this.

+

+ + + Creating a lakeFS user with a “replicator” policy + + +

+ + +

On our source lakeFS installation, under Administration create a new user that will be used by the replication subsystem. +The user should have the following RBAC policy attached:

+ +
{
+   "id": "ReplicationPolicy",
+   "statement": [
+      {
+         "action": [
+            "fs:ReadRepository",
+            "fs:CreateRepository",
+            "fs:UpdateRepository",
+            "fs:DeleteRepository",
+            "fs:ListRepositories",
+            "fs:AttachStorageNamespace",
+            "fs:ReadObject",
+            "fs:WriteObject",
+            "fs:DeleteObject",
+            "fs:ListObjects",
+            "fs:CreateCommit",
+            "fs:CreateMetaRange",
+            "fs:ReadCommit",
+            "fs:ListCommits",
+            "fs:CreateBranch",
+            "fs:DeleteBranch",
+            "fs:RevertBranch",
+            "fs:ReadBranch",
+            "fs:ListBranches"
+         ],
+         "effect": "allow",
+         "resource": "*"
+      }
+   ]
+}
+
+ +

Alternatively, we can create a policy with a narrower scope, only for a specific repository and/or mirror:

+ +
{
+   "id": "ReplicationPolicy",
+   "statement": [
+      {
+         "action": [
+            "fs:ListRepositories"
+         ],
+         "effect": "allow",
+         "resource": "*"
+      },
+      {
+         "action": [
+            "fs:ReadRepository",
+            "fs:ReadObject",
+            "fs:ListObjects",
+            "fs:ReadCommit",
+            "fs:ListCommits",
+            "fs:ReadBranch",
+            "fs:ListBranches"
+         ],
+         "effect": "allow",
+         "resource": "arn:lakefs:fs:::repository/{sourceRepositoryId}"
+      },
+      {
+         "action": [
+            "fs:ReadRepository",
+            "fs:CreateRepository",
+            "fs:UpdateRepository",
+            "fs:DeleteRepository",
+            "fs:AttachStorageNamespace",
+            "fs:ReadObject",
+            "fs:WriteObject",
+            "fs:DeleteObject",
+            "fs:ListObjects",
+            "fs:CreateCommit",
+            "fs:CreateMetaRange",
+            "fs:ReadCommit",
+            "fs:ListCommits",
+            "fs:CreateBranch",
+            "fs:DeleteBranch",
+            "fs:RevertBranch",
+            "fs:ReadBranch",
+            "fs:ListBranches"
+         ],
+         "effect": "allow",
+         "resource": "arn:lakefs:fs:::repository/{mirrorId}"
+      },
+      {
+         "action": [
+            "fs:AttachStorageNamespace"
+         ],
+         "effect": "allow",
+         "resource": "arn:lakefs:fs:::namespace/{DestinationStorageNamespace}"
+      }
+   ]
+}
+
+ +

Once a user has been created and the replication policy attached to it, create an access key and secret to be used by the mirroring process.

+

+ + + Authorizing the lakeFS Mirror process to use the replication user + + +

+ + +

Please contact Treeverse customer success to connect the newly created user with the mirroring process

+

+ + + Configuring repository replication + + +

+ + +

Replication has a stand-alone HTTP API. In this example, we’ll use cURL, but feel free to use any HTTP client or library:

+ +
curl --location 'https://<ORGANIZATION_ID>.<SOURCE_REGION>.lakefscloud.io/service/replication/v1/repositories/<SOURCE_REPO>/mirrors' \
+--header 'Content-Type: application/json' \
+-u <ACCESS_KEY_ID>:<SECRET_ACCESS_KEY> \
+-X POST \
+--data '{
+    "name": "<MIRROR_NAME>",
+    "region": "<MIRROR_REGION>",
+    "storage_namespace": "<MIRROR_STORAGE_NAMESPACE>"
+}'
+
+

Using the following parameters:

+ +
    +
  • ORGANIZATION_ID - The ID as it appears in the URL of your lakeFS installation (e.g. https://my-org.us-east-1.lakefscloud.io/)
  • +
  • SOURCE_REGION - The region where our source repository is hosted
  • +
  • SOURCE_REPO - Name of the repository acting as our replication source. It should exist
  • +
  • ACCESS_KEY_ID & SECRET_ACCESS_KEY - Credentials for your lakeFS user (make sure you have the necessary RBAC permissions as listed below)
  • +
  • MIRROR_NAME - Name used for the read-only mirror to be created on the destination region
  • +
  • MIRROR_STORAGE_NAMESPACE - Location acting as the replication target for the storage namespace of our source repository
  • +
+

+ + + Mirroring and Garbage Collection + + +

+ + +

Garbage collection won’t run on mirrored repositories. +Deletions from garbage collection should be replicated from the source:

+
    +
  1. Enable DELETED marker replication on the source bucket.
  2. +
  3. Create a lifecycle policy on the destination bucket to delete the objects with the DELETED marker.
  4. +
+

+ + + RBAC + + +

+ + +

These are the required RBAC permissions for working with the new cross-region replication feature:

+ +

Creating a Mirror:

+ +
+ + + + + + + + + + + + + + + + + + + + +
ActionARN
fs:CreateRepositoryarn:lakefs:fs:::repository/{mirrorId}
fs:MirrorRepositoryarn:lakefs:fs:::repository/{sourceRepositoryId}
fs:AttachStorageNamespacearn:lakefs:fs:::namespace/{storageNamespace}
+ +

Editing Mirrored Branches:

+ +
+ + + + + + + + + + + + +
ActionARN
fs:MirrorRepositoryarn:lakefs:fs:::repository/{sourceRepositoryId}
+ +

Deleting a Mirror:

+ +
+ + + + + + + + + + + + +
ActionARN
fs:DeleteRepositoryarn:lakefs:fs:::repository/{mirrorId}
+ +

Listing/Getting Mirrors for a Repository:

+ +
+ + + + + + + + + + + + +
ActionARN
fs:ListRepositories*
+

+ + + Other replication operations + + +

+ +

+ + + Listing all mirrors for a repository + + +

+ + +
curl --location 'https://<ORGANIZATION_ID>.<SOURCE_REGION>.lakefscloud.io/service/replication/v1/repositories/<SOURCE_REPO>/mirrors' \
+-u <ACCESS_KEY_ID>:<SECRET_ACCESS_KEY> -s
+
+

+ + + Getting a specific mirror + + +

+ + +
url --location 'https://<ORGANIZATION_ID>.<SOURCE_REGION>.lakefscloud.io/service/replication/v1/repositories/<SOURCE_REPO>/mirrors/<MIRROR_ID>' \
+-u <ACCESS_KEY_ID>:<SECRET_ACCESS_KEY> -s
+
+

+ + + Deleting a specific mirror + + +

+ + +
curl --location --request DELETE 'https://<ORGANIZATION_ID>.<SOURCE_REGION>.lakefscloud.io/service/replication/v1/repositories/<SOURCE_REPO>/mirrors/<MIRROR_ID>' \
+-u <ACCESS_KEY_ID>:<SECRET_ACCESS_KEY>
+
+

+ + + Limitations + + +

+ + +
    +
  1. Mirroring is currently only supported on AWS S3 and lakeFS Cloud for AWS
  2. +
  3. Read-only mirrors cannot be written to. Mirroring is one-way, from source to destination(s)
  4. +
  5. Currently, only branches are mirrored. Tags and arbitrary commits that do not belong to any branch are not replicated
  6. +
  7. lakeFS Hooks will only run on the source repository, not its replicas
  8. +
  9. Replication is still asynchronous: reading from a branch will always return a valid commit that the source has pointed to, but it is not guaranteed to be the latest commit the source branch is pointing to.
  10. +
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/howto/private-link.html b/v1.46/howto/private-link.html new file mode 100644 index 000000000..c7f776512 --- /dev/null +++ b/v1.46/howto/private-link.html @@ -0,0 +1,912 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Private Link | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Private Link + + +

+ +

lakeFS Cloud

+ +

Private Link enables lakeFS Cloud to interact with your infrastructure using private networking.

+ + +

+ + + Supported Vendors + + +

+ + +

At the moment, we support Private-Link with AWS and Azure. If you are looking for Private Link for GCP please contact us.

+ +
+ +
+

+ + + Access Methods + + +

+ + +

There are two types of Private Link implementation:

+ +
    +
  • +

    Front-End Access refers to API and UI access. Use this option if you’d like your lakeFS application to be exposed only to your infrastructure and not to the whole internet.

    +
  • +
  • +

    Back-End Access refers to the network communication between the lakeFS clusters we host, and your infrastructure. Use this option if you’d like lakeFS to communicate with your servers privately and not over the internet.

    +
  • +
+ +

The two types of access are not mutually exclusive nor are they dependent on each other.

+ + +

+ + + Front-End Access + + +

+ + +

Prerequisites:

+
    +
  • Administrator access to your AWS account
  • +
  • In order for us to communicate with your account privately, we’ll need to create a service endpoint on our end first.
  • +
+ +

Steps:

+
    +
  1. Login to your AWS account
  2. +
  3. Go to AWS VPC Service
  4. +
  5. Filter the relevant VPC & Navigate to Endpoints
  6. +
  7. Click Create endpoint
  8. +
  9. Fill in the following: +
      +
    • Name: lakefs-cloud
    • +
    • Service category: Other endpoint services
    • +
    • Service name: input from Treeverse team (see prerequisites)
    • +
    • Click Verify service
    • +
    • Pick the VPC you’d like to expose this service to.
    • +
    • Click Create endpoint
    • +
    +
  10. +
+ +

Now you can access your infrastructure privately using the endpoint DNS name. If you would like to change the DNS name to a friendly one please contact support@treeverse.io.

+

+ + + Back-End Access + + +

+ + +

Prerequisites:

+
    +
  • Administrator access to your AWS account
  • +
+ +

Steps:

+
    +
  1. Login to your AWS account
  2. +
  3. Go to AWS VPC Service
  4. +
  5. Filter the relevant VPC & Navigate to Endpoints
  6. +
  7. Click endpoint service
  8. +
  9. Fill in the following: +
      +
    • Name: lakefs-cloud
    • +
    • Load Balancer Type: Network
    • +
    • Available load balancers: pick the load balancer you’d like lakefs-cloud to send events to.
    • +
    • Click Create
    • +
    +
  10. +
  11. Pick the newly created Endpoint Service from within the Endpoint Services page.
  12. +
  13. Navigate to the Allow principals tab.
  14. +
  15. Click Allow principals
  16. +
  17. Fill in the following ARN: arn:aws:iam::924819537486:root
  18. +
  19. Click Allow principals
  20. +
+ +

That’s it on your end! Now, we’ll need the service name you’ve just created in order to associate it with our infrastructure, once we do, we’ll be ready to use the back-end access privately.

+
+ +
+

Azure Private Link enables secure access to Azure services from a private endpoint within your virtual network. +By using Azure Private Link with lakeFS, you can securely access lakeFS services without exposing traffic to the public internet. +In this manual, we will guide you through the steps to enable Azure Private Link to your lakeFS instance.

+

+ + + Register your Azure subscription + + +

+ + +

To automatically approve private endpoint connections to the lakeFS network, please provide us with your subscription. If required, you can register multiple subscriptions.

+ + + +

Once your subscription is in our trusted subscriptions navigate to the Azure portal and do the following steps:

+
    +
  1. Navigate to the private endpoint
  2. +
  3. Click Create
  4. +
  5. On the first step (basics): +
      +
    • Select your subscription
    • +
    • Specify the desired resource group used to access lakeFS
    • +
    • Provide a name for your private endpoint instance
    • +
    • Specify the region of your lakeFS instance
    • +
    +
  6. +
  7. On the second step (Resource) +
      +
    • In connection method select connect to an Azure resource by resource ID or alias
    • +
    • Insert the alias provided by us into the Resource ID or alias
    • +
    • No need to add a request message
    • +
    +
  8. +
  9. Continue with the steps and run Review + Create
  10. +
+

+ + + Create a DNS entry for your private endpoint + + +

+ + +

Update your DNS server to resolve your account URL (which will be provided by us) to the Private Link IP address. +You can add the DNS entry to your on-premises DNS server or private DNS on your VNet, to access lakeFS services.

+
+
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/howto/protect-branches.html b/v1.46/howto/protect-branches.html new file mode 100644 index 000000000..b1ff009cb --- /dev/null +++ b/v1.46/howto/protect-branches.html @@ -0,0 +1,787 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Branch Protection | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Branch Protection Rules + + +

+ + +

Define branch protection rules to prevent direct changes and commits to specific branches. +Only merges are allowed into protected branches. Together with the power of pre-merge hooks, +you can run validations on your data before it reaches your important branches and is exposed to consumers.

+ +

You can create rules for a specific branch or any branch that matches a name pattern you specify with glob syntax (supporting ? and * wildcards).

+

+ + + How it works + + +

+ + +

When at least one protection rule applies to a branch, the branch is protected. The following operations will fail on protected branches:

+
    +
  1. Object write operations: upload and delete objects.
  2. +
  3. Branch operations: commit and reset uncommitted changes.
  4. +
+ +

To operate on a protected branch, merge commits from other branches into +it. Use pre-merge hooks to validate the changes before +they are merged.

+ +

Reverting a previous commit using lakectl branch revert is allowed on a protected branch.

+

+ + + Managing branch protection rules + + +

+ + +

This section explains how to use the lakeFS UI to manage rules. You can also use the command line and API.

+

+ + + Reaching the branch protection rules page + + +

+ + +
    +
  1. On lakeFS, navigate to the main page of the repository.
  2. +
  3. Click on the Settings tab.
  4. +
  5. In the left menu, click Branches.
  6. +
+

+ + + Adding a rule + + +

+ + +

To add a new rule, click the Add button. In the dialog, enter the branch name pattern and then click Create.

+ +

Adding a branch protection rule

+

+ + + Deleting a rule + + +

+ + +

To delete a rule, click the Delete button next to it.

+ +

Deleting a branch protection rule

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/howto/pull-requests.html b/v1.46/howto/pull-requests.html new file mode 100644 index 000000000..dc471d25d --- /dev/null +++ b/v1.46/howto/pull-requests.html @@ -0,0 +1,795 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Pull Requests | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Pull Requests + + +

+ + +

A pull request is a proposal to merge a set of changes from one branch into another. +In a pull request, collaborators can review the proposed set of changes before they integrate the changes. +Pull requests display the differences, or diffs, between the content in the source branch and the content in the target branch.

+ +
+

+ + + Table of contents + + +

+ + +
    +
  1. Open a Pull Request
  2. +
  3. Review Changes
  4. +
  5. Merge or Close
  6. +
  7. View Pull Requests
  8. +
+ +
+

+ + + Open a Pull Request + + +

+ + +

Create a branch, and make all the necessary changes in that branch. +When your changes are ready for review, head over to the Pull Requests tab in your repository. +Choose your source branch and target branch, add a title and description (optional, and markdown is supported).

+ +

Open Pull Request

+ +

When ready, click Create Pull Request. You will be redirected to the newly created pull request page.

+

+ + + Review Changes + + +

+ + +

Run validation checks or automated data quality tests to ensure that the changes meet your standards.

+ +

Review Pull Request

+ +

Every Pull Request is assigned a unique ID. You can share the Pull Request’s URL with others to review the change.

+ +

As with any lakeFS reference, reviewers can take the source branch, query, test and modify it as necessary prior to merging.

+

+ + + Merge or Close + + +

+ + +

Once the review is complete and all checks have passed, click the Merge pull request button to merge the changes into the target branch.

+ +

Merged Pull Request

+ +

The data is now updated in a controlled and transparent manner.

+ +

If the changes are not ready to be merged, you can close the pull request without merging the changes, by clicking the Close pull request button.

+

+ + + View Pull Requests + + +

+ + +

You can view all open and closed pull requests in the Pull Requests tab in your repository. +The tabs (Open, Closed) allow you to filter the list of pull requests according to their status.

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/howto/scim.html b/v1.46/howto/scim.html new file mode 100644 index 000000000..3dcaae02a --- /dev/null +++ b/v1.46/howto/scim.html @@ -0,0 +1,868 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +System for Cross-domain Identity Management (SCIM) | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + System for Cross-domain Identity Management (SCIM) + + +

+ +

lakeFS Cloud

+ +

lakeFS Enterprise

+ +

lakeFS Cloud includes an SCIM v2.0 compliant server, which can integrate with SCIM clients (IdPs) to automate provisioning/de-provisioning of users and groups.

+ + +

+ + + Officially Supported Clients (IdPs), Capabilities, and Limitations + + +

+ +

+ + + Supported Clients (IdPs) + + +

+ + +

Currently, the lakeFS Cloud SCIM server has been tested and validated with Entra ID (a.k.a Azure AD). However, with SCIM v2.0 being an accepted standard, any SCIM-compliant IdP should be able to integrate with lakeFS Cloud.

+

+ + + Capabilities + + +

+ +

+ + + User Provisioning + + +

+ + +
    +
  • Create users: Users and members of groups assigned to the application will be provisioned in lakeFS Cloud
  • +
  • Update user attributes: Changes to supported user attributes are synced to lakeFS Cloud
  • +
  • Deactivate users: Deactivating a user or removing their assignment to the application will disable them in lakeFS Cloud
  • +
  • User adoption: Users that are already found in lakeFS Cloud will be “adopted” by the IdP and not re-created
  • +
+

+ + + Group Provisioning + + +

+ + +
    +
  • Create groups: Groups assigned to the application are created in lakeFS Cloud and any group user members are created and added to the group in lakeFS Cloud
  • +
  • Update group name: When a synced group is renamed in the IdP, it will be renamed in lakeFS Cloud
  • +
  • Add/remove members: When members are added/removed from an assigned group, they will be added/removed from the group in lakeFS Cloud
  • +
  • Group adoption: Groups that already exist in lakeFS Cloud will be “adopted” by the IdP and not re-created
  • +
+ + + +

The lakeFS Cloud SCIM server requires the minimum set of user attributes required for provisioning. The required attributes are a sub-set of the basic user profile, which is exchanged during federated authentication/SSO login. User consent is requested by the IdP upon first login to lakeFS Cloud.

+

+ + + Known Limitations + + +

+ + +
    +
  • User and group policies can only be managed in lakeFS
    +This means groups and users newly created via SCIM only have basic read permissions. The lakeFS UI or API must be used to attach policies to those users and groups. However, if a user is created and added to an existing group with an attached policy, that user will receive the permissions allowed by the policy attached to the group.
  • +
  • Only direct group memberships are provisioned via SCIM
    +Both Okta and Entra ID only support syncing direct group membership via SCIM. This means that if you assign a group to the application, only its user members will be provisioned via SCIM. SCIM provisioning will not cascade to member groups and their members, and so forth.
  • +
+

+ + + Enabling SCIM in lakeFS Cloud + + +

+ + +

To enable SCIM support in lakeFS Cloud, you need to log into the cloud admin. In the cloud admin, SCIM settings are under Access > Settings. SCIM is not enabled by default, so to enable SCIM for the organization, click the Setup Provisioning Button.

+ +

lakeFS Cloud SCIM Settings

+ +

Clicking the button will enable SCIM for the organization and provide the details you’ll need to set up your IdP to work with lakeFS Cloud SCIM.

+ +

lakeFS Cloud SCIM Configuration

+ +

To set up your IdP, you’ll need the lakeFS Cloud SCIM provisioning endpoint and you’ll also need to generate an integration token. When creating a new integration token, you can optionally provide a description for future reference.

+ +
+

Note: The token value is only presented once, right after creation. Make sure to copy the token, as its value isn’t stored and cannot be retrieved after the initial creation.

+
+

+ + + Setting Up SCIM Provisioning in Entra ID (a.k.a Azure AD) + + +

+ + +
+

Note: This guide assumes you’ve already set up an Entra ID enterprise application for federated authentication to lakeFS Cloud.

+
+ +

In the Entra ID admin dashboard, go to Enterprise Applications and choose the lakeFS Cloud enterprise application from the list. Then click Provisioning in the sidebar and then Get Started.

+ +
    +
  1. In the provisioning settings set mode to Automatic
  2. +
  3. In Tenant URL enter the URL from the lakeFS Cloud provisioning settings
  4. +
  5. In Secret Token paste the token you copied in the previous step. If you haven’t created a token yet, you may do so now
  6. +
  7. Click Test Connection
  8. +
  9. If the test fails, please ensure you’ve entered the correct SCIM endpoint URL from lakeFS Cloud and copied the token correctly. Otherwise, click “Save” at the top of the settings panel
  10. +
+ +
+

Note: lakeFS Cloud is designed to work with the default attribute mapping for users and groups provided by Entra ID. +If your organization has customized the user and/or group entities in Entra ID, you might want to set mappings in accordance with those. +You can find details of how this is done in the Entra ID documentation.
+Incorrectly modifying these mappings can break provisioning functionality, so it’s advised to do so cautiously and only when necessary.

+
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/howto/sizing-guide.html b/v1.46/howto/sizing-guide.html new file mode 100644 index 000000000..62cbd9420 --- /dev/null +++ b/v1.46/howto/sizing-guide.html @@ -0,0 +1,1434 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Sizing Guide | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Sizing guide + + +

+ + +

Note: For a scalable managed lakeFS service with guaranteed SLAs, try lakeFS Cloud

+ +
+

+ + + Table of contents + + +

+ + +
    +
  1. System Requirements
  2. +
  3. Scaling factors
  4. +
  5. Benchmarks
  6. +
  7. Important metrics
  8. +
  9. Reference architectures
  10. +
+ +
+

+ + + System Requirements + + +

+ +

+ + + Operating Systems and ISA + + +

+ +

lakeFS can run on MacOS and Linux. Windows binaries are available but not rigorously tested - +we don’t recommend deploying lakeFS to production on Windows. +x86_64 and arm64 architectures are supported for both MacOS and Linux.

+

+ + + Memory and CPU requirements + + +

+ +

lakeFS servers require a minimum of 512mb of RAM and 1 CPU core. +For high throughput, additional CPUs help scale requests across different cores. +“Expensive” operations such as large diff or commit operations can take advantage of multiple cores.

+

+ + + Network + + +

+ +

If using the data APIs such as the S3 Gateway, +lakeFS will require enough network bandwidth to support the planned concurrent network upload/download operations. +For most cloud providers, more powerful machines (i.e., more expensive and usually containing more CPU cores) also provide increased network bandwidth.

+ +

If using only the metadata APIs (for example, only using the Hadoop/Spark clients), network bandwidth is minimal, +at roughly 1Kb per request.

+

+ + + Disk + + +

+ +

lakeFS greatly benefits from fast local disks. +A lakeFS instance doesn’t require any strong durability guarantees from the underlying storage, +as the disk is only ever used as a local caching layer for lakeFS metadata and not for long-term storage. +lakeFS is designed to work with ephemeral disks - +these are usually based on NVMe and are tied to the machine’s lifecycle. +Using ephemeral disks lakeFS can provide a very high throughput/cost ratio, +probably the best that could be achieved on a public cloud, so we recommend those.

+ +

A local cache of at least 512 MiB should be provided. +For large installations (managing >100 concurrently active branches, with >100M objects per commit), +we recommend allocating at least 10 GiB - since it’s a caching layer over a relatively slow storage (the object store), +see Important metrics below to understand how to size this: it should be big enough to hold all commit metadata for actively referenced commits.

+

+ + + lakeFS KV Store + + +

+ + +

lakeFS uses a key-value database to manage branch references, authentication and authorization information +and to keep track of currently uncommitted data across branches.
+Please refer to the relevant driver tab for best practices, requirements and benchmarks.

+

+ + + Storage + + +

+ +

The dataset stored in the metadata store is relatively modest as most metadata is pushed down into the object store. +Required storage is mostly a factor of the amount of uncommitted writes across all branches at any given point in time: +in the range of 150 MiB per every 100,000 uncommitted writes.

+ +

We recommend starting at 10 GiB for a production deployment, as it will likely be more than enough.

+ +
+ +
+ +

RAM
+Since the data size is small, it’s recommended to provide enough memory to hold the vast majority of that data in RAM. +Cloud providers will save you the need to tune this parameter - it will be set to a fixed percentage the chosen instance’s available RAM (25% on AWS RDS, 30% on Google Cloud SQL). +It is recommended that you check with your selected cloud provider for configuration and provisioning information for you database. +For self-managed database instances follow these best practices

+ +

Ideally, configure the shared_buffers +of your PostgreSQL instances to be large enough to contain the currently active dataset. +Pick a database instance with enough RAM to accommodate this buffer size at roughly x4 the size given for shared_buffers. For example, if an installation has ~500,000 uncommitted writes at any given time, it would require about 750 MiB of shared_buffers +that would require about 3 GiB of RAM.

+ +

CPU
+PostgreSQL CPU cores help scale concurrent requests. 1 CPU core for every 5,000 requests/second is ideal.

+
+
+

lakeFS will create a DynamoDB table for you, defaults to on-demand capacity setting. No need to specify how much read and write throughput you expect your application to perform, as DynamoDB instantly accommodates your workloads as they ramp up or down.

+ +

You can customize the table settings to provisioned capacity which allows you to manage and optimize your costs by allocating read/write capacity in advance (see Benchmarks)

+ +

Notes:

+
    +
  • Using DynamoDB on-demand capacity might generate unwanted costs if the table is abused, if you’d like to cap your costs, make sure to change the table to use provisioned capacity instead.
  • +
  • lakeFS doesn’t manage the DynamoDB’s table lifecycle, we’ve included the table creation in order to help evaluating the system with minimal effort, any change to the table beyond the table creation - will need to be handled manually or by 3rd party tools.
  • +
+ +

RAM
+Managed by AWS.

+ +

CPU
+Managed by AWS.

+
+
+

+ + + Scaling factors + + +

+ + +

Scaling lakeFS, like most data systems, moves across two axes: throughput of requests (amount per given timeframe) and latency (time to complete a single request).

+

+ + + Understanding latency and throughput considerations + + +

+ + +

Most lakeFS operations are designed to be very low in latency. +Assuming a well-tuned local disk cache (see Storage above), +most critical path operations +(writing objects, requesting objects, deleting objects) are designed to complete in <25ms at p90. +Listing objects obviously requires accessing more data, but should always be on-par with what the underlying object store can provide, +and in most cases, it’s actually faster. +At the worst case, for directory listing with 1,000 common prefixes returned, expect a latency of 75ms at p90.

+ +

Managing branches (creating them, listing them and deleting them) are all constant-time operations, generally taking <30ms at p90.

+ +

Committing and merging can take longer, as they are proportional to the amount of changes introduced. +This is what makes lakeFS optimal for large Data Lakes - +the amount of changes introduced per commit usually stays relatively stable while the entire data set usually grows over time. +This means lakeFS will provide predictable performance: +committing 100 changes will take roughly the same amount of time whether the resulting commit contains 500 or 500 million objects.

+ +

See Data Model for more information.

+ +

Scaling throughput depends very much on the amount of CPU cores available to lakeFS. +In many cases, it’s easier to scale lakeFS across a fleet of smaller cloud instances (or containers) +than scale up with machines that have many cores. In fact, lakeFS works well in both cases. +Most critical path operations scale very well across machines.

+

+ + + Benchmarks + + +

+ + +
+ +
+

+ + + PostgresSQL + + +

+ +

All benchmarks below were measured using 2 x c5ad.4xlarge instances +on AWS us-east-1. +Similar results can be achieved on Google Cloud using a c2-standard-16 machine type, with an attached local SSD. +On Azure, you can use a Standard_F16s_v2 virtual machine.

+ +

The PostgreSQL instance that was used is a db.m6g.2xlarge +(8 vCPUs, 32 GB RAM). Equivalent machines on Google Cloud or Azure should yield similar results.

+ +

The example repository we tested against contains the metadata of a large lakeFS installation, +where each commit contains ~180,000,000 objects (representing ~7.5 Petabytes of data).

+ +

All tests are reproducible using the lakectl abuse command, +so use it to properly size and tune your setup. All tests are accompanied by the relevant lakectl abuse command that generated them.

+

+ + + Random reads + + +

+ + +

This test generates random read requests to lakeFS, +in a given commit. Paths are requested randomly from a file containing a set of preconfigured (and existing) paths.

+ +

command executed:

+ +
lakectl abuse random-read \
+    --from-file randomly_selected_paths.txt \
+    --amount 500000 \
+    --parallelism 128 \
+    lakefs://example-repo/<commit hash>
+
+ +

Note lakeFS version <= v0.33.1 uses ‘@’ (instead of ‘/’) as separator between repository and commit hash.

+ +

Result Histogram (raw):

+ +
Histogram (ms):
+1	0
+2	0
+5	37945
+7	179727
+10	296964
+15	399682
+25	477502
+50	499625
+75	499998
+100	499998
+250	500000
+350	500000
+500	500000
+750	500000
+1000	500000
+5000	500000
+min	3
+max	222
+total	500000
+
+ +

So 50% of all requests took <10ms, while 99.9% of them took <50ms

+ +

throughput:

+ +

Average throughput during the experiment was 10851.69 requests/second

+

+ + + Random Writes + + +

+ + +

This test generates random write requests to a given lakeFS branch. +All the paths are pre-generated and don’t overwrite each other (as overwrites are relatively rare in a Data Lake setup).

+ +

command executed:

+ +
lakectl abuse random-write \
+    --amount 500000 \
+    --parallelism 64 \
+    lakefs://example-repo/main
+
+ +

Note lakeFS version <= v0.33.1 uses ‘@’ (instead of ‘/’) as separator between repository and branch.

+ +

Result Histogram (raw):

+ +
Histogram (ms):
+1	0
+2	0
+5	30715
+7	219647
+10	455807
+15	498144
+25	499535
+50	499742
+75	499784
+100	499802
+250	500000
+350	500000
+500	500000
+750	500000
+1000	500000
+5000	500000
+min	3
+max	233
+total	500000
+
+ +

So, 50% of all requests took <10ms, while 99.9% of them took <25ms.

+ +

throughput:

+ +

The average throughput during the experiment was 7595.46 requests/second.

+

+ + + Branch creation + + +

+ + +

This test creates branches from a given reference.

+ +

command executed:

+ +
lakectl abuse create-branches \
+    --amount 500000 \
+    --branch-prefix "benchmark-" \
+    --parallelism 256 \
+    lakefs://example-repo/<commit hash>
+
+ +

Note lakeFS version <= v0.33.1 uses ‘@’ (instead of ‘/’) as separator between repository and commit hash.

+ +

Result Histogram (raw):

+ +
Histogram (ms):
+1	0
+2	1
+5	5901
+7	39835
+10	135863
+15	270201
+25	399895
+50	484932
+75	497180
+100	499303
+250	499996
+350	500000
+500	500000
+750	500000
+1000	500000
+5000	500000
+min	2
+max	304
+total	500000
+
+ +

So, 50% of all requests took <15ms, while 99.9% of them took <100ms.

+ +

throughput:

+ +

The average throughput during the experiment was 7069.03 requests/second.

+
+
+

+ + + DynamoDB + + +

+ +

All benchmarks below were measured using m5.xlarge instance on AWS us-east-1.

+ +

The DynamoDB table that was used was provisioned with 500/1000 read/write capacity.

+ +

The example repository we tested against contains the metadata of a large lakeFS installation, where each commit contains ~100,000,000 objects (representing ~3.5 Petabytes of data).

+ +

All tests are reproducible using the lakectl abuse command, so use it to properly size and tune your setup. All tests are accompanied by the relevant lakectl abuse command that generated them.

+

+ + + Random reads + + +

+ + +

This test generates random read requests to lakeFS, +in a given commit. Paths are requested randomly from a file containing a set of preconfigured (and existing) paths.

+ +

command executed:

+ +
lakectl abuse random-read \
+    --from-file randomly_selected_paths.txt \
+    --amount 500000 \
+    --parallelism 128 \
+    lakefs://example-repo/<commit hash>
+
+ +

Result Histogram (raw): Provisioned read capacity units = 1000 +Provisioned write capacity units = 1000

+ +
Histogram (ms):
+1	0
+2	0
+5	0
+7	0
+10	0
+15	0
+25	122
+50	47364
+75	344489
+100	460404
+250	497912
+350	498016
+500	498045
+750	498111
+1000 498176
+5000 499478
+min	18
+max	52272
+total 500000
+
+ +

Result Histogram (raw): Provisioned read capacity units = 500 +Provisioned write capacity units = 500

+ +
Histogram (ms):
+1	0
+2	0
+5	0
+7	0
+10	0
+15	1
+25	2672
+50	239661
+75	420171
+100	470146
+250	486603
+350	486715
+500	486789
+750	487443
+1000	488113
+5000	493201
+min	14
+max	648085
+total	499998
+
+

+ + + Random Writes + + +

+ + +

This test generates random write requests to a given lakeFS branch. +All the paths are pre-generated and don’t overwrite each other (as overwrites are relatively rare in a Data Lake setup).

+ +

command executed:

+ +
lakectl abuse random-write \
+    --amount 500000 \
+    --parallelism 64 \
+    lakefs://example-repo/main
+
+ +

Result Histogram (raw): Provisioned read capacity units = 1000 +Provisioned write capacity units = 1000

+ +
Histogram (ms):
+1	0
+2	0
+5	0
+7	0
+10	0
+15	0
+25	24
+50	239852
+75	458504
+100	485225
+250	493687
+350	493872
+500	493960
+750	496239
+1000	499194
+5000	500000
+min	23
+max	4437
+total	500000
+
+

Result Histogram (raw): Provisioned read capacity units = 500 +Provisioned write capacity units = 500

+ +
Histogram (ms):
+1	0
+2	0
+5	0
+7	0
+10	0
+15	0
+25	174
+50	266460
+75	462641
+100	484486
+250	490633
+350	490856
+500	490984
+750	492973
+1000 495605
+5000 498920
+min	21
+max	50157
+total 500000
+
+

+ + + Branch creation + + +

+ + +

This test creates branches from a given reference.

+ +

command executed:

+ +
lakectl abuse create-branches \
+    --amount 500000 \
+    --branch-prefix "benchmark-" \
+    --parallelism 256 \
+    lakefs://example-repo/<commit hash>
+
+ +

Result Histogram (raw): Provisioned read capacity units = 1000 +Provisioned write capacity units = 1000

+ +
Histogram (ms):
+1	0
+2	0
+5	0
+7	0
+10	0
+15	0
+25	0
+50	628
+75	26153
+100	58099
+250	216160
+350	307078
+500	406165
+750	422898
+1000	431332
+5000	475848
+min	41
+max	430725
+total	490054
+
+ +

Result Histogram (raw): Provisioned read capacity units = 500 +Provisioned write capacity units = 500

+ +
Histogram (ms):
+1	0
+2	0
+5	0
+7	0
+10	0
+15	0
+25	0
+50	3132
+75	155570
+100	292745
+250	384224
+350	397258
+500	431141
+750	441360
+1000 445597
+5000 469538
+min	39
+max	760626
+total 497520
+
+ +
+
+

+ + + Important metrics + + +

+ + +

lakeFS exposes metrics using the Prometheus protocol. +Every lakeFS instance exposes a /metrics endpoint that could be used to extract them.

+ +

Here are a few notable metrics to keep track of when sizing lakeFS:

+ +

api_requests_total - Tracks throughput of API requests over time.

+ +

api_request_duration_seconds - Histogram of latency per operation type.

+ +

gateway_request_duration_seconds - Histogram of latency per S3 Gateway operation.

+ +
+ +
+ +

dynamo_request_duration_seconds - Time spent doing DynamoDB requests.

+ +

dynamo_consumed_capacity_total - The capacity units consumed by operation.

+ +

dynamo_failures_total - The total number of errors while working for kv store.

+ +
+
+

+ + + Reference architectures + + +

+ + +

Below are a few example architectures for lakeFS deployment.

+

+ + + Reference Architecture: Data Science/Research environment + + +

+ + +

Use case: Manage Machine learning or algorithms development. +Use lakeFS branches to achieve both isolation and reproducibility of experiments. +Data being managed by lakeFS is both structured tabular data, +as well as unstructured sensor and image data used for training. +Assuming a team of 20-50 researchers, with a dataset size of 500 TiB across 20M objects.

+ +

Environment: lakeFS will be deployed on Kubernetes. +managed by AWS EKS +with PostgreSQL on AWS RDS Aurora

+ +

Sizing: Since most of the work is done by humans (vs. automated pipelines), most experiments tend to be small in scale, +reading and writing 10s to 1000s of objects. +The expected amount of branches active in parallel is relatively low, around 1-2 per user, +each representing a small amount of uncommitted changes at any given point in time. +Let’s assume 5,000 uncommitted writes per branch = ~500k.

+ +

To support the expected throughput, a single moderate lakeFS instance should be more than enough, +since requests per second would be on the order of 10s to 100s. +For high availability, we’ll deploy 2 pods with 1 CPU core and 1 GiB of RAM each.

+ +

Since the PostgreSQL instance is expected to hold a very small dataset +(at 500k, expected dataset size is 150MiB (for 100k records) * 5 = 750MiB). +To ensure we have enough RAM to hold this, we’ll need 3 GiB of RAM, so, a very moderate Aurora instance db.t3.large (2 vCPUs, 8 GB RAM) will be more than enough. +An equivalent database instance on GCP or Azure should give similar results.

+ +

ML and Research lakeFS reference architecture

+

+ + + Reference Architecture: Automated Production Pipelines + + +

+ + +

Use case: Manage multiple concurrent data pipelines using Apache Spark and Airflow. +Airflow DAGs start by creating a branch for isolation and for CI/CD. +Data being managed by lakeFS is structured, tabular data. The total dataset size is 10 PiB, spanning across 500M objects. +The expected throughput is 10k reads/second + 2k writes per second across 100 concurrent branches.

+ +

Environment: lakeFS will be deployed on Kubernetes. +managed by AWS EKS +with PostgreSQL on AWS RDS

+ +

Sizing: Data pipelines tend to be bursty in nature: +reading in a lot of objects concurrently, doing some calculation or aggregation, and then writing many objects concurrently. +The expected amount of branches active in parallel is high, +with many Airflow DAGs running per day, each representing a moderate amount of uncommitted changes at any given point in time. +Let’s assume 1,000 uncommitted writes/branch * 2500 branches = ~2.5M records.

+ +

To support the expected throughput, looking the benchmarking numbers above, +we’re doing roughly 625 requests/core, so 24 cores should cover our peak traffic. We can deploy 6 * 4 CPU core pods.

+ +

On to the PostgreSQL instance - at 500k, the expected dataset size is 150MiB (for 100k records) * 25 = 3750 MiB. +To ensure we have enough RAM to hold this, we’ll need at least 15 GiB of RAM, so we’ll go with a db.r5.xlarge (4 vCPUs, 32GB RAM) Aurora instance. +An equivalent database instance on GCP or Azure should give similar results.

+ +

Automated pipelines lakeFS reference architecture

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/howto/unity-delta-sharing.html b/v1.46/howto/unity-delta-sharing.html new file mode 100644 index 000000000..ce5395c0b --- /dev/null +++ b/v1.46/howto/unity-delta-sharing.html @@ -0,0 +1,926 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Unity Delta Sharing | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Unity Delta Sharing + + +

+ +

lakeFS Cloud

+ +
+

Please note, as of June 15th 2024, the Unity Delta Sharing feature will be removed. To integrate lakeFS with Unity Catalog, refer to the Unity integration docs.

+
+

+ + + Introduction + + +

+ + +

lakeFS Unity Delta Sharing provides a read-only experience from Unity Catalog for lakeFS customers. Currently, this is available as a private +preview. It provides full read-only functionality for Unity Catalog. It does not provide a “self-service” experience to set up the service.

+

+ + + Setup + + +

+ + +

This guide explains how to set up and use lakeFS Delta Sharing. Currently, you will have to configure lakeFS Delta Sharing in collaboration with +Treeverse Customer Success. Once set up is complete, you will of course be able to use lakeFS Delta Sharing on existing and on new tables without +further assistance.

+

+ + + 1. Collect data and initial setup + + +

+ + +
    +
  • +

    Select a Delta Sharing configuration URL. This is a single location on lakeFS to hold the top-level configuration of lakeFS Delta Sharing across all +repositories of your organization. Typically, it will have the form lakefs://REPO/main/lakefs_delta_sharing.yaml for one of your +repositories. A longer path may be supplied - however, we do recommend keeping it on the main branch, as this object represents state +for the entire installation.

    +
  • +
  • +

    Create a user lakefs-delta-sharing-service for lakeFS Delta Sharing, and an access key for that user. It should have at least read permissions for +the configuration URL and for all repositories and all data accesses by Unity. lakeFS Delta Sharing will these credentials to communicate with lakeFS.

    +
  • +
+ +

Communicate these items to Customer Success:

+ +
    +
  • Configuration URL
  • +
  • Access key ID and secret access key for user lakefs-delta-sharing-service.
  • +
+ +

Note: All YAML files extensions used in this guide must be yaml. Do not use a yml extension instead.

+

+ + + 2. Initial configuration + + +

+ + +

Select a secret authorization token to share Unity catalog. Unity catalog will use to authenticate to the lakeFS Delta Sharing server.
+You might use this command on Linux:

+ +
head -c 50 /dev/random | base64
+
+ +

Create a file lakefs_delta_sharing.yaml and place it at the config URL selected above. It should look like this:

+ +
authorization_token: "GENERATED TOKEN"
+# Map lakeFS repositories to Unity shares
+repositories:
+    - id: sample-repo
+      share_name: undev
+      # List branches and prefixes to export.  Each of these branches (and only
+      # these branches) will be available as a schema on Unity.
+      branches:
+          - main
+          - staging
+          - dev_*
+    - id: repo2
+      share_name: share_two
+      branches:
+      - "*"
+
+ +

Note that a plain “*” line must be quoted in YAML.

+ +

Upload it to your config URL. For instance if the config URL is lakefs://repo/main/lakefs_delta_sharing.yaml, you might use:

+ +
lakectl fs upload -s ./lakefs_delta_sharing.yaml lakefs://repo/main/lakefs_delta_sharing.yaml
+
+

+ + + 3. Connect Unity to lakeFS Delta Sharing! + + +

+ + +

You now need to configure Unity to use the lakeFS Delta Sharing server. Create a share provider file config.share.json; see the Delta Sharing manual:

+ +
   {
+     "shareCredentialsVersion": 1,
+     "endpoint": "https://ORG_ID.REGION.lakefscloud.io/service/delta-sharing/v1",
+     "bearerToken": "GENERATED TOKEN",
+     "expirationTime": "2030-01-01T00:00:00.0Z"
+   }
+
+ +

“GENERATED TOKEN” is the secret authorization token use above.

+ +

Install the databricks cli. We will use it to create Delta Share on Unity. Follow the +instructions to configure it.

+ +

Run the provider creation command:

+
   databricks unity-catalog providers create \
+       --name lakefs-cloud \
+       --recipient-profile-json-file config.share.json
+
+ +

Go to “Data » Delta Sharing” on the DataBricks environment. Once Treeverse have configured lakeFS Delta Sharing on your account with your config URL, +the “lakefs-cloud” provider should appear under “Shared with me”.

+ +

lakeFS-Cloud provider appearing on DataBricks Delta Sharing / Shared with me

+ +

Click the provider to see its shares.

+ +

lakeFS-Cloud provider, showing share and create catalog

+ +

You can now create a catalog from these shares.

+ +

lakeFS-Cloud provider, create catalog from share

+ +

And you can see schemas for each of the branches that you configured in the share. Here branch name dev_experiment1 matches the pattern dev_* that +we defined in the configuration object lakefs-delta-sharing.yaml, so it appears as a schema.

+ +

lakeFS-Cloud provider, every configured branch is a schema

+ +

At this point you have configured Delta Sharing on lakeFS, and DataBricks to communicate with lakeFS delta sharing. No further Treeverse involvement is required.
+Updates to lakefs_delta_sharing.yaml will update within a minute of uploading a new version.

+

+ + + 4. Configure tables + + +

+ + +

Everything is ready: lakeFS repositories are configured as shares, and branches are configured as schemas. Now you can define tables! Once a +repository is shared, its tables are configured as a table descriptor object on the repository on the path _lakefs_tables/TABLE.yaml.

+

+ + + Delta Lake tables + + +

+ + +

Delta Lake format includes full metadata, so you only need to configure the prefix:

+ +
name: users
+type: delta
+path: path/to/users/
+
+ +

Note: The filename of the ‘yaml’ file containing the table definition must match the ‘name’ of the table itself. In the example above, ‘_lakefs_tables/users.yaml’.

+ +

When placed inside _lakefs_tables/users.yaml this defines a table users on the prefix path/to/users/ (so path/to/users/ holds the prefix _delta_log).

+

+ + + Hive tables + + +

+ + +

Hive metadata server tables are essentially just a set of objects that share a prefix, with no table metadata stored on the object store. You need to configure prefix, partitions, and schema.

+ +
name: clicks
+type: hive
+path: path/to/clicks/
+partition_columns: ['year']
+schema:
+  type: struct
+  fields:
+    - name: year
+      type: integer
+      nullable: false
+      metadata: {}
+    - name: page
+      type: string
+      nullable: false
+      metadata: {}
+    - name: site
+      type: string
+      nullable: true
+      metadata:
+        comment: a comment about this column
+
+ +

Useful types recognized by DataBricks Photon include integer, long, short, string, double, float, date, and timestamp.
+For exact type mappings, and whether to specify a field as nullable: false, refer to DataBricks Photon documentation.

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/howto/upgrade.html b/v1.46/howto/upgrade.html new file mode 100644 index 000000000..63831114b --- /dev/null +++ b/v1.46/howto/upgrade.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/howto/virtual-host-addressing.html b/v1.46/howto/virtual-host-addressing.html new file mode 100644 index 000000000..dabf61113 --- /dev/null +++ b/v1.46/howto/virtual-host-addressing.html @@ -0,0 +1,793 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +S3 Virtual-host addressing (advanced) | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Configuring lakeFS to use S3 Virtual-Host addressing + + +

+ +

+ + + Understanding virtual-host addressing + + +

+ + +

Some systems require S3 endpoints (such as lakeFS’s S3 Gateway) to support virtual-host style addressing.

+ +

lakeFS supports this, but requires some configuration in order to extract the bucket name (used as the lakeFS repository ID) from the host address.

+ +

For example:

+ +
GET http://foo.example.com/some/location
+
+ +

There are two ways to interpret the URL above:

+
    +
  • as a virtual-host URL where the endpoint URL is example.com, the bucket name is foo, and the path is /some/location
  • +
  • as a path-based URL where the endpoint is foo.example.com, the bucket name is some and the path is location
  • +
+ +

By default, lakeFS reads URLs as path-based. To read the URL as a virtual-host request, lakeFS requires additional configuration which includes +defining an explicit set of DNS records for the lakeFS S3 gateway.

+

+ + + Adding an explicit S3 domain name to the S3 Gateway configuration + + +

+ + +

The first step would be to tell the lakeFS installation which hostnames are used for the S3 Gateway. This should be a different DNS record from the one used for e.g. the UI or API.

+ +

Typically, if the lakeFS installation is served under lakefs.example.com, a good choice would be s3.lakefs.example.com.

+ +

This could be done using either an environment variable:

+ +
LAKEFS_GATEWAYS_S3_DOMAIN_NAME="s3.lakefs.example.com"
+
+ +

Or by adding the gateways.s3.domain_name setting to the lakeFS config.yaml file:

+ +
---
+database:
+  connection_string: "..."
+
+...
+
+# This section defines an explict S3 gateway address that supports virtual-host addressing
+gateways:
+  s3:
+    domain_name: s3.lakefs.example.com
+
+ +

For more information on how to configure lakeFS, check out the configuration reference

+

+ + + Setting up the appropriate DNS records + + +

+ + +

Once our lakeFS installation is configured with an explicit S3 gateway endpoint address, we need to define 2 DNS records and have them point at our lakeFS installation. +This requires 2 CNAME records:

+ +
    +
  1. s3.lakefs.example.com - CNAME to lakefs.example.com. This would be used as the S3 endpoint when configuring clients and will serve as our bare domain.
  2. +
  3. *.s3.lakefs.example.com - Also a CNAME to lakefs.example.com. This will resolve virtual-host requests such as example-repo.s3.lakefs.example.com that lakeFS would now know how to parse.
  4. +
+ +
+

For more information on how to configure these, see the official documentation of your DNS provider.

+

On AWS, This could also be done using ALIAS records for a load balancer.

+
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/index.html b/v1.46/index.html new file mode 100644 index 000000000..44ab19790 --- /dev/null +++ b/v1.46/index.html @@ -0,0 +1,928 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Welcome to lakeFS | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ +
+ +

+ + + Welcome to the Lake! + + +

+ + +

+ +

lakeFS brings software engineering best practices and applies them to data.

+ +

lakeFS provides version control over the data lake, and uses Git-like semantics to create and access those versions. If you know git, you’ll be right at home with lakeFS.

+ +

With lakeFS, you can use concepts on your data lake such as branch to create an isolated version of the data, commit to create a reproducible point in time, and merge in order to incorporate your changes in one atomic action.

+ + +

+ + + How Do I Get Started? + + +

+ + +

The hands-on quickstart guides you through some core features of lakeFS.

+ +

These include branching, merging, and rolling back changes to data.

+ +

You can use the 30-day free trial of lakeFS Cloud if you want to try out lakeFS without installing anything.

+

+ + + Key lakeFS Features + + +

+ + +
    +
  • It is format-agnostic.
  • +
  • It works with numerous data tools and platforms.
  • +
  • Your data stays in place.
  • +
  • It eliminates the need for data duplication using zero-copy branching.
  • +
  • It maintains high performance over data lakes of any size.
  • +
  • It includes configurable garbage collection capabilities.
  • +
  • It is proven in production and has an active community.
  • +
+ +

lakeFS integration into data lake

+

+ + + How Does lakeFS Work With Other Tools? + + +

+ + +

lakeFS is an open source project that supports managing data in AWS S3, Azure Blob Storage, Google Cloud Storage (GCS) and any other object storage with an S3 interface. It integrates seamlessly with popular data frameworks such as Spark, Hive Metastore, dbt, Trino, Presto, and many others and includes an S3 compatibility layer.

+ +

For more details and a full list see the integrations pages.

+ +

+ +

+ +

lakeFS maintains compatibility with the S3 API to minimize adoption +friction. You can use it as a drop-in replacement for S3 from the perspective of +any tool interacting with a data lake.

+ +

For example, take the common operation of reading a collection of data from an object storage into a Spark DataFrame. For data outside a lakeFS repo, the code will look like this:

+ +
df = spark.read.parquet("s3a://my-bucket/collections/foo/")
+
+ +

After adding the data collections into my-bucket to a repository, the same operation becomes:

+ +
df = spark.read.parquet("s3a://my-repo/main-branch/collections/foo/")
+
+ +

You can use the same methods and syntax you are already using to read and write data when using a lakeFS repository. This simplifies the adoption of lakeFS - minimal changes are needed to get started, making further changes an incremental process.

+

+ + + lakeFS is Git for Data + + +

+ + +

Git conquered the world of code because it had best supported engineering best practices required by developers, in particular:

+ +
    +
  • Collaborate during development.
  • +
  • Develop and Test in isolation
  • +
  • Revert code repository to a sable version in case of an error
  • +
  • Reproduce and troubleshoot issues with a given version of the code
  • +
  • Continuously integrate and deploy new code (CI/CD)
  • +
+ +

lakeFS provides these exact benefits, that are data practitioners are missing today, and enables them a clear intuitive Git-like interface to easily manage their data like they manage code. Through its versioning engine, lakeFS enables the following built-in operations familiar from Git:

+ +
    +
  • branch: a consistent copy of a repository, isolated from other branches and their changes. Initial creation of a branch is a metadata operation that does not duplicate objects.
  • +
  • commit: an immutable checkpoint containing a complete snapshot of a repository.
  • +
  • merge: performed between two branches — merges atomically update one branch with the changes from another.
  • +
  • revert: returns a repo to the exact state of a previous commit.
  • +
  • tag: a pointer to a single immutable commit with a readable, meaningful name.
  • +
+ +

See the object model for an in-depth +definition of these, and the CLI reference for the +full list of commands.

+ +

Incorporating these operations into your data lake pipelines provides the same collaboration and organizational benefits you get when managing application code with source control.

+

+ + + The lakeFS Promotion Workflow + + +

+ + +

Here’s how lakeFS branches and merges improve the universal process of updating collections with the latest data.

+ +

lakeFS promotion workflow

+ +
    +
  1. First, create a new branch from main to instantly generate a complete “copy” of your production data.
  2. +
  3. Apply changes or make updates on the isolated branch to understand their impact prior to exposure.
  4. +
  5. And finally, perform a merge from the feature branch back to main to atomically promote the updates into production.
  6. +
+ +

Following this pattern, lakeFS facilitates a streamlined data deployment workflow that consistently produces data assets you can have total confidence in.

+

+ + + How Can lakeFS Help Me? + + +

+ + +

lakeFS helps you maintain a tidy data lake in several ways, including:

+

+ + + Isolated Dev/Test Environments with zero-copy branching + + +

+ + +

lakeFS makes creating isolated dev/test environments for ETL testing instantaneous, and through its use of zero-copy branching, cheap. This enables you to test and validate code changes on production data without impacting it, as well as run analysis and experiments on production data in an isolated clone.

+ +

👉🏻 Read more

+

+ + + Reproducibility: What Did My Data Look Like at a Point In Time? + + +

+ + +

Being able to look at data as it was at a given point is particularly useful in at least two scenarios:

+ +
    +
  1. +

    Reproducibility of ML experiments

    + +

    ML experimentation is iterative, requiring the ability to reproduce specific results. With lakeFS, you can version all aspects of an ML experiment, including the data. This enables:

    + +

    Data Lineage: Track the transformation of data from raw datasets to the final version used in experiments, ensuring transparency and traceability.

    + +

    Zero-Copy Branching: Minimize storage use by creating lightweight branches of your data, allowing for easy experimentation across different versions.

    + +

    Easy Integration: Seamlessly integrate with ML tools like MLFlow, linking experiments directly to the exact data versions used, making reproducibility straightforward.

    + +

    lakeFS enhances your ML workflow by ensuring that all versions of data are easily accessible, traceable, and reproducible.

    +
  2. +
  3. +

    Troubleshooting production problems

    + +

    Data engineers are often asked to validate the data. A user might report inconsistencies, question the accuracy, or simply report it to be incorrect.

    + +

    Since the data continuously changes, it is challenging to understand its state at the time of the error.

    + +

    With lakeFS you can create a branch from a commit to debug an issue in isolation.

    +
  4. +
+ +

👉🏻 Read More

+

+ + + Rollback of Data Changes and Recovery from Data Errors + + +

+ + +

Human error or misconfigurations can lead to erroneous data making its way into production or critical data being accidentally deleted. Traditional backups are often inadequate for recovery in these situations, as they may be outdated and require time-consuming object-level sifting.

+ +

With lakeFS, you can avoid these inefficiencies by committing snapshots of data at well-defined times. This allows for instant recovery: simply identify a good historical commit and restore or copy from it with a single operation.

+ +

👉🏻 Read more

+

+ + + Establishing data quality guarantees - CI/CD for data + + +

+ + +

The best way to deal with mistakes is to avoid them. A data source that is ingested into the lake introducing low-quality data should be blocked before exposure if possible.

+ +

With lakeFS, you can achieve this by tying data quality tests to commit and merge operations via lakeFS hooks.

+ +

👉🏻 Read more

+

+ + + Next Step + + +

+ + +

Try lakeFS on the cloud or run it locally

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/integrations/airbyte.html b/v1.46/integrations/airbyte.html new file mode 100644 index 000000000..6d8ba09e3 --- /dev/null +++ b/v1.46/integrations/airbyte.html @@ -0,0 +1,812 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Airbyte | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Airbyte + + +

+ + +

Airbyte is an open-source platform for syncing data from applications, APIs, and databases to +warehouses, lakes, and other destinations. You can use Airbyte’s connectors to get your data pipelines to consolidate +many input sources.

+ +

The integration between Airbyte and lakeFS brings resilience and manageability when you use Airbyte +connectors to sync data to your S3 buckets by leveraging lakeFS branches and atomic commits and merges.

+

+ + + Use cases + + +

+ + +

You can take advantage of lakeFS consistency guarantees and Data Lifecycle Management when ingesting data to S3 using lakeFS:

+ +
    +
  1. Consolidate many data sources to a single branch and expose them to consumers simultaneously when merging to the main branch.
  2. +
  3. Test incoming data for breaking schema changes using lakeFS hooks.
  4. +
  5. Prevent consumers from reading partial data from connectors which failed half-way through sync.
  6. +
  7. Experiment with ingested data on a branch before exposing it.
  8. +
+

+ + + S3 Connector + + +

+ + +

lakeFS exposes an S3 Gateway that enables applications to communicate +with lakeFS the same way they would with Amazon S3. +You can use Airbyte’s S3 Connector to upload data to lakeFS.

+ +
+

Note

+ +

If using Airbyte OSS, please ensure you are using S3 destination connector version 0.3.17 or higher. +Previous connector versions are not supported.

+
+

+ + + Configuring lakeFS using the connector + + +

+ + +

Set the following parameters when creating a new Destination of type S3:

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameValueExample
EndpointThe lakeFS S3 gateway URLhttps://cute-axolotol.lakefs-demo.io
S3 Bucket NameThe lakeFS repository where the data will be writtenexample-repo
S3 Bucket PathThe branch and the path where the data will be writtenmain/data/from/airbyte Where main is the branch name, and data/from/airbyte is the path under the branch.
S3 Bucket RegionNot applicable to lakeFS, use us-east-1us-east-1
S3 Key IDThe lakeFS access key id used to authenticate to lakeFS.AKIAlakefs12345EXAMPLE
S3 Access KeyThe lakeFS secret access key used to authenticate to lakeFS.abc/lakefs/1234567bPxRfiCYEXAMPLEKEY
+ +

The UI configuration will look as follows:

+ +

S3 Destination Connector Configuration

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/integrations/airflow.html b/v1.46/integrations/airflow.html new file mode 100644 index 000000000..d2bf61a01 --- /dev/null +++ b/v1.46/integrations/airflow.html @@ -0,0 +1,875 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Apache Airflow | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Using lakeFS with Apache Airflow + + +

+ + +

Apache Airflow is a platform that allows users to programmatically author, schedule, and monitor workflows.

+ + + +

To run Airflow with lakeFS, you need to follow a few steps.

+

+ + + Create a lakeFS connection on Airflow + + +

+ + +

To access the lakeFS server and authenticate with it, create a new Airflow +Connection +of type HTTP and add it to your DAG. You can do that using the Airflow UI +or the CLI. Here’s an example Airflow command that does just that:

+ +
airflow connections add conn_lakefs --conn-type=HTTP --conn-host=http://<LAKEFS_ENDPOINT> \
+    --conn-extra='{"access_key_id":"<LAKEFS_ACCESS_KEY_ID>","secret_access_key":"<LAKEFS_SECRET_ACCESS_KEY>"}'
+
+

+ + + Install the lakeFS Airflow package + + +

+ + +

You can use pip to install the package

+ +
pip install airflow-provider-lakefs
+
+

+ + + Use the package + + +

+ +

+ + + Operators + + +

+ + +

The package exposes several operations to interact with a lakeFS server:

+ +
    +
  1. +

    CreateBranchOperator creates a new lakeFS branch from the source branch (main by default).

    + +
    task_create_branch = CreateBranchOperator(
    +   task_id='create_branch',
    +   repo='example-repo',
    +   branch='example-branch',
    +   source_branch='main'
    +)
    +
    +
  2. +
  3. +

    CommitOperator commits uncommitted changes to a branch.

    + +
    task_commit = CommitOperator(
    +    task_id='commit',
    +    repo='example-repo',
    +    branch='example-branch',
    +    msg='committing to lakeFS using airflow!',
    +    metadata={'committed_from": "airflow-operator'}
    +)
    +
    +
  4. +
  5. +

    MergeOperator merges 2 lakeFS branches.

    + +
    task_merge = MergeOperator(
    +  task_id='merge_branches',
    +  source_ref='example-branch',
    +  destination_branch='main',
    +  msg='merging job outputs',
    +  metadata={'committer': 'airflow-operator'}
    +)
    +
    +
  6. +
+

+ + + Sensors + + +

+ + +

Sensors are also available that allow synchronizing a running DAG with external operations:

+ +
    +
  1. +

    CommitSensor waits until a commit has been applied to the branch

    + +
    task_sense_commit = CommitSensor(
    +    repo='example-repo',
    +    branch='example-branch',
    +    task_id='sense_commit'
    +)
    +
    +
  2. +
  3. +

    FileSensor waits until a given file is present on a branch.

    + +
    task_sense_file = FileSensor(
    +    task_id='sense_file',
    +    repo='example-repo',
    +    branch='example-branch',
    +    path="file/to/sense"
    +)
    +
    +
  4. +
+

+ + + Example + + +

+ + +

This example DAG +in the airflow-provider-lakeFS repository shows how to use all of these.

+

+ + + Performing other operations + + +

+ + +

Sometimes an operator might not be supported by airflow-provider-lakeFS yet. You can access lakeFS directly by using:

+ +
    +
  • SimpleHttpOperator to send API requests to lakeFS.
  • +
  • BashOperator with lakectl commands. +For example, deleting a branch using BashOperator: +
    commit_extract = BashOperator(
    + task_id='delete_branch',
    + bash_command='lakectl branch delete lakefs://example-repo/example-branch',
    + dag=dag,
    +)
    +
    +
  • +
+ +

Note lakeFS version <= v0.33.1 uses ‘@’ (instead of ‘/’) as separator between repository and branch.

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/integrations/athena.html b/v1.46/integrations/athena.html new file mode 100644 index 000000000..ee0a5b4b8 --- /dev/null +++ b/v1.46/integrations/athena.html @@ -0,0 +1,862 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Amazon Athena | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Using lakeFS with Amazon Athena + + +

+ + +

Deprecated Feature: Having heard the feedback from the community, we are planning to replace the below manual steps with an automated process. +You can read more about it here.

+ +

Amazon Athena is an interactive query service that makes it easy to analyze data in Amazon S3 using standard SQL.

+ +

Amazon Athena works directly above S3 and can’t access lakeFS. Tables created using Athena aren’t readable by lakeFS. +However, tables stored in lakeFS (that were created with glue/hive) can be queried by Athena.

+ +

To support querying data from lakeFS with Amazon Athena, we will use create-symlink, one of the metastore commands in lakectl. +create-symlink receives a source table, destination table, and the table location. It performs two actions:

+
    +
  1. It creates partitioned directories with symlink files in the underlying S3 bucket.
  2. +
  3. It creates a table in Glue catalog with symlink format type and location pointing to the created symlinks.
  4. +
+ +

Note +.lakectl.yaml file should be configured with the proper hive/glue credentials. For more information

+ +

create-symlink receives a table in glue or hive pointing to lakeFS and creates a copy of the table in glue. +The table data will use the SymlinkTextInputFormat, which will point to the lakeFS repository storage namespace. You will be able to query your data with Athena without copying any data. However, the symlinks table will only show the data that existed during +the copy. If the table changed in lakeFS, you need to run create-symlink again for your changed to be reflected in Athena.

+

+ + + Example: + + +

+ + +

Let’s assume that some time ago, we created a hive table my_table that is stored in lakeFS repo example under branch main, using the command:

+
CREATE EXTERNAL TABLE `my_table`(
+   `id` bigint, 
+   `key` string 
+)
+PARTITIONED BY (YEAR INT, MONTH INT)
+LOCATION 's3://example/main/my_table';
+WITH (format = 'PARQUET', external_location 's3a://example/main/my_table' );
+
+ +

The repository example has the S3 storage space s3://my-bucket/my-repo-prefix/. +After inserting some data into it, the object structure under lakefs://example/main/my_table looks as follows:

+ +

lakefs_table.png

+ +

To query that table with Athena, you need to use the create-symlink command as follows:

+ +
lakectl metastore create-symlink \
+  --repo example \
+  --branch main \
+  --path my_table \
+  --from-client-type hive \
+  --from-schema default \
+  --from-table my_table \
+  --to-schema default \ 
+  --to-table my_table  
+
+ +

The command will generate two notable outputs:

+ +
    +
  1. For each partition, the command will create a symlink file:
  2. +
+ +
aws s3 ls s3://my-bucket/my-repo-prefix/my_table/ --recursive
+2021-11-23 17:46:29          0 my-repo-prefix/my_table/symlinks/example/main/my_table/year=2021/month=11/symlink.txt
+2021-11-23 17:46:29         60 my-repo-prefix/my_table/symlinks/example/main/my_table/year=2021/month=12/symlink.txt
+2021-11-23 17:46:30         60 my-repo-prefix/my_table/symlinks/example/main/my_table/year=2022/month=1/symlink.txt
+
+ +

An example content of a symlink file, where each line represents a single object of the specific partition:

+ +
s3://my-bucket/my-repo-prefix/5bdc62da516944b49889770d98274227
+s3://my-bucket/my-repo-prefix/64262fbf3d6347a79ead641d2b2baee6
+s3://my-bucket/my-repo-prefix/64486c8de6484de69f12d7d26804c93e
+s3://my-bucket/my-repo-prefix/b0165d5c5b13473d8a0f460eece9eb26
+
+ +
    +
  1. A glue table pointing to the symlink directories structure:
  2. +
+ +
aws glue get-table --name my_table --database-name default
+
+{
+  "Table": {
+    "Name": "my_table",
+    "DatabaseName": "default",
+    "Owner": "anonymous",
+    "CreateTime": "2021-11-23T17:46:30+02:00",
+    "UpdateTime": "2021-11-23T17:46:30+02:00",
+    "LastAccessTime": "1970-01-01T02:00:00+02:00",
+    "Retention": 0,
+    "StorageDescriptor": {
+      "Columns": [
+        {
+          "Name": "id",
+          "Type": "bigint",
+          "Comment": ""
+        },
+        {
+          "Name": "key",
+          "Type": "string",
+          "Comment": ""
+        }
+      ],
+      "Location": "s3://my-bucket/my-repo-prefix/symlinks/example/main/my_table",
+      "InputFormat": "org.apache.hadoop.hive.ql.io.SymlinkTextInputFormat",
+      "OutputFormat": "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat",
+      "Compressed": false,
+      "NumberOfBuckets": -1,
+      "SerdeInfo": {
+        "Name": "default",
+        "SerializationLibrary": "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe",
+        "Parameters": {
+          "serialization.format": "1"
+        }
+      },
+      "StoredAsSubDirectories": false
+    },
+    "PartitionKeys": [
+      {
+        "Name": "year",
+        "Type": "int",
+        "Comment": ""
+      },
+      {
+        "Name": "month",
+        "Type": "int",
+        "Comment": ""
+      }
+    ],
+    "ViewOriginalText": "",
+    "ViewExpandedText": "",
+    "TableType": "EXTERNAL_TABLE",
+    "Parameters": {
+      "EXTERNAL": "TRUE",
+      "bucketing_version": "2",
+      "transient_lastDdlTime": "1637681750"
+    },
+    "CreatedBy": "arn:aws:iam::************:user/********",
+    "IsRegisteredWithLakeFormation": false,
+    "CatalogId": "*********"
+  }
+}
+
+ +

You can now safely use Athena to query my_table.

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/integrations/aws_cli.html b/v1.46/integrations/aws_cli.html new file mode 100644 index 000000000..7ac653a5a --- /dev/null +++ b/v1.46/integrations/aws_cli.html @@ -0,0 +1,892 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +AWS CLI | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Using lakeFS with AWS CLI + + +

+ +

lakeFS exposes an S3-compatible API, so you can use the AWS S3 CLI to interact with objects in your repositories.

+

+ + + Table of contents + + +

+ + +
    +
  1. Configuration
  2. +
  3. Path convention
  4. +
  5. Usage
  6. +
  7. Examples
      +
    1. List directory
    2. +
    3. Copy from lakeFS to lakeFS
    4. +
    5. Copy from lakeFS to a local path
    6. +
    7. Copy from a local path to lakeFS
    8. +
    9. Delete file
    10. +
    11. Delete directory
    12. +
    +
  8. +
  9. Adding an alias
  10. +
+

+ + + Configuration + + +

+ + +

You would like to configure an AWS profile for lakeFS.

+ +

To configure the lakeFS credentials, run:

+
aws configure --profile lakefs
+
+

You will be prompted to enter the AWS Access Key ID and the AWS Secret Access Key.

+ +

It should look like this:

+
aws configure --profile lakefs
+# output:  
+# AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE    
+# AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
+# Default region name [None]: 
+# Default output format [None]:
+
+

+ + + Path convention + + +

+ + +

When accessing objects in S3, you will need to use the lakeFS path convention: + s3://[REPOSITORY]/[BRANCH]/PATH/TO/OBJECT

+

+ + + Usage + + +

+ + +

After configuring the credentials, this is what a command should look:

+
aws s3 --profile lakefs \
+  --endpoint-url https://lakefs.example.com \
+  ls s3://example-repo/main/example-directory
+
+ +

You can use an alias to make it shorter and more convenient.

+

+ + + Examples + + +

+ +

+ + + List directory + + +

+ + +
aws --profile lakefs \
+  --endpoint-url https://lakefs.example.com \
+  s3 ls s3://example-repo/main/example-directory
+
+

+ + + Copy from lakeFS to lakeFS + + +

+ + +
aws --profile lakefs \
+  --endpoint-url https://lakefs.example.com \
+  s3 cp s3://example-repo/main/example-file-1 s3://example-repo/main/example-file-2
+
+

+ + + Copy from lakeFS to a local path + + +

+ + +
aws --profile lakefs \
+  --endpoint-url https://lakefs.example.com \
+  s3 cp s3://example-repo/main/example-file-1 /path/to/local/file
+
+

+ + + Copy from a local path to lakeFS + + +

+ + +
aws --profile lakefs \
+  --endpoint-url https://lakefs.example.com \
+  s3 cp /path/to/local/file s3://example-repo/main/example-file-1
+
+

+ + + Delete file + + +

+ + +
aws --profile lakefs \
+  --endpoint-url https://lakefs.example.com \
+  s3 rm s3://example-repo/main/example-directory/example-file
+
+

+ + + Delete directory + + +

+ + +
aws --profile lakefs \
+  --endpoint-url https://lakefs.example.com \
+  s3 rm s3://example-repo/main/example-directory/ --recursive
+
+

+ + + Adding an alias + + +

+ + +

To make the command shorter and more convenient, you can create an alias:

+ +
alias awslfs='aws --endpoint https://lakefs.example.com --profile lakefs'
+
+ +

Now, the ls command using the alias will be as follows:

+
awslfs s3 ls s3://example-repo/main/example-directory
+
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/integrations/boto.html b/v1.46/integrations/boto.html new file mode 100644 index 000000000..7899a7d60 --- /dev/null +++ b/v1.46/integrations/boto.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/integrations/cloudera.html b/v1.46/integrations/cloudera.html new file mode 100644 index 000000000..c5c58a12b --- /dev/null +++ b/v1.46/integrations/cloudera.html @@ -0,0 +1,717 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Cloudera | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Using lakeFS with Cloudera Spark + + +

+ + +

Use the lakeFS Hadoop FileSystem to integrate lakeFS with Cloudera Spark.

+ +

Review Cloudera Partner Listing for the Cloudera certification of lakeFS integration with Cloudera Data Platform (CDP) and Cloudera Spark.

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/integrations/databricks.html b/v1.46/integrations/databricks.html new file mode 100644 index 000000000..a9389e216 --- /dev/null +++ b/v1.46/integrations/databricks.html @@ -0,0 +1,899 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Databricks | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Using lakeFS with Databricks + + +

+ + + +

+ + + Overview + + +

+ + +

Databricks is a unified, open analytics platform for building, deploying, sharing, +and maintaining enterprise-grade data, analytics, and AI solutions at scale.

+ +

In this document, we will cover the various Databricks products and how they integrate +with lakeFS.

+ +

+ +

+

+ + + Databricks Compute Options + + +

+ + +

Databricks offers several compute options +for running workloads. All of these options can be used with lakeFS. +At a basic level, Databricks compute products are Spark clusters that run on top +of cloud infrastructure and offer different configuration options. +From a lakeFS integration perspective, the main difference is how you configure +the storage operations that perform read/writes to lakeFS.

+ +

lakeFS storage operations will either use the lakeFS Hadoop Filesystem, +which utilizes the lakeFS OpenAPI, +or the s3a Filesystem, which uses the lakeFS S3 Gateway. +In short, the lakeFS S3 Gateway is the fastest way to get started, but it routes +all traffic through the lakeFS server. +The lakeFS Hadoop Filesystem requires more setup, but all data transfers will occur +directly on the bucket. The lakeFS Hadoop Filesystem can write to storage +using the s3a filesystem or using pre-signed +URLs generated by the lakeFS server. To read more about the alternatives, see +the Spark integration page.

+

+ + + All-Purpose Compute + + +

+ + +

Provisioned compute used to analyze data in notebooks.

+ +

When you create a Databricks compute cluster, you can configure it to use lakeFS +with the lakeFS Hadoop Filesystem (see Databricks installation guide) +or the lakeFS S3 Gateway. The lakeFS S3 Gateway can be configured +in the notebook or during +cluster setup (Advanced Options -> Spark -> Spark config).

+

+ + + Jobs Compute + + +

+ + +

Provisioned compute used to run automated jobs. +The Databricks job scheduler automatically creates a job compute whenever a job is configured to run on new compute.

+ +

To use lakeFS with Databricks jobs, a compute cluster needs to be configured in the cluster setup, +just like with All-Purpose compute.

+ +

{.note} +Note +Serverless compute for Databricks jobs is currently not supported.

+

+ + + SQL Warehouses + + +

+ + +

Classic & Pro warehouses are used to run SQL commands on data objects in the SQL editor or interactive notebooks. +Serverless warehouses do the same, except that they are on-demand elastic compute.

+ +

All warehouses do not allow the installation of external jars, such as the lakeFS Hadoop Filesystem. +To use SQL warehouses with lakeFS, utilize the lakeFS S3 Gateway.

+

+ + + Unity Catalog + + +

+ + +

Unity Catalog is Databricks’ metastore that provides centralized access control, +auditing, lineage, and data discovery capabilities across Databricks workspaces.

+ +

lakeFS can be used with Unity Catalog to provide a versioned view of the data and +the Unity Catalog metadata.

+ +

lakeFS support for Unity Catalog differs between lakeFS OSS and lakeFS Enterprise & Cloud.

+

+ + + Catalog Exports lakeFS + + +

+ + +

Leveraging the external tables feature within Unity Catalog, +you can register a Delta Lake table exported from lakeFS and access it through the unified catalog.

+ +

{.note} +Note +lakeFS Catalog exporters offer read-only table exports.

+ +

Catalog Exports relies on lakeFS Actions and offers +a way to export changes from lakeFS to Unity Catalog.

+ +

For the full guide on how to use Catalog Exports with Unity Catalog, see the documentation.

+

+ + + lakeFS for Databricks Enterprise + + +

+ + +

lakeFS for Databricks provides a seamless integration between lakeFS and Unity Catalog. +Its primary benefits over the integration offered by lakeFS open-source are:

+
    +
  • Table Write support
  • +
  • Native Unity Catalog interaction: Instead of reading/writing from lakeFS path, +use SQL to directly access data stored in Unity catalog
  • +
  • Advanced Serverless warehouse support: lakeFS can work with anything serverless - SQL warehouse or Serverless notebooks.
  • +
+ +

For more information, visit the lakeFS for Databricks page.

+

+ + + Delta Lake + + +

+ + +

lakeFS supports Delta Lake tables, and it provides a versioned view of the data and the Delta Lake metadata. +Read the Delta Lake docs for more information.

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/integrations/delta.html b/v1.46/integrations/delta.html new file mode 100644 index 000000000..bcdb10ce4 --- /dev/null +++ b/v1.46/integrations/delta.html @@ -0,0 +1,950 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Delta Lake | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Using lakeFS with Delta Lake + + +

+ + +

Delta Lake is an open-source storage framework designed to improve performance and provide transactional guarantees to data lake tables.

+ +

Because lakeFS is format-agnostic, you can save data in Delta format within a lakeFS repository and benefit from the advantages of both technologies. Specifically:

+ +
    +
  1. ACID operations can span across multiple Delta tables.
  2. +
  3. CI/CD hooks can validate Delta table contents, schema, or even referential integrity.
  4. +
  5. lakeFS supports zero-copy branching for quick experimentation with full isolation.
  6. +
+ + +

+ + + Delta Lake Tables from the lakeFS Perspective + + +

+ + +

lakeFS is a data versioning tool, functioning at the object level. This implies that, by default, lakeFS remains agnostic +to whether the objects within a Delta table location represent a table, table metadata, or data. As per the Delta Lake protocol, +any modification to a table—whether it involves adding data or altering table metadata—results in the creation of a new object +in the table’s transaction log. +Typically, residing under the _delta_log path, relative to the root of the table’s directory. This new object has an incremented version compared to its predecessor.

+ +

Consequently, when making changes to a Delta table within the lakeFS environment, these changes are reflected as changes +to objects within the table location. For instance, inserting a record into a table named “my-table,” which is partitioned +by ‘category’ and ‘country,’ is represented in lakeFS as added objects within the table prefix (i.e., the table data) and the table transaction log. +Record addition

+ +

Similarly, when performing a metadata operation such as renaming a table column, new objects are appended to the table transaction log, +indicating the schema change. +Record addition

+

+ + + Using Delta Lake with lakeFS from Apache Spark + + +

+ + +

Given the native integration between Delta Lake and Spark, it’s most common that you’ll interact with Delta tables in a Spark environment.

+ +

To configure a Spark environment to read from and write to a Delta table within a lakeFS repository, you need to set the proper credentials and endpoint in the S3 Hadoop configuration, like you’d do with any Spark environment.

+ +

Once set, you can interact with Delta tables using regular Spark path URIs. Make sure that you include the lakeFS repository and branch name:

+ +
df.write.format("delta").save("s3a://<repo-name>/<branch-name>/path/to/delta-table")
+
+ +

Note: If using the Databricks Analytics Platform, see the integration guide for configuring a Databricks cluster to use lakeFS.

+ +

To see the integration in action see this notebook in the lakeFS Samples Repository.

+

+ + + Using Delta Lake with lakeFS from Python + + +

+ + +

The delta-rs library provides bindings for Python. This means that you can use Delta Lake and lakeFS directly from Python without needing Spark. Integration is done through the lakeFS S3 Gateway

+ +

The documentation for the deltalake Python module details how to read, write, and query Delta Lake tables. To use it with lakeFS use an s3a path for the table based on your repository and branch (for example, s3a://delta-lake-demo/main/my_table/) and specify the following storage_options:

+ +
storage_options = {"AWS_ENDPOINT": <your lakeFS endpoint>,
+                   "AWS_ACCESS_KEY_ID": <your lakeFS access key>,
+                   "AWS_SECRET_ACCESS_KEY": <your lakeFS secret key>,
+                   "AWS_REGION": "us-east-1",
+                   "AWS_S3_ALLOW_UNSAFE_RENAME": "true"
+                  }
+
+ +

If your lakeFS is not using HTTPS (for example, you’re just running it locally) then add the option

+ +
                   "AWS_STORAGE_ALLOW_HTTP": "true"
+
+ +

To see the integration in action see this notebook in the lakeFS Samples Repository.

+

+ + + Exporting Delta Lake tables from lakeFS into Unity Catalog + + +

+ + +

This option is for users who are managing Delta Lake tables with lakeFS and access them through Databricks Unity Catalog. lakeFS offers +a Data Catalog Export functionality that provides read-only access to your Delta tables from within Unity catalog. Using the data catalog exporters,
+you can work on Delta tables in isolation and easily explore them within the Unity Catalog.

+ +

Once exported, you can query the versioned table data with:

+
SELECT * FROM my_catalog.main.my_delta_table
+
+

Here, ‘main’ is the name of the lakeFS branch from which the delta table was exported.

+ +

To enable Delta table exports to Unity catalog use the Unity catalog integration guide.

+ + +

+ + + Limitations + + +

+ +

+ + + Multi-Writer Support in lakeFS for Delta Lake Tables + + +

+ + +

lakeFS currently supports a single writer for Delta Lake tables. Attempting to utilize multiple writers for writing to a Delta table may result in two types of issues:

+
    +
  1. Merge Conflicts: These conflicts arise when multiple writers modify a Delta table on different branches, and an attempt is made to merge these branches. +Merge conflicts
  2. +
  3. Concurrent File Overwrite: This issue occurs when multiple writers concurrently modify a Delta table on the same branch. +Concurrent file overwrite
  4. +
+ +

Note: lakeFS currently lacks its own implementation for a LogStore, and the default Log store used does not control concurrency.

+

To address these limitations, consider following best practices for implementing multi-writer support.

+

+ + + Best Practices + + +

+ +

+ + + Implementing Multi-Writer Support through lakeFS Branches and Merges + + +

+ + +

To achieve safe multi-writes to a Delta Lake table on lakeFS, we recommend following these best practices:

+
    +
  1. Isolate Changes: Make modifications to your table in isolation. Each set of changes should be associated with a dedicated lakeFS branch, branching off from the main branch.
  2. +
  3. Merge Atomically: After making changes in isolation, try to merge them back into the main branch. This approach guarantees that the integration of changes is cohesive.
  4. +
+ +

The workflow involves:

+
    +
  • Creating a new lakeFS branch from the main branch for any table change.
  • +
  • Making modifications in isolation.
  • +
  • Attempting to merge the changes back into the main branch.
  • +
  • Iterating the process in case of a merge failure due to conflicts.
  • +
+ +

The diagram below provides a visual representation of how branches and merges can be utilized to manage concurrency effectively: +Multi writers workaround

+

+ + + Follow Vacuum by Garbage Collection + + +

+ + +

To delete unused files from a table directory while working with Delta Lake over lakeFS you need to first use Delta lake +Vacuum to soft-delete the files, and then use +lakeFS Garbage Collection to hard-delete them from the storage.

+ +

Note: lakeFS enables you to recover from undesired vacuum runs by reverting the changes done by a vacuum run before running Garbage Collection.

+

+ + + When running lakeFS inside your VPC (on AWS) + + +

+ + +

When lakeFS runs inside your private network, your Databricks cluster needs to be able to access it. +This can be done by setting up a VPC peering between the two VPCs +(the one where lakeFS runs and the one where Databricks runs). For this to work on Delta Lake tables, you would also have to disable multi-cluster writes with:

+ +
spark.databricks.delta.multiClusterWrites.enabled false
+
+

+ + + Using multi cluster writes (on AWS) + + +

+ + +

When using multi-cluster writes, Databricks overrides Delta’s S3-commit action. +The new action tries to contact lakeFS from servers on Databricks’ own AWS account, which of course won’t be able to access your private network. +So, if you must use multi-cluster writes, you’ll have to allow access from Databricks’ AWS account to lakeFS. +If you are trying to achieve that, please reach out on Slack and the community will try to assist.

+

+ + + Further Reading + + +

+ + +

See Guaranteeing Consistency in Your Delta Lake Tables With lakeFS post on the lakeFS blog to learn how to +guarantee data quality in a Delta table by utilizing lakeFS branches.

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/integrations/distcp.html b/v1.46/integrations/distcp.html new file mode 100644 index 000000000..07c435e7e --- /dev/null +++ b/v1.46/integrations/distcp.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/integrations/dremio.html b/v1.46/integrations/dremio.html new file mode 100644 index 000000000..43187bf43 --- /dev/null +++ b/v1.46/integrations/dremio.html @@ -0,0 +1,738 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Dremio | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Using lakeFS with Dremio + + +

+ +

Dremio is a next-generation data lake engine that liberates your data with live, +interactive queries directly on cloud data lake storage, including S3 and lakeFS.

+

+ + + Configuration + + +

+ +

Starting from version 3.2.3, Dremio supports Minio as an experimental S3-compatible plugin. +Similarly, you can connect lakeFS with Dremio.

+ +

Suppose you already have both lakeFS and Dremio deployed, and want to use Dremio to query your data in the lakeFS repositories. +You can follow the steps listed below to configure on Dremio UI:

+ +
    +
  1. click Add Data Lake.
  2. +
  3. Under File Stores, choose Amazon S3.
  4. +
  5. Under Advanced Options, check Enable compatibility mode (experimental).
  6. +
  7. Under Advanced Options > Connection Properties, add fs.s3a.path.style.access and set the value to true.
  8. +
  9. Under Advanced Options > Connection Properties, add fs.s3a.endpoint and set lakeFS S3 endpoint to the value.
  10. +
  11. Under the General tab, specify the access_key_id and secret_access_key provided by lakeFS server.
  12. +
  13. Click Save, and now you should be able to browse lakeFS repositories on Dremio.
  14. +
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/integrations/duckdb.html b/v1.46/integrations/duckdb.html new file mode 100644 index 000000000..32883fd69 --- /dev/null +++ b/v1.46/integrations/duckdb.html @@ -0,0 +1,867 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +DuckDB | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Using lakeFS with DuckDB + + +

+ + +

DuckDB is an in-process SQL OLAP database management system. You can access data in lakeFS from DuckDB, as well as use DuckDB from within the web interface of lakeFS

+ + +

+ + + Accessing lakeFS from DuckDB + + +

+ +

+ + + Configuration + + +

+ + +

Querying data in lakeFS from DuckDB is similar to querying data in S3 from DuckDB. It is done using the httpfs extension connecting to the S3 Gateway that lakeFS provides.

+ +

If not loaded already, install and load the HTTPFS extension:

+ +
INSTALL httpfs;
+LOAD httpfs;
+
+ +

Then run the following to configure the connection.

+ +
-- "s3_region" is the S3 region on which your bucket resides. If local storage, or not S3, then just set it to "us-east-1".
+SET s3_region='us-east-1';
+-- the host (and port, if necessary) of your lakeFS server
+SET s3_endpoint='lakefs.example.com';
+-- the access credentials for your lakeFS user
+SET s3_access_key_id='AKIAIOSFODNN7EXAMPLE'; 
+-- the access credentials for your lakeFS user
+SET s3_secret_access_key='wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY'; 
+SET s3_url_style='path';
+
+-- Uncomment in case the endpoint listen on non-secure, for example running lakeFS locally.
+-- SET s3_use_ssl=false;
+
+

+ + + Querying Data + + +

+ + +

Once configured, you can query data using the lakeFS S3 Gateway using the following URI pattern:

+ +
s3://<REPOSITORY NAME>/<REFERENCE ID>/<PATH TO DATA>
+
+ +

Since the S3 Gateway implemenets all S3 functionality required by DuckDB, you can query using globs and patterns, including support for Hive-partitioned data.

+ +

Example:

+ +
SELECT * 
+FROM parquet_scan('s3://example-repo/main/data/population/by-region/*.parquet', HIVE_PARTITIONING=1) 
+ORDER BY name;
+
+

+ + + Writing Data + + +

+ + +

No special configuration required for writing to a branch. Assuming the configuration above and write permissions to a dev branch, +a write operation would look like any DuckDB write:

+ +
CREATE TABLE sampled_population AS SELECT * 
+FROM parquet_scan('s3://example-repo/main/data/population/by-region/*.parquet', HIVE_PARTITIONING=1) 
+USING SAMPLE reservoir(50000 ROWS) REPEATABLE (100);
+
+COPY sampled_population TO 's3://example-repo/main/data/population/sample.parquet'; -- actual write happens here
+
+

+ + + Using DuckDB in Python with lakefs-spec + + +

+ + +

Python users can use DuckDB by leveraging the lakefs-spec package.

+ +

Note This library is a third-party package and not maintained by the lakeFS developers; please file issues and bug reports directly +in the lakefs-spec repository.

+ +

Using lakefs-spec, querying lakeFS could be done using pre-signed URLs, allowing for efficient and secure I/O, where the data files are read directly from the underlying object store.

+ +

+import duckdb
+from fsspec import filesystem
+
+duckdb.register_filesystem(filesystem('lakefs'))
+
+duckdb.sql("SELECT * FROM 'lakefs://example-repo/main/data/population/sample.parquet'")
+
+

+ + + Using DuckDB in the lakeFS web UI + + +

+ + +

The lakeFS web UI includes DuckDB in the Object viewer page.

+ +

DuckDB query editor on the lakeFS objects page

+ +

Using this you can query objects in lakeFS directly using a lakefs path:

+ +
lakefs://<repository>/<branch>/object/path/foo.parquet
+
+ +

The DuckDB query editor is provided by DuckDB WASM. It renders and provides querying capabilities for any objects of the following types:

+ +
    +
  • Parquet
  • +
  • CSV
  • +
  • TSV
  • +
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/integrations/emr.html b/v1.46/integrations/emr.html new file mode 100644 index 000000000..35bd6c453 --- /dev/null +++ b/v1.46/integrations/emr.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/integrations/git.html b/v1.46/integrations/git.html new file mode 100644 index 000000000..d2bb88494 --- /dev/null +++ b/v1.46/integrations/git.html @@ -0,0 +1,755 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Git | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Integrating lakeFS with Git + + +

+ + +

Integrating code and data version control systems allows you to associate code versions with data versions, facilitating +the reproduction of complex environments with multiple components. Consequently, lakeFS, a data version control system, +seamlessly integrates with Git. This combination establishes a robust foundation for versioning both your code and data, +fostering a streamlined and reproducible development process.

+

+ + + Use Cases + + +

+ +

+ + + Develop Reproducible ML Models + + +

+ + +

Maintain a comprehensive record of both model code versions and input data versions to ensure the reproducibility of ML +model results.

+ +

The common way to develop reproducible ML models with lakeFS is to use the +lakectl local command. See Working with lakeFS Data Locally +to understand how to use lakectl local in conjunction with Git to develop reproducible ML models.

+

+ + + Develop Reproducible ETL Pipelines + + +

+ + +

Track code versions for each step in ETL pipelines along with the corresponding data versions of their inputs and outputs. +This approach allows straight forward troubleshooting and reproduction of data errors.

+ +

Check out this lakeFS sample +that demonstrates how Git, Airflow, and lakeFS can be integrated to result in reproducible ETL pipelines.

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/integrations/glue_etl.html b/v1.46/integrations/glue_etl.html new file mode 100644 index 000000000..35bd6c453 --- /dev/null +++ b/v1.46/integrations/glue_etl.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/integrations/glue_hive_metastore.html b/v1.46/integrations/glue_hive_metastore.html new file mode 100644 index 000000000..9ff8bd0ec --- /dev/null +++ b/v1.46/integrations/glue_hive_metastore.html @@ -0,0 +1,964 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Glue / Hive metastore | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Using lakeFS with the Glue/Hive Metastore + + +

+ + +

Deprecated Feature: Having heard the feedback from the community, we are planning to replace the below manual steps with an automated process. +You can read more about it here.

+ + +

+ + + About Glue / Hive Metastore + + +

+ + +

This part explains about how Glue/Hive Metastore work with lakeFS.

+ +

Glue and Hive Metastore store metadata related to Hive and other services (such as Spark and Trino). +They contain metadata such as the location of the table, information about columns, partitions and many more.

+

+ + + Without lakeFS + + +

+ +

To query the table my_table, Spark will:

+
    +
  • Request the metadata from Hive metastore (steps 1,2),
  • +
  • Use the location from the metadata to access the data in S3 (steps 3,4). +metastore with S3
  • +
+

+ + + With lakeFS + + +

+ +

When using lakeFS, the flow stays exactly the same. Note that the location of the table my_table now contains the branch s3://example/main/path/to/table +metastore with S3

+

+ + + Managing Tables With lakeFS Branches + + +

+ +

+ + + Motivation + + +

+ +

When creating a table in Glue/Hive metastore (using a client such as Spark, Hive, Presto), we specify the table location. +Consider the table my_table that was created with the location s3://example/main/path/to/table.

+ +

Suppose you created a new branch called DEV with main as the source branch. +The data from s3://example/main/path/to/table is now accessible in s3://example/DEV/path/to/table. +The metadata is not managed in lakeFS, meaning you don’t have any table pointing to s3://example/DEV/path/to/table.

+ +

To address this, lakeFS introduces lakectl metastore commands. The case above can be handled using the copy command: it creates a copy of my_table with data located in s3://example/DEV/path/to/table. Note that this is a fast, metadata-only operation.

+

+ + + Configurations + + +

+ +

The lakectl metastore commands can run on Glue or Hive metastore. +Add the following to the lakectl configuration file (by default ~/.lakectl.yaml):

+

+ + + Hive + + +

+ + +
metastore:
+  type: hive
+  hive:
+    uri: hive-metastore:9083
+
+

+ + + Glue + + +

+ + +
metastore:
+  type: glue
+  glue:
+    catalog_id: 123456789012
+    region: us-east-1
+    profile: default # optional, implies using a credentials file
+    credentials:
+      access_key_id: AKIAIOSFODNN7EXAMPLE
+      secret_access_key: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
+
+ +

Note: It’s recommended to set type and catalog-id/metastore-uri in the lakectl configuration file.

+

+ + + Suggested Model + + +

+ + +

For simplicity, we recommend creating a schema for each branch. That way, you can use the same table name across different schemas.

+ +

For example: +after creating branch example_branch, also create a schema named example_branch. +For a table named my_table under the schema main, create a new table under the same name and under the schema example_branch. You now have two my_table, one in the main schema and one in the branch schema.

+

+ + + Commands + + +

+ + +

Metastore tools support three commands: copy, diff, and create-symlink. +copy and diff can work both on Glue and on Hive. +create-symlink works only on Glue.

+ +

Note: If to-schema or to-table are not specified, the destination branch and source table names will be used as per the suggested model.

+ +

Note: Metastore commands can only run on tables located in lakeFS. You should not use tables that aren’t located in lakeFS.

+

+ + + Copy + + +

+ + +

The copy command creates a copy of a table pointing to the defined branch. +In case the destination table already exists, the command will only merge the changes.

+ +

Example:

+ +

Suppose we created the table inventory on branch main on schema default.

+
CREATE EXTERNAL TABLE `inventory`(
+        `inv_item_sk` int,
+        `inv_warehouse_sk` int,
+        `inv_quantity_on_hand` int)
+    PARTITIONED BY (
+        `inv_date_sk` int) STORED AS ORC
+    LOCATION
+        's3a://my_repo/main/path/to/table';
+
+ +

We create a new lakeFS branch example_branch:

+ +
lakectl branch create lakefs://my_repo/example_branch --source lakefs://my_repo/main
+
+ +

The data from s3://my_repo/main/path/to/table is now accessible in s3://my_repo/DEV/path/to/table. +To query the data in s3://my_repo/DEV/path/to/table, you would like to create a copy of the table inventory in schema example_branch pointing to the new branch.

+ +
lakectl metastore copy --from-schema default --from-table inventory --to-schema example_branch --to-table inventory --to-branch example_branch
+
+ +

After running this command, query the table example_branch.inventory to get the data from s3://my_repo/DEV/path/to/table

+

+ + + Copy Partition + + +

+ + +

After adding a partition to the branch table, you may want to copy the partition to the main table. +For example, for the new partition 2020-08-01, run the following to copy the partition to the main table:

+ +
lakectl metastore copy --type hive --from-schema example_branch --from-table inventory --to-schema default --to-table inventory --to-branch main -p 2020-08-01
+
+ +

For a table partitioned by more than one column, specify the partition flag for every column. For example, for the partition (year='2020',month='08',day='01'):

+ +
lakectl metastore copy --from-schema example_branch --from-table branch_inventory --to-schema default --to-branch main -p 2020 -p 08 -p 01
+
+

+ + + Diff + + +

+ + +

Provides a two-way diff between two tables. +Shows added+ , removed- and changed~ partitions and columns.

+ +

Example:

+ +

Suppose you made some changes on the copied table inventory on schema example_branch and now want to view the changes before merging back to inventory on schema default.

+ +

Hive:

+
lakectl metastore diff --type hive --address thrift://hive-metastore:9083 --from-schema example_branch --from-table branch --to-schema default --to-table inventory
+
+ +

The output will look like this:

+ +
Columns are identical
+Partitions
+- 2020-07-04
++ 2020-07-05
++ 2020-07-06
+~ 2020-07-08
+
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/integrations/glue_metastore.html b/v1.46/integrations/glue_metastore.html new file mode 100644 index 000000000..092c3d9fe --- /dev/null +++ b/v1.46/integrations/glue_metastore.html @@ -0,0 +1,1077 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Glue Data Catalog | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Using lakeFS with the Glue Catalog + + +

+ + + +

+ + + Overview + + +

+ + +

The integration between Glue and lakeFS is based on Data Catalog Exports.

+ +

This guide describes how to use lakeFS with the Glue Data Catalog. +You’ll be able to query your lakeFS data by specifying the repository, branch and commit in your SQL query. +Currently, only read operations are supported on the tables. +You will set up the automation required to work with lakeFS on top of the Glue Data Catalog, including:

+
    +
  1. Create a table descriptor under _lakefs_tables/<your-table>.yaml. This will represent your table schema.
  2. +
  3. Write an exporter script that will: +
      +
    • Mirror your branch’s state into Hive Symlink files readable by Athena.
    • +
    • Export the table descriptors from your branch to the Glue Catalog.
    • +
    +
  4. +
  5. Set up lakeFS hooks to trigger the above script when specific events occur.
  6. +
+

+ + + Example: Using Athena to query lakeFS data + + +

+ +

+ + + Prerequisites + + +

+ + +

Before starting, make sure you have:

+
    +
  1. An active lakeFS installation with S3 as the backing storage, and a repository in this installation.
  2. +
  3. A database in Glue Data Catalog (lakeFS does not create one).
  4. +
  5. AWS Credentials with permission to manage Glue, Athena Query and S3 access.
  6. +
+

+ + + Add table descriptor + + +

+ + +

Let’s define a table, and commit it to lakeFS. +Save the YAML below as animals.yaml and upload it to lakeFS.

+ +
lakectl fs upload lakefs://catalogs/main/_lakefs_tables/animals.yaml -s ./animals.yaml && \
+lakectl commit lakefs://catalogs/main -m "added table"
+
+ +
name: animals
+type: hive
+# data location root in lakeFS
+path: tables/animals
+# partitions order
+partition_columns: ['type', 'weight']
+schema:
+  type: struct
+  # all the columns spec
+  fields:
+    - name: type
+      type: string
+      nullable: true
+      metadata:
+        comment: axolotl, cat, dog, fish etc
+    - name: weight
+      type: integer
+      nullable: false
+      metadata: {}
+    - name: name
+      type: string
+      nullable: false
+      metadata: {}
+
+

+ + + Write some table data + + +

+ + +

Insert data into the table path, using your preferred method (e.g. Spark), and commit upon completion. +This example uses CSV files, and the files added to lakeFS should look like this:

+ +

lakeFS Uploaded CSV Files

+

+ + + The exporter script + + +

+ + +

Upload the following script to your main branch under scripts/animals_exporter.lua (or a path of your choice).

+ +
+

For code references check symlink_exporter and glue_exporter docs.

+
+ +
local aws = require("aws")
+local symlink_exporter = require("lakefs/catalogexport/symlink_exporter")
+local glue_exporter = require("lakefs/catalogexport/glue_exporter")
+-- settings 
+local access_key = args.aws.aws_access_key_id
+local secret_key = args.aws.aws_secret_access_key
+local region = args.aws.aws_region
+local table_path = args.table_source -- table descriptor 
+local db = args.catalog.db_name -- glue db
+local table_input = args.catalog.table_input -- table input (AWS input spec) for Glue
+-- export symlinks 
+local s3 = aws.s3_client(access_key, secret_key, region)
+local result = symlink_exporter.export_s3(s3, table_path, action, {debug=true})
+-- register glue table
+local glue = aws.glue_client(access_key, secret_key, region)
+local res = glue_exporter.export_glue(glue, db, table_path, table_input, action, {debug=true})
+
+

+ + + Configure Action Hooks + + +

+ + +

Hooks serve as the mechanism that triggers the execution of the exporter. +For more detailed information on how to configure exporter hooks, you can refer to Running an Exporter.

+ +
+

The args.catalog.table_input argument in the Lua script is assumed to be passed from the action arguments, that way the same script can be reused for different tables. Check the example to construct the table input in the lua code.

+
+ +
+ +
+

+ + + Single hook with CSV Table + + +

+ + +

Upload to _lakefs_actions/animals_glue.yaml:

+ +
name: Glue Exporter
+on:
+  post-commit:
+    branches: ["main"]
+hooks:
+  - id: animals_table_glue_exporter
+    type: lua
+    properties:
+      script_path: "scripts/animals_exporter.lua"
+      args:
+        aws:
+          aws_access_key_id: "<AWS_ACCESS_KEY_ID>"
+          aws_secret_access_key: "<AWS_SECRET_ACCESS_KEY>"
+          aws_region: "<AWS_REGION>"
+        table_source: '_lakefs_tables/animals.yaml'
+        catalog:
+          db_name: "my-glue-db"
+          table_input:
+            StorageDescriptor: 
+              InputFormat: "org.apache.hadoop.hive.ql.io.SymlinkTextInputFormat"
+              OutputFormat: "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat"
+              SerdeInfo:
+                SerializationLibrary: "org.apache.hadoop.hive.serde2.OpenCSVSerde"
+                Parameters:
+                  separatorChar: ","
+            Parameters: 
+              classification: "csv"
+              "skip.header.line.count": "1"
+
+ +
+
+

+ + + Spark Parquet Example + + +

+ + +

When working with Parquet files, upload the following to _lakefs_actions/animals_glue.yaml:

+ +
name: Glue Exporter
+on:
+   post-commit:
+      branches: ["main"]
+hooks:
+   - id: animals_table_glue_exporter
+     type: lua
+     properties:
+        script_path: "scripts/animals_exporter.lua"
+        args:
+           aws:
+              aws_access_key_id: "<AWS_ACCESS_KEY_ID>"
+              aws_secret_access_key: "<AWS_SECRET_ACCESS_KEY>"
+              aws_region: "<AWS_REGION>"
+           table_source: '_lakefs_tables/animals.yaml'
+           catalog:
+              db_name: "my-glue-db"
+              table_input:
+                 StorageDescriptor:
+                   InputFormat: "org.apache.hadoop.hive.ql.io.SymlinkTextInputFormat"
+                   OutputFormat: "org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat"
+                   SerdeInfo:
+                       SerializationLibrary: "org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe"
+                 Parameters:
+                   classification: "parquet"
+                   EXTERNAL: "TRUE"
+                   "parquet.compression": "SNAPPY"
+
+ +
+
+

+ + + Multiple Hooks / Inline script + + +

+ + +

The following example demonstrates how to separate the symlink and glue exporter into building blocks running in separate hooks. +It also shows how to run the lua script inline instead of a file, depending on user preference.

+ +
name: Animal Table Exporter
+on:
+  post-commit:
+    branches: ["main"]
+hooks:
+  - id: symlink_exporter
+    type: lua
+    properties:
+      args:
+        aws:
+          aws_access_key_id: "<AWS_ACCESS_KEY_ID>"
+          aws_secret_access_key: "<AWS_SECRET_ACCESS_KEY>"
+          aws_region: "<AWS_REGION>"
+        table_source: '_lakefs_tables/animals.yaml'
+      script: |
+        local exporter = require("lakefs/catalogexport/symlink_exporter")
+        local aws = require("aws")
+        local table_path = args.table_source
+        local s3 = aws.s3_client(args.aws.aws_access_key_id, args.aws.aws_secret_access_key, args.aws.aws_region)
+        exporter.export_s3(s3, table_path, action, {debug=true})
+  - id: glue_exporter
+    type: lua
+    properties:
+      args:
+        aws:
+          aws_access_key_id: "<AWS_ACCESS_KEY_ID>"
+          aws_secret_access_key: "<AWS_SECRET_ACCESS_KEY>"
+          aws_region: "<AWS_REGION>"
+        table_source: '_lakefs_tables/animals.yaml'
+        catalog:
+          db_name: "my-glue-db"
+          table_input: # add glue table input here 
+      script: |
+        local aws = require("aws")
+        local exporter = require("lakefs/catalogexport/glue_exporter")
+        local glue = aws.glue_client(args.aws.aws_access_key_id, args.aws.aws_secret_access_key, args.aws.aws_region)
+        exporter.export_glue(glue, args.catalog.db_name, args.table_source, args.catalog.table_input, action, {debug=true})  
+
+ +
+
+ +

Adding the script and the action files to the repository and commit it. This is a post-commit action, meaning it will be executed after the commit operation has taken place.

+ +
lakectl fs upload lakefs://catalogs/main/scripts/animals_exporter.lua -s ./animals_exporter.lua
+lakectl fs upload lakefs://catalogs/main/_lakefs_actions/animals_glue.yaml -s ./animals_glue.yaml
+lakectl commit lakefs://catalogs/main -m "trigger first export hook"
+
+ +

Once the action has completed its execution, you can review the results in the action logs.

+ +

Hooks log result in lakeFS UI

+

+ + + Use Athena + + +

+ + +

We can use the exported Glue table with any tool that supports Glue Catalog (or Hive compatible) such as Athena, Trino, Spark and others. +To use Athena we can simply run MSCK REPAIR TABLE and then query the tables.

+ +

In Athena, make sure that the correct database (my-glue-db in the example above) is configured, then run:

+ +
MSCK REPAIR TABLE `animals_catalogs_main_9255e5`; -- load partitions for the first time 
+SELECT * FROM `animals_catalogs_main_9255e5` limit 50;
+
+ +

Athena SQL Result

+

+ + + Cleanup + + +

+ + +

Users can use additional hooks / actions to implement a custom cleanup logic to delete the symlink in S3 and Glue Tables.

+ +
glue.delete_table(db, '<glue table name>')
+s3.delete_recursive('bucket', 'path/to/symlinks/of/a/commit/')
+
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/integrations/hive.html b/v1.46/integrations/hive.html new file mode 100644 index 000000000..bc22397d0 --- /dev/null +++ b/v1.46/integrations/hive.html @@ -0,0 +1,817 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Apache Hive | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Using lakeFS with Apache Hive + + +

+ + +

The Apache Hive ™ data warehouse software facilitates reading, writing, and managing large datasets residing in distributed storage using SQL. Structure can be projected onto data already in storage. A command line tool and JDBC driver are provided to connect users to Hive.

+ +
+

+ + + Table of contents + + +

+ + +
    +
  1. Configuration
  2. +
  3. Examples
  4. +
+ +
+

+ + + Configuration + + +

+ +

To configure Hive to work with lakeFS, you need to set the lakeFS credentials in the corresponding S3 credential fields.

+ +

lakeFS endpoint: fs.s3a.endpoint

+ +

lakeFS access key: fs.s3a.access.key

+ +

lakeFS secret key: fs.s3a.secret.key

+ +

Note +In the following examples, we set AWS credentials at runtime for clarity. In production, these properties should be set using one of Hadoop’s standard ways of Authenticating with S3.

+ +

For example, you can add the configurations to the file hdfs-site.xml:

+
<configuration>
+    ...
+    <property>
+        <name>fs.s3a.secret.key</name>
+        <value>wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY</value>
+    </property>
+    <property>
+        <name>fs.s3a.access.key</name>
+        <value>AKIAIOSFODNN7EXAMPLE</value>
+    </property>
+    <property>
+        <name>fs.s3a.endpoint</name>
+        <value>https://lakefs.example.com</value>
+    </property>
+    <property>
+       <name>fs.s3a.path.style.access</name>
+       <value>true</value>
+    </property>
+</configuration>
+
+ +

Note +In this example, we set fs.s3a.path.style.access to true to remove the need for additional DNS records for virtual hosting +fs.s3a.path.style.access that was introduced in Hadoop 2.8.0

+

+ + + Examples + + +

+ +

+ + + Example with schema + + +

+ + +
CREATE  SCHEMA example LOCATION 's3a://example/main/' ;
+CREATE TABLE example.request_logs (
+    request_time timestamp,
+    url string,
+    ip string,
+    user_agent string
+);
+
+

+ + + Example with an external table + + +

+ + +
CREATE EXTERNAL TABLE request_logs (
+    request_time timestamp,
+    url string,
+    ip string,
+    user_agent string
+) LOCATION 's3a://example/main/request_logs' ;
+
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/integrations/huggingface_datasets.html b/v1.46/integrations/huggingface_datasets.html new file mode 100644 index 000000000..7d22ded87 --- /dev/null +++ b/v1.46/integrations/huggingface_datasets.html @@ -0,0 +1,811 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +HuggingFace Datasets | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Versioning HuggingFace Datasets with lakeFS + + +

+ + +
+

+ + + Table of contents + + +

+ + +
    +
  1. Installation
  2. +
  3. Configuration
  4. +
  5. Reading a Dataset
  6. +
  7. Saving/Loading
  8. +
+ +
+ +

HuggingFace 🤗 Datasets is a library for easily accessing and sharing datasets for Audio, Computer Vision, and Natural Language Processing (NLP) tasks.

+ +

🤗 Datasets supports access to cloud storage providers through fsspec FileSystem implementations.

+ +

lakefs-spec is a community implementation of an fsspec Filesystem that fully leverages lakeFS’ capabilities. Let’s start by installing it:

+

+ + + Installation + + +

+ + +
pip install lakefs-spec
+
+

+ + + Configuration + + +

+ + +

If you’ve already configured the lakeFS python SDK and/or lakectl, you should have a $HOME/.lakectl.yaml file that contains your access credentials and endpoint for your lakeFS environment.

+ +

Otherwise, install lakectl and run lakectl config to set up your access credentials.

+

+ + + Reading a Dataset + + +

+ + +

To read a dataset, all we have to do is use a lakefs://... URI when calling load_dataset:

+ +
>>> from datasets import load_dataset
+>>> 
+>>> dataset = load_dataset('csv', data_files='lakefs://example-repository/my-branch/data/example.csv')
+
+ +

That’s it! this should automatically load the lakefs-spec implementation that we’ve installed, which will use the $HOME/.lakectl.yaml file to read its credentials, so we don’t need to pass additional configuration.

+

+ + + Saving/Loading + + +

+ + +

Once we’ve loaded a Dataset, we can save it using the save_to_disk method as normal:

+ +
>>> dataset.save_to_disk('lakefs://example-repository/my-branch/datasets/example/')
+
+ +

At this point, we might want to commit that change to lakeFS, and tag it, so we could share it with our colleagues.

+ +

We can do it through the UI or lakectl, but let’s do it with the lakeFS Python SDK:

+ +
>>> import lakefs
+>>>
+>>> repo = lakefs.repository('example-repository')
+>>> commit = repo.branch('my-branch').commit(
+...     'saved my first huggingface Dataset!',
+...     metadata={'using': '🤗'})
+>>> repo.tag('alice_experiment1').create(commit)
+
+ +

Now, others on our team can load our exact dataset by using the tag we created:

+ +
>>> from datasets import load_from_disk
+>>>
+>>> dataset = load_from_disk('lakefs://example-repository/alice_experiment1/datasets/example/')
+
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/integrations/iceberg.html b/v1.46/integrations/iceberg.html new file mode 100644 index 000000000..cd570e6f3 --- /dev/null +++ b/v1.46/integrations/iceberg.html @@ -0,0 +1,978 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Apache Iceberg | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Using lakeFS with Apache Iceberg + + +

+ + + + +

To enrich your Iceberg tables with lakeFS capabilities, you can use the lakeFS implementation of the Iceberg catalog. +You will then be able to query your Iceberg tables using lakeFS references, such as branches, tags, and commit hashes:

+ +
SELECT * FROM catalog.ref.db.table
+
+

+ + + Setup + + +

+ + +
+ +
+ +

Use the following Maven dependency to install the lakeFS custom catalog:

+ +
<dependency>
+  <groupId>io.lakefs</groupId>
+  <artifactId>lakefs-iceberg</artifactId>
+  <version>0.1.4</version>
+</dependency>
+
+ +
+
+

Include the lakefs-iceberg jar in your package list along with Iceberg. For example:

+ +
.config("spark.jars.packages", "org.apache.iceberg:iceberg-spark-runtime-3.3_2.12:1.3.0,io.lakefs:lakefs-iceberg:0.1.4")
+
+
+
+

+ + + Configure + + +

+ + +
+ +
+ +

Set up the Spark SQL catalog:

+
.config("spark.sql.catalog.lakefs", "org.apache.iceberg.spark.SparkCatalog") \
+.config("spark.sql.catalog.lakefs.catalog-impl", "io.lakefs.iceberg.LakeFSCatalog") \
+.config("spark.sql.catalog.lakefs.warehouse", f"lakefs://{repo_name}") \ 
+.config("spark.sql.catalog.lakefs.cache-enabled", "false")
+
+ +

Configure the S3A Hadoop FileSystem with your lakeFS connection details. +Note that these are your lakeFS endpoint and credentials, not your S3 ones.

+ +
.config("spark.hadoop.fs.s3.impl", "org.apache.hadoop.fs.s3a.S3AFileSystem") \
+.config("spark.hadoop.fs.s3a.endpoint", "https://example-org.us-east-1.lakefscloud.io") \
+.config("spark.hadoop.fs.s3a.access.key", "AKIAIO5FODNN7EXAMPLE") \
+.config("spark.hadoop.fs.s3a.secret.key", "wJalrXUtnFEMI/K3MDENG/bPxRfiCYEXAMPLEKEY") \
+.config("spark.hadoop.fs.s3a.path.style.access", "true")
+
+ +
+ +
+
spark-shell --conf spark.sql.catalog.lakefs="org.apache.iceberg.spark.SparkCatalog" \
+   --conf spark.sql.catalog.lakefs.catalog-impl="io.lakefs.iceberg.LakeFSCatalog" \
+   --conf spark.sql.catalog.lakefs.warehouse="lakefs://example-repo" \
+   --conf spark.sql.catalog.lakefs.cache-enabled="false" \
+   --conf spark.hadoop.fs.s3.impl="org.apache.hadoop.fs.s3a.S3AFileSystem" \
+   --conf spark.hadoop.fs.s3a.endpoint="https://example-org.us-east-1.lakefscloud.io" \
+   --conf spark.hadoop.fs.s3a.access.key="AKIAIO5FODNN7EXAMPLE" \
+   --conf spark.hadoop.fs.s3a.secret.key="wJalrXUtnFEMI/K3MDENG/bPxRfiCYEXAMPLEKEY" \
+   --conf spark.hadoop.fs.s3a.path.style.access="true"
+
+
+
+

+ + + Using Iceberg tables with lakeFS + + +

+ +

+ + + Create a table + + +

+ + +

To create a table on your main branch, use the following syntax:

+ +
CREATE TABLE lakefs.main.db1.table1 (id int, data string);
+
+

+ + + Insert data into the table + + +

+ + +
INSERT INTO lakefs.main.db1.table1 VALUES (1, 'data1');
+INSERT INTO lakefs.main.db1.table1 VALUES (2, 'data2');
+
+

+ + + Create a branch + + +

+ + +

We can now commit the creation of the table to the main branch:

+ +
lakectl commit lakefs://example-repo/main -m "my first iceberg commit"
+
+ +

Then, create a branch:

+ +
lakectl branch create lakefs://example-repo/dev -s lakefs://example-repo/main
+
+

+ + + Make changes on the branch + + +

+ + +

We can now make changes on the branch:

+ +
INSERT INTO lakefs.dev.db1.table1 VALUES (3, 'data3');
+
+

+ + + Query the table + + +

+ + +

If we query the table on the branch, we will see the data we inserted:

+ +
SELECT * FROM lakefs.dev.db1.table1;
+
+ +

Results in:

+
+----+------+
+| id | data |
++----+------+
+| 1  | data1|
+| 2  | data2|
+| 3  | data3|
++----+------+
+
+ +

However, if we query the table on the main branch, we will not see the new changes:

+ +
SELECT * FROM lakefs.main.db1.table1;
+
+ +

Results in:

+
+----+------+
+| id | data |
++----+------+
+| 1  | data1|
+| 2  | data2|
++----+------+
+
+

+ + + Migrating an existing Iceberg Table to lakeFS Catalog + + +

+ + +

This is done through an incremental copy from the original table into lakeFS.

+ +
    +
  1. Create a new lakeFS repository lakectl repo create lakefs://example-repo <base storage path>
  2. +
  3. +

    Initiate a spark session that can interact with the source iceberg table and the target lakeFS catalog.

    + +

    Here’s an example of Hadoop and S3 session and lakeFS catalog with per-bucket config:

    + +
     SparkConf conf = new SparkConf();
    + conf.set("spark.hadoop.fs.s3a.path.style.access", "true");
    +
    + // set hadoop on S3 config (source tables we want to copy) for spark
    + conf.set("spark.sql.catalog.hadoop_prod", "org.apache.iceberg.spark.SparkCatalog");
    + conf.set("spark.sql.catalog.hadoop_prod.type", "hadoop");
    + conf.set("spark.sql.catalog.hadoop_prod.warehouse", "s3a://my-bucket/warehouse/hadoop/");
    + conf.set("spark.sql.extensions", "org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions");
    + conf.set("spark.hadoop.fs.s3a.bucket.my-bucket.access.key", "<AWS_ACCESS_KEY>");
    + conf.set("spark.hadoop.fs.s3a.bucket.my-bucket.secret.key", "<AWS_SECRET_KEY>");
    +
    + // set lakeFS config (target catalog and repository)
    + conf.set("spark.sql.catalog.lakefs", "org.apache.iceberg.spark.SparkCatalog");
    + conf.set("spark.sql.catalog.lakefs.catalog-impl", "io.lakefs.iceberg.LakeFSCatalog");
    + conf.set("spark.sql.catalog.lakefs.warehouse", "lakefs://example-repo");
    + conf.set("spark.sql.extensions", "org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions");
    + conf.set("spark.hadoop.fs.s3a.bucket.example-repo.access.key", "<LAKEFS_ACCESS_KEY>");
    + conf.set("spark.hadoop.fs.s3a.bucket.example-repo.secret.key", "<LAKEFS_SECRET_KEY>");
    + conf.set("spark.hadoop.fs.s3a.bucket.example-repo.endpoint"  , "<LAKEFS_ENDPOINT>");
    +
    +
  4. +
  5. +

    Create Schema in lakeFS and copy the data

    + +

    Example of copy with spark-sql:

    + +
     -- Create Iceberg Schema in lakeFS
    + CREATE SCHEMA IF NOT EXISTS <lakefs-catalog>.<branch>.<db>
    + -- Create new iceberg table in lakeFS from the source table (pre-lakeFS)
    + CREATE TABLE IF NOT EXISTS <lakefs-catalog>.<branch>.<db> USING iceberg AS SELECT * FROM <iceberg-original-table>
    +
    +
  6. +
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/integrations/index.html b/v1.46/integrations/index.html new file mode 100644 index 000000000..4d5954086 --- /dev/null +++ b/v1.46/integrations/index.html @@ -0,0 +1,749 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Integrations | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + +
+ +

+ + + Integrations with lakeFS + + +

+ + +

You can use lakeFS with a wide range of tools and frameworks.

+ +

lakeFS provides several clients directly, as well as an S3-compatible gateway. This gateway means that if you want to use something with lakeFS, so long as that technology can interface with S3, it can interface with lakeFS.

+ +

See below for detailed instructions for using different technologies with lakeFS.

+ + +

If there is a technology not listed here that you would like to use with lakeFS, please drop by our Slack and we’ll help you get started with it.

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/integrations/kafka.html b/v1.46/integrations/kafka.html new file mode 100644 index 000000000..583f829a0 --- /dev/null +++ b/v1.46/integrations/kafka.html @@ -0,0 +1,733 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Apache Kafka | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Using lakeFS with Apache Kafka + + +

+ + +

Apache Kafka provides a unified, high-throughput, low-latency platform for handling real-time data feeds.

+ +

Different distributions of Kafka offer different methods for exporting data to S3 called Kafka Sink Connectors.

+ +

The most commonly used Connector for S3 is Confluent’s S3 Sink Connector.

+ +

Add the following to connector.properties file for lakeFS support:

+ +
# Your lakeFS repository
+s3.bucket.name=example-repo
+
+# Your lakeFS S3 endpoint and credentials
+store.url=https://lakefs.example.com
+aws.access.key.id=AKIAIOSFODNN7EXAMPLE
+aws.secret.access.key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
+
+# main being the branch we want to write to
+topics.dir=main/topics 
+
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/integrations/kakfa.html b/v1.46/integrations/kakfa.html new file mode 100644 index 000000000..7e1bfa8ee --- /dev/null +++ b/v1.46/integrations/kakfa.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/integrations/kubeflow.html b/v1.46/integrations/kubeflow.html new file mode 100644 index 000000000..09c465342 --- /dev/null +++ b/v1.46/integrations/kubeflow.html @@ -0,0 +1,889 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Kubeflow | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Using lakeFS with Kubeflow pipelines + + +

+ +

Kubeflow is a project dedicated to making deployments of ML workflows on Kubernetes simple, portable, and scalable. +A Kubeflow pipeline is a portable and scalable definition of an ML workflow composed of steps. Each step in the pipeline is an instance of a component represented as an instance of ContainerOp.

+ + +

+ + + Add pipeline steps for lakeFS operations + + +

+ + +

To integrate lakeFS into your Kubeflow pipeline, you need to create Kubeflow components that perform lakeFS operations. +Currently, there are two methods to create lakeFS ContainerOps:

+
    +
  1. Implement a function-based ContainerOp that uses the lakeFS Python API to invoke lakeFS operations.
  2. +
  3. Implement a ContainerOp that uses the lakectl CLI docker image to invoke lakeFS operations.
  4. +
+

+ + + Function-based ContainerOps + + +

+ + +

To implement a function-based component that invokes lakeFS operations, +you should use the Python OpenAPI client lakeFS provides. See the example below that demonstrates how to make the client’s package available to your ContainerOp.

+

+ + + Example operations + + +

+ + +

Create a new branch: A function-based ContainerOp that creates a branch called example-branch based on the main branch of example-repo.

+ +
from kfp import components
+
+def create_branch(repo_name, branch_name, source_branch):
+   import lakefs_client
+   from lakefs_client import models
+   from lakefs_client.client import LakeFSClient
+
+   # lakeFS credentials and endpoint
+   configuration = lakefs_client.Configuration()
+   configuration.username = 'AKIAIOSFODNN7EXAMPLE'
+   configuration.password = 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY'
+   configuration.host = 'https://lakefs.example.com'
+   client = LakeFSClient(configuration)
+
+   client.branches.create_branch(repository=repo_name, branch_creation=models.BranchCreation(name=branch_name, source=source_branch))
+
+# Convert the function to a lakeFS pipeline step.
+create_branch_op = components.func_to_container_op(
+   func=create_branch,
+   packages_to_install=['lakefs_client==<lakeFS version>']) # Type in the lakeFS version you are using
+
+ +

You can invoke any lakeFS operation supported by lakeFS OpenAPI. For example, you could implement a commit and merge function-based ContainerOps. +Check out the full API reference.

+

+ + + Non-function-based ContainerOps + + +

+ + +

To implement a non-function based ContainerOp, you should use the treeverse/lakectl docker image. +With this image, you can run lakectl commands to execute the desired lakeFS operation.

+ +

For lakectl to work with Kubeflow, you will need to pass your lakeFS configurations as environment variables named:

+ +
    +
  • LAKECTL_CREDENTIALS_ACCESS_KEY_ID: AKIAIOSFODNN7EXAMPLE
  • +
  • LAKECTL_SECRET_ACCESS_KEY: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
  • +
  • LAKECTL_SERVER_ENDPOINT_URL: https://lakefs.example.com
  • +
+

+ + + Example operations + + +

+ + +
    +
  1. +

    Commit changes to a branch: A ContainerOp that commits uncommitted changes to example-branch on example-repo.

    + +
    from kubernetes.client.models import V1EnvVar
    +
    +def commit_op():
    +   return dsl.ContainerOp(
    +   name='commit',
    +   image='treeverse/lakectl',
    +   arguments=['commit', 'lakefs://example-repo/example-branch', '-m', 'commit message']).add_env_variable(V1EnvVar(name='LAKECTL_CREDENTIALS_ACCESS_KEY_ID',value='AKIAIOSFODNN7EXAMPLE')).add_env_variable(V1EnvVar(name='LAKECTL_CREDENTIALS_SECRET_ACCESS_KEY',value='wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY')).add_env_variable(V1EnvVar(name='LAKECTL_SERVER_ENDPOINT_URL',value='https://lakefs.example.com'))
    +
    +
  2. +
  3. +

    Merge two lakeFS branches: A ContainerOp that merges example-branch into the main branch of example-repo.

    + +
    def merge_op():
    +  return dsl.ContainerOp(
    +  name='merge',
    +  image='treeverse/lakectl',
    +  arguments=['merge', 'lakefs://example-repo/example-branch', 'lakefs://example-repo/main']).add_env_variable(V1EnvVar(name='LAKECTL_CREDENTIALS_ACCESS_KEY_ID',value='AKIAIOSFODNN7EXAMPLE')).add_env_variable(V1EnvVar(name='LAKECTL_CREDENTIALS_SECRET_ACCESS_KEY',value='wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY')).add_env_variable(V1EnvVar(name='LAKECTL_SERVER_ENDPOINT_URL',value='https://lakefs.example.com'))
    +
    +
  4. +
+ +

You can invoke any lakeFS operation supported by lakectl by implementing it as a ContainerOp. Check out the complete CLI reference for the list of supported operations.

+ +

Note +The lakeFS Kubeflow integration that uses lakectl is supported on lakeFS version >= v0.43.0.

+

+ + + Add the lakeFS steps to your pipeline + + +

+ + +

Add the steps created in the previous step to your pipeline before compiling it.

+

+ + + Example pipeline + + +

+ + +

A pipeline that implements a simple ETL that has steps for branch creation and commits.

+ +
def lakectl_pipeline():
+   create_branch_task = create_branch_op('example-repo', 'example-branch', 'main') # A function-based component
+   extract_task = example_extract_op()
+   commit_task = commit_op()
+   transform_task = example_transform_op()
+   commit_task = commit_op()
+   load_task = example_load_op()
+
+ +

Note +It’s recommended to store credentials as Kubernetes secrets and pass them as environment variables to Kubeflow operations using V1EnvVarSource.

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/integrations/minio.html b/v1.46/integrations/minio.html new file mode 100644 index 000000000..4af5b9be6 --- /dev/null +++ b/v1.46/integrations/minio.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/integrations/presto.html b/v1.46/integrations/presto.html new file mode 100644 index 000000000..10389a5cd --- /dev/null +++ b/v1.46/integrations/presto.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/integrations/presto_trino.html b/v1.46/integrations/presto_trino.html new file mode 100644 index 000000000..93d0487eb --- /dev/null +++ b/v1.46/integrations/presto_trino.html @@ -0,0 +1,886 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Presto / Trino | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Using lakeFS with Presto/Trino + + +

+ + +

Presto and Trino are a distributed SQL query engines designed to query large data sets distributed over one or more heterogeneous data sources.

+ +

Querying data in lakeFS from Presto/Trino is similar to querying data in S3 from Presto/Trino. It is done using the Presto Hive connector or Trino Hive connector.

+ + + +
+

Credentials

+ +

In the following examples, we set AWS credentials at runtime for clarity. In production, these properties should be set using one of Hadoop’s standard ways of Authenticating with S3.

+
+

+ + + Configuration + + +

+ +

+ + + Configure the Hive connector + + +

+ + +

Create /etc/catalog/hive.properties with the following contents to mount the hive-hadoop2 connector as the Hive catalog, replacing example.net:9083 with the correct host and port for your Hive Metastore Thrift service:

+
connector.name=hive-hadoop2
+hive.metastore.uri=thrift://example.net:9083
+
+ +

Add the lakeFS configurations to /etc/catalog/hive.properties in the corresponding S3 configuration properties:

+
hive.s3.aws-access-key=AKIAIOSFODNN7EXAMPLE
+hive.s3.aws-secret-key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
+hive.s3.endpoint=https://lakefs.example.com
+hive.s3.path-style-access=true
+
+

+ + + Configure Hive + + +

+ + +

Presto/Trino uses Hive Metastore Service (HMS) or a compatible implementation of the Hive Metastore such as AWS Glue Data Catalog to write data to S3. +In case you are using Hive Metastore, you will need to configure Hive as well.

+ +

In file hive-site.xml add to the configuration:

+
<configuration>
+    ...
+    <property>
+        <name>fs.s3a.access.key</name>
+        <value>AKIAIOSFODNN7EXAMPLE</value></property>
+    <property>
+        <name>fs.s3a.secret.key</name>
+        <value>wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY</value>
+    </property>
+    <property>
+        <name>fs.s3a.endpoint</name>
+        <value>https://lakefs.example.com</value>
+    </property>
+    <property>
+        <name>fs.s3a.path.style.access</name>
+        <value>true</value>
+    </property>
+</configuration>
+
+

+ + + Examples + + +

+ + +

Here are some examples based on examples from the Presto Hive connector examples and Trino Hive connector examples

+

+ + + Example with schema + + +

+ + +

Create a new schema named main that will store tables in a lakeFS repository named example branch: master:

+
CREATE SCHEMA main
+WITH (location = 's3a://example/main')
+
+ +

Create a new Hive table named page_views in the web schema stored using the ORC file format, + partitioned by date and country, and bucketed by user into 50 buckets (note that Hive requires the partition columns to be the last columns in the table):

+
CREATE TABLE main.page_views (
+  view_time timestamp,
+  user_id bigint,
+  page_url varchar,
+  ds date,
+  country varchar
+)
+WITH (
+  format = 'ORC',
+  partitioned_by = ARRAY['ds', 'country'],
+  bucketed_by = ARRAY['user_id'],
+  bucket_count = 50
+)
+
+

+ + + Example with External table + + +

+ + +

Create an external Hive table named request_logs that points at existing data in lakeFS:

+ +
CREATE TABLE main.request_logs (
+  request_time timestamp,
+  url varchar,
+  ip varchar,
+  user_agent varchar
+)
+WITH (
+  format = 'TEXTFILE',
+  external_location = 's3a://example/main/data/logs/'
+)
+
+

+ + + Example of copying a table with metastore tools: + + +

+ + +

Deprecated Feature: Having heard the feedback from the community, we are planning to replace the below manual steps with an automated process. +You can read more about it here.

+ +

Copy the created table page_views on schema main to schema example_branch with location s3a://example/example_branch/page_views/

+
lakectl metastore copy --from-schema main --from-table page_views --to-branch example_branch 
+
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/integrations/python.html b/v1.46/integrations/python.html new file mode 100644 index 000000000..46805a8a3 --- /dev/null +++ b/v1.46/integrations/python.html @@ -0,0 +1,1563 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Python | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Use Python to interact with your objects on lakeFS + + +

+ + + + +
+

If you are still using the legacy Python lakefs-client, it’s +time to upgrade! This client is deprecated and will be removed +soon.

+
+ +

High Level Python SDK New +We’ve just released a new High Level Python SDK library, and we’re super excited to tell you about it! Continue reading to get the +full story! +Though our previous SDK client is still supported and maintained, we highly recommend using the new High Level SDK. +For previous Python SDKs follow these links: +lakefs-sdk +legacy-sdk (Deprecated)

+ +

There are three primary ways to work with lakeFS from Python:

+ +
    +
  • Use Boto to perform object operations through the lakeFS S3 gateway.
  • +
  • Use the High Level lakeFS SDK to perform object operations, versioning and other lakeFS-specific operations.
  • +
  • Using lakefs-spec to +perform high-level file operations through a file-system-like API.
  • +
+

+ + + Using the lakeFS SDK + + +

+ +

+ + + Installing + + +

+ + +

Install the Python client using pip:

+ +
pip install lakefs
+
+

+ + + Initializing + + +

+ + +

The High Level SDK by default will try to collect authentication parameters from the environment and attempt to create a default client. +When working in an environment where lakectl is configured it is not necessary to instantiate a lakeFS client or provide it for creating the lakeFS objects. +In case no authentication parameters exist, it is also possible to explicitly create a lakeFS client

+ +

Here’s how to instantiate a client:

+ +

See here for instructions on how to log in with Python using your AWS role. This is applicable for enterprise users.

+ +
from lakefs.client import Client
+
+clt = Client(
+    host="http://localhost:8000",
+    username="AKIAIOSFODNN7EXAMPLE",
+    password="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
+)
+
+ +

You can use TLS with a CA that is not trusted on the host by configuring the +client with a CA cert bundle file. It should contain concatenated CA +certificates in PEM format:

+
clt = Client(
+    host="http://localhost:8000",
+    username="AKIAIOSFODNN7EXAMPLE",
+    password="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
+    # Customize the CA certificates used to verify the peer.
+    ssl_ca_cert="path/to/concatenated_CA_certificates.PEM",
+)
+
+ +

For testing SSL endpoints you may wish to use a self-signed certificate. If you do this and receive an SSL: CERTIFICATE_VERIFY_FAILED error message you might add the following configuration to your client:

+ +
clt = Client(
+    host="http://localhost:8000",
+    username="AKIAIOSFODNN7EXAMPLE",
+    password="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
+    verify_ssl=False,
+)
+
+ +

This setting allows well-known “man-in-the-middle”, +impersonation, and credential stealing attacks. Never use this in any +production setting.

+ +

Optionally, to enable communication via proxies, add a proxy configuration:

+ +
clt = Client(
+    host="http://localhost:8000",
+    username="AKIAIOSFODNN7EXAMPLE",
+    password="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
+    ssl_ca_cert="(if needed)",
+    proxy="<proxy server URL>",
+)
+
+

+ + + Usage Examples + + +

+ + +

Lets see how we can interact with lakeFS using the High Level SDK.

+

+ + + Creating a repository + + +

+ + +
import lakefs
+
+repo = lakefs.repository("example-repo").create(storage_namespace="s3://storage-bucket/repos/example-repo")
+print(repo)
+
+ +

If using an explicit client, create the Repository object and pass the client to it (note the changed syntax).

+ +
import lakefs
+from lakefs.client import Client
+
+clt = Client(
+    host="http://localhost:8000",
+    username="AKIAIOSFODNN7EXAMPLE",
+    password="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
+)
+
+repo = lakefs.Repository("example-repo", client=clt).create(storage_namespace="s3://storage-bucket/repos/example-repo")
+print(repo)
+
+

+ + + Output + + +

+ +
{id: 'example-repo', creation_date: 1697815536, default_branch: 'main', storage_namespace: 's3://storage-bucket/repos/example-repo'}
+
+

+ + + List repositories + + +

+ + +
import lakefs
+
+print("Listing repositories:")
+for repo in lakefs.repositories():
+    print(repo)
+
+
+

+ + + Output + + +

+ +
Listing repositories:
+{id: 'example-repo', creation_date: 1697815536, default_branch: 'main', storage_namespace: 's3://storage-bucket/repos/example-repo'}
+
+

+ + + Creating a branch + + +

+ + +
import lakefs
+
+branch1 = lakefs.repository("example-repo").branch("experiment1").create(source_reference="main")
+print("experiment1 ref:", branch1.get_commit().id)
+
+branch1 = lakefs.repository("example-repo").branch("experiment2").create(source_reference="main")
+print("experiment2 ref:", branch2.get_commit().id)
+
+

+ + + Output + + +

+ +
experiment1 ref: 7a300b41a8e1ca666c653171a364c08f640549c24d7e82b401bf077c646f8859
+experiment2 ref: 7a300b41a8e1ca666c653171a364c08f640549c24d7e82b401bf077c646f8859
+
+

+ + + List branches + + +

+ + +
import lakefs
+
+for branch in lakefs.repository("example-repo").branches():
+    print(branch)
+
+
+

+ + + Output + + +

+ +
experiment1
+experiment2
+main
+
+

+ + + IO + + +

+ + +

Great, now lets see some IO operations in action! +The new High Level SDK provide IO semantics which allow to work with lakeFS objects as if they were files in your +filesystem. This is extremely useful when working with data transformation packages that accept file descriptors and streams.

+

+ + + Upload + + +

+ + +

A simple way to upload data is to use the upload method which accepts contents as str/bytes

+ +
obj = branch1.object(path="text/sample_data.txt").upload(content_type="text/plain", data="This is my object data")
+print(obj.stats())
+
+

+ + + Output + + +

+ +
{'path': 'text/sample_data.txt', 'physical_address': 's3://storage-bucket/repos/example-repo/data/gke0ignnl531fa6k90p0/ckpfk4fnl531fa6k90pg', 'physical_address_expiry': None, 'checksum': '4a09d10820234a95bb548f14e4435bba', 'size_bytes': 15, 'mtime': 1701865289, 'metadata': {}, 'content_type': 'text/plain'}
+
+ +

Reading the data is just as simple:

+
print(obj.reader(mode='r').read())
+
+

+ + + Output + + +

+ +
This is my object data
+
+ +

Now let’s generate a “sample_data.csv” file and write it directly to a lakeFS writer object

+ +
import csv
+
+sample_data = [
+    [1, "Alice", "alice@example.com"],
+    [2, "Bob", "bob@example.com"],
+    [3, "Carol", "carol@example.com"],
+]
+
+obj = branch1.object(path="csv/sample_data.csv")
+
+with obj.writer(mode='w', pre_sign=True, content_type="text/csv") as fd:
+    writer = csv.writer(fd)
+    writer.writerow(["ID", "Name", "Email"])
+    for row in sample_data:
+        writer.writerow(row)
+
+ +

On context exit the object will be uploaded to lakeFS

+ +
print(obj.stats())
+
+

+ + + Output + + +

+ +
{'path': 'csv/sample_data.csv', 'physical_address': 's3://storage-bucket/repos/example-repo/data/gke0ignnl531fa6k90p0/ckpfk4fnl531fa6k90pg', 'physical_address_expiry': None, 'checksum': 'f181262c138901a74d47652d5ea72295', 'size_bytes': 88, 'mtime': 1701865939, 'metadata': {}, 'content_type': 'text/csv'}
+
+ +

We can also upload raw byte contents:

+ +
obj = branch1.object(path="raw/file1.data").upload(data=b"Hello Object World", pre_sign=True)
+print(obj.stats())
+
+

+ + + Output + + +

+ +
{'path': 'raw/file1.data', 'physical_address': 's3://storage-bucket/repos/example-repo/data/gke0ignnl531fa6k90p0/ckpfltvnl531fa6k90q0', 'physical_address_expiry': None, 'checksum': '0ef432f8eb0305f730b0c57bbd7a6b08', 'size_bytes': 18, 'mtime': 1701866323, 'metadata': {}, 'content_type': 'application/octet-stream'}
+
+

+ + + Uncommitted changes + + +

+ + +

Using the branch uncommmitted method will show all the uncommitted changes on that branch:

+ +
for diff in branch1.uncommitted():
+    print(diff)
+
+

+ + + Output + + +

+ + +
{'type': 'added', 'path': 'text/sample_data.txt', 'path_type': 'object', 'size_bytes': 15}
+{'type': 'added', 'path': 'csv/sample_data.csv', 'path_type': 'object', 'size_bytes': 88}
+{'type': 'added', 'path': 'raw/file1.data', 'path_type': 'object', 'size_bytes': 18}
+
+
+ +

As expected, our change appears here. Let’s commit it and attach some arbitrary metadata:

+ +
ref = branch1.commit(message='Add some data!', metadata={'using': 'python_sdk'})
+print(ref.get_commit())
+
+

+ + + Output + + +

+ +
{'id': 'c4666db80d2a984b4eab8ce02b6a60830767eba53995c26350e0ad994e15fedb', 'parents': ['a7a092a5a32a2cd97f22abcc99414f6283d29f6b9dd2725ce89f90188c5901e5'], 'committer': 'admin', 'message': 'Add some data!', 'creation_date': 1701866838, 'meta_range_id': '999bedeab1b740f83d2cf8c52548d55446f9038c69724d399adc4438412cade2', 'metadata': {'using': 'python_sdk'}}
+
+
+ +

Calling uncommitted again on the same branch, this time there should be no uncommitted files:

+ +
print(len(list(branch1.uncommitted())))
+
+

+ + + Output + + +

+ +
0
+
+

+ + + Merging changes from a branch into main + + +

+ + +

Let’s diff between your branch and the main branch:

+ +
main = repo.branch("main")
+for diff in main.diff(other_ref=branch1):
+    print(diff)
+
+

+ + + Output + + +

+ +
{'type': 'added', 'path': 'text/sample_data.txt', 'path_type': 'object', 'size_bytes': 15}
+{'type': 'added', 'path': 'csv/sample_data.csv', 'path_type': 'object', 'size_bytes': 88}
+{'type': 'added', 'path': 'raw/file1.data', 'path_type': 'object', 'size_bytes': 18}
+
+ +

Looks like we have some changes. Let’s merge them:

+ +
res = branch1.merge_into(main)
+print(res)
+# output:
+# cfddb68b7265ae0b17fafa1a2068f8414395e0a8b8bc0f8d741cbcce1e67e394
+
+ +

Let’s diff again - there should be no changes as all changes are on our main branch already:

+ +
print(len(list(main.diff(other_ref=branch1))))
+
+

+ + + Output + + +

+ +
0
+
+

+ + + Read data from main branch + + +

+ + +
import csv
+
+obj = main.object(path="csv/sample_data.csv")
+
+for row in csv.reader(obj.reader(mode='r')):
+    print(row)
+
+

+ + + Output + + +

+ +
['ID', 'Name', 'Email']
+['1', 'Alice', 'alice@example.com']
+['2', 'Bob', 'bob@example.com']
+['3', 'Carol', 'carol@example.com']
+
+

+ + + Importing data into lakeFS + + +

+ + +

The new SDK makes it much easier to import existing data from the object store into lakeFS, using the new ImportManager

+ +
import lakefs
+
+branch = lakefs.repository("example-repo").repo.branch("experiment3")
+
+# We can import data from multiple sources in a single import process
+# The following example initializes a new ImportManager and adds 2 source types; A prefix and an object.
+importer = branch.import_data(commit_message="added public S3 data") \
+    .prefix("s3://example-bucket1/path1/", destination="datasets/path1/") \
+    .object("s3://example-bucket1/path2/imported_obj", destination="datasets/path2/imported_obj")
+
+# run() is a convenience method that blocks until the import is reported as done, raising an exception if it fails.
+importer.run()
+
+
+ +

Alternatively we can call start() and status() ourselves for an async version of the above

+ +
import time
+
+# Async version
+importer.start()
+status = importer.start()
+
+while not status.completed or status.error is None:
+        time.sleep(3)  # or whatever interval you choose
+        status = importer.status()
+
+if status.error:
+    # handle!
+
+print(f"imported a total of {status.ingested_objects} objects!")
+
+
+

+ + + Output + + +

+ +
imported a total of 25478 objects!
+
+

+ + + Transactions + + +

+ + +

Transactions is a new feature in the High Level SDK. It allows performing a sequence of operations on a branch as an atomic unit, similarly to how database transactions work. +Under the hood, the transaction creates an ephemeral branch from the source branch, performs all the operation on that branch, and merges it back to the source branch once the transaction is completed. +Transactions are currently supported as a context manager only.

+ +
import lakefs
+
+branch = lakefs.repository("example-repo").repo.branch("experiment3")
+
+with branch.transact(commit_message="my transaction") as tx:
+    for obj in tx.objects(prefix="prefix_to_delete/"):  # Delete some objects
+        obj.delete()
+
+    # Create new object
+    tx.object("new_object").upload("new object data")
+
+print(len(list(branch.objects(prefix="prefix_to_delete/"))))
+print(branch.object("new_object").exists())
+
+

+ + + Output + + +

+ +
0
+True
+
+

+ + + Python SDK documentation and API reference + + +

+ + +

For the documentation of lakeFS’s Python package and full api reference, see https://pydocs-lakefs.lakefs.io

+

+ + + Using lakefs-spec for higher-level file operations + + +

+ + +

The lakefs-spec project +provides higher-level file operations on lakeFS objects with a filesystem API, +built on the fsspec project.

+ +

Note This library is a third-party package and not maintained by the lakeFS developers; please file issues and bug reports directly +in the lakefs-spec repository.

+

+ + + Installation + + +

+ + +

Install lakefs-spec directly with pip:

+ +
python -m pip install --upgrade lakefs-spec
+
+

+ + + Interacting with lakeFS through a file system + + +

+ + +

To write a file directly to a branch in a lakeFS repository, consider the following example:

+ +
from pathlib import Path
+
+from lakefs_spec import LakeFSFileSystem
+
+REPO, BRANCH = "example-repo", "main"
+
+# Prepare a local example file.
+lpath = Path("demo.txt")
+lpath.write_text("Hello, lakeFS!")
+
+fs = LakeFSFileSystem()  # will auto-discover credentials from ~/.lakectl.yaml
+rpath = f"{REPO}/{BRANCH}/{lpath.name}"
+fs.put(lpath, rpath)
+
+ +

Reading it again from remote is as easy as the following:

+ +
f = fs.open(rpath, "rt")
+print(f.readline())  # prints "Hello, lakeFS!"
+
+ +

Many more operations like retrieving an object’s metadata or checking an +object’s existence on the lakeFS server are also supported. For a full list, +see the API reference.

+ + + +

A number of Python data science projects support fsspec, with pandas being a prominent example. Reading a Parquet file from a lakeFS repository into a Pandas data frame for analysis is very easy, demonstrated on the quickstart repository sample data:

+ +
import pandas as pd
+
+# Read into pandas directly by supplying the lakeFS URI...
+lakes = pd.read_parquet(f"lakefs://quickstart/main/lakes.parquet")
+german_lakes = lakes.query('Country == "Germany"')
+# ... and store directly, again with a raw lakeFS URI.
+german_lakes.to_csv(f"lakefs://quickstart/main/german_lakes.csv")
+
+ +

A list of integrations with popular data science libraries can be found in the lakefs-spec documentation.

+

+ + + Using transactions for atomic versioning operations + + +

+ + +

As with the high-level SDK (see above), lakefs-spec also supports transactions +for conducting versioning operations on newly modified files. The following is an example of creating a commit on the repository’s main branch directly after a file upload:

+ +
from lakefs_spec import LakeFSFileSystem
+
+fs = LakeFSFileSystem()
+
+# assumes you have a local train-test split as two text files:
+# train-data.txt, and test-data.txt.
+with fs.transaction("example-repo", "main") as tx:
+    fs.put_file("train-data.txt", f"example-repo/{tx.branch.id}/train-data.txt")
+    tx.commit(message="Add training data")
+    fs.put_file("test-data.txt", f"example-repo/{tx.branch.id}/test-data.txt")
+    sha = tx.commit(message="Add test data")
+    tx.tag(sha, name="My train-test split")
+
+ +

Transactions are atomic - if an exception happens at any point of the transaction, the repository remains unchanged.

+

+ + + Further information + + +

+ + +

For more user guides, tutorials on integrations with data science tools like pandas, and more, check out the lakefs-spec documentation.

+

+ + + Using Boto + + +

+ + +

💡 To use Boto with lakeFS alongside S3, check out Boto S3 Router. It will route +requests to either S3 or lakeFS according to the provided bucket name.

+ +

lakeFS exposes an S3-compatible API, so you can use Boto to interact with your objects on lakeFS.

+

+ + + Initializing + + +

+ + +

Create a Boto3 S3 client with your lakeFS endpoint and key-pair:

+ +
import boto3
+s3 = boto3.client('s3',
+    endpoint_url='https://lakefs.example.com',
+    aws_access_key_id='AKIAIOSFODNN7EXAMPLE',
+    aws_secret_access_key='wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY')
+
+ +

The client is now configured to operate on your lakeFS installation.

+

+ + + Usage Examples + + +

+ +

+ + + Put an object into lakeFS + + +

+ + +

Use a branch name and a path to put an object in lakeFS:

+ +
with open('/local/path/to/file_0', 'rb') as f:
+    s3.put_object(Body=f, Bucket='example-repo', Key='main/example-file.parquet')
+
+ +

You can now commit this change using the lakeFS UI or CLI.

+

+ + + List objects + + +

+ + +

List the branch objects starting with a prefix:

+ +
list_resp = s3.list_objects_v2(Bucket='example-repo', Prefix='main/example-prefix')
+for obj in list_resp['Contents']:
+    print(obj['Key'])
+
+ +

Or, use a lakeFS commit ID to list objects for a specific commit:

+ +
list_resp = s3.list_objects_v2(Bucket='example-repo', Prefix='c7a632d74f/example-prefix')
+for obj in list_resp['Contents']:
+    print(obj['Key'])
+
+

+ + + Get object metadata + + +

+ + +

Get object metadata using branch and path:

+ +
s3.head_object(Bucket='example-repo', Key='main/example-file.parquet')
+# output:
+# {'ResponseMetadata': {'RequestId': '72A9EBD1210E90FA',
+#  'HostId': '',
+#  'HTTPStatusCode': 200,
+#  'HTTPHeaders': {'accept-ranges': 'bytes',
+#   'content-length': '1024',
+#   'etag': '"2398bc5880e535c61f7624ad6f138d62"',
+#   'last-modified': 'Sun, 24 May 2020 10:42:24 GMT',
+#   'x-amz-request-id': '72A9EBD1210E90FA',
+#   'date': 'Sun, 24 May 2020 10:45:42 GMT'},
+#  'RetryAttempts': 0},
+# 'AcceptRanges': 'bytes',
+# 'LastModified': datetime.datetime(2020, 5, 24, 10, 42, 24, tzinfo=tzutc()),
+# 'ContentLength': 1024,
+# 'ETag': '"2398bc5880e535c61f7624ad6f138d62"',
+# 'Metadata': {}}
+
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/integrations/r.html b/v1.46/integrations/r.html new file mode 100644 index 000000000..26719c4c6 --- /dev/null +++ b/v1.46/integrations/r.html @@ -0,0 +1,1006 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +R | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Using R with lakeFS + + +

+ + +

R is a powerful language used widely in data science. lakeFS interfaces with R in two ways:

+ +
    +
  • To read and write data in lakeFS use standard S3 tools such as the aws.s3 library. lakeFS has a S3 gateway which presents a lakeFS repository as an S3 bucket.
  • +
  • For working with lakeFS operations such as branches and commits use the API for which can be accessed from R using the httr library.
  • +
+ +

To see examples of R in action with lakeFS please visit the lakeFS-samples repository and the sample notebooks.

+ + +

+ + + Reading and Writing from lakeFS with R + + +

+ + +

Working with data stored in lakeFS from R is the same as you would with an S3 bucket, via the S3 Gateway that lakeFS provides.

+ +

You can use any library that interfaces with S3. In this example we’ll use the aws.s3 library.

+ +
install.packages(c("aws.s3"))
+library(aws.s3)
+
+

+ + + Configuration + + +

+ + +

The R S3 client documentation includes full details of the configuration options available. A good approach for using it with lakeFS set the endpoint and authentication details as environment variables:

+ +
Sys.setenv("AWS_ACCESS_KEY_ID" = "AKIAIOSFODNN7EXAMPLE",
+           "AWS_SECRET_ACCESS_KEY" = "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
+           "AWS_S3_ENDPOINT" = "lakefs.mycorp.com:8000")
+
+ +

Note: it is generally best practice to set these environment variables outside of the R script; it is done so here for convenience of the example.

+ +

In conjunction with this you must also specify region and use_https in each call of an aws.s3 function as these cannot be set globally. For example:

+ +
bucketlist(
+    region = "",
+    use_https = FALSE
+    )
+
+ +
    +
  • region should always be empty
  • +
  • use_https should be set to TRUE or FALSE depending on whether your lakeFS endpoint uses HTTPS.
  • +
+

+ + + Listing repositories + + +

+ + +

The S3 gateway exposes a repository as a bucket, and so using the aws.s3 function bucketlist will return a list of available repositories on lakeFS:

+ +
bucketlist(
+    region = "",
+    use_https = FALSE
+    )
+
+

+ + + Writing to lakeFS from R + + +

+ + +

Assuming you’re using the aws.s3 library there various functions available including s3save, s3saveRDS, and put_object. Here’s an example of writing an R object to lakeFS:

+ +
repo_name <- "example"
+branch <- "development"
+
+s3saveRDS(x=my_df, 
+          bucket = repo_name, 
+          object = paste0(branch,"/my_df.R"), 
+          region = "",
+          use_https = FALSE)
+
+ +

You can also upload local files to lakeFS using R and the put_object function:

+ +
repo_name <- "example"
+branch <- "development"
+local_file <- "/tmp/never.gonna"
+
+put_object(file = local_file, 
+           bucket = repo_name, 
+           object = paste0(branch,"/give/you/up"),
+           region = "",
+           use_https = FALSE)
+
+

+ + + Reading from lakeFS with R + + +

+ + +

As with writing data from R to lakeFS, there is a similar set of functions for reading data. These include s3load, s3readRDS, and get_object. Here’s an example of reading an R object from lakeFS:

+ +
repo_name <- "example"
+branch <- "development"
+
+my_df <- s3readRDS(bucket = repo_name, 
+                   object = paste0(branch,"/my_data.R"),
+                   region = "",
+                   use_https = FALSE)
+
+

+ + + Listing Objects + + +

+ + +

In general you should always specify a branch prefix when listing objects. Here’s an example to list the main branch in the quickstart repository:

+ +
get_bucket_df(bucket = "quickstart",
+              prefix = "main/",
+              region = "",
+              use_https = FALSE)
+
+ +

When listing objects in lakeFS there is a special case which is the repository/bucket level. When you list at this level you will get the branches returned as folders. These are not listed recursively, unless you list something under the branch. To understand more about this please refer to #5441

+

+ + + Working with Arrow + + +

+ + +

Arrow’s R library includes powerful support for data analysis, including reading and writing multiple file formats including Parquet, Arrow, CSV, and JSON. It has functionality for connecting to S3, and thus integrates perfectly with lakeFS.

+ +

To start with install and load the library

+ +
install.packages("arrow")
+library(arrow)
+
+ +

Then create an S3FileSystem object to connect to your lakeFS instance

+ +
lakefs <- S3FileSystem$create(
+    endpoint_override = "lakefs.mycorp.com:8000",
+    scheme = "http"
+    access_key = "AKIAIOSFODNN7EXAMPLE", 
+    secret_key = "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", 
+    region = "",
+)
+
+ +

From here you can list the contents of a particular lakeFS repository and branch

+ +
lakefs$ls(path = "quickstart/main")
+
+ +

To read a Parquet from lakeFS with R use the read_parquet function

+ +
lakes <- read_parquet(lakefs$path("quickstart/main/lakes.parquet"))
+
+ +

Writing a file follows a similar pattern. Here is rewriting the same file as above but in Arrow format

+ +
write_feather(x = lakes,
+              sink = lakefs$path("quickstart/main/lakes.arrow"))
+
+

+ + + Performing lakeFS Operations using the lakeFS API from R + + +

+ + +

As well as reading and writing data, you will also want to carry out lakeFS operations from R including creating branches, committing data, and more.

+ +

To do this call the lakeFS API from the httr library. You should refer to the API documentation for full details of the endpoints and their behaviour. Below are a few examples to illustrate the usage.

+

+ + + Check the lakeFS Server Version + + +

+ + +

This is a useful API call to establish connectivity and test authentication.

+ +
library(httr)
+lakefs_api_url <- "lakefs.mycorp.com:8000/api/v1"
+lakefsAccessKey <- "AKIAIOSFODNN7EXAMPLE"
+lakefsSecretKey <- "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
+
+r=GET(url=paste0(lakefs_api_url, "/config/version"), 
+      authenticate(lakefsAccessKey, lakefsSecretKey))
+
+ +

The returned object r can be inspected to determine the outcome of the operation by comparing it to the status codes specified in the API. Here is some example R code to demonstrate the idea:

+ +
if (r$status_code == 200) {
+    print(paste0("✅lakeFS credentials and connectivity verified. ℹ️lakeFS version ",content(r)$version))   
+} else {
+    print("🛑 failed to get lakeFS version")
+    print(content(r)$message)
+}
+
+

+ + + Create a Repository + + +

+ + +
library(httr)
+lakefs_api_url <- "lakefs.mycorp.com:8000/api/v1"
+lakefsAccessKey <- "AKIAIOSFODNN7EXAMPLE"
+lakefsSecretKey <- "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
+repo_name <- "my_new_repo"
+
+# Define the payload
+body=list(name=repo_name, 
+          storage_namespace="s3://example-bucket/foo")
+
+# Call the API
+r=POST(url=paste0(lakefs_api_url, "/repositories"), 
+        authenticate(lakefsAccessKey, lakefsSecretKey),
+        body=body, encode="json")
+
+

+ + + Commit Data + + +

+ + +
library(httr)
+lakefs_api_url <- "lakefs.mycorp.com:8000/api/v1"
+lakefsAccessKey <- "AKIAIOSFODNN7EXAMPLE"
+lakefsSecretKey <- "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
+repo_name <- "my_new_repo"
+branch <- "example"
+
+# Define the payload
+body=list(message="add some data and charts", 
+          metadata=list(
+              client="httr", 
+              author="rmoff"))
+
+# Call the API
+r=POST(url=paste0(lakefs_api_url, "/repositories/", repo_name, "/branches/", branch, "/commits"), 
+       authenticate(lakefsAccessKey, lakefsSecretKey),
+       body=body, encode="json")
+
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/integrations/rclone.html b/v1.46/integrations/rclone.html new file mode 100644 index 000000000..07c435e7e --- /dev/null +++ b/v1.46/integrations/rclone.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/integrations/red_hat_openshift_ai.html b/v1.46/integrations/red_hat_openshift_ai.html new file mode 100644 index 000000000..378d6a679 --- /dev/null +++ b/v1.46/integrations/red_hat_openshift_ai.html @@ -0,0 +1,738 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Red Hat OpenShift AI | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Using lakeFS with Red Hat OpenShift AI + + +

+ +

Red Hat® OpenShift® is an enterprise-ready Kubernetes container platform with full-stack automated operations to manage hybrid cloud, multi-cloud, and edge deployments. OpenShift includes an enterprise-grade Linux operating system, container runtime, networking, monitoring, registry, and authentication and authorization solutions.

+ +

Red Hat® OpenShift® AI is a flexible, scalable artificial intelligence (AI) and machine learning (ML) platform that enables enterprises to create and deliver AI-enabled applications at scale across hybrid cloud environments. Built using open source technologies, OpenShift AI provides trusted, operationally consistent capabilities for teams to experiment, serve models, and deliver innovative apps.

+ +

OpenShift AI and lakeFS can be deployed in OpenShift cluster in 3 different architectures:

+
    +
  1. OpenShift AI, lakeFS and object storage are delpoyed in OpenShift cluster
  2. +
  3. OpenShift AI and lakeFS are deployed in OpenShift cluster while object storage is external
  4. +
  5. OpenShift AI is deployed in OpenShift cluster while lakeFS and object storage are external
  6. +
+ +

OpenShift AI and lakeFS Deployment Architecture

+ +

Refer to an example in lakeFS-samples to deploy lakeFS, MinIO and OpenShift AI tutorial (Fraud Detection demo) in OpenShift cluster. Fraud detection demo is a step-by-step guide for using OpenShift AI to train an example model in JupyterLab, deploy the model, and refine the model by using automated pipelines.

+ +

In this example, OpenShift AI is configured to connect over S3 interace to lakeFS, which will version the data in a backend MinIO instance. This is the architecture to run Fraud Detection demo with or without lakeFS: +OpenShift AI and lakeFS Deployment Architecture for the demo

+ +

lakeFS-samples also includes multiple Helm chart examples to deploy lakeFS and MinIO in different scenarios:

+
    +
  1. lakefs-local.yaml: Bring up lakeFS using local object storage. This would be useful for a quick demo where MinIO is not included.
  2. +
  3. lakefs-minio.yaml: Bring up lakeFS configured to use MinIO as backend object storage. This will be used in the lakeFS demo.
  4. +
  5. minio-direct.yaml: This file would only be used if lakeFS is not in the picture and OpenShift AI will communicate directly with MinIO. It will bring up MinIO as it is in the default Fraud Detection demo, complete with configuring MinIO storage buckets and the OpenShift AI data connections. It may serve useful in debugging an issue.
  6. +
  7. minio-via-lakefs.yaml: Bring up MinIO for the modified Fraud Detection demo that includes lakeFS, complete with configuring MinIO storage buckets, but do NOT configure the OpenShift AI data connections. This will be used in the lakeFS demo.
  8. +
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/integrations/sagemaker.html b/v1.46/integrations/sagemaker.html new file mode 100644 index 000000000..d5df0fe55 --- /dev/null +++ b/v1.46/integrations/sagemaker.html @@ -0,0 +1,815 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Amazon SageMaker | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Using lakeFS with Amazon SageMaker + + +

+ +

Amazon SageMaker helps to prepare, build, train and deploy ML models quickly by bringing together a broad set of capabilities purpose-built for ML.

+ +
+

+ + + Table of contents + + +

+ + +
    +
  1. Initializing session and client
  2. +
  3. Usage Examples
  4. +
+ +
+

+ + + Initializing session and client + + +

+ + +

Initialize a Sagemaker session and an S3 client with lakeFS as the endpoint:

+
import sagemaker
+import boto3
+
+endpoint_url = '<LAKEFS_ENDPOINT>'
+aws_access_key_id = '<LAKEFS_ACCESS_KEY_ID>'
+aws_secret_access_key = '<LAKEFS_SECRET_ACCESS_KEY>'
+repo = 'example-repo'
+
+sm = boto3.client('sagemaker',
+    endpoint_url=endpoint_url,
+    aws_access_key_id=aws_access_key_id,
+    aws_secret_access_key=aws_secret_access_key)
+
+s3_resource = boto3.resource('s3',
+    endpoint_url=endpoint_url,
+    aws_access_key_id=aws_access_key_id,
+    aws_secret_access_key=aws_secret_access_key)
+
+session = sagemaker.Session(boto3.Session(), sagemaker_client=sm, default_bucket=repo)
+session.s3_resource = s3_resource
+
+

+ + + Usage Examples + + +

+ +

+ + + Upload train and test data + + +

+ + +

Let’s use the created session for uploading data to the ‘main’ branch:

+ +
prefix = "/prefix-within-branch"
+branch = 'main'
+
+train_file = 'train_data.csv';
+train_data.to_csv(train_file, index=False, header=True)
+train_data_s3_path = session.upload_data(path=train_file, key_prefix=branch + prefix + "/train")
+
+test_file = 'test_data.csv';
+test_data_no_target.to_csv(test_file, index=False, header=False)
+test_data_s3_path = session.upload_data(path=test_file, key_prefix=branch + prefix + "/test")
+
+

+ + + Download objects + + +

+ + +

You can use the integration with lakeFS to download a portion of the data you see fit:

+ +
repo = 'example-repo'
+prefix = "/prefix-to-download"
+branch = 'main'
+localpath = './' + branch
+
+session.download_data(path=localpath, bucket=repo, key_prefix = branch + prefix)
+
+ +

Note: +Advanced AWS SageMaker features, like Autopilot jobs, are encapsulated and don’t have the option to override the S3 endpoint. +However, it is possible to export the required inputs from lakeFS to S3. +
If you’re using SageMaker features that aren’t supported by lakeFS, we’d love to hear from you.

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/integrations/spark.html b/v1.46/integrations/spark.html new file mode 100644 index 000000000..707753fa0 --- /dev/null +++ b/v1.46/integrations/spark.html @@ -0,0 +1,1573 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Apache Spark | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Using lakeFS with Apache Spark + + +

+ + +

There are several ways to use lakeFS with Spark:

+ + + +

See how SimilarWeb is using lakeFS with Spark to manage algorithm changes in data pipelines.

+ +
+

+ + + Table of contents + + +

+ + +
    +
  1. S3-compatible API
  2. +
  3. lakeFS Hadoop FileSystem
  4. +
  5. Hadoop FileSystem in Presigned mode
  6. +
+ +
+

+ + + S3-compatible API + + +

+ + +

lakeFS has an S3-compatible endpoint which you can point Spark at to get started quickly.

+ +

You will access your data using S3-style URIs, e.g. s3a://example-repo/example-branch/example-table.

+ +

You can use the S3-compatible API regardless of where your data is hosted.

+

+ + + Configuration + + +

+ + +

To configure Spark to work with lakeFS, we set S3A Hadoop configuration to the lakeFS endpoint and credentials:

+ +
    +
  • fs.s3a.access.key: lakeFS access key
  • +
  • fs.s3a.secret.key: lakeFS secret key
  • +
  • fs.s3a.endpoint: lakeFS S3-compatible API endpoint (e.g. https://example-org.us-east-1.lakefscloud.io)
  • +
  • fs.s3a.path.style.access: true
  • +
+ +

Here is how to do it:

+
+ +
+
spark-shell --conf spark.hadoop.fs.s3a.access.key='AKIAlakefs12345EXAMPLE' \
+              --conf spark.hadoop.fs.s3a.secret.key='abc/lakefs/1234567bPxRfiCYEXAMPLEKEY' \
+              --conf spark.hadoop.fs.s3a.path.style.access=true \
+              --conf spark.hadoop.fs.s3a.endpoint='https://example-org.us-east-1.lakefscloud.io' ...
+
+
+
+
spark.sparkContext.hadoopConfiguration.set("fs.s3a.access.key", "AKIAlakefs12345EXAMPLE")
+spark.sparkContext.hadoopConfiguration.set("fs.s3a.secret.key", "abc/lakefs/1234567bPxRfiCYEXAMPLEKEY")
+spark.sparkContext.hadoopConfiguration.set("fs.s3a.endpoint", "https://example-org.us-east-1.lakefscloud.io")
+spark.sparkContext.hadoopConfiguration.set("fs.s3a.path.style.access", "true")
+
+
+
+

Add these into a configuration file, e.g. $SPARK_HOME/conf/hdfs-site.xml:

+
<?xml version="1.0"?>
+<configuration>
+    <property>
+        <name>fs.s3a.access.key</name>
+        <value>AKIAlakefs12345EXAMPLE</value>
+    </property>
+    <property>
+            <name>fs.s3a.secret.key</name>
+            <value>abc/lakefs/1234567bPxRfiCYEXAMPLEKEY</value>
+    </property>
+    <property>
+        <name>fs.s3a.endpoint</name>
+        <value>https://example-org.us-east-1.lakefscloud.io</value>
+    </property>
+    <property>
+        <name>fs.s3a.path.style.access</name>
+        <value>true</value>
+    </property>
+</configuration>
+
+
+
+

Use the below configuration when creating the cluster. You may delete any app configuration that is not suitable for your use case:

+ +
[
+  {
+    "Classification": "spark-defaults",
+    "Properties": {
+      "spark.sql.catalogImplementation": "hive"
+    }
+  },
+  {
+    "Classification": "core-site",
+    "Properties": {
+        "fs.s3.access.key": "AKIAIOSFODNN7EXAMPLE",
+        "fs.s3.secret.key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
+        "fs.s3.endpoint": "https://example-org.us-east-1.lakefscloud.io",
+        "fs.s3.path.style.access": "true",
+        "fs.s3a.access.key": "AKIAIOSFODNN7EXAMPLE",
+        "fs.s3a.secret.key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
+        "fs.s3a.endpoint": "https://example-org.us-east-1.lakefscloud.io",
+        "fs.s3a.path.style.access": "true"
+    }
+  },
+  {
+    "Classification": "emrfs-site",
+    "Properties": {
+        "fs.s3.access.key": "AKIAIOSFODNN7EXAMPLE",
+        "fs.s3.secret.key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
+        "fs.s3.endpoint": "https://example-org.us-east-1.lakefscloud.io",
+        "fs.s3.path.style.access": "true",
+        "fs.s3a.access.key": "AKIAIOSFODNN7EXAMPLE",
+        "fs.s3a.secret.key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
+        "fs.s3a.endpoint": "https://example-org.us-east-1.lakefscloud.io",
+        "fs.s3a.path.style.access": "true"
+    }
+  },
+  {
+    "Classification": "presto-connector-hive",
+    "Properties": {
+        "hive.s3.aws-access-key": "AKIAIOSFODNN7EXAMPLE",
+        "hive.s3.aws-secret-key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
+        "hive.s3.endpoint": "https://example-org.us-east-1.lakefscloud.io",
+        "hive.s3.path-style-access": "true",
+        "hive.s3-file-system-type": "PRESTO"
+    }
+  },
+  {
+    "Classification": "hive-site",
+    "Properties": {
+        "fs.s3.access.key": "AKIAIOSFODNN7EXAMPLE",
+        "fs.s3.secret.key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
+        "fs.s3.endpoint": "https://example-org.us-east-1.lakefscloud.io",
+        "fs.s3.path.style.access": "true",
+        "fs.s3a.access.key": "AKIAIOSFODNN7EXAMPLE",
+        "fs.s3a.secret.key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
+        "fs.s3a.endpoint": "https://example-org.us-east-1.lakefscloud.io",
+        "fs.s3a.path.style.access": "true"
+    }
+  },
+  {
+    "Classification": "hdfs-site",
+    "Properties": {
+        "fs.s3.access.key": "AKIAIOSFODNN7EXAMPLE",
+        "fs.s3.secret.key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
+        "fs.s3.endpoint": "https://example-org.us-east-1.lakefscloud.io",
+        "fs.s3.path.style.access": "true",
+        "fs.s3a.access.key": "AKIAIOSFODNN7EXAMPLE",
+        "fs.s3a.secret.key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
+        "fs.s3a.endpoint": "https://example-org.us-east-1.lakefscloud.io",
+        "fs.s3a.path.style.access": "true"
+    }
+  },
+  {
+    "Classification": "mapred-site",
+    "Properties": {
+        "fs.s3.access.key": "AKIAIOSFODNN7EXAMPLE",
+        "fs.s3.secret.key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
+        "fs.s3.endpoint": "https://example-org.us-east-1.lakefscloud.io",
+        "fs.s3.path.style.access": "true",
+        "fs.s3a.access.key": "AKIAIOSFODNN7EXAMPLE",
+        "fs.s3a.secret.key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
+        "fs.s3a.endpoint": "https://example-org.us-east-1.lakefscloud.io",
+        "fs.s3a.path.style.access": "true"
+    }
+  }
+]
+
+ +

Alternatively, you can pass these configuration values when adding a step.

+ +

For example:

+ +
aws emr add-steps --cluster-id j-197B3AEGQ9XE4 \
+  --steps="Type=Spark,Name=SparkApplication,ActionOnFailure=CONTINUE, \
+  Args=[--conf,spark.hadoop.fs.s3a.access.key=AKIAIOSFODNN7EXAMPLE, \
+  --conf,spark.hadoop.fs.s3a.secret.key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY, \
+  --conf,spark.hadoop.fs.s3a.endpoint=https://example-org.us-east-1.lakefscloud.io, \
+  --conf,spark.hadoop.fs.s3a.path.style.access=true, \
+  s3a://<lakefs-repo>/<lakefs-branch>/path/to/jar]"
+
+ +
+
+

+ + + Per-bucket configuration + + +

+ + +

The above configuration will use lakeFS as the sole S3 endpoint. To use lakeFS in parallel with S3, you can configure Spark to use lakeFS only for specific bucket names. +For example, to configure only example-repo to use lakeFS, set the following configurations:

+ +
+ +
+
spark-shell --conf spark.hadoop.fs.s3a.bucket.example-repo.access.key='AKIAlakefs12345EXAMPLE' \
+              --conf spark.hadoop.fs.s3a.bucket.example-repo.secret.key='abc/lakefs/1234567bPxRfiCYEXAMPLEKEY' \
+              --conf spark.hadoop.fs.s3a.bucket.example-repo.endpoint='https://example-org.us-east-1.lakefscloud.io' \
+              --conf spark.hadoop.fs.s3a.path.style.access=true
+
+
+
+
spark.sparkContext.hadoopConfiguration.set("fs.s3a.bucket.example-repo.access.key", "AKIAlakefs12345EXAMPLE")
+spark.sparkContext.hadoopConfiguration.set("fs.s3a.bucket.example-repo.secret.key", "abc/lakefs/1234567bPxRfiCYEXAMPLEKEY")
+spark.sparkContext.hadoopConfiguration.set("fs.s3a.bucket.example-repo.endpoint", "https://example-org.us-east-1.lakefscloud.io")
+spark.sparkContext.hadoopConfiguration.set("fs.s3a.path.style.access", "true")
+
+
+
+

Add these into a configuration file, e.g. $SPARK_HOME/conf/hdfs-site.xml:

+
<?xml version="1.0"?>
+<configuration>
+    <property>
+        <name>fs.s3a.bucket.example-repo.access.key</name>
+        <value>AKIAlakefs12345EXAMPLE</value>
+    </property>
+    <property>
+        <name>fs.s3a.bucket.example-repo.secret.key</name>
+        <value>abc/lakefs/1234567bPxRfiCYEXAMPLEKEY</value>
+    </property>
+    <property>
+        <name>fs.s3a.bucket.example-repo.endpoint</name>
+        <value>https://example-org.us-east-1.lakefscloud.io</value>
+    </property>
+    <property>
+        <name>fs.s3a.path.style.access</name>
+        <value>true</value>
+    </property>
+</configuration>
+
+
+
+

Use the below configuration when creating the cluster. You may delete any app configuration that is not suitable for your use case:

+ +
[
+  {
+    "Classification": "spark-defaults",
+    "Properties": {
+      "spark.sql.catalogImplementation": "hive"
+    }
+  },
+  {
+    "Classification": "core-site",
+    "Properties": {
+        "fs.s3a.bucket.example-repo.access.key": "AKIAIOSFODNN7EXAMPLE",
+        "fs.s3.bucket.example-repo.secret.key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
+        "fs.s3.bucket.example-repo.endpoint": "https://example-org.us-east-1.lakefscloud.io",
+        "fs.s3.bucket.example-repo.path.style.access": "true",
+        "fs.s3a.bucket.example-repo.access.key": "AKIAIOSFODNN7EXAMPLE",
+        "fs.s3a.bucket.example-repo.secret.key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
+        "fs.s3a.bucket.example-repo.endpoint": "https://example-org.us-east-1.lakefscloud.io",
+        "fs.s3a.bucket.example-repo.path.style.access": "true"
+    }
+  },
+  {
+    "Classification": "emrfs-site",
+    "Properties": {
+        "fs.s3a.bucket.example-repo.access.key": "AKIAIOSFODNN7EXAMPLE",
+        "fs.s3.bucket.example-repo.secret.key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
+        "fs.s3.bucket.example-repo.endpoint": "https://example-org.us-east-1.lakefscloud.io",
+        "fs.s3.bucket.example-repo.path.style.access": "true",
+        "fs.s3a.bucket.example-repo.access.key": "AKIAIOSFODNN7EXAMPLE",
+        "fs.s3a.bucket.example-repo.secret.key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
+        "fs.s3a.bucket.example-repo.endpoint": "https://example-org.us-east-1.lakefscloud.io",
+        "fs.s3a.bucket.example-repo.path.style.access": "true"
+    }
+  },
+  {
+    "Classification": "presto-connector-hive",
+    "Properties": {
+        "hive.s3.aws-access-key": "AKIAIOSFODNN7EXAMPLE",
+        "hive.s3.aws-secret-key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
+        "hive.s3.endpoint": "https://example-org.us-east-1.lakefscloud.io",
+        "hive.s3.path-style-access": "true",
+        "hive.s3-file-system-type": "PRESTO"
+    }
+  },
+  {
+    "Classification": "hive-site",
+    "Properties": {
+        "fs.s3a.bucket.example-repo.access.key": "AKIAIOSFODNN7EXAMPLE",
+        "fs.s3.bucket.example-repo.secret.key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
+        "fs.s3.bucket.example-repo.endpoint": "https://example-org.us-east-1.lakefscloud.io",
+        "fs.s3.bucket.example-repo.path.style.access": "true",
+        "fs.s3a.bucket.example-repo.access.key": "AKIAIOSFODNN7EXAMPLE",
+        "fs.s3a.bucket.example-repo.secret.key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
+        "fs.s3a.bucket.example-repo.endpoint": "https://example-org.us-east-1.lakefscloud.io",
+        "fs.s3a.bucket.example-repo.path.style.access": "true"
+    }
+  },
+  {
+    "Classification": "hdfs-site",
+    "Properties": {
+        "fs.s3a.bucket.example-repo.access.key": "AKIAIOSFODNN7EXAMPLE",
+        "fs.s3.bucket.example-repo.secret.key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
+        "fs.s3.bucket.example-repo.endpoint": "https://example-org.us-east-1.lakefscloud.io",
+        "fs.s3.bucket.example-repo.path.style.access": "true",
+        "fs.s3a.bucket.example-repo.access.key": "AKIAIOSFODNN7EXAMPLE",
+        "fs.s3a.bucket.example-repo.secret.key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
+        "fs.s3a.bucket.example-repo.endpoint": "https://example-org.us-east-1.lakefscloud.io",
+        "fs.s3a.bucket.example-repo.path.style.access": "true"
+    }
+  },
+  {
+    "Classification": "mapred-site",
+    "Properties": {
+        "fs.s3a.bucket.example-repo.access.key": "AKIAIOSFODNN7EXAMPLE",
+        "fs.s3.bucket.example-repo.secret.key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
+        "fs.s3.bucket.example-repo.endpoint": "https://example-org.us-east-1.lakefscloud.io",
+        "fs.s3.bucket.example-repo.path.style.access": "true",
+        "fs.s3a.bucket.example-repo.access.key": "AKIAIOSFODNN7EXAMPLE",
+        "fs.s3a.bucket.example-repo.secret.key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
+        "fs.s3a.bucket.example-repo.endpoint": "https://example-org.us-east-1.lakefscloud.io",
+        "fs.s3a.bucket.example-repo.path.style.access": "true"
+    }
+  }
+]
+
+ +

Alternatively, you can pass these configuration values when adding a step.

+ +

For example:

+ +
aws emr add-steps --cluster-id j-197B3AEGQ9XE4 \
+  --steps="Type=Spark,Name=SparkApplication,ActionOnFailure=CONTINUE, \
+  Args=[--conf,spark.hadoop.fs.s3a.bucket.example-repo.access.key=AKIAIOSFODNN7EXAMPLE, \
+  --conf,spark.hadoop.fs.s3a.bucket.example-repo.secret.key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY, \
+  --conf,spark.hadoop.fs.s3a.bucket.example-repo.endpoint=https://example-org.us-east-1.lakefscloud.io, \
+  --conf,spark.hadoop.fs.s3a.path.style.access=true, \
+  s3a://<lakefs-repo>/<lakefs-branch>/path/to/jar]"
+
+ +
+
+ +

With this configuration set, you read S3A paths with example-repo as the bucket will use lakeFS, while all other buckets will use AWS S3.

+

+ + + Usage + + +

+ + +

Here’s an example for reading a Parquet file from lakeFS to a Spark DataFrame:

+ +
val repo = "example-repo"
+val branch = "main"
+val df = spark.read.parquet(s"s3a://${repo}/${branch}/example-path/example-file.parquet")
+
+ +

Here’s how to write some results back to a lakeFS path:

+
df.write.partitionBy("example-column").parquet(s"s3a://${repo}/${branch}/output-path/")
+
+ +

The data is now created in lakeFS as new changes in your branch. You can now commit these changes or revert them.

+

+ + + Configuring Azure Databricks with the S3-compatible API + + +

+ + +

If you use Azure Databricks, you can take advantage of the lakeFS S3-compatible API with your Azure account and the S3A FileSystem. +This will require installing the hadoop-aws package (with the same version as your hadoop-azure package) to your Databricks cluster.

+ +

Define your FileSystem configurations in the following way:

+ +
spark.hadoop.fs.lakefs.impl=org.apache.hadoop.fs.s3a.S3AFileSystem
+spark.hadoop.fs.lakefs.access.key=‘AKIAlakefs12345EXAMPLE’                   // The access key to your lakeFS server
+spark.hadoop.fs.lakefs.secret.key=‘abc/lakefs/1234567bPxRfiCYEXAMPLEKEY’     // The secret key to your lakeFS server
+spark.hadoop.fs.lakefs.path.style.access=true
+spark.hadoop.fs.lakefs.endpoint=‘https://example-org.us-east-1.lakefscloud.io’                 // The endpoint of your lakeFS server
+
+ +

For more details about Mounting cloud object storage on Databricks.

+

+ + + Configuring Databricks SQL Warehouse with the S3-compatible API + + +

+ + +

A SQL warehouse is a compute resource that lets you run SQL commands on data +objects within Databricks SQL.

+ +

If you use Databricks SQL warehouse, you can take advantage of the lakeFS +S3-compatible API with the S3A FileSystem.

+ +

Define your SQL Warehouse configurations in the following way:

+ +
    +
  1. +

    In the top right, select Admin Settings and then Compute, and SQL warehouses.

    +
  2. +
  3. +

    Under Data Access Properties add the following key-value pairs for +each lakeFS repository you want to access:

    +
  4. +
+ +
spark.hadoop.fs.s3a.impl shaded.databricks.org.apache.hadoop.fs.s3a.S3AFileSystem
+spark.hadoop.fs.s3a.bucket.example-repo.access.key AKIAIOSFODNN7EXAMPLE // The access key to your lakeFS server
+spark.hadoop.fs.s3a.bucket.example-repo.secret.key wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY // The secret key to your lakeFS server
+spark.hadoop.fs.s3a.bucket.example-repo.endpoint https://example-org.us-east-1.lakefscloud.io // The endpoint of your lakeFS server
+spark.hadoop.fs.s3a.bucket.example-repo.path.style.access true               
+
+ +
    +
  1. Changes are applied automatically after the SQL Warehouse restarts.
  2. +
  3. You can now use the lakeFS S3-compatible API with your SQL Warehouse, e.g.:
  4. +
+ +
SELECT * FROM delta.`s3a://example-repo/main/datasets/delta-table/` LIMIT 100
+
+

+ + + ⚠️ Experimental: Pre-signed mode for S3A + + +

+ + +

In Hadoop 3.1.4 version and above (as tested using our lakeFS Hadoop FS), it is possible to use pre-signed URLs as return values from the lakeFS S3 Gateway.

+ +

This has the immediate benefit of reducing the amount of traffic that has to go through the lakeFS server thus improving IO performance. +To read more about pre-signed URLs, see this guide.

+ +

Here’s an example Spark configuration to enable this support:

+ +
spark.hadoop.fs.s3a.impl shaded.databricks.org.apache.hadoop.fs.s3a.S3AFileSystem
+spark.hadoop.fs.s3a.bucket.example-repo.access.key AKIAIOSFODNN7EXAMPLE // The access key to your lakeFS server
+spark.hadoop.fs.s3a.bucket.example-repo.secret.key wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY // The secret key to your lakeFS server
+spark.hadoop.fs.s3a.path.style.access true
+spark.hadoop.fs.s3a.bucket.example-repo.signing-algorithm QueryStringSignerType
+spark.hadoop.fs.s3a.bucket.example-repo.user.agent.prefix s3RedirectionSupport
+
+ +

user.agent.prefix should contain the string s3RedirectionSupport but does not have to match the string exactly.

+ +

Once configured, requests will include the string s3RedirectionSupport in the User-Agent HTTP header sent with GetObject requests, resulting in lakeFS responding with a pre-signed URL. +Setting the signing-algorithm to QueryStringSignerType is required to stop S3A from signing a pre-signed URL, since the existence of more than one signature method will return an error from S3.

+ +

ℹ This feature requires a lakeFS server of version >1.18.0

+

+ + + lakeFS Hadoop FileSystem + + +

+ + +

If you’re using lakeFS on top of S3, this mode will enhance your application’s performance. +In this mode, Spark will read and write objects directly from S3, reducing the load on the lakeFS server. +It will still access the lakeFS server for metadata operations.

+ +

After configuring the lakeFS Hadoop FileSystem below, use URIs of the form lakefs://example-repo/ref/path/to/data to +interact with your data on lakeFS.

+

+ + + Installation + + +

+ + +
+ +
+ +

Add the package to your spark-submit command:

+ +
  --packages io.lakefs:hadoop-lakefs-assembly:0.2.4
+
+ +
+
+

In your cluster settings, under the Libraries tab, add the following Maven package:

+ +
io.lakefs:hadoop-lakefs-assembly:0.2.4
+
+ +

Once installed, it should look something like this:

+ +

Databricks - Adding the lakeFS client Jar

+ +
+
+ +

Add the package to your pyspark or spark-submit command:

+ +
  --packages io.lakefs:hadoop-lakefs-assembly:0.2.4
+
+ +

Add the configuration to access the S3 bucket used by lakeFS to your pyspark or spark-submit command or add this configuration at the Cloudera cluster level (see below):

+ +
  --conf spark.yarn.access.hadoopFileSystems=s3a://bucket-name
+
+ +

Add the configuration to access the S3 bucket used by lakeFS at the Cloudera cluster level:

+
    +
  1. Log in to the CDP (Cloudera Data Platform) web interface.
  2. +
  3. From the CDP home screen, click the Management Console icon.
  4. +
  5. In the Management Console, select Data Hub Clusters from the navigation pane.
  6. +
  7. Select the cluster you want to configure. Click on CM-UI link under Services: + Cloudera - Management Console
  8. +
  9. In Cloudera Manager web interface, click on Clusters from the navigation pane and click on spark_on_yarn option: + Cloudera - Cloudera Manager
  10. +
  11. Click on Configuration tab and search for spark.yarn.access.hadoopFileSystems in the search box: + Cloudera - spark_on_yarn
  12. +
  13. Add S3 bucket used by lakeFS s3a://bucket-name in the spark.yarn.access.hadoopFileSystems list: + Cloudera - hadoopFileSystems
  14. +
+
+
+

+ + + Configuration + + +

+ + +

Set the fs.lakefs.* Hadoop configurations to point to your lakeFS installation:

+
    +
  • fs.lakefs.impl: io.lakefs.LakeFSFileSystem
  • +
  • fs.lakefs.access.key: lakeFS access key
  • +
  • fs.lakefs.secret.key: lakeFS secret key
  • +
  • fs.lakefs.endpoint: lakeFS API URL (e.g. https://example-org.us-east-1.lakefscloud.io/api/v1)
  • +
+ +

Configure the lakeFS client to use a temporary token instead of static credentials:

+ +
    +
  • fs.lakefs.auth.provider: The default is basic_auth with fs.lakefs.access.key and fs.lakefs.secret.key for basic authentication. +Can be set to io.lakefs.auth.TemporaryAWSCredentialsLakeFSTokenProvider for using temporary AWS credentials, you can read more about it here.
  • +
+ +

When using io.lakefs.auth.TemporaryAWSCredentialsLakeFSTokenProvider as the auth provider the following configuration are relevant:

+ +
    +
  • fs.lakefs.token.aws.access.key: AWS assumed role access key
  • +
  • fs.lakefs.token.aws.secret.key: AWS assumed role secret key
  • +
  • fs.lakefs.token.aws.session.token: AWS assumed role temporary session token
  • +
  • fs.lakefs.token.aws.sts.endpoint: AWS STS regional endpoint for generated the presigned-url (i.e https://sts.us-west-2.amazonaws.com)
  • +
  • fs.lakefs.token.aws.sts.duration_seconds: Optional, the duration in seconds for the initial identity token (default is 60)
  • +
  • fs.lakefs.token.duration_seconds: Optional, the duration in seconds for the lakeFS token (default is set in the lakeFS configuration auth.login_duration)
  • +
  • fs.lakefs.token.sts.additional_headers: Optional, comma separated list of header:value to attach when generating presigned sts request. Default is X-Lakefs-Server-ID:fs.lakefs.endpoint.
  • +
+ +

Configure the S3A FileSystem to access your S3 storage, for example using the fs.s3a.* configurations (these are not your lakeFS credentials):

+ +
    +
  • fs.s3a.access.key: AWS S3 access key
  • +
  • fs.s3a.secret.key: AWS S3 secret key
  • +
+ +

Here are some configuration examples:

+
+ +
+
spark-shell --conf spark.hadoop.fs.s3a.access.key='AKIAIOSFODNN7EXAMPLE' \
+              --conf spark.hadoop.fs.s3a.secret.key='wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY' \
+              --conf spark.hadoop.fs.s3a.endpoint='https://s3.eu-central-1.amazonaws.com' \
+              --conf spark.hadoop.fs.lakefs.impl=io.lakefs.LakeFSFileSystem \
+              --conf spark.hadoop.fs.lakefs.access.key=AKIAlakefs12345EXAMPLE \
+              --conf spark.hadoop.fs.lakefs.secret.key=abc/lakefs/1234567bPxRfiCYEXAMPLEKEY \
+              --conf spark.hadoop.fs.lakefs.endpoint=https://example-org.us-east-1.lakefscloud.io/api/v1 \
+              --packages io.lakefs:hadoop-lakefs-assembly:0.2.4 \
+              io.example.ExampleClass
+
+
+
+ +
spark.sparkContext.hadoopConfiguration.set("fs.s3a.access.key", "AKIAIOSFODNN7EXAMPLE")
+spark.sparkContext.hadoopConfiguration.set("fs.s3a.secret.key", "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY")
+spark.sparkContext.hadoopConfiguration.set("fs.s3a.endpoint", "https://s3.eu-central-1.amazonaws.com")
+spark.sparkContext.hadoopConfiguration.set("fs.lakefs.impl", "io.lakefs.LakeFSFileSystem")
+spark.sparkContext.hadoopConfiguration.set("fs.lakefs.access.key", "AKIAlakefs12345EXAMPLE")
+spark.sparkContext.hadoopConfiguration.set("fs.lakefs.secret.key", "abc/lakefs/1234567bPxRfiCYEXAMPLEKEY")
+spark.sparkContext.hadoopConfiguration.set("fs.lakefs.endpoint", "https://example-org.us-east-1.lakefscloud.io/api/v1")
+
+
+
+ +
sc._jsc.hadoopConfiguration().set("fs.s3a.access.key", "AKIAIOSFODNN7EXAMPLE")
+sc._jsc.hadoopConfiguration().set("fs.s3a.secret.key", "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY")
+sc._jsc.hadoopConfiguration().set("fs.s3a.endpoint", "https://s3.eu-central-1.amazonaws.com")
+sc._jsc.hadoopConfiguration().set("fs.lakefs.impl", "io.lakefs.LakeFSFileSystem")
+sc._jsc.hadoopConfiguration().set("fs.lakefs.access.key", "AKIAlakefs12345EXAMPLE")
+sc._jsc.hadoopConfiguration().set("fs.lakefs.secret.key", "abc/lakefs/1234567bPxRfiCYEXAMPLEKEY")
+sc._jsc.hadoopConfiguration().set("fs.lakefs.endpoint", "https://example-org.us-east-1.lakefscloud.io/api/v1")
+
+
+
+ +

Make sure that you load the lakeFS FileSystem into Spark by running it with --packages or --jars, +and then add these into a configuration file, e.g., $SPARK_HOME/conf/hdfs-site.xml:

+ +
<?xml version="1.0"?>
+<configuration>
+    <property>
+        <name>fs.s3a.access.key</name>
+        <value>AKIAIOSFODNN7EXAMPLE</value>
+    </property>
+    <property>
+            <name>fs.s3a.secret.key</name>
+            <value>wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY</value>
+    </property>
+    <property>
+        <name>fs.s3a.endpoint</name>
+        <value>https://s3.eu-central-1.amazonaws.com</value>
+    </property>
+    <property>
+        <name>fs.lakefs.impl</name>
+        <value>io.lakefs.LakeFSFileSystem</value>
+    </property>
+    <property>
+        <name>fs.lakefs.access.key</name>
+        <value>AKIAlakefs12345EXAMPLE</value>
+    </property>
+    <property>
+        <name>fs.lakefs.secret.key</name>
+        <value>abc/lakefs/1234567bPxRfiCYEXAMPLEKEY</value>
+    </property>
+    <property>
+        <name>fs.lakefs.endpoint</name>
+        <value>https://example-org.us-east-1.lakefscloud.io/api/v1</value>
+    </property>
+</configuration>
+
+
+
+ +

Add the following the cluster’s configuration under Configuration ➡️ Advanced options:

+ +
spark.hadoop.fs.lakefs.impl io.lakefs.LakeFSFileSystem
+spark.hadoop.fs.lakefs.access.key AKIAlakefs12345EXAMPLE
+spark.hadoop.fs.lakefs.secret.key abc/lakefs/1234567bPxRfiCYEXAMPLEKEY
+spark.hadoop.fs.s3a.access.key AKIAIOSFODNN7EXAMPLE
+spark.hadoop.fs.s3a.secret.key wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
+spark.hadoop.fs.s3a.impl shaded.databricks.org.apache.hadoop.fs.s3a.S3AFileSystem
+spark.hadoop.fs.lakefs.endpoint https://example-org.us-east-1.lakefscloud.io/api/v1
+
+ +

Alternatively, follow this step by step Databricks integration tutorial, including lakeFS Hadoop File System, Python client and lakeFS SPARK client.

+
+
+ +

⚠️ If your bucket is on a region other than us-east-1, you may also need to configure fs.s3a.endpoint with the correct region. +Amazon provides S3 endpoints you can use.

+

+ + + Usage with TemporaryAWSCredentialsLakeFSTokenProvider + + +

+ + +

An initial setup is required - you must have AWS Auth configured with lakeFS. +The TemporaryAWSCredentialsLakeFSTokenProvider depends on the caller to provide AWS credentials (e.g Assumed Role Key,Secret and Token) as input to the lakeFS client.

+ +

⚠️ Configure sts.endpoint with a valid sts regional service endpoint and it must be be equal to the region that is used for authentication first place. The only exception is us-east-1 which is the default region for STS.

+ +

⚠️ Using the current provider the lakeFS token will not renew upon expiry and the user will need to re-authenticate.

+ +

PySpark example using TemporaryAWSCredentialsLakeFSTokenProvider with boto3 and AWS session credentials:

+ +
import boto3 
+
+session = boto3.session.Session()
+
+# AWS credentials used s3a to access lakeFS bucket
+sc._jsc.hadoopConfiguration().set("fs.s3a.access.key", "AKIAIOSFODNN7EXAMPLE")
+sc._jsc.hadoopConfiguration().set("fs.s3a.secret.key", "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY")
+sc._jsc.hadoopConfiguration().set("fs.s3a.endpoint", "https://s3.us-west-2.amazonaws.com")
+sc._jsc.hadoopConfiguration().set("fs.lakefs.impl", "io.lakefs.LakeFSFileSystem")
+sc._jsc.hadoopConfiguration().set("fs.lakefs.endpoint", "https://example-org.us-west-2.lakefscloud.io/api/v1")
+sc._jsc.hadoopConfiguration().set("spark.hadoop.fs.s3a.path.style.access", "true")
+sc._jsc.hadoopConfiguration().set("fs.lakefs.auth.provider", "io.lakefs.auth.TemporaryAWSCredentialsLakeFSTokenProvider")
+# AWS tempporary session credentials to use with lakeFS
+sc._jsc.hadoopConfiguration().set("fs.lakefs.token.aws.access.key", session.get_credentials().access_key)
+sc._jsc.hadoopConfiguration().set("fs.lakefs.token.aws.secret.key", session.get_credentials().secret_key)
+sc._jsc.hadoopConfiguration().set("fs.lakefs.token.aws.session.token", session.get_credentials().token)
+sc._jsc.hadoopConfiguration().set("fs.lakefs.token.aws.sts.endpoint", "https://sts.us-west-2.amazonaws.com")
+
+

+ + + Usage + + +

+ + +

Hadoop FileSystem paths use the lakefs:// protocol, with paths taking the form lakefs://<repository>/<ref>/path/to/object. +<ref> can be a branch, tag, or commit ID in lakeFS. +Here’s an example for reading a Parquet file from lakeFS to a Spark DataFrame:

+ +
val repo = "example-repo"
+val branch = "main"
+val df = spark.read.parquet(s"lakefs://${repo}/${branch}/example-path/example-file.parquet")
+
+ +

Here’s how to write some results back to a lakeFS path:

+ +
df.write.partitionBy("example-column").parquet(s"lakefs://${repo}/${branch}/output-path/")
+
+ +

The data is now created in lakeFS as new changes in your branch. You can now commit these changes or revert them.

+

+ + + Hadoop FileSystem in Presigned mode + + +

+ + +

Available starting version 0.1.13 of the FileSystem

+ +

In this mode, the lakeFS server is responsible for authenticating with your storage. +The client will still perform data operations directly on the storage. +To do so, it will use pre-signed storage URLs provided by the lakeFS server.

+ +

When using this mode, you don’t need to configure the client with access to your storage:

+ +
+ +
+
spark-shell --conf spark.hadoop.fs.lakefs.access.mode=presigned \
+              --conf spark.hadoop.fs.lakefs.impl=io.lakefs.LakeFSFileSystem \
+              --conf spark.hadoop.fs.lakefs.access.key=AKIAlakefs12345EXAMPLE \
+              --conf spark.hadoop.fs.lakefs.secret.key=abc/lakefs/1234567bPxRfiCYEXAMPLEKEY \
+              --conf spark.hadoop.fs.lakefs.endpoint=https://example-org.us-east-1.lakefscloud.io/api/v1 \
+              --packages io.lakefs:hadoop-lakefs-assembly:0.2.4
+
+
+
+ +
spark.sparkContext.hadoopConfiguration.set("fs.lakefs.access.mode", "presigned")
+spark.sparkContext.hadoopConfiguration.set("fs.lakefs.impl", "io.lakefs.LakeFSFileSystem")
+spark.sparkContext.hadoopConfiguration.set("fs.lakefs.access.key", "AKIAlakefs12345EXAMPLE")
+spark.sparkContext.hadoopConfiguration.set("fs.lakefs.secret.key", "abc/lakefs/1234567bPxRfiCYEXAMPLEKEY")
+spark.sparkContext.hadoopConfiguration.set("fs.lakefs.endpoint", "https://example-org.us-east-1.lakefscloud.io/api/v1")
+
+
+
+ +
sc._jsc.hadoopConfiguration().set("fs.lakefs.access.mode", "presigned")
+sc._jsc.hadoopConfiguration().set("fs.lakefs.impl", "io.lakefs.LakeFSFileSystem")
+sc._jsc.hadoopConfiguration().set("fs.lakefs.access.key", "AKIAlakefs12345EXAMPLE")
+sc._jsc.hadoopConfiguration().set("fs.lakefs.secret.key", "abc/lakefs/1234567bPxRfiCYEXAMPLEKEY")
+sc._jsc.hadoopConfiguration().set("fs.lakefs.endpoint", "https://example-org.us-east-1.lakefscloud.io/api/v1")
+
+
+
+ +

Make sure that you load the lakeFS FileSystem into Spark by running it with --packages or --jars, +and then add these into a configuration file, e.g., $SPARK_HOME/conf/hdfs-site.xml:

+ +
<?xml version="1.0"?>
+<configuration>
+    <property>
+        <name>fs.lakefs.access.mode</name>
+        <value>presigned</value>
+    </property>
+    <property>
+        <name>fs.lakefs.impl</name>
+        <value>io.lakefs.LakeFSFileSystem</value>
+    </property>
+    <property>
+        <name>fs.lakefs.access.key</name>
+        <value>AKIAlakefs12345EXAMPLE</value>
+    </property>
+    <property>
+        <name>fs.lakefs.secret.key</name>
+        <value>abc/lakefs/1234567bPxRfiCYEXAMPLEKEY</value>
+    </property>
+    <property>
+        <name>fs.lakefs.endpoint</name>
+        <value>https://example-org.us-east-1.lakefscloud.io/api/v1</value>
+    </property>
+</configuration>
+
+
+
+ +

Add the following the cluster’s configuration under Configuration ➡️ Advanced options:

+ +
spark.hadoop.fs.lakefs.access.mode presigned
+spark.hadoop.fs.lakefs.impl io.lakefs.LakeFSFileSystem
+spark.hadoop.fs.lakefs.access.key AKIAlakefs12345EXAMPLE
+spark.hadoop.fs.lakefs.secret.key abc/lakefs/1234567bPxRfiCYEXAMPLEKEY
+spark.hadoop.fs.lakefs.endpoint https://example-org.us-east-1.lakefscloud.io/api/v1
+
+
+
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/integrations/unity-catalog.html b/v1.46/integrations/unity-catalog.html new file mode 100644 index 000000000..9dc3cfe18 --- /dev/null +++ b/v1.46/integrations/unity-catalog.html @@ -0,0 +1,999 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Unity Catalog | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Using lakeFS with the Unity Catalog + + +

+ + + +

+ + + Overview + + +

+ + +

Databricks Unity Catalog serves as a centralized data governance platform for your data lakes. +Through the Unity Catalog, you can search for and locate data assets across workspaces via a unified catalog. +Leveraging the external tables feature within Unity Catalog, you can register a Delta Lake table exported from lakeFS and +access it through the unified catalog. +The subsequent step-by-step guide will lead you through the process of configuring a Lua hook +that exports Delta Lake tables from lakeFS, and subsequently registers them in Unity Catalog.

+ +
+

Currently, Unity Catalog export feature exclusively supports AWS S3 and Azure ADLS Gen2 as the underlying storage solution. It’s planned to support other cloud providers soon.

+
+ +

Reference Guide: lakeFS + Unity Catalog Integration: Step-by-Step Tutorial

+

+ + + Prerequisites + + +

+ + +

Before starting, ensure you have the following:

+ +
    +
  1. Access to Unity Catalog
  2. +
  3. An active lakeFS installation with S3 as the backing storage, and a repository in this installation.
  4. +
  5. A Databricks SQL warehouse.
  6. +
  7. AWS Credentials with S3 access.
  8. +
  9. lakeFS credentials with access to your Delta Tables.
  10. +
+ +
+

Supported from lakeFS v1.4.0

+
+

+ + + Databricks authentication + + +

+ + +

Given that the hook will ultimately register a table in Unity Catalog, authentication with Databricks is imperative. +Make sure that:

+ +
    +
  1. You have a Databricks Service Principal.
  2. +
  3. The Service principal has token usage permissions, +and an associated token +configured.
  4. +
  5. The service principal has the Service principal: Manager privilege over itself (Workspace: Admin console -> Service principals -> <service principal> -> Permissions -> Grant access (<service principal>: +Service principal: Manager), with Workspace access and Databricks SQL access checked (Admin console -> Service principals -> <service principal> -> Configurations).
  6. +
  7. Your SQL warehouse allows the service principal to use it (SQL Warehouses -> <SQL warehouse> -> Permissions -> <service principal>: Can use).
  8. +
  9. The catalog grants the USE CATALOG, USE SCHEMA, CREATE SCHEMA permissions to the service principal(Catalog -> <catalog name> -> Permissions -> Grant -> <service principal>: USE CATALOG, USE SCHEMA, CREATE SCHEMA).
  10. +
  11. You have an External Location configured, and the service principal has the CREATE EXTERNAL TABLE permission over it (Catalog -> External Data -> External Locations -> Create location).
  12. +
+

+ + + Guide + + +

+ +

+ + + Table descriptor definition + + +

+ + +

To guide the Unity Catalog exporter in configuring the table in the catalog, define its properties in the Delta Lake table descriptor. +The table descriptor should include (at minimum) the following fields:

+
    +
  1. name: The table name.
  2. +
  3. type: Should be delta.
  4. +
  5. catalog: The name of the catalog in which the table will be created.
  6. +
  7. path: The path in lakeFS (starting from the root of the branch) in which the Delta Lake table’s data is found.
  8. +
+ +

Let’s define the table descriptor and upload it to lakeFS:

+ +

Save the following as famous-people-td.yaml:

+ +
---
+name: famous_people
+type: delta
+catalog: my-catalog-name
+path: tables/famous-people
+
+ +
+

It’s recommended to create a Unity catalog with the same name as your repository

+
+ +

Upload the table descriptor to _lakefs_tables/famous-people-td.yaml and commit:

+ +
lakectl fs upload lakefs://repo/main/_lakefs_tables/famous-people-td.yaml -s ./famous-people-td.yaml && \
+lakectl commit lakefs://repo/main -m "add famous people table descriptor"
+
+

+ + + Write some data + + +

+ + +

Insert data into the table path, using your preferred method (e.g. Spark), and commit upon completion.

+ +

We shall use Spark and lakeFS’s S3 gateway to write some data as a Delta table:

+
pyspark --packages "io.delta:delta-spark_2.12:3.0.0,org.apache.hadoop:hadoop-aws:3.3.4,com.amazonaws:aws-java-sdk-bundle:1.12.262" \
+  --conf spark.sql.extensions=io.delta.sql.DeltaSparkSessionExtension \
+  --conf spark.sql.catalog.spark_catalog=org.apache.spark.sql.delta.catalog.DeltaCatalog \
+  --conf spark.hadoop.fs.s3a.aws.credentials.provider='org.apache.hadoop.fs.s3a.SimpleAWSCredentialsProvider' \
+  --conf spark.hadoop.fs.s3a.endpoint='<LAKEFS_SERVER_URL>' \
+  --conf spark.hadoop.fs.s3a.access.key='<LAKEFS_ACCESS_KEY>' \
+  --conf spark.hadoop.fs.s3a.secret.key='<LAKEFS_SECRET_ACCESS_KEY>' \
+  --conf spark.hadoop.fs.s3a.path.style.access=true
+
+ +
data = [
+   ('James','Bond','England','intelligence'),
+   ('Robbie','Williams','England','music'),
+   ('Hulk','Hogan','USA','entertainment'),
+   ('Mister','T','USA','entertainment'),
+   ('Rafael','Nadal','Spain','professional athlete'),
+   ('Paul','Haver','Belgium','music'),
+]
+columns = ["firstname","lastname","country","category"]
+df = spark.createDataFrame(data=data, schema = columns)
+df.write.format("delta").mode("overwrite").partitionBy("category", "country").save("s3a://repo/main/tables/famous-people")
+
+

+ + + The Unity Catalog exporter script + + +

+ + +
+

For code references check delta_exporter and +unity_exporter docs.

+
+ +

Create unity_exporter.lua:

+ +
local aws = require("aws")
+local formats = require("formats")
+local databricks = require("databricks")
+local delta_export = require("lakefs/catalogexport/delta_exporter")
+local unity_export = require("lakefs/catalogexport/unity_exporter")
+
+local sc = aws.s3_client(args.aws.access_key_id, args.aws.secret_access_key, args.aws.region)
+
+-- Export Delta Lake tables export:
+local delta_client = formats.delta_client(args.lakefs.access_key_id, args.lakefs.secret_access_key, args.aws.region)
+local delta_table_details = delta_export.export_delta_log(action, args.table_defs, sc.put_object, delta_client, "_lakefs_tables")
+
+-- Register the exported table in Unity Catalog:
+local databricks_client = databricks.client(args.databricks_host, args.databricks_token)
+local registration_statuses = unity_export.register_tables(action, "_lakefs_tables", delta_table_details, databricks_client, args.warehouse_id)
+
+for t, status in pairs(registration_statuses) do
+    print("Unity catalog registration for table \"" .. t .. "\" completed with commit schema status : " .. status .. "\n")
+end
+
+ +

Upload the lua script to the main branch under scripts/unity_exporter.lua and commit:

+ +
lakectl fs upload lakefs://repo/main/scripts/unity_exporter.lua -s ./unity_exporter.lua && \
+lakectl commit lakefs://repo/main -m "upload unity exporter script"
+
+

+ + + Action configuration + + +

+ + +

Define an action configuration that will run the above script after a commit is completed (post-commit) over the main branch.

+ +

Create unity_exports_action.yaml:

+ +
---
+name: unity_exports
+on:
+  post-commit:
+     branches: ["main"]
+hooks:
+  - id: unity_export
+    type: lua
+    properties:
+      script_path: scripts/unity_exporter.lua
+      args:
+        aws:
+          access_key_id: <AWS_ACCESS_KEY_ID>
+          secret_access_key: <AWS_SECRET_ACCESS_KEY>
+          region: <AWS_REGION>
+        lakefs: # provide credentials of a user that has access to the script and Delta Table
+          access_key_id: <LAKEFS_ACCESS_KEY_ID> 
+          secret_access_key: <LAKEFS_SECRET_ACCESS_KEY>
+        table_defs: # an array of table descriptors used to be defined in Unity Catalog
+          - famous-people-td
+        databricks_host: <DATABRICKS_HOST_URL>
+        databricks_token: <DATABRICKS_SERVICE_PRINCIPAL_TOKEN>
+        warehouse_id: <WAREHOUSE_ID>
+
+ +

Upload the action configurations to _lakefs_actions/unity_exports_action.yaml and commit:

+ +
+

Once the commit will finish its run, the action will start running since we’ve configured it to run on post-commit +events on the main branch.

+
+ +
lakectl fs upload lakefs://repo/main/_lakefs_actions/unity_exports_action.yaml -s ./unity_exports_action.yaml && \
+lakectl commit lakefs://repo/main -m "upload action and run it"
+
+ +

The action has run and exported the famous_people Delta Lake table to the repo’s storage namespace, and has register +the table as an external table in Unity Catalog under the catalog my-catalog-name, schema main (as the branch’s name) and +table name famous_people: my-catalog-name.main.famous_people.

+ +

Hooks log result in lakeFS UI

+

+ + + Databricks Integration + + +

+ + +

After registering the table in Unity, you can leverage your preferred method to query the data +from the exported table under my-catalog-name.main.famous_people, and view it in the Databricks’s Catalog Explorer, or +retrieve it using the Databricks CLI with the following command:

+
databricks tables get my-catalog-name.main.famous_people
+
+ +

Unity Catalog Explorer view

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/integrations/unity_catalog.html b/v1.46/integrations/unity_catalog.html new file mode 100644 index 000000000..eecb9f880 --- /dev/null +++ b/v1.46/integrations/unity_catalog.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/integrations/vertex_ai.html b/v1.46/integrations/vertex_ai.html new file mode 100644 index 000000000..5e0531dc4 --- /dev/null +++ b/v1.46/integrations/vertex_ai.html @@ -0,0 +1,900 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Vertex AI | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Using Vertex AI with lakeFS + + +

+ + +

Vertex AI lets Google Cloud users Build, deploy, and scale machine learning (ML) models faster, with fully managed ML tools for any use case.

+ +

lakeFS Works with Vertex AI by allowing users to create repositories on GCS Buckets, then use either the Dataset API to create managed Datasets on top of lakeFS version, or by automatically exporting lakeFS object versions in a way readable by Cloud Storage Mounts.

+ + +

+ + + Using lakeFS with Vertex Managed Datasets + + +

+ + +

Vertex’s ImageDataset and VideoDataset allow creating a dataset by importing a CSV file from gcs (see gcs_source).

+ +

This CSV file contains GCS addresses of image files and their corresponding labels.

+ +

Since the lakeFS API supports exporting the underlying GCS address of versioned objects, we can generate such a CSV file when creating the dataset:

+ +
#!/usr/bin/env python
+
+# Requirements:
+# google-cloud-aiplatform>=1.31.0
+# lakefs-client>=0.107.0
+
+import csv
+from pathlib import PosixPath
+from io import StringIO
+
+import lakefs_client
+from lakefs_client.client import LakeFSClient
+from google.cloud import storage
+from google.cloud import aiplatform
+
+# lakeFS connection details
+configuration = lakefs_client.Configuration()
+configuration.username = 'AKIAIOSFODNN7EXAMPLE'
+configuration.password = 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY'
+configuration.host = 'https://lakefs.example.com/'
+client = LakeFSClient(configuration)
+
+# Dataset configuration
+lakefs_repo = 'my-repository'
+lakefs_ref = 'main'
+img_dataset = 'datasets/my-images/'
+
+# Vertex configuration
+import_bucket = 'underlying-gcs-bucket'
+
+# produce import file for Vertex's SDK
+buf = StringIO()
+csv_writer = csv.writer(buf)
+has_more = True
+next_offset = ""
+while has_more:
+    files = client.objects_api.list_objects(
+        lakefs_repo, lakefs_ref, prefix=img_dataset, after=next_offset)
+    for r in files.get('results'):
+        p = PosixPath(r.path)
+        csv_writer.writerow((r.physical_address, p.parent.name))
+    has_more = files.get('pagination').get('has_more')
+    next_offset = files.get('pagination').get('next_offset')
+
+# spit out CSV
+print('generated path and labels CSV')
+buf.seek(0)
+
+# Write it to storage
+storage_client = storage.Client()
+bucket = storage_client.bucket(import_bucket)
+blob = bucket.blob(f'vertex/imports/{lakefs_repo}/{lakefs_ref}/labels.csv')
+with blob.open('w') as out:
+    out.write(buf.read())
+
+print(f'wrote csv to gs: gs://{import_bucket}/vertex/imports/{lakefs_repo}/{lakefs_ref}/labels.csv')
+
+# import in vertex, as dataset
+print('Importing dataset...')
+ds = aiplatform.ImageDataset.create(
+    display_name=f'{lakefs_repo}_{lakefs_ref}_imgs',
+    gcs_source=f'gs://{import_bucket}/vertex/imports/{lakefs_repo}/{lakefs_ref}/labels.csv',
+    import_schema_uri=aiplatform.schema.dataset.ioformat.image.single_label_classification,
+    sync=True
+)
+ds.wait()
+print(f'Done! {ds.display_name} ({ds.resource_name})')
+
+

+ + + Using lakeFS with Cloud Storage Fuse + + +

+ + +

Vertex allows using Google Cloud Storage mounted as a Fuse Filesystem as custom input for training jobs.

+ +

Instead of having to copy lakeFS files for each version we want to consume, we can create symlinks by using gcsfuse’s native symlink inodes.

+ +

This process can be fully automated by using the example gcsfuse_symlink_exporter.lua Lua hook.

+ +

Here’s what we need to do:

+ +
    +
  1. Upload the example .lua file into our lakeFS repository. For this example, we’ll put it under scripts/gcsfuse_symlink_exporter.lua.
  2. +
  3. Create a new hook definition file and upload to _lakefs_actions/export_images.yaml:
  4. +
+ +
---
+# Example hook declaration: (_lakefs_actions/export_images.yaml):
+name: export_images
+
+on:
+  post-commit:
+    branches: ["main"]
+  post-merge:
+    branches: ["main"]
+  post-create-tag:
+
+hooks:
+- id: gcsfuse_export_images
+  type: lua
+  properties:
+    script_path: scripts/export_gcs_fuse.lua  # Path to the script we uploaded in the previous step
+    args:
+      prefix: "datasets/images/"  # Path we want to export every commit
+      destination: "gs://my-bucket/exports/my-repo/"  # Where should we create the symlinks?
+      mount:
+        from: "gs://my-bucket/repos/my-repo/"  # Symlinks are to a unix-mounted file
+        to: "/gcs/my-bucket/repos/my-repo/"    #  This will ensure they point to a location that exists.
+      
+      # Should be the contents of a valid credentials.json file
+      # See: https://developers.google.com/workspace/guides/create-credentials
+      # Will be used to write the symlink files
+      gcs_credentials_json_string: |
+        {
+          "client_id": "...",
+          "client_secret": "...",
+          "refresh_token": "...",
+          "type": "..."
+        }
+
+ +

Done! On the next tag creation or update to the main branch, we’ll automatically export the lakeFS version of datasets/images/ to a mountable location.

+ +

To consume the symlink-ed files, we can read them normally from the mount:

+ +
with open('/gcs/my-bucket/exports/my-repo/branches/main/datasets/images/001.jpg') as f:
+    image_data = f.read()
+
+
+ +

Previously exported commits are also readable, if we exported them in the past:

+ +
commit_id = 'abcdef123deadbeef567'
+with open(f'/gcs/my-bucket/exports/my-repo/commits/{commit_id}/datasets/images/001.jpg') as f:
+    image_data = f.read()
+
+
+

+ + + Considerations when using lakeFS with Cloud Storage Fuse + + +

+ + +

For lakeFS paths to be readable by gcsfuse, the mount option --implicit-dirs must be specified.

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/licensing.html b/v1.46/licensing.html new file mode 100644 index 000000000..41dce22e2 --- /dev/null +++ b/v1.46/licensing.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/posts/deprecate-py-legacy.html b/v1.46/posts/deprecate-py-legacy.html new file mode 100644 index 000000000..c64c11b8c --- /dev/null +++ b/v1.46/posts/deprecate-py-legacy.html @@ -0,0 +1,825 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +⚠️ Deprecating lakefs-client, the legacy Python 🐍 Client SDKs | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + ⚠️ Deprecating lakefs-client, the legacy Python 🐍 Client SDKs + + +

+ + +

lakefs-client is now deprecated, and we will shortly publish its last +release to PyPI.

+

+ + + What is changing? + + +

+ + +

Ever since we released lakeFS 1.0, we have supported these two SDKs to program for lakeFS with Python:

+ + +

These clients will continue.

+ +

Before lakeFS 1.0 we would publish only:

+ + + +

We have continued to publish lakefs-client since the 1.0 release, in order +to provide continued support for existing users of this legacy Python SDK +client. But there are better alternatives, and its continued presence only +confuses our users.

+ +

Now it is time to deprecate this client, and we will stop publishing it at +or after the version 1.40 release of lakeFS.

+

+ + + FAQ + + +

+ +

+ + + What will happen to existing users of lakefs-client? + + +

+ + +

All existing uses will continue to work. Obviously we will not be pulling +these published versions because of this change. We will stop publishing +new versions of these clients.

+

+ + + how do I migrate from using lakefs-client to lakefs-sdk? + + +

+ + +

Migration is covered by Migrating to 1.0. In most +cases the changes are quite simple.

+

+ + + Will new versions of lakefs-client be published? + + +

+ + +

No.

+ +

Version 1.40 will be the last release of lakeFS to include a new version of +the legacy client. In order to use any new features of the lakeFS API, +you will need to upgrade your programs to use lakefs-sdk.

+

+ + + Will programs using old versions of lakefs-client continue to work with new versions of lakeFS? + + +

+ + +

Yes.

+ +

A program that uses any 1.x version of lakefs-client still uses 1.x +versions of lakeFS APIs. Its usage of those APIs is still covered by the +lakeFS interface guarantees, so it will continue to work with future 1.x +releases.

+

+ + + What about the legacy Java SDK generated client? + + +

+ + +

That is also going away. However we see much less usage of it.

+

+ + + Where can I ask another question not covered here? + + +

+ + +

As always, our Slack htttps://lakefs.io/slack is the best place to interact +with the lakeFS community! Try asking on our #dev channel

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/posts/index.html b/v1.46/posts/index.html new file mode 100644 index 000000000..fb9469baa --- /dev/null +++ b/v1.46/posts/index.html @@ -0,0 +1,1778 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +lakeFS Documentation | Open Source Data Version Control for Data Lakes and Data Lakehouses + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + +
+ + + + + + +
+
+

Table of contents

+ +
+ + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/posts/security_update.html b/v1.46/posts/security_update.html new file mode 100644 index 000000000..32c1dba2d --- /dev/null +++ b/v1.46/posts/security_update.html @@ -0,0 +1,762 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Security update for the lakeFS project | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Security update for the lakeFS project + + +

+ + +

Trust is our core value, and security topics are never taken lightly.

+ +

We heard you, and after many conversations, we decided to move from decoupled security authentication and access control features to enable you to plug your own authentication and security mechanism.

+ +

We understand that focusing on building lakeFS to be the best data version control tool is the open-source project north star. +Consequently, we decided to change the architecture to a pluggable one which enables you to choose your preference without being dependent on the lakeFS solution.

+

+ + + What’s changing? + + +

+ + +

With lakeFS v0.91.0 Role-based access control and SSO (OIDC, LDAP) authentication are deprecated due to this architecture change. +Within the lakeFS UI, you will see a deprecation notice on the administration screens when trying to update and create policies.

+ +

In coming versions, we plan on making authorization and authentication pluggable, while bundling a simpler reference implementation into the core of lakeFS. +This implementation will include basic identity management with built-in users and groups, as well as a simplified authorization mechanism based on ACLs.

+ +

If you currently rely on any of the deprecated features, please contact us - we’ll do our best to support you in the transition.

+

+ + + Why are we making this architectural change? + + +

+ + +

This change is necessary as it lets you decide on access control and authentication that best fits your security needs. It matters since one can ensure security only if one controls the full environment.

+ +

lakeFS users will be able to develop and use existing identity providers and wrap lakeFS with their own authorization logic (if they so desire) - to meet their specific security needs.

+

+ + + How can I ensure security? + + +

+ + +

Now that the architecture is pluggable, you can use the solution of your choice.

+ +

Depending on your needs, you might want to take a look at lakeFS Cloud, which enables us to provide a holistic, secure solution that is SOC2 compliant and provides security guarantees.

+ +

lakeFS Cloud will continue to support and maintain more advanced authentication methods such as SAML and OIDC, and granular access control in the form of role-based access control policies. Additionally, lakeFS Cloud also provides a full, queryable auditing log to help administrators gain full visibility on data access within their lakeFS environment.


+ +

Trust is our core value, and security topics are never taken lightly.

+ +

Even though this decision was difficult, it was necessary to continue building a solid foundation for our data version control.

+ +

We remain committed to making lakeFS the best, most scalable, open source version control system for data practitioners, while not compromising on its security.

+ +

Oz & Einat

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/project/code-migrate-1.0-sdk.html b/v1.46/project/code-migrate-1.0-sdk.html new file mode 100644 index 000000000..6258e44d7 --- /dev/null +++ b/v1.46/project/code-migrate-1.0-sdk.html @@ -0,0 +1,933 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Migrating to 1.0 | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + lakeFS 1.0 - Code Migration Guide + + +

+ + +

Version 1.0.0 promises API and SDK stability. By “API” we mean any access to a lakeFS REST endpoint. By “SDK” we mean auto-generated lakeFS clients: lakefs-sdk for Python and io.lakefs:sdk for Java. This guide details the steps to allow you to upgrade your code to enjoy this stability.

+ +

Avoid using APIs and SDKs labeled as experimental, internal, or deprecated. If you must use them, be prepared to adjust your application to align with any lakeFS server updates.

+ +

Your software developed without such APIs should be compatible with all minor version updates of the lakeFS server from the version you originally developed with.

+ +

If you rely on a publicly released API and SDK, it will adhere to semantic versioning. Transitioning your application to a minor SDK version update should be smooth.

+ +

The operation names and tags from the api/swagger.yml specification might differ based on the SDK or coding language in use.

+

+ + + Deleted API Operations + + +

+ + +

The following API operations have been removed:

+ +
    +
  • updatePassword
  • +
  • forgotPassword
  • +
  • logBranchCommits
  • +
  • expandTemplate
  • +
  • createMetaRange
  • +
  • ingestRange
  • +
  • updateBranchToken
  • +
+

+ + + Internal API Operations + + +

+ + +

The following operations are for internal use only and should not be used in your application code. Some deprecated operations have alternatives provided.

+ +
    +
  • setupCommPrefs
  • +
  • getSetupState
  • +
  • setup
  • +
  • getAuthCapabilities
  • +
  • uploadObjectPreflight
  • +
  • setGarbageCollectionRulesPreflight
  • +
  • createBranchProtectionRulePreflight
  • +
  • postStatsEvents
  • +
  • dumpRefs (will be replaced with a long-running API later)
  • +
  • restoreRefs (will be replaced with a long-running API later)
  • +
  • createSymlinkFile (Deprecated)
  • +
  • getStorageConfig (Deprecated. Alternative: getConfig)
  • +
  • getLakeFSVersion (Deprecated. Alternative: getConfig)
  • +
  • stageObject (Deprecated. Alternatives: get/link physical address or import)
  • +
  • internalDeleteBranchProtectionRule (Deprecated. Temporary backward support. Alternative: setBranchProtectionRules)
  • +
  • internalCreateBranchProtectionRule (Deprecated. Temporary backward support. Alternative: setBranchProtectionRules)
  • +
  • internalGetBranchProtectionRule (Deprecated. Temporary backward support. Alternative: getBranchProtectionRules)
  • +
  • internalDeleteGarbageCollectionRules (Deprecated. Temporary backward support. Alternative: deleteGCRules)
  • +
  • internalSetGarbageCollectionRules (Deprecated. Temporary backward support. Alternative: setGCRules)
  • +
  • internalGetGarbageCollectionRules (Deprecated. Temporary backward support. Alternative: getGCRules)
  • +
  • prepareGarbageCollectionCommits
  • +
  • getGarbageCollectionConfig
  • +
+

+ + + New/Updated API Operations + + +

+ + +

Here are the newly added or updated operations:

+ +
    +
  • getConfig (Retrieve lakeFS version and storage info)
  • +
  • setBranchProtectionRules (Route updated)
  • +
  • getBranchProtectionRules (Route updated)
  • +
  • getGCRules (New route introduced)
  • +
  • setGCRules (New route introduced)
  • +
  • deleteGCRules (New route introduced)
  • +
  • importStatus (Response structure updated: ‘ImportStatusResp’ to ‘ImportStatus’)
  • +
  • uploadObject (Parameters ‘if-none-match’ and ‘storageClass’ are now deprecated)
  • +
  • prepareGarbageCollectionCommits (Request body removed)
  • +
  • getOtfDiffs & otfDiff (Removed from ‘otf diff’ tag; retained in ‘experimental’ tag)
  • +
+

+ + + Migrating SDK Code for Java and JVM-based Languages + + +

+ +

+ + + Introduction + + +

+ + +

If you are using the lakeFS client for Java or for any other JVM-based language, be aware that the current package is not stable with respect to minor version upgrades. Transitioning from io.lakefs:lakefs-client to io.lakefs:sdk will necessitate rewriting your API calls to fit the new design paradigm.

+

+ + + Problem with the Old Style + + +

+ + +

Previously, API calls required developers to pass all parameters, including optional ones, in a single function call. As demonstrated in this older style:

+ +
ObjectStats objectStat = objectsApi.statObject(
+    objectLoc.getRepository(), objectLoc.getRef(), objectLoc.getPath(),
+    false, false);
+
+ +

This method posed a couple of challenges:

+ +
    +
  1. Inflexibility with Upgrades: If an optional parameter were introduced in newer versions, existing code would fail to compile.
  2. +
  3. Maintenance Difficulty: Long argument lists can be challenging to manage and understand, leading to potential mistakes and readability issues.
  4. +
+ +

Adopting the Fluent Style

+ +

In the revised SDK, API calls adopt a fluent style, making the code more modular and adaptive to changes.

+ +

Here’s an example of the new style:

+ +
ObjectStats objectStat = objectsApi
+    .statObject(
+        objectLoc.getRepository(), objectLoc.getRef(), objectLoc.getPath()
+    )
+    .userMetadata(true)
+    .execute();
+
+

+ + + Here’s a breakdown of the changes: + + +

+ + +
    +
  1. Initial Function Call: Begin by invoking the desired function with all required parameters.
  2. +
  3. Modifying Optional Parameters: Chain any modifications to optional parameters after the initial function. For instance, userMetadata is changed in the example above.
  4. +
  5. Unused Optional Parameters: You can safely ignore these. For instance, this code ignores the presign optional parameter because it never uses it.
  6. +
  7. Execution: Complete the call with the .execute() method.
  8. +
+ +

This new design offers several advantages:

+ +
    +
  • Compatibility with Upgrades: When a new optional parameter is introduced, existing code will use its default value, preserving compatibility with minor server version upgrades.
  • +
  • Improved Readability: The fluent style makes it evident which parameters are required and which ones are optional, enhancing code clarity.
  • +
+ +

When migrating your code, ensure you refactor all your API calls to adopt the new fluent style. This ensures that your application remains maintainable and is safeguarded against potential issues arising from minor SDK version upgrades.

+ +

For an illustrative example of the transition between styles, you can view the changes made in this pull request: lakeFS pull request #6529.

+

+ + + Migrating SDK Code for Python + + +

+ +

+ + + Introduction + + +

+ + +

If you are using the lakeFS client for Python, be aware that the current package is not stable with respect to minor version upgrades. Transitioning from lakefs-client to lakefs-sdk will necessitate rewriting your API calls.

+

+ + + Here’s a breakdown of the changes: + + +

+ + +
    +
  1. Modules change +
      +
    • The previous model module was renamed to models, meaning that lakefs_client.model imports should be replaced with lakefs_sdk.models imports.
    • +
    • The apis module in lakefs_client is deprecated and no longer supported. To migrate to the new api module in lakefs_sdk, you should replace all imports of lakefs_client.apis with imports of lakefs_sdk.api. We still recommend using the lakefs_sdk.LakeFSClient class instead of using the api module directly. The LakeFSClient class provides a higher-level interface to the LakeFS API and makes it easier to use LakeFS in your applications.
    • +
    +
  2. +
  3. upload_object API call: The content parameter value passed to the objects_api.upload_object method call should be either a string containing the path to the uploaded file, or bytes of data to be uploaded.
  4. +
  5. get_object API call: The return value of client.get_object(...) is a bytearray containing the content of the object.
  6. +
  7. **client.{operation}_api**: The lakefs-client package’s LakeFSClient class’s deprecation-marked operations (client.{operation}) will no longer be available in the lakefs-sdk package’s LakeFSClient class. In their place, the client.{operation}_api should be used.
  8. +
  9. Minimum Python Version: 3.7
  10. +
  11. Fetching results from response objects: Instead of fetching the required results properties from a dictionary using response_result.get_property(prop_name), the response objects will include domain specific entities, thus referring to the properties in the results of the response - response_result.prop_name. For example, instead of:
  12. +
+ +
response = lakefs_client.branches.diff_branch(repository='repo', branch='main')
+diff = response.results[0] # 'results' is a 'DiffList' object
+path = diff.get_property('path') # 'diff' is a dictionary
+
+ +

You should use:

+ +
response = lakefs_client.branches_api.diff_branch(repository='repo', branch='main')
+diff = response.results[0] # 'results' is a 'DiffList' object
+path = diff.path # 'diff' is a 'Diff' object
+
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/project/contributing.html b/v1.46/project/contributing.html new file mode 100644 index 000000000..a38ee69ca --- /dev/null +++ b/v1.46/project/contributing.html @@ -0,0 +1,915 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Contributing to lakeFS | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Contributing to lakeFS + + +

+ + +

Thank you for your interest in contributing to our project. Whether it’s a bug report, new feature, correction, or additional documentation, we greatly value feedback and contributions from our community.

+ +

Please read through this document before submitting any issues or pull requests to ensure that we have all the necessary information to effectively respond to your bug report or contribution.

+ +

Don’t know where to start? Reach out on the #dev channel on our Slack and we will help you get started. We also recommend this free series about contributing to OSS projects.

+

+ + + Getting Started + + +

+ + +

Before you get started, we kindly ask that you:

+ +
    +
  • Check out the code of conduct.
  • +
  • Sign the lakeFS CLA when making your first pull request (individual / corporate)
  • +
  • Submit any security issues directly to security@treeverse.io.
  • +
  • Contributions should have an associated GitHub issue.
  • +
  • Before making major contributions, please reach out to us on the #dev channel on Slack. +We will make sure no one else is working on the same feature.
  • +
+

+ + + Setting up an Environment + + +

+ + +

This section was tested on macOS and Linux (Fedora 32, Ubuntu 20.04) - Your mileage may vary

+ +

Our Go release workflow holds the Go and Node.js versions we currently use under go-version and node-version compatibly. The Java workflows use Maven 3.8.x (but any recent version of Maven should work).

+ +
    +
  1. Install the required dependencies for your OS: +
      +
    1. Git
    2. +
    3. GNU make (probably best to install from your OS package manager such as apt or brew)
    4. +
    5. Docker
    6. +
    7. Go
    8. +
    9. Node.js & npm
    10. +
    11. Maven to build and test Spark client codes.
    12. +
    13. Java 8 + +
    14. +
    15. Optional - PostgreSQL 11 (useful for running and debugging locally)
    16. +
    17. Optional - Rust & Cargo (useful for building the Rust SDK)
    18. +
    19. Optional - Buf CLI (only needed if you like to update Protocol Buffer files)
    20. +
    +
  2. +
  3. +

    Clone the repository from GitHub.

    + +

    This gives you read-only access to the repository. To contribute, see the next section.

    +
  4. +
  5. +

    Build the project:

    + +
    make build
    +
    + +

    Note: make build won’t work for Windows users.

    +
  6. +
  7. +

    Make sure tests are passing. The following should not return any errors:

    + +
    make test
    +
    +
  8. +
+

+ + + Before creating a pull request + + +

+ + +
    +
  1. Review this document in full.
  2. +
  3. Make sure there’s an open issue on GitHub that this pull request addresses, and that it isn’t labeled x/wontfix.
  4. +
  5. Fork the lakeFS repository.
  6. +
  7. If you’re adding new functionality, create a new branch named feature/<DESCRIPTIVE NAME>.
  8. +
  9. If you’re fixing a bug, create a new branch named fix/<DESCRIPTIVE NAME>-<ISSUE NUMBER>.
  10. +
+

+ + + Testing your change + + +

+ + +

Once you’ve made the necessary changes to the code, make sure the tests pass:

+ +

Run unit tests:

+ +
make test
+
+ +

Check that linting rules are passing.

+ +
make checks-validator
+
+ +

You will need GNU diff to run this. On the macOS it can be installed with brew install diffutils

+ +

lakeFS uses go fmt as a style guide for Go code.

+ +

Run system-tests:

+ +
make system-tests
+
+ +

Want to dive deeper into our system tests infrastructure? Need to debug the tests? Follow this documentation.

+

+ + + Submitting a pull request + + +

+ + +

Open a GitHub pull request with your change. The PR description should include a brief explanation of your change. +You should also mention the related GitHub issue. If the issue should be automatically closed after the merge, please link it to the PR.

+ +

After submitting your pull request, GitHub Actions will automatically run tests on your changes and make sure that your updated code builds and runs on Go 1.19.x.

+ +

Check back shortly after submitting your pull request to make sure that your code passes these checks. If any of the checks come back with a red X, then do your best to address the errors.

+ +

A developer from our team will review your pull request, and may request some changes to it. After the request is approved, it will be merged to our main branch.

+

+ + + Documentation + + +

+ + +

Any contribution to the docs, whether it is in conjunction with a code contribution or as a standalone, is appreciated.

+ +

Documentation of features and changes in behaviour should be included in the pull request. +You can create separate pull requests for documentation changes only.

+ +

To learn how to contribute to the lakeFS documentation see this page, which also includes details on how to build the documentation locally.

+

+ + + CHANGELOG.md + + +

+ + +

Any user-facing change should be labeled with include-changelog. +The PR title should contain a concise summary of the feature or fix and the description should have the GitHub issue number. +When we publish a new version of lakeFS, we will add this to the relevant version section of the changelog. +If the change should not be included in the changelog, label it with exclude-changelog.

+

+ + + User-Facing Changes Examples + + +

+ +
    +
  1. UI/UX modifications: Changes to the layout, color scheme, or navigation structure.
  2. +
  3. New features: Adding functionality that users can directly interact with, unless defined as internal.
  4. +
  5. Configuration changes: Updates to settings that users can adjust.
  6. +
  7. Performance improvements: Enhancements that noticeably speed up the application.
  8. +
  9. Bug fixes.
  10. +
  11. Security updates: Changes that address vulnerabilities or privacy concerns.
  12. +
+

+ + + Non-User-Facing Changes: + + +

+ +
    +
  1. Code refactoring: Restructuring the codebase without changing its external behavior.
  2. +
  3. Backend optimizations: Improvements to server-side processes that don’t noticeably affect performance.
  4. +
  5. Database schema changes: Modifications to the data structure that don’t alter the user interface and do not require data migration.
  6. +
  7. Development tooling updates: Changes to build processes or development environments.
  8. +
  9. Internal API: Adding/Altering APIs tagged as internal.
  10. +
  11. Documentation updates.
  12. +
  13. Imported libraries: Updates to third-party libraries that don’t introduce security updates.
  14. +
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/project/docs/callouts.html b/v1.46/project/docs/callouts.html new file mode 100644 index 000000000..70d3c06e9 --- /dev/null +++ b/v1.46/project/docs/callouts.html @@ -0,0 +1,873 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Callouts | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Callouts in lakeFS Documentation + + +

+ + +

These are part of the just-the-docs theme, and use the Block Inline Attribute List (IAL) feature of Kramdown.

+

+ + + Syntax + + +

+ + +

Whilst the lakeFS docs typically use this syntax with the code after the block:

+ +
This is a note
+{: .note }
+
+ +

This is a note

+ +

The just-the-docs documentation puts the code before the block, which makes more sense to the human eye when reading the Markdown too.

+ +
{: .note }
+This is a note
+
+ +

This is a note

+ +

However, they render the same, as can be see above.

+

+ + + Configuration + + +

+ + +

Callouts are configured in the _config.yml file, with an identifier (such as note), a colour, and optionally a title.

+ +
callouts:
+  note:
+    color: blue
+  warning:
+    title: ⚠️ Warning
+    color: red
+  tip:
+    color: green
+  fubar:
+    color: purple
+
+ +

Here’s what the above callouts look like; notice that only warning includes a title:

+ +
{: .note }
+This is a note
+
+ +

This is a note

+ +
{: .warning }
+This is a warning
+
+ +

This is a warning

+ +
{: .fubar }
+This is illustrating that the callout names are completely discretionary and not tied to their meaning
+
+ +

This is illustrating that the callout names are completely discretionary and not tied to their meaning

+

+ + + Custom titles + + +

+ + +

You can specify custom titles per block by appending -title to the block name and putting the custom title in the first line of the quoted block:

+ +
{: .tip-title }
+> lakeFS Cloud
+>
+> For a fully-managed lakeFS solution check out https://lakefs.cloud/ today
+
+ +
+

lakeFS Cloud

+ +

For a fully-managed lakeFS solution check out https://lakefs.cloud/ today

+
+ +

You can also remove the title of a callout that includes one by default (such as warning) above:

+ +
{: .warning-title }
+> Don't press the red button
+
+ +
+

Don’t press the red button

+
+ +

Or change the default title:

+ +
{: .warning-title }
+> Here Be Dragons 🐲
+>
+> ALLES TURISTEN UND NONTEKNISCHEN LOOKENSPEEPERS! <br/>
+> DAS KOMPUTERMASCHINE IST NICHT FÜR DER GEFINGERPOKEN UND MITTENGRABEN! ODERWISE IST EASY TO SCHNAPPEN DER SPRINGENWERK, BLOWENFUSEN UND POPPENCORKEN MIT SPITZENSPARKEN.
+
+ +
+

Here Be Dragons 🐲

+ +

ALLES TURISTEN UND NONTEKNISCHEN LOOKENSPEEPERS!
+DAS KOMPUTERMASCHINE IST NICHT FÜR DER GEFINGERPOKEN UND MITTENGRABEN! ODERWISE IST EASY TO SCHNAPPEN DER SPRINGENWERK, BLOWENFUSEN UND POPPENCORKEN MIT SPITZENSPARKEN.

+
+

+ + + Multi-line Blocks + + +

+ + +

Callouts support multiple lines and/or paragraphs of content:

+ +
{: .note }
+> A multi-paragraph block
+>
+> with <br/>
+> linebreaks
+
+ +
+

A multi-paragraph block

+ +

with
+linebreaks

+
+

+ + + Reference + + +

+ + + + + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/project/docs/index.html b/v1.46/project/docs/index.html new file mode 100644 index 000000000..c3510bcaa --- /dev/null +++ b/v1.46/project/docs/index.html @@ -0,0 +1,959 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Documentation | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + lakeFS Documentation + + +

+ + +

Any contribution to the docs, whether it is in conjunction with a code contribution or as a standalone, is appreciated.

+ +

Please see the contributing guide for details on contributing to lakeFS in general.

+ + + +

📝 Notice! lakeFS documentation is written using Markdown. Make sure to familiarize yourself with the Markdown Guide.

+ +

Customizing the lakeFS docs site should follow the following guidelines: Just The Docs Customization and style-guide.

+

+ + + lakeFS Documentation Philosophy + + +

+ + +

We are heavily inspired by the Diátaxis approach to documentation. At a very high-level, it defines documentation as falling into one of four categories:

+ +
    +
  • How To
  • +
  • Tutorial
  • +
  • Reference
  • +
  • Explanation
  • +
+ +

There is a lot more to it than this, and you are encouraged to read the Diátaxis website for more details. Its application to lakeFS was discussed in #6197

+

+ + + lakeFS Style Guide: + + +

+ + +
    +
  • Don’t use unnecessary tech jargon or vague/wordy constructions - keep it friendly, not condescending.
  • +
  • Be inclusive and welcoming - use gender-neutral words and pronouns when talking about abstract people like users and developers.
  • +
  • Replace complex expressions with simpler ones.
  • +
  • Keep it short - 25-30 words max per sentence. Otherwise, your readers might get lost on the way.
  • +
  • Use active voice instead of passive. For example: This feature can be used to do task X. vs. You can use this feature to do task X. The second one reads much better, right?
  • +
  • You can explain things better by including examples. Show, not tell. Use illustrations, images, gifs, code snippets, etc.
  • +
  • Establish a visual hierarchy to help people quickly find the information they need. Use text formatting to create levels of title and subtitle (such as # to ###### markdown headings). The title of every page should use the topmost heading #; all other headings on the page should use lower headers ## to ######.
  • +
+

+ + + Headings and Table of Contents + + +

+ + +

The title of the page should be H1 (# in markdown). Use headings in descending order and do not skip any.

+ +

Pages should generally have a table of contents to help the user navigate it. Use the following snippet to add it to your page:

+ +
<div class="toc-block">
+## Table of contents
+{: .no_toc .text-delta }
+
+1. TOC
+{:toc}
+{::options toc_levels="2" /}
+</div>
+
+
+ +

By default the page’s Table of Contents will include only H2 headings. If you want to include H2 and H3 then use this snippet instead:

+ +
<div class="toc-block">
+## Table of contents
+{: .no_toc .text-delta }
+
+1. TOC
+{:toc}
+{::options toc_levels="2..3" /}
+</div>
+
+
+ +

Both of these snippets invoke {:toc} which is used by Kramdown (the Markdown processor that Jekyll uses) to insert a table of contents from the headings present in the markdown.

+

+ + + Callouts 💬 + + +

+ + +

Multiple callout types are available. Please review this page for details.

+ + + +

Links should use absolute paths in conjunction with {% link %}, e.g. {% +link foo/example.md %}.

+ +

Adding a link with an anchor is a bit trickier. Create a reference [link +text][link-reference] and then define the anchor at the end of the document:

+
[link-reference]:  {% link foo.example.md %}#anchor
+
+ +

This is so that references work within the versioned documentation that is deployed.

+ +

Relative links, unless within the local folder, are discouraged as it can cause additional work when moving pages at a later date.

+

+ + + Test your changes locally + + +

+ + +

If you have the necessary dependencies installed, you can run Jekyll to build and serve the documentation from your machine using the provided Makefile target:

+ +
make docs-serve
+
+ +

The alternative is to use Docker which has the benefit of handling all the dependencies for you.

+

+ + + Docker + + +

+ + +
    +
  1. +

    Launch the Docker container:

    + +
    docker run --rm \
    +           --name lakefs_docs \
    +           -e TZ="Etc/UTC" \
    +           --publish 4000:4000 --publish 35729:35729 \
    +           --volume="$PWD/docs:/srv/jekyll:Z" \
    +           --volume="$PWD/docs/.jekyll-bundle-cache:/usr/local/bundle:Z" \
    +           --interactive --tty \
    +           jekyll/jekyll:4.2.2 \
    +           jekyll serve --livereload
    +
    + +

    If you have make installed, you can also run make docs-serve-docker instead.

    +
  2. +
  3. +

    The first time you run the container it will need to download dependencies and will take several minutes to be ready.

    + +

    Once you see the following output, the docs server is ready to open in your web browser:

    + +
    Server running... press ctrl-c to stop.
    +
    +
  4. +
  5. +

    When you make a change to a page’s source the server will automatically rebuild the page which will be shown in the server log by this entry:

    + +
    Regenerating: 1 file(s) changed at 2023-01-26 08:34:47
    +               contributing.md
    +Remote Theme: Using theme pmarsceill/just-the-docs
    +
    + +

    This can take a short while—you’ll see something like this in the server’s output when it’s done.

    + +
    ...done in 34.714073460 seconds.
    +
    + +

    Your page will automatically reload to show the changes.

    +
  6. +
+ +

If you are doing lots of work on the docs you may want to leave the Docker container in place (so that you don’t have to wait for the dependencies to load each time you re-create it). To do this replace the --rm with --detach in the docker run command, and use docker logs -f lakefs_docs to view the server log.

+ + + +

When making a pull request to lakeFS that involves a docs/* file, a GitHub action will automagically check the links. You can also run this link checker manually on your local machine:

+ +
    +
  1. +

    Build the site:

    + +
    docker run --rm \
    +         --name lakefs_docs \
    +         -e TZ="Etc/UTC" \
    +         --volume="$PWD/docs:/srv/jekyll:Z" \
    +         --volume="$PWD/docs/.jekyll-bundle-cache:/usr/local/bundle:Z" \
    +         --interactive --tty \
    +         jekyll/jekyll:3.8 \
    +         jekyll build --config _config.yml -d _site --watch
    +
    +
  2. +
  3. +

    Check the links:

    + +
    docker run --rm \
    +         --name lakefs_docs_lychee \
    +         --volume "$PWD:/data"\
    +         --volume "/tmp:/output"\
    +         --tty \
    +         lycheeverse/lychee:master \
    +         --exclude-file /data/docs/.lycheeignore \
    +         --output /output/lychee_report.md \
    +         --format markdown \
    +         /data/docs/_site
    +
    +
  4. +
  5. +

    Review the lychee_report.md in your local /tmp folder

    +
  6. +
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/project/index.html b/v1.46/project/index.html new file mode 100644 index 000000000..338763f57 --- /dev/null +++ b/v1.46/project/index.html @@ -0,0 +1,785 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +The lakeFS Project | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + +
+ +

+ + + The lakeFS Project + + +

+ + +

lakeFS provides version control over the data lake and lakehouse, and uses Git-like semantics to create and access those versions. If you know git, you’ll be right at home with lakeFS.

+ +

lakeFS is an open-source project under the Apache 2.0 license.

+ +

The project was created and is supported by Treeverse, a commercial company founded by engineers passionate about providing solutions to the evolving world of data engineering.

+ +
+

+ + + Table of contents + + +

+ + +
    +
  1. Our commitment to open source
  2. +
  3. Roadmap
  4. +
+ +
+

+ + + Our commitment to open source + + +

+ + +

lakeFS is an open-source project under the Apache 2.0 license. +The project was created and is supported by Treeverse, a commercial company founded by engineers passionate about providing solutions to the evolving world of data engineering.

+ +

Why did we choose to open the source of our core capabilities?

+ +

We believe in the bottom-up adoption of technologies. +We believe collaborative communities have the power to bring the best solutions to the community. +We believe that every engineer should be able to use, contribute to, and influence cutting edge technologies, so they can innovate in their domain.

+ +

What is our commitment to open source?

+ +

We created lakeFS, our open-source project, to provide a Git-like interface on top of object stores - so that you can fully take advantage of with any data application at any scale.

+ +

For that reason, we commit that the following capabilities are and will remain open-source as part of lakeFS:

+ +
    +
  • All versioning capabilities,
  • +
  • Git-Like interface for the versioning operations,
  • +
  • Support for public object store APIs,
  • +
  • Integrations with publicly available applications accessing an object store,
  • +
  • CLI, API, and GUI interfaces.
  • +
+ +

We also commit to keeping lakeFS scalable in throughput and performance.

+ +

We are deeply committed to our community of engineers who use and contribute to the project. We are and will continue to be highly responsive and shape lakeFS together to provide the data versioning capabilities we are all looking for.

+ +

What is lakeFS Cloud?

+ +

Treeverse offers lakeFS Cloud, which provides all the same benefits of the Git-like interface on top of object stores as a fully-managed service.

+ +

The vision behind lakeFS Cloud is to provide a managed data versioning and management solution for data practitioners. lakeFS Cloud will leverage the lakeFS open-source technology, integrate capabilities and unique features, and lead its users to implement best practices.

+ +

As part of our commitment to the open source values of transparency and interoperability, we believe everyone should be able to enjoy these benefits, regardless of whether or not they choose to use the managed offering.

+ +

Because of that, we will not intentionally make it harder to build these features independently on top of the open source solution.

+

+ + + Roadmap + + +

+ + +

This is the lakeFS public roadmap. As the project evolves and the community grows, this roadmap might change.

+ +

Please share your feedback on the #dev on Slack or by starting a GitHub Discussion!

+ + + + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/quickstart.html b/v1.46/quickstart.html new file mode 100644 index 000000000..32f9baa11 --- /dev/null +++ b/v1.46/quickstart.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/quickstart/actions-and-hooks.html b/v1.46/quickstart/actions-and-hooks.html new file mode 100644 index 000000000..3c4368b19 --- /dev/null +++ b/v1.46/quickstart/actions-and-hooks.html @@ -0,0 +1,917 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +6️⃣ Using Actions and Hooks in lakeFS | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Actions and Hooks in lakeFS + + +

+ + +

When we interact with lakeFS it can be useful to have certain checks performed at stages along the way. Let’s see how actions in lakeFS can be of benefit here.

+ +

We’re going to enforce a rule that when a commit is made to any branch that begins with etl:

+ +
    +
  • the commit message must not be blank
  • +
  • there must be job_name and version metadata
  • +
  • the version must be numeric
  • +
+ +

To do this we’ll create an action. In lakeFS, an action specifies one or more events that will trigger it, and references one or more hooks to run when triggered. Actions are YAML files written to lakeFS under the _lakefs_actions/ folder of the lakeFS repository.

+ +

Hooks can be either a Lua script that lakeFS will execute itself, an external web hook, or an Airflow DAG. In this example, we’re using a Lua hook.

+

+ + + Configuring the Action + + +

+ + +
    +
  1. +

    In lakeFS create a new branch called add_action. You can do this through the UI or with lakectl:

    + +
     docker exec lakefs lakectl branch create lakefs://quickstart/add_action --source lakefs://quickstart/main
    +
    +
  2. +
  3. +

    Open up your favorite text editor (or emacs), and paste the following YAML:

    + +
    name: Check Commit Message and Metadata
    +on:
    +  pre-commit:
    +    branches:
    +    - etl**
    +hooks:
    +- id: check_metadata
    +  type: lua
    +  properties:
    +    script: |
    +        commit_message=action.commit.message
    +        if commit_message and #commit_message>0 then
    +            print("✅ The commit message exists and is not empty: " .. commit_message)
    +        else
    +            error("\n\n❌ A commit message must be provided")
    +        end
    +   
    +        job_name=action.commit.metadata["job_name"]
    +        if job_name == nil then
    +            error("\n❌ Commit metadata must include job_name")
    +        else
    +            print("✅ Commit metadata includes job_name: " .. job_name)
    +        end
    +   
    +        version=action.commit.metadata["version"]
    +        if version == nil then
    +            error("\n❌ Commit metadata must include version")
    +        else
    +            print("✅ Commit metadata includes version: " .. version)
    +            if tonumber(version) then
    +                print("✅ Commit metadata version is numeric")
    +            else
    +                error("\n❌ Version metadata must be numeric: " .. version)
    +            end
    +        end
    +
    +
  4. +
  5. +

    Save this file as /tmp/check_commit_metadata.yml

    + +
      +
    • You can save it elsewhere, but make sure you change the path below when uploading
    • +
    +
  6. +
  7. +

    Upload the check_commit_metadata.yml file to the add_action branch under _lakefs_actions/. As above, you can use the UI (make sure you select the correct branch when you do), or with lakectl:

    + +
     docker exec lakefs lakectl fs upload lakefs://quickstart/add_action/_lakefs_actions/check_commit_metadata.yml --source /tmp/check_commit_metadata.yml
    +
    +
  8. +
  9. +

    Go to the Uncommitted Changes tab in the UI, and make sure that you see the new file in the path shown:

    + +

    lakeFS Uncommitted Changes view showing a file called `check_commit_metadata.yml` under the path `_lakefs_actions/`

    + +

    Click Commit Changes and enter a suitable message to commit this new file to the branch.

    +
  10. +
  11. +

    Now we’ll merge this new branch into main. From the Compare tab in the UI compare the main branch with add_action and click Merge

    + +

    lakeFS Compare view showing the difference between `main` and `add_action` branches

    +
  12. +
+

+ + + Testing the Action + + +

+ + +

Let’s remind ourselves what the rules are that the action is going to enforce.

+ +
+

When a commit is made to any branch that begins with etl:

+
+ +
+
    +
  • the commit message must not be blank
  • +
  • there must be job_name and version metadata
  • +
  • the version must be numeric
  • +
+
+ +

We’ll start by creating a branch that’s going to match the etl pattern, and then go ahead and commit a change and see how the action works.

+ +
    +
  1. +

    Create a new branch (see above instructions on how to do this if necessary) called etl_20230504. Make sure you use main as the source branch.

    + +

    In your new branch you should see the action that you created and merged above:

    + +

    lakeFS branch etl_20230504 with object /_lakefs_actions/check_commit_metadata.yml

    +
  2. +
  3. +

    To simulate an ETL job we’ll use the built-in DuckDB editor to run some SQL and write the result back to the lakeFS branch.

    + +

    Open the lakes.parquet file on the etl_20230504 branch from the Objects tab. Replace the SQL statement with the following:

    + +
     COPY (
    +     WITH src AS (
    +         SELECT lake_name, country, depth_m,
    +             RANK() OVER ( ORDER BY depth_m DESC) AS lake_rank
    +         FROM READ_PARQUET('lakefs://quickstart/etl_20230504/lakes.parquet'))
    +     SELECT * FROM SRC WHERE lake_rank <= 10
    + ) TO 'lakefs://quickstart/etl_20230504/top10_lakes.parquet'    
    +
    +
  4. +
  5. +

    Head to the Uncommitted Changes tab in the UI and notice that there is now a file called top10_lakes.parquet waiting to be committed.

    + +

    lakeFS branch etl_20230504 with uncommitted file top10_lakes.parquet

    + +

    Now we’re ready to start trying out the commit rules, and seeing what happens if we violate them.

    +
  6. +
  7. +

    Click on Commit Changes, leave the Commit message blank, and click Commit Changes to confirm.

    + +

    Note that the commit fails because the hook did not succeed

    + +

    pre-commit hook aborted

    + +

    with the output from the hook’s code displayed

    + +

    ❌ A commit message must be provided

    + +

    lakeFS blocking an attempt to commit with no commit message

    +
  8. +
  9. +

    Do the same as the previous step, but provide a message this time:

    + +

    A commit to lakeFS with commit message in place

    + +

    The commit still fails as we need to include metadata too, which is what the error tells us

    + +

    ❌ Commit metadata must include job_name

    +
  10. +
  11. +

    Repeat the Commit Changes dialog and use the Add Metadata field to add the required metadata:

    + +

    A commit to lakeFS with commit message and metadata in place

    + +

    We’re almost there, but this still fails (as it should), since the version is not entirely numeric but includes v and ß:

    + +

    ❌ Version metadata must be numeric: v1.00ß

    + +

    Repeat the commit attempt specify the version as 1.00 this time, and rejoice as the commit succeeds

    + +

    Commit history in lakeFS showing that the commit met the rules set by the action and completed successfully.

    +
  12. +

+ +

You can view the history of all action runs from the Action tab:

+ +

Action run history in lakeFS

+ + + + + + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/quickstart/add_data.html b/v1.46/quickstart/add_data.html new file mode 100644 index 000000000..32f9baa11 --- /dev/null +++ b/v1.46/quickstart/add_data.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/quickstart/branch.html b/v1.46/quickstart/branch.html new file mode 100644 index 000000000..3c23c0b86 --- /dev/null +++ b/v1.46/quickstart/branch.html @@ -0,0 +1,866 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3️⃣ Create a branch | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Create a Branch + + +

+ + +

lakeFS uses branches in a similar way to Git. It’s a great way to isolate changes until, or if, we are ready to re-integrate them. lakeFS uses a zero-copy branching technique which means that it’s very efficient to create branches of your data.

+ +

Having seen the lakes data in the previous step we’re now going to create a new dataset to hold data only for lakes in Denmark. Why? Well, because :)

+ +

The first thing we’ll do is create a branch for us to do this development against. We’ll use the lakectl tool to create the branch, which we first need to configure with our credentials. In a new terminal window run the following:

+ +
docker exec -it lakefs lakectl config
+
+ +

Follow the prompts to enter the credentials that you got in the first step. Leave the Server endpoint URL as http://127.0.0.1:8000.

+ +

Now that lakectl is configured, we can use it to create the branch. Run the following:

+ +
docker exec lakefs lakectl branch create lakefs://quickstart/denmark-lakes --source lakefs://quickstart/main
+
+ +

You should get a confirmation message like this:

+ +
Source ref: lakefs://quickstart/main
+created branch 'denmark-lakes' 3384cd7cdc4a2cd5eb6249b52f0a709b49081668bb1574ce8f1ef2d956646816
+
+

+ + + Transforming the Data + + +

+ + +

Now we’ll make a change to the data. lakeFS has several native clients, as well as an S3-compatible endpoint. This means that anything that can use S3 will work with lakeFS. Pretty neat.

+ +

We’re going to use DuckDB which is embedded within the web interface of lakeFS.

+ +

From the lakeFS Objects page select the lakes.parquet file to open the DuckDB editor:

+ +

The lakeFS object viewer with embedded DuckDB to query parquet files. A query has run automagically to preview the contents of the selected parquet file.

+ +

To start with, we’ll load the lakes data into a DuckDB table so that we can manipulate it. Replace the previous text in the DuckDB editor with this:

+ +
CREATE OR REPLACE TABLE lakes AS 
+    SELECT * FROM READ_PARQUET('lakefs://quickstart/denmark-lakes/lakes.parquet');
+
+ +

You’ll see a row count of 100,000 to confirm that the DuckDB table has been created.

+ +

Just to check that it’s the same data that we saw before we’ll run the same query. Note that we are querying a DuckDB table (lakes), rather than using a function to query a parquet file directly.

+ +
SELECT   country, COUNT(*)
+FROM     lakes
+GROUP BY country
+ORDER BY COUNT(*) 
+DESC LIMIT 5;
+
+ +

The DuckDB editor pane querying the lakes table

+

+ + + Making a Change to the Data + + +

+ + +

Now we can change our table, which was loaded from the original lakes.parquet, to remove all rows not for Denmark:

+ +
DELETE FROM lakes WHERE Country != 'Denmark';
+
+ +

The DuckDB editor pane deleting rows from the lakes table

+ +

We can verify that it’s worked by reissuing the same query as before:

+ +
SELECT   country, COUNT(*)
+FROM     lakes
+GROUP BY country
+ORDER BY COUNT(*) 
+DESC LIMIT 5;
+
+ +

The DuckDB editor pane querying the lakes table showing only rows for Denmark remain

+

+ + + Write the Data back to lakeFS + + +

+ + +

The changes so far have only been to DuckDB’s copy of the data. Let’s now push it back to lakeFS. Note the path is different this time as we’re writing it to the denmark-lakes branch, not main:

+ +
COPY lakes TO 'lakefs://quickstart/denmark-lakes/lakes.parquet';
+
+ +

The DuckDB editor pane writing data back to the denmark-lakes branch

+

+ + + Verify that the Data’s Changed on the Branch + + +

+ + +

Let’s just confirm for ourselves that the parquet file itself has the new data. We’ll drop the lakes table just to be sure, and then query the parquet file directly:

+ +
DROP TABLE lakes;
+
+SELECT   country, COUNT(*)
+FROM     READ_PARQUET('lakefs://quickstart/denmark-lakes/lakes.parquet')
+GROUP BY country
+ORDER BY COUNT(*) 
+DESC LIMIT 5;
+
+ +

The DuckDB editor pane show the parquet file on denmark-lakes branch has been changed

+

+ + + What about the data in main? + + +

+ + +

So we’ve changed the data in our denmark-lakes branch, deleting swathes of the dataset. What’s this done to our original data in the main branch? Absolutely nothing! See for yourself by running the same query as above, but against the main branch:

+ +
SELECT   country, COUNT(*)
+FROM     READ_PARQUET('lakefs://quickstart/main/lakes.parquet')
+GROUP BY country
+ORDER BY COUNT(*) 
+DESC LIMIT 5;
+
+

The lakeFS object browser showing DuckDB querying lakes.parquet on the main branch. The results are the same as they were before we made the changes to the denmark-lakes branch, which is as expected.

+ +

In the next step we’ll see how to commit our changes and merge our branch back into main.

+ + + + + + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/quickstart/commit-and-merge.html b/v1.46/quickstart/commit-and-merge.html new file mode 100644 index 000000000..84c0d65ea --- /dev/null +++ b/v1.46/quickstart/commit-and-merge.html @@ -0,0 +1,768 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4️⃣ Commit and Merge | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

In the previous step we branched our data from main into a new denmark-lakes branch, and overwrote the lakes.parquet to hold solely information about lakes in Denmark. Now we’re going to commit that change (just like Git) and merge it back to main (just like git).

+

+ + + Committing Changes in lakeFS + + +

+ + +

Having make the change to the datafile in the denmark-lakes branch, we now want to commit it. There are various options for interacting with the lakeFS API, including the web interface, a Python client, and lakectl which is what we’ll use here. Run the following from a terminal window:

+ +
docker exec lakefs lakectl commit lakefs://quickstart/denmark-lakes -m "Create a dataset of just the lakes in Denmark"
+
+ +

You will get confirmation of the commit including its hash.

+
Branch: lakefs://quickstart/denmark-lakes
+Commit for branch "denmark-lakes" completed.
+
+ID: ba6d71d0965fa5d97f309a17ce08ad006c0dde15f99c5ea0904d3ad3e765bd74
+Message: Create a dataset of just the lakes in Denmark
+Timestamp: 2023-03-15 08:09:36 +0000 UTC
+Parents: 3384cd7cdc4a2cd5eb6249b52f0a709b49081668bb1574ce8f1ef2d956646816
+
+ +

With our change committed, it’s now time to merge it to back to the main branch.

+

+ + + Merging Branches in lakeFS 🔀 + + +

+ + +

As above, we’ll use lakectl to do this too. The syntax just requires us to specify the source and target of the merge. Run this from a terminal window.

+ +
docker exec lakefs lakectl merge lakefs://quickstart/denmark-lakes lakefs://quickstart/main
+
+ +

We can confirm that this has worked by returning to the same object view of lakes.parquet as before and clicking on Execute to rerun the same query. You’ll see that the country row counts have changed, and only Denmark is left in the data:

+ +

The lakeFS object browser with a DuckDB query on lakes.parquet showing that there is only data for Denmark.

+ +

But…oh no! A slow chill creeps down your spine, and the bottom drops out of your stomach. What have you done! 😱 You were supposed to create a separate file of Denmark’s lakes - not replace the original one

+ +

Is all lost? Will our hero overcome the obstacles? No, and yes respectively!

+ +

Have no fear; lakeFS can revert changes. Tune in for the final part of the quickstart to see how.

+ + + + + + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/quickstart/first_commit.html b/v1.46/quickstart/first_commit.html new file mode 100644 index 000000000..32f9baa11 --- /dev/null +++ b/v1.46/quickstart/first_commit.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/quickstart/index.html b/v1.46/quickstart/index.html new file mode 100644 index 000000000..722f95ebc --- /dev/null +++ b/v1.46/quickstart/index.html @@ -0,0 +1,856 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +⭐ Quickstart | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + +
+ +

+ + + lakeFS Quickstart + + +

+ + +

Welcome to lakeFS!

+ +

lakeFS provides a “Git for data” platform enabling you to implement best practices from software engineering on your data lake, including branching and merging, CI/CD, and production-like dev/test environments.

+ +

This quickstart will introduce you to some of the core ideas in lakeFS and show what you can do by illustrating the concept of branching, merging, and rolling back changes to data. It’s laid out in five short sections:

+ +
+ +
+
+

step 1

+
+
+

+ + + +Launch + + + +

+ +

Spin up the quickstart environment locally under Docker

+
+
+ +
+
+

step 2

+
+
+

+ + + +Query + + + +

+ +

Query the pre-populated data on the main branch

+
+
+ +
+
+

step 3

+
+
+

+ + + +Branch + + + +

+ +

Make changes to the data on a new branch

+
+
+ +
+
+

step 4

+
+
+

+ + + +Merge + + + +

+ +

Merge the changed data back to the main branch

+
+
+ +
+
+

step 5

+
+
+

+ + + +Rollback + + + +

+ +

Change our mind and revert the changes

+
+
+
+ +
+
+

step 6

+
+
+

+ + + +Actions + + + +

+ +

Use Actions to trigger code when an event occurs

+
+
+ +
+
+

step 6

+
+
+

+ + + +Work Locally + + + +

+ +

Experiment with lakeFS data on a local environment

+
+
+ +

You can use the 30-day free trial of lakeFS Cloud if you want to try out lakeFS without installing anything.

+ + + + + + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/quickstart/installing.html b/v1.46/quickstart/installing.html new file mode 100644 index 000000000..32f9baa11 --- /dev/null +++ b/v1.46/quickstart/installing.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/quickstart/iso_env.html b/v1.46/quickstart/iso_env.html new file mode 100644 index 000000000..81a672a11 --- /dev/null +++ b/v1.46/quickstart/iso_env.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/quickstart/lakefs_cli.html b/v1.46/quickstart/lakefs_cli.html new file mode 100644 index 000000000..6c6c5a594 --- /dev/null +++ b/v1.46/quickstart/lakefs_cli.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/quickstart/launch.html b/v1.46/quickstart/launch.html new file mode 100644 index 000000000..892e74837 --- /dev/null +++ b/v1.46/quickstart/launch.html @@ -0,0 +1,772 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1️⃣ Run lakeFS | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Spin up the environment + + +

+ + +

If you don’t want to use Docker, you can use the 30-day free trial of lakeFS Cloud. Once you launch the free trial you will have access to the same content as this quickstart within the provided repository once you login.

+ +

The quickstart uses Docker to bring up the lakeFS container, pre-populate it with some data, and also provides DuckDB from where we can interact with the data. You’ll need Docker installed to run this.

+ +

Launch the lakeFS container:

+ +
docker run --name lakefs --pull always --rm --publish 8000:8000 treeverse/lakefs:latest run --quickstart
+
+ +

After a few moments you should see the lakeFS container ready to use:

+ +
│
+│ lakeFS running in quickstart mode.
+│     Login at http://127.0.0.1:8000/
+│
+│     Access Key ID    : AKIAIOSFOLQUICKSTART
+│     Secret Access Key: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
+│
+
+ +

You’re now ready to dive into lakeFS!

+ +
    +
  1. +

    Open lakeFS’s web interface at http://127.0.0.1:8000/

    +
  2. +
  3. +

    Login with the quickstart credentials.

    + +
      +
    • Access Key ID: AKIAIOSFOLQUICKSTART
    • +
    • Secret Access Key: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
    • +
    +
  4. +
  5. +

    You’ll notice that there aren’t any repositories created yet. Click the Create Sample Repository button.

    + +

    Empty lakeFS Repository list

    +
  6. +
+ +

You will see the sample repository created and the quickstart guide within it. You can follow along there, or here - it’s the same :)

+ +

The quickstart sample repo in lakeFS

+ + + + + + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/quickstart/learning-more-lakefs.html b/v1.46/quickstart/learning-more-lakefs.html new file mode 100644 index 000000000..3be4b7134 --- /dev/null +++ b/v1.46/quickstart/learning-more-lakefs.html @@ -0,0 +1,870 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Learn more about lakeFS | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Learn more about lakeFS + + +

+ + +

The lakeFS quickstart is just the beginning of your lakeFS journey 🛣️

+ +

Here are some more resources to help you find out more about lakeFS.

+

+ + + Connecting lakeFS to your own object storage + + +

+ + +

Enjoyed the quickstart and want to try out lakeFS against your own data? Here’s how to run lakeFS locally as a Docker container locally connecting to an object store.

+ +
+ +
+ +

Note: Make sure the Quickstart Docker Compose from the previous steps isn’t also running as you’ll get a port conflict.

+ +
docker run --pull always -p 8000:8000 \
+   -e LAKEFS_BLOCKSTORE_TYPE='s3' \
+   -e AWS_ACCESS_KEY_ID='YourAccessKeyValue' \
+   -e AWS_SECRET_ACCESS_KEY='YourSecretKeyValue' \
+   treeverse/lakefs run --local-settings
+
+ +
+
+ +

Note: Make sure the Quickstart Docker Compose from the previous steps isn’t also running as you’ll get a port conflict.

+ +
docker run --pull always -p 8000:8000 \
+   -e LAKEFS_BLOCKSTORE_TYPE='azure' \
+   -e LAKEFS_BLOCKSTORE_AZURE_STORAGE_ACCOUNT='YourAzureStorageAccountName' \
+   -e LAKEFS_BLOCKSTORE_AZURE_STORAGE_ACCESS_KEY='YourAzureStorageAccessKey' \
+   treeverse/lakefs run --local-settings
+
+ +
+
+ +

Note: Make sure the Quickstart Docker Compose from the previous steps isn’t also running as you’ll get a port conflict.

+ +
docker run --pull always -p 8000:8000 \
+   -e LAKEFS_BLOCKSTORE_TYPE='gs' \
+   -e LAKEFS_BLOCKSTORE_GS_CREDENTIALS_JSON='YourGoogleServiceAccountKeyJSON' \
+   treeverse/lakefs run --local-settings
+
+

where you will replace YourGoogleServiceAccountKeyJSON with JSON string that contains your Google service account key.

+ +

If you want to use the JSON file that contains your Google service account key instead of JSON string (as in the previous command) then go to the directory where JSON file is stored and run the command with local parameters:

+ +
docker run --pull always -p 8000:8000 \
+   -v $PWD:/myfiles \
+   -e LAKEFS_BLOCKSTORE_TYPE='gs' \
+   -e LAKEFS_BLOCKSTORE_GS_CREDENTIALS_FILE='/myfiles/YourGoogleServiceAccountKey.json' \
+   treeverse/lakefs run --local-settings
+
+

This command will mount your present working directory (PWD) within the container and will read the JSON file from your PWD.

+ +
+
+ +

To use lakeFS with MinIO (or other S3-compatible object storage), use the following example:

+ +

Note: Make sure the Quickstart Docker Compose from the previous steps isn’t also running as you’ll get a port conflict.

+ +
docker run --pull always -p 8000:8000 \
+   -e LAKEFS_BLOCKSTORE_TYPE='s3' \
+   -e LAKEFS_BLOCKSTORE_S3_FORCE_PATH_STYLE='true' \
+   -e LAKEFS_BLOCKSTORE_S3_ENDPOINT='http://<minio_endpoint>' \
+   -e LAKEFS_BLOCKSTORE_S3_DISCOVER_BUCKET_REGION='false' \
+   -e LAKEFS_BLOCKSTORE_S3_CREDENTIALS_ACCESS_KEY_ID='<minio_access_key>' \
+   -e LAKEFS_BLOCKSTORE_S3_CREDENTIALS_SECRET_ACCESS_KEY='<minio_secret_key>' \
+   treeverse/lakefs run --local-settings
+
+ +
+
+

+ + + Deploying lakeFS + + +

+ + +

Ready to do this thing for real? The deployment guides show you how to deploy lakeFS locally (including on Kubernetes) or on AWS, Azure, or GCP.

+ +

Alternatively you might want to have a look at lakeFS Cloud which provides a fully-managed, SOC-2 compliant, lakeFS service.

+

+ + + lakeFS Samples + + +

+ + +

The lakeFS Samples GitHub repository includes some excellent examples including:

+ +
    +
  • How to implement multi-table transaction on multiple Delta Tables
  • +
  • Notebooks to show integration of lakeFS with Spark, Python, Delta Lake, Airflow and Hooks.
  • +
  • Examples of using lakeFS webhooks to run automated data quality checks on different branches.
  • +
  • Using lakeFS branching features to create dev/test data environments for ETL testing and experimentation.
  • +
  • Reproducing ML experiments with certainty using lakeFS tags.
  • +
+

+ + + lakeFS Community + + +

+ + +

The lakeFS community is important to us. Our guiding principles are:

+ +
    +
  • Fully open, in code and conversation
  • +
  • We learn and grow together
  • +
  • Compassion and respect in every interaction
  • +
+ +

We’d love for you to join our Slack group and come and introduce yourself on #announcements-and-more. Or just lurk and soak up the vibes 😎

+ +

If you’re interested in getting involved in the development of lakeFS, head over our the GitHub repo to look at the code and peruse the issues. The comprehensive contributing document should have you covered on next steps but if you’ve any questions the #dev channel on Slack will be delighted to help.

+ +

We love speaking at meetups and chatting to community members at them - you can find a list of these here.

+ +

Finally, make sure to drop by to say hi on Twitter, Mastodon, and LinkedIn 👋🏻

+

+ + + lakeFS Concepts and Internals + + +

+ + +

We describe lakeFS as “Git for data” but what does that actually mean? Have a look at the concepts and architecture guides, as well as the explanation of how merges are handled. To go deeper you might be interested in the internals of versioning and our internal database structure.

+ + + + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/quickstart/more_quickstart_options.html b/v1.46/quickstart/more_quickstart_options.html new file mode 100644 index 000000000..32f9baa11 --- /dev/null +++ b/v1.46/quickstart/more_quickstart_options.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/quickstart/query.html b/v1.46/quickstart/query.html new file mode 100644 index 000000000..feecca1c5 --- /dev/null +++ b/v1.46/quickstart/query.html @@ -0,0 +1,754 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2️⃣ Query the data | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Let’s Query Something + + +

+ + +

The lakeFS server has been loaded with a sample parquet datafile. Fittingly enough for a piece of software to help users of data lakes, the lakes.parquet file holds data about lakes around the world.

+ +

You’ll notice that the branch is set to main. This is conceptually the same as your main branch in Git against which you develop software code.

+ +

The lakeFS objects list with a highlight to indicate that the branch is set to main.

+ +

Let’s have a look at the data, ahead of making some changes to it on a branch in the following steps.

+ +

Click on lakes.parquet and notice that the built-it DuckDB runs a query to show a preview of the file’s contents.

+ +

The lakeFS object viewer with embedded DuckDB to query parquet files. A query has run automagically to preview the contents of the selected parquet file.

+ +

Now we’ll run our own query on it to look at the top five countries represented in the data.

+ +

Copy and paste the following SQL statement into the DuckDB query panel and click on Execute.

+ +
SELECT   country, COUNT(*)
+FROM     READ_PARQUET('lakefs://quickstart/main/lakes.parquet')
+GROUP BY country
+ORDER BY COUNT(*) 
+DESC LIMIT 5;
+
+ +

An embedded DuckDB query showing a count of rows per country in the dataset.

+ +

Next we’re going to make some changes to the data—but on a development branch so that the data in the main branch remains untouched.

+ + + + + + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/quickstart/repository.html b/v1.46/quickstart/repository.html new file mode 100644 index 000000000..32f9baa11 --- /dev/null +++ b/v1.46/quickstart/repository.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/quickstart/rollback.html b/v1.46/quickstart/rollback.html new file mode 100644 index 000000000..8f69b240a --- /dev/null +++ b/v1.46/quickstart/rollback.html @@ -0,0 +1,743 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +5️⃣ Roll back Changes | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Rolling back Changes in lakeFS + + +

+ + +

Our intrepid user (you) merged a change back into the main branch and realised that they had made a mistake 🤦🏻.

+ +

The good news for them (you) is that lakeFS can revert changes made, similar to how you would in Git 😅.

+ +

From your terminal window run lakectl with the revert command:

+ +
docker exec -it lakefs lakectl branch revert lakefs://quickstart/main main --parent-number 1 --yes
+
+

You should see a confirmation of a successful rollback:

+
Branch: lakefs://quickstart/main
+commit main successfully reverted
+
+ +

Back in the object page and the DuckDB query we can see that the original file is now back to how it was: +The lakeFS object viewer with DuckDB query showing that the lakes dataset on main branch has been successfully returned to state prior to the merge.

+ + + + + + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/quickstart/run.html b/v1.46/quickstart/run.html new file mode 100644 index 000000000..32f9baa11 --- /dev/null +++ b/v1.46/quickstart/run.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/quickstart/try.html b/v1.46/quickstart/try.html new file mode 100644 index 000000000..32f9baa11 --- /dev/null +++ b/v1.46/quickstart/try.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/quickstart/work-with-data-locally.html b/v1.46/quickstart/work-with-data-locally.html new file mode 100644 index 000000000..4991d6345 --- /dev/null +++ b/v1.46/quickstart/work-with-data-locally.html @@ -0,0 +1,984 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +7️⃣ Work with lakeFS data locally | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Work with lakeFS Data Locally + + +

+ + +

When working with lakeFS, there are scenarios where we need to access and manipulate data locally. An example use case for working +locally is machine learning model development. Machine learning model development is dynamic and iterative. To optimize this +process, experiments need to be conducted with speed, tracking ease, and reproducibility. Localizing model data during development +accelerates the process by enabling interactive and offline development and reducing data access latency.

+ +

lakeFS provides 2 ways to expose versioned data locally

+ +
+

+ + + Table of contents + + +

+ + +
    +
  1. lakeFS Mount
  2. +
  3. lakectl local
  4. +
+ +
+

+ + + lakeFS Mount + + +

+ + +

lakeFS Mount is available (in preview) for lakeFS Enterprise and lakeFS Cloud customers.
+You can try it out by signing up for the preview

+ + +

+ + + Getting started with lakeFS Mount + + +

+ + +

Prerequisites:

+ +
    +
  • A working lakeFS Server running either lakeFS Enterprise or lakeFS Cloud
  • +
  • You’ve installed the lakectl command line utility: this is the official lakeFS command line interface, on top of which lakeFS Mount is built.
  • +
  • lakectl is configured properly to access your lakeFS server as detailed in the configuration instructions
  • +
+

+ + + Mounting a path to a local directory: + + +

+ + +
    +
  1. +

    In lakeFS create a new branch called my-experiment. You can do this through the UI or with lakectl:

    + +
     docker exec lakefs \
    +     lakectl branch create \
    +         lakefs://quickstart/my-experiment \
    +         --source lakefs://quickstart/main
    +
    +
  2. +
  3. +

    Mount images from your quickstart repository into a local directory named my_local_dir

    +
    everest mount lakefs://quickstart/my-experiment/images my_local_dir
    +
    +
  4. +
+ +

Once complete, my_local_dir should be mounted with the specified path.

+ +
    +
  1. Verify that my_local_dir is linked to the correct path in your lakeFS remote:
  2. +
+ +
ls -l my_local_dir
+
+ +
    +
  1. To unmount the directory, simply run:
  2. +
+ +
everest umount ./my_local_dir
+
+ +

Which will unmount the path and terminate the local mount-server.

+

+ + + lakectl local + + +

+ + +

Alternatively, we can use lakectl local to bring a subset of our lakeFS data to a local directory within the lakeFS +container and edit an image dataset used for ML model development. Unlike lakeFS Mount, using lakectl local requires copying data to/from lakeFS and your local machine.

+ + + +

Reference Guide: lakeFS lakectl local for machine learning

+

+ + + Cloning a Subset of lakeFS Data into a Local Directory + + +

+ + +
    +
  1. +

    In lakeFS create a new branch called my-experiment. You can do this through the UI or with lakectl:

    + +
     docker exec lakefs lakectl branch create lakefs://quickstart/my-experiment --source lakefs://quickstart/main
    +
    +
  2. +
  3. +

    Clone images from your quickstart repository into a local directory named my_local_dir within your container:

    + +
     docker exec lakefs lakectl local clone lakefs://quickstart/my-experiment/images my_local_dir
    +
    +
  4. +
  5. +

    Verify that my_local_dir is linked to the correct path in your lakeFS remote:

    + +
     docker exec lakefs lakectl local list
    +
    + +

    You should see confirmation that my_local_dir is tracking the desired lakeFS path.:

    + +
        my_local_dir	lakefs://quickstart/my-experiment/images/8614575b5488b47a094163bd17a12ed0b82e0bcbfd22ed1856151c671f1faa53
    +
    +
  6. +
  7. +

    Verify that your local environment is up-to-date with its remote path:

    + +
     docker exec lakefs lakectl local status my_local_dir
    +
    +

    You should get a confirmation message like this showing that there is no difference between your local environment and the lakeFS remote:

    + +
    diff 'local:///home/lakefs/my_local_dir' <--> 'lakefs://quickstart/8614575b5488b47a094163bd17a12ed0b82e0bcbfd22ed1856151c671f1faa53/images/'...
    +diff 'lakefs://quickstart/8614575b5488b47a094163bd17a12ed0b82e0bcbfd22ed1856151c671f1faa53/images/' <--> 'lakefs://quickstart/my-experiment/images/'...
    +
    +No diff found.
    +
    +
  8. +
+

+ + + Making Changes to Data Locally + + +

+ + +
    +
  1. +

    Download a new image of an Axolotl and add it to the dataset cloned into my_local_dir:

    + +
     curl -L https://go.lakefs.io/43ENDyS > axolotl.png
    +   
    + docker cp axolotl.png lakefs:/home/lakefs/my_local_dir
    +
    +
  2. +
  3. Clean the dataset by removing images larger than 225 KB: +
     docker exec lakefs find my_local_dir -type f -size +225k -delete
    +
    +
  4. +
  5. Check the status of your local changes compared to the lakeFS remote path: +
     docker exec lakefs lakectl local status my_local_dir
    +
    + +

    You should get a confirmation message like this, showing the modifications you made locally:

    +
     diff 'local:///home/lakefs/my_local_dir' <--> 'lakefs://quickstart/8614575b5488b47a094163bd17a12ed0b82e0bcbfd22ed1856151c671f1faa53/images/'...
    + diff 'lakefs://quickstart/8614575b5488b47a094163bd17a12ed0b82e0bcbfd22ed1856151c671f1faa53/images/' <--> 'lakefs://quickstart/my-experiment/images/'...
    +
    + ╔════════╦══════════╦═════════════════════╗
    + ║ SOURCE ║ CHANGE   ║ PATH                ║
    + ╠════════╬══════════╬═════════════════════╣
    + ║ local  ║ modified ║ axolotl.png         ║
    + ║ local  ║ removed  ║ duckdb-main-02.png  ║
    + ║ local  ║ removed  ║ empty-repo-list.png ║
    + ║ local  ║ removed  ║ repo-contents.png   ║
    + ╚════════╩══════════╩═════════════════════╝
    +
    +
  6. +
+

+ + + Pushing Local Changes to lakeFS + + +

+ + +

Once we are done with editing the image dataset in our local environment, we will push our changes to the lakeFS remote so that +the improved dataset is shared and versioned.

+ +
    +
  1. +

    Commit your local changes to lakeFS:

    + +
     docker exec lakefs lakectl local commit -m 'Deleted images larger than 225KB in size and changed the Axolotl image' my_local_dir
    +
    + +

    In your branch, you should see the commit including your local changes:

    + +

    A lakectl local commit to lakeFS

    +
  2. +
  3. +

    Compare my-experiment branch to the main branch to visualize your changes:

    + +

    A comparison between a branch that includes local changes to the main branch

    +
  4. +
+

+ + + Bonus Challenge + + +

+ + +

And so with that, this quickstart for lakeFS draws to a close. If you’re simply having too much fun to stop then here’s an exercise for you.

+ +

Implement the requirement from the beginning of this quickstart correctly, such that you write denmark-lakes.parquet in the respective branch and successfully merge it back into main. Look up how to list the contents of the main branch and verify that it looks like this:

+ +
object          2023-03-21 17:33:51 +0000 UTC    20.9 kB         denmark-lakes.parquet
+object          2023-03-21 14:45:38 +0000 UTC    916.4 kB        lakes.parquet
+
+

+ + + Finishing Up + + +

+ + +

Once you’ve finished the quickstart, shut down your local environment with the following command:

+ +
docker stop lakefs
+
+ + + + + + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/redirects.json b/v1.46/redirects.json new file mode 100644 index 000000000..943ed34c0 --- /dev/null +++ b/v1.46/redirects.json @@ -0,0 +1 @@ +{"/reference/access-control-list.html":"/v1.46/security/access-control-lists.html","/reference/access-control-lists.html":"/v1.46/security/access-control-lists.html","/hooks/airflow.html":"/v1.46/howto/hooks/airflow.html","/using/airflow.html":"/v1.46/integrations/airflow.html","/architecture/index.html":"/v1.46/understand/architecture.html","/architecture/overview.html":"/v1.46/understand/architecture.html","/using/athena.html":"/v1.46/integrations/athena.html","/audit.html":"/v1.46/reference/auditing.html","/reference/audit.html":"/v1.46/reference/auditing.html","/cloud/auditing.html":"/v1.46/reference/auditing.html","/reference/authentication.html":"/v1.46/security/authentication.html","/deploying-aws/index.html":"/v1.46/howto/deploy/aws.html","/deploying-aws/install.html":"/v1.46/howto/deploy/aws.html","/deploying-aws/db.html":"/v1.46/howto/deploy/aws.html","/deploying-aws/lb_dns.html":"/v1.46/howto/deploy/aws.html","/setup/storage/s3.html":"/v1.46/howto/deploy/aws.html","/deploy/aws.html":"/v1.46/howto/deploy/aws.html","/using/aws_cli.html":"/v1.46/integrations/aws_cli.html","/setup/storage/blob.html":"/v1.46/howto/deploy/azure.html","/deploy/azure.html":"/v1.46/howto/deploy/azure.html","/callouts.html":"/v1.46/project/docs/callouts.html","/data_lifecycle_management/ci.html":"/v1.46/understand/data_lifecycle_management/ci.html","/use_cases/cicd_for_data.html":"/v1.46/understand/use_cases/cicd_for_data.html","/usecases/ci.html":"/v1.46/understand/use_cases/cicd_for_data.html","/usecases/cd.html":"/v1.46/understand/use_cases/cicd_for_data.html","/reference/commands.html":"/v1.46/reference/cli.html","/quickstart/lakefs_cli.html":"/v1.46/reference/cli.html","/contributing.html":"/v1.46/project/contributing.html","/integrations/distcp.html":"/v1.46/howto/copying.html","/integrations/rclone.html":"/v1.46/howto/copying.html","/data_lifecycle_management/data-devenv.html":"/v1.46/understand/data_lifecycle_management/data-devenv.html","/usecases/data-devenv.html":"/v1.46/understand/data_lifecycle_management/data-devenv.html","/using/dremio.html":"/v1.46/integrations/dremio.html","/use_cases/etl_testing.html":"/v1.46/understand/use_cases/etl_testing.html","/use_cases/iso_env.html":"/v1.46/understand/use_cases/etl_testing.html","/quickstart/iso_env.html":"/v1.46/understand/use_cases/etl_testing.html","/reference/export.html":"/v1.46/howto/export.html","/reference/external-principals-aws.html":"/v1.46/security/external-principals-aws.html","/faq.html":"/v1.46/understand/faq.html","/howto/garbage-collection/index.html":"/v1.46/howto/garbage-collection/gc.html","/howto/garbage-collection/committed.html":"/v1.46/howto/garbage-collection/gc.html","/howto/garbage-collection/uncommitted.html":"/v1.46/howto/garbage-collection/gc.html","/howto/garbage-collection/internals.html":"/v1.46/howto/garbage-collection/gc.html","/reference/garbage-collection.html":"/v1.46/howto/garbage-collection/gc.html","/howto/garbage-collection-index.html":"/v1.46/howto/garbage-collection/gc.html","/howto/garbage-collection.html":"/v1.46/howto/garbage-collection/gc.html","/reference/retention.html":"/v1.46/howto/garbage-collection/gc.html","/setup/storage/gcs.html":"/v1.46/howto/deploy/gcp.html","/deploy/gcp.html":"/v1.46/howto/deploy/gcp.html","/reference/glossary.html":"/v1.46/understand/glossary.html","/glossary.html":"/v1.46/understand/glossary.html","/using/glue_hive_metastore.html":"/v1.46/integrations/glue_hive_metastore.html","/using/glue_metastore.html":"/v1.46/integrations/glue_metastore.html","/using/hive.html":"/v1.46/integrations/hive.html","/setup/import.html":"/v1.46/howto/import.html","/use_cases/":"/v1.46/understand/use_cases/","/use_cases/index.html":"/v1.46/understand/use_cases/","/branching/recommendations.html":"/v1.46/understand/data_lifecycle_management/","/using_lakefs.html":"/v1.46/understand/data_lifecycle_management/","/setup/":"/v1.46/howto/deploy/","/setup/storage/index.html":"/v1.46/howto/deploy/","/setup/create-repo.html":"/v1.46/howto/deploy/","/deploy/":"/v1.46/howto/deploy/","/deploy/index.html":"/v1.46/howto/deploy/","/reference/hooks.html":"/v1.46/howto/hooks/","/hooks.html":"/v1.46/howto/hooks/","/hooks/overview.html":"/v1.46/howto/hooks/","/hooks/index.html":"/v1.46/howto/hooks/","/hooks/":"/v1.46/howto/hooks/","/setup/hooks.html":"/v1.46/howto/hooks/","/slack/":"https://lakefs.io/slack","/using":"/v1.46/integrations/","/quickstart.html":"/v1.46/quickstart/","/quickstart/installing.html":"/v1.46/quickstart/","/quickstart/try.html":"/v1.46/quickstart/","/quickstart/add_data.html":"/v1.46/quickstart/","/quickstart/more_quickstart_options.html":"/v1.46/quickstart/","/quickstart/repository.html":"/v1.46/quickstart/","/quickstart/run.html":"/v1.46/quickstart/","/quickstart/first_commit.html":"/v1.46/quickstart/","/README.html":"/v1.46/project/docs/","/understand/licensing.html":"/v1.46/project/","/licensing.html":"/v1.46/project/","/commitment.html":"/v1.46/project/","/roadmap.html":"/v1.46/project/","/understand/roadmap.html":"/v1.46/project/","/downloads.html":"/v1.46/","/using/kakfa.html":"/v1.46/integrations/kafka.html","/integrations/kakfa.html":"/v1.46/integrations/kafka.html","/understand/kv-in-a-nutshell.html":"/v1.46/understand/how/kv.html","/hooks/lua.html":"/v1.46/howto/hooks/lua.html","/cloud/managed-gc.html":"/v1.46/howto/garbage-collection/managed-gc.html","/reference/merge.html":"/v1.46/understand/how/merge.html","/understand/merge.html":"/v1.46/understand/how/merge.html","/deploying-aws/offboarding.html":"/v1.46/howto/migrate-away.html","/reference/offboarding.html":"/v1.46/howto/migrate-away.html","/reference/object-model.html":"/v1.46/understand/model.html","/understand/branching-model.html":"/v1.46/understand/model.html","/understand/object-model.html":"/v1.46/understand/model.html","/deploying-aws/monitor.md":"/v1.46/reference/monitor.html","/deploy/k8s.html":"/v1.46/howto/deploy/onprem.html","/deploy/docker.html":"/v1.46/howto/deploy/onprem.html","/integrations/minio.html":"/v1.46/howto/deploy/onprem.html","/using/minio.html":"/v1.46/howto/deploy/onprem.html","/deploy/onprem.html":"/v1.46/howto/deploy/onprem.html","/deploying/install.html":"/v1.46/howto/deploy/onprem.html","/reference/presigned-url.html":"/v1.46/security/presigned-url.html","/integrations/presto.html":"/v1.46/integrations/presto_trino.html","/using/presto.html":"/v1.46/integrations/presto_trino.html","/cloud/private-link.html":"/v1.46/howto/private-link.html","/data_lifecycle_management/production.html":"/v1.46/understand/data_lifecycle_management/production.html","/usecases/production.html":"/v1.46/understand/data_lifecycle_management/production.html","/reference/protected_branches.html":"/v1.46/howto/protect-branches.html","/reference/pull_requests.html":"/v1.46/howto/pull-requests.html","/using/python.html":"/v1.46/integrations/python.html","/using/boto.html":"/v1.46/integrations/python.html","/integrations/boto.html":"/v1.46/integrations/python.html","/reference/authorization.html":"/v1.46/security/rbac.html","/reference/rbac.html":"/v1.46/security/rbac.html","/reference/remote-authenticator.html":"/v1.46/security/sts-login.html","/use_cases/reproducibility.html":"/v1.46/understand/use_cases/reproducibility.html","/use_cases/rollback.html":"/v1.46/understand/use_cases/rollback.html","/using/sagemaker.html":"/v1.46/integrations/sagemaker.html","/cloud/scim.html":"/v1.46/howto/scim.html","/architecture/sizing-guide.html":"/v1.46/howto/sizing-guide.html","/understand/sizing-guide.html":"/v1.46/howto/sizing-guide.html","/integrations/emr.html":"/v1.46/integrations/spark.html","/integrations/glue_etl.html":"/v1.46/integrations/spark.html","/using/databricks.html":"/v1.46/integrations/spark.html","/using/emr.html":"/v1.46/integrations/spark.html","/using/glue_etl.html":"/v1.46/integrations/spark.html","/using/spark.html":"/v1.46/integrations/spark.html","/cloud/sso.html":"/v1.46/security/sso.html","/enterprise/sso.html":"/v1.46/security/sso.html","/cloud/standalone-gc.html":"/v1.46/howto/garbage-collection/standalone-gc.html","/integrations/unity_catalog":"/v1.46/integrations/unity-catalog.html","/cloud/unity-delta-sharing.html":"/v1.46/howto/unity-delta-sharing.html","/cloud/unity-delta-sharing-m0-users":"/v1.46/howto/unity-delta-sharing.html","/deploying-aws/upgrade.html":"/v1.46/howto/deploy/upgrade.html","/reference/upgrade.html":"/v1.46/howto/deploy/upgrade.html","/howto/upgrade.html":"/v1.46/howto/deploy/upgrade.html","/understand/architecture/data-model.html":"/v1.46/understand/how/versioning-internals.html","/understand/understand/data-model.html":"/v1.46/understand/how/versioning-internals.html","/understand/data-model.html":"/v1.46/understand/how/versioning-internals.html","/understand/versioning-internals.html":"/v1.46/understand/how/versioning-internals.html","/hooks/webhooks.html":"/v1.46/howto/hooks/webhooks.html"} \ No newline at end of file diff --git a/v1.46/reference/access-control-list.html b/v1.46/reference/access-control-list.html new file mode 100644 index 000000000..c010c2f92 --- /dev/null +++ b/v1.46/reference/access-control-list.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/reference/access-control-lists.html b/v1.46/reference/access-control-lists.html new file mode 100644 index 000000000..c010c2f92 --- /dev/null +++ b/v1.46/reference/access-control-lists.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/reference/api.html b/v1.46/reference/api.html new file mode 100644 index 000000000..26a07ec9a --- /dev/null +++ b/v1.46/reference/api.html @@ -0,0 +1,714 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +lakeFS API | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/reference/audit.html b/v1.46/reference/audit.html new file mode 100644 index 000000000..0022ee13a --- /dev/null +++ b/v1.46/reference/audit.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/reference/auditing.html b/v1.46/reference/auditing.html new file mode 100644 index 000000000..f429d1ea1 --- /dev/null +++ b/v1.46/reference/auditing.html @@ -0,0 +1,1058 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Auditing | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Auditing + + +

+ +

lakeFS Cloud

+ +

lakeFS Enterprise

+ +
+

Auditing is only available for lakeFS Cloud and lakeFS Enterprise.

+
+ +

The lakeFS audit log allows you to view all relevant user action information in a clear and organized table, including when the action was performed, by whom, and what it was they did.

+ +

This can be useful for several purposes, including:

+ +
    +
  1. +

    Compliance - Audit logs can be used to show what data users accessed, as well as any changes they made to user management.

    +
  2. +
  3. +

    Troubleshooting - If something changes on your underlying object store that you weren’t expecting, such as a big file suddenly breaking into thousands of smaller files, you can use the audit log to find out what action led to this change.

    +
  4. +
+

+ + + Setting up access to Audit Logs on AWS S3 + + +

+ + +

The access to the Audit Logs is done via AWS S3 Access Point.

+ +

There are different ways to interact with an access point (see Using access points in AWS).

+ +

The initial setup:

+ +
    +
  1. Take note of the IAM Role ARN that will be used to access the data. This should be the user or role used by e.g. Athena.
  2. +
  3. Reach out to customer success and provide this ARN. Once receiving the ARN role, an access point will be created and you should get in response the following details: +
      +
    1. S3 Bucket (e.g. arn:aws:s3:::lakefs-audit-logs-us-east-1-production)
    2. +
    3. S3 URI to an access point (e.g. s3://arn:aws:s3:us-east-1:<treeverse-id>:accesspoint/lakefs-logs-<organization>)
    4. +
    5. Access Point alias. You can use this alias instead of the bucket name or Access Point ARN to access data through the Access Point. (e.g. lakefs-logs-<generated>-s3alias)
    6. +
    +
  4. +
  5. Update your IAM Role policy and trust policy if required
  6. +
+ +

A minimal example for IAM policy with 2 lakeFS installations in 2 regions (us-east-1, us-west-2):

+ +
{
+    "Version": "2012-10-17",
+    "Statement": [
+        {
+            "Effect": "Allow",
+            "Action": [
+                "s3:ListBucket"
+            ],
+            "Resource": [
+                "arn:aws:s3:::lakefs-audit-logs-us-east-1-production",
+                "arn:aws:s3:::lakefs-audit-logs-us-east-1-production/*",
+                "arn:aws:s3:::lakefs-logs-<generated>-s3alias/*",
+                "arn:aws:s3:us-east-1:<treeverse-id>:accesspoint/lakefs-logs-<organization>",
+                "arn:aws:s3:us-east-1:<treeverse-id>:accesspoint/lakefs-logs-<organization>/*"
+            ],
+            "Condition": {
+                "StringLike": {
+                    "s3:prefix": [
+                        "etl/v1/data/region=<region_a>/organization=org-<organization>/*",
+                        "etl/v1/data/region=<region_b>/organization=org-<organization>/*"
+                    ]
+                }
+            }
+        },
+        {
+            "Effect": "Allow",
+            "Action": [
+                "s3:GetObject",
+                "s3:GetObjectVersion"
+            ],
+            "Resource": [
+                "arn:aws:s3:::lakefs-audit-logs-us-east-1-production",
+                "arn:aws:s3:::lakefs-audit-logs-us-east-1-production/etl/v1/data/region=<region_a>/organization=org-<organization>/*",
+                "arn:aws:s3:::lakefs-audit-logs-us-east-1-production/etl/v1/data/region=<region_b>/organization=org-<organization>/*",
+                "arn:aws:s3:::lakefs-logs-<generated>-s3alias/*",
+                "arn:aws:s3:us-east-1:<treeverse-id>:accesspoint/lakefs-logs-<organization>/object/etl/v1/data/region=<region_a>/organization=org-<organization>/*",
+                "arn:aws:s3:us-east-1:<treeverse-id>:accesspoint/lakefs-logs-<organization>/object/etl/v1/data/region=<region_b>/organization=org-<organization>/*"
+            ]
+        },
+        {
+            "Action": [
+                "kms:Decrypt"
+            ],
+            "Resource": [
+                "arn:aws:kms:us-east-1:<treeverse-id>:key/<encryption-key-id>"
+            ],
+            "Effect": "Allow"
+        }
+    ]
+}
+
+ +

Trust Policy example that allows anyone in your account to assume the role above:

+ +
{
+    "Version": "2012-10-17",
+    "Statement": [
+        {
+            "Effect": "Allow",
+            "Principal": {
+                "AWS": "arn:aws:iam::<YOUR_ACCOUNT_ID>:root"
+            },
+            "Action": "sts:AssumeRole",
+            "Condition": {}
+        }
+    ]
+}
+
+ +

Authentication is done by assuming an IAM Role:

+ +
# Assume role use AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN:
+aws sts assume-role --role-arn arn:aws:iam::<your-aws-account>:role/<reader-role> --role-session-name <name> 
+
+# verify role assumed
+aws sts get-caller-identity 
+
+# list objects (can be used with --recursive) with access point ARN
+aws s3 ls arn:aws:s3:us-east-1:<treeverse-id>:accesspoint/lakefs-logs-<organization>/etl/v1/data/region=<region>/organization=org-<organization>/
+
+# get object locally via s3 access point alias 
+aws s3api get-object --bucket lakefs-logs-<generated>-s3alias --key etl/v1/data/region=<region>/organization=org-<organization>/year=<YY>/month=<MM>/day=<DD>/hour=<HH>/<file>-snappy.parquet sample.parquet 
+
+

+ + + Data layout + + +

+ + +
+

The bucket name is important when creating the IAM policy but, the Access Point ARN and Alias will be the ones that are used to access the data (i.e AWS CLI, Spark etc).

+
+ +

Bucket Name: lakefs-audit-logs-us-east-1-production

+ +

Root prefix: etl/v1/data/region=<region>/organization=org-<organization-name>/

+ +

Files Path pattern: All the audit logs files are in parquet format and their pattern is: etl/v1/data/region=<region>/organization=org-<organization-name>/year=<YY>/month=<MM>/day=<DD>/hour=<HH>/*-snappy.parquet

+

+ + + Path Values + + +

+ + +

region: lakeFS installation region (e.g the region in lakeFS URL: https://..lakefscloud.io/)

+ +

organization: Found in the lakeFS URL https://<organization-name>.<region>.lakefscloud.io/. The value in the S3 path must be prefixed with org-<organization-name>

+

+ + + Partitions + + +

+ + +
    +
  • year
  • +
  • month
  • +
  • day
  • +
  • hour
  • +
+

+ + + Example + + +

+ + +

As an example paths for “Acme” organization with 2 lakeFS installations:

+ +
# ACME in us-east-1 
+etl/v1/data/region=us-east-1/organization=org-acme/year=2024/month=02/day=12/hour=13/log_abc-snappy.parquet
+
+# ACME in us-west-2 
+etl/v1/data/region=us-west-2/organization=org-acme/year=2024/month=02/day=12/hour=13/log_xyz-snappy.parquet
+
+

+ + + Schema + + +

+ + +

The files are in parquet format and can be accessed directly from Spark or any client that can read parquet files. +Using Spark’s printSchema() we can inspect the values, that’s the latest schema with comments on important columns:

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
columntypedescription
data_userstringthe internal user ID for the user making the request. if using an external IdP (i.e SSO, Microsoft Entra, etc) it will be the UID represented by the IdP. (see below an example how to extract the info of external IDs in python)
data_repositorystringthe repository ID relevant for this request. Currently only returned for s3_gateway requests
data_refstringthe reference ID (tag, branch, …) relevant for this request. Currently only returned for s3_gateway requests
data_status_codeintHTTP status code returned for this request
data_service_namestringService name for the request. Could be either “rest_api” or “s3_gateway”
data_request_idstringUnique ID representing this request
data_pathstringHTTP path used for this request
data_operation_idstringLogical operation ID for this request. E.g. list_objects, delete_repository, …
data_methodstringHTTP method for the request
data_timestringdatetime representing the start time of this request, in ISO 8601 format
+

+ + + IdP users: map user IDs from audit logs to an email in lakeFS + + +

+ + +

The data_user column in each log represents the user id that performed it.

+ +
    +
  • It might be empty in cases where authentication is not required (e.g login attempt).
  • +
  • If the user is an API user created internally in lakeFS that id is also the name it was given.
  • +
  • data_user might contain an ID to an external IdP (i.e. SSO system), usually it is not human friendly, we can correlate the ID to a lakeFS email used, see an example using the Python lakefs-sdk.
  • +
+ +
import lakefs_sdk
+
+# Configure HTTP basic authorization: basic_auth
+configuration = lakefs_sdk.Configuration(
+    host = "https://<org>.<region>.lakefscloud.io/api/v1",
+    username = 'AKIA...',
+    password = '...'
+)
+
+# Print all user email and uid in lakeFS 
+# the uid is equal to the user id in the audit logs.
+with lakefs_sdk.ApiClient(configuration) as api_client:
+    auth_api = lakefs_sdk.AuthApi(api_client)
+    has_more = True
+    next_offset = ''
+    page_size = 100 
+    while has_more: 
+        resp = auth_api.list_users(prefix='', after=next_offset, amount=page_size)
+        for u in resp.results:
+            email = u.email
+            uid = u.id
+            print(f'Email: {email}, UID: {uid}')
+
+        has_more = resp.pagination.has_more 
+        next_offset = resp.pagination.next_offset
+
+

+ + + Example: Glue Notebook with Spark + + +

+ + +
from awsglue.transforms import *
+from pyspark.context import SparkContext
+from awsglue.context import GlueContext
+from awsglue.job import Job
+
+sc = SparkContext.getOrCreate()
+glueContext = GlueContext(sc)
+spark = glueContext.spark_session
+job = Job(glueContext)
+
+# connect to s3 access point 
+alias = 's3://<bucket-alias-name>'
+s3_dyf = glueContext.create_dynamic_frame.from_options(
+    format_options={},
+    connection_type="s3",
+    format="parquet",
+    connection_options={
+        "paths": [alias + "/etl/v1/data/region=<region>/organization=org-<org>/year=<YY>/month=<MM>/day=<DD>/hour=<HH>/"],
+        "recurse": True,
+    },
+    transformation_ctx="sample-ctx",
+)
+
+s3_dyf.show()
+s3_dyf.printSchema()
+
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/reference/authentication.html b/v1.46/reference/authentication.html new file mode 100644 index 000000000..c5772a629 --- /dev/null +++ b/v1.46/reference/authentication.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/reference/authorization.html b/v1.46/reference/authorization.html new file mode 100644 index 000000000..3fdf4ca19 --- /dev/null +++ b/v1.46/reference/authorization.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/reference/cli.html b/v1.46/reference/cli.html new file mode 100644 index 000000000..c84e7ecea --- /dev/null +++ b/v1.46/reference/cli.html @@ -0,0 +1,5714 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +lakectl (lakeFS command-line tool) | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + lakectl (lakeFS command-line tool) + + +

+ + + +

+ + + Installing lakectl locally + + +

+ + +

lakectl is available for Linux, macOS, and Windows. You can also run it using Docker.

+ +

Download lakectl

+ +

Or using Homebrew for Linux/macOS:

+ +
brew tap treeverse/lakefs
+brew install lakefs
+
+

+ + + Configuring credentials and API endpoint + + +

+ + +

Once you’ve installed the lakectl command, run:

+ +
lakectl config
+# output:
+# Config file /home/janedoe/.lakectl.yaml will be used
+# Access key ID: AKIAIOSFODNN7EXAMPLE
+# Secret access key: ****************************************
+# Server endpoint URL: http://localhost:8000
+
+ +

This will setup a $HOME/.lakectl.yaml file with the credentials and API endpoint you’ve supplied. +When setting up a new installation and creating initial credentials (see Quickstart), the UI +will provide a link to download a preconfigured configuration file for you.

+ +

lakectl configuration items can each be controlled by an environment variable. The variable name will have a prefix of +LAKECTL_, followed by the name of the configuration, replacing every ‘.’ with a ‘_’. Example: LAKECTL_SERVER_ENDPOINT_URL +controls server.endpoint_url.

+

+ + + Running lakectl from Docker + + +

+ + +

If you’d rather run lakectl from a Docker container you can do so by passing configuration elements as environment variables. +Here is an example:

+ +
docker run --rm --pull always \
+          -e LAKECTL_CREDENTIALS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE \
+          -e LAKECTL_CREDENTIALS_SECRET_ACCESS_KEY=xxxxx
+          -e LAKECTL_SERVER_ENDPOINT_URL=https://host.us-east-2.lakefscloud.io/ \
+          --entrypoint lakectl treeverse/lakefs \
+          repo list
+
+ +

Bear in mind that if you are running lakeFS itself locally you will need to account for this in your networking configuration of +the Docker container. That is to say, localhost to a Docker container is itself, not the host machine on which it is running.

+

+ + + Command Reference + + +

+ +

+ + + lakectl + + +

+ + +

A cli tool to explore manage and work with lakeFS

+

+ + + Synopsis + + +

+ + +

lakectl is a CLI tool allowing exploration and manipulation of a lakeFS environment

+ +
lakectl [flags]
+
+

+ + + Options + + +

+ + +
      --base-uri string      base URI used for lakeFS address parse
+  -c, --config string        config file (default is $HOME/.lakectl.yaml)
+  -h, --help                 help for lakectl
+      --log-format string    set logging output format
+      --log-level string     set logging level (default "none")
+      --log-output strings   set logging output(s)
+      --no-color             don't use fancy output colors (default value can be set by NO_COLOR environment variable)
+      --verbose              run in verbose mode
+  -v, --version              version for lakectl
+
+ +

note: The base-uri option can be controlled with the LAKECTL_BASE_URI environment variable.

+

+ + + Example usage + + +

+ + +
$ export LAKECTL_BASE_URI="lakefs://my-repo/my-branch"
+# Once set, use relative lakefs uri's:
+$ lakectl fs ls /path
+
+

+ + + lakectl actions + + +

+ + +

Manage Actions commands

+

+ + + Options + + +

+ + +
  -h, --help   help for actions
+
+

+ + + lakectl actions help + + +

+ + +

Help about any command

+

+ + + Synopsis + + +

+ + +

Help provides help for any command in the application. +Simply type actions help [path to command] for full details.

+ +
lakectl actions help [command] [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for help
+
+

+ + + lakectl actions runs + + +

+ + +

Explore runs information

+

+ + + Options + + +

+ + +
  -h, --help   help for runs
+
+

+ + + lakectl actions runs describe + + +

+ + +

Describe run results

+

+ + + Synopsis + + +

+ + +

Show information about the run and all the hooks that were executed as part of the run

+ +
lakectl actions runs describe <repository URI> <run_id> [flags]
+
+

+ + + Examples + + +

+ + +
lakectl actions runs describe lakefs://my-repo 20230719152411arS0z6I
+
+

+ + + Options + + +

+ + +
      --after string   show results after this value (used for pagination)
+      --amount int     number of results to return. By default, all results are returned.
+  -h, --help           help for describe
+
+

+ + + lakectl actions runs help + + +

+ + +

Help about any command

+

+ + + Synopsis + + +

+ + +

Help provides help for any command in the application. +Simply type runs help [path to command] for full details.

+ +
lakectl actions runs help [command] [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for help
+
+

+ + + lakectl actions runs list + + +

+ + +

List runs

+

+ + + Synopsis + + +

+ + +

List all runs on a repository optional filter by branch or commit

+ +
lakectl actions runs list <repository URI> [--branch <branch>] [--commit <commit_id>] [flags]
+
+

+ + + Examples + + +

+ + +
lakectl actions runs list lakefs://my-repo --branch my-branch --commit 600dc0ffee
+
+

+ + + Options + + +

+ + +
      --after string    show results after this value (used for pagination)
+      --amount int      number of results to return (default 100)
+      --branch string   show results for specific branch
+      --commit string   show results for specific commit ID
+  -h, --help            help for list
+
+

+ + + lakectl actions validate + + +

+ + +

Validate action file

+

+ + + Synopsis + + +

+ + +

Tries to parse the input action file as lakeFS action file

+ +
lakectl actions validate [flags]
+
+

+ + + Examples + + +

+ + +
lakectl actions validate path/to/my/file
+
+

+ + + Options + + +

+ + +
  -h, --help   help for validate
+
+

+ + + lakectl annotate + + +

+ + +

List entries under a given path, annotating each with the latest modifying commit

+ +
lakectl annotate <path URI> [flags]
+
+

+ + + Options + + +

+ + +
      --first-parent   follow only the first parent commit upon seeing a merge commit
+  -h, --help           help for annotate
+  -r, --recursive      recursively annotate all entries under a given path or prefix
+
+

+ + + lakectl auth + + +

+ + +

Manage authentication and authorization

+

+ + + Synopsis + + +

+ + +

Manage authentication and authorization including users, groups and ACLs +This functionality is supported with an external auth service only.

+

+ + + Options + + +

+ + +
  -h, --help   help for auth
+
+

+ + + lakectl auth groups + + +

+ + +

Manage groups

+

+ + + Options + + +

+ + +
  -h, --help   help for groups
+
+

+ + + lakectl auth groups acl + + +

+ + +

Manage ACLs

+

+ + + Synopsis + + +

+ + +

manage ACLs of groups

+

+ + + Options + + +

+ + +
  -h, --help   help for acl
+
+

+ + + lakectl auth groups acl get + + +

+ + +

Get ACL of group

+ +
lakectl auth groups acl get [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help        help for get
+      --id string   Group identifier
+
+

+ + + lakectl auth groups acl help + + +

+ + +

Help about any command

+

+ + + Synopsis + + +

+ + +

Help provides help for any command in the application. +Simply type acl help [path to command] for full details.

+ +
lakectl auth groups acl help [command] [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for help
+
+

+ + + lakectl auth groups acl set + + +

+ + +

Set ACL of group

+

+ + + Synopsis + + +

+ + +

Set ACL of group. permission will be attached to all repositories.

+ +
lakectl auth groups acl set [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help                help for set
+      --id string           Group identifier
+      --permission string   Permission, typically one of "Read", "Write", "Super" or "Admin"
+
+

+ + + lakectl auth groups create + + +

+ + +

Create a group

+ +
lakectl auth groups create [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help        help for create
+      --id string   Group identifier
+
+

+ + + lakectl auth groups delete + + +

+ + +

Delete a group

+ +
lakectl auth groups delete [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help        help for delete
+      --id string   Group identifier
+
+

+ + + lakectl auth groups help + + +

+ + +

Help about any command

+

+ + + Synopsis + + +

+ + +

Help provides help for any command in the application. +Simply type groups help [path to command] for full details.

+ +
lakectl auth groups help [command] [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for help
+
+

+ + + lakectl auth groups list + + +

+ + +

List groups

+ +
lakectl auth groups list [flags]
+
+

+ + + Options + + +

+ + +
      --amount int     how many results to return (default 100)
+      --after string   show results after this value (used for pagination)
+  -h, --help           help for list
+
+

+ + + lakectl auth groups members + + +

+ + +

Manage group user memberships

+

+ + + Options + + +

+ + +
  -h, --help   help for members
+
+

+ + + lakectl auth groups members add + + +

+ + +

Add a user to a group

+ +
lakectl auth groups members add [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help          help for add
+      --id string     Group identifier
+      --user string   Username (email for password-based users, default: current user)
+
+

+ + + lakectl auth groups members help + + +

+ + +

Help about any command

+

+ + + Synopsis + + +

+ + +

Help provides help for any command in the application. +Simply type members help [path to command] for full details.

+ +
lakectl auth groups members help [command] [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for help
+
+

+ + + lakectl auth groups members list + + +

+ + +

List users in a group

+ +
lakectl auth groups members list [flags]
+
+

+ + + Options + + +

+ + +
      --id string      Group identifier
+      --amount int     how many results to return (default 100)
+      --after string   show results after this value (used for pagination)
+  -h, --help           help for list
+
+

+ + + lakectl auth groups members remove + + +

+ + +

Remove a user from a group

+ +
lakectl auth groups members remove [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help          help for remove
+      --id string     Group identifier
+      --user string   Username (email for password-based users, default: current user)
+
+

+ + + lakectl auth groups policies + + +

+ + +

Manage group policies

+

+ + + Synopsis + + +

+ + +

Manage group policies. Requires an external authorization server with matching support.

+

+ + + Options + + +

+ + +
  -h, --help   help for policies
+
+

+ + + lakectl auth groups policies attach + + +

+ + +

Attach a policy to a group

+ +
lakectl auth groups policies attach [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help            help for attach
+      --id string       User identifier
+      --policy string   Policy identifier
+
+

+ + + lakectl auth groups policies detach + + +

+ + +

Detach a policy from a group

+ +
lakectl auth groups policies detach [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help            help for detach
+      --id string       User identifier
+      --policy string   Policy identifier
+
+

+ + + lakectl auth groups policies help + + +

+ + +

Help about any command

+

+ + + Synopsis + + +

+ + +

Help provides help for any command in the application. +Simply type policies help [path to command] for full details.

+ +
lakectl auth groups policies help [command] [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for help
+
+

+ + + lakectl auth groups policies list + + +

+ + +

List policies for the given group

+ +
lakectl auth groups policies list [flags]
+
+

+ + + Options + + +

+ + +
      --id string      Group identifier
+      --amount int     how many results to return (default 100)
+      --after string   show results after this value (used for pagination)
+  -h, --help           help for list
+
+

+ + + lakectl auth help + + +

+ + +

Help about any command

+

+ + + Synopsis + + +

+ + +

Help provides help for any command in the application. +Simply type auth help [path to command] for full details.

+ +
lakectl auth help [command] [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for help
+
+

+ + + lakectl auth policies + + +

+ + +

Manage policies

+

+ + + Options + + +

+ + +
  -h, --help   help for policies
+
+

+ + + lakectl auth policies create + + +

+ + +

Create a policy

+ +
lakectl auth policies create [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help                        help for create
+      --id string                   Policy identifier
+      --statement-document string   JSON statement document path (or "-" for stdin)
+
+

+ + + lakectl auth policies delete + + +

+ + +

Delete a policy

+ +
lakectl auth policies delete [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help        help for delete
+      --id string   Policy identifier
+
+

+ + + lakectl auth policies help + + +

+ + +

Help about any command

+

+ + + Synopsis + + +

+ + +

Help provides help for any command in the application. +Simply type policies help [path to command] for full details.

+ +
lakectl auth policies help [command] [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for help
+
+

+ + + lakectl auth policies list + + +

+ + +

List policies

+ +
lakectl auth policies list [flags]
+
+

+ + + Options + + +

+ + +
      --amount int     how many results to return (default 100)
+      --after string   show results after this value (used for pagination)
+  -h, --help           help for list
+
+

+ + + lakectl auth policies show + + +

+ + +

Show a policy

+ +
lakectl auth policies show [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help        help for show
+      --id string   Policy identifier
+
+

+ + + lakectl auth users + + +

+ + +

Manage users

+

+ + + Options + + +

+ + +
  -h, --help   help for users
+
+

+ + + lakectl auth users create + + +

+ + +

Create a user

+ +
lakectl auth users create [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help        help for create
+      --id string   Username
+
+

+ + + lakectl auth users credentials + + +

+ + +

Manage user credentials

+

+ + + Options + + +

+ + +
  -h, --help   help for credentials
+
+

+ + + lakectl auth users credentials create + + +

+ + +

Create user credentials

+ +
lakectl auth users credentials create [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help        help for create
+      --id string   Username (email for password-based users, default: current user)
+
+

+ + + lakectl auth users credentials delete + + +

+ + +

Delete user credentials

+ +
lakectl auth users credentials delete [flags]
+
+

+ + + Options + + +

+ + +
      --access-key-id string   Access key ID to delete
+  -h, --help                   help for delete
+      --id string              Username (email for password-based users, default: current user)
+
+

+ + + lakectl auth users credentials help + + +

+ + +

Help about any command

+

+ + + Synopsis + + +

+ + +

Help provides help for any command in the application. +Simply type credentials help [path to command] for full details.

+ +
lakectl auth users credentials help [command] [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for help
+
+

+ + + lakectl auth users credentials list + + +

+ + +

List user credentials

+ +
lakectl auth users credentials list [flags]
+
+

+ + + Options + + +

+ + +
      --id string      Username (email for password-based users, default: current user)
+      --amount int     how many results to return (default 100)
+      --after string   show results after this value (used for pagination)
+  -h, --help           help for list
+
+

+ + + lakectl auth users delete + + +

+ + +

Delete a user

+ +
lakectl auth users delete [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help        help for delete
+      --id string   Username (email for password-based users)
+
+

+ + + lakectl auth users groups + + +

+ + +

Manage user groups

+

+ + + Options + + +

+ + +
  -h, --help   help for groups
+
+

+ + + lakectl auth users groups help + + +

+ + +

Help about any command

+

+ + + Synopsis + + +

+ + +

Help provides help for any command in the application. +Simply type groups help [path to command] for full details.

+ +
lakectl auth users groups help [command] [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for help
+
+

+ + + lakectl auth users groups list + + +

+ + +

List groups for the given user

+ +
lakectl auth users groups list [flags]
+
+

+ + + Options + + +

+ + +
      --id string      Username (email for password-based users)
+      --amount int     how many results to return (default 100)
+      --after string   show results after this value (used for pagination)
+  -h, --help           help for list
+
+

+ + + lakectl auth users help + + +

+ + +

Help about any command

+

+ + + Synopsis + + +

+ + +

Help provides help for any command in the application. +Simply type users help [path to command] for full details.

+ +
lakectl auth users help [command] [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for help
+
+

+ + + lakectl auth users list + + +

+ + +

List users

+ +
lakectl auth users list [flags]
+
+

+ + + Options + + +

+ + +
      --amount int     how many results to return (default 100)
+      --after string   show results after this value (used for pagination)
+  -h, --help           help for list
+
+

+ + + lakectl auth users policies + + +

+ + +

Manage user policies

+

+ + + Synopsis + + +

+ + +

Manage user policies. Requires an external authorization server with matching support.

+

+ + + Options + + +

+ + +
  -h, --help   help for policies
+
+

+ + + lakectl auth users policies attach + + +

+ + +

Attach a policy to a user

+ +
lakectl auth users policies attach [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help            help for attach
+      --id string       Username (email for password-based users)
+      --policy string   Policy identifier
+
+

+ + + lakectl auth users policies detach + + +

+ + +

Detach a policy from a user

+ +
lakectl auth users policies detach [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help            help for detach
+      --id string       Username (email for password-based users)
+      --policy string   Policy identifier
+
+

+ + + lakectl auth users policies help + + +

+ + +

Help about any command

+

+ + + Synopsis + + +

+ + +

Help provides help for any command in the application. +Simply type policies help [path to command] for full details.

+ +
lakectl auth users policies help [command] [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for help
+
+

+ + + lakectl auth users policies list + + +

+ + +

List policies for the given user

+ +
lakectl auth users policies list [flags]
+
+

+ + + Options + + +

+ + +
      --effective      List all distinct policies attached to the user, including by group memberships
+      --id string      Username (email for password-based users)
+      --amount int     how many results to return (default 100)
+      --after string   show results after this value (used for pagination)
+  -h, --help           help for list
+
+

+ + + lakectl branch + + +

+ + +

Create and manage branches within a repository

+

+ + + Synopsis + + +

+ + +

Create delete and list branches within a lakeFS repository

+

+ + + Options + + +

+ + +
  -h, --help   help for branch
+
+

+ + + lakectl branch create + + +

+ + +

Create a new branch in a repository

+ +
lakectl branch create <branch URI> -s <source ref URI> [flags]
+
+

+ + + Examples + + +

+ + +
lakectl branch create lakefs://example-repo/new-branch -s lakefs://example-repo/main
+
+

+ + + Options + + +

+ + +
  -h, --help            help for create
+  -s, --source string   source branch uri
+
+

+ + + lakectl branch delete + + +

+ + +

Delete a branch in a repository, along with its uncommitted changes (CAREFUL)

+ +
lakectl branch delete <branch URI> [flags]
+
+

+ + + Examples + + +

+ + +
lakectl branch delete lakefs://my-repo/my-branch
+
+

+ + + Options + + +

+ + +
  -h, --help   help for delete
+  -y, --yes    Automatically say yes to all confirmations
+
+

+ + + lakectl branch help + + +

+ + +

Help about any command

+

+ + + Synopsis + + +

+ + +

Help provides help for any command in the application. +Simply type branch help [path to command] for full details.

+ +
lakectl branch help [command] [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for help
+
+

+ + + lakectl branch list + + +

+ + +

List branches in a repository

+ +
lakectl branch list <repository URI> [flags]
+
+

+ + + Examples + + +

+ + +
lakectl branch list lakefs://my-repo
+
+

+ + + Options + + +

+ + +
      --after string   show results after this value (used for pagination)
+      --amount int     number of results to return (default 100)
+  -h, --help           help for list
+
+

+ + + lakectl branch reset + + +

+ + +

Reset uncommitted changes - all of them, or by path

+

+ + + Synopsis + + +

+ + +

reset changes. There are four different ways to reset changes:

+
    +
  1. reset all uncommitted changes - reset lakefs://myrepo/main
  2. +
  3. reset uncommitted changes under specific path - reset lakefs://myrepo/main –prefix path
  4. +
  5. reset uncommitted changes for specific object - reset lakefs://myrepo/main –object path
  6. +
+ +
lakectl branch reset <branch URI> [--prefix|--object] [flags]
+
+

+ + + Examples + + +

+ + +
lakectl branch reset lakefs://my-repo/my-branch
+
+

+ + + Options + + +

+ + +
  -h, --help            help for reset
+      --object string   path to object to be reset
+      --prefix string   prefix of the objects to be reset
+  -y, --yes             Automatically say yes to all confirmations
+
+

+ + + lakectl branch revert + + +

+ + +

Given a commit, record a new commit to reverse the effect of this commit

+

+ + + Synopsis + + +

+ + +

The commits will be reverted in left-to-right order

+ +
lakectl branch revert <branch URI> <commit ref to revert> [<more commits>...] [flags]
+
+

+ + + Examples + + +

+ + +
lakectl branch revert lakefs://example-repo/example-branch commitA
+	          Revert the changes done by commitA in example-branch
+		      branch revert lakefs://example-repo/example-branch HEAD~1 HEAD~2 HEAD~3
+		      Revert the changes done by the second last commit to the fourth last commit in example-branch
+
+

+ + + Options + + +

+ + +
      --allow-empty-commit   allow empty commit (revert without changes)
+  -h, --help                 help for revert
+  -m, --parent-number int    the parent number (starting from 1) of the mainline. The revert will reverse the change relative to the specified parent.
+  -y, --yes                  Automatically say yes to all confirmations
+
+

+ + + lakectl branch show + + +

+ + +

Show branch latest commit reference

+ +
lakectl branch show <branch URI> [flags]
+
+

+ + + Examples + + +

+ + +
lakectl branch show lakefs://my-repo/my-branch
+
+

+ + + Options + + +

+ + +
  -h, --help   help for show
+
+

+ + + lakectl branch-protect + + +

+ + +

Create and manage branch protection rules

+

+ + + Synopsis + + +

+ + +

Define branch protection rules to prevent direct changes. Changes to protected branches can only be done by merging from other branches.

+

+ + + Options + + +

+ + +
  -h, --help   help for branch-protect
+
+

+ + + lakectl branch-protect add + + +

+ + +

Add a branch protection rule

+

+ + + Synopsis + + +

+ + +

Add a branch protection rule for a given branch name pattern

+ +
lakectl branch-protect add <repository URI> <pattern> [flags]
+
+

+ + + Examples + + +

+ + +
lakectl branch-protect add lakefs://my-repo 'stable_*'
+
+

+ + + Options + + +

+ + +
  -h, --help   help for add
+
+

+ + + lakectl branch-protect delete + + +

+ + +

Delete a branch protection rule

+

+ + + Synopsis + + +

+ + +

Delete a branch protection rule for a given branch name pattern

+ +
lakectl branch-protect delete <repository URI> <pattern> [flags]
+
+

+ + + Examples + + +

+ + +
lakectl branch-protect delete lakefs://my-repo stable_*
+
+

+ + + Options + + +

+ + +
  -h, --help   help for delete
+
+

+ + + lakectl branch-protect help + + +

+ + +

Help about any command

+

+ + + Synopsis + + +

+ + +

Help provides help for any command in the application. +Simply type branch-protect help [path to command] for full details.

+ +
lakectl branch-protect help [command] [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for help
+
+

+ + + lakectl branch-protect list + + +

+ + +

List all branch protection rules

+ +
lakectl branch-protect list <repository URI> [flags]
+
+

+ + + Examples + + +

+ + +
lakectl branch-protect list lakefs://my-repo
+
+

+ + + Options + + +

+ + +
  -h, --help   help for list
+
+

+ + + lakectl cherry-pick + + +

+ + +

Apply the changes introduced by an existing commit

+

+ + + Synopsis + + +

+ + +

Apply the changes from the given commit to the tip of the branch. The changes will be added as a new commit.

+ +
lakectl cherry-pick <commit URI> <branch> [flags]
+
+

+ + + Examples + + +

+ + +
lakectl cherry-pick lakefs://my-repo/600dc0ffee lakefs://my-repo/my-branch
+
+

+ + + Options + + +

+ + +
  -h, --help                help for cherry-pick
+  -m, --parent-number int   the parent number (starting from 1) of the cherry-picked commit. The cherry-pick will apply the change relative to the specified parent.
+
+

+ + + lakectl commit + + +

+ + +

Commit changes on a given branch

+ +
lakectl commit <branch URI> [flags]
+
+

+ + + Options + + +

+ + +
      --allow-empty-commit    allow a commit with no changes
+      --allow-empty-message   allow an empty commit message
+  -h, --help                  help for commit
+  -m, --message string        commit message
+      --meta strings          key value pair in the form of key=value
+
+

+ + + lakectl completion + + +

+ + +

Generate completion script

+

+ + + Synopsis + + +

+ + +

To load completions:

+ +

Bash:

+ +
$ source <(lakectl completion bash)
+
+ +

To load completions for each session, execute once: +Linux:

+ +
$ lakectl completion bash > /etc/bash_completion.d/lakectl
+
+ +

MacOS:

+ +
$ lakectl completion bash > /usr/local/etc/bash_completion.d/lakectl
+
+ +

Zsh:

+ +

If shell completion is not already enabled in your environment you will need +to enable it. You can execute the following once:

+ +
$ echo "autoload -U compinit; compinit" >> ~/.zshrc
+
+ +

To load completions for each session, execute once:

+
$ lakectl completion zsh > "${fpath[1]}/_lakectl"
+
+ +

You will need to start a new shell for this setup to take effect.

+ +

Fish:

+ +
$ lakectl completion fish | source
+
+ +

To load completions for each session, execute once:

+ +
$ lakectl completion fish > ~/.config/fish/completions/lakectl.fish
+
+ +
lakectl completion <bash|zsh|fish>
+
+

+ + + Options + + +

+ + +
  -h, --help   help for completion
+
+

+ + + lakectl config + + +

+ + +

Create/update local lakeFS configuration

+ +
lakectl config [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for config
+
+

+ + + lakectl diff + + +

+ + +

Show changes between two commits, or the currently uncommitted changes

+ +
lakectl diff <ref URI> [ref URI] [flags]
+
+

+ + + Examples + + +

+ + +

+	lakectl diff lakefs://example-repo/example-branch
+	Show uncommitted changes in example-branch.
+
+	lakectl diff lakefs://example-repo/main lakefs://example-repo/dev
+	This shows the differences between master and dev starting at the last common commit.
+	This is similar to the three-dot (...) syntax in git.
+	Uncommitted changes are not shown.
+
+	lakectl diff --two-way lakefs://example-repo/main lakefs://example-repo/dev
+	Show changes between the tips of the main and dev branches.
+	This is similar to the two-dot (..) syntax in git.
+	Uncommitted changes are not shown.
+
+	lakectl diff --two-way lakefs://example-repo/main lakefs://example-repo/dev$
+	Show changes between the tip of the main and the dev branch, including uncommitted changes on dev.
+	
+	lakectl diff --prefix some/path lakefs://example-repo/main lakefs://example-repo/dev
+	Show changes of objects prefixed with 'some/path' between the tips of the main and dev branches.
+
+

+ + + Options + + +

+ + +
  -h, --help            help for diff
+      --prefix string   Show only changes in the given prefix.
+      --two-way         Use two-way diff: show difference between the given refs, regardless of a common ancestor.
+
+

+ + + lakectl doctor + + +

+ + +

Run a basic diagnosis of the LakeFS configuration

+ +
lakectl doctor [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for doctor
+
+

+ + + lakectl fs + + +

+ + +

View and manipulate objects

+

+ + + Options + + +

+ + +
  -h, --help   help for fs
+
+

+ + + lakectl fs cat + + +

+ + +

Dump content of object to stdout

+ +
lakectl fs cat <path URI> [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help       help for cat
+      --pre-sign   Use pre-signed URLs when downloading/uploading data (recommended) (default true)
+
+

+ + + lakectl fs download + + +

+ + +

Download object(s) from a given repository path

+ +
lakectl fs download <path URI> [<destination path>] [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help              help for download
+      --no-progress       Disable progress bar animation for IO operations
+  -p, --parallelism int   Max concurrent operations to perform (default 25)
+      --part-size int     part size in bytes for multipart download (default 8388608)
+      --pre-sign          Use pre-signed URLs when downloading/uploading data (recommended) (default true)
+  -r, --recursive         recursively download all objects under path
+
+

+ + + lakectl fs help + + +

+ + +

Help about any command

+

+ + + Synopsis + + +

+ + +

Help provides help for any command in the application. +Simply type fs help [path to command] for full details.

+ +
lakectl fs help [command] [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for help
+
+

+ + + lakectl fs ls + + +

+ + +

List entries under a given tree

+ +
lakectl fs ls <path URI> [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help        help for ls
+  -r, --recursive   list all objects under the specified path
+
+

+ + + lakectl fs presign + + +

+ + +

return a pre-signed URL for reading the specified object

+ +
lakectl fs presign <path URI> [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for presign
+
+

+ + + lakectl fs rm + + +

+ + +

Delete object

+ +
lakectl fs rm <path URI> [flags]
+
+

+ + + Options + + +

+ + +
  -C, --concurrency int   max concurrent single delete operations to send to the lakeFS server (default 50)
+  -h, --help              help for rm
+  -r, --recursive         recursively delete all objects under the specified path
+
+

+ + + lakectl fs stat + + +

+ + +

View object metadata

+ +
lakectl fs stat <path URI> [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help       help for stat
+      --pre-sign   Use pre-signed URLs when downloading/uploading data (recommended) (default true)
+
+

+ + + lakectl fs upload + + +

+ + +

Upload a local file to the specified URI

+ +
lakectl fs upload <path URI> [flags]
+
+

+ + + Options + + +

+ + +
      --content-type string   MIME type of contents
+  -h, --help                  help for upload
+      --no-progress           Disable progress bar animation for IO operations
+  -p, --parallelism int       Max concurrent operations to perform (default 25)
+      --pre-sign              Use pre-signed URLs when downloading/uploading data (recommended) (default true)
+  -r, --recursive             recursively copy all files under local source
+  -s, --source string         local file to upload, or "-" for stdin
+

+

+ + + lakectl fs stage + + +

+ + +

note: +lakeFS plumbing command. Don’t use unless you’re really sure you know what you’re doing.

+ +

Link an external object with a path in a repository

+

+ + + Synopsis + + +

+ + +

Link an external object with a path in a repository, creating an uncommitted change. +The object location must be outside the repository’s storage namespace

+ +
lakectl fs stage <path URI> [flags]
+
+

+ + + Options + + +

+ + +
      --checksum string       Object MD5 checksum as a hexadecimal string
+      --content-type string   MIME type of contents
+  -h, --help                  help for stage
+      --location string       fully qualified storage location (i.e. "s3://bucket/path/to/object")
+      --meta strings          key value pairs in the form of key=value
+      --mtime int             Object modified time (Unix Epoch in seconds). Defaults to current time
+      --size int              Object size in bytes
+
+

+ + + lakectl fs update-metadata + + +

+ + +

note: +lakeFS plumbing command. Don’t use unless you’re really sure you know what you’re doing.

+ +

Update user metadata on the specified URI

+ +
lakectl fs update-metadata <path URI> [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help               help for update-metadata
+      --metadata strings   Metadata to set, in the form key1=value1,key2=value2
+
+

+ + + lakectl gc + + +

+ + +

Manage the garbage collection policy

+

+ + + Options + + +

+ + +
  -h, --help   help for gc
+
+

+ + + lakectl gc delete-config + + +

+ + +

Deletes the garbage collection policy for the repository

+ +
lakectl gc delete-config <repository URI> [flags]
+
+

+ + + Examples + + +

+ + +
lakectl gc delete-config lakefs://my-repo
+
+

+ + + Options + + +

+ + +
  -h, --help   help for delete-config
+
+

+ + + lakectl gc get-config + + +

+ + +

Show the garbage collection policy for this repository

+ +
lakectl gc get-config <repository URI> [flags]
+
+

+ + + Examples + + +

+ + +
lakectl gc get-config lakefs://my-repo
+
+

+ + + Options + + +

+ + +
  -h, --help   help for get-config
+  -p, --json   get rules as JSON
+
+

+ + + lakectl gc help + + +

+ + +

Help about any command

+

+ + + Synopsis + + +

+ + +

Help provides help for any command in the application. +Simply type gc help [path to command] for full details.

+ +
lakectl gc help [command] [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for help
+
+

+ + + lakectl gc set-config + + +

+ + +

Set garbage collection policy JSON

+

+ + + Synopsis + + +

+ + +

Sets the garbage collection policy JSON. +Example configuration file: +{ + “default_retention_days”: 21, + “branches”: [ + { + “branch_id”: “main”, + “retention_days”: 28 + }, + { + “branch_id”: “dev”, + “retention_days”: 14 + } + ] +}

+ +
lakectl gc set-config <repository URI> [flags]
+
+

+ + + Examples + + +

+ + +
lakectl gc set-config lakefs://my-repo -f config.json
+
+

+ + + Options + + +

+ + +
  -f, --filename string   file containing the GC policy as JSON
+  -h, --help              help for set-config
+
+

+ + + lakectl help + + +

+ + +

Help about any command

+

+ + + Synopsis + + +

+ + +

Help provides help for any command in the application. +Simply type lakectl help [path to command] for full details.

+ +
lakectl help [command] [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for help
+
+

+ + + lakectl identity + + +

+ + +

Show identity info

+

+ + + Synopsis + + +

+ + +

Show the info of the user cofigurated in lakectl

+ +
lakectl identity [flags]
+
+

+ + + Examples + + +

+ + +
lakectl identity
+
+

+ + + Options + + +

+ + +
  -h, --help   help for identity
+
+

+ + + lakectl import + + +

+ + +

Import data from external source to a destination branch

+ +
lakectl import --from <object store URI> --to <lakeFS path URI> [flags]
+
+

+ + + Options + + +

+ + +
      --allow-empty-message   allow an empty commit message (default true)
+      --from string           prefix to read from (e.g. "s3://bucket/sub/path/"). must not be in a storage namespace
+  -h, --help                  help for import
+  -m, --message string        commit message
+      --meta strings          key value pair in the form of key=value
+      --no-progress           switch off the progress output
+      --to string             lakeFS path to load objects into (e.g. "lakefs://repo/branch/sub/path/")
+
+

+ + + lakectl ingest + + +

+ + +

Ingest objects from an external source into a lakeFS branch (without actually copying them)

+ +
lakectl ingest --from <object store URI> --to <lakeFS path URI> [--dry-run] [flags]
+
+

+ + + Options + + +

+ + +
  -C, --concurrency int          max concurrent API calls to make to the lakeFS server (default 64)
+      --dry-run                  only print the paths to be ingested
+      --from string              prefix to read from (e.g. "s3://bucket/sub/path/"). must not be in a storage namespace
+  -h, --help                     help for ingest
+      --s3-endpoint-url string   URL to access S3 storage API (by default, use regular AWS S3 endpoint
+      --to string                lakeFS path to load objects into (e.g. "lakefs://repo/branch/sub/path/")
+  -v, --verbose                  print stats for each individual object staged
+
+

+ + + lakectl local + + +

+ + +

Sync local directories with lakeFS paths

+

+ + + Options + + +

+ + +
  -h, --help   help for local
+
+

+ + + lakectl local checkout + + +

+ + +

Sync local directory with the remote state.

+ +
lakectl local checkout [directory] [flags]
+
+

+ + + Options + + +

+ + +
      --all               Checkout given source branch or reference for all linked directories
+  -h, --help              help for checkout
+      --no-progress       Disable progress bar animation for IO operations
+  -p, --parallelism int   Max concurrent operations to perform (default 25)
+      --pre-sign          Use pre-signed URLs when downloading/uploading data (recommended) (default true)
+  -r, --ref string        Checkout the given reference
+  -y, --yes               Automatically say yes to all confirmations
+
+

+ + + lakectl local clone + + +

+ + +

Clone a path from a lakeFS repository into a new directory.

+ +
lakectl local clone <path URI> [directory] [flags]
+
+

+ + + Options + + +

+ + +
      --gitignore         Update .gitignore file when working in a git repository context (default true)
+  -h, --help              help for clone
+      --no-progress       Disable progress bar animation for IO operations
+  -p, --parallelism int   Max concurrent operations to perform (default 25)
+      --pre-sign          Use pre-signed URLs when downloading/uploading data (recommended) (default true)
+
+

+ + + lakectl local commit + + +

+ + +

Commit changes from local directory to the lakeFS branch it tracks.

+ +
lakectl local commit [directory] [flags]
+
+

+ + + Options + + +

+ + +
      --allow-empty-message   allow an empty commit message
+      --force                 Commit changes even if remote branch includes uncommitted changes external to the synced path
+  -h, --help                  help for commit
+  -m, --message string        commit message
+      --meta strings          key value pair in the form of key=value
+      --no-progress           Disable progress bar animation for IO operations
+  -p, --parallelism int       Max concurrent operations to perform (default 25)
+      --pre-sign              Use pre-signed URLs when downloading/uploading data (recommended) (default true)
+
+

+ + + lakectl local help + + +

+ + +

Help about any command

+

+ + + Synopsis + + +

+ + +

Help provides help for any command in the application. +Simply type local help [path to command] for full details.

+ +
lakectl local help [command] [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for help
+
+

+ + + lakectl local init + + +

+ + +

set a local directory to sync with a lakeFS path.

+ +
lakectl local init <path URI> [directory] [flags]
+
+

+ + + Options + + +

+ + +
      --force       Overwrites if directory already linked to a lakeFS path
+      --gitignore   Update .gitignore file when working in a git repository context (default true)
+  -h, --help        help for init
+
+

+ + + lakectl local list + + +

+ + +

find and list directories that are synced with lakeFS.

+ +
lakectl local list [directory] [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for list
+
+

+ + + lakectl local pull + + +

+ + +

Fetch latest changes from lakeFS.

+ +
lakectl local pull [directory] [flags]
+
+

+ + + Options + + +

+ + +
      --force             Reset any uncommitted local change
+  -h, --help              help for pull
+      --no-progress       Disable progress bar animation for IO operations
+  -p, --parallelism int   Max concurrent operations to perform (default 25)
+      --pre-sign          Use pre-signed URLs when downloading/uploading data (recommended) (default true)
+
+

+ + + lakectl local status + + +

+ + +

show modifications (both remote and local) to the directory and the remote location it tracks

+ +
lakectl local status [directory] [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help    help for status
+  -l, --local   Don't compare against remote changes
+
+

+ + + lakectl log + + +

+ + +

Show log of commits

+

+ + + Synopsis + + +

+ + +

Show log of commits for a given branch

+ +
lakectl log <branch URI> [flags]
+
+

+ + + Examples + + +

+ + +
lakectl log --dot lakefs://example-repository/main | dot -Tsvg > graph.svg
+
+

+ + + Options + + +

+ + +
      --after string         show results after this value (used for pagination)
+      --amount int           number of results to return. By default, all results are returned
+      --dot                  return results in a dotgraph format
+      --first-parent         follow only the first parent commit upon seeing a merge commit
+  -h, --help                 help for log
+      --limit                limit result just to amount. By default, returns whether more items are available.
+      --no-merges            skip merge commits
+      --objects strings      show results that contains changes to at least one path in that list of objects. Use comma separator to pass all objects together
+      --prefixes strings     show results that contains changes to at least one path in that list of prefixes. Use comma separator to pass all prefixes together
+      --show-meta-range-id   also show meta range ID
+      --since string         show results since this date-time (RFC3339 format)
+      --stop-at string       a Ref to stop at (included in results)
+
+

+ + + lakectl merge + + +

+ + +

Merge & commit changes from source branch into destination branch

+

+ + + Synopsis + + +

+ + +

Merge & commit changes from source branch into destination branch

+ +
lakectl merge <source ref> <destination ref> [flags]
+
+

+ + + Options + + +

+ + +
      --allow-empty           Allow merge when the branches have the same content
+      --allow-empty-message   allow an empty commit message (default true)
+      --force                 Allow merge into a read-only branch or into a branch with the same content
+  -h, --help                  help for merge
+  -m, --message string        commit message
+      --meta strings          key value pair in the form of key=value
+      --strategy string       In case of a merge conflict, this option will force the merge process to automatically favor changes from the dest branch ("dest-wins") or from the source branch("source-wins"). In case no selection is made, the merge process will fail in case of a conflict
+
+

+ + + lakectl metastore + + +

+ + +

Manage metastore commands

+

+ + + Options + + +

+ + +
  -h, --help   help for metastore
+
+

+ + + lakectl metastore copy + + +

+ + +

Copy or merge table

+

+ + + Synopsis + + +

+ + +

Copy or merge table. the destination table will point to the selected branch

+ +
lakectl metastore copy [flags]
+
+

+ + + Options + + +

+ + +
      --catalog-id string         Glue catalog ID
+      --dbfs-root dbfs:/          dbfs location root will replace dbfs:/ in the location before transforming
+      --from-client-type string   metastore type [hive, glue]
+      --from-schema string        source schema name
+      --from-table string         source table name
+  -h, --help                      help for copy
+      --metastore-uri string      Hive metastore URI
+  -p, --partition strings         partition to copy
+      --serde string              serde to set copy to  [default is  to-table]
+      --to-branch string          lakeFS branch name
+      --to-client-type string     metastore type [hive, glue]
+      --to-schema string          destination schema name [default is from-branch]
+      --to-table string           destination table name [default is  from-table] 
+
+

+ + + lakectl metastore copy-all + + +

+ + +

Copy from one metastore to another

+

+ + + Synopsis + + +

+ + +

copy or merge requested tables between hive metastores. the destination tables will point to the selected branch

+ +
lakectl metastore copy-all [flags]
+
+

+ + + Options + + +

+ + +
      --branch string             lakeFS branch name
+      --continue-on-error         prevent copy-all from failing when a single table fails
+      --dbfs-root dbfs:/          dbfs location root will replace dbfs:/ in the location before transforming
+      --from-address string       source metastore address
+      --from-client-type string   metastore type [hive, glue]
+  -h, --help                      help for copy-all
+      --schema-filter string      filter for schemas to copy in metastore pattern (default ".*")
+      --table-filter string       filter for tables to copy in metastore pattern (default ".*")
+      --to-address string         destination metastore address
+      --to-client-type string     metastore type [hive, glue]
+
+

+ + + lakectl metastore copy-schema + + +

+ + +

Copy schema

+

+ + + Synopsis + + +

+ + +

Copy schema (without tables). the destination schema will point to the selected branch

+ +
lakectl metastore copy-schema [flags]
+
+

+ + + Options + + +

+ + +
      --catalog-id string         Glue catalog ID
+      --dbfs-root dbfs:/          dbfs location root will replace dbfs:/ in the location before transforming
+      --from-client-type string   metastore type [hive, glue]
+      --from-schema string        source schema name
+  -h, --help                      help for copy-schema
+      --metastore-uri string      Hive metastore URI
+      --to-branch string          lakeFS branch name
+      --to-client-type string     metastore type [hive, glue]
+      --to-schema string          destination schema name [default is from-branch]
+
+ + + +

Create symlink table and data

+

+ + + Synopsis + + +

+ + +

create table with symlinks, and create the symlinks in s3 in order to access from external services that could only access s3 directly (e.g athena)

+ +
lakectl metastore create-symlink [flags]
+
+

+ + + Options + + +

+ + +
      --branch string             lakeFS branch name
+      --catalog-id string         Glue catalog ID
+      --from-client-type string   metastore type [hive, glue]
+      --from-schema string        source schema name
+      --from-table string         source table name
+  -h, --help                      help for create-symlink
+      --path string               path to table on lakeFS
+      --repo string               lakeFS repository name
+      --to-schema string          destination schema name
+      --to-table string           destination table name
+
+

+ + + lakectl metastore diff + + +

+ + +

Show column and partition differences between two tables

+ +
lakectl metastore diff [flags]
+
+

+ + + Options + + +

+ + +
      --catalog-id string         Glue catalog ID
+      --from-address string       source metastore address
+      --from-client-type string   metastore type [hive, glue]
+      --from-schema string        source schema name
+      --from-table string         source table name
+  -h, --help                      help for diff
+      --metastore-uri string      Hive metastore URI
+      --to-address string         destination metastore address
+      --to-client-type string     metastore type [hive, glue]
+      --to-schema string          destination schema name 
+      --to-table string           destination table name [default is from-table]
+
+

+ + + lakectl metastore help + + +

+ + +

Help about any command

+

+ + + Synopsis + + +

+ + +

Help provides help for any command in the application. +Simply type metastore help [path to command] for full details.

+ +
lakectl metastore help [command] [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for help
+
+

+ + + lakectl metastore import-all + + +

+ + +

Import from one metastore to another

+

+ + + Synopsis + + +

+ + +

import requested tables between hive metastores. the destination tables will point to the selected repository and branch +table with location s3://my-s3-bucket/path/to/table +will be transformed to location s3://repo-param/bucket-param/path/to/table

+ +
lakectl metastore import-all [flags]
+
+

+ + + Options + + +

+ + +
      --branch string             lakeFS branch name
+      --continue-on-error         prevent import-all from failing when a single table fails
+      --dbfs-root dbfs:/          dbfs location root will replace dbfs:/ in the location before transforming
+      --from-address string       source metastore address
+      --from-client-type string   metastore type [hive, glue]
+  -h, --help                      help for import-all
+      --repo string               lakeFS repo name
+      --schema-filter string      filter for schemas to copy in metastore pattern (default ".*")
+      --table-filter string       filter for tables to copy in metastore pattern (default ".*")
+      --to-address string         destination metastore address
+      --to-client-type string     metastore type [hive, glue]
+
+

+ + + lakectl repo + + +

+ + +

Manage and explore repos

+

+ + + Options + + +

+ + +
  -h, --help   help for repo
+
+

+ + + lakectl repo create + + +

+ + +

Create a new repository

+ +
lakectl repo create <repository URI> <storage namespace> [flags]
+
+

+ + + Examples + + +

+ + +
lakectl repo create lakefs://my-repo s3://my-bucket
+
+

+ + + Options + + +

+ + +
  -d, --default-branch string   the default branch of this repository (default "main")
+  -h, --help                    help for create
+
+

+ + + lakectl repo delete + + +

+ + +

Delete existing repository

+ +
lakectl repo delete <repository URI> [flags]
+
+

+ + + Examples + + +

+ + +
lakectl repo delete lakefs://my-repo
+
+

+ + + Options + + +

+ + +
  -h, --help   help for delete
+  -y, --yes    Automatically say yes to all confirmations
+
+

+ + + lakectl repo help + + +

+ + +

Help about any command

+

+ + + Synopsis + + +

+ + +

Help provides help for any command in the application. +Simply type repo help [path to command] for full details.

+ +
lakectl repo help [command] [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for help
+
+

+ + + lakectl repo list + + +

+ + +

List repositories

+ +
lakectl repo list [flags]
+
+

+ + + Options + + +

+ + +
      --after string   show results after this value (used for pagination)
+      --amount int     number of results to return (default 100)
+  -h, --help           help for list
+

+

+ + + lakectl repo create-bare + + +

+ + +

note: +lakeFS plumbing command. Don’t use unless you’re really sure you know what you’re doing.

+ +

Create a new repository with no initial branch or commit

+ +
lakectl repo create-bare <repository URI> <storage namespace> [flags]
+
+

+ + + Examples + + +

+ + +
lakectl create-bare lakefs://my-repo s3://my-bucket
+
+

+ + + Options + + +

+ + +
  -d, --default-branch string   the default branch name of this repository (will not be created) (default "main")
+  -h, --help                    help for create-bare
+
+

+ + + lakectl show + + +

+ + +

See detailed information about an entity

+

+ + + Options + + +

+ + +
  -h, --help   help for show
+
+

+ + + lakectl show commit + + +

+ + +

See detailed information about a commit

+ +
lakectl show commit <commit URI> [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help                 help for commit
+      --show-meta-range-id   show meta range ID
+
+

+ + + lakectl show help + + +

+ + +

Help about any command

+

+ + + Synopsis + + +

+ + +

Help provides help for any command in the application. +Simply type show help [path to command] for full details.

+ +
lakectl show help [command] [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for help
+
+

+ + + lakectl tag + + +

+ + +

Create and manage tags within a repository

+

+ + + Synopsis + + +

+ + +

Create delete and list tags within a lakeFS repository

+

+ + + Options + + +

+ + +
  -h, --help   help for tag
+
+

+ + + lakectl tag create + + +

+ + +

Create a new tag in a repository

+ +
lakectl tag create <tag URI> <commit URI> [flags]
+
+

+ + + Examples + + +

+ + +
lakectl tag create lakefs://example-repo/example-tag lakefs://example-repo/2397cc9a9d04c20a4e5739b42c1dd3d8ba655c0b3a3b974850895a13d8bf9917
+
+

+ + + Options + + +

+ + +
  -f, --force   override the tag if it exists
+  -h, --help    help for create
+
+

+ + + lakectl tag delete + + +

+ + +

Delete a tag from a repository

+ +
lakectl tag delete <tag URI> [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for delete
+
+

+ + + lakectl tag help + + +

+ + +

Help about any command

+

+ + + Synopsis + + +

+ + +

Help provides help for any command in the application. +Simply type tag help [path to command] for full details.

+ +
lakectl tag help [command] [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for help
+
+

+ + + lakectl tag list + + +

+ + +

List tags in a repository

+ +
lakectl tag list <repository URI> [flags]
+
+

+ + + Examples + + +

+ + +
lakectl tag list lakefs://my-repo
+
+

+ + + Options + + +

+ + +
      --after string   show results after this value (used for pagination)
+      --amount int     number of results to return (default 100)
+  -h, --help           help for list
+
+

+ + + lakectl tag show + + +

+ + +

Show tag’s commit reference

+ +
lakectl tag show <tag URI> [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for show
+

+

+ + + Undocumented commands + + +

+ + +

note: +⚠️ These commands are plumbing commands and for internal use only. +Avoid using them unless you’re really sure you know what you’re doing, or +have been in contact with lakeFS support!

+

+ + + lakectl abuse + + +

+ + +

note: +lakeFS plumbing command. Don’t use unless you’re really sure you know what you’re doing.

+ +

Abuse a running lakeFS instance. See sub commands for more info.

+

+ + + Options + + +

+ + +
  -h, --help   help for abuse
+
+

+ + + lakectl abuse commit + + +

+ + +

Commits to the source branch repeatedly

+ +
lakectl abuse commit <branch URI> [flags]
+
+

+ + + Options + + +

+ + +
      --amount int     amount of commits to do (default 100)
+      --gap duration   duration to wait between commits (default 2s)
+  -h, --help           help for commit
+
+

+ + + lakectl abuse create-branches + + +

+ + +

Create a lot of branches very quickly.

+ +
lakectl abuse create-branches <source ref URI> [flags]
+
+

+ + + Options + + +

+ + +
      --amount int             amount of things to do (default 1000000)
+      --branch-prefix string   prefix to create branches under (default "abuse-")
+      --clean-only             only clean up past runs
+  -h, --help                   help for create-branches
+      --parallelism int        amount of things to do in parallel (default 100)
+
+

+ + + lakectl abuse help + + +

+ + +

Help about any command

+

+ + + Synopsis + + +

+ + +

Help provides help for any command in the application. +Simply type abuse help [path to command] for full details.

+ +
lakectl abuse help [command] [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for help
+
+ + + +

Link the same object in parallel.

+ +
lakectl abuse link-same-object <branch URI> [flags]
+
+

+ + + Options + + +

+ + +
      --amount int        amount of link object to do (default 1000000)
+  -h, --help              help for link-same-object
+      --key string        key used for the test (default "linked-object")
+      --parallelism int   amount of link object to do in parallel (default 100)
+
+

+ + + lakectl abuse list + + +

+ + +

List from the source ref

+ +
lakectl abuse list <source ref URI> [flags]
+
+

+ + + Options + + +

+ + +
      --amount int        amount of lists to do (default 1000000)
+  -h, --help              help for list
+      --parallelism int   amount of lists to do in parallel (default 100)
+      --prefix string     prefix to list under (default "abuse/")
+
+

+ + + lakectl abuse merge + + +

+ + +

Merge non-conflicting objects to the source branch in parallel

+ +
lakectl abuse merge <branch URI> [flags]
+
+

+ + + Options + + +

+ + +
      --amount int        amount of merges to perform (default 1000)
+  -h, --help              help for merge
+      --parallelism int   number of merges to perform in parallel (default 100)
+
+

+ + + lakectl abuse random-delete + + +

+ + +

Delete keys from a file and generate random delete from the source ref for those keys.

+ +
lakectl abuse random-delete <source ref URI> [flags]
+
+

+ + + Options + + +

+ + +
      --amount int         amount of reads to do (default 1000000)
+      --from-file string   read keys from this file ("-" for stdin)
+  -h, --help               help for random-delete
+      --parallelism int    amount of reads to do in parallel (default 100)
+
+

+ + + lakectl abuse random-read + + +

+ + +

Read keys from a file and generate random reads from the source ref for those keys.

+ +
lakectl abuse random-read <source ref URI> [flags]
+
+

+ + + Options + + +

+ + +
      --amount int         amount of reads to do (default 1000000)
+      --from-file string   read keys from this file ("-" for stdin)
+  -h, --help               help for random-read
+      --parallelism int    amount of reads to do in parallel (default 100)
+
+

+ + + lakectl abuse random-write + + +

+ + +

Generate random writes to the source branch

+ +
lakectl abuse random-write <branch URI> [flags]
+
+

+ + + Options + + +

+ + +
      --amount int        amount of writes to do (default 1000000)
+  -h, --help              help for random-write
+      --parallelism int   amount of writes to do in parallel (default 100)
+      --prefix string     prefix to create paths under (default "abuse/")
+
+

+ + + lakectl bisect + + +

+ + +

note: +lakeFS plumbing command. Don’t use unless you’re really sure you know what you’re doing.

+ +

Binary search to find the commit that introduced a bug

+

+ + + Options + + +

+ + +
  -h, --help   help for bisect
+
+

+ + + lakectl bisect bad + + +

+ + +

Set ‘bad’ commit that is known to contain the bug

+ +
lakectl bisect bad [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for bad
+
+

+ + + lakectl bisect good + + +

+ + +

Set current commit as ‘good’ commit that is known to be before the bug was introduced

+ +
lakectl bisect good [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for good
+
+

+ + + lakectl bisect help + + +

+ + +

Help about any command

+

+ + + Synopsis + + +

+ + +

Help provides help for any command in the application. +Simply type bisect help [path to command] for full details.

+ +
lakectl bisect help [command] [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for help
+
+

+ + + lakectl bisect log + + +

+ + +

Print out the current bisect state

+ +
lakectl bisect log [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for log
+
+

+ + + lakectl bisect reset + + +

+ + +

Clean up the bisection state

+ +
lakectl bisect reset [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for reset
+
+

+ + + lakectl bisect run + + +

+ + +

Bisecting based on command status code

+ +
lakectl bisect run <command> [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for run
+
+

+ + + lakectl bisect start + + +

+ + +

Start a bisect session

+ +
lakectl bisect start <bad ref URI> <good ref URI> [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for start
+
+

+ + + lakectl bisect view + + +

+ + +

Current bisect commits

+ +
lakectl bisect view [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for view
+
+

+ + + lakectl cat-hook-output + + +

+ + +

note: +lakeFS plumbing command. Don’t use unless you’re really sure you know what you’re doing.

+ +

Cat actions hook output

+ +
lakectl cat-hook-output <repository URI> <run_id> <hook_id> [flags]
+
+

+ + + Examples + + +

+ + +
lakectl cat-hook-output lakefs://my-repo 20230719152411arS0z6I my_hook_name
+
+

+ + + Options + + +

+ + +
  -h, --help   help for cat-hook-output
+
+

+ + + lakectl cat-sst + + +

+ + +

note: +lakeFS plumbing command. Don’t use unless you’re really sure you know what you’re doing.

+ +

Explore lakeFS .sst files

+ +
lakectl cat-sst <sst-file> [flags]
+
+

+ + + Options + + +

+ + +
      --amount int    how many records to return, or -1 for all records (default -1)
+  -f, --file string   path to an sstable file, or "-" for stdin
+  -h, --help          help for cat-sst
+
+

+ + + lakectl docs + + +

+ + +

note: +lakeFS plumbing command. Don’t use unless you’re really sure you know what you’re doing.

+ +
lakectl docs [outfile] [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for docs
+
+

+ + + lakectl find-merge-base + + +

+ + +

note: +lakeFS plumbing command. Don’t use unless you’re really sure you know what you’re doing.

+ +

Find the commits for the merge operation

+ +
lakectl find-merge-base <source ref URI> <destination ref URI> [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for find-merge-base
+
+

+ + + lakectl refs-dump + + +

+ + +

note: +lakeFS plumbing command. Don’t use unless you’re really sure you know what you’re doing.

+ +

Dumps refs (branches, commits, tags) to the underlying object store

+ +
lakectl refs-dump <repository URI> [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help                     help for refs-dump
+  -o, --output string            output filename (default stdout)
+      --poll-interval duration   poll status check interval (default 3s)
+      --timeout duration         timeout for polling status checks (default 1h0m0s)
+
+

+ + + lakectl refs-restore + + +

+ + +

note: +lakeFS plumbing command. Don’t use unless you’re really sure you know what you’re doing.

+ +

Restores refs (branches, commits, tags) from the underlying object store to a bare repository

+

+ + + Synopsis + + +

+ + +

restores refs (branches, commits, tags) from the underlying object store to a bare repository.

+ +

This command is expected to run on a bare repository (i.e. one created with ‘lakectl repo create-bare’). +Since a bare repo is expected, in case of transient failure, delete the repository and recreate it as bare and retry.

+ +
lakectl refs-restore <repository URI> [flags]
+
+

+ + + Examples + + +

+ + +
aws s3 cp s3://bucket/_lakefs/refs_manifest.json - | lakectl refs-restore lakefs://my-bare-repository --manifest -
+
+

+ + + Options + + +

+ + +
  -h, --help                     help for refs-restore
+      --manifest refs-dump       path to a refs manifest json file (as generated by refs-dump). Alternatively, use "-" to read from stdin
+      --poll-interval duration   poll status check interval (default 3s)
+      --timeout duration         timeout for polling status checks (default 1h0m0s)
+
+

+ + + lakectl usage + + +

+ + +

note: +lakeFS plumbing command. Don’t use unless you’re really sure you know what you’re doing.

+ +

Usage reports from lakeFS

+

+ + + Options + + +

+ + +
  -h, --help   help for usage
+
+

+ + + lakectl usage help + + +

+ + +

Help about any command

+

+ + + Synopsis + + +

+ + +

Help provides help for any command in the application. +Simply type usage help [path to command] for full details.

+ +
lakectl usage help [command] [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for help
+

+

+ + + lakectl usage summary + + +

+ + +

note: +lakeFS plumbing command. Don’t use unless you’re really sure you know what you’re doing.

+ +

Summary reports from lakeFS

+ +
lakectl usage summary [flags]
+
+

+ + + Options + + +

+ + +
  -h, --help   help for summary
+
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/reference/commands.html b/v1.46/reference/commands.html new file mode 100644 index 000000000..6c6c5a594 --- /dev/null +++ b/v1.46/reference/commands.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/reference/configuration.html b/v1.46/reference/configuration.html new file mode 100644 index 000000000..08762d6ad --- /dev/null +++ b/v1.46/reference/configuration.html @@ -0,0 +1,1521 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +lakeFS Server Configuration | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + lakeFS Server Configuration + + +

+ + +
+

+ + + Table of contents + + +

+ + +
    +
  1. Reference
  2. +
  3. Using Environment Variables
  4. +
  5. Example Configurations
  6. +
+ +
+ +

Configuring lakeFS is done using a YAML configuration file and/or environment variable. +The configuration file’s location can be set with the ‘–config’ flag. If not specified, the first file found in the following order will be used:

+
    +
  1. ./config.yaml
  2. +
  3. $HOME/lakefs/config.yaml
  4. +
  5. /etc/lakefs/config.yaml
  6. +
  7. $HOME/.lakefs.yaml
  8. +
+ +

Configuration items can each be controlled by an environment variable. The variable name will have a prefix of LAKEFS_, followed by the name of the configuration, replacing every ‘.’ with a ‘_’. +Example: LAKEFS_LOGGING_LEVEL controls logging.level.

+ +

This reference uses . to denote the nesting of values.

+

+ + + Reference + + +

+ + +
    +
  • listen_address (string : "0.0.0.0:8000") - A <host>:<port> structured string representing the address to listen on
  • +
+

+ + + logging + + +

+ + +
    +
  • logging.format (one of ["json", "text"] : "text") - Format to output log message in
  • +
  • logging.level (one of ["TRACE", "DEBUG", "INFO", "WARN", "ERROR", "NONE"] : "INFO") - Logging level to output
  • +
  • +

    logging.audit_log_level (one of ["TRACE", "DEBUG", "INFO", "WARN", "ERROR", "NONE"] : "DEBUG") - Audit logs level to output.

    + +

    Note: In case you configure this field to be lower than the main logger level, you won’t be able to get the audit logs

    +
  • +
  • logging.output (string : "-") - A path or paths to write logs to. A - means the standard output, = means the standard error.
  • +
  • logging.file_max_size_mb (int : 100) - Output file maximum size in megabytes.
  • +
  • logging.files_keep (int : 0) - Number of log files to keep, default is all.
  • +
+

+ + + actions + + +

+ + +
    +
  • actions.enabled (bool : true) - Setting this to false will block hooks from being executed.
  • +
  • actions.lua.net_http_enabled (bool : false) - Setting this to true will load the net/http package.
  • +
  • actions.env.enabled (bool : true) - Environment variables accessible by hooks, disabled values evaluated to empty strings
  • +
  • actions.env.prefix (string : "LAKEFSACTION_") - Access to environment variables is restricted to those with the prefix. When environment access is enabled and no prefix is provided, all variables are accessible.
  • +
+

+ + + database + + +

+ + +

Configuration section for the lakeFS key-value store database.

+
    +
  • database.type (string ["postgres"|"dynamodb"|"cosmosdb"|"local"] : ) - +lakeFS database type
  • +
+

+ + + database.postgres + + +

+ + +

Configuration section when using database.type="postgres"

+
    +
  • database.postgres.connection_string (string : "postgres://localhost:5432/postgres?sslmode=disable") - PostgreSQL connection string to use
  • +
  • database.postgres.max_open_connections (int : 25) - Maximum number of open connections to the database
  • +
  • database.postgres.max_idle_connections (int : 25) - Maximum number of connections in the idle connection pool
  • +
  • database.postgres.connection_max_lifetime (duration : 5m) - Sets the maximum amount of time a connection may be reused (valid units: ns|us|ms|s|m|h)
  • +
+

+ + + database.dynamodb + + +

+ + +

Configuration section when using database.type="dynamodb"

+
    +
  • database.dynamodb.table_name (string : "kvstore") - Table used to store the data
  • +
  • database.dynamodb.scan_limit (int : 1025) - Maximal number of items per page during scan operation + +
  • +
  • database.dynamodb.endpoint (string : ) - Endpoint URL for database instance
  • +
  • database.dynamodb.aws_region (string : ) - AWS Region of database instance
  • +
  • database.dynamodb.aws_profile (string : ) - AWS named profile to use
  • +
  • database.dynamodb.aws_access_key_id (string : ) - AWS access key ID
  • +
  • database.dynamodb.aws_secret_access_key (string : ) - AWS secret access key +
      +
    • Note: endpoint aws_region aws_access_key_id aws_secret_access_key are not required and used mainly for experimental purposes when working with DynamoDB with different AWS credentials.
    • +
    +
  • +
  • database.dynamodb.health_check_interval (duration : 0s) - Interval to run health check for the DynamoDB instance (won’t run if equal to 0).
  • +
  • database.dynamodb.max_attempts (int : 10) - The maximum number of attempts to perform on a DynamoDB request
  • +
  • database.dynamodb.max_connections (int : 0) - The maximum number of connections to DynamoDB. 0 means no limit.
  • +
+

+ + + database.cosmosdb + + +

+ + +

Configuration section when using database.type="cosmosdb"

+
    +
  • database.cosmosdb.key (string : "") - If specified, will +be used to authenticate to the CosmosDB account. Otherwise, Azure SDK +default authentication (with env vars) will be used.
  • +
  • database.cosmosdb.endpoint (string : "") - CosmosDB account endpoint, e.g. https://<account>.documents.azure.com/.
  • +
  • database.cosmosdb.database (string : "") - CosmosDB database name.
  • +
  • database.cosmosdb.container (string : "") - CosmosDB container name.
  • +
  • database.cosmosdb.throughput (int32 : ) - CosmosDB container’s RU/s. If not set - the default CosmosDB container throughput is used.
  • +
  • database.cosmosdb.autoscale (bool : false) - If set, CosmosDB container throughput is autoscaled (See CosmosDB docs for minimum throughput requirement). Otherwise, uses “Manual” mode (Docs).
  • +
+

+ + + database.local + + +

+ + +

Configuration section when using database.type="local"

+
    +
  • database.local.path (string : "~/lakefs/metadata") - Local path on the filesystem to store embedded KV metadata, like branches and uncommitted entries
  • +
  • database.local.sync_writes (bool: true) - Ensure each write is written to the disk. Disable to increase performance
  • +
  • database.local.prefetch_size (int: 256) - How many items to prefetch when iterating over embedded KV records
  • +
  • database.local.enable_logging (bool: false) - Enable trace logging for local driver
  • +
+

+ + + auth + + +

+ + +
    +
  • auth.login_duration (time duration : "168h") - The duration the login token is valid for
  • +
  • auth.login_max_duration (time duration : "168h") - The maximum duration user can ask for a login token
  • +
  • auth.cookie_domain (string : "") - Domain attribute to set the access_token cookie on (the default is an empty string which defaults to the same host that sets the cookie)
  • +
  • auth.ui_config.rbac (string: "none") - “none”, “simplified”, “external” or “internal” (enterprise feature). +If you have configured an external auth server you can set this to “external” to support the policy editor. +If you are using the enteprrise version of lakeFS, you can set this to “internal” to use the built-in policy editor.
  • +
+

+ + + auth.cache + + +

+ + +
    +
  • auth.cache.enabled (bool : true) - Whether to cache access credentials and user policies in-memory. Can greatly improve throughput when enabled.
  • +
  • auth.cache.size (int : 1024) - How many items to store in the auth cache. Systems with a very high user count should use a larger value at the expense of ~1kb of memory per cached user.
  • +
  • auth.cache.ttl (time duration : "20s") - How long to store an item in the auth cache. Using a higher value reduces load on the database, but will cause changes longer to take effect for cached users.
  • +
  • auth.cache.jitter (time duration : "3s") - A random amount of time between 0 and this value is added to each item’s TTL. This is done to avoid a large bulk of keys expiring at once and overwhelming the database.
  • +
  • auth.encrypt.secret_key (string : required) - A random (cryptographically safe) generated string that is used for encryption and HMAC signing +Note: It is best to keep this somewhere safe such as KMS or Hashicorp Vault, and provide it to the system at run time
  • +
+

+ + + auth.api + + +

+ + +
    +
  • auth.api.endpoint (string: https://external.service/api/v1) - URL to external Authorization Service described at authorization.yml;
  • +
  • auth.api.token (string: eyJhbGciOiJIUzI1NiIsInR5...) - API token used to authenticate requests to api endpoint
  • +
  • auth.api.health_check_timeout (time duration : "20s") - Timeout duration for external auth API health check
  • +
  • auth.api.skip_health_check (bool : false) - Skip external auth API health check
  • +
+

+ + + auth.authentication_api + + +

+ + +
    +
  • auth.authentication_api.endpoint (string: https://external.authentication-service/api/v1) - URL to external Authentication Service described at authentication.yml
  • +
  • auth.authentication_api.endpoint (string : "") - URL to external Authentication Service described at authentication.yml;
  • +
  • auth.authentication_api.external_principals_enabled (bool : false) - If true, external principals API will be enabled, e.g auth service and login api’s.
  • +
+

+ + + auth.remote_authenticator + + +

+ + +
    +
  • auth.remote_authenticator.enabled (bool : false) - If specified, also authenticate users via this Remote Authenticator server.
  • +
  • auth.remote_authenticator.endpoint (string : required) - Endpoint URL of the remote authentication service (e.g. https://my-auth.example.com/auth).
  • +
  • auth.remote_authenticator.default_user_group (string : Viewers) - Create users in this group (i.e Viewers, Developers, etc).
  • +
  • auth.remote_authenticator.request_timeout (duration : 10s) - If specified, timeout for remote authentication requests.
  • +
+

+ + + auth.cookie_auth_verification + + +

+ + +
    +
  • auth.cookie_auth_verification.validate_id_token_claims (map[string]string : ) - When a user tries to access lakeFS, validate that the ID token contains these claims with the corresponding values.
  • +
  • auth.cookie_auth_verification.default_initial_groups (string[] : [])` - By default, users will be assigned to these groups
  • +
  • auth.cookie_auth_verification.initial_groups_claim_name (string[] : []) - Use this claim from the ID token to provide the initial group for new users. This will take priority if auth.cookie_auth_verification.default_initial_groups is also set.
  • +
  • auth.cookie_auth_verification.friendly_name_claim_name (string[] : ) - If specified, the value from the claim with this name will be used as the user’s display name.
  • +
  • auth.cookie_auth_verification.persist_friendly_name (string : false) - If set to true, the friendly name is persisted to the KV store and can be displayed in the user list. This is meant to be used in conjunction with auth.cookie_auth_verification.friendly_name_claim_name.
  • +
  • auth.cookie_auth_verification.external_user_id_claim_name - (string : ) - If specified, the value from the claim with this name will be used as the user’s id name.
  • +
  • auth.cookie_auth_verification.auth_source - (string : ) - If specified, user will be labeled with this auth source.
  • +
+

+ + + auth.oidc + + +

+ + +
    +
  • auth.oidc.default_initial_groups (string[] : []) - By default, OIDC users will be assigned to these groups
  • +
  • auth.oidc.initial_groups_claim_name (string[] : []) - Use this claim from the ID token to provide the initial group for new users. This will take priority if auth.oidc.default_initial_groups is also set.
  • +
  • auth.oidc.friendly_name_claim_name (string[] : ) - If specified, the value from the claim with this name will be used as the user’s display name.
  • +
  • auth.oidc.persist_friendly_name (string : false) - If set to true, the friendly name is persisted to the KV store and can be displayed in the user list. This is meant to be used in conjunction with auth.oidc.friendly_name_claim_name.
  • +
  • auth.oidc.validate_id_token_claims (map[string]string : ) - When a user tries to access lakeFS, validate that the ID token contains these claims with the corresponding values.
  • +
+

+ + + blockstore + + +

+ + +
    +
  • blockstore.type (one of ["local", "s3", "gs", "azure", "mem"] : required). Block adapter to use. This controls where the underlying data will be stored
  • +
  • blockstore.default_namespace_prefix (string : ) - Use this to help your users choose a storage namespace for their repositories. + If specified, the storage namespace will be filled with this default value as a prefix when creating a repository from the UI. + The user may still change it to something else.
  • +
  • blockstore.signing.secret_key (string : required) - A random generated string that is used for HMAC signing when using get/link physical address
  • +
+

+ + + blockstore.local + + +

+ + +
    +
  • blockstore.local.path (string: "~/lakefs/data") - When using the local Block Adapter, which directory to store files in
  • +
  • blockstore.local.import_enabled (bool: false) - Enable import for local Block Adapter, relevant only if you are using shared location
  • +
  • blockstore.local.import_hidden (bool: false) - When enabled import will scan and import any file or folder that starts with a dot character.
  • +
  • blockstore.local.allowed_external_prefixes ([]string: []) - List of absolute path prefixes used to match any access for external location (ex: /var/data/). Empty list mean no access to external location.
  • +
+

+ + + blockstore.s3 + + +

+ + +
    +
  • blockstore.s3.region (string : "us-east-1") - Default region for lakeFS to use when interacting with S3.
  • +
  • blockstore.s3.profile (string : ) - If specified, will be used as a named credentials profile
  • +
  • blockstore.s3.credentials_file (string : ) - If specified, will be used as a credentials file
  • +
  • blockstore.s3.credentials.access_key_id (string : ) - If specified, will be used as a static set of credential
  • +
  • blockstore.s3.credentials.secret_access_key (string : ) - If specified, will be used as a static set of credential
  • +
  • blockstore.s3.credentials.session_token (string : ) - If specified, will be used as a static session token
  • +
  • blockstore.s3.endpoint (string : ) - If specified, custom endpoint for the AWS S3 API (https://s3_compatible_service_endpoint:port)
  • +
  • blockstore.s3.force_path_style (bool : false) - When true, use path-style S3 URLs (https:/// instead of https://.)
  • +
  • blockstore.s3.discover_bucket_region (bool : true) - (Can be turned off if the underlying S3 bucket doesn’t support the GetBucketRegion API).
  • +
  • blockstore.s3.skip_verify_certificate_test_only (bool : false) - Skip certificate verification while connecting to the storage endpoint. Should be used only for testing.
  • +
  • blockstore.s3.server_side_encryption (string : ) - Server side encryption format used (Example on AWS using SSE-KMS while passing “aws:kms”)
  • +
  • blockstore.s3.server_side_encryption_kms_key_id (string : ) - Server side encryption KMS key ID
  • +
  • blockstore.s3.pre_signed_expiry (time duration : "15m") - Expiry of pre-signed URL.
  • +
  • blockstore.s3.pre_signed_endpoint (string : ) - Custom endpoint for pre-signed URLs.
  • +
  • blockstore.s3.disable_pre_signed (bool : false) - Disable use of pre-signed URL.
  • +
  • blockstore.s3.disable_pre_signed_ui (bool : true) - Disable use of pre-signed URL in the UI.
  • +
  • blockstore.s3.disable_pre_signed_multipart (bool : ) - Disable use of pre-signed multipart upload experimental, enabled on s3 block adapter with presign support.
  • +
  • blockstore.s3.client_log_request (bool : false) - Set SDK logging bit to log requests
  • +
  • blockstore.s3.client_log_retries (bool : false) - Set SDK logging bit to log retries
  • +
+

+ + + blockstore.azure + + +

+ + +
    +
  • blockstore.azure.storage_account (string : ) - If specified, will be used as the Azure storage account
  • +
  • blockstore.azure.storage_access_key (string : ) - If specified, will be used as the Azure storage access key
  • +
  • blockstore.azure.pre_signed_expiry (time duration : "15m") - Expiry of pre-signed URL.
  • +
  • blockstore.azure.disable_pre_signed (bool : false) - Disable use of pre-signed URL.
  • +
  • blockstore.azure.disable_pre_signed_ui (bool : true) - Disable use of pre-signed URL in the UI.
  • +
  • blockstore.azure.china_cloud (bool : false) - Enable for using lakeFS on Azure China Cloud.
    +Note: Deprecated - In favor of blockstore.azure.domain
  • +
  • blockstore.azure.domain (string : blob.core.windows.net) - Enables support of different Azure cloud domains. Current supported domains (in Beta stage): [blob.core.chinacloudapi.cn, blob.core.usgovcloudapi.net]
  • +
+

+ + + blockstore.gs + + +

+ + +
    +
  • blockstore.gs.credentials_file (string : ) - If specified will be used as a file path of the JSON file that contains your Google service account key
  • +
  • blockstore.gs.credentials_json (string : ) - If specified will be used as JSON string that contains your Google service account key (when credentials_file is not set)
  • +
  • blockstore.gs.pre_signed_expiry (time duration : "15m") - Expiry of pre-signed URL.
  • +
  • blockstore.gs.disable_pre_signed (bool : false) - Disable use of pre-signed URL.
  • +
  • blockstore.gs.disable_pre_signed_ui (bool : true) - Disable use of pre-signed URL in the UI.
  • +
  • blockstore.gs.server_side_encryption_customer_supplied (string : ) - Server side encryption with AES key in hex format, exclusive with key ID below
  • +
  • blockstore.gs.server_side_encryption_kms_key_id (string : ) - Server side encryption KMS key ID, exclusive with above
  • +
+

+ + + graveler + + +

+ + +
    +
  • graveler.ensure_readable_root_namespace (bool: true) - When creating a new repository use this to verify that lakeFS has access to the root of the underlying storage namespace. Set false only if lakeFS should not have access (i.e pre-sign mode only).
  • +
  • graveler.max_batch_delay (duration : 3ms) - Controls the server batching period for references store operations.
  • +
  • graveler.background.rate_limit (int : 0) - Requests per seconds limit on background work performed (default: 0 - unlimited), like deleting committed staging tokens.
  • +
+

+ + + graveler.repository_cache + + +

+ + +
    +
  • graveler.reposiory_cache.size (int : 1000) - How many items to store in the repository cache.
  • +
  • graveler.reposiory_cache.ttl (time duration : "5s") - How long to store an item in the repository cache.
  • +
  • graveler.reposiory_cache.jitter (time duration : "2s") - A random amount of time between 0 and this value is added to each item’s TTL.
  • +
+

+ + + graveler.commit_cache + + +

+ + +
    +
  • graveler.commit_cache.size (int : 50000) - How many items to store in the commit cache.
  • +
  • graveler.commit_cache.ttl (time duration : "10m") - How long to store an item in the commit cache.
  • +
  • graveler.commit_cache.jitter (time duration : "2s") - A random amount of time between 0 and this value is added to each item’s TTL.
  • +
+

+ + + committed + + +

+ + +
    +
  • committed.block_storage_prefix (string : _lakefs) - Prefix for metadata file storage +in each repository’s storage namespace
  • +
  • committed.sstable.memory.cache_size_bytes (int : 200_000_000) - maximal size of +in-memory cache used for each SSTable reader.
  • +
+

+ + + committed.local_cache + + +

+ + +

An object describing the local (on-disk) cache of metadata from permanent storage.

+
    +
  • committed.local_cache.size_bytes (int : 1073741824) - bytes for local cache to use on disk. The cache may use more storage for short periods of time.
  • +
  • committed.local_cache.dir (string, ~/lakefs/local_tier) - directory to store local cache.
  • +
  • committed.local_cache.range_proportion (float : 0.9) - proportion of local cache to +use for storing ranges (leaves of committed metadata storage).
  • +
  • committed.local_cache.range.open_readers (int : 500) - maximal number of unused open +SSTable readers to keep for ranges.
  • +
  • committed.local_cache.range.num_shards (int : 30) - sharding factor for open SSTable +readers for ranges. Should be at least sqrt(committed.local_cache.range.open_readers).
  • +
  • committed.local_cache.metarange_proportion (float : 0.1) - proportion of local cache +to use for storing metaranges (roots of committed metadata storage).
  • +
  • committed.local_cache.metarange.open_readers (int : 50) - maximal number of unused open +SSTable readers to keep for metaranges.
  • +
  • committed.local_cache.metarange.num_shards (int : 10) - sharding factor for open +SSTable readers for metaranges. Should be at least +sqrt(committed.local_cache.metarange.open_readers).
  • +
+

+ + + committed.permanent + + +

+ + +
    +
  • committed.permanent.min_range_size_bytes (int : 0) - Smallest allowable range in +metadata. Increase to somewhat reduce random access time on committed metadata, at the cost +of increased committed metadata storage cost.
  • +
  • committed.permanent.max_range_size_bytes (int : 20971520) - Largest allowable range in +metadata. Should be close to the size at which fetching from remote storage becomes linear.
  • +
  • committed.permanent.range_raggedness_entries (int : 50_000) - Average number of object +pointers to store in each range (subject to min_range_size_bytes and +max_range_size_bytes).
  • +
+

+ + + email + + +

+ + +
    +
  • email.smtp_host (string) - A string representing the URL of the SMTP host.
  • +
  • email.smtp_port (int) - An integer representing the port of the SMTP service (465, 587, 993, 25 are some standard ports)
  • +
  • email.use_ssl (bool : false) - Use SSL connection with SMTP host.
  • +
  • email.username (string) - A string representing the username of the specific account at the SMTP. It’s recommended to provide this value at runtime from a secret vault of some sort.
  • +
  • email.password (string) - A string representing the password of the account. It’s recommended to provide this value at runtime from a secret vault of some sort.
  • +
  • email.local_name (string) - A string representing the hostname sent to the SMTP server with the HELO command. By default, “localhost” is sent.
  • +
  • email.sender (string) - A string representing the email account which is set as the sender.
  • +
  • email.limit_every_duration (duration : 1m) - The average time between sending emails. If zero is entered, there is no limit to the amount of emails that can be sent.
  • +
  • email.burst (int: 10) - Maximal burst of emails before applying limit_every_duration. The zero value means no burst and therefore no emails can be sent.
  • +
  • email.lakefs_base_url (string : "http://localhost:8000") - A string representing the base lakeFS endpoint to be directed to when emails are sent inviting users, reseting passwords etc.
  • +
+

+ + + gateways + + +

+ + +
    +
  • gateways.s3.domain_name (string : "s3.local.lakefs.io") - a FQDN +representing the S3 endpoint used by S3 clients to call this server +(*.s3.local.lakefs.io always resolves to 127.0.0.1, useful for +local development, if using virtual-host addressing.
  • +
  • gateways.s3.region (string : "us-east-1") - AWS region we’re pretending to be in, it should match the region configuration used in AWS SDK clients
  • +
  • gateways.s3.fallback_url (string) - If specified, requests with a non-existing repository will be forwarded to this URL. This can be useful for using lakeFS side-by-side with S3, with the URL pointing at an S3Proxy instance.
  • +
  • gateways.s3.verify_unsupported (bool : true) - The S3 gateway errors on unsupported requests, but when disabled, defers to target-based handlers.
  • +
+

+ + + tls + + +

+ + +
    +
  • tls.enabled (bool :false) - Enable TLS listening. The listen_address will be used to serve HTTPS requests. (mainly for local development)
  • +
  • tls.cert_file (string : ) - Server certificate file path used while serve HTTPS (.cert or .crt file - signed certificates).
  • +
  • tls.key_file (string : ) - Server secret key file path used whie serve HTTPS (.key file - private key).
  • +
+

+ + + stats + + +

+ + +
    +
  • stats.enabled (bool : true) - Whether to periodically collect anonymous usage statistics
  • +
  • stats.flush_interval (duration : 30s) - Interval used to post anonymous statistics collected
  • +
  • stats.flush_size (int : 100) - A size (in records) of anonymous statistics collected in which we post
  • +
+

+ + + installation + + +

+ + +
    +
  • installation.user_name (string : ) - When specified, an initial admin user will be created when the server is first run. Works only when database.type is set to local. Requires installation.access_key_id and installation.secret_access_key.
  • +
  • installation.access_key_id (string : ) - Admin’s initial access key id (used once in the initial setup process)
  • +
  • installation.secret_access_key (string : ) - Admin’s initial secret access key (used once in the initial setup process)
  • +
  • installation.allow_inter_region_storage (bool : true) - Allow storage in a different region than the one the server is running in.
  • +
+

+ + + usage_report + + +

+ + +
    +
  • usage_report.enabled (bool : true) - Store API and Gateway usage reports into key-value store.
  • +
  • usage_report.flush_interval (duration : 5m) - Sets interval for flushing in-memory usage data to key-value store.
  • +
+

+ + + ui + + +

+ + +
    +
  • ui.enabled (bool: true) - Whether to serve the embedded UI from the binary
  • +
+

+ + + security + + +

+ + +
    +
  • security.audit_check_interval (duration : 24h) - Duration in which we check for security audit.
  • +
+

+ + + garbage collection + + +

+ + +
    +
  • ugc.prepare_max_file_size (int: 125829120) - Uncommitted garbage collection prepare request, limit the produced file maximum size
  • +
  • ugc.prepare_interval (duraction: 1m) - Uncommitted garbage collection prepare request, limit produce time to interval
  • +
+

+ + + Using Environment Variables + + +

+ + +

All the configuration variables can be set or overridden using environment variables. +To set an environment variable, prepend LAKEFS_ to its name, convert it to upper case, and replace . with _:

+ +

For example, logging.format becomes LAKEFS_LOGGING_FORMAT, blockstore.s3.region becomes LAKEFS_BLOCKSTORE_S3_REGION, etc.

+

+ + + Example Configurations + + +

+ +

+ + + Local Development with PostgreSQL database + + +

+ + +
---
+listen_address: "0.0.0.0:8000"
+
+database:
+  type: "postgres"
+  postgres:
+    connection_string: "postgres://localhost:5432/postgres?sslmode=disable"
+
+logging:
+  format: text
+  level: DEBUG
+  output: "-"
+
+auth:
+  encrypt:
+    secret_key: "10a718b3f285d89c36e9864494cdd1507f3bc85b342df24736ea81f9a1134bcc"
+
+blockstore:
+  type: local
+  local:
+    path: "~/lakefs/dev/data"
+
+gateways:
+  s3:
+    region: us-east-1
+
+

+ + + AWS Deployment with DynamoDB database + + +

+ + +
---
+logging:
+  format: json
+  level: WARN
+  output: "-"
+
+database:
+  type: "dynamodb"
+  dynamodb:
+    table_name: "kvstore"
+
+auth:
+  encrypt:
+    secret_key: "10a718b3f285d89c36e9864494cdd1507f3bc85b342df24736ea81f9a1134bcc"
+
+blockstore:
+  type: s3
+  s3:
+    region: us-east-1 # optional, fallback in case discover from bucket is not supported
+    credentials_file: /secrets/aws/credentials
+    profile: default
+
+
+

+ + + Google Storage + + +

+ + +
---
+logging:
+  format: json
+  level: WARN
+  output: "-"
+
+database:
+  type: "postgres"
+  postgres:
+    connection_string: "postgres://user:pass@lakefs.rds.amazonaws.com:5432/postgres"
+
+auth:
+  encrypt:
+    secret_key: "10a718b3f285d89c36e9864494cdd1507f3bc85b342df24736ea81f9a1134bcc"
+
+blockstore:
+  type: gs
+  gs:
+    credentials_file: /secrets/lakefs-service-account.json
+
+
+

+ + + MinIO + + +

+ + +
---
+logging:
+  format: json
+  level: WARN
+  output: "-"
+
+database:
+  type: "postgres"
+  postgres:
+    connection_string: "postgres://user:pass@lakefs.rds.amazonaws.com:5432/postgres"
+
+auth:
+  encrypt:
+    secret_key: "10a718b3f285d89c36e9864494cdd1507f3bc85b342df24736ea81f9a1134bcc"
+
+blockstore:
+  type: s3
+  s3:
+    force_path_style: true
+    endpoint: http://localhost:9000
+    discover_bucket_region: false
+    credentials:
+      access_key_id: minioadmin
+      secret_access_key: minioadmin
+
+
+

+ + + Azure blob storage + + +

+ + +
---
+logging:
+  format: json
+  level: WARN
+  output: "-"
+
+database:
+  type: "cosmosdb"
+  cosmosdb:
+    key: "ExampleReadWriteKeyMD7nkPOWgV7d4BUjzLw=="
+    endpoint: "https://lakefs-account.documents.azure.com:443/"
+    database: "lakefs-db"
+    container: "lakefs-container"
+
+auth:
+  encrypt:
+    secret_key: "10a718b3f285d89c36e9864494cdd1507f3bc85b342df24736ea81f9a1134bcc"
+
+blockstore:
+  type: azure
+  azure:
+    storage_account: exampleStorageAcount
+    storage_access_key: ExampleAcessKeyMD7nkPOWgV7d4BUjzLw==
+
+
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/reference/export.html b/v1.46/reference/export.html new file mode 100644 index 000000000..8f8def37e --- /dev/null +++ b/v1.46/reference/export.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/reference/external-principals-aws.html b/v1.46/reference/external-principals-aws.html new file mode 100644 index 000000000..082f21417 --- /dev/null +++ b/v1.46/reference/external-principals-aws.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/reference/garbage-collection.html b/v1.46/reference/garbage-collection.html new file mode 100644 index 000000000..45b0557bc --- /dev/null +++ b/v1.46/reference/garbage-collection.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/reference/glossary.html b/v1.46/reference/glossary.html new file mode 100644 index 000000000..79940fc4e --- /dev/null +++ b/v1.46/reference/glossary.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/reference/hooks.html b/v1.46/reference/hooks.html new file mode 100644 index 000000000..2ee933063 --- /dev/null +++ b/v1.46/reference/hooks.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/reference/index.html b/v1.46/reference/index.html new file mode 100644 index 000000000..5755241d0 --- /dev/null +++ b/v1.46/reference/index.html @@ -0,0 +1,776 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Reference | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + +
+ +

+ + + lakeFS Reference + + +

+ + +

lakeFS Docs

+

+ + + API + + +

+ + + +

+ + + Components + + +

+ + + +

+ + + Clients + + +

+ + + +

+ + + Security + + +

+ + + +

+ + + Other Reference Documentation + + +

+ + + + + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/reference/merge.html b/v1.46/reference/merge.html new file mode 100644 index 000000000..9a856dde2 --- /dev/null +++ b/v1.46/reference/merge.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/reference/monitor.html b/v1.46/reference/monitor.html new file mode 100644 index 000000000..530262efd --- /dev/null +++ b/v1.46/reference/monitor.html @@ -0,0 +1,935 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Monitoring using Prometheus | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Monitoring using Prometheus + + +

+ + +
+

+ + + Table of contents + + +

+ + +
    +
  1. Example prometheus.yml
  2. +
  3. Metrics exposed by lakeFS
  4. +
  5. Example queries
  6. +
+ +
+

+ + + Example prometheus.yml + + +

+ + +

lakeFS exposes metrics through the same port used by the lakeFS service, using the standard /metrics path. +An example prometheus.yml could look like this:

+ +
scrape_configs:
+- job_name: lakeFS
+  scrape_interval: 10s
+  metrics_path: /metrics
+  static_configs:
+  - targets:
+    - lakefs.example.com:8000
+
+

+ + + Metrics exposed by lakeFS + + +

+ + +

By default, Prometheus exports metrics with OS process information like memory and CPU. +It also includes Go-specific metrics such as details about GC and a number of goroutines. +You can learn about these default metrics in this post.

+ +

In addition, lakeFS exposes the following metrics to help monitor your deployment:

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name in PrometheusDescriptionLabels
api_requests_totallakeFS API requests (counter)code: http status
method: http method
api_request_duration_secondsDurations of lakeFS API requests (histogram)
operation: name of API operation
code: http status
gateway_request_duration_secondslakeFS S3-compatible endpoint request (histogram)
operation: name of gateway operation
code: http status
s3_operation_duration_secondsOutgoing S3 operations (histogram)
operation: operation name
error: “true” if error, “false” otherwise
gs_operation_duration_secondsOutgoing Google Storage operations (histogram)
operation: operation name
error: “true” if error, “false” otherwise
azure_operation_duration_secondsOutgoing Azure storage operations (histogram)
operation: operation name
error: “true” if error, “false” otherwise
kv_request_duration_secondsDurations of KV requests(histogram)
operation: name of KV operation
type: KV type(dynamodb, postgres, etc)
dynamo_request_duration_secondsTime spent doing DynamoDB requestsoperation: DynamoDB operation name
dynamo_consumed_capacity_totalThe capacity units consumed by operationoperation: DynamoDB operation name
dynamo_failures_totalThe total number of errors while working for kv storeoperation: DynamoDB operation name
pgxpool_acquire_countPostgreSQL cumulative count of successful acquires from the pooldb_name default to the kv table name (kv)
pgxpool_acquire_duration_nsPostgreSQL total duration of all successful acquires from the pool in nanosecondsdb_name default to the kv table name (kv)
pgxpool_acquired_connsPostgreSQL number of currently acquired connections in the pooldb_name default to the kv table name (kv)
pgxpool_canceled_acquire_countPostgreSQL cumulative count of acquires from the pool that were canceled by a contextdb_name default to the kv table name (kv)
pgxpool_constructing_connsPostgreSQL number of conns with construction in progress in the pooldb_name default to the kv table name (kv)
pgxpool_empty_acquirePostgreSQL cumulative count of successful acquires from the pool that waited for a resource to be released or constructed because the pool was emptydb_name default to the kv table name (kv)
pgxpool_idle_connsPostgreSQL number of currently idle conns in the pooldb_name default to the kv table name (kv)
pgxpool_max_connsPostgreSQL maximum size of the pooldb_name default to the kv table name (kv)
pgxpool_total_connsPostgreSQL total number of resources currently in the pooldb_name default to the kv table name (kv)
+

+ + + Example queries + + +

+ + +

Note: when using Prometheus functions like rate +or increase, results are extrapolated and may not be exact.

+

+ + + 99th percentile of API request latencies + + +

+ + +
sum by (operation)(histogram_quantile(0.99, rate(api_request_duration_seconds_bucket[1m])))
+
+

+ + + 50th percentile of S3-compatible API latencies + + +

+ + +
sum by (operation)(histogram_quantile(0.5, rate(gateway_request_duration_seconds_bucket[1m])))
+
+

+ + + Number of errors in outgoing S3 requests + + +

+ + +
sum by (operation) (increase(s3_operation_duration_seconds_count{error="true"}[1m]))
+
+

+ + + Number of open connections to the database + + +

+ + +
go_sql_stats_connections_open
+
+

+ + + Example Grafana dashboard + + +

+ + +

Grafana dashboard example

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/reference/mount-csi-driver.html b/v1.46/reference/mount-csi-driver.html new file mode 100644 index 000000000..856709928 --- /dev/null +++ b/v1.46/reference/mount-csi-driver.html @@ -0,0 +1,1347 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Mount CSI Driver | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Mount CSI Driver (Everest on Kubernetes) + + +

+ + +

lakeFS Cloud

+ +

lakeFS Enterprise

+ +

The lakeFS CSI (Container Storage Interface) Driver is an extension for Kubernetes that enables seamless access to data within a lakeFS repository, allowing Pods to interact with lakeFS data as if it were part of the local filesystem. This driver builds on the functionality of Everest, which provides a read-only view of lakeFS data by virtually mounting a repository.

+ +

Note +⚠️ The CSI Driver is in private preview. Please contact us to get access.

+ + +

+ + + How mount is executed on a Host + + +

+ + +
    +
  • While the csi driver is responsible for mounting and unmounting the volume on the host, it does not need permissions to execute the mount and umount commands directly.
  • +
  • The everest commands are executed by systemd service on the Host itself (i.e everest mount...).
  • +
  • The csi driver communicates with the systemd service via a unix socket to execute the mount and umount commands.
  • +
+

+ + + Status and Limitations + + +

+ + +
    +
  • Tested OS: BottleRocket-OS, Amazon Linux 2 and RHEL 8.
  • +
  • Minimal Kubernetes versions >=1.23.0.
  • +
  • Tested Cluster providers EKS, Openshift (Partially).
  • +
  • Static provisioning only explain below.
  • +
  • Setting Pods securityContext UID and GID (i.e runAsUser: 1000, runAsGroup: 2000) is very neuanced in nature and does not have wide coverage currently, not supported but might work.
  • +
  • Pod only supports access mode ReadOnlyMany
  • +
+ +

Static Provisioning only (Relevant for pods)

+ +

When requesting a mount from the CSI driver, the driver will create a PersistentVolume (PV) and PersistentVolumeClaim (PVC) for the Pod. +The driver only supports Static Provisioning as of today, and you need an existing lakeFS repository to use.

+ +

To use Static Provisioning, you should set storageClassName field of your PersistentVolume (PV) and PersistentVolumeClaim (PVC) to "" (empty string). Also, in order to make sure no other PVCs can claim your PV, you should define a one-to-one mapping using claimRef.

+

+ + + Requirements + + +

+ + +
    +
  1. For enterprise installations: lakeFS Version 1.25.0 or higher.
  2. +
  3. You have a Kubernetes cluster with version >=1.23.0 and Helm installed.
  4. +
  5. lakeFS Server that can be access from pods in the cluster.
  6. +
  7. Access to download treeverse/everest-lakefs-csi-driver from Docker Hub. Contact us to gain access to lakeFS Enterprise features.
  8. +
+

+ + + Deploy the CSI Driver + + +

+ + +

The CSI Driver is deployed to K8S cluster using a dedicated Helm chart everest-lakefs-csi-driver.

+

+ + + 1. Update your helm with the chart: + + +

+ + +

Add lakeFS Helm repository if not already added:

+ +
helm repo add lakefs https://charts.lakefs.io
+
+ +

Fetch the chart from lakeFS repository:

+ +
helm repo update lakefs
+
+ +

Verify the chart is available and updated:

+ +
helm show chart lakefs/everest-lakefs-csi-driver 
+
+ +

List all available chart versions:

+ +
helm search repo lakefs/everest-lakefs-csi-driver -l
+
+

+ + + 2. Configure the values for the CSI Driver in a values.yaml file + + +

+ + +

Helm Chart default values:

+ +
helm show values lakefs/everest-lakefs-csi-driver --version <version>
+
+ +

CSI driver config:

+ +

All the driver CLI flags can be configured via environment variables (prefiedx CSI_DRIVER_) and can be passed to the driver.

+ +

Example values.yaml file - Minimal required arguments not commented:

+ +
# image:  
+#   repository: treeverse/everest-lakefs-csi-driver
+# # Optional CSI Driver override version (default .Chart.AppVersion)
+#   tag: 1.2.3
+
+# Same as fluffy https://github.com/treeverse/fluffy?tab=readme-ov-file#1-dockerhub-token-for-fluffy
+imagePullSecret:
+  token: <dockerhub-token>
+  username: <dockerhub-user>
+
+# Credentials that will be used by everest as a default to access lakeFS mount paths
+lakeFSAccessSecret:
+  keyId: <lakefs-key-id>
+  accessKey: <lakefs-access-key>
+  endpoint: <lakefs-endpoint>
+
+node:
+  # verbosity level of the driver (normal values are 0-4, 5 would be most verbose)
+  logLevel: 4
+  # Only set if having issues with running or installing the everest binary 
+  # Path directory where the everest binary accessed by the underlying K8S Nodes (${everestInstallPath}/everest)
+  # The binary will copied from the CSI pod into that location by the init container job in the node.yaml
+  # This path will be a host path on the K8S Nodes
+  # depending on the underlying OS and the SELinux policy the binary will be executed by systemd on the Host.
+  # Known issue when using Bottlerocket OS https://github.com/bottlerocket-os/bottlerocket/pull/3779 
+  # everestInstallPath: /opt/everest-mount/bin/  # should end with "/"
+
+# Additional environment variables that will be passed to the driver can be used to configure the csi driver
+# extraEnvVars:
+#   - name: CSI_DRIVER_MOUNT_TIMEOUT
+#     value: "30s"
+#   - name: CSI_DRIVER_EVEREST_DEFAULT_CACHE_SIZE
+#     value: "10000000000"
+#   - name: VALUE_FROM_SECRET
+#     valueFrom:
+#       secretKeyRef:
+#         name: secret_name
+#         key: secret_key
+
+

+ + + 3. Install the Chart to K8S cluster + + +

+ + +

Install the chart with the values file:

+ +
helm install -f values.yaml lakefs lakefs/everest-lakefs-csi-driver --version <version>
+
+

+ + + Use in Pods + + +

+ + +

Once the CSI Driver is installed, we can start using it similarly to how all PersistentVolume (PV) and PersistentVolumeClaim (PVC) are used in Kubernetes.

+ +

The only required argument to set is lakeFSMountUri in the PV (See examples below).

+

+ + + Mount Options + + +

+ + +

Most of the options are optional and can be omitted, but each mount request can be configured with everest mount cli options, they are passed as mountOptions in the PVC spec.

+

+ + + Examples + + +

+ + +

The examples demonstrates different mount sncenarios with the CSI Driver. +All of them are essentially running ls <mount-dir> and tail -f /dev/null in a centos container. +If the mount succeeded you will see the contents of your mount directory.

+ +
    +
  1. Set lakeFSMountUri (i.e lakefs://<repo>/<repo>/[prefix/]) to the lakeFS mount URI you want to mount.
  2. +
  3. Run kubectl apply -f values.yaml
  4. +
  5. View the example pod logs to see the mount output kubectl logs -f <pod-name>
  6. +
+ +
+ + +
+ +

Configure lakeFSMountUri to the target URI.

+ +
apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: everest-pv
+spec:
+  capacity:
+    storage: 100Gi # ignored, required
+  accessModes:
+    - ReadOnlyMany # supported options: ReadOnlyMany
+  # everest mount options goes under mountOptions and forwarded to the everest mount command 
+  # mountOptions:
+    # set cache size in bytes 
+    # - cache-size 1000000000
+  csi:
+    driver: csi.everest.lakefs.io # required
+    volumeHandle: everest-csi-driver-volume
+    volumeAttributes:
+      # mount target, replace with your lakeFS mount URI
+      lakeFSMountUri: <LAKEFS_MOUNT_URI>
+
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+  name: everest-claim
+spec:
+  accessModes:
+    - ReadOnlyMany # supported options: ReadOnlyMany
+  storageClassName: "" # required for static provisioning
+  resources:
+    requests:
+      storage: 5Gi # ignored, required
+  volumeName: everest-pv
+---
+apiVersion: v1
+kind: Pod
+metadata:
+  name: everest-app
+spec:
+  containers:
+    - name: app
+      image: centos
+      command: ["/bin/sh"]
+      args: ["-c", "ls /data/; tail -f /dev/null"]
+      volumeMounts:
+        - name: persistent-storage-isan
+          mountPath: /data
+  volumes:
+    - name: persistent-storage-isan
+      persistentVolumeClaim:
+        claimName: everest-claim
+
+
+ +
+
+ +

Configure lakeFSMountUri to the target URI. +In this example a deployment is created with 3 replicas, all sharing a single PersistentVolume and PVC +Behind the scenes each pod get’s their own mount, even if on the same k8s node, each pod will get their own mount directory. +Unlike in StatefulSet, this can scale-up-down with no additional interference and deleted easily the same way.

+ +
apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: multiple-pods-one-pv
+spec:
+  capacity:
+    storage: 1200Gi # ignored, required
+  accessModes:
+    - ReadOnlyMany # supported options: ReadOnlyMany
+  # everest mount options goes under mountOptions and forwarded to the everest mount command 
+  # mountOptions:
+  #   - cache-size 1000000555
+  csi:
+    driver: csi.everest.lakefs.io # required
+    volumeHandle: everest-csi-driver-volume
+    volumeAttributes:
+      # mount target, replace with your lakeFS mount URI
+      lakeFSMountUri: <LAKEFS_MOUNT_URI>
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+  name: multiple-pods-one-claim
+spec:
+  accessModes:
+    - ReadOnlyMany # supported options: ReadOnlyMany
+  storageClassName: "" # required for static provisioning
+  resources:
+    requests:
+      storage: 1200Gi # ignored, required
+  volumeName: multiple-pods-one-pv
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: multiple-pods-one-pv-app
+  labels:
+    app: multiple-pods-one-pv-app
+spec:
+  replicas: 3
+  selector:
+    matchLabels:
+      app: multiple-pods-one-pv-app
+  template:
+    metadata:
+      labels:
+        app: multiple-pods-one-pv-app
+    spec:
+      containers:
+      - name: multiple-pods-one-pv-app
+        image: centos
+        command: ["/bin/sh"]
+        args: ["-c", "ls /data/; tail -f /dev/null"]
+        volumeMounts:
+        - name: persistent-storage
+          mountPath: /data
+        ports:
+        - containerPort: 80
+      volumes:
+      - name: persistent-storage
+        persistentVolumeClaim:
+          claimName: multiple-pods-one-claim
+
+
+
+
+ +

Deploy a pod with two mounts to different mount points. +Configure lakeFSMountUri for each PersistentVolume.

+ +
apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: multiple-mounts-one-pod-pv
+spec:
+  capacity:
+    storage: 1200Gi # ignored, required
+  accessModes:
+    - ReadOnlyMany # supported options: ReadOnlyMany
+  mountOptions:
+    - cache-size 1000000111
+  csi:
+    driver: csi.everest.lakefs.io # required
+    volumeHandle: everest-csi-driver-volume # must be unique
+    volumeAttributes:
+      # mount target local-lakefs dir, replace with your lakeFS mount URI
+      lakeFSMountUri: <LAKEFS_URI_1>
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+  name: multple-mounts-one-pod-claim
+spec:
+  accessModes:
+    - ReadOnlyMany # supported options: ReadOnlyMany
+  storageClassName: "" # required for static provisioning
+  resources:
+    requests:
+      storage: 1200Gi # ignored, required
+  volumeName: multiple-mounts-one-pod-pv
+---
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: multiple-mounts-one-pod-pv-2
+spec:
+  capacity:
+    storage: 1200Gi # ignored, required
+  accessModes:
+    - ReadOnlyMany # ReadOnlyMany
+  mountOptions:
+    - cache-size 1000000555
+  csi:
+    driver: csi.everest.lakefs.io # required
+    volumeHandle: everest-csi-driver-volume-2 # must be unique
+    volumeAttributes:
+      # mount target images dir, replace with your lakeFS mount URI
+      lakeFSMountUri: <LAKEFS_URI_2>
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+  name: multple-mounts-one-pod-claim-2
+spec:
+  accessModes:
+    - ReadOnlyMany # supported options: ReadOnlyMany
+  storageClassName: "" # required for static provisioning
+  resources:
+    requests:
+      storage: 1200Gi # ignored, required
+  volumeName: multiple-mounts-one-pod-pv-2
+---
+apiVersion: v1
+kind: Pod
+metadata:
+  name: everest-multi-mounts-one-pod
+spec:
+  containers:
+    - name: app
+      image: centos
+      command: ["/bin/sh"]
+      args: ["-c", "ls /data/; ls /data2/; tail -f /dev/null"]
+      volumeMounts:
+        - name: persistent-storage
+          mountPath: /data
+        - name: persistent-storage-2
+          mountPath: /data2
+  volumes:
+    - name: persistent-storage
+      persistentVolumeClaim:
+        claimName: multple-mounts-one-pod-claim
+    - name: persistent-storage-2
+      persistentVolumeClaim:
+        claimName: multple-mounts-one-pod-claim-2
+
+
+ +
+
+ +

Configure lakeFSMountUri to the target URI. +Because of the neuances described below, if not required it is best to avoid using a StatefulSet.

+ +

Deletion:

+ +

It’s intended behavior for StatefulSet in K8S that the PVC is not deleted automatically when the pod is deleted since the StatefulSet controller does not manage the PVC. +To completley delete use k delete with –force flag or first delete the PVC: ‘kubectl delete pvc -l app=sts-app-simple-everest’

+ +

Scale Down:

+ +

replicas: 0 can be set to scale down the StatefulSet and bring back up with replicas: 1.

+ +

Replicas > 1:

+ +

not supported in this example, since the driver only supports static provisoning. +to use Statefulset with replica > 1 we need to add PersistentVolume(s) manually.

+ +
apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: sts-simple-mount
+  labels:
+    app: sts-app-simple-everest
+spec:
+  capacity:
+    storage: 100Gi # ignored, required
+  accessModes:
+    - ReadOnlyMany # supported options: ReadOnlyMany
+  mountOptions:
+    # override default cache size for the mount (in bytes)
+    - cache-size 1000000555
+    - log-level debug
+  csi:
+    driver: csi.everest.lakefs.io # required
+    volumeHandle: everest-csi-driver-volume
+    volumeAttributes:
+      # mount target, replace with your lakeFS mount URI
+      lakeFSMountUri: <LAKEFS_MOUNT_URI>
+---
+apiVersion: apps/v1
+kind: StatefulSet
+metadata:
+  name: sts-app-simple-everest
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: sts-app-simple-everest
+  template:
+    metadata:
+      labels:
+        app: sts-app-simple-everest
+    spec:
+      containers:
+        - name: app
+          image: centos
+          command: ["/bin/sh"]
+          args: ["-c", "ls /data/; tail -f /dev/null"]
+          volumeMounts:
+            - name: sts-simple-mount
+              mountPath: /data
+  volumeClaimTemplates:
+  - metadata:
+      name: sts-simple-mount
+    spec:
+      selector:
+        matchLabels:
+          app: sts-app-simple-everest
+      storageClassName: "" # required for static provisioning
+      accessModes: [ "ReadOnlyMany" ]
+      resources:
+        requests:
+          storage: 5Gi # ignored, required
+
+
+
+ +
+ +

This demonstrates common flags and uncommon flags that can be used for a mount. +In general, the flags are set in mountOptions and are passed to the everest mount command.

+ +
apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: options-demo-pv
+spec:
+  capacity:
+    storage: 100Gi # ignored, required
+  accessModes:
+    - ReadOnlyMany # supported options: ReadOnlyMany
+  # everest mount options goes under mountOptions and forwarded to the everest mount command 
+  mountOptions:
+    # set cache size in bytes 
+    - cache-size 10000000
+    # set log level to debug when inspecting mount logs (very noisy!)
+    - log-level trace
+    # WARN: lakeFS credentials / endpoint should be managed securely by the CSI-driver, this is an advanced flag use-case
+    # override default lakeFS credentials (for use-cases where the default csi-driver credentials are not sufficient)
+    - lakectl-access-key-id <LAKEFS_ACCESS_KEY_ID>
+    - lakectl-secret-access-key <LAKEFS_SECRET_ACCESS_KEY>
+    - lakectl-server-url <LAKEFS_ENDPOINT>
+    # WARN: an advanced flag and rarelly needed if at all, performs mount directly using fuser relying on it to exist on the host server without using FUSE syscalls
+    # be default fuse-direct-mount is true
+    # - fuse-direct-mount false
+    # - mount-gid 2000
+    # - mount-uid 1000
+    # - presign false
+    # - log-enable-syslog false
+
+  csi:
+    driver: csi.everest.lakefs.io # required
+    volumeHandle: everest-csi-driver-volume
+    volumeAttributes:
+      # mount target, staging org (non default credentials on csi), replace with your lakeFS mount URI
+      lakeFSMountUri: <LAKEFS_MOUNT_URI>
+
+# REST OF THE RESOURCES
+# ... 
+
+
+ +
+

+ + + Troubleshooting + + +

+ + +
    +
  • Use kubectl and check the CSI driver pod and failed Pod for logs and events.
  • +
  • If a specific mount request failed, specifically inspect csi-node that the failed mount pod was deployed on.
  • +
  • Check the events and status of the PVC and PV of the failing pod kubectl get pv && kubectl get pvc
  • +
+ +

Advanced: SSH into the underlying K8S node:

+ +

Find the failed mount service systemctl list-units --type=service:

+ +
everest-lakefs-mount-0.0.8-everest-123.service loaded active running CSI driver FUSE daemon
+
+

Get systemd service status:

+ +
# service name example: everest-lakefs-mount-0.0.8-everest-123.service
+systemctl status <service>
+
+# output contains many things including the exec command to run, example:
+# ExecStart=/opt/bin/everest mount lakefs://test-mount/main/local-lakefs/ /var/lib/kubelet/pods/123/volumes/kubernetes.io~csi/everest-pv/mount --log-level=trace --cache-dir=/var/lib/kubelet/pods/123/volumes/kubernetes.io~csi/everest-pv/.everest --lakectl-config=/opt/mountpoint-s3-csi/bin/lakectl.yaml
+
+ +

See systemd logs of a service:

+ +
journalctl -f -u <service>
+
+# example:
+journalctl -f -u everest-lakefs-mount-0.0.8-everest-123.service
+
+ + + + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/reference/mount.html b/v1.46/reference/mount.html new file mode 100644 index 000000000..e0b52c59c --- /dev/null +++ b/v1.46/reference/mount.html @@ -0,0 +1,1099 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Mount | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Mount (Everest) + + +

+ +

lakeFS Cloud

+ +

lakeFS Enterprise

+ +

Everest is a complementary binary to lakeFS that allows users to virtually mount a remote lakeFS repository onto a local directory. +Once mounted, users can access the data as if it resides on their local filesystem, using any tool, library, or framework that reads from a local filesystem. +This functionality is currently in limited support and is a Read-Only file system and is pointing to a commit in lakeFS.

+ +

Note +⚠️ No installation is required. Please contact us to get access to the Everest binary.

+ +
+

+ + + Table of contents + + +

+ + +
    +
  1. Use Cases
  2. +
  3. Requirements
  4. +
  5. Authentication with lakeFS
  6. +
  7. Command Line Interface
  8. +
  9. Examples
  10. +
  11. FAQs
  12. +
+ +
+ + +

+ + + Use Cases + + +

+ + +
    +
  • Simplified Data Loading: With lakeFS Mount, there’s no need to write custom data loaders or use special SDKs. You can use your existing tools to read files directly from the filesystem.
  • +
  • Handle Large-scale Data Without changing Work Habits: Seamlessly scale from a few local files to millions without changing your tools or workflow. Use the same code from early experimentation all the way to production.
  • +
  • Enhanced Data Loading Efficiency: lakeFS Mount supports billions of files and offers fast data fetching, making it ideal for optimizing GPU utilization and other performance-sensitive tasks.
  • +
+

+ + + Requirements + + +

+ + +
    +
  • For enterprise installations: lakeFS Version 1.25.0 or higher.
  • +
+

+ + + OS and Protocol Support + + +

+ + +

Currently the implemented protocols are nfs and fuse.

+
    +
  • NFS V3 (Network File System) is supported on macOS.
  • +
  • FUSE is supported on Linux (no root required).
  • +
+

+ + + Authentication with lakeFS + + +

+ + +

The authentication with the target lakeFS server is equal to lakectl CLI. +Searching for lakeFS credentials and server endpoint in the following order:

+
    +
  • Command line flags --lakectl-access-key-id, --lakectl-secret-access-key and --lakectl-server-url
  • +
  • LAKECTL_* Environment variables
  • +
  • ~/.lakectl.yaml Configuration file or via --lakectl-config flag
  • +
+

+ + + Command Line Interface + + +

+ +

+ + + Mount Command + + +

+ + +

The mount command is used to mount a lakeFS repository to a local directory, it does it in 2 steps:

+
    +
  • Step 1: Starting a server that listens on a local address and serves the data from the remote lakeFS repository.
  • +
  • Step 2: Running the required mount command on the OS level to connect the server to the local directory.
  • +
+

+ + + Tips: + + +

+ + +
    +
  • Since the server runs in the background set --log-output /some/file to view the logs in a file.
  • +
  • Cache: Everest uses a local cache to store the data and metadata of the lakeFS repository. The optimal cache size is the size of the data you are going to read.
  • +
  • Reusing Cache: between restarts of the same mount endpoint, set --cache-dir to make sure the cache is reused.
  • +
  • Mounted data consistency: When providing lakeFS URI mount endpoint lakefs://<repo>/<ref>/<path> the <ref> should be a specific commit ID. If a branch/tag is provided, Everest will use the HEAD commit instead.
  • +
+

+ + + Usage + + +

+ +
everest mount <lakefs_uri> <mount_directory>
+
+Flags
+--presign: Use presign for downloading.
+--cache-dir: Directory to cache read files in.
+--cache-size: Size of the local cache in bytes.
+--cache-create-provided-dir: If cache-dir is explicitly provided and does not exist, create it.
+--listen: Address to listen on.
+--no-spawn: Do not spawn a new server, assume one is already running.
+--protocol: Protocol to use (default: nfs).
+--log-level: Set logging level.
+--log-format: Set logging output format.
+--log-output: Set logging output(s).
+
+

+ + + Umount Command + + +

+ +

The umount command is used to unmount a currently mounted lakeFS repository.

+ +
everest umount <data_directory>
+
+

+ + + mount-server Command (Advanced) + + +

+ + +

Note +⚠️ The mount-server command is for advanced use cases and will only spin the server without calling OS mount command.

+ +

The mount-server command starts a mount server manually. Generally, users would use the mount command which handles server operations automatically.

+ +
everest mount-server <remote_mount_uri>
+Flags
+--cache-dir: Directory to cache read files and metadata.
+--cache-create-provided-dir: Create the cache directory if it does not exist.
+--listen: Address to listen on.
+--protocol: Protocol to use (nfs | webdav).
+--callback-addr: Callback address to report back to.
+--log-level: Set logging level.
+--log-format: Set logging output format.
+--log-output: Set logging output(s).
+--cache-size: Size of the local cache in bytes.
+--parallelism: Number of parallel downloads for metadata.
+--presign: Use presign for downloading.
+
+

+ + + Examples + + +

+ + +

Note +⚠️ For simplicity, the examples show main as the ref, Everest will always mount a specific commit ID, given a ref it will use the HEAD (e.g most recent commit).

+

+ + + Data Exploration + + +

+ +

Mount the lakeFS repository and explore data as if it’s on the local filesystem.

+ +
everest mount "lakefs://image-repo/main/datasets/pets/" "./pets"
+ls -l "./pets/dogs/"
+find ./pets -name "*.small.jpg"
+open -a Preview "./pets/dogs/golden_retrievers/cute.jpg"
+everest umount "./pets"
+
+
+

+ + + Working with Data Locally + + +

+ +

Mount the remote lakeFS server and use all familiar tools without changing the workflow.

+
everest mount "lakefs://image-repo/main/datasets/pets/" "./pets"
+pytorch_train.py --input "./pets"
+duckdb "SELECT * FROM read_parquet('pets/labels.parquet')"
+everest umount "./pets"
+
+

+ + + FAQs + + +

+ + + +

+ + + How do I get started with lakeFS Mount (Everest)? + + +

+ + +

lakeFS Mount is avaialble for lakeFS Cloud and lakeFS Enterprise customers. Once your setup is complete, contact us to access the lakeFS Mounts binary and follow the provided docs.

+ +
    +
  • Want to try lakeFS Cloud? Signup for a 30-day free trial.
  • +
  • Interested in lakeFS Enterprise? Contact sales for a 30-day free license.
  • +
+

+ + + Can I write to lakeFS using lakeFS Mount? + + +

+ + +

Currently, lakeFS Mount supports read-only file system operations. Write support is on our roadmap and will be added in the future.

+

+ + + What operating systems are supported by lakeFS Mount? + + +

+ + +

lakeFS Mount supports Linux and MacOS. Windows support is on the roadmap.

+

+ + + How can I control access to my data when using lakeFS Mount? + + +

+ + +

You can use lakeFS’s existing Role-Based Access Control mechanism, which includes repository and path-level policies. lakeFS Mount translates filesystem operations into lakeFS API operations and authorizes them based on these policies.

+

+ + + Does data pass through the lakeFS server when using lakeFS Mount? + + +

+ + +

lakeFS Mount leverages pre-signed URLs to read data directly from the underlying object store, meaning data doesn’t pass through the lakeFS server. By default, presign is enabled. To disable it, use:

+
everest mount <lakefs_uri> <mount_directory> --presign=false
+
+

+ + + What happens if a lakeFS branch is updated after I mount it? + + +

+ + +

lakeFS Mount points to the commit that was the HEAD commit of the branch at the time of mounting. This means the local directory reflects the branch state at the time of mounting and does not update with subsequent branch changes.

+

+ + + When are files downloaded to my local environment? + + +

+ +

lakeFS Mount uses a lazy prefetch strategy. Files are not downloaded at mount time or during operations that only inspect file metadata (e.g., ls). Files are downloaded only when commands that require file access (e.g., cat) are used.

+ + + +

When using lakeFS Mount, the volume of data accessed by the local machine influences the scale limitations more than the total size of the dataset under the mounted prefix. This is because lakeFS Mount uses a lazy downloading approach, meaning it only downloads the accessed files. lakeFS Mount listing capability is limited to performing efficiently for prefixes containing fewer than 8000 objects, but we are working to increase this limit.

+ + + +

Ensure your cache size is large enough to accommodate the volume of files being accessed.

+

+ + + How does lakeFS Mount integrate with a Git repository? + + +

+ + +

It is perfectly safe to mount a lakeFS path within a Git repository. +lakeFS Mount prevents git from adding mounted objects to the git repository (i.e when running git add -A) by adding a virtual .gitignore file to the mounted directory.

+ +

The .gitignore file will also instruct Git to ignore all files except .everest/source and in its absence, it will try to find a .everest/source file in the destination folder, and read the lakeFS URI from there. +Since .everest/source is in source control, it will mount the same lakeFS commit every time!

+

+ + + I’m already using lakectl local for working with lakeFS data locally, why should I use lakeFS Mount? + + +

+ + +

While both lakectl local and lakeFS Mount enable working with lakeFS data locally, they serve different purposes:

+
+ + + Use lakectl local + + +
+ + + +
+ + + Use lakeFS Mount + + +
+ + +

For read-only local data access. lakeFS Mount offers several benefits over lakectl local:

+
    +
  • Optimized selective data access: The lazy prefetch strategy saves storage space and reduces latency by only fetching the required data.
  • +
  • Reduced initial latency: Start working on your data immediately without waiting for downloads.
  • +
+ +

Note +Note: Write support for lakeFS Mount is on our roadmap.

+ + + + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/reference/object-model.html b/v1.46/reference/object-model.html new file mode 100644 index 000000000..8e9879ba3 --- /dev/null +++ b/v1.46/reference/object-model.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/reference/offboarding.html b/v1.46/reference/offboarding.html new file mode 100644 index 000000000..ad6a95fec --- /dev/null +++ b/v1.46/reference/offboarding.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/reference/presigned-url.html b/v1.46/reference/presigned-url.html new file mode 100644 index 000000000..c58aa34d7 --- /dev/null +++ b/v1.46/reference/presigned-url.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/reference/protected_branches.html b/v1.46/reference/protected_branches.html new file mode 100644 index 000000000..1c30c5849 --- /dev/null +++ b/v1.46/reference/protected_branches.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/reference/pull_requests.html b/v1.46/reference/pull_requests.html new file mode 100644 index 000000000..480d2c990 --- /dev/null +++ b/v1.46/reference/pull_requests.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/reference/rbac.html b/v1.46/reference/rbac.html new file mode 100644 index 000000000..3fdf4ca19 --- /dev/null +++ b/v1.46/reference/rbac.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/reference/remote-authenticator.html b/v1.46/reference/remote-authenticator.html new file mode 100644 index 000000000..723069491 --- /dev/null +++ b/v1.46/reference/remote-authenticator.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/reference/retention.html b/v1.46/reference/retention.html new file mode 100644 index 000000000..45b0557bc --- /dev/null +++ b/v1.46/reference/retention.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/reference/s3.html b/v1.46/reference/s3.html new file mode 100644 index 000000000..fee87778c --- /dev/null +++ b/v1.46/reference/s3.html @@ -0,0 +1,774 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +S3 Gateway API | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + S3-Supported API + + +

+ + +

The S3 Gateway emulates a subset of the API exposed by S3. +This subset includes all API endpoints relevant to data systems.

+ +

For more information, see architecture.

+ +

lakeFS supports the following API operations:

+ +
    +
  1. Identity and authorization +
      +
    1. SIGv2
    2. +
    3. SIGv4
    4. +
    +
  2. +
  3. Bucket operations: +
      +
    1. HEAD bucket
    2. +
    +
  4. +
  5. Object operations: +
      +
    1. DeleteObject
    2. +
    3. DeleteObjects
    4. +
    5. GetObject +
        +
      1. Support for caching headers, ETag
      2. +
      3. Support for range requests
      4. +
      5. No support for SSE
      6. +
      7. No support for SelectObject operations
      8. +
      +
    6. +
    7. HeadObject
    8. +
    9. PutObject +
        +
      1. Support multi-part uploads
      2. +
      3. No support for storage classes
      4. +
      5. No object level tagging
      6. +
      +
    10. +
    11. CopyObject
    12. +
    +
  6. +
  7. Object Listing: +
      +
    1. ListObjects
    2. +
    3. ListObjectsV2
    4. +
    5. Delimiter support (for "/" only)
    6. +
    +
  8. +
  9. Multipart Uploads: +
      +
    1. AbortMultipartUpload
    2. +
    3. CompleteMultipartUpload
    4. +
    5. CreateMultipartUpload
    6. +
    7. ListParts Currently supported only on AWS S3. Link to tracked issue
    8. +
    9. Upload Part
    10. +
    11. UploadPartCopy
    12. +
    +
  10. +
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/reference/spark-client.html b/v1.46/reference/spark-client.html new file mode 100644 index 000000000..a21785164 --- /dev/null +++ b/v1.46/reference/spark-client.html @@ -0,0 +1,923 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Spark Client | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + lakeFS Spark Metadata Client + + +

+ + +

Utilize the power of Spark to interact with the metadata on lakeFS. Possible use cases include:

+ +
    +
  • Creating a DataFrame for listing the objects in a specific commit or branch.
  • +
  • Computing changes between two commits.
  • +
  • Exporting your data for consumption outside lakeFS.
  • +
  • Bulk operations on the underlying storage.
  • +
+

+ + + Getting Started + + +

+ + +

Please note that Spark 2 is no longer supported with the lakeFS metadata client.

+ +

The Spark metadata client is compiled for Spark 3.1.2 with Hadoop 3.2.1, but +can work for other Spark versions and higher Hadoop versions.

+ +
+ +
+

Start Spark Shell / PySpark with the --packages flag, for instance:

+ +
spark-shell --packages io.lakefs:lakefs-spark-client_2.12:0.14.1
+
+ +

Alternatively use the assembled jar (an “Überjar”) on S3, from +s3://treeverse-clients-us-east/lakefs-spark-client/0.14.1/lakefs-spark-client-assembly-0.14.1.jar +by passing its path to --jars. +The assembled jar is larger but shades several common libraries. Use it if Spark +complains about bad classes or missing methods.

+
+
+

Include this assembled jar (an “Überjar”) from S3, from +s3://treeverse-clients-us-east/lakefs-spark-client/0.14.1/lakefs-spark-client-assembly-0.14.1.jar.

+
+
+

+ + + Configuration + + +

+ + +
    +
  1. +

    To read metadata from lakeFS, the client should be configured with your lakeFS endpoint and credentials, using the following Hadoop configurations:

    + +
    + + + + + + + + + + + + + + + + + + + + +
    ConfigurationDescription
    spark.hadoop.lakefs.api.urllakeFS API endpoint, e.g: http://lakefs.example.com/api/v1
    spark.hadoop.lakefs.api.access_keyThe access key to use for fetching metadata from lakeFS
    spark.hadoop.lakefs.api.secret_keyCorresponding lakeFS secret key
    +
  2. +
  3. +

    The client will also directly interact with your storage using Hadoop FileSystem. +Therefore, your Spark session must be able to access the underlying storage of your lakeFS repository. +There are various ways to do this, +but for a non-production environment you can use the following Hadoop configurations:

    + +
    + + + + + + + + + + + + + + + + +
    ConfigurationDescription
    spark.hadoop.fs.s3a.access.keyAccess key to use for accessing underlying storage on S3
    spark.hadoop.fs.s3a.secret.keyCorresponding secret key to use with S3 access key
    +

    + + + Assuming role on S3 (Hadoop 3 only) + + +

    + + +

    The client includes support for assuming a separate role on S3 when +running on Hadoop 3. It uses the same configuration used by +S3AFileSystem to assume the role on S3A. Apache Hadoop AWS +documentation has details under “Working with IAM Assumed +Roles”. You will need to use the following Hadoop +configurations:

    + +
    + + + + + + + + + + + + + + + + +
    ConfigurationDescription
    fs.s3a.aws.credentials.providerSet to org.apache.hadoop.fs.s3a.auth.AssumedRoleCredentialProvider
    fs.s3a.assumed.role.arnSet to the ARN of the role to assume
    +
  4. +
+

+ + + Examples + + +

+ + +
    +
  1. +

    Get a DataFrame for listing all objects in a commit:

    + +
    import io.treeverse.clients.LakeFSContext
    +    
    +val commitID = "a1b2c3d4"
    +val df = LakeFSContext.newDF(spark, "example-repo", commitID)
    +df.show
    +/* output example:
    +   +------------+--------------------+--------------------+-------------------+----+
    +   |        key |             address|                etag|      last_modified|size|
    +   +------------+--------------------+--------------------+-------------------+----+
    +   |     file_1 |791457df80a0465a8...|7b90878a7c9be5a27...|2021-03-05 11:23:30|  36|
    +   |     file_2 |e15be8f6e2a74c329...|95bee987e9504e2c3...|2021-03-05 11:45:25|  36|
    +   |     file_3 |f6089c25029240578...|32e2f296cb3867d57...|2021-03-07 13:43:19|  36|
    +   |     file_4 |bef38ef97883445c8...|e920efe2bc220ffbb...|2021-03-07 13:43:11|  13|
    +   +------------+--------------------+--------------------+-------------------+----+
    + */
    +
    +
  2. +
  3. +

    Run SQL queries on your metadata:

    + +
    df.createOrReplaceTempView("files")
    +spark.sql("SELECT DATE(last_modified), COUNT(*) FROM files GROUP BY 1 ORDER BY 1")
    +/* output example:
    +   +----------+--------+
    +   |        dt|count(1)|
    +   +----------+--------+
    +   |2021-03-05|       2|
    +   |2021-03-07|       2|
    +   +----------+--------+
    + */
    +
    +
  4. +
  5. +

    Search by user metadata:

    + +
    import io.treeverse.clients.LakeFSContext
    +
    +val namespace = "s3://bucket/repo/path/"
    +val df = LakeFSContext.newDF(spark, namespace)
    +
    +val key = "SomeKey"
    +val searchedValue = "val3"
    +df.select("key", "user_metadata")
    +	.filter(_.getMap[String, String](1).toMap.get(s"X-Amz-Meta-${key}").getOrElse("") == searchedValue)
    +	.show()
    +/* output example:
    +   +---------+-----------------------------------------------------+
    +   |key      |user_metadata                                        |
    +   +---------+-----------------------------------------------------+
    +   |file1.txt|{X-Amz-Meta-SomeKey -> val3, X-Amz-Meta-Tag -> blue} |
    +   |file8.txt|{X-Amz-Meta-SomeKey -> val3, X-Amz-Meta-Tag -> green}|
    +   +---------+-----------------------------------------------------+
    + */
    +
    +
  6. +
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/reference/upgrade.html b/v1.46/reference/upgrade.html new file mode 100644 index 000000000..63831114b --- /dev/null +++ b/v1.46/reference/upgrade.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/roadmap.html b/v1.46/roadmap.html new file mode 100644 index 000000000..41dce22e2 --- /dev/null +++ b/v1.46/roadmap.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/security/access-control-lists.html b/v1.46/security/access-control-lists.html new file mode 100644 index 000000000..9986eb150 --- /dev/null +++ b/v1.46/security/access-control-lists.html @@ -0,0 +1,822 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Access Control Lists (ACLs) -Deprecated- | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Access Control Lists (ACLs) + + +

+ + +
+

ACLs were removed from core lakeFS.

+ +

For a more robust authorization solution, please see Role-Based Access Control, available in lakeFS Cloud and lakeFS Enterprise.
+The following documentation is aimed for users with existing installations who wish to continue working with ACLs.

+
+ +
+

+ + + Table of contents + + +

+ + +
    +
  1. Basic Auth Functionality
  2. +
  3. ACLs
  4. +
+ +
+

+ + + Basic Auth Functionality + + +

+ + +

New lakeFS versions will provide basic auth functionality featuring a single Admin user with a single set of credentials. +Existing lakeFS installations that have a single user and a single set of credentials will migrate seamlessly to the new version.
+Installations that have more than one user / credentials will require to run a command and choose which set of user + credentials to migrate +(more details here)

+

+ + + ACLs + + +

+ + +

ACL server was moved out of core lakeFS and into a new package under contrib/auth/acl. +Though we decided to move ACLs out, we are committed to making sure existing users who still need the use of ACLs can continue using +this feature. +In order to do that, users will need to run the separate ACL server as part of their lakeFS deployment environment and configure lakeFS to work with it.

+

+ + + ACL server Configuration + + +

+ + +

Under the contrib/auth/acl you will be able to find an ACL server reference.

+ +
+

This implementation is a reference and is not fit for production use.

+ +

For a more robust authorization solution, please see Role-Based Access Control, available in lakeFS Cloud and lakeFS Enterprise.

+
+ +

The configuration of the ACL server is similar to lakeFS configuration, here’s an example of an .aclserver.yaml config file:

+
   ---
+   listen_address: "[ACL_SERVER_LISTEN_ADDRESS]"
+   database:
+     type: "postgres"
+     postgres:
+       connection_string: "[DATABASE_CONNECTION_STRING]"
+  
+   encrypt:
+     # This should be the same encryption key as in lakeFS
+     secret_key: "[ENCRYPTION_SECRET_KEY]"
+
+

It is possible to use environment variables to configure the server as in lakeFS. Use the ACLSERVER_ prefix to do so.
+For full configuration reference see: this

+

+ + + lakeFS Configuration + + +

+ + +

For the ACL server to work, configure the following values in lakeFS:
+auth.ui_config.rbac: simplified
+auth.api.endpoint: [ACL_SERVER_LISTEN_ADDRESS]

+

+ + + Migration of existing user + + +

+ + +

For installation with multiple users / credentials, upgrading to the new lakeFS version requires choosing which user + credentials will be used for the single user mode. +This is done via the lakefs superuser command. +For example, if you have a user with username <my-username> and credential key <my-access-key-id> use the following command to migrate that user:

+
lakefs superuser --user-name <my-username> --access-key-id <my-access-key-id>
+
+ +

After running the command you will be able to access the installation using the user’s access key id and its respective secret access key.

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/security/authentication.html b/v1.46/security/authentication.html new file mode 100644 index 000000000..df9f89d8e --- /dev/null +++ b/v1.46/security/authentication.html @@ -0,0 +1,914 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Authentication | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Authentication + + +

+ + + +

+ + + Authentication + + +

+ +

+ + + User Authentication + + +

+ + +

lakeFS authenticates users from a built-in authentication database.

+

+ + + Built-in database + + +

+ + +

The built-in authentication database is always present and active. You can use the +Web UI at Administration / Users to create users. Users have an access key +AKIA... and an associated secret access key. These credentials are valid +for logging into the Web UI or authenticating programmatic requests to the API +Server or the S3 Gateway.

+

+ + + Remote Authenticator Service + + +

+ + +

lakeFS server supports external authentication, the feature can be configured by providing an HTTP endpoint to an external authentication service. This integration can be especially useful if you already have an existing authentication system in place, as it allows you to reuse that system instead of maintaining a new one. +To configure a Remote Authenticator see the configuration fields.

+

+ + + API Server Authentication + + +

+ + +

Authenticating against the API server is done using a key-pair, passed via Basic Access Authentication.

+ +

All HTTP requests must carry an Authorization header with the following structure:

+ +
Authorization: Basic <base64 encoded access_key_id:secret_access_key>
+
+ +

For example, assuming my access_key_id is my_access_key_id and my secret_access_key is my_secret_access_key, we’d send the following header with every request:

+ +
Authorization: Basic bXlfYWNjZXNzX2tleV9pZDpteV9hY2Nlc3Nfc2VjcmV0X2tleQ==
+
+

+ + + S3 Gateway Authentication + + +

+ + +

To provide API compatibility with Amazon S3, authentication with the S3 Gateway supports both SIGv2 and SIGv4. +Clients such as the AWS SDK that implement these authentication methods should work without modification.

+ +

See this example for authenticating with the AWS CLI.

+

+ + + OIDC support + + +

+ + +

Note +This feature is deprecated. For single sign-on with lakeFS, try lakeFS Cloud

+ +

OpenID Connect (OIDC) is a simple identity layer on top of the OAuth 2.0 protocol. +You can configure lakeFS to enable OIDC to manage your lakeFS users externally. +Essentially, once configured, this enables you the benefit of OpenID connect, such as a single sign-on (SSO), etc.

+

+ + + Configuring lakeFS server for OIDC + + +

+ + +

To support OIDC, add the following to your lakeFS configuration:

+ +
auth:
+  oidc:
+    enabled: true
+    client_id: example-client-id
+    client_secret: exampleSecretValue
+    callback_base_url: https://lakefs.example.com       # The scheme, domain (and port) of your lakeFS installation
+    url: https://my-account.oidc-provider-example.com
+    default_initial_groups: ["Developers"]
+    friendly_name_claim_name: name                      #  Optional: use the value from this claim as the user's display name
+    persist_friendly_name: true                         #  Optional: persist friendly name to KV store so it can be displayed in the user list
+
+ +

Your login page will now include a link to sign in using the +OIDC provider. When a user first logs in through the provider, a corresponding user is created in lakeFS.

+

+ + + Friendly Name Persistence + + +

+ + +

When the persist_friendly_name configuration property is set to true and friendly_name_claim_name is set to a valid claim name, which exists in the incoming id_token, the friendly name will be persisted to the KV store. This will allow users with access to the lakeFS administration section to see friendly names in the users list, when listing group members, and when adding/removing group members.
+The friendly name stored in KV is updated with each successful login, if the incoming value is different than the stored value. This means it will be kept up-to-date with changes to the user’s profile or if friendly_name_claim_name is re-configured.

+

+ + + Notes + + +

+ +
    +
  1. As always, you may choose to provide these configurations using environment variables.
  2. +
  3. You may already have other configuration values under the auth key, so make sure you combine them correctly.
  4. +
+

+ + + User permissions + + +

+ + +

Authorization is managed via lakeFS groups and policies.

+ +

By default, an externally managed user is assigned to the lakeFS groups configured in the default_initial_groups property above. +For a user to be assigned to other groups, add the initial_groups claim to their ID token claims. The claim should contain a +comma-separated list of group names.

+ +

Once the user has been created, you can manage their permissions from the Administration pages in the lakeFS UI or using lakectl.

+

+ + + Using a different claim name + + +

+ + +

To supply the initial groups using another claim from your ID token, you can use the auth.oidc.initial_groups_claim_name +lakeFS configuration. For example, to take the initial groups from the roles claim, add:

+ +
auth:
+  oidc:
+    # ... Other OIDC configurations
+    initial_groups_claim_name: roles
+
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/security/external-principals-aws.html b/v1.46/security/external-principals-aws.html new file mode 100644 index 000000000..8c9bb51a3 --- /dev/null +++ b/v1.46/security/external-principals-aws.html @@ -0,0 +1,939 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Login to lakeFS with AWS IAM Roles | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Authenticate to lakeFS with AWS IAM Roles + + +

+ +

lakeFS Cloud

+ +

lakeFS Enterprise

+ +
+

External principals API is available for lakeFS Enterprise. If you’re using the open-source version you can check the pluggable APIs.

+
+ + +

+ + + Overview + + +

+ + +

lakeFS supports authenticating users programmatically using AWS IAM roles instead of using static lakeFS access and secret keys. +The method enables you to bound IAM principal ARNs to lakeFS users. +A single lakeFS user may have many AWS’s principle ARNs attached to it. When a client is authenticating to a lakeFS server with an AWS’s session, the actions performed by the client are on behalf of the user attached to the ARN.

+

+ + + Using Session Names + + +

+ + +

The bound ARN can be attached to a single lakeFS user with or without SessionName, serving different users. +For example, consider the following mapping:

+ +
+ + + + + + + + + + + + + + + + +
Principal ARNlakeFS User
arn:aws:sts::123456:assumed-role/Devfoo
arn:aws:sts::123456:assumed-role/Dev/john@acme.comjohn
+ +

if the bound ARN were arn:aws:sts::123456:assumed-role/Dev/<SessionName> it would allow any principal assuming Dev role in AWS account 123456 to login to it. +If the SessionName is john@acme.com then lakeFS would return token for john user

+

+ + + How AWS authentication works + + +

+ + +

The AWS STS API includes a method, sts:GetCallerIdentity, which allows you to validate the identity of a client. The client signs a GetCallerIdentity query using the AWS Signature v4 algorithm and sends it to the lakeFS server.

+ +

The GetCallerIdentity query consists of four pieces of information: the request URL, the request body, the request headers and the request method. The AWS signature is computed over those fields. The lakeFS server reconstructs the query using this information and forwards it on to the AWS STS service. Depending on the response from the STS service, the server authenticates the client.

+ +

Notably, clients don’t need network-level access themselves to talk to the AWS STS API endpoint; they merely need access to the credentials to sign the request. However, it means that the lakeFS server does need network-level access to send requests to the STS endpoint.

+ +

Each signed AWS request includes the current timestamp to mitigate the risk of replay attacks. In addition, lakeFS allows you to require an additional header, X-LakeFS-Server-ID (added by default), to be present to mitigate against different types of replay attacks (such as a signed GetCallerIdentity request stolen from a dev lakeFS instance and used to authenticate to a prod lakeFS instance).

+ +

It’s also important to note that Amazon does NOT appear to include any sort of authorization around calls to GetCallerIdentity. For example, if you have an IAM policy on your credential that requires all access to be MFA authenticated, non-MFA authenticated credentials will still be able to authenticate to lakeFS using this method.

+

+ + + Server Configuration + + +

+ + +
+

Note: lakeFS Helm chart supports the configuration since version 1.2.11 - see usage values.yaml example.

+
+ +
    +
  • in lakeFS auth.authentication_api.external_principals_enabled must be set to true in the configuration file, other configuration (auth.authentication_api.*) can be found at configuration reference
  • +
+ +

For the full list of the Fluffy server configuration, see Fluffy Configuration under auth.external.aws_auth

+ +
+

By default, lakeFS clients will add the parameter X-LakeFS-Server-ID: <lakefs.ingress.domain> to the initial login request for STS.

+
+ +

Example configuration with required headers:

+ +

Configuration for lakefs.yaml:

+ +
auth:
+  authentication_api:
+    endpoint: http://<fluffy-sso>/api/v1
+    external_principals_enabled: true
+  api:
+    endpoint: http://<fluffy-rbac>/api/v1
+
+ +

Configuration for fluffy.yaml:

+ +
# fluffy address for lakefs auth.authentication_api.endpoint
+# used by lakeFS to log in and get the token
+listen_address: <fluffy-sso>
+auth:
+  # fluffy address for lakeFS auth.api.endpoint 
+  # used by lakeFS to manage the lifecycle attach/detach of the external principals
+  serve_listen_address: <fluffy-rbac>
+  external:
+    aws_auth:
+      enabled: true
+      # headers that must be present by the client when doing login request
+      required_headers:
+        # same host as the lakeFS server ingress
+        X-LakeFS-Server-ID: <lakefs.ingress.domain>
+
+

+ + + Administration of IAM Roles in lakeFS + + +

+ + +

Administration refers to the management of the IAM roles that are allowed to authenticate to lakeFS. +Operations such as attaching and detaching IAM roles to a user, listing the roles attached to a user, and listing the users attached to a role. +Currently, this is done through the lakeFS External Principals API and generated clients.

+ +

Example of attaching an IAM roles to a user:

+ +
import lakefs_sdk as lakefs  
+
+configuration = lakefs.Configuration(host = "...",username="...",password="...")
+username = "<lakefs-user>"
+api = lakefs.ApiClient(configuration)
+auth_api = lakefs.AuthApi(api)
+# attach the role(s)to a lakeFS user
+auth_api.create_user_external_principal(user_id=username, principal_id='arn:aws:sts::<id>:assumed-role/<role A>/<optional session name>')
+auth_api.create_user_external_principal(user_id=username, principal_id='arn:aws:sts::<id>:assumed-role/<role B>')
+# list the roles attached to the user
+resp = auth_api.list_user_external_principals(user_id=username)
+for p in resp.results:
+    # do something
+
+

+ + + Get lakeFS API Token + + +

+ + +

The login to lakeFS is done by calling the login API with the GetCallerIdentity request signed by the client. +Currently, the login operation is supported out of the box in:

+ + +

For other use cases authenticate to lakeFS via login endpoint, this will require building the request input.

+

+ + + Login with python + + +

+ +

+ + + prerequisites + + +

+ + +
    +
  1. lakeFS should be configured to allow external principals to authenticate and the used IAM role should be attached to the relevant lakeFS user
  2. +
  3. The Python SDK requires additional packages to be installed in order to generate a lakeFS client with the assumed role. +To install the required packages, run the following command:
  4. +
+ +
  pip install lakefs[aws-iam]
+
+ +

In order to generate a lakeFS client with the assumed role, initiate a boto3 session with the desired role and call lakefs.client.frow_aws_role:

+ +
import lakefs
+import boto3    
+session = boto3.Session()
+my_client = lakefs.client.from_aws_role(session=session, ttl_seconds=7200, host="<lakefs-host>")
+
+# list repositories
+repos = lakefs.repositories(client=my_client)
+for r in repos:
+    print(r)
+
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/security/index.html b/v1.46/security/index.html new file mode 100644 index 000000000..220017784 --- /dev/null +++ b/v1.46/security/index.html @@ -0,0 +1,753 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Security | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + +
+ +

+ + + lakeFS Security Reference + + +

+ + +

lakeFS Docs

+

+ + + Understanding Your Data Security + + +

+ + +

At lakeFS, we understand the critical nature of data security. Thousands of organizations worldwide rely on lakeFS to manage their data with confidence. Here’s a few concepts we follow to ensure your data remains secure:

+ +

Data Stays in Place: The data you version control remains within your existing object storage. lakeFS creates metadata for your data without moving it. New data is stored in the bucket you designate within your object storage.

+ +

lakeFS Servers Stores only Metadata: The lakeFS Server (also in the case of lakeFS Cloud) only stores the metadata used for version control operations (i.e. diff, merge). It does not store any of your actual data.

+ +

Minimal Permissions: lakeFS requires minimal permissions to manage your data. We can even version data we cannot directly access by utilizing presigned URLs.

+ +

Learn more about some of the featured that help keep lakeFS Secure:

+ +
    +
  • Authentication - An overview of the authentication and authorization mechanisms available in lakeFS, including built-in and external services, API and S3 Gateway authentication, and user permissions management.
  • +
  • Remote Authenticator - This feature allows organizations to leverage their existing identity infrastructure while using lakeFS, providing a flexible and secure authentication mechanism.
  • +
  • Role-Based Access Control (RBAC) - RBAC with lakeFS provides a flexible and granular approach to managing access and permissions, similar to other cloud-based systems like AWS IAM.
  • +
  • Presigned URL - This feature allows for more flexible and direct data access in lakeFS, particularly useful for scenarios where bypassing the lakeFS server for data retrieval or storage is beneficial.
  • +
  • Single Sign On (SSO) - lakeFS provides administrators with the necessary information to set up SSO for both lakeFS Cloud and Enterprise editions, covering various authentication protocols and identity providers.
  • +
  • Short Lived Token (STS like) - This feature allows lakeFS to leverage temporary credentials for secure and flexible authentication, integrating seamlessly with existing identity providers.
  • +
  • Login to lakeFS with AWS IAM - This feature enhances the integration between lakeFS and AWS by supporting authenticating users programmatically using AWS IAM roles instead of using static lakeFS access and secret keys.
  • +
+

+ + + SOC2 Compliance + + +

+ +

lakeFS Cloud is SOC2 compliant, demonstrating our commitment to stringent security standards.

+

+ + + More questions? Contact us + + +

+ +

For details on supported versions, security updates, and vulnerability reporting, please refer to our security policy on GitHub.

+ +

If you have additional questions regarding lakeFS Security, talk to an expert.

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/security/presigned-url.html b/v1.46/security/presigned-url.html new file mode 100644 index 000000000..b3f7d1d4d --- /dev/null +++ b/v1.46/security/presigned-url.html @@ -0,0 +1,824 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Presigned URLs | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Configuring lakeFS to use presigned URLs + + +

+ + + + +

With lakeFS, you can access data directly from the storage and not through lakeFS using a presigned URL. +Based on the user’s access to an object in the object store, the presigned URL will get read or write access. +The presign support is enabled for block adapter that supports it (AWS, GCP, Azure), and can be disabled by the configuration (blockstore.<blockstore_type>.disable_pre_signed). Note that the UI support is disabled by default.

+ +
    +
  • It is possible to override the default pre-signed URL endpoint in AWS by setting the configuration (blockstore.s3.pre_signed_endpoint). +This is useful, for example, when you wish to define a VPC endpoint access for the pre-signed URL.
  • +
+

+ + + Using presigned URLs in the UI + + +

+ +

For using presigned URLs in the UI:

+
    +
  1. Enable the presigned URL support UI in the lakeFS configuration (blockstore.<blockstore_type>.disable_pre_signed_ui ).
  2. +
  3. Add CORS (Cross-Origin Resource Sharing) permissions to the bucket for the UI to fetch objects using a presigned URL (instead of through lakeFS).
  4. +
  5. The blockstore.<blockstore_type>.disable_pre_signed must be false to enable it in the UI.
  6. +
+ +

⚠️ Note Currently DuckDB fetching data from lakeFS does not support fetching data using presigned URL.

+

+ + + Example: AWS S3 + + +

+ + +
  [
+    {
+        "AllowedHeaders": [
+            "*"
+        ],
+        "AllowedMethods": [
+            "GET",
+            "PUT",
+            "HEAD"
+        ],
+        "AllowedOrigins": [
+            "lakefs.endpoint"
+        ],
+        "ExposeHeaders": [
+            "ETag"
+        ]
+    }
+  ]
+
+

+ + + Example: Google Storage + + +

+ + +
  [
+    {
+        "origin": ["lakefs.endpoint"],
+        "responseHeader": ["ETag"],
+        "method": ["PUT", "GET", "HEAD"],
+        "maxAgeSeconds": 3600
+    }
+   ]
+
+

+ + + Example: Azure blob storage + + +

+ + +
  <Cors>
+      <CorsRule>  
+          <AllowedOrigins>lakefs.endpoint</AllowedOrigins>  
+          <AllowedMethods>PUT,GET,HEAD</AllowedMethods>  
+          <AllowedHeaders>*</AllowedHeaders>  
+          <ExposedHeaders>ETag,x-ms-*</ExposedHeaders>  
+          <MaxAgeInSeconds>3600</MaxAgeInSeconds>  
+      </CorsRule>  
+  </Cors>
+
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/security/rbac.html b/v1.46/security/rbac.html new file mode 100644 index 000000000..e89a16b0c --- /dev/null +++ b/v1.46/security/rbac.html @@ -0,0 +1,1719 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Role-Based Access Control (RBAC) | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Role-Based Access Control (RBAC) + + +

+ +

lakeFS Cloud

+ +

lakeFS Enterprise

+ +
+

RBAC is available on lakeFS Cloud and lakeFS Enterprise.

+
+ + + + +

+ + + RBAC Model + + +

+ + +

Access to resources is managed very much like AWS IAM.

+ +

There are five basic components to the system:

+ +
    +
  1. +

    Users - Representing entities that access and use the system. A user is given one or more Access Credentials for authentication.

    +
  2. +
  3. +

    Actions - Representing a logical action within the system - reading a file, creating a repository, etc.

    +
  4. +
  5. +

    Resources - A unique identifier representing a specific resource in the system - a repository, an object, a user, etc.

    +
  6. +
  7. +

    Policies - Representing a set of Actions, a Resource and an effect: whether or not these actions are allowed or denied for the given resource(s).

    +
  8. +
  9. +

    Groups - A named collection of users. Users can belong to multiple groups.

    +
  10. +
+ +

Controlling access is done by attaching Policies, either directly to Users, or to Groups they belong to.

+

+ + + Authorization process + + +

+ + +

Every action in the system - be it an API request, UI interaction, S3 Gateway call, or CLI command - requires a set of actions to be allowed for one or more resources.

+ +

When a user makes a request to perform that action, the following process takes place:

+ +
    +
  1. Authentication - the credentials passed in the request are evaluated and the user’s identity is extracted.
  2. +
  3. Action permission resolution - lakeFS then calculates the set of allowed actions and resources that this request requires.
  4. +
  5. Effective policy resolution - the user’s policies (either attached directly or through group memberships) are calculated.
  6. +
  7. Policy/Permission evaluation - lakeFS will compare the given user policies with the request actions and determine whether or not the request is allowed to continue.
  8. +
+

+ + + Policy Precedence + + +

+ + +

Each policy attached to a user or a group has an Effect - either allow or deny. +During evaluation of a request, deny would take precedence over any other allow policy.

+ +

This helps us compose policies together. For example, we could attach a very permissive policy to a user and use deny rules to then selectively restrict what that user can do.

+

+ + + Resource naming - ARNs + + +

+ + +

lakeFS uses ARN identifier - very similar in structure to those used by AWS. +The resource segment of the ARN supports wildcards: use * to match 0 or more characters, or ? to match exactly one character.

+ +

Here are a some examples of valid ARNs within lakeFS and their meaning:

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARNMeaning
arn:lakefs:auth:::user/jane.doeA specific user
arn:lakefs:auth:::user/*All users
arn:lakefs:fs:::repository/myrepo/*All resources under myrepo
arn:lakefs:fs:::repository/myrepo/object/foo/bar/bazA single object ARN
arn:lakefs:fs:::repository/myrepo/object/*All objects in myrepo
arn:lakefs:fs:::repository/*All repositories
arn:lakefs:fs:::*All resources under the fs ARN prefix
+ +

Additionally, the current user’s ID is interpolated in runtime into the ARN using the ${user} placeholder.

+ +

This allows us to create fine-grained policies affecting only a specific subset of resources.

+ +

See below for a full reference of ARNs and actions.

+

+ + + Actions and Permissions + + +

+ + +

For the full list of actions and their required permissions see the following table:

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Action namerequired actionResourceAPI endpointS3 gateway operation
List Repositoriesfs:ListRepositories*GET /repositoriesListBuckets
Get Repositoryfs:ReadRepositoryarn:lakefs:fs:::repository/{repositoryId}GET /repositories/{repositoryId}HeadBucket
Get Commitfs:ReadCommitarn:lakefs:fs:::repository/{repositoryId}GET /repositories/{repositoryId}/commits/{commitId}-
Create Commitfs:CreateCommitarn:lakefs:fs:::repository/{repositoryId}/branch/{branchId}POST /repositories/{repositoryId}/branches/{branchId}/commits-
Get Commit logfs:ReadBrancharn:lakefs:fs:::repository/{repositoryId}/branch/{branchId}GET /repositories/{repositoryId}/branches/{branchId}/commits-
Create Repositoryfs:CreateRepositoryarn:lakefs:fs:::repository/{repositoryId}POST /repositories-
Namespace Attach to Repositoryfs:AttachStorageNamespacearn:lakefs:fs:::namespace/{storageNamespace}POST /repositories-
Import From Sourcefs:ImportFromStoragearn:lakefs:fs:::namespace/{storageNamespace}POST /repositories/{repositoryId}/branches/{branchId}/import-
Cancel Importfs:ImportCancelarn:lakefs:fs:::repository/{repositoryId}/branch/{branchId}DELETE /repositories/{repositoryId}/branches/{branchId}/import-
Delete Repositoryfs:DeleteRepositoryarn:lakefs:fs:::repository/{repositoryId}DELETE /repositories/{repositoryId}-
List Branchesfs:ListBranchesarn:lakefs:fs:::repository/{repositoryId}GET /repositories/{repositoryId}/branchesListObjects/ListObjectsV2 (with delimiter = / and empty prefix)
Get Branchfs:ReadBrancharn:lakefs:fs:::repository/{repositoryId}/branch/{branchId}GET /repositories/{repositoryId}/branches/{branchId}-
Create Branchfs:CreateBrancharn:lakefs:fs:::repository/{repositoryId}/branch/{branchId}POST /repositories/{repositoryId}/branches-
Delete Branchfs:DeleteBrancharn:lakefs:fs:::repository/{repositoryId}/branch/{branchId}DELETE /repositories/{repositoryId}/branches/{branchId}-
Merge branchesfs:CreateCommitarn:lakefs:fs:::repository/{repositoryId}/branch/{destinationBranchId}POST /repositories/{repositoryId}/refs/{sourceBranchId}/merge/{destinationBranchId}-
Diff branch uncommitted changesfs:ListObjectsarn:lakefs:fs:::repository/{repositoryId}GET /repositories/{repositoryId}/branches/{branchId}/diff-
Diff refsfs:ListObjectsarn:lakefs:fs:::repository/{repositoryId}GET /repositories/{repositoryId}/refs/{leftRef}/diff/{rightRef}-
Stat objectfs:ReadObjectarn:lakefs:fs:::repository/{repositoryId}/object/{objectKey}GET /repositories/{repositoryId}/refs/{ref}/objects/statHeadObject
Get Objectfs:ReadObjectarn:lakefs:fs:::repository/{repositoryId}/object/{objectKey}GET /repositories/{repositoryId}/refs/{ref}/objectsGetObject
List Objectsfs:ListObjectsarn:lakefs:fs:::repository/{repositoryId}GET /repositories/{repositoryId}/refs/{ref}/objects/lsListObjects, ListObjectsV2 (no delimiter, or “/” + non-empty prefix)
Upload Objectfs:WriteObjectarn:lakefs:fs:::repository/{repositoryId}/object/{objectKey}POST /repositories/{repositoryId}/branches/{branchId}/objectsPutObject, CreateMultipartUpload, UploadPart, CompleteMultipartUpload
Delete Objectfs:DeleteObjectarn:lakefs:fs:::repository/{repositoryId}/object/{objectKey}DELETE /repositories/{repositoryId}/branches/{branchId}/objectsDeleteObject, DeleteObjects, AbortMultipartUpload
Revert Branchfs:RevertBrancharn:lakefs:fs:::repository/{repositoryId}/branch/{branchId}PUT /repositories/{repositoryId}/branches/{branchId}-
Get Branch Protection Rulesbranches:GetBranchProtectionRulesarn:lakefs:fs:::repository/{repositoryId}GET /repositories/{repository}/branch_protection-
Set Branch Protection Rulesbranches:SetBranchProtectionRulesarn:lakefs:fs:::repository/{repositoryId}POST /repositories/{repository}/branch_protection-
Delete Branch Protection Rulesbranches:SetBranchProtectionRulesarn:lakefs:fs:::repository/{repositoryId}DELETE /repositories/{repository}/branch_protection-
Create Userauth:CreateUserarn:lakefs:auth:::user/{userId}POST /auth/users-
List Usersauth:ListUsers*GET /auth/users-
Get Userauth:ReadUserarn:lakefs:auth:::user/{userId}GET /auth/users/{userId}-
Delete Userauth:DeleteUserarn:lakefs:auth:::user/{userId}DELETE /auth/users/{userId}-
Get Groupauth:ReadGrouparn:lakefs:auth:::group/{groupId}GET /auth/groups/{groupId}-
List Groupsauth:ListGroups*GET /auth/groups-
Create Groupauth:CreateGrouparn:lakefs:auth:::group/{groupId}POST /auth/groups-
Delete Groupauth:DeleteGrouparn:lakefs:auth:::group/{groupId}DELETE /auth/groups/{groupId}-
List Policiesauth:ListPolicies*GET /auth/policies-
Create Policyauth:CreatePolicyarn:lakefs:auth:::policy/{policyId}POST /auth/policies-
Update Policyauth:UpdatePolicyarn:lakefs:auth:::policy/{policyId}POST /auth/policies-
Delete Policyauth:DeletePolicyarn:lakefs:auth:::policy/{policyId}DELETE /auth/policies/{policyId}-
Get Policyauth:ReadPolicyarn:lakefs:auth:::policy/{policyId}GET /auth/policies/{policyId}-
List Group Membersauth:ReadGrouparn:lakefs:auth:::group/{groupId}GET /auth/groups/{groupId}/members-
Add Group Memberauth:AddGroupMemberarn:lakefs:auth:::group/{groupId}PUT /auth/groups/{groupId}/members/{userId}-
Remove Group Memberauth:RemoveGroupMemberarn:lakefs:auth:::group/{groupId}DELETE /auth/groups/{groupId}/members/{userId}-
List User Credentialsauth:ListCredentialsarn:lakefs:auth:::user/{userId}GET /auth/users/{userId}/credentials-
Create User Credentialsauth:CreateCredentialsarn:lakefs:auth:::user/{userId}POST /auth/users/{userId}/credentials-
Delete User Credentialsauth:DeleteCredentialsarn:lakefs:auth:::user/{userId}DELETE /auth/users/{userId}/credentials/{accessKeyId}-
Get User Credentialsauth:ReadCredentialsarn:lakefs:auth:::user/{userId}GET /auth/users/{userId}/credentials/{accessKeyId}-
List User Groupsauth:ReadUserarn:lakefs:auth:::user/{userId}GET /auth/users/{userId}/groups-
List User Policiesauth:ReadUserarn:lakefs:auth:::user/{userId}GET /auth/users/{userId}/policies-
Attach Policy To Userauth:AttachPolicyarn:lakefs:auth:::user/{userId}PUT /auth/users/{userId}/policies/{policyId}-
Detach Policy From Userauth:DetachPolicyarn:lakefs:auth:::user/{userId}DELETE /auth/users/{userId}/policies/{policyId}-
List Group Policiesauth:ReadGrouparn:lakefs:auth:::group/{groupId}GET /auth/groups/{groupId}/policies-
Attach Policy To Groupauth:AttachPolicyarn:lakefs:auth:::group/{groupId}PUT /auth/groups/{groupId}/policies/{policyId}-
Detach Policy From Groupauth:DetachPolicyarn:lakefs:auth:::group/{groupId}DELETE /auth/groups/{groupId}/policies/{policyId}-
Attach External Principal to a Userauth:CreateUserExternalPrincipalarn:lakefs:auth:::user/{userId}POST /auth/users/{userId}/external/principals-
Delete External Principal Attachment from a Userauth:DeleteUserExternalPrincipalarn:lakefs:auth:::user/{userId}DELETE /auth/users/{userId}/external/principals-
Get the User attached to an External Principalauth:ReadExternalPrincipalarn:lakefs:auth:::externalPrincipal/{principalId}GET /auth/external/principals-
Read Storage Configfs:ReadConfig*GET /config/storage-
Get Garbage Collection Rulesretention:GetGarbageCollectionRulesarn:lakefs:fs:::repository/{repositoryId}GET /repositories/{repositoryId}/gc/rules-
Set Garbage Collection Rulesretention:SetGarbageCollectionRulesarn:lakefs:fs:::repository/{repositoryId}POST /repositories/{repositoryId}/gc/rules-
Prepare Garbage Collection Commitsretention:PrepareGarbageCollectionCommitsarn:lakefs:fs:::repository/{repositoryId}POST /repositories/{repositoryId}/gc/prepare_commits-
List Repository Action Runsci:ReadActionarn:lakefs:fs:::repository/{repositoryId}GET /repositories/{repository}/actions/runs-
Get Action Runci:ReadActionarn:lakefs:fs:::repository/{repositoryId}GET /repositories/{repository}/actions/runs/{run_id}-
List Action Run Hooksci:ReadActionarn:lakefs:fs:::repository/{repositoryId}GET /repositories/{repository}/actions/runs/{run_id}/hooks-
Get Action Run Hook Outputci:ReadActionarn:lakefs:fs:::repository/{repositoryId}GET /repositories/{repository}/actions/runs/{run_id}/hooks/{hook_run_id}/output-
Get Pull Requestpr:ReadPullRequestarn:lakefs:fs:::repository/{repositoryId}GET /repositories/{repository}/pulls/{pull_request}-
Create Pull Requestpr:WritePullRequestarn:lakefs:fs:::repository/{repositoryId}POST /repositories/{repository}/pulls-
Update Pull Requestpr:WritePullRequestarn:lakefs:fs:::repository/{repositoryId}PATCH /repositories/{repository}/pulls/{pull_request}-
Merge Pull Requestpr:WritePullRequest + Merge Branchesarn:lakefs:fs:::repository/{repositoryId}PUT /repositories/{repository}/pulls/{pull_request}/merge-
List Pull Requestspr:ListPullRequestsarn:lakefs:fs:::repository/{repositoryId}GET /repositories/{repository}/pulls-
+ +

Some APIs may require more than one action.For instance, in order to +create a repository (POST /repositories), you need permission to +fs:CreateRepository for the name of the repository and also +fs:AttachStorageNamespace for the storage namespace used.

+

+ + + Preconfigured Policies + + +

+ + +

The following Policies are created during initial setup:

+

+ + + FSFullAccess + + +

+ + +
{
+  "statement": [
+    {
+      "action": [
+        "fs:*"
+      ],
+      "effect": "allow",
+      "resource": "*"
+    }
+  ]
+}
+
+

+ + + FSReadAll + + +

+ + +
{
+  "statement": [
+    {
+      "action": [
+        "fs:List*",
+        "fs:Read*"
+      ],
+      "effect": "allow",
+      "resource": "*"
+    }
+  ]
+}
+
+

+ + + FSReadWriteAll + + +

+ + +
{
+    "statement": [
+        {
+            "action": [
+                "fs:Read*",
+                "fs:List*",
+                "fs:WriteObject",
+                "fs:DeleteObject",
+                "fs:RevertBranch",
+                "fs:CreateBranch",
+                "fs:CreateTag",
+                "fs:DeleteBranch",
+                "fs:DeleteTag",
+                "fs:CreateCommit",
+                "fs:CreateMetaRange"
+            ],
+            "effect": "allow",
+            "resource": "*"
+        }
+    ]
+}
+
+

+ + + AuthFullAccess + + +

+ + +
{
+  "statement": [
+    {
+      "action": [
+        "auth:*"
+      ],
+      "effect": "allow",
+      "resource": "*"
+    }
+  ]
+}
+
+

+ + + AuthManageOwnCredentials + + +

+ + +
{
+  "statement": [
+    {
+      "action": [
+        "auth:CreateCredentials",
+        "auth:DeleteCredentials",
+        "auth:ListCredentials",
+        "auth:ReadCredentials"
+      ],
+      "effect": "allow",
+      "resource": "arn:lakefs:auth:::user/${user}"
+    }
+  ]
+}
+
+

+ + + RepoManagementFullAccess + + +

+ + +
{
+    "statement": [
+        {
+            "action": [
+                "ci:*"
+            ],
+            "effect": "allow",
+            "resource": "*"
+        },
+        {
+            "action": [
+                "retention:*"
+            ],
+            "effect": "allow",
+            "resource": "*"
+        }
+    ]
+}
+
+

+ + + RepoManagementReadAll + + +

+ + +
{
+    "statement": [
+        {
+            "action": [
+                "ci:Read*"
+            ],
+            "effect": "allow",
+            "resource": "*"
+        },
+        {
+            "action": [
+                "retention:Get*"
+            ],
+            "effect": "allow",
+            "resource": "*"
+        }
+    ]
+}
+
+

+ + + Additional Policies + + +

+ + +

You can create additional policies to further limit user access. Use the web UI or the lakectl auth command to create policies. Here is an example to define read/write access for a specific repository:

+ +
{
+    "statement": [
+        {
+            "action": [
+                "fs:ReadRepository",
+                "fs:ReadCommit",
+                "fs:ListBranches",
+                "fs:ListTags",
+                "fs:ListObjects"
+            ],
+            "effect": "allow",
+            "resource": "arn:lakefs:fs:::repository/<repository-name>"
+        },
+        {
+            "action": [
+                "fs:RevertBranch",
+                "fs:ReadBranch",
+                "fs:CreateBranch",
+                "fs:DeleteBranch",
+                "fs:CreateCommit"
+            ],
+            "effect": "allow",
+            "resource": "arn:lakefs:fs:::repository/<repository-name>/branch/*"
+        },
+                {
+            "action": [
+                "fs:ListObjects",
+                "fs:ReadObject",
+                "fs:WriteObject",
+                "fs:DeleteObject"
+            ],
+            "effect": "allow",
+            "resource": "arn:lakefs:fs:::repository/<repository-name>/object/*"
+        },
+                {
+            "action": [
+                "fs:ReadTag",
+                "fs:CreateTag",
+                "fs:DeleteTag"
+            ],
+            "effect": "allow",
+            "resource": "arn:lakefs:fs:::repository/<repository-name>/tag/*"
+        },
+        {
+        	"action": ["fs:ReadConfig"],
+        	"effect": "allow",
+        	"resource": "*"
+        }
+    ]
+}
+
+

+ + + Preconfigured Groups + + +

+ + +

lakeFS has four preconfigured groups:

+ +
    +
  • Admins
  • +
  • SuperUsers
  • +
  • Developers
  • +
  • Viewers
  • +
+ +

They have the following policies granted to them:

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PolicyAdminsSuperUsersDevelopersViewers
FSFullAccess  
AuthFullAccess   
RepoManagementFullAccess   
AuthManageOwnCredentials 
RepoManagementReadAll  
FSReadWriteAll   
FSReadAll   
+

+ + + Pluggable Authentication and Authorization + + +

+ + +

Authorization and authentication is pluggable in lakeFS. If lakeFS is attached to a remote authentication server (or you are using lakeFS Cloud) then the role-based access control user interface can be used. If you are using RBAC with your self-managed lakeFS then the lakeFS configuration element auth.ui_config.rbac should be set to external. An enterprise (paid) solution of lakeFS should set auth.ui_config.rbac as internal.

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/security/remote-authenticator.html b/v1.46/security/remote-authenticator.html new file mode 100644 index 000000000..fafccfd09 --- /dev/null +++ b/v1.46/security/remote-authenticator.html @@ -0,0 +1,914 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Remote Authenticator | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Remote Authenticator + + +

+ + +

Remote Authenticator is a pluggable architecture for lakeFS which allows you to use existing organizational identity policies and infrastructure with the authentication mechanism of lakeFS. The Remote Authenticator’s job is to abstract away the complexities of existing infrastructure and implement a standard interface, which lakeFS can use to resolve user identity and manage access to lakeFS. This loose coupling allows you to implement federated identity without providing lakeFS with direct access to your identity infrastructure.

+

+ + + Architecture + + +

+ + +

Here’s the authentication flow that lakeFS uses when configured with a remote authenticator:

+ +
sequenceDiagram
+    participant A as lakeFS Client
+    participant B as lakeFS Server
+    participant C as Remote Authenticator
+    participant D as IdP
+    A->>B: Submit login form
+    B->>C: POST user credentials
+    C->>D: IdP request
+    D->>C: IdP response
+    C->>B: Auth response
+    B->>A: auth JWT
+
+

+ + + The Interface + + +

+ + +

To configure lakeFS to work with a Remote Authenticator add the following YAML to your lakeFS configuration:

+ +
auth:
+    remote_authenticator:
+        enabled: true
+        endpoint: <url-to-remote-authenticator-endpoint>
+        default_user_group: "Developers"
+    ui_config:
+        logout_url: /logout
+        login_cookie_names:
+            - internal_auth_session
+
+ +
    +
  • auth.remote_authenticator.enabled - set lakeFS to use the remote authenticator
  • +
  • auth.remote_authenticator.endpoint - an endpoint where the remote authenticator is able to receive a POST request from lakeFS
  • +
  • auth.remote_authenticator.default_user_group - the group assigned by default to new users
  • +
  • auth.ui_config.logout_url - the URL to redirect the browser when clicking the logout link in the user menu
  • +
  • auth.ui_config.login_cookie_names - the name of the cookie(s) lakeFS will set following a successful authentication. The value is the authenticated user’s JWT
  • +
+ +

A Remote Authenticator implementation should expose a single endpoint, which expects the following JSON request:

+ +
{
+    "username": "testy.mctestface@example.com",
+    "password": "Password1"
+}
+
+ +

and returns a JSON response like this:

+ +
{
+    "external_user_identifier": "TestyMcTestface"
+}
+
+

+ + + Example Request & Responses + + +

+ +

+ + + Request + + +

+ + +
POST https://remote-authenticator.example.com/auth
+Content-Type: application/json
+
+{
+  "username": "testy.mctestface@example.com",
+  "password": "Password1"
+}
+
+

+ + + Successful Response + + +

+ +
HTTP/1.1 200 OK
+Content-Type: application/json
+
+
+{
+  "external_user_identifier": "TestyMcTestface"
+}
+
+

+ + + Unauthorized Response + + +

+ +
HTTP/1.1 401 Unauthorized
+Content-Type: application/json
+
+{
+  "external_user_identifier": ""
+}
+
+ +

If the Remote Authenticator returns any HTTP status in the 2xx range, lakeFS considers this a successful authentication. Any HTTP status < 200 or > 300 is considered a failed authentication. If the Remote Authenticator returns a non-empty value for the external_user_identifier property along with a success HTTP status, lakeFS will show this identifier instead of an internal lakeFS user identifier in the UI.

+

+ + + Sample Implementation + + +

+ + +

Here is a sample Remote Authenticator implemented using node and express and written in TypeScript. This example implementation doesn’t integrate with any real IdP but illustrates the expected request/response patterns that you need to implement.

+ +
import dotenv from "dotenv";
+import express, { Express, Request, Response } from "express";
+import { StatusCodes } from "http-status-codes";
+
+type AuthRequestBody = {
+  username: string;
+  password: string;
+};
+
+type AuthResponseBody = {
+  external_user_identifier: string;
+};
+
+const DEFAULT_PORT = 80;
+
+dotenv.config();
+
+const port = process.env.PORT || DEFAULT_PORT;
+const app: Express = express();
+
+app.post(
+  "/auth",
+  (req: Request<AuthResponseBody, {}, AuthRequestBody>, res: Response) => {
+    const { username, password } = req.body;
+    if (!username?.length || !password?.length) {
+      return res.status(StatusCodes.BAD_REQUEST).json({
+        external_user_identifier: "",
+      });
+    }
+
+    // 👇🏻 This is where you would implement your own authentication logic
+    if (
+      username === "testy.mctestface@example.com" &&
+      password === "Password1"
+    ) {
+      return res.status(StatusCodes.OK).json({
+        external_user_identifier: "TestyMcTestface",
+      });
+    } else {
+      return res.status(StatusCodes.UNAUTHORIZED).json({
+        external_user_identifier: "",
+      });
+    }
+  }
+);
+
+app.listen(port, () => {
+  console.log(`Remote Authenticator listening on port ${port}`);
+});
+
+ +

To run this service on the sub-domain idp.example.com, use a lakeFS configuration that looks like this:

+ +
auth:
+    remote_authenticator:
+        enabled: true
+        endpoint: https://idp.example.com/auth
+        default_user_group: "Developers"
+    ui_config:
+        logout_url: /logout
+        login_cookie_names:
+            - internal_auth_session
+
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/security/sso.html b/v1.46/security/sso.html new file mode 100644 index 000000000..a5592a68a --- /dev/null +++ b/v1.46/security/sso.html @@ -0,0 +1,1248 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Single Sign On (SSO) | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Single Sign On (SSO) + + +

+ +

lakeFS Cloud

+ +

lakeFS Enterprise

+ +
+

SSO is available for lakeFS Cloud and lakeFS Enterprise. If you’re using the open-source version of lakeFS you can read more about the authentication options available.

+
+

+ + + SSO for lakeFS Cloud + + +

+ + +

lakeFS Cloud uses Auth0 for authentication and thus support the same identity providers as Auth0 including Active Directory/LDAP, ADFS, Azure Active Directory Native, Google Workspace, OpenID Connect, Okta, PingFederate, SAML, and Azure Active Directory.

+ +
+ +
+

+ + + Okta + + +

+ + +
+

This guide is based on Okta’s Create OIDC app integrations guide.

+
+ +

Steps:

+
    +
  1. Login to your Okta account
  2. +
  3. Select Applications > Applications, then Create App Integration.
  4. +
  5. Select Create New App and enter the following: +
      +
    1. For Sign-in method, choose OIDC.
    2. +
    3. Under Application type, choose Web app.
    4. +
    5. Select Next.
    6. +
    +
  6. +
  7. Under General Settings: +
      +
    1. App integration name, enter a name for your application. (i.e lakeFS Cloud)
    2. +
    +
  8. +
  9. In the Sign-in redirect URIs field, enter https://lakefs-cloud.us.auth0.com/login (United States) or https://lakefs-cloud.eu.auth0.com/login (Europe).
  10. +
  11. Under Sign-in redirect URIs, click Add URI, enter https://lakefs-cloud.us.auth0.com/login/callback (United States) or https://lakefs-cloud.eu.auth0.com/login/callback (Europe).
  12. +
  13. Under Assignments, choose the wanted Controlled access. (i.e Allow everyone in your organization to access)
  14. +
  15. Uncheck Enable immediate access with Federation Broker Mode.
  16. +
  17. Select Save.
  18. +
+ +

Once you finish registering your application with Okta, save the Client ID, Client Secret and your Okta Domain, send this to Treeverse’s team to finish the integration.

+
+
+

+ + + Active Directory Federation Services (AD FS) + + +

+ + +

Prerequisites:

+
    +
  • Client’s AD FS server should be exposed publicly or to Auth0’s IP ranges (either directly or using Web Application Proxy)
  • +
+ +

Steps:

+
    +
  1. Connect to the AD FS server
  2. +
  3. Open AD FS’ PowerShell CLI as Administrator through the server manager
  4. +
  5. +

    Execute the following:

    + +
     (new-object Net.WebClient -property @{Encoding = [Text.Encoding]::UTF8}).DownloadString("https://raw.github.com/auth0/adfs-auth0/master/adfs.ps1") | iex
    +
    + AddRelyingParty "urn:auth0:lakefs-cloud" "https://lakefs-cloud.us.auth0.com/login/callback"
    +
    + +

    Note: If your organization data is located in Europe, use lakefs-cloud.eu.auth0.com instead of lakefs-cloud.us.auth0.com.

    +
  6. +
+ +

Once you finish registering lakeFS Cloud with AD FS, save the AD FS URL and send this to Treeverse’s team to finish the integration.

+
+
+

+ + + Azure Active Directory (AD) + + +

+ + +

Prerequisites:

+
    +
  • Azure account with permissions to manage applications in Azure Active Directory
  • +
+ +

Note: If you’ve already set up lakeFS Cloud with your Azure account, you can skip the Register lakeFS Cloud with Azure and Add client secret and go directly to Add a redirect URI.

+

+ + + Register lakeFS Cloud with Azure + + +

+ + +

Steps:

+
    +
  1. Sign in to the Azure portal.
  2. +
  3. If you have access to multiple tenants, use the Directories + subscriptions filter in the top menu to switch to the tenant in which you want to register the application.
  4. +
  5. Search for and select Azure Active Directory.
  6. +
  7. Under Manage, select App registrations > New registration.
  8. +
  9. Enter a display Name for your application. Users of your application might see the display name when they use the app, for example during sign-in. You can change the display name at any time and multiple app registrations can share the same name. The app registration’s automatically generated Application (client) ID, not its display name, uniquely identifies your app within the identity platform.
  10. +
  11. +

    Specify who can use the application, sometimes called its sign-in audience.

    + +

    Note: don’t enter anything for Redirect URI (optional). You’ll configure a redirect URI in the next section.

    +
  12. +
  13. Select Register to complete the initial app registration.
  14. +
+ +

When registration finishes, the Azure portal displays the app registration’s Overview pane. You see the Application (client) ID. Also called the client ID, this value uniquely identifies your application in the Microsoft identity platform.

+ +

Important: new app registrations are hidden to users by default. When you are ready for users to see the app on their My Apps page you can enable it. To enable the app, in the Azure portal navigate to Azure Active Directory > Enterprise applications and select the app. Then on the Properties page toggle Visible to users? to Yes.

+

+ + + Add a secret + + +

+ +

Sometimes called an application password, a client secret is a string value your app can use in place of a certificate to identity itself.

+ +

Steps:

+
    +
  1. In the Azure portal, in App registrations, select your application.
  2. +
  3. Select Certificates & secrets > Client secrets > New client secret.
  4. +
  5. Add a description for your client secret.
  6. +
  7. Select an expiration for the secret or specify a custom lifetime. +
      +
    1. Client secret lifetime is limited to two years (24 months) or less. You can’t specify a custom lifetime longer than 24 months.
    2. +
    3. Microsoft recommends that you set an expiration value of less than 12 months.
    4. +
    +
  8. +
  9. Select Add.
  10. +
  11. Record the secret’s value for use in your client application code. This secret value is never displayed again after you leave this page.
  12. +
+

+ + + Add a redirect URI + + +

+ +

A redirect URI is the location where the Microsoft identity platform redirects a user’s client and sends security tokens after authentication.

+ +

You add and modify redirect URIs for your registered applications by configuring their platform settings.

+ +

Enter https://lakefs-cloud.us.auth0.com/login/callback as your redirect URI.

+ +

Settings for each application type, including redirect URIs, are configured in Platform configurations in the Azure portal. Some platforms, like Web and Single-page applications, require you to manually specify a redirect URI. For other platforms, like mobile and desktop, you can select from redirect URIs generated for you when you configure their other settings.

+ +

Steps:

+
    +
  1. In the Azure portal, in App registrations, select your application.
  2. +
  3. Under Manage, select Authentication.
  4. +
  5. Under Platform configurations, select Add a platform.
  6. +
  7. Under Configure platforms, select the web option.
  8. +
  9. Select Configure to complete the platform configuration.
  10. +
+ +

Once you finish registering lakeFS Cloud with Azure AD send the following items to the Treeverse’s team:

+
    +
  1. Client ID
  2. +
  3. Client Secret
  4. +
  5. Azure AD Domain
  6. +
  7. Identity API Version (v1 for Azure AD or v2 for Microsoft Identity Platform/Entra)
  8. +
+ +
+
+

+ + + SSO for lakeFS Enterprise + + +

+ + +

Authentication in lakeFS Enterprise is handled by a secondary service which runs side-by-side with lakeFS. With a nod to Hogwarts and their security system, we’ve named this service Fluffy. Details for configuring the supported identity providers with Fluffy are shown below. In addition, please review the necessary Helm configuration to configure Fluffy.

+ +
    +
  • Active Directory Federation Services (AD FS) (using SAML)
  • +
  • OpenID Connect
  • +
  • LDAP
  • +
+ +

If you’re using an authentication provider that is not listed please contact us for further assistance.

+ +
+ +
+

+ + + Active Directory Federation Services (AD FS) (using SAML) + + +

+ + +
+

AD FS integration uses certificates to sign & encrypt requests going out from Fluffy and decrypt incoming requests from AD FS server.

+
+ +

In order for Fluffy to work, the following values must be configured. Update (or override) the following attributes in the chart’s values.yaml file.

+
    +
  1. Replace fluffy.saml_rsa_public_cert and fluffy.saml_rsa_private_key with real certificate values
  2. +
  3. Replace fluffyConfig.auth.saml.idp_metadata_url with the metadata URL of the AD FS provider (e.g adfs-auth.company.com)
  4. +
  5. Replace fluffyConfig.auth.saml.external_user_id_claim_name with the claim name representing user id name in AD FS
  6. +
  7. Replace lakefs.company.com with your lakeFS server URL.
  8. +
+ +

If you’d like to generate the certificates using OpenSSL, you can take a look at the following example:

+ +
openssl req -x509 -newkey rsa:2048 -keyout myservice.key -out myservice.cert -days 365 -nodes -subj "/CN=lakefs.company.com" -
+
+ +

lakeFS Server Configuration (Update in helm’s values.yaml file):

+ +
auth:
+  cookie_auth_verification:
+    auth_source: saml
+    friendly_name_claim_name: displayName
+    persist_friendly_name: true
+    external_user_id_claim_name: samName
+    default_initial_groups:
+      - "Developers"
+  logout_redirect_url: "https://lakefs.company.com/logout-saml"
+  encrypt:
+    secret_key: shared-secrey-key
+  ui_config:
+    login_url: "https://lakefs.company.com/sso/login-saml"
+    logout_url: "https://lakefs.company.com/sso/logout-saml"
+    login_cookie_names:
+      - internal_auth_session
+      - saml_auth_session
+
+ +

Fluffy Configuration (Update in helm’s values.yaml file):

+ +
logging:
+  format: "json"
+  level: "INFO"
+  audit_log_level: "INFO"
+  output: "="
+auth:  
+  encrypt:
+    secret_key: shared-secrey-key    
+  logout_redirect_url: https://lakefs.company.com
+  post_login_redirect_url: https://lakefs.company.com
+  saml:
+    enabled: true 
+    sp_root_url: https://lakefs.company.com
+    sp_x509_key_path: '/etc/saml_certs/rsa_saml_private.cert'
+    sp_x509_cert_path: '/etc/saml_certs/rsa_saml_public.pem'
+    sp_sign_request: true
+    sp_signature_method: "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"
+    idp_metadata_url: "https://adfs-auth.company.com/federationmetadata/2007-06/federationmetadata.xml"
+    # idp_authn_name_id_format: "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"
+    external_user_id_claim_name: samName
+    # idp_metadata_file_path: 
+    # idp_skip_verify_tls_cert: true
+
+
+
+

+ + + OpenID Connect + + +

+ + +

In order for Fluffy to work, the following values must be configured. Update (or override) the following attributes in the chart’s values.yaml file.

+
    +
  1. Replace lakefsConfig.friendly_name_claim_name with the right claim name.
  2. +
  3. Replace lakefsConfig.default_initial_groups with desired claim name (See pre-configured groups for enterprise)
  4. +
  5. Replace fluffyConfig.auth.logout_redirect_url with your full OIDC logout URL (e.g https://oidc-provider-url.com/logout/path)
  6. +
  7. Replace fluffyConfig.auth.oidc.url with your OIDC provider URL (e.g https://oidc-provider-url.com)
  8. +
  9. Replace fluffyConfig.auth.oidc.logout_endpoint_query_parameters with parameters you’d like to pass to the OIDC provider for logout.
  10. +
  11. Replace fluffyConfig.auth.oidc.client_id and fluffyConfig.auth.oidc.client_secret with the client ID & secret for OIDC.
  12. +
  13. Replace fluffyConfig.auth.oidc.logout_client_id_query_parameter with the query parameter that represent the client_id, note that it should match the the key/query param that represents the client id and required by the specific OIDC provider.
  14. +
  15. Replace lakefs.company.com with the lakeFS server URL.
  16. +
+ +

lakeFS Server Configuration (Update in helm’s values.yaml file):

+ +
  # Important: make sure to include the rest of your lakeFS Configuration here!
+auth:
+  encrypt:
+    secret_key: shared-secrey-key
+  oidc:
+    friendly_name_claim_name: "name"
+    persist_friendly_name: true
+    default_initial_groups: ["Developers"]
+  ui_config:
+    login_url: /oidc/login
+    logout_url: /oidc/logout
+    login_cookie_names:
+      - internal_auth_session
+      - oidc_auth_session
+
+ +

Fluffy Configuration (Update in helm’s values.yaml file):

+ +
logging:
+  format: "json"
+  level: "INFO"
+  audit_log_level: "INFO"
+  output: "="
+installation:
+  fixed_id: fluffy-authenticator
+auth:
+  post_login_redirect_url: /
+  logout_redirect_url: https://oidc-provider-url.com/logout/url
+  oidc:
+    enabled: true
+    url: https://oidc-provider-url.com/
+    client_id: <oidc-client-id>
+    client_secret: <oidc-client-secret>
+    callback_base_url: https://lakefs.company.com
+    is_default_login: true
+    logout_client_id_query_parameter: client_id
+    logout_endpoint_query_parameters:
+      - returnTo 
+      - https://lakefs.company.com/oidc/login
+  encrypt:
+    secret_key: shared-secrey-key
+
+
+
+

+ + + LDAP + + +

+ + +

Fluffy is incharge of providing LDAP authentication for lakeFS Enterprise. +The authentication works by querying the LDAP server for user information and authenticating the user based on the provided credentials.

+ +

Important: An administrative bind user must be configured. It should have search permissions for the LDAP server that will be used to query the LDAP server for user information.

+ +

For Helm: set the following attributes in the Helm chart values, for lakeFS lakefsConfig.* and fluffyConfig.* for fluffy.

+ +

No Helm: If not using Helm use the YAML below to directly update the configuration file for each service.

+ +

lakeFS Configuration:

+ +
    +
  1. Replace auth.remote_authenticator.enabled with true
  2. +
  3. Replace auth.remote_authenticator.endpoint with the fluffy authentication server URL combined with the api/v1/ldap/login suffix (e.g http://lakefs.company.com/api/v1/ldap/login)
  4. +
+ +

fluffy Configuration:

+ +

See Fluffy configuration reference.

+ +
    +
  1. Repalce auth.ldap.remote_authenticator.server_endpoint with your LDAP server endpoint (e.g ldaps://ldap.ldap-address.com:636)
  2. +
  3. Replace auth.ldap.remote_authenticator.bind_dn with the LDAP bind user/permissions to query your LDAP server.
  4. +
  5. Replace auth.ldap.remote_authenticator.user_base_dn with the user base to search users in.
  6. +
+ +

lakeFS Server Configuration file:

+ +

$lakefs run -c ./lakefs.yaml

+ +
# Important: make sure to include the rest of your lakeFS Configuration here!
+
+auth:
+  remote_authenticator:
+    enabled: true
+    endpoint: http://<Fluffy URL>:<Fluffy http port>/api/v1/ldap/login
+    default_user_group: "Developers" # Value needs to correspond with an existing group in lakeFS
+  ui_config:
+    logout_url: /logout
+    login_cookie_names:
+      - internal_auth_session
+
+ +

Fluffy Configuration file:

+ +

$fluffy run -c ./fluffy.yaml

+ +
logging:
+  format: "json"
+  level: "INFO"
+  audit_log_level: "INFO"
+  output: "="
+installation:
+  fixed_id: fluffy-authenticator
+auth:
+  post_login_redirect_url: /
+  ldap: 
+    server_endpoint: 'ldaps://ldap.company.com:636'
+    bind_dn: uid=<bind-user-name>,ou=<some-ou>,o=<org-id>,dc=<company>,dc=com
+    bind_password: '<ldap pwd>'
+    username_attribute: uid
+    user_base_dn: ou=<some-ou>,o=<org-id>,dc=<company>,dc=com
+    user_filter: (objectClass=inetOrgPerson)
+    connection_timeout_seconds: 15
+    request_timeout_seconds: 7
+
+

+ + + Troubleshooting LDAP issues + + +

+ +

+ + + Inspecting Logs + + +

+ + +

If you encounter LDAP connection errors, you should inspect the fluffy container logs to get more information.

+

+ + + Authentication issues + + +

+ + +

Auth issues (e.g. user not found, invalid credentials) can be debugged with the ldapwhoami CLI tool.

+ +

The Examples are based on the fluffy config above:

+ +

To verify that the main bind user can connect:

+ +
ldapwhoami -H ldap://ldap.company.com:636 -D "uid=<bind-user-name>,ou=<some-ou>,o=<org-id>,dc=<company>,dc=com" -x -W
+
+ +

To verify that a specific lakeFS user dev-user can connect:

+ +
ldapwhoami -H ldap://ldap.company.com:636 -D "uid=dev-user,ou=<some-ou>,o=<org-id>,dc=<company>,dc=com" -x -W
+
+

+ + + User not found issue + + +

+ + +

Upon a login request in fluffy, the bind user will search for the user in the LDAP server. If the user is not found it will be presented in the logs.

+ +

We can search the user using ldapsearch CLI tool.

+ +

Search ALL users in the base DN (no filters):

+ +

Note: -b is the user_base_dn, -D is bind_dn and -w is bind_password from the fluffy configuration.

+ +
ldapsearch -H ldap://ldap.company.com:636 -x -b "ou=<some-ou>,o=<org-id>,dc=<company>,dc=com" -D "uid=<bind-user-name>,ou=<some-ou>,o=<org-id>,dc=<company>,dc=com" -w '<bind_user_pwd>'
+
+ +

If the user is found, we should now use filters for the specific user the same way fluffy does it and expect to see the user.

+ +

For example, to repdocue the same search as fluffy does:

+
    +
  • user dev-user set from uid attribute in LDAP
  • +
  • Fluffy configuration values: user_filter: (objectClass=inetOrgPerson) and username_attribute: uid
  • +
+ +
ldapsearch -H ldap://ldap.company.com:636 -x -b "ou=<some-ou>,o=<org-id>,dc=<company>,dc=com" -D "uid=<bind-user-name>,ou=<some-ou>,o=<org-id>,dc=<company>,dc=com" -w '<bind_user_pwd>' "(&(uid=dev-user)(objectClass=inetOrgPerson))"
+
+ +
+
+

+ + + Helm + + +

+ + +

In order to use lakeFS Enterprise and Fluffy, we provided out of the box setup, see lakeFS Helm chart configuration.

+ +

Notes:

+
    +
  • Check the examples on GitHub we provide for each authentication method (oidc/adfs/ldap + rbac).
  • +
  • The examples are provisioned with a Postgres pod for quick-start, make sure to replace that to a stable database once ready.
  • +
  • The encrypt secret key secrets.authEncryptSecretKey is shared between fluffy and lakeFS for authentication.
  • +
  • The lakeFS image.tag must be >= 1.0.0
  • +
  • The fluffy image.tag must be >= 0.2.7
  • +
  • Change the ingress.hosts[0] from lakefs.company.com to a real host (usually same as lakeFS), also update additional references in the file (note: URL path after host if provided should stay unchanged).
  • +
  • Update the ingress configuration with other optional fields if used
  • +
  • Fluffy docker image: replace the fluffy.image.privateRegistry.secretToken with real token to dockerhub for the fluffy docker image.
  • +
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/security/sts-login.html b/v1.46/security/sts-login.html new file mode 100644 index 000000000..e218d5e66 --- /dev/null +++ b/v1.46/security/sts-login.html @@ -0,0 +1,882 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Short-lived token (STS like) Authentication for lakeFS | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Short-lived token (STS like) + + +

+ +

lakeFS Cloud

+ +

lakeFS Enterprise

+ +
+

STS Login is available in lakeFS Cloud and lakeFS Enterprise. currently only tested on lakeFS Enterprise.

+
+ +

Secure Token Service (STS) authentication in lakeFS enables users to authenticate to lakeFS using temporary credentials obtained from an Identity Provider (IdP) via the OpenID Connect (OIDC) Authentication workflow. +This document outlines the process of setting up the STS authentication flow and using the temporary credentials to interact with lakeFS through the high-level Python SDK.

+

+ + + Login + + +

+ + +

Initiate a client session with temporary credentials using the high-level Python SDK:

+ +
import lakefs
+
+my_client = lakefs.client.from_web_identity(code = '<CODE_FROM_IDP>', state = '<STATE_FROM_IDP>' , redirect_uri = '<URI_USED_FOR_REDIRECT_FROM_IDP>', ttl_seconds = 7200)
+
+

+ + + Setup + + +

+ +

+ + + Prerequisites + + +

+ +

Ensure you have a way to generate the code, redirect_uri, and state values that are required to initiate a new client session using the STS login feature. +For a reference implementation, see the sample implementation section.

+

+ + + Configuration + + +

+ + +

To enable STS authentication, configure your lakeFS instance with the endpoint of the external Authentication Service.

+ +

+auth:
+    authentication_api:
+        endpoint: <url-to-remote-authenticator-endpoint>
+
+
+
+ +

The endpoint value should point to the external Authentication Service described at authentication.yml.
+Make sure to replace with the actual URL of your Authentication Service.

+

+ + + Sample implementation to generate the code, redirect_uri, and state + + +

+ +

The following code snippet demonstrates how to generate the values that are required to initiate a new client session using the STS login feature.

+ +
+

Replace <your-authorize-endpoint> with the path to your IdP authorize endpoint.
+Examples:
+Auth0: The authorize endpoint will be https://<your-auth0-domain>/authorize
+Entra ID: The authorize endpoint will be https://<your-entra-domain>/oauth2/v2.0/authorize

+
+ +
import crypto from 'crypto';
+
+import express from 'express';
+import axios from 'axios';
+import url from 'url';
+import jsonwebtoken from 'jsonwebtoken';
+
+const app = express();
+// the local script will will spin up the server and the IdP provider will return to this endpoint the response.
+const callback = "http://localhost:8080/oidc/callback"
+const authorizeEndpoint = "<your-authorize-endpoint>"
+
+// step 1 
+// Create a code_verifier, which is a cryptographically-random, Base64-encoded key that will eventually be sent to Auth0 to request tokens.
+function base64URLEncode(str) {
+    return str.toString('base64')
+        .replace(/\+/g, '-')
+        .replace(/\//g, '_')
+        .replace(/=/g, '');
+}
+var verifier = base64URLEncode(crypto.randomBytes(32));
+console.log(`verifier: ${verifier}`);
+
+// step 2 
+// Generate a code_challenge from the code_verifier that will be sent to Auth0 to request an authorization_code.
+function sha256(buffer) {
+    return crypto.createHash('sha256').update(buffer).digest();
+}
+
+var challenge = base64URLEncode(sha256(verifier));
+console.log(`challenge: ${challenge}`);
+
+
+const authorizeURL = `${authorizeEndpoint}?response_type=code&code_challenge=${challenge}&code_challenge_method=S256&client_id=${auth0ClientId}&redirect_uri=${callback}&scope=openid&state=${verifier}`
+
+console.log(`authorizeURL: ${authorizeURL}`)
+
+// Endpoint for OIDC callback
+app.get('/oidc/callback', async (req, res) => {
+    try {
+        const code = req.query.code;
+        const state = req.query.state;
+        console.log(`code: ${code}`);
+        console.log(`state: ${state}`);
+        // Return a success response
+        res.status(200).json({ code, state, redirect_uri: callback, python-cmd: `lakefs.client.from_web_identity(code = ${code} redirect_uri = ${callback} state = ${state}, ttl_seconds = 7200) ` });
+        return
+    } catch (err) {
+        console.error(err);
+        res.status(500).json({ message: 'Internal server error' });
+    }
+});
+
+// Start the server
+const PORT = 8080;
+app.listen(PORT, () => {
+    console.log(`Server is running on port ${PORT}`);
+});
+
+

+ + + Architecture + + +

+ + +

The STS authentication flow involves several components that facilitate secure communication between the lakeFS client, lakeFS server, the remote authenticator, and the IdP.

+ +
sequenceDiagram
+    participant A as lakeFS Client
+    participant B as lakeFS Server
+    participant C as Remote Authenticator
+    participant D as IdP
+    A->>B: Call STS login endpoint
+    B->>C: POST idp code state and redirect uri
+    C->>D: IdP request
+    D->>C: IdP response
+    C->>B: Auth response
+    B->>A: auth JWT
+
+
    +
  • lakeFS Client: Initiates the authentication process by providing IdP credentials.
  • +
  • lakeFS Server: Facilitates the authentication request between the client and the remote authenticator.
  • +
  • Remote Authenticator: Acts as a bridge between lakeFS and the IdP, handling credential validation.
  • +
  • IdP (Identity Provider): Validates the provided credentials and returns the authentication status.
  • +
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/setup/create-repo.html b/v1.46/setup/create-repo.html new file mode 100644 index 000000000..da83e1cb5 --- /dev/null +++ b/v1.46/setup/create-repo.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/setup/hooks.html b/v1.46/setup/hooks.html new file mode 100644 index 000000000..2ee933063 --- /dev/null +++ b/v1.46/setup/hooks.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/setup/import.html b/v1.46/setup/import.html new file mode 100644 index 000000000..4a3a4ef72 --- /dev/null +++ b/v1.46/setup/import.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/setup/index.html b/v1.46/setup/index.html new file mode 100644 index 000000000..da83e1cb5 --- /dev/null +++ b/v1.46/setup/index.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/setup/storage/blob.html b/v1.46/setup/storage/blob.html new file mode 100644 index 000000000..3ab302607 --- /dev/null +++ b/v1.46/setup/storage/blob.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/setup/storage/gcs.html b/v1.46/setup/storage/gcs.html new file mode 100644 index 000000000..e0a39904c --- /dev/null +++ b/v1.46/setup/storage/gcs.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/setup/storage/index.html b/v1.46/setup/storage/index.html new file mode 100644 index 000000000..da83e1cb5 --- /dev/null +++ b/v1.46/setup/storage/index.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/setup/storage/s3.html b/v1.46/setup/storage/s3.html new file mode 100644 index 000000000..fcfed0b37 --- /dev/null +++ b/v1.46/setup/storage/s3.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/sitemap.xml b/v1.46/sitemap.xml new file mode 100644 index 000000000..5817d8136 --- /dev/null +++ b/v1.46/sitemap.xml @@ -0,0 +1,375 @@ + + + +/v1.46/security/access-control-lists.html + + +/v1.46/quickstart/actions-and-hooks.html + + +/v1.46/integrations/airbyte.html + + +/v1.46/howto/hooks/airflow.html + + +/v1.46/integrations/airflow.html + + +/v1.46/reference/api.html + + +/v1.46/understand/architecture.html + + +/v1.46/enterprise/architecture.html + + +/v1.46/integrations/athena.html + + +/v1.46/reference/auditing.html + + +/v1.46/security/authentication.html + + +/v1.46/howto/deploy/aws.html + + +/v1.46/integrations/aws_cli.html + + +/v1.46/howto/deploy/azure.html + + +/v1.46/howto/backup-and-restore.html + + +/v1.46/quickstart/branch.html + + +/v1.46/project/docs/callouts.html + + +/v1.46/howto/catalog_exports.html + + +/v1.46/understand/data_lifecycle_management/ci.html + + +/v1.46/understand/use_cases/cicd_for_data.html + + +/v1.46/reference/cli.html + + +/v1.46/integrations/cloudera.html + + +/v1.46/project/code-migrate-1.0-sdk.html + + +/v1.46/quickstart/commit-and-merge.html + + +/v1.46/enterprise/configuration.html + + +/v1.46/reference/configuration.html + + +/v1.46/project/contributing.html + + +/v1.46/howto/copying.html + + +/v1.46/understand/data_lifecycle_management/data-devenv.html + + +/v1.46/understand/data-structure.html + + +/v1.46/integrations/databricks.html + + +/v1.46/integrations/delta.html + + +/v1.46/posts/deprecate-py-legacy.html + + +/v1.46/integrations/dremio.html + + +/v1.46/integrations/duckdb.html + + +/v1.46/understand/use_cases/etl_testing.html + + +/v1.46/howto/export.html + + +/v1.46/security/external-principals-aws.html + + +/v1.46/understand/faq.html + + +/v1.46/howto/garbage-collection/gc.html + + +/v1.46/howto/deploy/gcp.html + + +/v1.46/integrations/git.html + + +/v1.46/understand/glossary.html + + +/v1.46/integrations/glue_hive_metastore.html + + +/v1.46/integrations/glue_metastore.html + + +/v1.46/integrations/hive.html + + +/v1.46/integrations/huggingface_datasets.html + + +/v1.46/integrations/iceberg.html + + +/v1.46/howto/import.html + + +/v1.46/understand/how/ + + +/v1.46/understand/use_cases/ + + +/v1.46/understand/data_lifecycle_management/ + + +/v1.46/understand/ + + +/v1.46/cloud/ + + +/v1.46/howto/deploy/ + + +/v1.46/howto/garbage-collection/ + + +/v1.46/howto/hooks/ + + +/v1.46/howto/ + + +/v1.46/integrations/ + + +/v1.46/security/ + + +/v1.46/enterprise/getstarted/ + + +/v1.46/enterprise/ + + +/v1.46/posts/ + + +/v1.46/reference/ + + +/v1.46/quickstart/ + + +/v1.46/project/docs/ + + +/v1.46/project/ + + +/v1.46/ + + +/v1.46/enterprise/getstarted/install.html + + +/v1.46/integrations/kafka.html + + +/v1.46/integrations/kubeflow.html + + +/v1.46/understand/how/kv.html + + +/v1.46/experimental/lakectl_local_posix.html + + +/v1.46/quickstart/launch.html + + +/v1.46/quickstart/learning-more-lakefs.html + + +/v1.46/howto/local-checkouts.html + + +/v1.46/howto/hooks/lua.html + + +/v1.46/howto/garbage-collection/managed-gc.html + + +/v1.46/understand/how/merge.html + + +/v1.46/howto/migrate-away.html + + +/v1.46/enterprise/getstarted/migrate-from-oss.html + + +/v1.46/howto/mirroring.html + + +/v1.46/understand/model.html + + +/v1.46/reference/monitor.html + + +/v1.46/reference/mount-csi-driver.html + + +/v1.46/reference/mount.html + + +/v1.46/howto/deploy/onprem.html + + +/v1.46/understand/performance-best-practices.html + + +/v1.46/security/presigned-url.html + + +/v1.46/integrations/presto_trino.html + + +/v1.46/howto/private-link.html + + +/v1.46/understand/data_lifecycle_management/production.html + + +/v1.46/howto/protect-branches.html + + +/v1.46/howto/pull-requests.html + + +/v1.46/integrations/python.html + + +/v1.46/quickstart/query.html + + +/v1.46/enterprise/getstarted/quickstart.html + + +/v1.46/integrations/r.html + + +/v1.46/security/rbac.html + + +/v1.46/integrations/red_hat_openshift_ai.html + + +/v1.46/security/remote-authenticator.html + + +/v1.46/understand/use_cases/reproducibility.html + + +/v1.46/understand/use_cases/rollback.html + + +/v1.46/quickstart/rollback.html + + +/v1.46/reference/s3.html + + +/v1.46/integrations/sagemaker.html + + +/v1.46/howto/scim.html + + +/v1.46/posts/security_update.html + + +/v1.46/howto/sizing-guide.html + + +/v1.46/reference/spark-client.html + + +/v1.46/integrations/spark.html + + +/v1.46/security/sso.html + + +/v1.46/howto/garbage-collection/standalone-gc.html + + +/v1.46/security/sts-login.html + + +/v1.46/enterprise/troubleshooting.html + + +/v1.46/integrations/unity-catalog.html + + +/v1.46/howto/unity-delta-sharing.html + + +/v1.46/howto/deploy/upgrade.html + + +/v1.46/enterprise/upgrade.html + + +/v1.46/understand/how/versioning-internals.html + + +/v1.46/integrations/vertex_ai.html + + +/v1.46/howto/virtual-host-addressing.html + + +/v1.46/howto/hooks/webhooks.html + + +/v1.46/quickstart/work-with-data-locally.html + + diff --git a/v1.46/slack/index.html b/v1.46/slack/index.html new file mode 100644 index 000000000..860ea610f --- /dev/null +++ b/v1.46/slack/index.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/understand/architecture.html b/v1.46/understand/architecture.html new file mode 100644 index 000000000..75566ed0a --- /dev/null +++ b/v1.46/understand/architecture.html @@ -0,0 +1,969 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Architecture | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + lakeFS Architecture + + +

+ + +

lakeFS is distributed as a single binary encapsulating several logical services.

+ +

The server itself is stateless, meaning you can easily add more instances to handle a bigger load.

+ +

Architecture

+ + +

+ + + Object Storage + + +

+ + +

lakeFS stores data in object stores. Those supported include:

+ +
    +
  • AWS S3
  • +
  • Google Cloud Storage
  • +
  • Azure Blob Storage
  • +
  • MinIO
  • +
  • NetApp StorageGRID
  • +
  • Ceph
  • +
+

+ + + Metadata Storage + + +

+ + +

In additional a Key Value storage is used for storing metadata, with supported databases including PostgreSQL, DynamoDB, and CosmosDB Instructions of how to deploy such database on AWS can be found here.

+ +

Additional information on the data format can be found in Versioning internals and Internal database structure

+

+ + + Load Balancing + + +

+ + +

Accessing lakeFS is done using HTTP. +lakeFS exposes a frontend UI, an OpenAPI server, as well as an S3-compatible service (see S3 Gateway below). +lakeFS uses a single port that serves all three endpoints, so for most use cases a single load balancer pointing +to lakeFS server(s) would do.

+ + +

+ + + lakeFS Components + + +

+ +

+ + + S3 Gateway + + +

+ + +

The S3 Gateway is the layer in lakeFS responsible for the compatibility with S3. It implements a compatible subset of the S3 API to ensure most data systems can use lakeFS as a drop-in replacement for S3.

+ +

See the S3 API Reference section for information on supported API operations.

+

+ + + OpenAPI Server + + +

+ + +

The Swagger (OpenAPI) server exposes the full set of lakeFS operations (see Reference). This includes basic CRUD operations against repositories and objects, as well as versioning related operations such as branching, merging, committing, and reverting changes to data.

+

+ + + Storage Adapter + + +

+ + +

The Storage Adapter is an abstraction layer for communicating with any underlying object store. +Its implementations allow compatibility with many types of underlying storage such as S3, GCS, Azure Blob Storage, or non-production usages such as the local storage adapter.

+ +

See the roadmap for information on the future plans for storage compatibility.

+

+ + + Graveler + + +

+ + +

The Graveler handles lakeFS versioning by translating lakeFS addresses to the actual stored objects. +To learn about the data model used to store lakeFS metadata, see the versioning internals page.

+

+ + + Authentication & Authorization Service + + +

+ + +

The Auth service handles the creation, management, and validation of user credentials and RBAC policies.

+ +

The credential scheme, along with the request signing logic, are compatible with AWS IAM (both SIGv2 and SIGv4).

+ +

Currently, the Auth service manages its own database of users and credentials and doesn’t use IAM in any way.

+

+ + + Hooks Engine + + +

+ + +

The Hooks Engine enables CI/CD for data by triggering user defined Actions that will run during commit/merge.

+

+ + + UI + + +

+ + +

The UI layer is a simple browser-based client that uses the OpenAPI server. It allows management, exploration, and data access to repositories, branches, commits and objects in the system.

+

+ + + Applications + + +

+ + +

As a rule of thumb, lakeFS supports any S3-compatible application. This means that many common data applications work with lakeFS out-of-the-box. +Check out our integrations to learn more.

+

+ + + lakeFS Clients + + +

+ + +

Some data applications benefit from deeper integrations with lakeFS to support different use cases or enhanced functionality provided by lakeFS clients.

+

+ + + OpenAPI Generated SDKs + + +

+ + +

OpenAPI specification can be used to generate lakeFS clients for many programming languages. +For example, the Python lakefs-client or the Java client are published with every new lakeFS release.

+

+ + + lakectl + + +

+ + +

lakectl is a CLI tool that enables lakeFS operations using the lakeFS API from your preferred terminal.

+

+ + + Spark Metadata Client + + +

+ + +

The lakeFS Spark Metadata Client makes it easy to perform +operations related to lakeFS metadata, at scale. Examples include garbage collection or exporting data from lakeFS.

+

+ + + lakeFS Hadoop FileSystem + + +

+ + +

Thanks to the S3 Gateway, it’s possible to interact with lakeFS using Hadoop’s S3AFIleSystem, +but due to limitations of the S3 API, doing so requires reading and writing data objects through the lakeFS server. +Using lakeFSFileSystem increases Spark ETL jobs performance by executing the metadata operations on the lakeFS server, +and all data operations directly through the same underlying object store that lakeFS uses.

+

+ + + How lakeFS Clients and Gateway Handle Metadata and Data Access + + +

+ + +

When using the Python client, lakeCTL, or the lakeFS Spark client, these clients communicate with the lakeFS server to retrieve metadata information. For example, they may query lakeFS to understand which version of a file is needed or to track changes in branches and commits. This communication does not include the actual data transfer, but instead involves passing only metadata about data locations and versions. +Once the client knows the exact data location from the lakeFS metadata, it directly accesses the data in the underlying object storage (potentially using presigned URLs) without routing through lakeFS. For instance, if data is stored in S3, the Spark client will retrieve the S3 paths from lakeFS, then directly read and write to those paths in S3 without involving lakeFS in the data transfer.

+ +

lakeFS Clients vs Gateway Data Flow

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/understand/architecture/data-model.html b/v1.46/understand/architecture/data-model.html new file mode 100644 index 000000000..9c0ed11b5 --- /dev/null +++ b/v1.46/understand/architecture/data-model.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/understand/branching-model.html b/v1.46/understand/branching-model.html new file mode 100644 index 000000000..8e9879ba3 --- /dev/null +++ b/v1.46/understand/branching-model.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/understand/data-model.html b/v1.46/understand/data-model.html new file mode 100644 index 000000000..9c0ed11b5 --- /dev/null +++ b/v1.46/understand/data-model.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/understand/data-structure.html b/v1.46/understand/data-structure.html new file mode 100644 index 000000000..de0c6c4d5 --- /dev/null +++ b/v1.46/understand/data-structure.html @@ -0,0 +1,782 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Data Structure | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + How Does lakeFS Store Your Data + + +

+ +

lakeFS being a data versioning engine, requires the ability to save multiple versions of the same object. As a result, lakeFS stores objects in the object store +in way that allows it to version the data in an efficient way. +This might cause confusion when trying to understand where our data is actually being stored. This page will try to shed a light on this subject.

+

+ + + lakeFS Repository Namespace Structure + + +

+ +

lakeFS stores repository data and metadata under the repository’s namespace. The lakeFS repository namespace is a dedicated path under the object store used by lakeFS to manage a repository. +Listing a repository storage namespace in the object store will provide the following output:

+ +
aws s3 ls s3://<storage_namespace>/
+                        PRE _lakefs/
+                        PRE data/
+
+ +

lakeFS stores the actual user data under the data/ prefix. The _lakefs/ prefix is used to store commit metadata which includes range and meta-range files and internal lakeFS data. +Since lakeFS manages immutable data, objects are not saved using their logical name - these might get overwritten, violating the immutability guarantee. This means that when you upload a csv file called allstar_games_stats.csv to branch main, lakeFS will generate a random physical +address under the data/ prefix and upload it to there.
+Mapping from a path to an object changes as you upload, commit, and merge on lakeFS. When updating an object, lakeFS will create a new physical address for that version preserving other versions of that object. +lakeFS will link between the object’s logical address and its physical address - and store that relation under the given commit metadata (range and meta-range)

+ +

lakeFS uses its object store immutably i.e. anything uploaded is never changed or overridden (Refer to GC for explanation on how and when lakeFS actually deletes data from the storage).
+To find data, lakeFS uses the logical address e.g. lakefs://my-repo/main/allstar_games_stats.csv, indicating a repository and branch. +Using the KV metadata store, lakeFS will first try to find any uncommitted version of the object in the given branch. If no uncommitted version exist, it will take the latest committed version from the branch head (which is the top commit of the branch)

+ +
    +
  1. In the KV metadata store under the current staging token of branch main. This will return any uncommitted changes for the given object
  2. +
  3. Read it from the branch’s head meta-range and range (which are saved under the _lakefs prefix in the object store. This will return the metadata for the object as it was stored in the latest commit for branch main.
    +The physical path returned will be in the form of s3://<storage_namespace>/data/gp0n1l7d77pn0cke6jjg/cg6p50nd77pn0cke6jk0. The same object in lakeFS might have several physical addresses, one for each version where it exists.
  4. +
+

+ + + Finding an object’s location on your object store + + +

+ +

One way to determine the physical location of an object is using the lakectl fs stat command:

+ +
lakectl fs stat --pre-sign=false lakefs://my-repo/main/allstar_games_stats.csv
+Path: allstar_games_stats.csv
+Modified Time: 2024-08-02 10:13:33 -0400 EDT
+Size: 0 bytes
+Human Size: 0 B
+Physical Address: s3://niro-test/repos/docs/data/data/geh1jurck6tfom0s1t8g/cqmej33ck6tfom0s1tvg
+Checksum: d41d8cd98f00b204e9800998ecf8427e
+Content-Type: application/octet-stream
+
+ +

lakeFS can show any version of an object. For example: to see an object’s physical location on branch dev from 3 versions ago, use reference dev~3:

+ +
lakectl fs stat lakefs://my-repo/dev~3/allstar_games_stats.csv
+Path: allstar_games_stats.csv
+Modified Time: 2024-08-02 10:11:49 -0400 EDT
+Size: 916393 bytes
+Human Size: 916.4 kB
+Physical Address: s3://<storage_namespace>/data/data/geh1jurck6tfom0s1t8g/cqmei9bck6tfom0s1tt0
+Checksum: 48e04a4c072acdcf932ee6c43f46ef14
+Content-Type: application/octet-stream
+
+ +

This can be done using any lakeFS reference type.

+ +

To learn more about the internals of lakeFS and how it stores your data, follow this blog post

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/understand/data_lifecycle_management/ci.html b/v1.46/understand/data_lifecycle_management/ci.html new file mode 100644 index 000000000..cf1c436ee --- /dev/null +++ b/v1.46/understand/data_lifecycle_management/ci.html @@ -0,0 +1,765 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +During Deployment | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + During Deployment + + +

+ + +

Every day we introduce new data to the lake. And even if the code and infra doesn’t change, the data might, and those changes introduce potential quality issues. This is one of the complexities of a data product; the data we consume changes over the course of a month, a week, day, hour, or even minute-to-minute.

+ +

Examples of changes to data that may occur:

+
    +
  • A client-side bug in the data collection of website events
  • +
  • A new Android version that interferes with the collecting events from your App
  • +
  • COVID-19 abrupt impact on consumers’ behavior, and its effect on the accuracy of ML models.
  • +
  • During a change to Salesforce interface, the validation requirement from a certain field had been lost
  • +
+ +

lakeFS enable CI/CD-inspired workflows to help validate expectations and assumptions about the data before it goes live in production or lands in the data environment.

+

+ + + Example 1: Data update safety + + +

+ + +

Continuous deployment of existing data we expect to consume, flowing from ingest-pipelines into the lake. We merge data from an ingest branch (“events-data”), which allows us to create tests using data analysis tools or data quality services (e.g. Great Expectations, Monte Carlo) to ensure reliability of the data we merge to the main branch. Since merge is atomic, no performance issue will be introduced by using lakeFS, but your main branch will only include quality data.

+ +

branching_6

+ +

Each merge to the main branch creates a new commit on the main branch, which serves as a new version of the data. This allows us to easily revert to previous states of the data if a newer change introduces data issues.

+

+ + + Example 2: Test - Validate new data + + +

+ + +

Examples of common validation checks enforced in organizations:

+ +
    +
  • No user_* columns except under /private/…
  • +
  • Only (*.parquet | *.orc | _delta_log/*.json) files allowed
  • +
  • Under /production, only backward-compatible schema changes are allowed
  • +
  • New tables on main must be registered in our metadata repository first, with owner and SLA
  • +
+ +

lakeFS will assist in enforcing best practices by giving you a designated branch to ingest new data (“new-data-1” in the drawing). . You may run automated tests to validate predefined best practices as pre-merge hooks. If the validation passes, the new data will be automatically and atomically merged to the main branch. However, if the validation fails, you will be alerted and the new data will not be exposed to consumers.

+ +

By using this branching model and implementing best practices as pre merge hooks, you ensure the main lake is never compromised.

+ +

branching_4

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/understand/data_lifecycle_management/data-devenv.html b/v1.46/understand/data_lifecycle_management/data-devenv.html new file mode 100644 index 000000000..53969c62f --- /dev/null +++ b/v1.46/understand/data_lifecycle_management/data-devenv.html @@ -0,0 +1,788 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +In Test | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + In Test + + +

+ + +

As part of our routine work with data we develop new code, improve and upgrade old code, upgrade infrastructures, and test new technologies. lakeFS enables a safe test environment on your data lake without the need to copy or mock data, work on the pipelines or involve DevOps.

+ +

Creating a branch provides you an isolated environment with a snapshot of your repository (any part of your data lake you chose to manage on lakeFS). While working on your own branch in isolation, all other data users will be looking at the repository’s main branch. They can’t see your changes, and you don’t see changes to main done after you created the branch.

+ +

No worries, no data duplication is done, it’s all metadata management behind the scenes. +Let’s look at 2 examples of a test environment and their branching models.

+

+ + + Example 1: Upgrading Spark and using Reset action + + +

+ + +

You installed the latest version of Apache Spark. As a first step you’ll test your Spark jobs to see that the upgrade doesn’t have any undesired side effects.

+ +

For this purpose, you may create a branch (testing-spark-3.0) which will only be used to test the Spark upgrade, and discarded later. Jobs may run smoothly (the theoretical possibility exists!), or they may fail halfway through, leaving you with some intermediate partitions, data and metadata. In this case, you can simply reset the branch to its original state, without worrying about the intermediate results of your last experiment, and perform another (hopefully successful) test in an isolated branch. Reset actions are atomic and immediate, so no manual cleanup is required.

+ +

Once testing is completed, and you have achieved the desired result, you can delete this experimental branch, and all data not used on any other branch will be deleted with it.

+ +

branching_1

+ +

Creating a testing branch:

+ +
   lakectl branch create \
+      lakefs://example-repo/testing-spark-3 \
+      --source lakefs://example-repo/main
+   # output:
+   # created branch 'testing-spark-3'
+
+ +

Resetting changes to a branch:

+ +
   lakectl branch reset lakefs://example-repo/testing-spark-3
+   # are you sure you want to reset all uncommitted changes?: y█
+
+ +

Note lakeFS version <= v0.33.1 uses ‘@’ (instead of ‘/’) as separator between repository and branch.

+

+ + + Example 2: Collaborate & Compare - Which option is better? + + +

+ + +

Easily compare by testing which one performs better on your data set. +Examples may be:

+
    +
  • Different computation tools, e.g Spark vs. Presto
  • +
  • Different compression algorithms
  • +
  • Different Spark configurations
  • +
  • Different code versions of an ETL
  • +
+ +

Run each experiment on its own independent branch, while the main remains untouched. Once both experiments are done, create a comparison query (using Hive or Presto or any other tool of your choice) to compare data characteristics, performance or any other metric you see fit.

+ +

With lakeFS you don’t need to worry about creating data paths for the experiments, copying data, and remembering to delete it. It’s substantially easier to avoid errors and maintain a clean lake after.

+ +

branching_2

+ +

Reading from and comparing branches using Spark:

+ +
   val dfExperiment1 = sc.read.parquet("s3a://example-repo/experiment-1/events/by-date")
+   val dfExperiment2 = sc.read.parquet("s3a://example-repo/experiment-2/events/by-date")
+
+   dfExperiment1.groupBy("...").count()
+   dfExperiment2.groupBy("...").count() // now we can compare the properties of the data itself
+
+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/understand/data_lifecycle_management/index.html b/v1.46/understand/data_lifecycle_management/index.html new file mode 100644 index 000000000..27d1926c6 --- /dev/null +++ b/v1.46/understand/data_lifecycle_management/index.html @@ -0,0 +1,721 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Data Lifecycle Management | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Data Lifecycle Management in lakeFS + + +

+ + +

lakeFS provides full support for Data Lifecycle Management through all stages:

+ + + + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/understand/data_lifecycle_management/production.html b/v1.46/understand/data_lifecycle_management/production.html new file mode 100644 index 000000000..bdbb44778 --- /dev/null +++ b/v1.46/understand/data_lifecycle_management/production.html @@ -0,0 +1,796 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +In Production | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + In Production + + +

+ + +

Errors with data in production inevitably occur. When they do, they best thing we can do is remove the erroneous data, understand why the issue happened, and deploy changes that prevent it from occurring again.

+

+ + + Example 1: RollBack! - Data ingested from a Kafka stream + + +

+ + +

If you introduce a new code version to production and discover it has a critical bug, you can simply roll back to the previous version. +But you also need to roll back the results of running it. +Similar to Git, lakeFS allows you to revert your commits in case they introduced low-quality data. +Revert in lakeFS is an atomic action that prevents the data consumers from receiving low quality data until the issue is resolved.

+ +

As previously mentioned, with lakeFS the recommended branching schema is to ingest data to a dedicated branch. When streaming data, we can decide to merge the incoming data to main at a given time interval or checkpoint, depending on how we chose to write it from Kafka.

+ +

You can run quality tests for each merge (as discussed in the During Deployment section). Alas, tests are not perfect and we might still introduce low quality data to our main branch at some point. +In such a case, we can revert the bad commits from main to the last known high quality commit. This will record new commits reversing the effect of the bad commits.

+ +

branching_7

+ +

Reverting commits using the CLI

+ +
   lakectl branch revert lakefs://example-repo/main 20c30c96 ababea32
+
+ +

Note lakeFS version <= v0.33.1 uses ‘@’ (instead of ‘/’) as separator between repository and branch.

+

+ + + Example 2: Troubleshoot - Reproduce a bug in production + + +

+ + +

You upgraded spark and deployed changes in production. A few days or weeks later, you identify a data quality issue, a performance degradation, or an increase to your infra costs. Something that requires investigation and fixing (aka, a bug).

+ +

lakeFS allows you to open a branch of your lake from the specific merge/commit that introduced the changes to production. Using the metadata saved on the merge/commit you can reproduce all aspects of the environment, then reproduce the issue on the branch and debug it. Meanwhile, you can revert the main to a previous point in time, or keep it as is, depending on the use case

+ +

branching_3

+ +

Reading from a historic version (a previous commit) using Spark

+ +
   // represents the data as existed at commit "11eef40b":
+   spark.read.parquet("s3://example-repo/11eef40b/events/by-date")
+
+

+ + + Example 3: Cross collection consistency + + +

+ + +

We often need consistency between different data collections. A few examples may be:

+
    +
  • To join different collections in order to create a unified view of an account, a user or another entity we measure.
  • +
  • To introduce the same data in different formats
  • +
  • To introduce the same data with a different leading index or sorting due to performance considerations
  • +
+ +

lakeFS will help ensure you introduce only consistent data to your consumers by exposing the new collections and their join in one atomic action to main. Once you consumed the collections on a different branch, and only when both are synchronized, we calculated the join and merged to main.

+ +

In this example you can see two data sets (Sales data and Marketing data) consumed each to its own independent branch, and after the write of both data sets is completed, they are merged to a different branch (leads branch) where the join ETL runs and creates a joined collection by account. The joined table is then merged to main. +The same logic can apply if the data is ingested in streaming, using standard formats, or formats that allow upsert/delete such as Apache Hudi, Delta Lake or Iceberg.

+ +

branching_8

+

+ + + Case Study: Windward + + +

+ +

See how Windward is using lakeFS’ isolation and atomic commits to achieve consistency on top of S3.

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/understand/faq.html b/v1.46/understand/faq.html new file mode 100644 index 000000000..399ebf66d --- /dev/null +++ b/v1.46/understand/faq.html @@ -0,0 +1,782 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +FAQ | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + lakeFS Frequently Asked Questions (FAQ) + + +

+ +

+ + + 1. Is lakeFS open-source? + + +

+ +

lakeFS is completely free, open-source, and licensed under the Apache 2.0 License. We maintain a public product roadmap and a Slack channel for open discussions.

+

+ + + 2. How does lakeFS data versioning work? + + +

+ +

lakeFS uses zero-copy branching to avoid data duplication. That is, creating a new branch is a metadata-only operation: no objects are actually copied. Only when an object changes does lakeFS create another version of the data in the storage. For more information, see Versioning internals.

+

+ + + 3. How do I get support for my lakeFS installation? + + +

+ +

We are extremely responsive on our Slack channel, and we make sure to prioritize the most pressing issues for the community. For SLA-based support, please contact us at support@treeverse.io.

+

+ + + 4. Do you collect data from your active installations? + + +

+ +

We collect anonymous usage statistics to understand the patterns of use and to detect product gaps we may have so we can fix them. This is optional and may be turned off by setting stats.enabled to false. See the configuration reference for more details.

+ +

The data we gather is limited to the following:

+
    +
  1. A UUID which is generated when setting up lakeFS for the first time and contains no personal or otherwise identifiable information,
  2. +
  3. The lakeFS version currently running,
  4. +
  5. The OS and architecture lakeFS is running on,
  6. +
  7. Metadata regarding the database used (version, installed extensions and parameters such as DB Timezone and work memory),
  8. +
  9. Periodic aggregated action counters (e.g. how many “get_object” operations occurred).
  10. +
+

+ + + 5. How is lakeFS different from Delta Lake / Hudi / Iceberg? + + +

+ +

Delta Lake, Apache Hudi, and Apache Iceberg all define dedicated, structured data formats that allow deletes and upserts. lakeFS is format-agnostic and enables consistent cross-collection versioning of your data using Git-like operations. Read our comparison for a more detailed comparison.

+ + +

The Axolotl – a species of salamander, also known as the Mexican Lake Monster or the Peter Pan of the animal kingdom. It’s a magical creature, living in a lake - just like us! :)

+ +

Axolotl

+ +

+ copyright +

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/understand/glossary.html b/v1.46/understand/glossary.html new file mode 100644 index 000000000..81f31e5a6 --- /dev/null +++ b/v1.46/understand/glossary.html @@ -0,0 +1,971 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Glossary | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Glossary + + +

+ +

This page has definition and explanations of all terms related to lakeFS technical internals and the architecture.

+ + +

+ + + Auditing + + +

+ +

Data auditing is data assessment to ensure its accuracy, security, and efficacy for specific usage. It also involves assessing data quality through its lifecycle and understanding the impact of poor quality data on the organization’s performance and revenue. Ensuring data reproducibility, auditability, and governance is one of the key concerns of data engineers today. lakeFS commit history helps the data teams to keep track of all changes to the data, supporting data auditing.

+

+ + + Branch + + +

+ + +

Branches in lakeFS allow users to create their own “isolated” view of the repository. Read more.

+

+ + + Collection + + +

+ +

A collection, roughly speaking, is a set of data. Collections may be structured or unstructured; a structured collection is often referred to as a table.

+

+ + + Commit + + +

+ + +

Using commits, you can view a repository at a certain point in its history and you’re guaranteed that the data you see is exactly as it was at the point of committing it. Read More.

+

+ + + Cross-Collection Consistency + + +

+ +

It is unfortunate that the word ‘consistency’ has multiple meanings, at least four of them according to Martin Kleppmann. Consistency in the context of lakeFS and data versioning is, the guarantee that operations in a transaction are performed accurately, correctly and most important, atomically.

+ +

A repository (and thus a branch) in lakeFS, can span multiple tables or collections. By providing branch, commit, merge and revert operations atomically on a branch, lakeFS achieves consistency guarantees across different logical collections. That is, data versioning is consistent across multiple collections within a repository.

+ +

It is sometimes referred as multi-table transactions. That is, lakeFS offers transactional guarantees across multiple tables.

+ + +

+ + + Data Lake Governance + + +

+ +

The goal of data lake governance is to apply policies, standards and processes on the data. This allows creating high-quality data and ensuring that it’s used appropriately across the organization. Data lake governance improves the data quality and increases data usage for business decision-making, leading to operational improvements, better-informed business strategies, and stronger financial performance. lakeFS Cloud offers advanced data lake management features such as: Role-Based Access Control, Branch Aware Managed Garbage Collection, Data Lineage and Audit log.

+

+ + + Data Lifecycle Management + + +

+ +

In data-intensive applications, data should be managed through its entire lifecycle similar to how teams manage code. By doing so, we could leverage the best practices and tools from application lifecycle management (like CI/CD operations) and apply them to data. lakeFS offers data lifecycle management via isolated data development environments instead of shared buckets.

+

+ + + Data Pipeline Reproducibility + + +

+ +

Reproducibility in data pipelines is the ability to repeat a process. An example of this is recreating an issue that occurred in the production pipeline. Reproducibility allows for the controlled manufacture of an error to debug and troubleshoot it at a later point in time. Reproducing a data pipeline issue is a challenge that most data engineers face on a daily basis. Learn more about how lakeFS supports data pipeline reproducibility. Other use cases include running ad-hoc queries (useful for data science), review, and backfill.

+

+ + + Data Quality Testing + + +

+ +

This term describes ways to test data for its accuracy, completeness, consistency, timeliness, validity, and integrity. lakeFS hooks can be used to implement and run data quality tests before promoting staging data into production.

+

+ + + Data Versioning + + +

+ +

To version data means creating a unique point-in-time reference for data that can be accessed later. This reference can take the form of a query, an ID, or also commonly, a DateTime identifier. Data versioning may also include saving an entire copy of the data under a new name or file path every time you want to create a version of it. More advanced versioning solutions like lakeFS perform versioning through zero-copy data operations. lakeFS also optimizes storage usage between versions and exposes special operations to manage them.

+

+ + + Git-like Operations + + +

+ +

lakeFS allows teams to treat their data lake as a Git repository. Git is used for code versioning, whereas lakeFS is used for data versioning. lakeFS provides Git-like operations such as branch, commit, merge and revert.

+

+ + + Graveler + + +

+ +

Graveler is the core versioning engine of lakeFS. It handles versioning by translating lakeFS addresses to the actual stored objects. See the versioning internals section to learn how lakeFS stores metadata.

+

+ + + Hooks + + +

+ +

lakeFS hooks allow you to automate and ensure that a given set of checks and validations happens before important lifecycle events. They are similar conceptually to Git Hooks, but in contrast, they run remotely on a server. Currently, lakeFS allows executing hooks when two types of events occur: pre-commit events that run before a commit is acknowledged and pre-merge events that trigger right before a merge operation.

+

+ + + Isolated Data Snapshot + + +

+ +

Creating a branch in lakeFS provides an isolated environment containing a snapshot of your repository. While working on your branch in isolation, all other data users will be looking at the repository’s main branch. So they won’t see your changes, and you also won’t see the changes applied to the main branch. All of this happens without any data duplication but metadata management.

+

+ + + Main Branch + + +

+ +

Every Git repository has the main branch (unless you take explicit steps to remove it) and it plays a key role in the software development process. In most projects, it represents the source of truth - all the code that works has been tested and is ready to be pushed to production. Similarly, main branch in lakeFS could be used as the single source of truth. For example, the live production data can be on the main branch.

+

+ + + Metadata Management + + +

+ +

Where there is data, there is also metadata. lakeFS uses metadata to define schema, data types, data versions, relations to other datasets, etc. This helps to improve discoverability and manageability. lakeFS performs data versioning through metadata operations.

+

+ + + Merge + + +

+ +

lakeFS merge command, similar to the Git merge functionality, allows you to merge data branches. Once you commit data, you can review it and then merge the committed data into the target branch. A merge generates a commit on the target branch with all your changes. lakeFS guarantees atomic merges that are fast, given they don’t involve copying data. Read More.

+

+ + + Repository + + +

+ + +

In lakeFS, a repository is a set of related objects (or collections of objects). Read More.

+

+ + + Rollback + + +

+ +

A rollback is an atomic operation reversing the effects of a previous commit. If a developer introduces a new code version to production and discovers that it has a critical bug, they can simply roll back to the previous version. In lakeFS, a rollback is an atomic action that prevents the data consumers from receiving low-quality data until the issue is resolved. Learn more about how lakeFS supports the rollback operation.

+

+ + + Storage Namespace + + +

+ +

The storage namespace is a location in the underlying storage dedicated to a specific repository. +lakeFS uses it to store the repository’s objects and some of its metadata.

+

+ + + Underlying Storage + + +

+ +

The underlying storage is a location in some object store where lakeFS keeps your objects and some metadata.

+

+ + + Tag + + +

+ + +

Tags are a way to give a meaningful name to a specific commit. Read More.

+

+ + + Fluffy + + +

+ + +

lakeFS Enterprise Single-Sign-On service, it’s delegated with lakeFS authentication requests and replies back to lakeFS with the authentication response.

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/understand/how/index.html b/v1.46/understand/how/index.html new file mode 100644 index 000000000..9c400bd80 --- /dev/null +++ b/v1.46/understand/how/index.html @@ -0,0 +1,723 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +How lakeFS Works | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + How lakeFS Works + + +

+ + +

The Architecture page includes a logical overview of lakeFS and its components.

+ +

For deep-dive content about lakeFS see:

+ + + + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/understand/how/kv.html b/v1.46/understand/how/kv.html new file mode 100644 index 000000000..16033f20f --- /dev/null +++ b/v1.46/understand/how/kv.html @@ -0,0 +1,808 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Internal database structure | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Internal database structure + + +

+ + + + +

Starting at version 0.80.2, lakeFS abandoned the tight coupling to PostgreSQL and moved all database operations to work over Key-Value Store

+ +

While SQL databases, and Postgres among them, have their obvious advantages, we felt that the tight coupling to Postgres is limiting our users and so, lakeFS with Key Value Store is introduced. +Our KV Store implements a generic interface, with methods for Get, Set, Compare-and-Set, Delete and Scan. Each entry is represented by a [partition, key, value] triplet. All these fields are generic byte-array, and the using module has maximal flexibility on the format to use for each field

+ +

Under the hood, our KV implementation relies on a backing DB, which persists the data. Theoretically, it could be any type of database and out of the box, we already implemented drivers for DynamoDB, for AWS users, and PostgreSQL, using its relational nature to store a KV Store. More databases will be supported in the future, and lakeFS users and contributors can develop their own driver to use their own favorite database. For experimenting purposes, an in-memory KV store can be used, though it obviously lack the persistency aspect

+ +

In order to store its metadata objects (that is Repositories, Branches, Commits, Tags, and Uncommitted Objects), lakeFS implements another layer over the generic KV Store, which supports serialization and deserialization of these objects as protobuf. As this layer relies on the generic interface of the KV Store layer, it is totally agnostic to whichever store implementation is in use, gaining our users the maximal flexibility

+ +

For further reading, please refer to our KV Design

+

+ + + Optimistic Locking with KV + + +

+ + +

One important key difference between SQL databases and Key Value Store is the ability to lock resources. While this is a common practice with relational databases, Key Value stores not always support this ability. When designing our KV Store, we tried to support the most simplistic straight-forward interface, with flexibility in backing DB selection, and so, we decided not to support locking. This decision brought some concurrency challenges we had to overcome. Let us take a look at a common lakeFS flow, Commit, during which several database operations are performed:

+
    +
  • All relevant (Branch correlated) uncommitted objects are collected and marked as committed
  • +
  • A new Commit object is created
  • +
  • The relevant Branch is updated to point to the new commit
  • +
+ +

The Commit flow includes multiple database accesses and modifications, and is very sensitive to concurrent executions: If 2 Commit flows run in parallel, we must guarantee correctness of the data. lakeFS with PostgreSQL simply locks the Branch for the entire Commit operation, preventing concurrent execution of such flows. +Now, with KV Store replacing the SQL database, this easy solution is no longer available. Instead, we implemented an Optimistic Locking algorithm, which leverages the KV Store Compare-And-Set (CAS) functionality to remember the Branch state at the beginning of the Commit flow, and updating the branch at the end, only if it remains unchanged, using CAS, with the former Branch state, used as a comparison criteria. If the sampled Branch state and the current state differ, it could only mean that another, later, Commit is in progress, causing the first Commit to fail, and give the later Commit a chance to complete. +Here’s a running example:

+
    +
  • Commit A sets the StagingToken to tokenA and samples the Branch,
  • +
  • Commit B sets the StagingToken to tokenB and samples the Branch,
  • +
  • Commit A finishes, tries to update the Branch and fails due to the recent modification by Commit B - the StagingToken is set to tokenB and not tokenA as expected by Commit A,
  • +
  • Commit B finishes and updates the branch, as tokenB is set as StagingToken and it matches the flow expectation
  • +
+ +

An important detail to note, is that as a Commit starts, and the StagingToken is set a new value, the former value is added to a list of ‘still valid’ StagingToken_s - _SealedToken - on the Branch, which makes sure no StagingToken and no object are lost due to a failed Commit

+ +

You can read more on the Commit Flow in the dedicated section in the KV Design

+

+ + + DB Transactions and Atomic Updates + + +

+ + +

Another notable difference is the existence of DB transactions with PostgreSQL, ability that our KV Store lacks. This ability was leveraged by lakeFS to construct several DB updates, into one “atomic” operation - each failure, in each step, rolled back the entire operation, keeping the DB consistent and clean. +With KV Store, this ability is gone, and we had to come up with various solutions. As a starting point, the DB consistency is, obviously, not anything we can risk. On the other hand, maintaining the DB clean, and as a result smaller, is something that can be sacrificed, at least as a first step. Let us take a look at a relatively simple flow of a new Repository creation: +A brand new Repository has 3 objects: The Repository object itself, an initial Branch object and an initial Commit, which the Branch points to. With SQL DB, it was as simple as creating all 3 objects in the DB under one transaction (at this order). Any failure resulted in a rollback and no redundant leftovers in our DB. +With no transaction in KV Store, if for example the Branch creation fails, it will leave the Repository without an initial Branch (or a Branch at all), yet the Repository will be accessible. Trying to delete the Repository as a response to Branch creation failure is ony a partial solution as this operation can fail as well. +To mitigate this we introduced a per-_Repository_-partition, which holds all repository related objects (the Branch and Commit in this scenario). The partition key can only be derived from the specific Repository instance itself. In addition we first create the Repository objects, the Commit and the Branch, under the Repository’s partition key, and then the Repository is created. The Repository and its objects will be accessible only after a successful creation of all 3 entities. A failure in this flow might leave some dangling objects, but consistency is maintained. +The number of such dangling objects is not expected to be significant, and we plan to implement a cleaning algorithm to keep our KV Store neat and clean

+

+ + + So, Which Approach is Better? + + +

+ + +

This documents provides a peek into our new database approach - Key Value Store instead of a Relational SQL. It discusses the challenges we faced, and the solutions we provided to overcome these challenges. Considering the fact that lakeFS over with relational database did work, you might ask yourself why did we bother to develop another solution. The simple answer, is that while PostgreSQL was not a bad option, it was the only option, and any drawback of PostgreSQL, reflected on our users:

+
    +
  • PostgreSQL can only scale vertically and that is a limitation. At some point this might not hold.
  • +
  • PostgreSQL is not a managed solution, meaning that users had to take care of all maintenance tasks, including the above mentioned scale (when needed)
  • +
  • As an unmanaged database, scaling means downtime - is that acceptable?
  • +
  • It might even get to the point that your organization is not willing to work with PostgreSQL due to various business considerations
  • +
+ +

If none of the above apply, and you have no seemingly reason to switch from PostgreSQL, it can definitely still be used as an excellent option for the backing database for the lakeFS KV Store. If you do need another solution, you have DynamoDB support, out of the box. DynamoDB, as a fully managed solution, with horizontal scalability support and optimized partitions support, answers all the pain-points specified above. It is definitely an option to consider, if you need to overcome these +And, of course, you can always decide to implement your own KV Store driver to use your database of choice - we would love to add your contribution to lakeFS

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/understand/how/merge.html b/v1.46/understand/how/merge.html new file mode 100644 index 000000000..2ac2405a1 --- /dev/null +++ b/v1.46/understand/how/merge.html @@ -0,0 +1,874 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Merge | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Merges in lakeFS + + +

+ + +

The merge operation in lakeFS is similar to Git. It incorporates changes from a merge source (a commit/reference) into a merge destination (a branch).

+

+ + + How does it work? + + +

+ + +

lakeFS first finds the merge base: the nearest common ancestor of the two commits. +It can now perform a three-way merge, by examining the presence and identity of files in each commit. In the table +below, “A”, “B” and “C” are possible file contents, “X” is a missing file, and “conflict” +(which only appears as a result) is a merge failure.

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
In baseIn sourceIn destinationResultComment
AAAAUnchanged file
ABBBFiles changed on both sides in same way
ABCconflictFiles changed on both sides differently
AABBFile changed only on one branch
ABABFile changed only on one branch
AXXXFiles deleted on both sides
ABXconflictFile changed on one side, deleted on the other
AXBconflictFile changed on one side, deleted on the other
AAXXFile deleted on one side
AXAXFile deleted on one side
+

+ + + Merge Strategies + + +

+ + +

The API and lakectl allow passing an optional strategy flag with the following values:

+

+ + + source-wins + + +

+ + +

In case of a conflict, merge will pick the source objects.

+

+ + + Example + + +

+ + +
lakectl merge lakefs://example-repo/validated-data lakefs://example-repo/production --strategy source-wins
+
+

When a merge conflict arises, the conflicting objects in the validated-data branch will be chosen to end up in production.

+

+ + + dest-wins + + +

+ + +

In case of a conflict, merge will pick the destination objects.

+

+ + + Example + + +

+ + +
lakectl merge lakefs://example-repo/validated-data lakefs://example-repo/production --strategy dest-wins
+
+

When a merge conflict arises, the conflicting objects in the production branch will be chosen to end up in validated-data. The production branch will not be affected by object changes from validated-data conflicting objects.

+ +

The strategy will affect all conflicting objects in the merge if it is set. Currently it is not possible to treat conflicts individually.

+ +

As a format-agnostic system, lakeFS currently merges by complete files. Format-specific and +other user-defined merge strategies for handling conflicts are on the roadmap.

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/understand/how/versioning-internals.html b/v1.46/understand/how/versioning-internals.html new file mode 100644 index 000000000..896e4679f --- /dev/null +++ b/v1.46/understand/how/versioning-internals.html @@ -0,0 +1,848 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Versioning Internals | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Versioning Internals + + +

+ + + +

+ + + Overview + + +

+ + +

Since commits in lakeFS are immutable, they are easy to store on an immutable object store.

+ +

Older commits are rarely accessed, while newer commits are accessed very frequently, a tiered storage approach can work very well - the object store is the source of truth, while local disk and even RAM can be used to cache the more frequently accessed ones.

+ +

Since they are immutable - once cached, you only need to evict them when space is running out. There’s no complex invalidation that needs to happen.

+ +

In terms of storage format, commits are be stored as SSTables, compatible with RocksDB.

+ +

SSTables were chosen as a storage format for 3 major reasons:

+ +
    +
  1. Extremely high read throughput on modern hardware: using commits representing a 200m object repository (modeled after the S3 inventory of one of our design partners), we were able to achieve close to 500k random GetObject calls / second. This provides a very high throughput/cost ratio, probably as high as can be achieved on public clouds.
  2. +
  3. Being a known storage format means it’s relatively easy to generate and consume. Storing it in the object store makes it accessible to data engineering tools for analysis and distributed computation, effectively reducing the silo effect of storing it in an operational database.
  4. +
  5. The SSTable format supports delta encoding for keys which makes them very space efficient for data lakes where many keys share the same common prefixes.
  6. +
+ +

Each lakeFS commit is represented as a set of contiguous, non-overlapping SSTables that make up the entire keyspace of a repository at that commit.

+

+ + + SSTable File Format (“Graveler File”) + + +

+ + +

lakeFS metadata is encoded into a format called “Graveler” - a standardized way to encode content-addressable key value pairs. This is what a Graveler file looks like:

+ +

Graveler File

+ +

Each Key/Value pair (“ValueRecord”) is constructed of a key, identity, and value.

+ +

A simple identity could be, for example, a sha256 hash of the value’s bytes. It could be any sequence of bytes that uniquely identifies the value. As far as the Graveler is concerned, two ValueRecords are considered identical if their key and identity fields are equal.

+ +

A Graveler file itself is content-addressable, i.e., similarly to Git, the name of the file is its identity. +File identity is calculated based on the identity of the ValueRecords the file contains:

+ +

valueRecordID = h(h(valueRecord.key) || h(valueRecord.Identity))
+fileID = h(valueRecordID1 + … + valueRecordIDN)

+

+ + + Constructing a consistent view of the keyspace (i.e., a commit) + + +

+ + +

We have two additional requirements for the storage format:

+ +
    +
  1. Be space and time efficient when creating a commit - assuming a commit changes a single object out of a billion, we don’t want to write a full snapshot of the entire repository. Ideally, we’ll be able to reuse some data files that haven’t changed to make the commit operations (in both space and time) proportional to the size of the difference as opposed to the total size of the repository.
  2. +
  3. Allow an efficient diff between commits which runs in time proportional to the size of their difference and not their absolute sizes.
  4. +
+ +

To support these requirements, we decided to essentially build a 2-layer Merkle tree composed of a set of leaf nodes (“Range”) addressed by their content address, and a “Meta Range”, which is a special range containing all ranges, thus representing an entire consistent view of the keyspace:

+ +

Metarange to ranges relationship

+ +

Assuming commit B is derived from commit A, and only changed files in range e-f, it can reuse all ranges except for SSTable #N (the one containing the modified range of keys), which will be recreated with a new hash representing the state as exists after applying commit B’s changes. This will, in turn, also create a new Metarange since its hash is now changed as well (as it is derived from the hash of all contained ranges).

+ +

Assuming most commits usually change related objects (i.e., that are likely to share some common prefix), the reuse ratio could be very high. We tested this assumption using S3 inventory from 2 design partners - we partitioned the keyspace to an arbitrary number of simulated blocks and measured their change over time. We saw a daily change rate of about 5-20%.

+ +

Given the size of the repositories, it’s safe to assume that a single day would translate into multiple commits. At a modest 20 commits per day, a commit is expected to reuse >= 99% of the previous commit blocks, so acceptable in terms of write amplification generated on commit.

+ +

On the object store, ranges are stored in the following hierarchy:

+ +
<lakefs root>
+    _lakefs/
+        <range hash1>
+        <range hash2>
+        <range hashN>
+        ...
+        <metarange hash1>
+        <metarange hash2>
+        <metarange hashN>
+        ...
+    <data object hash1>
+    <data object hash2>
+    <data object hashN>
+    ...
+
+ +

Note: This relatively flat structure could be modified in the future. Looking at the diagram above, it imposes no real limitations on the depth of the tree. A tree could easily be made recursive by having Meta Ranges point to other Meta Ranges - and still provide all the same characteristics. For simplicity, we decided to start with a fixed 2-level hierarchy.

+

+ + + Representing references and uncommitted metadata + + +

+ + +

lakeFS always stores the object data in the storage namespace in the user’s object store, committed and uncommitted data alike.

+ +

However, the lakeFS object metadata might be stored in either the object store or a key-value store.

+ +

Unlike committed metadata which is immutable, uncommitted (or “staged”) metadata experiences frequent random writes and is very mutable in nature. This is also true for “refs” - in particular, branches, which are simply pointers to an underlying commit, are modified frequently: on every commit or merge operation.

+ +

Both these types of metadata are not only mutable, but also require strong consistency guarantees while also being fault tolerant. If we can’t access the current pointer of the main branch, a big portion of the system is essentially down.

+ +

Luckily, this is also much smaller set of metadata compared to the committed metadata.

+ +

References and uncommitted metadata are currently stored on a key-value store (See supported databases) for consistency guarantees.

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/understand/images/1.0-is-coming.jpeg b/v1.46/understand/images/1.0-is-coming.jpeg new file mode 100644 index 000000000..4f7e56f3b Binary files /dev/null and b/v1.46/understand/images/1.0-is-coming.jpeg differ diff --git a/v1.46/understand/images/1.0-is-coming.jpg b/v1.46/understand/images/1.0-is-coming.jpg new file mode 100644 index 000000000..18e32ba60 Binary files /dev/null and b/v1.46/understand/images/1.0-is-coming.jpg differ diff --git a/v1.46/understand/index.html b/v1.46/understand/index.html new file mode 100644 index 000000000..02d176cbb --- /dev/null +++ b/v1.46/understand/index.html @@ -0,0 +1,778 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Understanding lakeFS | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + +
+ +

+ + + Understanding lakeFS + + +

+ + +

lakeFS Docs

+

+ + + Architecture and Internals + + +

+ + +

The Architecture page includes a logical overview of lakeFS and its components.

+ +

For deep-dive content about lakeFS see:

+ + +

+ + + lakeFS Use Cases + + +

+ + +

lakeFS has many uses in the data world, including

+ + + +

One of the important things that lakeFS provides is full support for Data Lifecycle Management through all stages:

+ + +

+ + + lakeFS Concepts and Model + + +

+ + +

lakeFS adopts many of the terms and concepts from git. This page goes into details on the similarities and differences, and provides a good background to the concepts used in lakeFS.

+

+ + + Performance + + +

+ + +

Check out the Performance best practices guide for useful hints and tips on ensuring high performance from lakeFS.

+

+ + + FAQ and Glossary + + +

+ + +

The FAQ covers many common questions around lakeFS, and the glossary provides a useful reference for the terms used in lakeFS.

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/understand/kv-in-a-nutshell.html b/v1.46/understand/kv-in-a-nutshell.html new file mode 100644 index 000000000..9f3bb5688 --- /dev/null +++ b/v1.46/understand/kv-in-a-nutshell.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/understand/licensing.html b/v1.46/understand/licensing.html new file mode 100644 index 000000000..41dce22e2 --- /dev/null +++ b/v1.46/understand/licensing.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/understand/merge.html b/v1.46/understand/merge.html new file mode 100644 index 000000000..9a856dde2 --- /dev/null +++ b/v1.46/understand/merge.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/understand/model.html b/v1.46/understand/model.html new file mode 100644 index 000000000..aaec0a4c1 --- /dev/null +++ b/v1.46/understand/model.html @@ -0,0 +1,940 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Concepts and Model | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + lakeFS Concepts and Model + + +

+ + +
+

+ + + Table of contents + + +

+ + +
    +
  1. Objects
  2. +
  3. Version Control
      +
    1. Repository
    2. +
    3. Commits
    4. +
    5. Branches
    6. +
    7. Tags
    8. +
    9. History
    10. +
    11. Merge
    12. +
    13. Ref expressions
    14. +
    +
  4. +
  5. Concepts unique to lakeFS
      +
    1. lakefs protocol URIs
    2. +
    +
  6. +
+ +
+ +

lakeFS blends concepts from object stores such as S3 with concepts from Git. This reference +defines the common concepts of lakeFS.

+

+ + + Objects + + +

+ + +

lakeFS is an interface to manage objects in an object store.

+ +
+

The actual data itself is not stored inside lakeFS directly but in an underlying object store. +lakeFS manages pointers and additional metadata about these objects.

+
+

+ + + Version Control + + +

+ + +

lakeFS is spearheading version control semantics for data. Most of these concepts will be familiar to Git users:

+

+ + + Repository + + +

+ + +

In lakeFS, a repository is a set of related objects (or collections of objects). In many cases, these represent tables of various formats for tabular data, semi-structured data such as JSON or log files - or a set of unstructured objects such as images, videos, sensor data, etc.

+ +

lakeFS represents repositories as a logical namespace used to group together objects, branches, and commits - analogous to a repository in Git.

+ +

lakeFS repository naming requirements are as follows:

+ +
    +
  • Start with a lower case letter or number
  • +
  • Contain only lower case letters, numbers and hyphens
  • +
  • Be between 3 and 63 characters long
  • +
+

+ + + Commits + + +

+ + +

Using commits, you can view a repository at a certain point in its history and you’re guaranteed that the data you see is exactly as it was at the point of committing it.

+ +

These commits are immutable “checkpoints” containing all contents of a repository at a given point in the repository’s history.

+ +

Each commit contains metadata - the committer, timestamp, a commit message, as well as arbitrary key/value pairs you can choose to add.

+ +

Identifying Commits

+ A commit is identified by its commit ID, a digest of all contents of the commit.
+ Commit IDs are by nature long, so you may use a unique prefix to abbreviate them. A commit may also be identified by using a textual definition, called a ref.

+ Examples of refs include tags, branch names, and expressions.

+

+ + + Branches + + +

+ + +

Branches in lakeFS allow users to create their own “isolated” view of the repository.

+ +

Changes on one branch do not appear on other branches. Users can take changes from one branch and apply it to another by merging them.

+

+ + + Zero-copy branching + + +

+ + +

Under the hood, branches are simply a pointer to a commit along with a set of uncommitted changes. +Creating a branch is a zero-copy operation; instead of duplicating data, it involves creating a pointer to the source commit for the branch.

+

+ + + Tags + + +

+ + +

Tags are a way to give a meaningful name to a specific commit. +Using tags allow users to reference specific releases, experiments, or versions by using a human friendly name.

+ +

Example tags:

+ +
    +
  • v2.3 to mark a release.
  • +
  • dev-jane-before-v2.3-merge to mark Jane’s private temporary point.
  • +
+ +

Tag names adhere to the same rules as git ref names.

+

+ + + History + + +

+ + +

The history of the branch is the list of commits from the branch tip through the first +parent of each commit. Histories go back in time.

+

+ + + Merge + + +

+ + +

Merging is the way to integrate changes from a branch into another branch. +The result of a merge is a new commit, with the destination as the first parent and the source as the second.

+ +

To learn more about how merging works in lakeFS, see the merge reference

+

+ + + Ref expressions + + +

+ + +

lakeFS also supports expressions for creating a ref. These are similar to revisions in +Git; indeed all ~ and ^ +examples at the end of that section will work unchanged in lakeFS.

+ +
    +
  • A branch or a tag are ref expressions.
  • +
  • If <ref> is a ref expression, then: +
      +
    • <ref>^ is a ref expression referring to its first parent.
    • +
    • <ref>^N is a ref expression referring to its N’th parent; in particular <ref>^1 is the +same as <ref>^.
    • +
    • <ref>~ is a ref expression referring to its first parent; in particular <ref>~ is the +same as <ref>^ and <ref>~.
    • +
    • <ref>~N is a ref expression referring to its N’th parent, always traversing to the first +parent. So <ref>~N is the same as <ref>^^...^ with N consecutive carets ^.
    • +
    +
  • +
+

+ + + Concepts unique to lakeFS + + +

+ + +

The underlying storage is a location in an object store where lakeFS keeps your objects and some immutable metadata.

+ +

When creating a lakeFS repository, you assign it with a storage namespace. The repository’s +storage namespace is a location in the underlying storage where data for this repository +will be stored.

+ +

We sometimes refer to underlying storage as physical. The path used to store the contents of an object is then termed a physical path. +Once lakeFS saves an object in the underlying storage it is never modified, except to remove it +entirely during some cleanups.

+ +

A lot of what lakeFS does is to manage how lakeFS paths translate to physical paths on the +object store. This mapping is generally not straightforward. Importantly (and contrary to +many object stores), lakeFS may map multiple paths to the same object on backing storage, and +always does this for objects that are unchanged across versions.

+

+ + + lakefs protocol URIs + + +

+ + +

lakeFS uses a specific format for path URIs. The URI lakefs://<REPO>/<REF>/<KEY> is a path +to objects in the given repo and ref expression under key. This is used both for path +prefixes and for full paths. In similar fashion, lakefs://<REPO>/<REF> identifies the +repository at a ref expression, and lakefs://<REPO> identifes a repo.

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/understand/object-model.html b/v1.46/understand/object-model.html new file mode 100644 index 000000000..8e9879ba3 --- /dev/null +++ b/v1.46/understand/object-model.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/understand/performance-best-practices.html b/v1.46/understand/performance-best-practices.html new file mode 100644 index 000000000..67542d6ca --- /dev/null +++ b/v1.46/understand/performance-best-practices.html @@ -0,0 +1,819 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Performance Best Practices | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Performance Best Practices + + +

+ + + +

+ + + Overview + + +

+ +

Use this guide to achieve the best performance with lakeFS.

+

+ + + Avoid concurrent commits/merges + + +

+ +

Just like in Git, branch history is composed by commits and is linear by nature. +Concurrent commits/merges on the same branch result in a race. The first operation will finish successfully while the rest will retry.

+

+ + + Perform meaningful commits + + +

+ +

It’s a good idea to perform commits that are meaningful in the senese that they represent a logical point in your data’s lifecycle. While lakeFS supports arbirartily large commits, avoiding commits with a huge number of objects will result in a more comprehensible commit history.

+

+ + + Use zero-copy import + + +

+ +

To import object into lakeFS, either a single time or regularly, lakeFS offers a zero-copy import feature. +Use this feature to import a large number of objects to lakeFS, instead of simply copying them into your repository. +This feature will create a reference to the existing objects on your bucket and avoids the copy.

+

+ + + Read data using the commit ID + + +

+ +

In cases where you are only interested in reading committed data:

+
    +
  • Use a commit ID (or a tag ID) in your path (e.g: lakefs://repo/a1b2c3).
  • +
  • Add @ before the path lakefs://repo/main@/path.
  • +
+ +

When accessing data using the branch name (e.g. lakefs://repo/main/path) lakeFS will also try to fetch uncommitted data, which may result in reduced performance. +For more information, see how uncommitted data is managed in lakeFS.

+

+ + + Operate directly on the storage + + +

+ +

Sometimes, storage operations can become a bottleneck. For example, when your data pipelines upload many big objects. +In such cases, it can be beneficial to perform only versioning operations on lakeFS, while performing storage reads/writes directly on the object store. +lakeFS offers multiple ways to do that:

+ + +

Accessing the object store directly is a faster way to interact with your data.

+

+ + + Zero-copy + + +

+ +

lakeFS provides a zero-copy mechanism to data. Instead of copying the data, we can check out to a new branch. +Creating a new branch will take constant time as the new branch points to the same data as its parent. +It will also lower the storage cost.

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/understand/roadmap.html b/v1.46/understand/roadmap.html new file mode 100644 index 000000000..41dce22e2 --- /dev/null +++ b/v1.46/understand/roadmap.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/understand/sizing-guide.html b/v1.46/understand/sizing-guide.html new file mode 100644 index 000000000..252d1aa93 --- /dev/null +++ b/v1.46/understand/sizing-guide.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/understand/understand/data-model.html b/v1.46/understand/understand/data-model.html new file mode 100644 index 000000000..9c0ed11b5 --- /dev/null +++ b/v1.46/understand/understand/data-model.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/understand/use_cases/cicd_for_data.html b/v1.46/understand/use_cases/cicd_for_data.html new file mode 100644 index 000000000..c0d4cd92a --- /dev/null +++ b/v1.46/understand/use_cases/cicd_for_data.html @@ -0,0 +1,875 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CI/CD for Data Lakes | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + CI/CD for Data + + +

+ + + +

+ + + Why do I need CI/CD? + + +

+ + +

Data pipelines feed processed data from data lakes to downstream consumers like business dashboards and machine learning models. As more and more organizations rely on data to enable business critical decisions, data reliability and trust are of paramount concern. Thus, it’s important to ensure that production data adheres to the data governance policies of businesses. These data governance requirements can be as simple as a file format validation, schema check, or an exhaustive PII(Personally Identifiable Information) data removal from all of organization’s data.

+ +

Thus, to ensure the quality and reliability at each stage of the data lifecycle, data quality gates need to be implemented. That is, we need to run Continuous Integration(CI) tests on the data, and only if data governance requirements are met can the data can be promoted to production for business use.

+ +

Everytime there is an update to production data, the best practice would be to run CI tests and then promote(deploy) the data to production.

+

+ + + How do I implement CI/CD for data with lakeFS? + + +

+ + +

lakeFS makes implementing CI/CD pipelines for data simpler. lakeFS provides a feature called hooks that allow automation of checks and validations of data on lakeFS branches. These checks can be triggered by certain data operations like committing, merging, etc.

+ +

Functionally, lakeFS hooks are similar to Git Hooks. lakeFS hooks are run remotely on a server, and they are guaranteed to run when the appropriate event is triggered.

+ +

Here are some examples of the hooks lakeFS supports:

+
    +
  • pre-merge
  • +
  • pre-commit
  • +
  • post-merge
  • +
  • post-commit
  • +
  • pre-create-branch
  • +
  • post-create-branch
  • +
+ +

and so on.

+ +

By leveraging the pre-commit and pre-merge hooks with lakeFS, you can implement CI/CD pipelines on your data lakes.

+ +

Specific trigger rules, quality checks and the branch on which the rules are to be applied are declared in actions.yaml file. When a specific event (say, pre-merge) occurs, lakeFS runs all the validations declared in actions.yaml file. If validations error out, the merge event is blocked.

+ +

Here is a sample actions.yaml file that has pre-merge hook configured to allow only parquet and delta lake file formats on main branch.

+ +
name: ParquetOnlyInProduction
+description: This webhook ensures that only parquet files are written under production/
+on:
+  pre-merge:
+    branches:
+      - main
+hooks:
+  - id: production_format_validator
+    type: webhook
+    description: Validate file formats
+    properties:
+      url: "http://lakefs-hooks:5001/webhooks/format"
+      query_params:
+        allow: ["parquet", "delta_lake"]
+        prefix: analytics/
+
+

+ + + Using hooks as data quality gates + + +

+ + +

Hooks are run on a remote server that can serve http requests from lakeFS server. lakeFS supports two types of hooks.

+
    +
  1. webhooks (run remotely on a web server. e.g.: flask server in python)
  2. +
  3. airflow hooks (a dag of complex data quality checks/tasks that can be run on airflow server)
  4. +
+ +

In this tutorial, we will show how to use webhooks (python flask webserver) to implement quality gates on your data branches. Specifically, how to configure hooks to allow only parquet and delta lake format files in the main branch.

+ +

The tutorial provides a lakeFS environment, python flask server, a Jupyter notebook and sample data sets to demonstrate the integration of lakeFS hooks with Apache Spark and Python. It runs on Docker Compose.

+ +

To understand how hooks work and how to configure hooks in your production system, refer to the documentation: Hooks.

+ +

lakeFS hooks - Promotion workflow

+ +

Follow the steps below to try out CI/CD for data lakes.

+

+ + + Implementing CI/CD pipeline with lakeFS - Demo + + +

+ + +

The sample below provides a lakeFS environment, a Jupyter notebook, and a server on which for the lakeFS webhooks to run.

+

+ + + Prerequisites & Setup + + +

+ + +

Before we get started, make sure Docker is installed on your machine.

+ +
    +
  • +

    Start by cloning the lakeFS samples Git repository:

    + +
    git clone https://github.com/treeverse/lakeFS-samples.git
    +
    + +
    cd lakeFS-samples
    +
    +
  • +
  • +

    Run following commands to start the components:

    + +
    git submodule init
    +git submodule update
    +docker compose up
    +
    +
  • +
+ +

Open the local Jupyter Notebook and go to the hooks-demo.ipynb notebook.

+

+ + + Resources + + +

+ + +

To explore different checks and validations on your data, refer to pre-built hooks config by the lakeFS team.

+ +

To understand the comprehensive list of hooks supported by lakeFS, refer to the documentation.

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/understand/use_cases/etl_testing.html b/v1.46/understand/use_cases/etl_testing.html new file mode 100644 index 000000000..3aae942ef --- /dev/null +++ b/v1.46/understand/use_cases/etl_testing.html @@ -0,0 +1,998 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ETL Testing Environment | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + ETL Testing with Isolated Dev/Test Environments + + +

+ + + +

+ + + Why are multiple environments so important? + + +

+ + +

When working with a data lake, it’s useful to have replicas of your production environment. These replicas allow you to test these ETLs and understand changes to your data without impacting the consumers of the production data.

+ +

Running ETL and transformation jobs directly in production without proper ETL testing presents a huge risk of having data issues flow into dashboards, ML models, and other consumers sooner or later.

+ +

The most common approach to avoid making changes directly in production is to create and maintain multiple data environments and perform ETL testing on them. Dev environments give you a space in which to develop the data pipelines and test environment where pipeline changes are tested before pushing it to production.

+ +

Without lakeFS, the challenge with this approach is that it can be time-consuming and costly to maintain these separate dev/test environments to enable thorough effective ETL testing. And for larger teams it forces multiple people to share these environments, requiring significant coordination. Depending on the size of the data involved there can also be high costs due to the duplication of data.

+

+ + + How does lakeFS help with Dev/Test environments? + + +

+ + +

lakeFS makes creating isolated dev/test environments for ETL testing quick and cheap. lakeFS uses zero-copy branching which means that there is no duplication of data when you create a new environment. This frees you from spending time on environment maintenance and makes it possible to create as many environments as needed.

+ +

In a lakeFS repository, data is always located on a branch. You can think of each branch in lakeFS as its own environment. This is because branches are isolated, meaning changes on one branch have no effect other branches.

+ +

Objects that remain unchanged between two branches are not copied, but rather shared to both branches via metadata pointers that lakeFS manages. If you make a change on one branch and want it reflected on another, you can perform a merge operation to update one branch with the changes from another.

+

+ + + Using branches as development and testing environments + + +

+ + +

The key difference when using lakeFS for isolated data environments is that you can create them immediately before testing a change. And once new data is merged into production, you can delete the branch - effectively deleting the old environment.

+ +

This is different from creating a long-living test environment used as a staging area to test all the updates. With lakeFS, we create a new branch for each change to production that we want to make. One benefit of this is the ability to test multiple changes at one time.

+ +

dev/test branches as environments

+

+ + + Try it out! Creating Dev/Test Environments with lakeFS for ETL Testing + + +

+ + +

lakeFS supports UI, CLI (lakectl commandline utility) and several clients for the API to run the Git-like operations. Let us explore how to create dev/test environments using each of these options below.

+ +

There are two ways that you can try out lakeFS:

+ +
    +
  • The lakeFS Playground on lakeFS Cloud - fully managed lakeFS with a 30-day free trial
  • +
  • Local Docker-based quickstart and samples
  • +
+ +

You can also deploy lakeFS locally or self-managed on your cloud of choice.

+

+ + + Using lakeFS Playground on lakeFS Cloud + + +

+ + +

In this tutorial, we will use a lakeFS playground environment to create dev/test data environments for ETL testing. This allows you to spin up a lakeFS instance in a click, create different data environments by simply branching out of your data repository and develop & test data pipelines in these isolated branches.

+ +

First, let us spin up a playground instance. Once you have a live environment, login to your instance with access and secret keys. Then, you can work with the sample data repository my-repo that is created for you.

+ +

sample repository

+ +

Click on my-repo and notice that by default, the repo has a main branch created and sample_data preloaded to work with.

+ +

main branch

+ +

You can create a new branch (say, test-env) by going to the Branches tab and clicking Create Branch. Once it is successful, you will see two branches under the repo: main and test-env.

+ +

test-env branch

+ +

Now you can add, modify or delete objects under the test-env branch without affecting the data in the main branch.

+

+ + + Trying out lakeFS with Docker and Jupyter Notebooks + + +

+ + +

This use case shows how to create dev/test data environments for ETL testing using lakeFS branches. The following tutorial provides a lakeFS environment, a Jupyter notebook, and Python lakefs_client API to demonstrate integration of lakeFS with Spark. You can run this tutorial on your local machine.

+ +

Follow the tutorial video below to get started with the playground and Jupyter notebook, or follow the instructions on this page.

+ +

+ + + Prerequisites + + +

+ + +

Before getting started, you will need Docker installed on your machine.

+

+ + + Running lakeFS and Jupyter Notebooks + + +

+ + +

Follow along the steps below to create dev/test environment with lakeFS.

+ +
    +
  • +

    Start by cloning the lakeFS samples Git repository:

    + +
    git clone https://github.com/treeverse/lakeFS-samples.git
    +
    + +
    cd lakeFS-samples
    +
    +
  • +
  • +

    Run following commands to download and run Docker container which includes Python, Spark, Jupyter Notebook, JDK, Hadoop binaries, lakeFS Python client and Airflow (Docker image size is around 4.5GB):

    + +
    git submodule init
    +git submodule update
    +docker compose up
    +
    +
  • +
+ +

Open the local Jupyter Notebook and go to the spark-demo.ipynb notebook.

+

+ + + Configuring lakeFS Python Client + + +

+ + +

Setup lakeFS access credentials for the lakeFS instance running. The defaults for these that the samples repo Docker Compose uses are shown here:

+ +
lakefsAccessKey = 'AKIAIOSFODNN7EXAMPLE'
+lakefsSecretKey = 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY'
+lakefsEndPoint = 'http://lakefs:8000'
+
+ +

Next, setup the storage namespace to a location in the bucket you have configured. The storage namespace is a location in the underlying storage where data for this repository will be stored.

+ +
storageNamespace = 's3://example/' 
+
+ +

You can use lakeFS through the UI, API or lakectl commandline. For this use-case, we use python lakefs_client to run lakeFS core operations.

+ +
import lakefs_client
+from lakefs_client import models
+from lakefs_client.client import LakeFSClient
+
+# lakeFS credentials and endpoint
+configuration = lakefs_client.Configuration()
+configuration.username = lakefsAccessKey
+configuration.password = lakefsSecretKey
+configuration.host = lakefsEndPoint
+
+client = LakeFSClient(configuration)
+
+ +

lakeFS can be configured to work with Spark in two ways:

+ +

+ + + Upload the Sample Data to Main Branch + + +

+ + +

To upload an object to the my-repo, use the following command.

+ +
import os
+contentToUpload = open('/data/lakefs_test.csv', 'rb')
+client.objects.upload_object(
+    repository="my-repo",
+    branch="main",
+    path=fileName, content=contentToUpload)
+
+ +

Once uploaded, commit the changes to the main branch and attach some metadata to the commit as well.

+
client.commits.commit(
+    repository="my-repo",
+    branch="main",
+    commit_creation=models.CommitCreation(
+        message='Added my first object!',
+        metadata={'using': 'python_api'}))
+
+ +

In this example, we use lakeFS S3A gateway to read data from the storage bucket.

+
dataPath = f"s3a://my-repo/main/lakefs_test.csv"
+df = spark.read.csv(dataPath)
+df.show()
+
+

+ + + Create a Test Branch + + +

+ + +

Let us start by creating a new branch test-env on the example repo my-repo.

+ +
client.branches.create_branch(
+    repository="my-repo",
+    branch_creation=models.BranchCreation(
+        name="test-env",
+        source="main"))
+
+ +

Now we can use Spark to write the csv file from main branch as a Parquet file to the test-env of our lakeFS repo. Suppose we accidentally write the dataframe back to “test-env” branch again, this time in append mode.

+ +
df.write.mode('overwrite').parquet('s3a://my-repo/test-env/')
+df.write.mode('append').parquet('s3a://my-repo/test-env/')
+
+

What happens if we re-read in the data on both branches and perform a count on the resulting DataFrames? +There will be twice as many rows in test-env branch. That is, we accidentally duplicated our data! Oh no!

+ +

Data duplication introduce errors into our data analytics, BI and machine learning efforts; hence we would like to avoid duplicating our data.

+ +

On the main branch however, there is still just the original data - untouched by our Spark code. This shows the utility of branch-based isolated environments with lakeFS.

+ +

You can safely continue working with the data from main which is unharmed due to lakeFS isolation capabilities.

+

+ + + Further Reading + + +

+ + + + + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/understand/use_cases/index.html b/v1.46/understand/use_cases/index.html new file mode 100644 index 000000000..f215577a1 --- /dev/null +++ b/v1.46/understand/use_cases/index.html @@ -0,0 +1,730 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Use Cases | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + lakeFS Use Cases + + +

+ + +

lakeFS has many uses in the data world, including

+ + + +

One of the important things that lakeFS provides is full support for Data Lifecycle Management through all stages:

+ + + + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/understand/use_cases/reproducibility.html b/v1.46/understand/use_cases/reproducibility.html new file mode 100644 index 000000000..d5e04c5d1 --- /dev/null +++ b/v1.46/understand/use_cases/reproducibility.html @@ -0,0 +1,756 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Reproducibility | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + The Benefits of Reproducible Data + + +

+ + +

Data changes frequently. This makes the task of keeping track of its exact state over time difficult. Oftentimes, people maintain only one state of their data––its current state.

+ +

This has a negative impact on the work, as it becomes hard to:

+
    +
  • Debug a data issue.
  • +
  • Validate machine learning training accuracy (re-running a model over different data gives different results).
  • +
  • Comply with data audits.
  • +
+ +

In comparison, lakeFS exposes a Git-like interface to data that allows keeping track of more than just the current state of data. This makes reproducing its state at any point in time straightforward.

+

+ + + Achieving Reproducibility with lakeFS + + +

+ + +

To make data reproducible, we recommend taking a new commit of your lakeFS repository every time the data in it changes. As long as there’s a commit taken, the process to reproduce a given state is as simple as reading the data from a path that includes the unique commit_id generated for each commit.

+ +

To read data at it’s current state, we can use a static path containing the repository and branch names. To give an example, if you have a repository named example with a branch named main, reading the latest state of this data into a Spark Dataframe is always:

+ +
df = spark.read.parquet(‘s3://example/main/”)
+
+

Note: The code above assumes that all objects in the repository under this path are stored in parquet format. If a different format is used, the applicable Spark read method should be used.

+ +

In a lakeFS repository, we are capable of taking many commits over the data, making many points in time reproducible.

+ +

Commit History

+ +

In the repository above, a new commit is taken each time a model training script is run, and the commit message includes the specific run number.

+ +

If we wanted to re-run the model training script and reproduce the exact same results for a historical run, say run #435, we could copy the commit ID associated with the run and read the data into a dataframe like so:

+ +
df = spark.read.parquet("s3://example/296e54fbee5e176f3f4f4aeb7e087f9d57515750e8c3d033b8b841778613cb23/training_dataset/”)
+
+ +

The ability to reference a specific commit_id in code simplifies reproducing the specific state a data collection or even multiple collections. This has many applications that are common in data development, such as historical debugging, identifying deltas in a data collection, audit compliance, and more.

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/understand/use_cases/rollback.html b/v1.46/understand/use_cases/rollback.html new file mode 100644 index 000000000..87b2e07f2 --- /dev/null +++ b/v1.46/understand/use_cases/rollback.html @@ -0,0 +1,789 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Rollback | lakeFS Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Link + + + + + + + Search + + + + + + + Menu + + + + + + + + + + + + Expand + + + + + + Document + + + + + + +
+ +
+ +
+ + + +
+
+ + + + + +
+ +

+ + + Rollbacks + + +

+ +

+ + + What Is a Rollback? + + +

+ + +

A rollback operation is used to to fix critical data errors immediately.

+ +

What is a critical data error? Think of a situation where erroneous or misformatted data causes a significant issue with an important service or function. In such situations, the first thing to do is stop the bleeding.

+ +

Rolling back returns data to a state in the past, before the error was present. You might not be showing all the latest data after a rollback, but at least you aren’t showing incorrect data or raising errors.

+

+ + + Why Rollbacks Are Useful + + +

+ + +

A Rollback is used as a stopgap measure to “put out the fire” as quickly as possible while RCA (root cause analysis) is performed to understand 1) exactly how the error happened, and 2) what can be done to prevent it from happening again.

+ +

It can be a pressured, stressful situation to deal with a critical data error. Having the ability to employ a rollback relieves some of the pressure and makes it more likely you can figure out what happened without creating additional issues.

+ +

As a real world example, the 14-day outage some Atlassian users experienced in May 2022 could have been an uninteresting minor incident had rolling back the deleted customer data been an option.

+

+ + + Performing Rollbacks with lakeFS + + +

+ + +

lakeFS lets you develop in your data lake in such a way that rollbacks are simple to perform. This starts by taking a commit over your lakeFS repository whenever a change to its state occurs.

+ +

Using the lakeFS UI or CLI, you can set the current state, or HEAD, of a branch to any historical commit in seconds, effectively performing a rollback.

+ +

To demonstrate how this works, let’s take the example of a lakeFS repo with the following commit history:

+ +

Commit History

+ +

As can be inferred from the history, this repo is updated every minute with a data sync from some data source. An example data sync is a typical ETL job that replicates data from an internal database or any other data source. After each sync, a commit is taken in lakeFS to save a snapshot of data at that point in time.

+

+ + + How to Rollback From a Bad Data Sync? + + +

+ + +

Say a situation occurs where one of the syncs had bad data and is causing downstream dashboards to fail to load. Since we took a commit of the repo right after the sync ran, we can use a revert operation to undo the changes introduced in that sync.

+ +

Copy Commit ID

+ +

Step 1: Copy the commit_id associated with the commit we want to revert. As the screenshot above shows, you can use the Copy ID to Clipboard button to do this.

+ +

Step 2: Run the revert command using lakectl, the lakeFS CLI. In this example, the command will be as follows:

+ +
lakectl branch revert lakefs://example/main 9666d7c9daf37b3ba6964e733d08596ace2ec2c7bc3a4023ad8e80737a6c3e9d
+
+ +

This will undo the changes introduced by this commit, completing the rollback!

+ +

Rollback Commit

+ +

The rollback operation is that simple, even if many changes were introduced in a commit, spanning acrossmultiple data collections.

+ +

In lakeFS, rolling back data is always a one-liner.

+ + + + + + + + +
+
+ + + + +
+ +
+
+ + + + + + + + diff --git a/v1.46/understand/versioning-internals.html b/v1.46/understand/versioning-internals.html new file mode 100644 index 000000000..9c0ed11b5 --- /dev/null +++ b/v1.46/understand/versioning-internals.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/use_cases/cicd_for_data.html b/v1.46/use_cases/cicd_for_data.html new file mode 100644 index 000000000..c3fe42ec1 --- /dev/null +++ b/v1.46/use_cases/cicd_for_data.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/use_cases/etl_testing.html b/v1.46/use_cases/etl_testing.html new file mode 100644 index 000000000..81a672a11 --- /dev/null +++ b/v1.46/use_cases/etl_testing.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/use_cases/index.html b/v1.46/use_cases/index.html new file mode 100644 index 000000000..3e823de3e --- /dev/null +++ b/v1.46/use_cases/index.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/use_cases/iso_env.html b/v1.46/use_cases/iso_env.html new file mode 100644 index 000000000..81a672a11 --- /dev/null +++ b/v1.46/use_cases/iso_env.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/use_cases/reproducibility.html b/v1.46/use_cases/reproducibility.html new file mode 100644 index 000000000..57e7bbfdf --- /dev/null +++ b/v1.46/use_cases/reproducibility.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/use_cases/rollback.html b/v1.46/use_cases/rollback.html new file mode 100644 index 000000000..c64ea4f76 --- /dev/null +++ b/v1.46/use_cases/rollback.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/usecases/cd.html b/v1.46/usecases/cd.html new file mode 100644 index 000000000..c3fe42ec1 --- /dev/null +++ b/v1.46/usecases/cd.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/usecases/ci.html b/v1.46/usecases/ci.html new file mode 100644 index 000000000..c3fe42ec1 --- /dev/null +++ b/v1.46/usecases/ci.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/usecases/data-devenv.html b/v1.46/usecases/data-devenv.html new file mode 100644 index 000000000..66f7a21a2 --- /dev/null +++ b/v1.46/usecases/data-devenv.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/usecases/production.html b/v1.46/usecases/production.html new file mode 100644 index 000000000..8896605e8 --- /dev/null +++ b/v1.46/usecases/production.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/using.html b/v1.46/using.html new file mode 100644 index 000000000..71d0a685d --- /dev/null +++ b/v1.46/using.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/using/airflow.html b/v1.46/using/airflow.html new file mode 100644 index 000000000..917dde3ee --- /dev/null +++ b/v1.46/using/airflow.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/using/athena.html b/v1.46/using/athena.html new file mode 100644 index 000000000..1ce8d031a --- /dev/null +++ b/v1.46/using/athena.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/using/aws_cli.html b/v1.46/using/aws_cli.html new file mode 100644 index 000000000..a63fea316 --- /dev/null +++ b/v1.46/using/aws_cli.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/using/boto.html b/v1.46/using/boto.html new file mode 100644 index 000000000..7899a7d60 --- /dev/null +++ b/v1.46/using/boto.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/using/databricks.html b/v1.46/using/databricks.html new file mode 100644 index 000000000..35bd6c453 --- /dev/null +++ b/v1.46/using/databricks.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/using/dremio.html b/v1.46/using/dremio.html new file mode 100644 index 000000000..95c9c6d91 --- /dev/null +++ b/v1.46/using/dremio.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/using/emr.html b/v1.46/using/emr.html new file mode 100644 index 000000000..35bd6c453 --- /dev/null +++ b/v1.46/using/emr.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/using/glue_etl.html b/v1.46/using/glue_etl.html new file mode 100644 index 000000000..35bd6c453 --- /dev/null +++ b/v1.46/using/glue_etl.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/using/glue_hive_metastore.html b/v1.46/using/glue_hive_metastore.html new file mode 100644 index 000000000..1279ee1f4 --- /dev/null +++ b/v1.46/using/glue_hive_metastore.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/using/glue_metastore.html b/v1.46/using/glue_metastore.html new file mode 100644 index 000000000..8d36f97e0 --- /dev/null +++ b/v1.46/using/glue_metastore.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/using/hive.html b/v1.46/using/hive.html new file mode 100644 index 000000000..e1c2655f3 --- /dev/null +++ b/v1.46/using/hive.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/using/kakfa.html b/v1.46/using/kakfa.html new file mode 100644 index 000000000..7e1bfa8ee --- /dev/null +++ b/v1.46/using/kakfa.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/using/minio.html b/v1.46/using/minio.html new file mode 100644 index 000000000..4af5b9be6 --- /dev/null +++ b/v1.46/using/minio.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/using/presto.html b/v1.46/using/presto.html new file mode 100644 index 000000000..10389a5cd --- /dev/null +++ b/v1.46/using/presto.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/using/python.html b/v1.46/using/python.html new file mode 100644 index 000000000..7899a7d60 --- /dev/null +++ b/v1.46/using/python.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/using/sagemaker.html b/v1.46/using/sagemaker.html new file mode 100644 index 000000000..2f7018de9 --- /dev/null +++ b/v1.46/using/sagemaker.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/using/spark.html b/v1.46/using/spark.html new file mode 100644 index 000000000..35bd6c453 --- /dev/null +++ b/v1.46/using/spark.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/v1.46/using_lakefs.html b/v1.46/using_lakefs.html new file mode 100644 index 000000000..2045b63eb --- /dev/null +++ b/v1.46/using_lakefs.html @@ -0,0 +1,11 @@ + + + + Redirecting… + + + + +

Redirecting…

+ Click here if you are not redirected. + diff --git a/versions.json b/versions.json index bee557c95..6efee606c 100644 --- a/versions.json +++ b/versions.json @@ -99,5 +99,6 @@ "v1.42": "v1.42", "v1.43": "v1.43", "v1.44": "v1.44", - "v1.45": "v1.45" + "v1.45": "v1.45", + "v1.46": "v1.46" }